ScummVM API documentation
rooms.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 SUPERNOVA2_ROOMS_H
23 #define SUPERNOVA2_ROOMS_H
24 
25 #include "common/str.h"
26 
27 #include "supernova/msn_def.h"
28 #include "supernova/room.h"
29 
30 namespace Common {
31 class ReadStream;
32 class WriteStream;
33 }
34 
35 namespace Supernova {
36 
37 class GameManager2;
38 class SupernovaEngine;
39 
40 struct RoomEntry {
41  int _e;
42  int _s;
43  int _z;
44  int _r;
45  RoomId _exitRoom;
46 };
47 
48 class Room2 : public Room {
49  protected:
50  GameManager2 *_gm;
51 };
52 
53 class Intro2 : public Room2 {
54 public:
56  void onEntrance() override;
57 
58 private:
59  void titleScreen();
60  bool tvSay(int mod1, int mod2, int rest, MessagePosition pos, int id);
61  bool tvRest(int mod1, int mod2, int rest);
62  bool displayThoughtMessage(int id);
63  bool thoughts1();
64  bool tvDialogue();
65  bool thoughts2();
66 
67  Common::String _introText;
68 };
69 
70 class Airport : public Room2 {
71 public:
73  void onEntrance() override;
74 
75 };
76 
77 class TaxiStand : public Room2 {
78 public:
80  void onEntrance() override;
81  void animation() override;
82  bool interact(Action verb, Object &obj1, Object &obj2) override;
83 
84 };
85 
86 class Street : public Room2 {
87 public:
89  void onEntrance() override;
90  void animation() override;
91  bool interact(Action verb, Object &obj1, Object &obj2) override;
92 
93 };
94 
95 class Games : public Room2 {
96 public:
98  void onEntrance() override;
99  bool interact(Action verb, Object &obj1, Object &obj2) override;
100 
101 };
102 
103 class Cabin2 : public Room2 {
104 public:
106  void onEntrance() override;
107  void animation() override;
108  bool interact(Action verb, Object &obj1, Object &obj2) override;
109 };
110 
111 class Kiosk : public Room2 {
112 public:
114  void onEntrance() override;
115  void animation() override;
116  bool interact(Action verb, Object &obj1, Object &obj2) override;
117 
118 };
119 
120 class CulturePalace : public Room2 {
121 public:
123  void onEntrance() override;
124  void animation() override;
125  bool interact(Action verb, Object &obj1, Object &obj2) override;
126 
127 private:
128  void notEnoughMoney();
129 };
130 
131 class Checkout : public Room2 {
132 public:
134  void onEntrance() override;
135  void animation() override;
136  bool interact(Action verb, Object &obj1, Object &obj2) override;
137 
138 private:
139  void appearance();
140  void shouting();
141 };
142 
143 class City1 : public Room2 {
144 public:
146  void onEntrance() override;
147  void animation() override;
148  bool interact(Action verb, Object &obj1, Object &obj2) override;
149 
150 };
151 
152 class City2 : public Room2 {
153 public:
155  void onEntrance() override;
156  void animation() override;
157  bool interact(Action verb, Object &obj1, Object &obj2) override;
158 
159 };
160 
161 class Elevator2 : public Room2 {
162 public:
164  void onEntrance() override;
165  void animation() override;
166  bool interact(Action verb, Object &obj1, Object &obj2) override;
167 
168 private:
169  void jobDescription();
170 };
171 
172 class Apartment : public Room2 {
173 public:
175  void onEntrance() override;
176  void animation() override;
177  bool interact(Action verb, Object &obj1, Object &obj2) override;
178 
179 };
180 
181 class Ship : public Room2 {
182 public:
184  void onEntrance() override;
185  void animation() override;
186  bool interact(Action verb, Object &obj1, Object &obj2) override;
187  Common::String _outroText;
188  Common::String _outroText2;
189 
190 private:
191  void kill();
192  void outro();
193 };
194 
195 class Pyramid : public Room2 {
196 public:
198  void onEntrance() override;
199  void animation() override;
200  bool interact(Action verb, Object &obj1, Object &obj2) override;
201 
202 };
203 
204 class PyrEntrance : public Room2 {
205 public:
207  void onEntrance() override;
208  void animation() override;
209  bool interact(Action verb, Object &obj1, Object &obj2) override;
210 
211 private:
212  uint32 _waitTime;
213 };
214 
215 class Upstairs1 : public Room2 {
216 public:
218  void onEntrance() override;
219  void animation() override;
220  bool interact(Action verb, Object &obj1, Object &obj2) override;
221 
222 };
223 
224 class Downstairs1 : public Room2 {
225 public:
227  void onEntrance() override;
228  void animation() override;
229  bool interact(Action verb, Object &obj1, Object &obj2) override;
230 
231 };
232 
233 class BottomRightDoor : public Room2 {
234 public:
236  void onEntrance() override;
237  void animation() override;
238  bool interact(Action verb, Object &obj1, Object &obj2) override;
239 
240 };
241 
242 class BottomLeftDoor : public Room2 {
243 public:
245  void onEntrance() override;
246  void animation() override;
247  bool interact(Action verb, Object &obj1, Object &obj2) override;
248 
249 };
250 
251 class Upstairs2 : public Room2 {
252 public:
254  void onEntrance() override;
255  void animation() override;
256  bool interact(Action verb, Object &obj1, Object &obj2) override;
257 
258 };
259 
260 class Downstairs2 : public Room2 {
261 public:
263  void onEntrance() override;
264  void animation() override;
265  bool interact(Action verb, Object &obj1, Object &obj2) override;
266 
267 };
268 
269 class UpperDoor : public Room2 {
270 public:
272  void onEntrance() override;
273  void animation() override;
274  bool interact(Action verb, Object &obj1, Object &obj2) override;
275 
276 };
277 
278 class PuzzleFront : public Room2 {
279 public:
281  void onEntrance() override;
282  void animation() override;
283  bool interact(Action verb, Object &obj1, Object &obj2) override;
284 
285 };
286 
287 class PuzzleBehind : public Room2 {
288 public:
290  void onEntrance() override;
291  void animation() override;
292  bool interact(Action verb, Object &obj1, Object &obj2) override;
293 
294 };
295 
296 class Formula1F : public Room2 {
297 public:
299  void onEntrance() override;
300  void animation() override;
301  bool interact(Action verb, Object &obj1, Object &obj2) override;
302 
303 };
304 
305 class Formula1N : public Room2 {
306 public:
308  void onEntrance() override;
309  void animation() override;
310  bool interact(Action verb, Object &obj1, Object &obj2) override;
311 
312 };
313 
314 class Formula2F : public Room2 {
315 public:
317  void onEntrance() override;
318  void animation() override;
319  bool interact(Action verb, Object &obj1, Object &obj2) override;
320 
321 };
322 
323 class Formula2N : public Room2 {
324 public:
326  void onEntrance() override;
327  void animation() override;
328  bool interact(Action verb, Object &obj1, Object &obj2) override;
329 
330 };
331 
332 class TomatoF : public Room2 {
333 public:
335  void onEntrance() override;
336  void animation() override;
337  bool interact(Action verb, Object &obj1, Object &obj2) override;
338 
339 };
340 
341 class TomatoN : public Room2 {
342 public:
344  void onEntrance() override;
345  void animation() override;
346  bool interact(Action verb, Object &obj1, Object &obj2) override;
347 
348 };
349 
350 class MonsterF : public Room2 {
351 public:
353  void onEntrance() override;
354  void animation() override;
355  bool interact(Action verb, Object &obj1, Object &obj2) override;
356 
357 };
358 
359 class Monster1N : public Room2 {
360 public:
362  void onEntrance() override;
363  void animation() override;
364  bool interact(Action verb, Object &obj1, Object &obj2) override;
365 
366 };
367 
368 class Monster2N : public Room2 {
369 public:
371  void onEntrance() override;
372  void animation() override;
373  bool interact(Action verb, Object &obj1, Object &obj2) override;
374 
375 };
376 
377 class Upstairs3 : public Room2 {
378 public:
380  void onEntrance() override;
381  void animation() override;
382  bool interact(Action verb, Object &obj1, Object &obj2) override;
383 
384 };
385 
386 class Downstairs3 : public Room2 {
387 public:
389  void onEntrance() override;
390  void animation() override;
391  bool interact(Action verb, Object &obj1, Object &obj2) override;
392 
393 };
394 
395 class LCorridor1 : public Room2 {
396 public:
398  void onEntrance() override;
399  void animation() override;
400  bool interact(Action verb, Object &obj1, Object &obj2) override;
401 
402 };
403 
404 class LCorridor2 : public Room2 {
405 public:
407  void onEntrance() override;
408  void animation() override;
409  bool interact(Action verb, Object &obj1, Object &obj2) override;
410 
411 };
412 
413 class HoleRoom : public Room2 {
414 public:
416  void onEntrance() override;
417  void animation() override;
418  bool interact(Action verb, Object &obj1, Object &obj2) override;
419 
420 };
421 
422 class InHole : public Room2 {
423 public:
425  void onEntrance() override;
426  void animation() override;
427  bool interact(Action verb, Object &obj1, Object &obj2) override;
428 
429 };
430 
431 class Floordoor : public Room2 {
432 public:
434  void onEntrance() override;
435  void animation() override;
436  bool interact(Action verb, Object &obj1, Object &obj2) override;
437 
438 };
439 
440 class FloordoorU : public Room2 {
441 public:
443  void onEntrance() override;
444  void animation() override;
445  bool interact(Action verb, Object &obj1, Object &obj2) override;
446 
447 };
448 
449 class BstDoor : public Room2 {
450 public:
452  void onEntrance() override;
453  void animation() override;
454  bool interact(Action verb, Object &obj1, Object &obj2) override;
455 
456 private:
457  bool _password[16];
458 };
459 
460 class Hall2 : public Room2 {
461 public:
463  void onEntrance() override;
464  void animation() override;
465  bool interact(Action verb, Object &obj1, Object &obj2) override;
466 
467 };
468 
469 class CoffinRoom : public Room2 {
470 public:
472  void onEntrance() override;
473  void animation() override;
474  bool interact(Action verb, Object &obj1, Object &obj2) override;
475 
476 };
477 
478 class Mask : public Room2 {
479 public:
481  void onEntrance() override;
482  void animation() override;
483  bool interact(Action verb, Object &obj1, Object &obj2) override;
484 
485 };
486 
487 class Museum : public Room2 {
488 public:
490  void onEntrance() override;
491  void animation() override;
492  bool interact(Action verb, Object &obj1, Object &obj2) override;
493 
494 };
495 
496 class MusEntrance : public Room2 {
497 public:
499  void onEntrance() override;
500  void animation() override;
501  bool interact(Action verb, Object &obj1, Object &obj2) override;
502 
503 };
504 
505 class Mus1 : public Room2 {
506 public:
508  void onEntrance() override;
509  void animation() override;
510  bool interact(Action verb, Object &obj1, Object &obj2) override;
511 
512 };
513 
514 class Mus2 : public Room2 {
515 public:
517  void onEntrance() override;
518  void animation() override;
519  bool interact(Action verb, Object &obj1, Object &obj2) override;
520 
521 };
522 
523 class Mus3 : public Room2 {
524 public:
526  void onEntrance() override;
527  void animation() override;
528  bool interact(Action verb, Object &obj1, Object &obj2) override;
529 
530 };
531 
532 class Mus4 : public Room2 {
533 public:
535  void onEntrance() override;
536  void animation() override;
537  bool interact(Action verb, Object &obj1, Object &obj2) override;
538 
539 };
540 
541 class Mus5 : public Room2 {
542 public:
544  void onEntrance() override;
545  void animation() override;
546  bool interact(Action verb, Object &obj1, Object &obj2) override;
547 
548 };
549 
550 class Mus6 : public Room2 {
551 public:
553  void onEntrance() override;
554  void animation() override;
555  bool interact(Action verb, Object &obj1, Object &obj2) override;
556 
557 };
558 
559 class Mus7 : public Room2 {
560 public:
562  void onEntrance() override;
563  void animation() override;
564  bool interact(Action verb, Object &obj1, Object &obj2) override;
565 
566 };
567 
568 class Mus8 : public Room2 {
569 public:
571  void onEntrance() override;
572  void animation() override;
573  bool interact(Action verb, Object &obj1, Object &obj2) override;
574 
575 };
576 
577 class Mus9 : public Room2 {
578 public:
580  void onEntrance() override;
581  void animation() override;
582  bool interact(Action verb, Object &obj1, Object &obj2) override;
583 
584 };
585 
586 class Mus10 : public Room2 {
587 public:
589  void onEntrance() override;
590  void animation() override;
591  bool interact(Action verb, Object &obj1, Object &obj2) override;
592 
593 };
594 
595 class Mus11 : public Room2 {
596 public:
598  void onEntrance() override;
599  void animation() override;
600  bool interact(Action verb, Object &obj1, Object &obj2) override;
601 
602 };
603 
604 class MusRound : public Room2 {
605 public:
607  void onEntrance() override;
608  void animation() override;
609  bool interact(Action verb, Object &obj1, Object &obj2) override;
610 
611 };
612 
613 class Mus12 : public Room2 {
614 public:
616  void onEntrance() override;
617  void animation() override;
618  bool interact(Action verb, Object &obj1, Object &obj2) override;
619 
620 };
621 
622 class Mus13 : public Room2 {
623 public:
625  void onEntrance() override;
626  void animation() override;
627  bool interact(Action verb, Object &obj1, Object &obj2) override;
628 
629 };
630 
631 class Mus14 : public Room2 {
632 public:
634  void onEntrance() override;
635  void animation() override;
636  bool interact(Action verb, Object &obj1, Object &obj2) override;
637 
638 };
639 
640 class Mus15 : public Room2 {
641 public:
643  void onEntrance() override;
644  void animation() override;
645  bool interact(Action verb, Object &obj1, Object &obj2) override;
646 
647 };
648 
649 class Mus16 : public Room2 {
650 public:
652  void onEntrance() override;
653  void animation() override;
654  bool interact(Action verb, Object &obj1, Object &obj2) override;
655 
656 };
657 
658 class Mus17 : public Room2 {
659 public:
661  void onEntrance() override;
662  void animation() override;
663  bool interact(Action verb, Object &obj1, Object &obj2) override;
664 
665 };
666 
667 class Mus18 : public Room2 {
668 public:
670  void onEntrance() override;
671  void animation() override;
672  bool interact(Action verb, Object &obj1, Object &obj2) override;
673 
674 };
675 
676 class Mus19 : public Room2 {
677 public:
679  void onEntrance() override;
680  void animation() override;
681  bool interact(Action verb, Object &obj1, Object &obj2) override;
682 
683 };
684 
685 class Mus20 : public Room2 {
686 public:
688  void onEntrance() override;
689  void animation() override;
690  bool interact(Action verb, Object &obj1, Object &obj2) override;
691 
692 };
693 
694 class Mus21 : public Room2 {
695 public:
697  void onEntrance() override;
698  void animation() override;
699  bool interact(Action verb, Object &obj1, Object &obj2) override;
700 
701 };
702 
703 class Mus22 : public Room2 {
704 public:
706  void onEntrance() override;
707  void animation() override;
708  bool interact(Action verb, Object &obj1, Object &obj2) override;
709 
710 };
711 
712 }
713 #endif // SUPERNOVA2_ROOMS_H
Definition: rooms.h:449
Definition: rooms.h:422
Definition: rooms.h:685
Definition: supernova.h:61
Definition: rooms.h:131
Definition: str.h:59
Definition: rooms.h:181
Definition: rooms.h:640
Definition: rooms.h:377
Definition: rooms.h:314
Definition: rooms.h:487
Definition: rooms.h:296
Definition: rooms.h:278
Definition: rooms.h:550
Definition: rooms.h:242
Definition: console.h:27
Definition: rooms.h:613
Definition: rooms.h:70
Definition: room.h:39
Definition: rooms.h:496
Definition: rooms.h:195
Definition: rooms.h:332
Definition: rooms.h:676
Definition: rooms.h:604
Definition: rooms.h:413
Definition: rooms.h:224
Definition: rooms.h:649
Definition: rooms.h:559
Definition: rooms.h:287
Definition: rooms.h:404
Definition: rooms.h:368
Definition: rooms.h:359
Definition: rooms.h:323
Definition: rooms.h:305
Definition: rooms.h:694
Definition: rooms.h:53
Definition: rooms.h:172
Definition: rooms.h:48
Definition: state.h:70
Definition: rooms.h:386
Definition: rooms.h:523
Definition: rooms.h:341
Definition: rooms.h:505
Definition: rooms.h:40
Definition: rooms.h:478
Definition: rooms.h:260
Definition: rooms.h:622
Definition: rooms.h:469
Definition: rooms.h:143
Definition: rooms.h:568
Definition: rooms.h:395
Definition: algorithm.h:29
Definition: rooms.h:586
Definition: rooms.h:703
Definition: rooms.h:86
Definition: rooms.h:120
Definition: rooms.h:460
Definition: rooms.h:269
Definition: rooms.h:658
Definition: rooms.h:215
Definition: rooms.h:103
Definition: rooms.h:350
Definition: rooms.h:161
Definition: rooms.h:532
Definition: rooms.h:204
Definition: rooms.h:514
Definition: rooms.h:233
Definition: rooms.h:631
Definition: rooms.h:152
Definition: rooms.h:577
Definition: rooms.h:440
Definition: rooms.h:431
Definition: rooms.h:95
Definition: msn_def.h:210
Definition: rooms.h:667
Definition: rooms.h:251
Definition: rooms.h:541
Definition: rooms.h:595
Definition: rooms.h:111
Definition: rooms.h:77