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
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (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, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20  *
21  */
22 
23 #ifndef TSAGE_BLUEFORCE_SCENES1_H
24 #define TSAGE_BLUEFORCE_SCENES1_H
25 
26 #include "common/scummsys.h"
27 #include "tsage/blue_force/blueforce_logic.h"
28 #include "tsage/blue_force/blueforce_speakers.h"
29 #include "tsage/converse.h"
30 #include "tsage/events.h"
31 #include "tsage/core.h"
32 #include "tsage/scenes.h"
33 #include "tsage/globals.h"
34 #include "tsage/sound.h"
35 
36 namespace TsAGE {
37 
38 namespace BlueForce {
39 
40 using namespace TsAGE;
41 
42 class Scene100: public SceneExt {
43 	/* Support classes */
44 	class Text: public SceneText {
45 	public:
getClassName()46 		virtual Common::String getClassName() { return "BF100Text"; }
47 		virtual void dispatch();
48 	};
49 
50 	/* Actions */
51 	class Action1: public ActionExt {
52 	private:
53 		void setTextStrings(const Common::String &msg1, const Common::String &msg2, Action *action);
54 	public:
55 		Text _sceneText1;
56 		SceneText _sceneText2;
57 		int _textHeight;
58 
getClassName()59 		virtual Common::String getClassName() { return "BF100Action1"; }
synchronize(Serializer & s)60 		virtual void synchronize(Serializer &s) {
61 			ActionExt::synchronize(s);
62 			s.syncAsSint16LE(_textHeight);
63 		}
64 		virtual void signal();
65 	};
66 	class Action2: public ActionExt {
67 	public:
68 		virtual void signal();
69 	};
70 public:
71 	SequenceManager _sequenceManager;
72 	Action1 _action1;
73 	Action2 _action2;
74 	ScenePalette _scenePalette;
75 	NamedObject _object1, _object2, _object3, _object4, _object5;
76 	int _index;
77 
78 	Scene100();
79 	virtual void postInit(SceneObjectList *OwnerList = NULL);
80 	virtual void signal();
81 };
82 
83 class Scene109: public PalettedScene {
84 	/* Actions */
85 	class Action1: public Action {
86 	public:
87 		virtual void signal();
88 	};
89 	class Action2: public Action {
90 	public:
91 		virtual void signal();
92 	};
93 	class Action3: public Action {
94 	public:
95 		virtual void signal();
96 	};
97 
98 public:
99 	SequenceManager _sequenceManager1, _sequenceManager2, _sequenceManager3;
100 	SequenceManager _sequenceManager4, _sequenceManager5, _sequenceManager6;
101 	SequenceManager _sequenceManager7, _sequenceManager8;
102 	SceneObject _object1, _object2, _protaginist2, _protaginist1, _cop1;
103 	SceneObject _drunk, _cop2, _bartender, _beerSign, _animationInset;
104 	IntroSceneText _text;
105 	Action1 _action1;
106 	Action2 _action2;
107 	Action3 _action3;
108 public:
109 	Scene109();
110 
111 	virtual void postInit(SceneObjectList *OwnerList = NULL);
112 	virtual void signal();
113 };
114 
115 class Scene110: public SceneExt {
116 	/* Actions */
117 	class Action1: public Action {
118 	public:
119 		virtual void signal();
120 	};
121 	class Action2: public Action {
122 	public:
123 		virtual void signal();
124 	};
125 	class Action3: public Action {
126 	public:
127 		virtual void signal();
128 		virtual void dispatch();
129 	};
130 	class Action4: public Action {
131 	public:
132 		virtual void signal();
133 		virtual void dispatch();
134 	};
135 	class Action5: public Action {
136 	public:
137 		virtual void signal();
138 	};
139 public:
140 	NamedObject _object1, _object2, _object3, _object4, _object5, _object6, _object7, _object8, _object9, _object10;
141 	ASound _sound;
142 	Action1 _action1;
143 	Action2 _action2;
144 	Action3 _action3;
145 	Action4 _action4;
146 	Action5 _action5;
147 public:
148 	virtual void postInit(SceneObjectList *OwnerList = NULL);
149 };
150 
151 class Scene114: public SceneExt {
152 	/* Objects */
153 	class Vechile: public NamedObject {
154 	public:
155 		virtual bool startAction(CursorType action, Event &event);
156 	};
157 	class Door: public NamedObject {
158 	public:
159 		virtual bool startAction(CursorType action, Event &event);
160 	};
161 public:
162 	SequenceManager _sequenceManager1;
163 	Vechile _vechile;
164 	Door _door;
165 	NamedObject _lyle;
166 	NamedHotspot _item1;
167 public:
168 	virtual void postInit(SceneObjectList *OwnerList = NULL);
169 	virtual void signal();
170 };
171 
172 class Scene115: public SceneExt {
173 	/* Objects */
174 	class Kate: public NamedObject {
175 	public:
176 		virtual bool startAction(CursorType action, Event &event);
177 	};
178 	class Tony: public NamedObject {
179 	public:
180 		int _talkToTonyCtr2;
181 		virtual bool startAction(CursorType action, Event &event);
182 	};
183 	class Object3: public NamedObject {
184 	public:
185 		virtual bool startAction(CursorType action, Event &event);
186 	};
187 	class Object4: public NamedObject {
188 	public:
189 		virtual bool startAction(CursorType action, Event &event);
190 	};
191 
192 	/* Custom class */
193 	class EventHandler1: public EventHandler {
194 	public:
getClassName()195 		virtual Common::String getClassName() { return "Scene115_EventHandler1"; }
196 		virtual void dispatch();
197 	};
198 
199 	/* Items */
200 	class Jukebox: public NamedHotspot {
201 		SequenceManager _sequenceManager6;
202 	public:
203 		int _jokeboxPlayingCtr;
204 
205 		Jukebox();
206 		virtual bool startAction(CursorType action, Event &event);
207 		virtual void signal();
208 		virtual void synchronize(Serializer &s);
209 	};
210 	class Item10: public NamedHotspot {
211 	public:
212 		virtual bool startAction(CursorType action, Event &event);
213 	};
214 	class Item14: public NamedHotspot {
215 	public:
216 		virtual bool startAction(CursorType action, Event &event);
217 	};
218 
219 	/* Actions */
220 	class Action1: public Action {
221 	public:
222 		virtual void signal();
223 	};
224 	class Action2: public Action {
225 	public:
226 		virtual void signal();
227 	};
228 	class Action3: public Action {
229 	public:
230 		virtual void signal();
231 	};
232 	class Action4: public Action {
233 	public:
234 		virtual void signal();
235 	};
236 	class Action5: public Action {
237 	public:
238 		virtual void signal();
239 	};
240 	class Action6: public Action {
241 	public:
242 		virtual void signal();
243 	};
244 	class Action7: public Action {
245 	public:
246 		virtual void signal();
247 	};
248 	class Action8: public Action {
249 	public:
250 		virtual void signal();
251 	};
252 	class Action9: public Action {
253 	public:
254 		virtual void signal();
255 	};
256 
257 	SequenceManager _sequenceManager1;
258 	SequenceManager _sequenceManager2;
259 	SequenceManager _sequenceManager3;
260 	SequenceManager _sequenceManager4;
261 	SequenceManager _sequenceManager5;
262 	Kate _kate;
263 	Tony _tony;
264 	Object3 _object3;
265 	Object4 _object4;
266 	SceneObject _object5,  _object6,  _neonSign,  _object8,  _object9;
267 	SceneObject _object10, _object11, _object12, _object13;
268 	Jukebox _itemJukebox;
269 	EventHandler1 _eventHandler1;
270 	NamedHotspot _item2, _item3, _item4, _item5, _item6, _item7, _item8, _item9;
271 	Item10 _item10;
272 	NamedHotspot _item11, _item12, _item13;
273 	Item14 _item14;
274 	Action1 _action1;
275 	Action2 _action2;
276 	Action3 _action3;
277 	Action4 _action4;
278 	Action5 _action5;
279 	Action6 _action6;
280 	Action7 _action7;
281 	Action8 _action8;
282 	Action9 _action9;
283 	SpeakerGameText _gameTextSpeaker;
284 	SpeakerKate _kateSpeaker;
285 	SpeakerTony _tonySpeaker;
286 	SpeakerJakeJacket _jakeJacketSpeaker;
287 	SpeakerJakeUniform _jakeUniformSpeaker;
288 	SpeakerLyleHat _lyleHatSpeaker;
289 	ASound _sound1;
290 	int _lineNumModifier;
291 	int _jukeboxPlaying;
292 	int _talkToTonyCtr;
293 public:
294 	Scene115();
295 	virtual void synchronize(Serializer &s);
296 	virtual void postInit(SceneObjectList *OwnerList = NULL);
297 	virtual void signal();
298 	virtual void process(Event &event);
299 };
300 
301 class Scene125: public SceneExt {
302 	class Action1: public Action {
303 	public:
304 		virtual void signal();
305 	};
306 	class Action2: public Action {
307 	public:
308 		virtual void signal();
309 		virtual void dispatch();
310 	};
311 	class Action3: public Action {
312 	public:
313 		virtual void signal();
314 		virtual void dispatch();
315 	};
316 	class Action4: public Action {
317 	public:
318 		virtual void signal();
319 		virtual void dispatch();
320 	};
321 	class Action5: public Action {
322 	public:
323 		virtual void signal();
324 	};
325 	class Action6: public Action {
326 	public:
327 		virtual void signal();
328 		virtual void dispatch();
329 	};
330 
331 public:
332 	Action1 _action1;
333 	Action2 _action2;
334 	Action3 _action3;
335 	Action4 _action4;
336 	Action5 _action5;
337 	Action6 _action6;
338 	NamedObject _object1, _object2, _object3, _object4, _object5;
339 	NamedObject _object6, _object7, _object8, _object9;
340 	ASoundExt _soundExt1;
341 	ASoundExt _soundExt2;
342 
343 	void postInit(SceneObjectList *OwnerList);
344 };
345 
346 class Scene140: public SceneExt {
347 	class Action1: public Action {
348 	public:
349 		virtual void signal();
350 	};
351 public:
352 	Action1 _action1;
353 	ASoundExt _soundExt1;
354 	NamedObject _object1;
355 	NamedObject _object2;
356 	IntroSceneText _text;
357 
358 	void postInit(SceneObjectList *OwnerList);
359 };
360 
361 class Scene150: public SceneExt {
362 	class Action1: public Action {
363 		NamedObject _object2;
364 		ASound _sound1;
365 	public:
366 		virtual void signal();
367 	};
368 public:
369 	NamedObject _object1;
370 	Action1 _action1;
371 
372 	void postInit(SceneObjectList *OwnerList);
373 };
374 
375 class Scene160: public SceneExt {
376 	class Action1: public Action {
377 	public:
378 		virtual void signal();
379 	};
380 	class Action2: public Action {
381 	public:
382 		virtual void signal();
383 		virtual void process(Event &event);
384 	};
385 	class Action3: public ActionExt {
386 	public:
387 		virtual void signal();
388 	};
389 public:
390 	NamedObject _flag, _kid, _kidBody, _leftOfficer, _grandma, _rightOfficer;
391 	ASound _sound1;
392 	Action1 _action1;
393 	Action2 _action2;
394 	Action3 _action3;
395 	IntroSceneText _text;
396 
397 	void postInit(SceneObjectList *OwnerList);
398 };
399 
400 class Scene180: public SceneExt {
401 	/* Objects */
402 	class Vechile: public NamedObject {
403 	public:
404 		virtual bool startAction(CursorType action, Event &event);
405 	};
406 
407 	/* Items */
408 	class GarageExit: public NamedHotspot {
409 	public:
410 		virtual bool startAction(CursorType action, Event &event);
411 	};
412 public:
413 	SequenceManager _sequenceManager;
414 	SpeakerGameText _gameTextSpeaker;
415 	NamedObject _object1;
416 	Vechile _vechile;
417 	NamedHotspot _driveway, _garage, _frontDoor, _house, _street;
418 	NamedHotspot _lawn, _bushes, _palms, _fence, _steps;
419 	NamedHotspot _curb, _sky;
420 	GarageExit _garageExit;
421 	ASoundExt _sound1;
422 	SceneMessage _sceneMessage;
423 	int _dispatchMode;
424 
425 	Scene180();
426 	virtual void synchronize(Serializer &s);
427 	virtual void postInit(SceneObjectList *OwnerList = NULL);
428 	virtual void signal();
429 	virtual void process(Event &event);
430 	virtual void dispatch();
431 };
432 
433 class Scene190: public SceneExt {
434 	/* Objects */
435 	class LyleCar: public NamedObject {
436 	public:
437 		virtual bool startAction(CursorType action, Event &event);
438 	};
439 
440 	/* Items */
441 	class Item1: public NamedHotspot {
442 	public:
443 		virtual bool startAction(CursorType action, Event &event);
444 	};
445 	class Item2: public NamedHotspot {
446 	public:
447 		virtual bool startAction(CursorType action, Event &event);
448 	};
449 	class Exit: public NamedHotspot {
450 	public:
451 		virtual bool startAction(CursorType action, Event &event);
452 	};
453 
454 	/* Actions */
455 	class Action1: public Action {
456 	public:
457 		virtual void signal();
458 	};
459 public:
460 	SequenceManager _sequenceManager;
461 	FollowerObject _object1;
462 	NamedObject _door, _flag;
463 	LyleCar _lyleCar;
464 	Item1 _item1;
465 	Item2 _item2;
466 	NamedHotspot _item3, _item4, _item5, _item6;
467 	NamedHotspot _item7, _item8, _item9, _item10;
468 	Exit _exit;
469 	Action1 _action1;
470 	ASoundExt _sound;
471 	SpeakerGameText _speaker;
472 	bool _fieldB52;
473 
474 	Scene190();
475 	virtual void postInit(SceneObjectList *OwnerList = NULL);
476 	virtual void signal();
477 	virtual void process(Event &event);
478 	virtual void dispatch();
479 	virtual void synchronize(Serializer &s);
480 };
481 
482 } // End of namespace BlueForce
483 
484 } // End of namespace TsAGE
485 
486 #endif
487