(FILECREATED "27-JUN-83 00:23:04" {INDIGO}<LOOPS>TRUCKIN>TRUCKINDB.;9 46213  

      changes to:  (VARS TRUCKINDBCOMS)
		   (FNS Apple.Display Apple.SetPrice)

      previous date: "13-JUN-83 17:32:35" {INDIGO}<LOOPS>TRUCKIN>TRUCKINDB.;8)


(PRETTYCOMPRINT TRUCKINDBCOMS)

(RPAQQ TRUCKINDBCOMS ((* Copyright (c)
			 1983 by Xerox Corporation.)
		      (* Database of RoadStops, Commodities, and Hazards for TRUCKIN. TRUCKIN is a 
			 mini-expert system for teaching knowledge representation techniques in the 
			 Loops programming system. Truckin provides a simple simulation environment 
			 for novice Loops users in which small bodies of knowledge can be created and 
			 tested interactively. Knowledge in Truckin is in the form of rules for 
			 controlling a game piece to "maximize profit.")
		      (* Written in January 1983 by the Loops Group -- Daniel Bobrow, Sanjay Mittal, 
			 and Mark Stefik.)
		      (VARS BoardPattern GenericClasses GenericCommodities Commodities MustStops 
			    GasStations Producers Consumers OtherStops)
		      (* * Generic Commodities.)
		      (CLASSES * GenericCommodities)
		      (* * Commodities.)
		      (CLASSES * Commodities)
		      (* * Generic Classes.)
		      (CLASSES * GenericClasses)
		      (* * Gas Stations.)
		      (CLASSES * GasStations)
		      (* * Producers.)
		      (CLASSES * Producers)
		      (* * Consumers.)
		      (CLASSES * Consumers)
		      (* * Special RoadStops.)
		      (CLASSES * OtherStops)
		      (FNS Apple.Display Apple.SetPrice DefaultMustStops FillerRoadStops 
			   Gasoline.CanTransfer RoughRoad.GoingPast SetRoadStops UnionHall.Visit 
			   WeighStation.GoingPast WeighStation.Visit)
		      (P (SetRoadStops))))



(* Copyright (c) 1983 by Xerox Corporation.)




(* Database of RoadStops, Commodities, and Hazards for TRUCKIN. TRUCKIN is a mini-expert system
 for teaching knowledge representation techniques in the Loops programming system. Truckin 
provides a simple simulation environment for novice Loops users in which small bodies of 
knowledge can be created and tested interactively. Knowledge in Truckin is in the form of rules
 for controlling a game piece to "maximize profit.")




(* Written in January 1983 by the Loops Group -- Daniel Bobrow, Sanjay Mittal, and Mark Stefik.
)


(RPAQQ BoardPattern (AlicesRestaurant AlicesRestaurant))

(RPAQQ GenericClasses (GasStation Hazard RoughRoad WeighStation))

(RPAQQ GenericCommodities (Appliances Clothing Fruit Groceries Hardware LuxuryGoods OfficeSupplies 
				      SportingGoods Vegetable))

(RPAQQ Commodities (Apple ArtSupplies BaseBall Bicycle Book Carrot Diamond Dishes Egg Gasoline Gold 
			  Grape Hammer Pants Refrigerator Saw Shirt StereoSystem Strawberry 
			  Television Tomato Xerox1100))

(RPAQQ MustStops (BillsTools DebbyDiamonds DirtyDans DonnaFashions JordyTV KeithGas KimsStuff 
			     MarysHens MittalMetal MityMarks MorganBikes PaigesBooks PreetPalace 
			     ReidBits SmitaFarms ToniBoutique XSIS))

(RPAQQ GasStations (BrandX CheapGas DirtyDans KeithGas MityMarks SheikGas))

(RPAQQ Producers (ArtsArt BookStop BunnyCarrot Clucks DebbyDiamonds EatOn EggHead FortyNiners 
			  Grapefully H&J HotPants IceBox JordyTV MacsApples MarysHens MattStereo 
			  MinaVox MorganBikes Mosquitomato OldStereo PetesPatch PrintInc RitaBook 
			  SeePast Shirtless SmashM SmitaFarms Sparklers TomsToms TwoEars TwoWheeler 
			  VeryBerry VinsVines XSIS Yankees))

(RPAQQ Consumers (AFitch BillsTools CityDump DonnaFashions ExpertSystems FineFoods FredsFruits 
			 FreshStuff HomeGoods HomeImp JamNJelly KimsStuff MakeADeal MittalMetal 
			 MunicipalDump OshPerson PaigesBooks PaperPlace PlugItIn PreetPalace ReidBits 
			 SJFleaMkt SauceFactory SeeItNow StereoHaven StopAndBuy ToniBoutique VegiMart)
)

(RPAQQ OtherStops (CurvyRoad BrokenPipe PotHole IcyRoad DirtRoad LaneClosed MenAtWork BigBumps WS4 
			     WS3 WS2 WS1 AlicesRestaurant UnionHall))
(* * Generic Commodities.)

(DEFCLASSES Appliances Clothing Fruit Groceries Hardware LuxuryGoods OfficeSupplies SportingGoods 
	    Vegetable)
[DEFCLASS Appliances
   (MetaClass CommodityClassMeta Edited:                     (* mjs: "23-JAN-83 10:02"))
   (Supers Commodity)
   (ClassVariables (WtPerQty 50)
		   (CopyCV (WtPerQty VolPerQty AvgPrice Icon))
		   (Icon ?)
		   (AvgPrice ?)
		   (VolPerQty ?))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Clothing
   (MetaClass CommodityClassMeta Edited:                     (* mjs: "23-JAN-83 10:02"))
   (Supers Commodity)
   (ClassVariables (WtPerQty 50)
		   (CopyCV (WtPerQty VolPerQty AvgPrice Icon))
		   (Icon ?)
		   (AvgPrice ?)
		   (VolPerQty ?))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Fruit
   (MetaClass CommodityClassMeta Edited:                     (* mjs: "23-JAN-83 10:04"))
   (Supers PerishableCommodity Groceries)
   (ClassVariables (WtPerQty 50)
		   (MinLifetime ?)
		   (CopyCV (WtPerQty MinLifetime VolPerQty AvgPrice Icon MaxLifetime))
		   (Icon ?)
		   (AvgPrice ?)
		   (VolPerQty ?)
		   (MaxLifetime ?))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Groceries
   (MetaClass CommodityClassMeta Edited:                     (* mjs: "23-JAN-83 10:05"))
   (Supers Commodity)
   (ClassVariables (WtPerQty 50)
		   (CopyCV (WtPerQty VolPerQty AvgPrice Icon))
		   (Icon ?)
		   (AvgPrice ?)
		   (VolPerQty ?))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Hardware
   (MetaClass CommodityClassMeta Edited:                     (* mjs: "23-JAN-83 10:05"))
   (Supers Commodity)
   (ClassVariables (WtPerQty 50)
		   (CopyCV (WtPerQty VolPerQty AvgPrice Icon))
		   (Icon ?)
		   (AvgPrice ?)
		   (VolPerQty ?))
   (InstanceVariables)
   (Methods)]

[DEFCLASS LuxuryGoods
   (MetaClass CommodityClassMeta Edited:                     (* mjs: "23-JAN-83 10:05"))
   (Supers Commodity)
   (ClassVariables (WtPerQty 50)
		   (CopyCV (WtPerQty VolPerQty AvgPrice Icon))
		   (Icon ?)
		   (AvgPrice ?)
		   (VolPerQty ?))
   (InstanceVariables)
   (Methods)]

[DEFCLASS OfficeSupplies
   (MetaClass CommodityClassMeta Edited:                     (* mjs: "23-JAN-83 10:06"))
   (Supers Commodity)
   (ClassVariables (WtPerQty 50)
		   (CopyCV (WtPerQty VolPerQty AvgPrice Icon))
		   (Icon ?)
		   (AvgPrice ?)
		   (VolPerQty ?))
   (InstanceVariables)
   (Methods)]

[DEFCLASS SportingGoods
   (MetaClass CommodityClassMeta Edited:                     (* mjs: "23-JAN-83 10:06"))
   (Supers Commodity)
   (ClassVariables (WtPerQty 50)
		   (CopyCV (WtPerQty VolPerQty AvgPrice Icon))
		   (Icon ?)
		   (AvgPrice ?)
		   (VolPerQty ?))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Vegetable
   (MetaClass CommodityClassMeta Edited:                     (* mjs: "23-JAN-83 10:08"))
   (Supers PerishableCommodity Groceries)
   (ClassVariables (WtPerQty 50)
		   (MinLifetime ?)
		   (CopyCV (WtPerQty MinLifetime VolPerQty AvgPrice Icon MaxLifetime))
		   (Icon ?)
		   (AvgPrice ?)
		   (VolPerQty ?)
		   (MaxLifetime ?))
   (InstanceVariables)
   (Methods)]

(* * Commodities.)

(DEFCLASSES Apple ArtSupplies BaseBall Bicycle Book Carrot Diamond Dishes Egg Gasoline Gold Grape 
	    Hammer Pants Refrigerator Saw Shirt StereoSystem Strawberry Television Tomato Xerox1100)
[DEFCLASS Apple
   (MetaClass CommodityMeta Edited:                          (* sm: "14-FEB-83 10:59"))
   (Supers Fruit)
   (ClassVariables (WtPerQty 50)
		   (MinLifetime 7)
		   (Icon appleIcon)
		   (AvgPrice 150)
		   (VolPerQty 50)
		   (MaxLifetime 20))
   (InstanceVariables (price 40))
   (Methods (Display Apple.Display args NIL doc              (*))
	    (SetPrice Apple.SetPrice args (newPrice)
		      doc                                    (* Complain on increases; cheer when price goes down)
		      ))]

[DEFCLASS ArtSupplies
   (MetaClass CommodityMeta Edited:                          (* sm: "14-FEB-83 11:00"))
   (Supers OfficeSupplies)
   (ClassVariables (Icon ArtIcon)
		   (AvgPrice 500)
		   (VolPerQty 200)
		   (WtPerQty 150))
   (InstanceVariables)
   (Methods)]

[DEFCLASS BaseBall
   (MetaClass CommodityMeta Edited:                          (* sm: "14-FEB-83 11:01"))
   (Supers SportingGoods)
   (ClassVariables (Icon BaseBallIcon)
		   (AvgPrice 900)
		   (VolPerQty 100)
		   (WtPerQty 250))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Bicycle
   (MetaClass CommodityMeta Edited:                          (* sm: "14-FEB-83 11:02"))
   (Supers SportingGoods)
   (ClassVariables (Icon BicycleIcon)
		   (AvgPrice 1200)
		   (VolPerQty 200)
		   (WtPerQty 350))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Book
   (MetaClass CommodityMeta Edited:                          (* sm: "14-FEB-83 11:03"))
   (Supers OfficeSupplies)
   (ClassVariables (Icon BookIcon)
		   (AvgPrice 300)
		   (VolPerQty 75)
		   (WtPerQty 250))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Carrot
   (MetaClass CommodityMeta Edited:                          (* sm: "14-FEB-83 11:03"))
   (Supers Vegetable)
   (ClassVariables (WtPerQty 40)
		   (MinLifetime 6)
		   (Icon carrotIcon)
		   (AvgPrice 200)
		   (VolPerQty 50)
		   (MaxLifetime 20))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Diamond
   (MetaClass CommodityMeta Edited:                          (* sm: "14-FEB-83 11:04"))
   (Supers LuxuryGoods)
   (ClassVariables (WtPerQty 50)
		   (Icon diamondIcon)
		   (AvgPrice 4000)
		   (VolPerQty 50))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Dishes
   (MetaClass CommodityMeta Edited:                          (* sm: "14-FEB-83 11:05"))
   (Supers FragileCommodity Hardware)
   (ClassVariables (Icon DishesIcon)
		   (AvgPrice 400)
		   (VolPerQty 50)
		   (WtPerQty 75)
		   (FragilityLevel 18))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Egg
   (MetaClass CommodityMeta Edited:                          (* sm: "14-FEB-83 11:06"))
   (Supers FragileCommodity Groceries)
   (ClassVariables (WtPerQty 50)
		   (Icon EggIcon)
		   (AvgPrice 150)
		   (VolPerQty 50)
		   (FragilityLevel 14))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Gasoline
   (MetaClass CommodityMeta Edited:                          (* sm: "14-FEB-83 11:07"))
   (Supers Commodity)
   (ClassVariables (Icon gasIcon)
		   (AvgPrice 10)
		   (VolPerQty 1)
		   (WtPerQty 1))
   (InstanceVariables)
   (Methods (CanTransfer Gasoline.CanTransfer doc            (* CanTransfer specialized for Gasoline))
	    (TransferOwner Gasoline.TransferOwner args (newOwner priceRatio qty)
			   doc                               (* transfers gasoline from one owner to another)
			   ))]

[DEFCLASS Gold
   (MetaClass CommodityMeta Edited:                          (* sm: "14-FEB-83 11:08"))
   (Supers LuxuryGoods)
   (ClassVariables (WtPerQty 400)
		   (Icon goldIcon)
		   (AvgPrice 3200)
		   (VolPerQty 200))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Grape
   (MetaClass CommodityMeta Edited:                          (* sm: "14-FEB-83 11:09"))
   (Supers Fruit)
   (ClassVariables (WtPerQty 50)
		   (MinLifetime 3)
		   (Icon GrapesIcon)
		   (AvgPrice 350)
		   (VolPerQty 75)
		   (MaxLifetime 6))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Hammer
   (MetaClass CommodityMeta Edited:                          (* sm: "14-FEB-83 11:10"))
   (Supers Hardware)
   (ClassVariables (WtPerQty 300)
		   (Icon HammerIcon)
		   (AvgPrice 800)
		   (VolPerQty 50))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Pants
   (MetaClass CommodityMeta Edited:                          (* sm: "14-FEB-83 11:11"))
   (Supers Clothing)
   (ClassVariables (Icon PantsIcon)
		   (AvgPrice 1200)
		   (VolPerQty 180)
		   (WtPerQty 40))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Refrigerator
   (MetaClass CommodityMeta Edited:                          (* sm: "14-FEB-83 11:12"))
   (Supers Appliances)
   (ClassVariables (WtPerQty 500)
		   (Icon RefrigeratorIcon)
		   (AvgPrice 1500)
		   (VolPerQty 400))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Saw
   (MetaClass CommodityMeta Edited:                          (* sm: "14-FEB-83 11:12"))
   (Supers Hardware)
   (ClassVariables (Icon SawIcon)
		   (AvgPrice 400)
		   (VolPerQty 50)
		   (WtPerQty 50))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Shirt
   (MetaClass CommodityMeta Edited:                          (* sm: "14-FEB-83 11:13"))
   (Supers Clothing)
   (ClassVariables (Icon shirtIcon)
		   (AvgPrice 800)
		   (VolPerQty 100)
		   (WtPerQty 30))
   (InstanceVariables)
   (Methods)]

[DEFCLASS StereoSystem
   (MetaClass CommodityMeta Edited:                          (* sm: "14-FEB-83 11:14"))
   (Supers FragileCommodity Appliances LuxuryGoods)
   (ClassVariables (WtPerQty 200)
		   (Icon StereoSystemIcon)
		   (AvgPrice 1200)
		   (VolPerQty 100)
		   (FragilityLevel 8))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Strawberry
   (MetaClass CommodityMeta Edited:                          (* sm: "14-FEB-83 11:16"))
   (Supers FragileCommodity Fruit)
   (ClassVariables (WtPerQty 40)
		   (MinLifetime 3)
		   (MaxLifetime 6)
		   (Icon StrawberryIcon)
		   (AvgPrice 300)
		   (VolPerQty 60)
		   (FragilityLevel 16))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Television
   (MetaClass CommodityMeta Edited:                          (* sm: "14-FEB-83 11:17"))
   (Supers FragileCommodity Appliances)
   (ClassVariables (WtPerQty 200)
		   (Icon televisionIcon)
		   (AvgPrice 1000)
		   (VolPerQty 150)
		   (FragilityLevel 10))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Tomato
   (MetaClass CommodityMeta Edited:                          (* sm: "14-FEB-83 11:28"))
   (Supers FragileCommodity Vegetable)
   (ClassVariables (WtPerQty 50)
		   (MinLifetime 4)
		   (MaxLifetime 10)
		   (Icon tomatoIcon)
		   (AvgPrice 200)
		   (VolPerQty 50)
		   (FragilityLevel 16))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Xerox1100
   (MetaClass CommodityMeta Edited:                          (* sm: "14-FEB-83 11:34"))
   (Supers OfficeSupplies)
   (ClassVariables (WtPerQty 400)
		   (VolPerQty 200)
		   (AvgPrice 2000)
		   (Icon xerox1100Icon))
   (InstanceVariables)
   (Methods)]

(* * Generic Classes.)

(DEFCLASSES GasStation Hazard RoughRoad WeighStation)
[DEFCLASS GasStation
   (MetaClass GameAbstractClass Edited:                      (* mjs: "20-FEB-83 12:53"))
   (Supers Producer)
   (ClassVariables (Icon gasIcon)
		   (CopyCV (RoadSign Pr Qty Commodity))
		   (RoadSign "Gas Station")
		   (Commodity #$Gasoline)
		   (Qty 700)
		   (Pr .9))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Hazard
   (MetaClass GameClass Edited:                              (* sm: "10-FEB-83 14:58"))
   (Supers GameObject)
   (ClassVariables (Icon hazardIcon)
		   (InstancePrefix HAZ)
		   (UnnamedInstanceCount 0)
		   (CopyCV (Icon))
		   (Shade HazardShade))
   (InstanceVariables)
   (Methods)]

[DEFCLASS RoughRoad
   (MetaClass GameClass Edited:                              (* sm: "28-JAN-83 21:26"))
   (Supers Hazard OtherRoadStop)
   (ClassVariables (CopyCV (Icon RoadSign))
		   (Icon RoughRoadIcon)
		   (RoadSign "BUMPS"))
   (InstanceVariables (roughness 5 doc                       (* on a scale of 1 to 10)))
   (Methods (GoingPast RoughRoad.GoingPast))]

[DEFCLASS WeighStation
   (MetaClass GameClass Edited:                              (* sm: "10-FEB-83 15:00"))
   (Supers Hazard OtherRoadStop)
   (ClassVariables (Icon WeighStationIcon)
		   (RoadSign "Weigh In!")
		   (Shade WeighStationShade))
   (InstanceVariables (weightTax 1 doc                       (* dollars per unit weight that one pays at the weigh 
							     station))
		      (penaltyFactor 5 doc                   (* factor on weightTax you pay if you go past the 
							     station)))
   (Methods (GoingPast WeighStation.GoingPast doc            (* Message sent when a player wats to go past 
							     WeighStation.))
	    (Visit WeighStation.Visit doc                    (* Does the checking for Weigh Station fines if visting)
		   ))]

(* * Gas Stations.)

(DEFCLASSES BrandX CheapGas DirtyDans KeithGas MityMarks SheikGas)
[DEFCLASS BrandX
   (MetaClass GameClass Edited:                              (* sm: "20-FEB-83 18:03"))
   (Supers GasStation)
   (ClassVariables (CopyCV (RoadSign Pr Qty Commodity))
		   (Commodity #$Gasoline)
		   (Qty 700)
		   (Pr 1.1)
		   (RoadSign "BrandX"))
   (InstanceVariables)
   (Methods)]

[DEFCLASS CheapGas
   (MetaClass GameClass Edited:                              (* sm: "20-FEB-83 18:03"))
   (Supers GasStation)
   (ClassVariables (CopyCV (RoadSign Pr Qty Commodity))
		   (Commodity #$Gasoline)
		   (Qty 700)
		   (Pr .9)
		   (RoadSign "CheapGas"))
   (InstanceVariables)
   (Methods)]

[DEFCLASS DirtyDans
   (MetaClass GameClass Edited:                              (* sm: "20-FEB-83 18:03"))
   (Supers GasStation)
   (ClassVariables (CopyCV (RoadSign Pr Qty Commodity))
		   (Commodity #$Gasoline)
		   (Qty 700)
		   (Pr 1)
		   (RoadSign "DirtyDans"))
   (InstanceVariables)
   (Methods)]

[DEFCLASS KeithGas
   (MetaClass GameClass Edited:                              (* sm: "20-FEB-83 18:03"))
   (Supers GasStation)
   (ClassVariables (CopyCV (RoadSign Pr Qty Commodity))
		   (Commodity #$Gasoline)
		   (Qty 750)
		   (Pr 1.2)
		   (RoadSign "Keith's Gas"))
   (InstanceVariables)
   (Methods)]

[DEFCLASS MityMarks
   (MetaClass GameClass Edited:                              (* sm: "20-FEB-83 18:03"))
   (Supers GasStation)
   (ClassVariables (CopyCV (RoadSign Pr Qty Commodity))
		   (Commodity #$Gasoline)
		   (Qty 700)
		   (Pr .9)
		   (RoadSign "MityMarks"))
   (InstanceVariables)
   (Methods)]

[DEFCLASS SheikGas
   (MetaClass GameClass Edited:                              (* sm: "20-FEB-83 18:04"))
   (Supers GasStation)
   (ClassVariables (CopyCV (RoadSign Pr Qty Commodity))
		   (Commodity #$Gasoline)
		   (Qty 700)
		   (Pr 1.5)
		   (RoadSign "Sheik Gas"))
   (InstanceVariables)
   (Methods)]

(* * Producers.)

(DEFCLASSES ArtsArt BookStop BunnyCarrot Clucks DebbyDiamonds EatOn EggHead FortyNiners Grapefully 
	    H&J HotPants IceBox JordyTV MacsApples MarysHens MattStereo MinaVox MorganBikes 
	    Mosquitomato OldStereo PetesPatch PrintInc RitaBook SeePast Shirtless SmashM SmitaFarms 
	    Sparklers TomsToms TwoEars TwoWheeler VeryBerry VinsVines XSIS Yankees)
[DEFCLASS ArtsArt
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 12:58"))
   (Supers Producer)
   (ClassVariables (RoadSign "Art's Art")
		   (Commodity #$ArtSupplies)
		   (Qty 400)
		   (Pr 1))
   (InstanceVariables)
   (Methods)]

[DEFCLASS BookStop
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 12:58"))
   (Supers Producer)
   (ClassVariables (RoadSign BookStop)
		   (Commodity #$Book)
		   (Qty 200)
		   (Pr .85))
   (InstanceVariables)
   (Methods)]

[DEFCLASS BunnyCarrot
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 12:58"))
   (Supers Producer)
   (ClassVariables (RoadSign "BunnyCarrot")
		   (Commodity #$Carrot)
		   (Qty 800)
		   (Pr .8))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Clucks
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 12:59"))
   (Supers Producer)
   (ClassVariables (RoadSign "Cluck's Eggs")
		   (Commodity #$Egg)
		   (Qty 400)
		   (Pr .9))
   (InstanceVariables)
   (Methods)]

[DEFCLASS DebbyDiamonds
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 12:59"))
   (Supers Producer)
   (ClassVariables (RoadSign "Debby Dmds")
		   (Commodity #$Diamond)
		   (Qty 10)
		   (Pr .9))
   (InstanceVariables)
   (Methods)]

[DEFCLASS EatOn
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 12:59"))
   (Supers Producer)
   (ClassVariables (RoadSign "EatOn Dishes")
		   (Commodity #$Dishes)
		   (Qty 250)
		   (Pr 1))
   (InstanceVariables)
   (Methods)]

[DEFCLASS EggHead
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 12:59"))
   (Supers Producer)
   (ClassVariables (RoadSign "EggHead")
		   (Commodity #$Egg)
		   (Qty 500)
		   (Pr 1.2))
   (InstanceVariables)
   (Methods)]

[DEFCLASS FortyNiners
   (MetaClass GameClass doc 

          (* * Old California gold for sale here.)


	      Edited:                                        (* mjs: "20-FEB-83 12:59")
	      )
   (Supers Producer)
   (ClassVariables (RoadSign "49'er Mines")
		   (Commodity #$Gold)
		   (Pr .9)
		   (Qty 40))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Grapefully
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 12:59"))
   (Supers Producer)
   (ClassVariables (RoadSign Grapefully)
		   (Commodity #$Grape)
		   (Qty 330)
		   (Pr .95))
   (InstanceVariables)
   (Methods)]

[DEFCLASS H&J
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 12:59"))
   (Supers Producer)
   (ClassVariables (RoadSign "H&J Saws")
		   (Commodity #$Saw)
		   (Qty 200)
		   (Pr 1.1))
   (InstanceVariables)
   (Methods)]

[DEFCLASS HotPants
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 12:59"))
   (Supers Producer)
   (ClassVariables (RoadSign "HotPANTS")
		   (Commodity #$Pants)
		   (Qty 250)
		   (Pr .95))
   (InstanceVariables)
   (Methods)]

[DEFCLASS IceBox
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 12:59"))
   (Supers Producer)
   (ClassVariables (RoadSign "Ice Boxes")
		   (Commodity #$Refrigerator)
		   (Qty 150)
		   (Pr 1))
   (InstanceVariables)
   (Methods)]

[DEFCLASS JordyTV
   (MetaClass GameClass doc 

          (* * TVs straight off the boat.)


	      Edited:                                        (* mjs: "20-FEB-83 12:59")
	      )
   (Supers Producer)
   (ClassVariables (RoadSign "Jordy's TV")
		   (Commodity #$Television)
		   (Pr 1)
		   (Qty 100))
   (InstanceVariables)
   (Methods)]

[DEFCLASS MacsApples
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 12:59"))
   (Supers Producer)
   (ClassVariables (CopyCV (RoadSign Pr Qty Commodity))
		   (RoadSign "Macs Apples")
		   (Commodity #$Apple)
		   (Qty 420)
		   (Pr .9))
   (InstanceVariables)
   (Methods)]

[DEFCLASS MarysHens
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 13:00"))
   (Supers Producer)
   (ClassVariables (RoadSign "Mary's Hens")
		   (Commodity #$Egg)
		   (Qty 200)
		   (Pr .8))
   (InstanceVariables)
   (Methods)]

[DEFCLASS MattStereo
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 13:00"))
   (Supers Producer)
   (ClassVariables (RoadSign MattStereo)
		   (Commodity #$StereoSystem)
		   (Qty 200)
		   (Pr 1.1))
   (InstanceVariables)
   (Methods)]

[DEFCLASS MinaVox
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 13:00"))
   (Supers Producer)
   (ClassVariables (RoadSign "MinaVox U C")
		   (Commodity #$Television)
		   (Qty 200)
		   (Pr .9))
   (InstanceVariables)
   (Methods)]

[DEFCLASS MorganBikes
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 13:00"))
   (Supers Producer)
   (ClassVariables (RoadSign "MorganBikes")
		   (Commodity #$Bicycle)
		   (Qty 500)
		   (Pr 1.4))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Mosquitomato
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 13:00"))
   (Supers Producer)
   (ClassVariables (RoadSign Mosquitomato)
		   (Commodity #$Tomato)
		   (Qty 600)
		   (Pr .9))
   (InstanceVariables)
   (Methods)]

[DEFCLASS OldStereo
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 13:00"))
   (Supers Producer)
   (ClassVariables (RoadSign "Old Stereos")
		   (Commodity #$StereoSystem)
		   (Qty 100)
		   (Pr .8))
   (InstanceVariables)
   (Methods)]

[DEFCLASS PetesPatch
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 13:00"))
   (Supers Producer)
   (ClassVariables (CopyCV (RoadSign Pr Qty Commodity))
		   (RoadSign "Petes Patch")
		   (Commodity #$Strawberry)
		   (Qty 700)
		   (Pr 1.2))
   (InstanceVariables)
   (Methods)]

[DEFCLASS PrintInc
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 13:00"))
   (Supers Producer)
   (ClassVariables (RoadSign PrintInc)
		   (Commodity #$Book)
		   (Qty 500)
		   (Pr 1))
   (InstanceVariables)
   (Methods)]

[DEFCLASS RitaBook
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 13:00"))
   (Supers Producer)
   (ClassVariables (RoadSign "Rita Book")
		   (Commodity #$Book)
		   (Qty 200)
		   (Pr .8))
   (InstanceVariables)
   (Methods)]

[DEFCLASS SeePast
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 13:00"))
   (Supers Producer)
   (ClassVariables (RoadSign "See (Past)")
		   (Commodity #$Saw)
		   (Qty 350)
		   (Pr .9))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Shirtless
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 13:00"))
   (Supers Producer)
   (ClassVariables (RoadSign Shirtless)
		   (Commodity #$Shirt)
		   (Qty 300)
		   (Pr 1))
   (InstanceVariables)
   (Methods)]

[DEFCLASS SmashM
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 13:01"))
   (Supers Producer)
   (ClassVariables (RoadSign "Smash Em")
		   (Commodity #$Hammer)
		   (Qty 450)
		   (Pr 1))
   (InstanceVariables)
   (Methods)]

[DEFCLASS SmitaFarms
   (MetaClass GameClass doc 

          (* * Smita's Apple Ranch. A Good place to buy premium apples.)


	      Edited:                                        (* mjs: "20-FEB-83 13:01")
	      )
   (Supers Producer)
   (ClassVariables (RoadSign "Smita Farms")
		   (Commodity #$Apple)
		   (Pr 1.3)
		   (Qty 750))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Sparklers
   (MetaClass GameClass doc 

          (* * The basic source for wholesale diamonds. Representative of the Diamond cartel.)


	      Edited:                                        (* mjs: "20-FEB-83 13:01")
	      )
   (Supers Producer)
   (ClassVariables (RoadSign "Sparklers")
		   (Commodity #$Diamond)
		   (Pr 1.8)
		   (Qty 30))
   (InstanceVariables)
   (Methods)]

[DEFCLASS TomsToms
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 13:01"))
   (Supers Producer)
   (ClassVariables (RoadSign "Tom's Matos")
		   (Commodity #$Tomato)
		   (Qty 650)
		   (Pr 1.5))
   (InstanceVariables)
   (Methods)]

[DEFCLASS TwoEars
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 13:01"))
   (Supers Producer)
   (ClassVariables (RoadSign "2Ears Stereo")
		   (Commodity #$StereoSystem)
		   (Qty 360)
		   (Pr 1.9))
   (InstanceVariables)
   (Methods)]

[DEFCLASS TwoWheeler
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 13:01"))
   (Supers Producer)
   (ClassVariables (RoadSign TwoWheeler)
		   (Commodity #$Bicycle)
		   (Qty 200)
		   (Pr .9))
   (InstanceVariables)
   (Methods)]

[DEFCLASS VeryBerry
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 13:02"))
   (Supers Producer)
   (ClassVariables (RoadSign "VeryBerry")
		   (Commodity #$Strawberry)
		   (Qty 400)
		   (Pr .9))
   (InstanceVariables)
   (Methods)]

[DEFCLASS VinsVines
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 13:02"))
   (Supers Producer)
   (ClassVariables (RoadSign "Vin's Vines")
		   (Commodity #$Grape)
		   (Qty 600)
		   (Pr 1))
   (InstanceVariables)
   (Methods)]

[DEFCLASS XSIS
   (MetaClass GameClass Edited:                              (* sm: " 6-JUN-83 10:14"))
   (Supers Producer)
   (ClassVariables (RoadSign "XSIS")
		   (Commodity #$Xerox1100)
		   (Pr 1)
		   (Qty 300))
   (InstanceVariables)
   (Methods)]

[DEFCLASS Yankees
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 13:02"))
   (Supers Producer)
   (ClassVariables (RoadSign Yankees)
		   (Commodity #$BaseBall)
		   (Qty 400)
		   (Pr 1.2))
   (InstanceVariables)
   (Methods)]

(* * Consumers.)

(DEFCLASSES AFitch BillsTools CityDump DonnaFashions ExpertSystems FineFoods FredsFruits FreshStuff 
	    HomeGoods HomeImp JamNJelly KimsStuff MakeADeal MittalMetal MunicipalDump OshPerson 
	    PaigesBooks PaperPlace PlugItIn PreetPalace ReidBits SJFleaMkt SauceFactory SeeItNow 
	    StereoHaven StopAndBuy ToniBoutique VegiMart)
[DEFCLASS AFitch
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 12:54"))
   (Supers Consumer)
   (ClassVariables (RoadSign "A. Fitch Co")
		   (Commodity #$LuxuryGoods)
		   (Qty 100)
		   (Pr 4.5))
   (InstanceVariables)
   (Methods)]

[DEFCLASS BillsTools
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 12:55"))
   (Supers Consumer)
   (ClassVariables (RoadSign "BillsTools")
		   (Commodity #$Hardware)
		   (Qty 700)
		   (Pr 5))
   (InstanceVariables)
   (Methods)]

[DEFCLASS CityDump
   (MetaClass GameClass doc 

          (* * A Place to get rid of spoiled merchandise.)


	      Edited:                                        (* mjs: "20-FEB-83 12:55")
	      )
   (Supers Consumer)
   (ClassVariables (Pr -.5)
		   (Commodity #$Commodity)
		   (CopyCV (Pr Qty))
		   (Qty 750)
		   (RoadSign "City Dump"))
   (InstanceVariables (pr -.05))
   (Methods (CanBuy CityDump.CanBuy args NIL))]

[DEFCLASS DonnaFashions
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 12:55"))
   (Supers Consumer)
   (ClassVariables (RoadSign "DonnaFshns")
		   (Commodity #$Clothing)
		   (Qty 400)
		   (Pr 4.5))
   (InstanceVariables)
   (Methods)]

[DEFCLASS ExpertSystems
   (MetaClass GameClass Edited:                              (* sm: "21-FEB-83 12:41"))
   (Supers Consumer)
   (ClassVariables (CopyCV (RoadSign Pr Qty))
		   (RoadSign "Expert Sys")
		   (Commodity #$Xerox1100)
		   (Qty 100)
		   (Pr 6.5))
   (InstanceVariables)
   (Methods)]

[DEFCLASS FineFoods
   (MetaClass GameClass Edited:                              (* sm: "21-FEB-83 12:41"))
   (Supers Consumer)
   (ClassVariables (RoadSign "Fine Foods")
		   (Commodity #$Groceries)
		   (Qty 700)
		   (Pr 7))
   (InstanceVariables)
   (Methods)]

[DEFCLASS FredsFruits
   (MetaClass GameClass Edited:                              (* sm: "21-FEB-83 12:41"))
   (Supers Consumer)
   (ClassVariables (RoadSign "Fred's Fruits")
		   (Commodity #$Fruit)
		   (Qty 500)
		   (Pr 9))
   (InstanceVariables)
   (Methods)]

[DEFCLASS FreshStuff
   (MetaClass GameClass Edited:                              (* sm: "21-FEB-83 12:41"))
   (Supers Consumer)
   (ClassVariables (RoadSign "FreshStuff")
		   (Commodity #$Fruit)
		   (Qty 700)
		   (Pr 9.5))
   (InstanceVariables)
   (Methods)]

[DEFCLASS HomeGoods
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 12:55"))
   (Supers Consumer)
   (ClassVariables (RoadSign "Home Goods")
		   (Commodity #$Appliances)
		   (Qty 450)
		   (Pr 4))
   (InstanceVariables)
   (Methods)]

[DEFCLASS HomeImp
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 12:55"))
   (Supers Consumer)
   (ClassVariables (RoadSign "HomeImp")
		   (Commodity #$Hardware)
		   (Qty 400)
		   (Pr 6))
   (InstanceVariables)
   (Methods)]

[DEFCLASS JamNJelly
   (MetaClass GameClass Edited:                              (* sm: "21-FEB-83 12:42"))
   (Supers Consumer)
   (ClassVariables (CopyCV (RoadSign Pr Qty Commodity))
		   (RoadSign "Jam-N-Jelly")
		   (Commodity #$Strawberry)
		   (Qty 200)
		   (Pr 11))
   (InstanceVariables)
   (Methods)]

[DEFCLASS KimsStuff
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 12:56"))
   (Supers Consumer)
   (ClassVariables (RoadSign "Kims Stuff")
		   (Commodity #$Commodity)
		   (Qty 700)
		   (Pr 3))
   (InstanceVariables)
   (Methods)]

[DEFCLASS MakeADeal
   (MetaClass GameClass doc 

          (* * The Marin Flea Market. A great place to sell anything, but at a cut rate. Caveat Emptor.)


	      Edited:                                        (* mjs: "20-FEB-83 12:56")
	      )
   (Supers Consumer)
   (ClassVariables (Pr 1.6)
		   (Qty 700)
		   (Commodity #$Commodity)
		   (RoadSign "MakeADeal"))
   (InstanceVariables)
   (Methods)]

[DEFCLASS MittalMetal
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 12:56"))
   (Supers Consumer)
   (ClassVariables (RoadSign "MittalMetal")
		   (Commodity #$Gold)
		   (Qty 15)
		   (Pr 9))
   (InstanceVariables)
   (Methods)]

[DEFCLASS MunicipalDump
   (MetaClass GameClass Edited:                              (* sm: "14-FEB-83 13:23"))
   (Supers CityDump)
   (ClassVariables (CopyCV (RoadSign Pr Qty Commodity))
		   (RoadSign "Muni Dump")
		   (Commodity #$Commodity)
		   (Qty 700)
		   (Pr -.1))
   (InstanceVariables (pr -.1))
   (Methods)]

[DEFCLASS OshPerson
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 12:56"))
   (Supers Consumer)
   (ClassVariables (RoadSign "OshPerson")
		   (Commodity #$SportingGoods)
		   (Qty 500)
		   (Pr 5))
   (InstanceVariables)
   (Methods)]

[DEFCLASS PaigesBooks
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 12:56"))
   (Supers Consumer)
   (ClassVariables (RoadSign "PaigesBooks")
		   (Commodity #$Book)
		   (Qty 100)
		   (Pr 6.5))
   (InstanceVariables)
   (Methods)]

[DEFCLASS PaperPlace
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 12:56"))
   (Supers Consumer)
   (ClassVariables (RoadSign "Paper Place")
		   (Commodity #$OfficeSupplies)
		   (Qty 700)
		   (Pr 3))
   (InstanceVariables)
   (Methods)]

[DEFCLASS PlugItIn
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 12:56"))
   (Supers Consumer)
   (ClassVariables (RoadSign "PlugItIn")
		   (Commodity #$Appliances)
		   (Qty 200)
		   (Pr 5.5))
   (InstanceVariables)
   (Methods)]

[DEFCLASS PreetPalace
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 12:57"))
   (Supers Consumer)
   (ClassVariables (RoadSign "PreetPalace")
		   (Commodity #$LuxuryGoods)
		   (Qty 40)
		   (Pr 7))
   (InstanceVariables)
   (Methods)]

[DEFCLASS ReidBits
   (MetaClass GameClass Edited:                              (* sm: "21-FEB-83 12:42"))
   (Supers Consumer)
   (ClassVariables (CopyCV (RoadSign Pr Qty Commodity))
		   (RoadSign "Reid's Bits")
		   (Commodity #$Xerox1100)
		   (Qty 50)
		   (Pr 10))
   (InstanceVariables)
   (Methods)]

[DEFCLASS SJFleaMkt
   (MetaClass GameClass doc 

          (* * The San Jose Flea Market. A great place to sell anything, but at a cut rate. Caveate Emptor.)


	      Edited:                                        (* mjs: "20-FEB-83 12:57")
	      )
   (Supers Consumer)
   (ClassVariables (Pr 1.2)
		   (Qty 700)
		   (Commodity #$Commodity)
		   (RoadSign "Flea Mkt"))
   (InstanceVariables)
   (Methods)]

[DEFCLASS SauceFactory
   (MetaClass GameClass Edited:                              (* sm: "21-FEB-83 12:43"))
   (Supers Consumer)
   (ClassVariables (CopyCV (RoadSign Pr Qty Commodity))
		   (RoadSign "SauceFactory")
		   (Commodity #$Tomato)
		   (Qty 200)
		   (Pr 9))
   (InstanceVariables)
   (Methods)]

[DEFCLASS SeeItNow
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 12:57"))
   (Supers Consumer)
   (ClassVariables (RoadSign "SeeItNow")
		   (Commodity #$Television)
		   (Qty 100)
		   (Pr 7))
   (InstanceVariables)
   (Methods)]

[DEFCLASS StereoHaven
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 12:57"))
   (Supers Consumer)
   (ClassVariables (RoadSign "Stereo Haven")
		   (Commodity #$StereoSystem)
		   (Qty 90)
		   (Pr 6.5))
   (InstanceVariables)
   (Methods)]

[DEFCLASS StopAndBuy
   (MetaClass GameClass Edited:                              (* sm: "21-FEB-83 12:43"))
   (Supers Consumer)
   (ClassVariables (CopyCV (RoadSign Pr Qty))
		   (RoadSign "Stop-N-Buy")
		   (Commodity #$Groceries)
		   (Qty 600)
		   (Pr 6))
   (InstanceVariables)
   (Methods)]

[DEFCLASS ToniBoutique
   (MetaClass GameClass Edited:                              (* mjs: "20-FEB-83 12:57"))
   (Supers Consumer)
   (ClassVariables (CopyCV (RoadSign Pr Qty Commodity))
		   (RoadSign "Toni's Boutique")
		   (Commodity #$Clothing)
		   (Qty 200)
		   (Pr 6))
   (InstanceVariables)
   (Methods)]

[DEFCLASS VegiMart
   (MetaClass GameClass Edited:                              (* sm: "21-FEB-83 12:43"))
   (Supers Consumer)
   (ClassVariables (RoadSign "Vegi Mart")
		   (Commodity #$Vegetable)
		   (Qty 400)
		   (Pr 8))
   (InstanceVariables)
   (Methods)]

(* * Special RoadStops.)

(DEFCLASSES CurvyRoad BrokenPipe PotHole IcyRoad DirtRoad LaneClosed MenAtWork BigBumps WS4 WS3 WS2 
	    WS1 AlicesRestaurant UnionHall)
[DEFCLASS CurvyRoad
   (MetaClass GameClass Edited:                              (* sm: "28-JAN-83 21:24"))
   (Supers RoughRoad)
   (ClassVariables (RoadSign "Curves!"))
   (InstanceVariables (roughness 6))
   (Methods)]

[DEFCLASS BrokenPipe
   (MetaClass GameClass Edited:                              (* sm: "28-JAN-83 21:24"))
   (Supers RoughRoad)
   (ClassVariables (RoadSign "Broken Pipe"))
   (InstanceVariables (roughness 7))
   (Methods)]

[DEFCLASS PotHole
   (MetaClass GameClass Edited:                              (* sm: "28-JAN-83 21:24"))
   (Supers RoughRoad)
   (ClassVariables (RoadSign "Pot Hole"))
   (InstanceVariables (roughness 7))
   (Methods)]

[DEFCLASS IcyRoad
   (MetaClass GameClass Edited:                              (* sm: "28-JAN-83 21:24"))
   (Supers RoughRoad)
   (ClassVariables (RoadSign "Icy Road"))
   (InstanceVariables (roughness 4))
   (Methods)]

[DEFCLASS DirtRoad
   (MetaClass GameClass Edited:                              (* sm: "28-JAN-83 21:25"))
   (Supers RoughRoad)
   (ClassVariables (RoadSign "DirtRoad"))
   (InstanceVariables (roughness 5))
   (Methods)]

[DEFCLASS LaneClosed
   (MetaClass GameClass Edited:                              (* sm: "28-JAN-83 21:25"))
   (Supers RoughRoad)
   (ClassVariables (RoadSign "Lane Closed"))
   (InstanceVariables (roughness 3))
   (Methods)]

[DEFCLASS MenAtWork
   (MetaClass GameClass Edited:                              (* mjs: "30-JAN-83 14:33"))
   (Supers RoughRoad)
   (ClassVariables (RoadSign "Men At Work"))
   (InstanceVariables (roughness 5))
   (Methods)]

[DEFCLASS BigBumps
   (MetaClass GameClass Edited:                              (* sm: "28-JAN-83 21:25"))
   (Supers RoughRoad)
   (ClassVariables (RoadSign "BUMP!!"))
   (InstanceVariables (roughness 8))
   (Methods)]

[DEFCLASS WS4
   (MetaClass Class Edited:                                  (* sm: "28-JAN-83 16:18"))
   (Supers WeighStation)
   (ClassVariables (RoadSign "Fish Scales"))
   (InstanceVariables (penaltyFactor 3))
   (Methods)]

[DEFCLASS WS3
   (MetaClass Class Edited:                                  (* mjs: "25-JAN-83 13:37"))
   (Supers WeighStation)
   (ClassVariables (RoadSign "Smokey Scales"))
   (InstanceVariables)
   (Methods)]

[DEFCLASS WS2
   (MetaClass Class Edited:                                  (* sm: "28-JAN-83 16:16"))
   (Supers WeighStation)
   (ClassVariables (RoadSign "Weigh Here"))
   (InstanceVariables (penaltyFactor 6))
   (Methods)]

[DEFCLASS WS1
   (MetaClass Class Edited:                                  (* sm: "28-JAN-83 16:16"))
   (Supers WeighStation)
   (ClassVariables (RoadSign "Scales Ahead"))
   (InstanceVariables (penaltyFactor 4))
   (Methods)]

[DEFCLASS AlicesRestaurant
   (MetaClass GameClass Edited:                              (* sm: "10-FEB-83 14:56"))
   (Supers OtherRoadStop)
   (ClassVariables (RoadSign "Alice's")
		   (Icon AlicesRestaurantIcon)
		   (Shade AlicesShade))
   (InstanceVariables)
   (Methods)]

[DEFCLASS UnionHall
   (MetaClass GameClass Edited:                              (* sm: "10-FEB-83 14:30"))
   (Supers OtherRoadStop)
   (ClassVariables (RoadSign "Union Hall")
		   (Icon UnionHallIcon)
		   (Shade UnionHallShade))
   (InstanceVariables)
   (Methods (Visit UnionHall.Visit doc                       (* Visit UnionHall)))]

(DEFINEQ

(Apple.Display
  [LAMBDA (self)                                             (* dgb: "23-JUN-83 09:28")
                                                             (* Display a big apple with its name superimposed)
    (PROG [name (W (CREATEWFROMIMAGE (BITMAPCOPY BigAppleIcon]
          (OPENW W)
          (COND
	    ((SETQ name (GetObjectName self))
	      (DSPXPOSITION 15 W)
	      (DSPYPOSITION 24 W)
	      (PRINT name W)))
          (GETMOUSESTATE)
          (MOVEW W (CONS LASTMOUSEX LASTMOUSEY))
          (MOVEW W)
          (RETURN W])

(Apple.SetPrice
  [LAMBDA (self newPrice)                                    (* sm: "30-JAN-83 16:20")
                                                             (* Complain on increases; cheer when price goes down)
    (PROG ((oldPrice (@ price)))
          (←@
	    price newPrice)
          (COND
	    ((GREATERP newPrice oldPrice)
	      (printout T newPrice " is more than " oldPrice ". Terrible inflation!!!" T))
	    ((GREATERP oldPrice newPrice)
	      (printout T newPrice " is less than " oldPrice ". What a pleasant surprise." T)))
          (RETURN newPrice])

(DefaultMustStops
  [LAMBDA NIL                                                (* sm: "15-FEB-83 10:36")
    (CONS (QUOTE UnionHall)
	  (APPEND BoardPattern MustStops])

(FillerRoadStops
  [LAMBDA (Must)                                             (* sm: "15-FEB-83 10:14")
    (PROG [(AllStops (SORT (APPEND Producers Consumers GasStations (APPEND OtherStops]
          (for x in Must do (DREMOVE x AllStops))
          (RETURN AllStops])

(Gasoline.CanTransfer
  [LAMBDA (self newOwner pr qty prevOwner)                   (* sm: " 6-JUN-83 18:05")
                                                             (* CanTransfer specialized for Gasoline)
    (← newOwner CanBuyFuel self (COND
	 ((NULL pr)
	   (%@ pr))
	 (T pr))
       (COND
	 ((NULL qty)
	   (%@ qty))
	 (T qty))
       prevOwner])

(RoughRoad.GoingPast
  [LAMBDA (self player dist)                                 (* dgb: " 9-JUN-83 19:02")
                                                             (* Message sent when a player wats to go past this 
							     roadstop.)
                                                             (* Returns: Reason if this RoadStop intercepts player.
							     NIL otherwise)
                                                             (* If not stopping here, checks if any cargo will break)
    (COND
      ((←Super
	  self GoingPast player dist))
      (T                                                     (* not stopping here. check cargo)
	 (for x in (@(@ player truck)
		     cargo)
	    do (DoFringeMethods x (QUOTE CheckFragility)
				self dist))
	 NIL])

(SetRoadStops
  [LAMBDA NIL                                                (* sm: "14-FEB-83 13:53")
    (SETQ RoadStops (SORT (APPEND Producers Consumers GasStations (APPEND OtherStops])

(UnionHall.Visit
  [LAMBDA (self player reason)                               (* sm: " 7-JUN-83 11:42")
                                                             (* Visit UnionHall)
    (←Super
      self Visit player reason)
    (← (%@ player truck)
       VisitUnionHall)
    player])

(WeighStation.GoingPast
  [LAMBDA (self player dist)                                 (* sm: " 7-JUN-83 12:04")
                                                             (* Message sent when a player wats to go past 
							     WeighStation.)
                                                             (* Returns: Reason if intercepts player directly or 
							     inherited. NIL otherwise)
    (COND
      ((←Super
	  self GoingPast player dist))
      ((AND (← self RoomToPark?)
	    (WSRuleViolated? player self dist))
	(QUOTE WeighStation))
      (T NIL])

(WeighStation.Visit
  [LAMBDA (self player reason)                               (* sm: " 7-JUN-83 18:32")
                                                             (* Does the checking for Weigh Station fines if visting)
    (PROG (fine (penalty 0)
		(truck (%@ player truck)))
          (←Super
	    self Visit player reason)
          [COND
	    ((NOT (← player InstOf!(QUOTE Bandit)))          (* visitor is regular player)
	      [COND
		((EQ reason (QUOTE WeighStation))
		  [SETQ penalty (TIMES (%@ penaltyFactor)
				       (PLUS 10 (%@ truck weight]
		  (BrokenRules player "Speeding past a WeighStation" NIL NIL (CONCAT 
									 "Forcibly stopped!! at "
										     (%@%@ RoadSign]
	      [SETQ fine (FIX (PLUS penalty (TIMES (%@ weightTax)
						   (PLUS 10 (%@ truck weight]
	      (COND
		((NOT (LESSP (%@ truck cashBox)
			     fine))
		  (WriteGameStatus (GetObjectName player)
				   " paid total Wt. Tax $" fine)
		  (ChangeValue truck (QUOTE cashBox)
			       (IDIFFERENCE (%@ truck cashBox)
					    fine)))
		(T (BrokenRules player (CONCAT "Cannot pay Wt. Tax of $" fine)
				NIL 1]
          (RETURN player])
)
(SetRoadStops)
(DECLARE: DONTCOPY
  (FILEMAP (NIL (41101 46176 (Apple.Display 41111 . 41670) (Apple.SetPrice 41672 . 42265) (
DefaultMustStops 42267 . 42443) (FillerRoadStops 42445 . 42734) (Gasoline.CanTransfer 42736 . 43103) (
RoughRoad.GoingPast 43105 . 43926) (SetRoadStops 43928 . 44123) (UnionHall.Visit 44125 . 44426) (
WeighStation.GoingPast 44428 . 45018) (WeighStation.Visit 45020 . 46174)))))
STOP