ScummVM API documentation
group2.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  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  *
20  */
21 
22 #ifndef GNAP_GROUP2_H
23 #define GNAP_GROUP2_H
24 
25 #include "gnap/debugger.h"
26 
27 namespace Gnap {
28 
29 enum {
30  kHS20Platypus = 0,
31  kHS20GroceryStoreHat = 1,
32  kHS20ExitParkingLot = 2,
33  kHS20StonerGuy = 3,
34  kHS20GroceryStoreGuy = 4,
35  kHS20Device = 5,
36  kHS20ExitInsideGrubCity = 6,
37  kHS20ExitOutsideCircusWorld = 7,
38  kHS20ExitOutsideToyStore = 8,
39  kHS20ExitPhone = 9,
40  kHS20WalkArea1 = 10,
41  kHS20WalkArea2 = 11
42 };
43 
44 enum {
45  kHS21Platypus = 0,
46  kHS21Banana = 1,
47  kHS21OldLady = 2,
48  kHS21Device = 3,
49  kHS21ExitOutsideGrubCity = 4,
50  kHS21WalkArea1 = 5,
51  kHS21WalkArea2 = 6
52 };
53 
54 enum {
55  kHS22Platypus = 0,
56  kHS22ExitOutsideGrubCity = 1,
57  kHS22ExitBackGrubCity = 2,
58  kHS22Cashier = 3,
59  kHS22Device = 4,
60  kHS22WalkArea1 = 5,
61  kHS22WalkArea2 = 6
62 };
63 
64 enum {
65  kHS23Platypus = 0,
66  kHS23ExitFrontGrubCity = 1,
67  kHS23Device = 2,
68  kHS23Cereals = 3,
69  kHS23WalkArea1 = 4,
70  kHS23WalkArea2 = 5
71 };
72 
73 enum {
74  kHS24Platypus = 0,
75  kHS24ExitCircusWorld = 1,
76  kHS24ExitOutsideGrubCity = 2,
77  kHS24Device = 3,
78  kHS24WalkArea1 = 4,
79  kHS24WalkArea2 = 5,
80  kHS24WalkArea3 = 6
81 };
82 
83 enum {
84  kHS25Platypus = 0,
85  kHS25TicketVendor = 1,
86  kHS25ExitOutsideCircusWorld = 2,
87  kHS25ExitInsideCircusWorld = 3,
88  kHS25Device = 4,
89  kHS25Posters1 = 5,
90  kHS25Posters2 = 6,
91  kHS25Posters3 = 7,
92  kHS25Posters4 = 8,
93  kHS25WalkArea1 = 9,
94  kHS25WalkArea2 = 10
95 };
96 
97 enum {
98  kHS26Platypus = 0,
99  kHS26ExitOutsideCircusWorld = 1,
100  kHS26ExitOutsideClown = 2,
101  kHS26ExitArcade = 3,
102  kHS26ExitElephant = 4,
103  kHS26ExitBeerStand = 5,
104  kHS26Device = 6,
105  kHS26WalkArea1 = 7,
106  kHS26WalkArea2 = 8
107 };
108 
109 enum {
110  kHS27Platypus = 0,
111  kHS27Janitor = 1,
112  kHS27Device = 2,
113  kHS27Bucket = 3,
114  kHS27ExitCircus = 4,
115  kHS27ExitArcade = 5,
116  kHS27ExitBeerStand = 6,
117  kHS27ExitClown = 7,
118  kHS27WalkArea1 = 8
119 };
120 
121 enum {
122  kHS28Platypus = 0,
123  kHS28Horn = 1,
124  kHS28Clown = 2,
125  kHS28ExitOutsideClown = 3,
126  kHS28EmptyBucket = 4,
127  kHS28Device = 5,
128  kHS28WalkArea1 = 6,
129  kHS28WalkArea2 = 7
130 };
131 
132 enum {
133  kHS29Platypus = 0,
134  kHS29Monkey = 1,
135  kHS29Device = 2,
136  kHS29ExitCircus = 3,
137  kHS29ExitOutsideClown = 4,
138  kHS29Arcade = 5,
139  kHS29WalkArea1 = 6
140 };
141 
142 enum {
143  kAS20LeaveScene = 0,
144  kAS20TalkStonerGuyNoJoint = 2,
145  kAS20TalkStonerGuyHasJoint = 3,
146  kAS20GrabJoint = 4,
147  kAS20ActionDone = 5,
148  kAS20TalkGroceryStoreGuy = 6,
149  kAS20GrabGroceryStoreGuy = 9,
150  kAS20GrabGroceryStoreHat = 10,
151  kAS20SwitchGroceryStoreHat = 11,
152  kAS20SwitchGroceryStoreHatDone = 12,
153  kAS20GrabJointDone = 13
154 };
155 
156 enum {
157  kAS21TalkOldLady = 0,
158  kAS21GrabBanana = 1,
159  kAS21GrabBananaDone = 2,
160  kAS21GrabOldLady = 3,
161  kAS21UseHatWithOldLady = 4,
162  kAS21UseHatWithOldLadyDone = 5,
163  kAS21LeaveScene = 6
164 };
165 
166 enum {
167  kAS22LeaveScene = 0,
168  kAS22TalkCashier = 1
169 };
170 
171 enum {
172  kAS23LookCereals = 0,
173  kAS23GrabCereals = 1,
174  kAS23GrabCerealsDone = 2,
175  kAS23LeaveScene = 3
176 };
177 
178 enum {
179  kAS24LeaveScene = 0
180 };
181 
182 enum {
183  kAS25TalkTicketVendor = 0,
184  kAS25EnterCircusWihoutTicket = 1,
185  kAS25ShowTicketToVendor = 2,
186  kAS25ShowTicketToVendorDone = 3,
187  kAS25EnterCircusWihoutTicketDone = 4,
188  kAS25LeaveScene = 5
189 };
190 
191 enum {
192  kAS26LeaveScene = 0
193 };
194 
195 enum {
196  kAS27TalkJanitor = 0,
197  kAS27GrabBucket = 1,
198  kAS27GrabBucketDone = 2,
199  kAS27ShowPictureToJanitor = 3,
200  kAS27TryEnterClownTent = 4,
201  kAS27TryEnterClownTentDone = 5,
202  kAS27EnterClownTent = 6,
203  kAS27LeaveScene = 7
204 };
205 
206 enum {
207  kAS28UseBeerBucketWithClown = 0,
208  kAS28UsePillBucketWithClown = 1,
209  kAS28GrabHornFails = 2,
210  kAS28GrabEmptyBucket = 3,
211  kAS28GrabHornSuccess = 4,
212  kAS28GrabHornSuccessDone = 5,
213  kAS28GrabEmptyBucketDone = 6,
214  kAS28GrabHornFailsDone = 7,
215  kAS28TalkClown = 8,
216  kAS28GnapWaiting = 9,
217  kAS28LeaveScene = 10
218 };
219 
220 enum {
221  kAS29UseBananaWithMonkey = 0,
222  kAS29LeaveScene = 2
223 };
224 
225 class GnapEngine;
226 class CutScene;
227 
228 class Scene20: public Scene {
229 public:
230  Scene20(GnapEngine *vm);
231  ~Scene20() override {}
232 
233  int init() override;
234  void updateHotspots() override;
235  void run() override;
236  void updateAnimations() override;
237  void updateAnimationsCb() override;
238 
239 private:
240  int _currStonerGuySequenceId;
241  int _nextStonerGuySequenceId;
242  int _currGroceryStoreGuySequenceId;
243  int _nextGroceryStoreGuySequenceId;
244  int _stonerGuyCtr;
245  int _groceryStoreGuyCtr;
246  bool _stonerGuyShowingJoint;
247 
248  void stopSounds();
249 };
250 
251 class Scene21: public Scene {
252 public:
253  Scene21(GnapEngine *vm);
254  ~Scene21() override {}
255 
256  int init() override;
257  void updateHotspots() override;
258  void run() override;
259  void updateAnimations() override;
260  void updateAnimationsCb() override {};
261 
262 private:
263  int _currOldLadySequenceId;
264  int _nextOldLadySequenceId;
265 };
266 
267 class Scene22: public Scene {
268 public:
269  Scene22(GnapEngine *vm);
270  ~Scene22() override {}
271 
272  int init() override;
273  void updateHotspots() override;
274  void run() override;
275  void updateAnimations() override;
276  void updateAnimationsCb() override {};
277 
278 private:
279  int _currCashierSequenceId;
280  int _nextCashierSequenceId;
281  bool _caughtBefore;
282  int _cashierCtr;
283 };
284 
285 class Scene23: public Scene {
286 public:
287  Scene23(GnapEngine *vm);
288  ~Scene23() override {}
289 
290  int init() override;
291  void updateHotspots() override;
292  void run() override;
293  void updateAnimations() override;
294  void updateAnimationsCb() override {};
295 
296 private:
297  int _currStoreClerkSequenceId;
298  int _nextStoreClerkSequenceId;
299 };
300 
301 class Scene24: public Scene {
302 public:
303  Scene24(GnapEngine *vm);
304  ~Scene24() override {}
305 
306  int init() override;
307  void updateHotspots() override;
308  void run() override;
309  void updateAnimations() override;
310  void updateAnimationsCb() override {};
311 
312 private:
313  int _currWomanSequenceId;
314  int _nextWomanSequenceId;
315  int _boySequenceId;
316  int _girlSequenceId;
317 };
318 
319 class Scene25: public Scene {
320 public:
321  Scene25(GnapEngine *vm);
322  ~Scene25() override {}
323 
324  int init() override;
325  void updateHotspots() override;
326  void run() override;
327  void updateAnimations() override;
328  void updateAnimationsCb() override {};
329 
330 private:
331  int _currTicketVendorSequenceId;
332  int _nextTicketVendorSequenceId;
333 
334  void playAnims(int index);
335 };
336 
337 class Scene26: public Scene {
338 public:
339  Scene26(GnapEngine *vm);
340  ~Scene26() override {}
341 
342  int init() override;
343  void updateHotspots() override;
344  void run() override;
345  void updateAnimations() override;
346  void updateAnimationsCb() override {};
347 
348 private:
349  int _currKidSequenceId;
350  int _nextKidSequenceId;
351 };
352 
353 class Scene27: public Scene {
354 public:
355  Scene27(GnapEngine *vm);
356  ~Scene27() override {}
357 
358  int init() override;
359  void updateHotspots() override;
360  void run() override;
361  void updateAnimations() override;
362  void updateAnimationsCb() override {};
363 
364 private:
365  int _nextJanitorSequenceId;
366  int _currJanitorSequenceId;
367 };
368 
369 class Scene28: public Scene {
370 public:
371  Scene28(GnapEngine *vm);
372  ~Scene28() override {}
373 
374  int init() override;
375  void updateHotspots() override;
376  void run() override;
377  void updateAnimations() override;
378  void updateAnimationsCb() override {};
379 
380 private:
381  int _currClownSequenceId;
382  int _nextClownSequenceId;
383  int _clownTalkCtr;
384 };
385 
386 class Scene29: public Scene {
387 public:
388  Scene29(GnapEngine *vm);
389  ~Scene29() override {}
390 
391  int init() override;
392  void updateHotspots() override;
393  void run() override;
394  void updateAnimations() override;
395  void updateAnimationsCb() override {};
396 
397 private:
398  int _currMonkeySequenceId;
399  int _nextMonkeySequenceId;
400  int _currManSequenceId;
401  int _nextManSequenceId;
402 };
403 
404 } // End of namespace Gnap
405 
406 #endif // GNAP_GROUP1_H
Definition: group2.h:251
Definition: group2.h:285
Definition: group2.h:353
Definition: group2.h:267
Definition: group2.h:301
Definition: group2.h:369
Definition: group2.h:319
Definition: group2.h:228
Definition: character.h:25
Definition: gnap.h:222
Definition: group2.h:386
Definition: group2.h:337
Definition: scenecore.h:31