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_SCENES3_H
24 #define TSAGE_BLUEFORCE_SCENES3_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 Scene300: public SceneExt {
43 	/* Objects */
44 	class Object: public NamedObject {
45 	public:
46 		int _stripNumber;
47 	public:
Object(int stripNumber)48 		Object(int stripNumber) { _stripNumber = stripNumber; }
49 
50 		bool startAction(CursorType action, Event &event) override;
51 	};
52 	class Object19: public NamedObject {
53 	public:
54 		bool startAction(CursorType action, Event &event) override;
55 	};
56 
57 	/* Items */
58 	class Item1: public NamedHotspot {
59 	public:
60 		bool startAction(CursorType action, Event &event) override;
61 	};
62 	class Item2: public NamedHotspot {
63 	public:
64 		bool startAction(CursorType action, Event &event) override;
65 	};
66 	class Item14: public NamedHotspot {
67 	public:
68 		bool startAction(CursorType action, Event &event) override;
69 	};
70 	class Item15: public NamedHotspot {
71 	public:
72 		bool startAction(CursorType action, Event &event) override;
73 	};
74 
75 	/* Actions */
76 	class Action1: public Action {
77 	public:
78 		void signal() override;
79 	};
80 	class Action2: public Action {
81 	public:
82 		void signal() override;
83 	};
84 	class Action3: public Action {
85 	public:
86 		void signal() override;
87 	};
88 	class Action4: public Action {
89 	public:
90 		void signal() override;
91 	};
92 	class Action5: public Action {
93 	public:
94 		void signal() override;
95 	};
96 private:
97 	void setupInspection();
98 public:
99 	SequenceManager _sequenceManager1, _sequenceManager2;
100 	SequenceManager _sequenceManager3, _sequenceManager4;
101 	NamedObject _object1;
102 	FollowerObject _object2, _object3, _object4, _object5, _object6, _object7;
103 	SceneObject _object8, _object9, _object10;
104 	NamedObject _object11, _object12;
105 	Object _object13, _object14, _object15, _object16;
106 	NamedObject _object17, _object18;
107 	Object19 _object19;
108 	Item1 _item1;
109 	Item2 _item2;
110 	NamedHotspot _item3, _item4, _item5, _item6, _item7;
111 	NamedHotspot _item8, _item9, _item10, _item11;
112 	NamedHotspot _item12, _item13;
113 	Item14 _item14;
114 	Item15 _item15;
115 	Action1 _action1;
116 	Action2 _action2;
117 	Action3 _action3;
118 	Action4 _action4;
119 	Action5 _action5;
120 	SpeakerGameText _gameTextSpeaker;
121 	SpeakerSutter _sutterSpeaker;
122 	SpeakerDoug _dougSpeaker;
123 	SpeakerJakeNoHead _jakeSpeaker;
124 	TimerExt _timer;
125 	int _field2760, _field2762;
126 
127 	Scene300();
128 	void postInit(SceneObjectList *OwnerList = NULL) override;
129 	void signal() override;
130 	void process(Event &event) override;
131 	void dispatch() override;
132 };
133 
134 class Scene315: public SceneExt {
135 	/* Objects */
136 	class BulletinMemo: public NamedObject {
137 	public:
138 		bool startAction(CursorType action, Event &event) override;
139 	};
140 	class Object2: public NamedObject {
141 	public:
142 		bool startAction(CursorType action, Event &event) override;
143 	};
144 	class ATFMemo: public NamedObject {
145 	public:
146 		bool startAction(CursorType action, Event &event) override;
147 	};
148 
149 	/* Items */
150 	class Barry: public NamedHotspot {
151 	public:
152 		bool startAction(CursorType action, Event &event) override;
153 	};
154 	class SutterSlot: public NamedHotspot {
155 	public:
156 		bool startAction(CursorType action, Event &event) override;
157 	};
158 	class Sign: public NamedHotspot {
159 	public:
160 		bool startAction(CursorType action, Event &event) override;
161 	};
162 	class BulletinBoard: public NamedHotspot {
163 	public:
164 		bool startAction(CursorType action, Event &event) override;
165 	};
166 	class CleaningKit: public NamedHotspot {
167 	public:
168 		bool startAction(CursorType action, Event &event) override;
169 	};
170 	class BriefingMaterial: public NamedHotspot {
171 	public:
172 		bool startAction(CursorType action, Event &event) override;
173 	};
174 	class WestExit: public NamedHotspot {
175 	public:
176 		bool startAction(CursorType action, Event &event) override;
177 	};
178 	class SouthWestExit: public NamedHotspot {
179 	public:
180 		bool startAction(CursorType action, Event &event) override;
181 	};
182 
183 	/* Actions */
184 	class Action1: public Action {
185 	public:
186 		void signal() override;
187 	};
188 public:
189 	SequenceManager _sequenceManager;
190 	SpeakerGameText _gameTextSpeaker;
191 	SpeakerSutter _sutterSpeaker;
192 	SpeakerHarrison _harrisonSpeaker;
193 	SpeakerJakeJacket _jakeJacketSpeaker;
194 	SpeakerJakeUniform _jakeUniformSpeaker;
195 	SpeakerJailer _jailerSpeaker;
196 	Barry _barry;
197 	SutterSlot _sutterSlot;
198 	NamedHotspot _item3;
199 	Sign _sign;
200 	BulletinBoard _bulletinBoard;
201 	BulletinMemo _bulletinMemo;
202 	Object2 _object2;
203 	ATFMemo _atfMemo;
204 	SceneObject _object4, _object5, _object6;
205 	SceneObject _object7, _object8, _object9;
206 	NamedHotspot _item6, _item7, _item8, _item9;
207 	NamedHotspot _item10, _item11, _item12, _item13;
208 	CleaningKit _cleaningKit;
209 	BriefingMaterial _briefingMaterial;
210 	WestExit _westExit;
211 	SouthWestExit _swExit;
212 	Action1 _action1;
213 	int _stripNumber;
214 	int _field1398;
215 	int _invGreenCount, _bookGreenCount, _invGangCount;
216 	int _bookGangCount, _field1B6C, _field139C;
217 	bool _field1B68, _doorOpened;
218 	CursorType _currentCursor;
219 
220 	Scene315();
221 	void synchronize(Serializer &s) override;
222 	void postInit(SceneObjectList *OwnerList = NULL) override;
223 	void signal() override;
224 	void process(Event &event) override;
225 	void dispatch() override;
226 };
227 
228 class Scene325: public SceneExt {
229 	/* Items */
230 	class Item1: public NamedHotspot {
231 	public:
232 		bool startAction(CursorType action, Event &event) override;
233 	};
234 public:
235 	SequenceManager _sequenceManager;
236 	SpeakerGameText _gameTextSpeaker;
237 	SpeakerPSutter _PSutterSpeaker;
238 	Item1 _item1;
239 	NamedObject _object1, _object2, _object3, _object4, _object5;
240 
241 	void postInit(SceneObjectList *OwnerList = NULL) override;
242 	void signal() override;
243 };
244 
245 class Scene330: public SceneExt {
246 	class Timer1: public Timer {
247 	public:
248 		void signal() override;
249 	};
250 public:
251 	SequenceManager _sequenceManager;
252 	NamedObject _object1;
253 	SceneObject _object2;
254 	ASoundExt _sound1, _sound2;
255 	Timer1 _timer;
256 	int _seqNumber;
257 
258 	Scene330();
259 	void synchronize(Serializer &s) override;
260 	void postInit(SceneObjectList *OwnerList = NULL) override;
261 	void remove() override;
262 	void signal() override;
263 };
264 
265 class Scene340: public PalettedScene {
266 	/* Actions */
267 	class Action1: public Action {
268 	public:
269 		void signal() override;
270 	};
271 	class Action2: public Action {
272 	public:
273 		void signal() override;
274 	};
275 	class Action3: public Action {
276 	public:
277 		void signal() override;
278 	};
279 	class Action4: public Action {
280 	public:
281 		void signal() override;
282 	};
283 	class Action5: public Action {
284 	public:
285 		void signal() override;
286 	};
287 	class Action6: public Action {
288 	public:
289 		void signal() override;
290 	};
291 	class Action7: public Action {
292 	public:
293 		void signal() override;
294 	};
295 	class Action8: public Action {
296 	public:
297 		void signal() override;
298 		void process(Event &event) override;
299 	};
300 
301 	/* Items */
302 	class Item1: public NamedHotspot {
303 	public:
304 		bool startAction(CursorType action, Event &event) override;
305 	};
306 	class WestExit: public NamedHotspot {
307 	public:
308 		bool startAction(CursorType action, Event &event) override;
309 	};
310 	class SouthWestExit: public NamedHotspot {
311 	public:
312 		bool startAction(CursorType action, Event &event) override;
313 	};
314 	class NorthExit: public NamedHotspot {
315 	public:
316 		bool startAction(CursorType action, Event &event) override;
317 	};
318 
319 	/* Objects */
320 	class Child: public NamedObject {
321 	public:
322 		bool startAction(CursorType action, Event &event) override;
323 	};
324 	class Woman: public NamedObject {
325 	public:
326 		bool startAction(CursorType action, Event &event) override;
327 	};
328 	class Harrison: public NamedObject {
329 	public:
330 		bool startAction(CursorType action, Event &event) override;
331 	};
332 
333 	/* Timers */
334 	class Timer2: public Timer {
335 	public:
336 		void signal() override;
337 	};
338 public:
339 	SequenceManager _sequenceManager1, _sequenceManager2, _sequenceManager3;
340 	Child _child;
341 	Woman _woman;
342 	Harrison _harrison;
343 	SceneObject _object4, _object5;
344 	Item1 _item1;
345 	NamedHotspot _item2, _item3;
346 	WestExit _westExit;
347 	SouthWestExit _swExit;
348 	NorthExit _northExit;
349 	Action1 _action1;
350 	Action2 _action2;
351 	Action3 _action3;
352 	Action4 _action4;
353 	Action5 _action5;
354 	Action6 _action6;
355 	Action7 _action7;
356 	Action8 _action8;
357 	SpeakerGameText _gameTextSpeaker;
358 	SpeakerJordan _jordanSpeaker;
359 	SpeakerSkipB _skipBSpeaker;
360 	SpeakerJakeUniform _jakeUniformSpeaker;
361 	SpeakerHarrison _harrisonSpeaker;
362 	ASoundExt _sound1, _sound2;
363 	TimerExt _timer1;
364 	Timer2 _timer2;
365 	int _seqNumber1, _womanDialogCount, _backupPresent;
366 
367 	Scene340();
368 	void synchronize(Serializer &s) override;
369 	void postInit(SceneObjectList *OwnerList = NULL) override;
370 	void remove() override;
371 	void signal() override;
372 	void process(Event &event) override;
373 	void dispatch() override;
374 };
375 
376 class Scene342: public PalettedScene {
377 	/* Items */
378 	class Item1: public NamedHotspot {
379 	public:
380 		bool startAction(CursorType action, Event &event) override;
381 	};
382 	class WestExit: public NamedHotspot {
383 	public:
384 		bool startAction(CursorType action, Event &event) override;
385 	};
386 	class SouthWestExit: public NamedHotspot {
387 	public:
388 		bool startAction(CursorType action, Event &event) override;
389 	};
390 	class NorthExit: public NamedHotspot {
391 	public:
392 		bool startAction(CursorType action, Event &event) override;
393 	};
394 
395 	/* Objects */
396 	class Lyle: public NamedObject {
397 	public:
398 		bool startAction(CursorType action, Event &event) override;
399 	};
400 
401 	/* Timers */
402 	class Timer1: public Timer {
403 	public:
404 		void signal() override;
405 	};
406 public:
407 	SequenceManager _sequenceManager1, _sequenceManager2;
408 	Lyle _lyle;
409 	NamedObject _object2;
410 	SceneObject _object3, _object4;
411 	Item1 _item1;
412 	NamedHotspot _item2, _item3;
413 	WestExit _westExit;
414 	SouthWestExit _swExit;
415 	NorthExit _northExit;
416 	SpeakerGameText _gameTextSpeaker;
417 	SpeakerJakeJacket _jakeJacketSpeaker;
418 	SpeakerLyleHat _lyleHatSpeaker;
419 	ASoundExt _sound1;
420 	Timer1 _timer1;
421 	int _field1A1A;
422 
423 	Scene342();
424 	void synchronize(Serializer &s) override;
425 	void postInit(SceneObjectList *OwnerList = NULL) override;
426 	void remove() override;
427 	void signal() override;
428 	void process(Event &event) override;
429 	void dispatch() override;
430 };
431 
432 class Scene350: public SceneExt {
433 	/* Items */
434 	class FireBox: public NamedHotspot {
435 	public:
436 		bool startAction(CursorType action, Event &event) override;
437 	};
438 	class Yacht: public NamedHotspot {
439 	public:
440 		bool _flag;
441 
getClassName()442 		Common::String getClassName() override { return "Scene350_Item6"; }
443 		void synchronize(Serializer &s) override;
444 		bool startAction(CursorType action, Event &event) override;
445 	};
446 	class SouthWestExit: public NamedHotspot {
447 	public:
448 		bool startAction(CursorType action, Event &event) override;
449 	};
450 
451 	/* Objects */
452 	class Hook: public NamedObject {
453 	public:
454 		bool startAction(CursorType action, Event &event) override;
455 	};
456 	class FireboxInset: public FocusObject {
457 	public:
458 		bool startAction(CursorType action, Event &event) override;
459 	};
460 
461 	/* Timers */
462 	class Timer1: public Timer {
463 	public:
464 		void signal() override;
465 	};
466 public:
467 	SequenceManager _sequenceManager1, _sequenceManager2, _sequenceManager3;
468 	NamedObject _harrison;
469 	SceneObject _yachtDoor;
470 	BackgroundSceneObject _yachtBody;
471 	Hook _hook;
472 	FireboxInset _fireBoxInset;
473 	NamedHotspot _item1, _item2, _item3, _item4;
474 	FireBox _fireBox;
475 	Yacht _yacht;
476 	SouthWestExit _swExit;
477 	SpeakerGameText _gameTextSpeaker;
478 	SpeakerJakeUniform _jakeUniformSpeaker;
479 	SpeakerHarrison _harrisonSpeaker;
480 	ASoundExt _sound1, _sound2;
481 	Timer1 _timer1;
482 	int _field1D44, _field1D46;
483 
484 	Scene350();
485 	void postInit(SceneObjectList *OwnerList = NULL) override;
486 	void remove() override;
487 	void signal() override;
488 	void process(Event &event) override;
489 	void checkGun() override;
490 };
491 
492 class Scene355: public PalettedScene {
493 	/* Objects */
494 	class Doorway: public NamedObject {
495 	public:
496 		int _mode1356Count, _talkCount;
497 		bool _onDuty;
498 
Doorway()499 		Doorway() { _mode1356Count = _talkCount = 0; _onDuty = false; }
getClassName()500 		Common::String getClassName() override { return "Scene355_Doorway"; }
501 		void synchronize(Serializer &s) override;
502 		bool startAction(CursorType action, Event &event) override;
503 	};
504 	class Locker: public NamedObject {
505 	public:
506 		bool startAction(CursorType action, Event &event) override;
507 	};
508 	class LockerInset: public FocusObject {
509 	public:
510 		bool startAction(CursorType action, Event &event) override;
511 	};
512 	class Object5: public NamedObject {
513 	public:
514 		bool startAction(CursorType action, Event &event) override;
515 	};
516 	class Green: public NamedObjectExt {
517 	public:
518 		bool startAction(CursorType action, Event &event) override;
519 	};
520 	class Lyle: public NamedObjectExt {
521 	public:
522 		bool startAction(CursorType action, Event &event) override;
523 	};
524 	class Object8: public NamedObject {
525 	public:
526 		bool startAction(CursorType action, Event &event) override;
527 	};
528 
529 	/* Items */
530 	class Item1: public SceneHotspot {
531 	public:
532 		bool startAction(CursorType action, Event &event) override;
533 	};
534 	class Item2: public NamedHotspot {
535 	public:
536 		bool startAction(CursorType action, Event &event) override;
537 	};
538 	class Item3: public SceneHotspotExt {
539 	public:
540 		bool startAction(CursorType action, Event &event) override;
541 	};
542 	class Item4: public SceneHotspot {
543 	public:
544 		bool startAction(CursorType action, Event &event) override;
545 	};
546 	class Pouch: public NamedHotspot {
547 	public:
548 		bool startAction(CursorType action, Event &event) override;
549 	};
550 	class Item11: public NamedHotspot {
551 	public:
552 		bool startAction(CursorType action, Event &event) override;
553 	};
554 	class RentalExit: public NamedHotspot {
555 	public:
556 		bool startAction(CursorType action, Event &event) override;
557 	};
558 
559 	/* Actions */
560 	class Action1: public Action {
561 	public:
562 		void signal() override;
563 	};
564 	class Action2: public Action {
565 	public:
566 		void signal() override;
567 	};
568 public:
569 	SequenceManager _sequenceManager;
570 	SpeakerGameText _gameTextSpeaker;
571 	SpeakerJakeUniform _jakeUniformSpeaker;
572 	SpeakerJakeJacket _jakeJacketSpeaker;
573 	SpeakerHarrison _harrisonSpeaker;
574 	SpeakerLyleHat _lyleHatSpeaker;
575 	SpeakerGreen _greenSpeaker;
576 	NamedObject _harrison;
577 	Doorway _doorway;
578 	Locker _locker;
579 	LockerInset _lockerInset;
580 	Object5 _object5;
581 	Green _green;
582 	Lyle _lyle;
583 	Object8 _object8;
584 	NamedObject _object9, _object10, _object11;
585 	Item1 _item1;
586 	Item2 _item2;
587 	Item3 _item3;
588 	Item4 _item4;
589 	Pouch _pouch;
590 	NamedHotspot _item6, _item7, _item8;
591 	NamedHotspot _item9, _item10;
592 	Item11 _item11;
593 	RentalExit _rentalExit;
594 	ASoundExt _sound1, _sound2, _sound3;
595 	Action1 _action1;
596 	Action2 _action2;
597 	int _nextSceneMode;
598 	bool _modeFlag;
599 
600 	Scene355();
601 	void synchronize(Serializer &s) override;
602 	void postInit(SceneObjectList *OwnerList = NULL) override;
603 	void signal() override;
604 	void process(Event &event) override;
605 	void dispatch() override;
606 
607 	void setMode(bool mode, int sceneMode);
608 };
609 
610 class Scene360: public SceneExt {
611 	/* Objects */
612 	class SlidingDoor: public NamedObject {
613 	public:
614 		bool startAction(CursorType action, Event &event) override;
615 	};
616 	class Window: public NamedObject {
617 	public:
618 		bool startAction(CursorType action, Event &event) override;
619 	};
620 	class Object4: public NamedObject {
621 	public:
622 		bool startAction(CursorType action, Event &event) override;
623 	};
624 	class BaseballCards: public NamedObject {
625 	public:
626 		bool startAction(CursorType action, Event &event) override;
627 	};
628 	class Harrison: public NamedObject {
629 	public:
630 		bool startAction(CursorType action, Event &event) override;
631 	};
632 	class Object7: public NamedObject {
633 	public:
634 		bool startAction(CursorType action, Event &event) override;
635 	};
636 
637 	/* Items */
638 	class Item1: public SceneHotspot {
639 	public:
640 		bool startAction(CursorType action, Event &event) override;
641 	};
642 	class Item2: public SceneHotspot {
643 	public:
644 		bool startAction(CursorType action, Event &event) override;
645 	};
646 	class Item3: public SceneHotspot {
647 	public:
648 		bool startAction(CursorType action, Event &event) override;
649 	};
650 	class Barometer: public SceneHotspot {
651 	public:
652 		bool startAction(CursorType action, Event &event) override;
653 	};
654 
655 	/* Actions */
656 	class Action1: public Action {
657 	public:
658 		void signal() override;
659 	};
660 public:
661 	SequenceManager _sequenceManager1, _sequenceManager2;
662 	SpeakerGameText _gameTextSpeaker;
663 	SpeakerJakeUniform _jakeUniformSpeaker;
664 	SpeakerHarrison _harrisonSpeaker;
665 	SpeakerGreen _greenSpeaker;
666 	SlidingDoor _slidingDoor;
667 	SceneObject _object2;
668 	Window _window;
669 	Object4 _object4;
670 	BaseballCards _baseballCards;
671 	Harrison _harrison;
672 	Object7 _object7;
673 	Item1 _item1;
674 	Item2 _item2;
675 	Item3 _item3;
676 	Barometer _barometer;
677 	Action1 _action1;
678 	ASound _sound1;
679 
680 	void synchronize(Serializer &s) override;
681 	void postInit(SceneObjectList *OwnerList = NULL) override;
682 	void signal() override;
683 	void process(Event &event) override;
684 	void dispatch() override;
685 };
686 
687 class Scene370: public SceneExt {
688 	/* Items */
689 	class Item1: public NamedHotspot {
690 	public:
691 		bool startAction(CursorType action, Event &event) override;
692 	};
693 	class Item6: public SceneHotspot {
694 	public:
695 		bool startAction(CursorType action, Event &event) override;
696 	};
697 	class Exit: public NamedHotspot {
698 	public:
699 		bool startAction(CursorType action, Event &event) override;
700 	};
701 
702 	/* Objects */
703 	class GreensGun: public NamedObject {
704 	public:
705 		bool startAction(CursorType action, Event &event) override;
706 	};
707 	class Green: public NamedObject2 {
708 	public:
709 		bool startAction(CursorType action, Event &event) override;
710 	};
711 	class Harrison: public NamedObject {
712 	public:
713 		bool startAction(CursorType action, Event &event) override;
714 	};
715 	class Laura: public NamedObject {
716 	public:
717 		bool startAction(CursorType action, Event &event) override;
718 	};
719 
720 	/* Speakers */
721 	class SpeakerLaura370: public SpeakerLaura {
722 	public:
723 		void setText(const Common::String &msg) override;
724 	};
725 public:
726 	SequenceManager _sequenceManager;
727 	SpeakerGameText _gameTextSpeaker;
728 	SpeakerJakeUniform _jakeUniformSpeaker;
729 	SpeakerLaura _lauraSpeaker;
730 	SpeakerLauraHeld _lauraHeldSpeaker;
731 	SpeakerGreen _greenSpeaker;
732 	SpeakerHarrison _harrisonSpeaker;
733 	GreensGun _greensGun;
734 	Green _green;
735 	Harrison _harrison;
736 	Laura _laura;
737 	NamedObject _object5;
738 	SceneObject _object6;
739 	Item1 _item1;
740 	NamedHotspot _item2, _item3, _item4, _item5;
741 	Item6 _item6;
742 	Exit _exit;
743 	ASound _sound1;
744 
745 	void postInit(SceneObjectList *OwnerList = NULL) override;
746 	void signal() override;
747 	void process(Event &event) override;
748 	void dispatch() override;
749 };
750 
751 class Scene380: public SceneExt {
752 	/* Objects */
753 	class Vechile: public NamedObjectExt {
754 	public:
755 		bool startAction(CursorType action, Event &event) override;
756 	};
757 	class Door: public NamedObjectExt {
758 	public:
759 		bool startAction(CursorType action, Event &event) override;
760 	};
761 public:
762 	SequenceManager _sequenceManager;
763 	SpeakerGameText _gameTextSpeaker;
764 	Vechile _vechile;
765 	Door _door;
766 	NamedHotspot _item1, _item2, _item3, _item4, _item5;
767 	NamedHotspot _item6, _item7, _item8, _item9;
768 
769 	void postInit(SceneObjectList *OwnerList = NULL) override;
770 	void signal() override;
771 };
772 
773 class Scene385: public SceneExt {
774 	/* Items */
775 	class Exit: public NamedHotspot {
776 	public:
777 		bool startAction(CursorType action, Event &event) override;
778 	};
779 
780 	/* Objects */
781 	class Door: public NamedObject {
782 	public:
783 		bool startAction(CursorType action, Event &event) override;
784 	};
785 	class Jim: public NamedObject {
786 	public:
787 		bool startAction(CursorType action, Event &event) override;
788 	};
789 	class Dezi: public NamedObject {
790 	public:
791 		bool startAction(CursorType action, Event &event) override;
792 	};
793 
794 	/* Actions */
795 	class Action1: public Action {
796 	public:
797 		void signal() override;
798 	};
799 	class Action2: public Action {
800 	public:
801 		void signal() override;
802 	};
803 public:
804 	SequenceManager _sequenceManager;
805 	Action1 _action1;
806 	Action2 _action2;
807 	Door _door;
808 	Jim _jim;
809 	Dezi _dezi;
810 	SpeakerGameText _gameTextSpeaker;
811 	SpeakerJim _jimSpeaker;
812 	SpeakerDezi _deziSpeaker;
813 	SpeakerJake385 _jake385Speaker;
814 	NamedHotspot _item1, _item2, _item3, _item4, _item5;
815 	Exit _exit;
816 	int _talkAction;
817 	bool _jimFlag;
818 
819 	Scene385();
820 	void synchronize(Serializer &s) override;
821 	void postInit(SceneObjectList *OwnerList = NULL) override;
822 	void signal() override;
823 	void process(Event &event) override;
824 	void dispatch() override;
825 };
826 
827 class Scene390: public SceneExt {
828 	/* Items */
829 	class BookingForms: public NamedHotspotExt {
830 	public:
831 		bool startAction(CursorType action, Event &event) override;
832 	};
833 
834 	/* Objects */
835 	class Green: public NamedObjectExt {
836 	public:
837 		bool startAction(CursorType action, Event &event) override;
838 	};
839 	class Object2: public NamedObjectExt {
840 	public:
841 		bool startAction(CursorType action, Event &event) override;
842 	};
843 	class Object3: public NamedObject {
844 	public:
845 		bool startAction(CursorType action, Event &event) override;
846 	};
847 	class GangMember1: public NamedObjectExt {
848 	public:
849 		bool startAction(CursorType action, Event &event) override;
850 	};
851 	class GangMember2: public NamedObjectExt {
852 	public:
853 		bool startAction(CursorType action, Event &event) override;
854 	};
855 	class Door: public NamedObject {
856 	public:
857 		bool startAction(CursorType action, Event &event) override;
858 	};
859 
860 	/* Actions */
861 	class Action1: public Action {
862 	public:
863 		void signal() override;
864 	};
865 public:
866 	SequenceManager _sequenceManager;
867 	SpeakerGameText _gameTextSpeaker;
868 	SpeakerJakeUniform _jakeUniformSpeaker;
869 	SpeakerJakeJacket _jakeJacketSpeaker;
870 	SpeakerGreen _greenSpeaker;
871 	SpeakerJailer _jailerSpeaker;
872 	SpeakerDriver _driverSpeaker;
873 	SpeakerShooter _shooterSpeaker;
874 	Action1 _action1;
875 	Green _green;
876 	Object2 _object2;
877 	Object3 _object3;
878 	GangMember1 _gangMember1;
879 	GangMember2 _gangMember2;
880 	Door _door;
881 	NamedHotspot _item1, _item3, _item4;
882 	BookingForms _bookingForms;
883 
884 	void postInit(SceneObjectList *OwnerList = NULL) override;
885 	void signal() override;
886 };
887 
888 } // End of namespace BlueForce
889 
890 } // End of namespace TsAGE
891 
892 #endif
893