ScummVM API documentation
group3.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_GROUP3_H
23 #define GNAP_GROUP3_H
24 
25 #include "gnap/debugger.h"
26 
27 namespace Gnap {
28 
29 enum {
30  kHS30Platypus = 0,
31  kHS30PillMachine = 1,
32  kHS30Device = 2,
33  kHS30ExitCircus = 3,
34  kHS30WalkArea1 = 4
35 };
36 
37 enum {
38  kHS31Platypus = 0,
39  kHS31MeasuringClown = 1,
40  kHS31BeerBarrel = 2,
41  kHS31Device = 3,
42  kHS31ExitCircus = 4,
43  kHS31ExitOutsideClown = 5,
44  kHS31WalkArea1 = 6
45 };
46 
47 enum {
48  kHS32Platypus = 0,
49  kHS32ExitTruck = 1,
50  kHS32Device = 2,
51  kHS32WalkArea1 = 3,
52  kHS32WalkArea2 = 4,
53  kHS32WalkArea3 = 5,
54  kHS32WalkArea4 = 6,
55  kHS32WalkArea5 = 7,
56  kHS32WalkArea6 = 8,
57  kHS32WalkArea7 = 9,
58  kHS32WalkArea8 = 10
59 };
60 
61 enum {
62  kHS33Platypus = 0,
63  kHS33Chicken = 1,
64  kHS33Device = 2,
65  kHS33ExitHouse = 3,
66  kHS33ExitBarn = 4,
67  kHS33ExitCreek = 5,
68  kHS33ExitPigpen = 6,
69  kHS33WalkArea1 = 7,
70  kHS33WalkArea2 = 8
71 };
72 
73 enum {
74  kHS38Platypus = 0,
75  kHS38ExitHouse = 1,
76  kHS38ExitCave = 2,
77  kHS38TrapDoorLid1 = 3,
78  kHS38TrapDoorLid2 = 4,
79  kHS38HuntingTrophy = 5,
80  kHS38WalkArea1 = 6,
81  kHS38Device = 7,
82  kHS38WalkArea2 = 8,
83  kHS38WalkArea3 = 9,
84  kHS38WalkArea4 = 10,
85  kHS38WalkArea5 = 11,
86  kHS38WalkArea6 = 12
87 };
88 
89 enum {
90  kHS39Platypus = 0,
91  kHS39ExitInsideHouse = 1,
92  kHS39ExitUfoParty = 2,
93  kHS39Sign = 3,
94  kHS39Device = 4,
95  kHS39WalkArea1 = 5,
96  kHS39WalkArea2 = 6
97 };
98 
99 enum {
100  kAS30LeaveScene = 0,
101  kAS30UsePillMachine = 1,
102  kAS30UsePillMachine2 = 2,
103  kAS30LookPillMachine = 3,
104  kAS30UsePillMachine3 = 4,
105  kAS30UsePillMachine4 = 5
106 };
107 
108 enum {
109  kAS31UseBeerBarrel = 1,
110  kAS31FillEmptyBucketWithBeer = 2,
111  kAS31FillEmptyBucketWithBeerDone = 3,
112  kAS31PlatMeasuringClown = 4,
113  kAS31UseMeasuringClown = 5,
114  kAS31LeaveScene = 6
115 };
116 
117 enum {
118  kAS32LeaveScene = 0
119 };
120 
121 enum {
122  kAS33LeaveScene = 0,
123  kAS33TalkChicken = 1,
124  kAS33UseChicken = 2,
125  kAS33UseChickenDone = 3
126 };
127 
128 enum {
129  kAS38LeaveScene = 0,
130  kAS38ExitCave = 1,
131  kAS38UseHuntingTrophy = 2,
132  kAS38HoldingHuntingTrophy = 3,
133  kAS38ReleaseHuntingTrophy = 4,
134  kAS38UsePlatypusWithTrapDoor = 5,
135  kAS38PlatypusHoldingTrapDoor = 6
136 };
137 
138 enum {
139  kAS39LeaveScene = 0
140 };
141 
142 /*****************************************************************************/
143 
144 class GnapEngine;
145 class CutScene;
146 
147 class Scene30: public Scene {
148 public:
149  Scene30(GnapEngine *vm);
150  ~Scene30() override {}
151 
152  int init() override;
153  void updateHotspots() override;
154  void run() override;
155  void updateAnimations() override;
156  void updateAnimationsCb() override {};
157 
158 private:
159  int _kidSequenceId;
160 };
161 
162 class Scene31: public Scene {
163 public:
164  Scene31(GnapEngine *vm);
165  ~Scene31() override {}
166 
167  int init() override;
168  void updateHotspots() override;
169  void run() override;
170  void updateAnimations() override;
171  void updateAnimationsCb() override {};
172 
173 private:
174  bool _beerGuyDistracted;
175  int _currClerkSequenceId;
176  int _nextClerkSequenceId;
177  int _clerkMeasureCtr;
178  int _clerkMeasureMaxCtr;
179 };
180 
181 class Scene32: public Scene {
182 public:
183  Scene32(GnapEngine *vm);
184  ~Scene32() override {}
185 
186  int init() override;
187  void updateHotspots() override;
188  void run() override;
189  void updateAnimations() override;
190  void updateAnimationsCb() override {};
191 };
192 
193 class Scene33: public Scene {
194 public:
195  Scene33(GnapEngine *vm);
196  ~Scene33() override {}
197 
198  int init() override;
199  void updateHotspots() override;
200  void run() override;
201  void updateAnimations() override;
202  void updateAnimationsCb() override {};
203 
204 private:
205  int _currChickenSequenceId;
206  int _nextChickenSequenceId;
207 };
208 
209 class Scene38: public Scene {
210 public:
211  Scene38(GnapEngine *vm);
212  ~Scene38() override {}
213 
214  int init() override;
215  void updateHotspots() override;
216  void run() override;
217  void updateAnimations() override;
218  void updateAnimationsCb() override {};
219 };
220 
221 class Scene39: public Scene {
222 public:
223  Scene39(GnapEngine *vm);
224  ~Scene39() override {}
225 
226  int init() override;
227  void updateHotspots() override;
228  void run() override;
229  void updateAnimations() override;
230  void updateAnimationsCb() override {};
231 
232 private:
233  int _currGuySequenceId;
234  int _nextGuySequenceId;
235 };
236 
237 } // End of namespace Gnap
238 
239 #endif // GNAP_GROUP3_H
Definition: group3.h:147
Definition: group3.h:221
Definition: group3.h:162
Definition: group3.h:193
Definition: group3.h:181
Definition: character.h:25
Definition: gnap.h:222
Definition: group3.h:209
Definition: scenecore.h:31