ScummVM API documentation
caldoria.h
1 /* ScummVM - Graphic Adventure Engine
2  *
3  * ScummVM is the legal property of its developers, whose names
4  * are too numerous to list here. Please refer to the COPYRIGHT
5  * file distributed with this source distribution.
6  *
7  * Additional copyright for this file:
8  * Copyright (C) 1995-1997 Presto Studios, Inc.
9  *
10  * This program is free software: you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation, either version 3 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program. If not, see <http://www.gnu.org/licenses/>.
22  *
23  */
24 
25 #ifndef PEGASUS_NEIGHBORHOOD_CALDORIA_CALDORIA_H
26 #define PEGASUS_NEIGHBORHOOD_CALDORIA_CALDORIA_H
27 
28 #include "pegasus/neighborhood/neighborhood.h"
29 
30 namespace Pegasus {
31 
32 static const TimeScale kCaldoriaMovieScale = 600;
33 static const TimeScale kCaldoriaFramesPerSecond = 15;
34 static const TimeScale kCaldoriaFrameDuration = 40;
35 
36 // Alternate IDs.
37 
38 static const AlternateID kAltCaldoriaNormal = 0;
39 static const AlternateID kAltCaldoriaRoofDoorBlown = 2;
40 static const AlternateID kAltCaldoriaSinclairDown = 3;
41 
42 // Room IDs.
43 
44 static const RoomID kCaldoria00 = 1;
45 static const RoomID kCaldoria01 = 2;
46 static const RoomID kCaldoria02 = 3;
47 static const RoomID kCaldoria03 = 4;
48 static const RoomID kCaldoria04 = 5;
49 static const RoomID kCaldoria05 = 6;
50 static const RoomID kCaldoria06 = 7;
51 static const RoomID kCaldoria07 = 8;
52 static const RoomID kCaldoria08 = 9;
53 static const RoomID kCaldoria09 = 10;
54 static const RoomID kCaldoria10 = 11;
55 static const RoomID kCaldoriaToilet = 12;
56 static const RoomID kCaldoria11 = 13;
57 static const RoomID kCaldoria12 = 14;
58 static const RoomID kCaldoriaVidPhone = 15;
59 static const RoomID kCaldoriaReplicator = 16;
60 static const RoomID kCaldoriaDrawers = 17;
61 static const RoomID kCaldoria13 = 18;
62 static const RoomID kCaldoria14 = 19;
63 static const RoomID kCaldoria15 = 20;
64 static const RoomID kCaldoria16 = 21;
65 static const RoomID kCaldoria17 = 22;
66 static const RoomID kCaldoria18 = 23;
67 static const RoomID kCaldoria19 = 24;
68 static const RoomID kCaldoria20 = 25;
69 static const RoomID kCaldoria21 = 26;
70 static const RoomID kCaldoria22 = 27;
71 static const RoomID kCaldoria23 = 28;
72 static const RoomID kCaldoria24 = 29;
73 static const RoomID kCaldoria25 = 30;
74 static const RoomID kCaldoria26 = 31;
75 static const RoomID kCaldoria27 = 32;
76 static const RoomID kCaldoria28 = 33;
77 static const RoomID kCaldoria29 = 34;
78 static const RoomID kCaldoria30 = 35;
79 static const RoomID kCaldoria31 = 36;
80 static const RoomID kCaldoria32 = 37;
81 static const RoomID kCaldoria33 = 38;
82 static const RoomID kCaldoria34 = 39;
83 static const RoomID kCaldoria35 = 40;
84 static const RoomID kCaldoria36 = 41;
85 static const RoomID kCaldoria37 = 42;
86 static const RoomID kCaldoria38 = 43;
87 static const RoomID kCaldoria39 = 44;
88 static const RoomID kCaldoria40 = 45;
89 static const RoomID kCaldoria41 = 46;
90 static const RoomID kCaldoriaBinoculars = 47;
91 static const RoomID kCaldoria42 = 48;
92 static const RoomID kCaldoriaKiosk = 49;
93 static const RoomID kCaldoria44 = 50;
94 static const RoomID kCaldoria45 = 51;
95 static const RoomID kCaldoria46 = 52;
96 static const RoomID kCaldoria47 = 53;
97 static const RoomID kCaldoria48 = 54;
98 static const RoomID kCaldoria49 = 55;
99 static const RoomID kCaldoria50 = 56;
100 static const RoomID kCaldoria51 = 57;
101 static const RoomID kCaldoria52 = 58;
102 static const RoomID kCaldoria53 = 59;
103 static const RoomID kCaldoria54 = 60;
104 static const RoomID kCaldoria55 = 61;
105 static const RoomID kCaldoria56 = 62;
106 static const RoomID kCaldoriaDeathRoom = 0;
107 
108 // Hot Spot Activation IDs.
109 
110 static const HotSpotActivationID kActivate4DClosed = 1;
111 static const HotSpotActivationID kActivate4DOpen = 2;
112 static const HotSpotActivationID kActivateMirrorReady = 3;
113 static const HotSpotActivationID kActivateStylistReady = 4;
114 static const HotSpotActivationID kActivateReplicatorReady = 5;
115 static const HotSpotActivationID kActivateOJOnThePad = 6;
116 static const HotSpotActivationID kActivateDrawersClosed = 7;
117 static const HotSpotActivationID kActivateRightOpen = 8;
118 static const HotSpotActivationID kActivateLeftOpen = 9;
119 static const HotSpotActivationID kActivateFocusedOnShip = 10;
120 static const HotSpotActivationID kActivateNotFocusedOnShip = 11;
121 static const HotSpotActivationID kActivateReadyForCard = 12;
122 static const HotSpotActivationID kActivateReadyToTransport = 13;
123 static const HotSpotActivationID kActivateRoofSlotEmpty = 14;
124 static const HotSpotActivationID kActivateZoomedOnSinclair = 15;
125 
126 // Hot Spot IDs.
127 
128 static const HotSpotID kCa4DEnvironOpenSpotID = 5000;
129 static const HotSpotID kCa4DEnvironCloseSpotID = 5001;
130 static const HotSpotID kCa4DVisualSpotID = 5002;
131 static const HotSpotID kCa4DAudioSpotID = 5003;
132 static const HotSpotID kCa4DChoice1SpotID = 5004;
133 static const HotSpotID kCa4DChoice2SpotID = 5005;
134 static const HotSpotID kCa4DChoice3SpotID = 5006;
135 static const HotSpotID kCa4DChoice4SpotID = 5007;
136 static const HotSpotID kCaBathroomMirrorSpotID = 5008;
137 static const HotSpotID kCaHairStyle1SpotID = 5009;
138 static const HotSpotID kCaHairStyle2SpotID = 5010;
139 static const HotSpotID kCaHairStyle3SpotID = 5011;
140 static const HotSpotID kCaShowerSpotID = 5012;
141 static const HotSpotID kCaBathroomToiletSpotID = 5013;
142 static const HotSpotID kCaldoriaVidPhoneSpotID = 5014;
143 static const HotSpotID kCaldoriaReplicatorSpotID = 5015;
144 static const HotSpotID kCaldoriaDrawersSpotID = 5016;
145 static const HotSpotID kCaldoriaVidPhoneOutSpotID = 5017;
146 static const HotSpotID kCaBedroomVidPhoneActivationSpotID = 5018;
147 static const HotSpotID kCaldoriaReplicatorOutSpotID = 5019;
148 static const HotSpotID kCaldoriaMakeOJSpotID = 5020;
149 static const HotSpotID kCaldoriaMakeStickyBunsSpotID = 5021;
150 static const HotSpotID kCaldoriaOrangeJuiceSpotID = 5022;
151 static const HotSpotID kCaldoriaOrangeJuiceDropSpotID = 5023;
152 static const HotSpotID kCaldoriaDrawersOutSpotID = 5024;
153 static const HotSpotID kCaldoriaLeftDrawerOpenSpotID = 5025;
154 static const HotSpotID kCaldoriaRightDrawerOpenSpotID = 5026;
155 static const HotSpotID kCaldoriaKeyCardSpotID = 5027;
156 static const HotSpotID kCaldoriaLeftDrawerCloseSpotID = 5028;
157 static const HotSpotID kCaldoriaRightDrawerWithKeysCloseSpotID = 5029;
158 static const HotSpotID kCaldoriaRightDrawerNoKeysCloseSpotID = 5030;
159 static const HotSpotID kCaldoriaFourthFloorElevatorSpotID = 5031;
160 static const HotSpotID kCaldoria20DoorbellSpotID = 5032;
161 static const HotSpotID kCaldoria21DoorbellSpotID = 5033;
162 static const HotSpotID kCaldoria26DoorbellSpotID = 5034;
163 static const HotSpotID kCaldoriaFourthFloorElevator1 = 5035;
164 static const HotSpotID kCaldoriaFourthFloorElevator2 = 5036;
165 static const HotSpotID kCaldoriaFourthFloorElevator3 = 5037;
166 static const HotSpotID kCaldoriaFourthFloorElevator4 = 5038;
167 static const HotSpotID kCaldoriaFourthFloorElevator5 = 5039;
168 static const HotSpotID kCaldoriaGroundElevator1 = 5040;
169 static const HotSpotID kCaldoriaGroundElevator2 = 5041;
170 static const HotSpotID kCaldoriaGroundElevator3 = 5042;
171 static const HotSpotID kCaldoriaGroundElevator4 = 5043;
172 static const HotSpotID kCaldoriaGroundElevator5 = 5044;
173 static const HotSpotID kCaldoria29DoorbellSpotID = 5045;
174 static const HotSpotID kCaldoria34DoorbellSpotID = 5046;
175 static const HotSpotID kCaldoria35DoorbellSpotID = 5047;
176 static const HotSpotID kCaldoriaGroundElevatorSpotID = 5048;
177 static const HotSpotID kCaldoriaBinocularZoomInSpotID = 5049;
178 static const HotSpotID kCaldoriaBinocularsOutSpotID = 5050;
179 static const HotSpotID kCaldoriaZoomInOnShipSpotID = 5051;
180 static const HotSpotID kCaldoriaKioskSpotID = 5052;
181 static const HotSpotID kCaldoriaKioskOutSpotID = 5053;
182 static const HotSpotID kCaldoriaKioskInfoSpotID = 5054;
183 static const HotSpotID kCaldoriaGTCardDropSpotID = 5055;
184 static const HotSpotID kCaldoriaGTTokyoSpotID = 5056;
185 static const HotSpotID kCaldoriaGTTSASpotID = 5057;
186 static const HotSpotID kCaldoriaGTBeachSpotID = 5058;
187 static const HotSpotID kCaldoriaGTOtherSpotID = 5059;
188 static const HotSpotID kCaldoriaRoofElevator1 = 5060;
189 static const HotSpotID kCaldoriaRoofElevator2 = 5061;
190 static const HotSpotID kCaldoriaRoofElevator3 = 5062;
191 static const HotSpotID kCaldoriaRoofElevator4 = 5063;
192 static const HotSpotID kCaldoriaRoofElevator5 = 5064;
193 static const HotSpotID kCaldoriaRoofElevatorSpotID = 5065;
194 static const HotSpotID kCaldoriaRoofDoorSpotID = 5066;
195 static const HotSpotID kCaldoriaRoofCardDropSpotID = 5067;
196 static const HotSpotID kCaldoria53EastSinclairTargetSpotID = 5068;
197 static const HotSpotID kCaldoriaCornbread = 5069;
198 
199 // Extra sequence IDs.
200 
201 static const ExtraID kCaldoriaWakeUpView1 = 0;
202 static const ExtraID kCaldoria00WakeUp1 = 1;
203 static const ExtraID kCaldoria00WakeUp2 = 2;
204 static const ExtraID kCaldoria00SitDown = 3;
205 static const ExtraID k4DEnvironOpenToINN = 4;
206 static const ExtraID k4DINNInterruption = 5;
207 static const ExtraID k4DINNIntro = 6;
208 static const ExtraID k4DINNMarkJohnson = 7;
209 static const ExtraID k4DINNMeganLove = 8;
210 static const ExtraID k4DINNFadeOut = 9;
211 static const ExtraID k4DEnvironOpenFromINN = 10;
212 static const ExtraID k4DEnvironOpen = 11;
213 static const ExtraID k4DEnvironOpenView = 12;
214 static const ExtraID k4DEnvironClose = 13;
215 static const ExtraID k4DIslandLoop = 14;
216 static const ExtraID k4DDesertLoop = 15;
217 static const ExtraID k4DMountainLoop = 16;
218 static const ExtraID k4DIsland1ToIsland0 = 17;
219 static const ExtraID k4DIsland2ToIsland0 = 18;
220 static const ExtraID k4DIsland0ToDesert0 = 19;
221 static const ExtraID k4DIsland1ToDesert0 = 20;
222 static const ExtraID k4DIsland2ToDesert0 = 21;
223 static const ExtraID k4DIsland0ToMountain0 = 22;
224 static const ExtraID k4DIsland1ToMountain0 = 23;
225 static const ExtraID k4DIsland2ToMountain0 = 24;
226 static const ExtraID k4DDesert0ToIsland0 = 25;
227 static const ExtraID k4DDesert1ToIsland0 = 26;
228 static const ExtraID k4DDesert2ToIsland0 = 27;
229 static const ExtraID k4DDesert0ToMountain0 = 28;
230 static const ExtraID k4DDesert1ToMountain0 = 29;
231 static const ExtraID k4DDesert2ToMountain0 = 30;
232 static const ExtraID k4DMountain0ToIsland0 = 31;
233 static const ExtraID k4DMountain1ToIsland0 = 32;
234 static const ExtraID k4DMountain2ToIsland0 = 33;
235 static const ExtraID k4DMountain0ToDesert0 = 34;
236 static const ExtraID k4DMountain1ToDesert0 = 35;
237 static const ExtraID k4DMountain2ToDesert0 = 36;
238 static const ExtraID kCaBathroomGreeting = 37;
239 static const ExtraID kCaBathroomBodyFat = 38;
240 static const ExtraID kCaBathroomStylistIntro = 39;
241 static const ExtraID kCaBathroomRetrothrash = 40;
242 static const ExtraID kCaBathroomRetrothrashReturn = 41;
243 static const ExtraID kCaBathroomGeoWave = 42;
244 static const ExtraID kCaBathroomGeoWaveReturn = 43;
245 static const ExtraID kCaBathroomAgencyStandard = 44;
246 static const ExtraID kCaldoriaShowerTitle = 45;
247 static const ExtraID kCaldoriaShowerButton = 46;
248 static const ExtraID kCaldoriaShowerDown = 47;
249 static const ExtraID kCaldoriaShowerUp = 48;
250 static const ExtraID kCaBedroomVidPhone = 49;
251 static const ExtraID kCaBedroomMessage1 = 50;
252 static const ExtraID kCaBedroomMessage2 = 51;
253 static const ExtraID kCreateOrangeJuice = 52;
254 static const ExtraID kDisposeOrangeJuice = 53;
255 static const ExtraID kReplicatorNorthViewWithOJ = 54;
256 static const ExtraID kLeftDrawerOpen = 55;
257 static const ExtraID kLeftDrawerClose = 56;
258 static const ExtraID kRightDrawerOpenWithKeys = 57;
259 static const ExtraID kRightDrawerCloseWithKeys = 58;
260 static const ExtraID kRightDrawerOpenNoKeys = 59;
261 static const ExtraID kRightDrawerCloseNoKeys = 60;
262 static const ExtraID kRightDrawerOpenViewWithKeys = 61;
263 static const ExtraID kRightDrawerOpenViewNoKeys = 62;
264 static const ExtraID kCaldoria16ElevatorUp = 63;
265 static const ExtraID kCaldoria16ElevatorDown = 64;
266 static const ExtraID kCaldoria16SouthViewWithElevator = 65;
267 static const ExtraID kCaldoria20Doorbell = 66;
268 static const ExtraID kCaldoria21Doorbell = 67;
269 static const ExtraID kCaldoria26Doorbell = 68;
270 static const ExtraID kCaldoriaFourthToGround = 69;
271 static const ExtraID kCaldoriaRoofToFourth = 70;
272 static const ExtraID kCaldoriaRoofToGround = 71;
273 static const ExtraID kCaldoriaGroundToFourth = 72;
274 static const ExtraID kCaldoriaGroundToRoof = 73;
275 static const ExtraID kCaldoriaFourthToRoof = 74;
276 static const ExtraID kCaldoria29Doorbell = 75;
277 static const ExtraID kCaldoria34Doorbell = 76;
278 static const ExtraID kCaldoria35Doorbell = 77;
279 static const ExtraID kBinocularsZoomInOnShip = 78;
280 static const ExtraID kCaldoriaKioskVideo = 79;
281 static const ExtraID kCaldoriaTransporterArrowLoop = 80;
282 static const ExtraID kArriveAtCaldoriaFromTSA = 81;
283 static const ExtraID kCaGTOtherChoice = 82;
284 static const ExtraID kCaGTCardSwipe = 83;
285 static const ExtraID kCaGTSelectTSA = 84;
286 static const ExtraID kCaGTFryTheFly = 85;
287 static const ExtraID kCaGTGoToTSA = 86;
288 static const ExtraID kCaGTSelectBeach = 87;
289 static const ExtraID kCaGTGoToBeach = 88;
290 static const ExtraID kCaGTArriveAtBeach = 89;
291 static const ExtraID kCaGTSelectTokyo = 90;
292 static const ExtraID kCaGTGoToTokyo = 91;
293 static const ExtraID kCaGTArriveAtTokyo = 92;
294 static const ExtraID kCa48NorthRooftopClosed = 93;
295 static const ExtraID kCa48NorthExplosion = 94;
296 static const ExtraID kCa48NorthExplosionDeath = 95;
297 static const ExtraID kCa49NorthVoiceAnalysis = 96;
298 static const ExtraID kCa50SinclairShoots = 97;
299 static const ExtraID kCa53EastZoomToSinclair = 98;
300 static const ExtraID kCa53EastDeath2 = 99;
301 static const ExtraID kCa53EastShootSinclair = 100;
302 static const ExtraID kCa53EastZoomOutFromSinclair = 101;
303 static const ExtraID kCa54SouthDeath = 102;
304 static const ExtraID kCaldoria56BombStage1 = 103;
305 static const ExtraID kCaldoria56BombStage2 = 104;
306 static const ExtraID kCaldoria56BombStage3 = 105;
307 static const ExtraID kCaldoria56BombStage4 = 106;
308 static const ExtraID kCaldoria56BombStage5 = 107;
309 static const ExtraID kCaldoria56BombStage6 = 108;
310 static const ExtraID kCaldoria56BombStage7 = 109;
311 static const ExtraID kCaldoria56BombExplodes = 110;
312 
313 // Caldoria interactions.
314 
315 static const InteractionID kCaldoria4DInteractionID = 0;
316 static const InteractionID kCaldoriaBombInteractionID = 1;
317 static const InteractionID kCaldoriaMessagesInteractionID = 2;
318 static const InteractionID kCaldoriaMirrorInteractionID = 3;
319 
320 // Caldoria:
321 
322 static const DisplayOrder kVidPhoneOrder = kMonitorLayer;
323 static const DisplayOrder k4DSpritesOrder = kMonitorLayer;
324 static const DisplayOrder kCaldoriaMessagesOrder = kMonitorLayer;
325 static const DisplayOrder kCaldoriaElevatorOrder = kMonitorLayer;
326 static const DisplayOrder kCaldoriaA05LightLoopOrder = kMonitorLayer;
327 static const DisplayOrder kCaldoriaA07LightLoopOrder = kMonitorLayer;
328 static const DisplayOrder kCaldoriaBombGridOrder = kMonitorLayer;
329 static const DisplayOrder kCaldoriaBombTimerOrder = kCaldoriaBombGridOrder + 1;
330 
332 //
333 // Caldoria
334 
335 static const CoordType kCaldoriaVidPhoneLeft = kNavAreaLeft + 105;
336 static const CoordType kCaldoriaVidPhoneTop = kNavAreaTop + 28;
337 
338 static const CoordType kCaldoria4DSpritesLeft = kNavAreaLeft + 10;
339 static const CoordType kCaldoria4DSpritesTop = kNavAreaTop + 142;
340 
341 static const CoordType kCaldoriaMessageLeft = kNavAreaLeft + 202;
342 static const CoordType kCaldoriaMessageTop = kNavAreaTop + 26;
343 
344 static const CoordType kCaldoriaElevatorLeft = kNavAreaLeft + 407;
345 static const CoordType kCaldoriaElevatorTop = kNavAreaTop + 138;
346 
347 static const CoordType kCaldoriaA05LightLoopLeft = kNavAreaLeft + 213;
348 static const CoordType kCaldoriaA05LightLoopTop = kNavAreaTop + 215;
349 
350 static const CoordType kCaldoriaA07LightLoopLeft = kNavAreaLeft + 414;
351 static const CoordType kCaldoriaA07LightLoopTop = kNavAreaTop + 215;
352 
353 static const CoordType kCaldoriaGunSpriteLeft = kNavAreaLeft + 276;
354 static const CoordType kCaldoriaGunSpriteTop = kNavAreaTop + 115;
355 
356 static const CoordType kCaldoria11MessageLoopLeft = kNavAreaLeft + 135;
357 static const CoordType kCaldoria11MessageLoopTop = kNavAreaTop + 214;
358 
359 static const CoordType kCaldoria12MessageLoopLeft = kNavAreaLeft + 209;
360 static const CoordType kCaldoria12MessageLoopTop = kNavAreaTop + 170;
361 
362 static const CoordType kCaldoria13MessageLoopLeft = kNavAreaLeft + 480;
363 static const CoordType kCaldoria13MessageLoopTop = kNavAreaTop + 191;
364 
365 static const CoordType kCaldoria14MessageLoopLeft = kNavAreaLeft + 248;
366 static const CoordType kCaldoria14MessageLoopTop = kNavAreaTop + 191;
367 
368 static const CoordType kCaldoria48CardBombLoopLeft = kNavAreaLeft + 337;
369 static const CoordType kCaldoria48CardBombLoopTop = kNavAreaTop + 205;
370 
371 static const CoordType kCaldoriaBombGridLeft = kNavAreaLeft + 290;
372 static const CoordType kCaldoriaBombGridTop = kNavAreaTop + 58;
373 
374 static const CoordType kCaldoriaBombTimerLeft = kNavAreaLeft + 58;
375 static const CoordType kCaldoriaBombTimerTop = kNavAreaTop + 204;
376 
377 // Caldoria display IDs.
378 
379 static const DisplayElementID kCaldoriaVidPhoneID = kNeighborhoodDisplayID;
380 static const DisplayElementID kCaldoria4DSpritesID = kCaldoriaVidPhoneID + 1;
381 static const DisplayElementID kCaldoriaMessagesID = kCaldoria4DSpritesID + 1;
382 static const DisplayElementID kCaldoriaUtilityID = kCaldoriaMessagesID + 1;
383 static const DisplayElementID kCaldoriaBombGridID = kCaldoriaUtilityID + 1;
384 static const DisplayElementID kCaldoriaBombTimerID = kCaldoriaBombGridID + 1;
385 
386 static const TimeValue kCaldoria4DInstructionsIn = 28013;
387 static const TimeValue kCaldoria4DInstructionsOut = 29730;
388 
389 static const TimeValue kCaldoria4DBlankChoiceIn = 29730;
390 static const TimeValue kCaldoria4DBlankChoiceOut = 33910;
391 
392 class Caldoria;
393 
395 public:
397  ~SinclairCallBack() override {}
398 
399 protected:
400  void callBack() override;
401 
402  Caldoria *_caldoria;
403 };
404 
405 class Caldoria : public Neighborhood {
406 friend class SinclairCallBack;
407 
408 public:
410  ~Caldoria() override;
411 
412  uint16 getDateResID() const override;
413 
414  void pickedUpItem(Item *) override;
415 
416  GameInteraction *makeInteraction(const InteractionID) override;
417 
418  Common::Path getBriefingMovie() override;
419  Common::Path getEnvScanMovie() override;
420  uint getNumHints() override;
421  Common::Path getHintMovie(uint) override;
422  void loadAmbientLoops() override;
423  bool wantsCursor() override;
424  void flushGameState() override;
425 
426  void checkContinuePoint(const RoomID, const DirectionConstant) override;
427 
428  void setSoundFXLevel(const uint16) override;
429 
430 protected:
431  enum {
432  kCaldoriaPrivate4DSystemOpenFlag,
433  kCaloriaPrivateLeftDrawerOpenFlag,
434  kCaldoriaPrivateRightDrawerOpenFlag,
435  kCaldoriaPrivateReadyToShootFlag,
436  kCaldoriaPrivateZoomingToBombFlag,
437  kCaldoriaPrivateCanOpenElevatorDoorFlag,
438  kCaldoriaPrivateSinclairTimerExpiredFlag,
439  kCaldoriaPrivateSeen13CarFlag,
440  kCaldoriaPrivateSeen14CarFlag,
441  kCaldoriaPrivateSeen18CarFlag,
442  kCaldoriaPrivateSeen23CarFlag,
443  kCaldoriaPrivateSeen33CarFlag,
444  kCaldoriaPrivateSeen36CarFlag,
445  kCaldoriaPrivateSeen41NorthCarFlag,
446  kCaldoriaPrivateSeen41EastCarFlag,
447  kCaldoriaPrivateSeen41WestCarFlag,
448  kNumCaldoriaPrivateFlags
449  };
450 
451  void init() override;
452  void start() override;
453  void throwAwayInterface() override;
454 
455  void setUpRoofTop();
456 
457  void setUpAIRules() override;
458  void doAIRecalibration();
459  TimeValue getViewTime(const RoomID, const DirectionConstant) override;
460  void findSpotEntry(const RoomID, const DirectionConstant, SpotFlags, SpotTable::Entry &) override;
461  void startSpotOnceOnly(TimeValue, TimeValue) override;
462  void startExitMovie(const ExitTable::Entry &) override;
463  void startZoomMovie(const ZoomTable::Entry &) override;
464  void startDoorOpenMovie(const TimeValue, const TimeValue) override;
465  void startTurnPush(const TurnDirection, const TimeValue, const DirectionConstant) override;
466  void bumpIntoWall() override;
467  int16 getStaticCompassAngle(const RoomID, const DirectionConstant) override;
468  void getExitCompassMove(const ExitTable::Entry &, FaderMoveSpec &) override;
469  void getZoomCompassMove(const ZoomTable::Entry &, FaderMoveSpec &) override;
470  void getExtraCompassMove(const ExtraTable::Entry &, FaderMoveSpec &) override;
471  void spotCompleted() override;
472  void arriveAt(const RoomID, const DirectionConstant) override;
473  void arriveAtCaldoria00();
474  void arriveAtCaldoriaToilet();
475  void arriveAtCaldoria44();
476  void arriveAtCaldoria49();
477  void arriveAtCaldoria56();
478  void arriveAtCaldoriaDeath();
479  void turnTo(const DirectionConstant) override;
480  void zoomTo(const Hotspot *) override;
481  void leftButton(const Input &) override;
482  void rightButton(const Input &) override;
483  void downButton(const Input &) override;
484  void startExtraSequence(const ExtraID, const NotificationFlags, const InputBits) override;
485  void receiveNotification(Notification *, const NotificationFlags) override;
486  InputBits getInputFilter() override;
487  void activateHotspots() override;
488  void clickInHotspot(const Input &, const Hotspot *) override;
489  void newInteraction(const InteractionID) override;
490 
491  void clickOnDoorbell(const HotSpotID);
492 
493  Hotspot *getItemScreenSpot(Item *, DisplayElement *) override;
494  void dropItemIntoRoom(Item *, Hotspot *) override;
495  void playMissingFloorSound();
496  void takeElevator(uint, uint);
497  void updateElevatorMovie();
498  void openElevatorMovie();
499  void emptyOJGlass();
500  void closeDoorOffScreen(const RoomID, const DirectionConstant) override;
501  void doorBombTimerExpired();
502  void sinclairTimerExpired();
503  void checkSinclairShootsOS();
504  void setUpSinclairLoops();
505  void zoomToSinclair();
506  void playEndMessage();
507  void checkInterruptSinclair();
508  void doArthurJoyride();
509 
510  void cantMoveThatWay(CanMoveForwardReason) override;
511  CanOpenDoorReason canOpenDoor(DoorTable::Entry &) override;
512  void doorOpened() override;
513 
514  void updateCursor(const Common::Point, const Hotspot *) override;
515 
517 
518  const Hotspot *_zoomOutSpot;
519 
520  Hotspot _laundryZoomInSpot;
521  Hotspot _laundryZoomOutSpot;
522  Hotspot _cornbreadSpot;
523 
524  Movie _extraMovie;
525  NotificationCallBack _extraMovieCallBack;
526 
527  bool _lookingAtLaundry;
528 
529  FuseFunction _utilityFuse;
530 
531  long _sinclairLoopCount;
532  long _numSinclairLoops;
533 
534  Sprite *_gunSprite;
535 
536  SinclairCallBack _sinclairInterrupt;
537 
538  Common::Path getSoundSpotsName() override;
539  Common::Path getNavMovieName() override;
540 };
541 
542 } // End of namespace Pegasus
543 
544 #endif
Definition: neighborhood.h:111
Definition: door.h:60
Definition: movie.h:40
Definition: fader.h:35
Definition: timers.h:239
Definition: path.h:52
Definition: elements.h:168
Definition: hotspot.h:85
Definition: item.h:294
Definition: spot.h:66
Definition: input.h:322
Definition: timers.h:144
Definition: zoom.h:49
Definition: exit.h:49
Definition: caldoria.h:394
Definition: rect.h:45
Definition: caldoria.h:405
Definition: notification.h:53
Definition: elements.h:43
Definition: interaction.h:37
Definition: timers.h:191
Definition: pegasus.h:70
Definition: extra.h:49
Definition: input.h:410
Definition: ai_action.h:33