25 #ifndef PEGASUS_NEIGHBORHOOD_WSC_WSC_H 26 #define PEGASUS_NEIGHBORHOOD_WSC_WSC_H 28 #include "pegasus/neighborhood/neighborhood.h" 29 #include "pegasus/neighborhood/wsc/moleculebin.h" 33 static const DisplayOrder kWSCMoleculeBinOrder = kMonitorLayer;
34 static const DisplayOrder kWSCMoleculesMovieOrder = kWSCMoleculeBinOrder + 1;
36 static const RoomID kWSC01 = 0;
37 static const RoomID kWSC02Morph = 2;
38 static const RoomID kWSC02Messages = 3;
39 static const RoomID kWSC62 = 62;
46 void flushGameState()
override;
48 uint16 getDateResID()
const override;
50 bool okayToJump()
override;
52 void checkContinuePoint(
const RoomID,
const DirectionConstant)
override;
54 bool inSynthesizerGame();
56 bool canSolve()
override;
57 void doSolve()
override;
59 void setSoundFXLevel(
const uint16)
override;
65 void start()
override;
69 kWSCDraggingAntidoteFlag,
71 kWSCPrivateLabMessagesOpenFlag,
72 kWSCPrivateInterruptedMorphFlag,
73 kWSCPrivateInMoleculeGameFlag,
74 kWSCPrivateSinclairOfficeOpenFlag,
75 kWSCPrivateOfficeLogOpenFlag,
76 kWSCPrivate58SouthOpenFlag,
77 kWSCPrivateClickedCatwalkCableFlag,
78 kWSCPrivateRobotHeadOpenFlag,
80 kWSCPrivateSeenPeopleAt17WestFlag,
81 kWSCPrivateSeenPeopleAt19NorthFlag,
82 kWSCPrivateSeenPeopleAt21SouthFlag,
83 kWSCPrivateSeenPeopleAt24SouthFlag,
84 kWSCPrivateSeenPeopleAt34EastFlag,
85 kWSCPrivateSeenPeopleAt36WestFlag,
86 kWSCPrivateSeenPeopleAt38NorthFlag,
87 kWSCPrivateSeenPeopleAt46SouthFlag,
88 kWSCPrivateSeenPeopleAt49NorthFlag,
89 kWSCPrivateSeenPeopleAt73WestFlag,
91 kWSCPrivateNeedPeopleAt17WestFlag,
92 kWSCPrivateNeedPeopleAt21SouthFlag,
93 kWSCPrivateNeedPeopleAt24SouthFlag,
94 kWSCPrivateNeedPeopleAt34EastFlag,
95 kWSCPrivateNeedPeopleAt36WestFlag,
96 kWSCPrivateNeedPeopleAt38NorthFlag,
97 kWSCPrivateNeedPeopleAt46SouthFlag,
98 kWSCPrivateNeedPeopleAt49NorthFlag,
99 kWSCPrivateNeedPeopleAt73WestFlag,
101 kWSCPrivateGotRetScanChipFlag,
102 kWSCPrivateGotMapChipFlag,
103 kWSCPrivateGotOpticalChipFlag,
108 void arriveAt(
const RoomID,
const DirectionConstant)
override;
109 void turnTo(
const DirectionConstant)
override;
110 void receiveNotification(
Notification *,
const NotificationFlags)
override;
112 void clickInHotspot(
const Input &,
const Hotspot *)
override;
113 TimeValue getViewTime(
const RoomID,
const DirectionConstant)
override;
116 void cantMoveThatWay(CanMoveForwardReason reason)
override;
117 CanTurnReason canTurn(TurnDirection turn, DirectionConstant &nextDir)
override;
118 void zoomTo(
const Hotspot *hotspot)
override;
120 void setUpMoleculeGame();
121 void nextMoleculeGameLevel();
122 void startMoleculeGameLevel();
123 void moleculeGameClick(
const HotSpotID);
124 void loadAmbientLoops()
override;
126 void cantOpenDoor(CanOpenDoorReason)
override;
127 void pickedUpItem(
Item *)
override;
128 void doorOpened()
override;
129 void startExtraSequence(
const ExtraID,
const NotificationFlags,
const InputBits)
override;
130 void startDoorOpenMovie(
const TimeValue,
const TimeValue)
override;
132 void takeItemFromRoom(
Item *item)
override;
133 void checkPeopleCrossing();
134 void turnLeft()
override;
135 void turnRight()
override;
136 void moveForward()
override;
138 int16 getStaticCompassAngle(
const RoomID,
const DirectionConstant)
override;
141 void bumpIntoWall()
override;
142 void spotCompleted()
override;
143 void activateHotspots()
override;
144 void setUpAIRules()
override;
147 uint getNumHints()
override;
149 void closeDoorOffScreen(
const RoomID,
const DirectionConstant)
override;
151 void findSpotEntry(
const RoomID,
const DirectionConstant, SpotFlags,
SpotTable::Entry &)
override;
152 void timerExpired(
const uint32)
override;
158 const Hotspot *_cachedZoomSpot;
163 int32 _moleculeGameLevel, _numCorrect;
164 Movie _moleculesMovie;
165 uint32 _levelArray[6];
Definition: neighborhood.h:111
Definition: elements.h:168
Definition: notification.h:53
Definition: elements.h:43
Definition: moleculebin.h:43
Definition: hotspotinfo.h:49
Definition: ai_action.h:33