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 SUPERNOVA_ROOMS_H
23 #define SUPERNOVA_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 GameManager1;
38 class SupernovaEngine;
39 
40 class Room1: public Room {
41  public:
42  Room1();
43  protected:
44  GameManager1 *_gm;
45  int _dialogsX[6];
46 };
47 
48 // Room 0
49 class Intro : public Room1 {
50 public:
52  void onEntrance() override;
53 
54 private:
55  bool animate(int section1, int section2, int duration);
56  bool animate(int section1, int section2, int duration, MessagePosition position,
57  int text);
58  bool animate(int section1, int section2, int section3, int section4, int duration,
59  MessagePosition position, int text);
60 
61  void titleScreen();
62  void titleFadeIn();
63  void cutscene();
64  void leaveCutscene();
65 
66  bool _shouldExit;
67  Common::String _introText;
68 };
69 
70 // Spaceship
71 class ShipCorridor : public Room1 {
72 public:
74 
75  bool interact(Action verb, Object &obj1, Object &obj2) override;
76 
77 private:
78 };
79 
80 class ShipHall: public Room1 {
81 public:
83 
84  bool interact(Action verb, Object &obj1, Object &obj2) override;
85 
86 private:
87 };
88 
89 class ShipSleepCabin: public Room1 {
90 public:
92 
93  bool interact(Action verb, Object &obj1, Object &obj2) override;
94  void animation() override;
95  void onEntrance() override;
96 
97 private:
98  byte _color;
99 };
100 
101 class ShipCockpit : public Room1 {
102 public:
104 
105  bool interact(Action verb, Object &obj1, Object &obj2) override;
106  void animation() override;
107  void onEntrance() override;
108 
109 private:
110  byte _color;
111 };
112 
113 class ShipCabinL1: public Room1 {
114 public:
116 
117 private:
118 };
119 
120 class ShipCabinL2 : public Room1 {
121 public:
123 
124  bool interact(Action verb, Object &obj1, Object &obj2) override;
125 
126 private:
127 };
128 
129 class ShipCabinL3 : public Room1 {
130 public:
132 
133  bool interact(Action verb, Object &obj1, Object &obj2) override;
134 
135 private:
136 };
137 
138 class ShipCabinR1 : public Room1 {
139 public:
141 
142 private:
143 };
144 
145 class ShipCabinR2 : public Room1 {
146 public:
148 
149 private:
150 };
151 
152 class ShipCabinR3 : public Room1 {
153 public:
155 
156  bool interact(Action verb, Object &obj1, Object &obj2) override;
157  void onEntrance() override;
158 
159 private:
160 };
161 
162 class ShipCabinBathroom : public Room1 {
163 public:
165 
166 private:
167 };
168 
169 class ShipAirlock : public Room1 {
170 public:
172 
173  bool interact(Action verb, Object &obj1, Object &obj2) override;
174  void onEntrance() override;
175 
176 private:
177 };
178 
179 class ShipHold : public Room1 {
180 public:
182 
183  bool interact(Action verb, Object &obj1, Object &obj2) override;
184  void onEntrance() override;
185 
186 private:
187 };
188 
189 class ShipLandingModule : public Room1 {
190 public:
192 
193  bool interact(Action verb, Object &obj1, Object &obj2) override;
194 
195 private:
196 };
197 
198 class ShipGenerator : public Room1 {
199 public:
201 
202  bool interact(Action verb, Object &obj1, Object &obj2) override;
203 
204 private:
205 };
206 
207 class ShipOuterSpace : public Room1 {
208 public:
210 
211 private:
212 };
213 
214 
215 // Arsano
216 class ArsanoRocks : public Room1 {
217 public:
219 
220  void onEntrance() override;
221  bool interact(Action verb, Object &obj1, Object &obj2) override;
222 
223 private:
224 };
225 
226 class ArsanoCave : public Room1 {
227 public:
229 
230 private:
231 };
232 
233 class ArsanoMeetup : public Room1 {
234 public:
236 
237  void onEntrance() override;
238  void animation() override;
239  bool interact(Action verb, Object &obj1, Object &obj2) override;
240 
241 private:
242  byte _sign;
243  byte _beacon;
244 };
245 
246 class ArsanoEntrance : public Room1 {
247 public:
249 
250  bool interact(Action verb, Object &obj1, Object &obj2) override;
251  void animation() override;
252 
253 private:
254  int _dialog1[5];
255  int _dialog2[5];
256  int _dialog3[5];
257  byte _eyewitness;
258 };
259 
260 class ArsanoRemaining : public Room1 {
261 public:
263 
264  void animation() override;
265 
266 private:
267  bool _chewing;
268  int _i;
269 };
270 
271 class ArsanoRoger : public Room1 {
272 public:
274 
275  void animation() override;
276  void onEntrance() override;
277  bool interact(Action verb, Object &obj1, Object &obj2) override;
278 
279 private:
280  int _dialog1[4];
281  byte _eyewitness;
282  byte _hands;
283 };
284 
285 class ArsanoGlider : public Room1 {
286 public:
288 
289  void animation() override;
290  bool interact(Action verb, Object &obj1, Object &obj2) override;
291 
292 private:
293  byte _sinus;
294 };
295 
296 class ArsanoMeetup2 : public Room1 {
297 public:
299 
300  void onEntrance() override;
301  bool interact(Action verb, Object &obj1, Object &obj2) override;
302 
303  void shipStart();
304 
305 private:
306  // TODO: change to 6, fix initialization
307  int _dialog1[2];
308  int _dialog2[2];
309  int _dialog3[4];
310  int _dialog4[3];
311 };
312 
313 class ArsanoMeetup3 : public Room1 {
314 public:
316 
317  bool interact(Action verb, Object &obj1, Object &obj2) override;
318 
319 private:
320  int _dialog2[4];
321  int _dialog3[2];
322 };
323 
324 
325 // Axacuss
326 class AxacussCell : public Room1 {
327 public:
329 
330  bool interact(Action verb, Object &obj1, Object &obj2) override;
331  void animation() override;
332  void onEntrance() override;
333 
334 private:
335 };
336 
337 class AxacussCorridor1 : public Room1 {
338 public:
340 
341  void onEntrance() override;
342 
343 private:
344 };
345 
346 class AxacussCorridor2 : public Room1 {
347 public:
349 
350  void onEntrance() override;
351 
352 private:
353 };
354 
355 class AxacussCorridor3 : public Room1 {
356 public:
358 
359  void onEntrance() override;
360 
361 private:
362 };
363 
364 class AxacussCorridor4 : public Room1 {
365 public:
367 
368  void onEntrance() override;
369  void animation() override;
370  bool interact(Action verb, Object &obj1, Object &obj2) override;
371 
372 private:
373 };
374 
375 class AxacussCorridor5 : public Room1 {
376 public:
378 
379  void onEntrance() override;
380  bool interact(Action verb, Object &obj1, Object &obj2) override;
381 
382 private:
383  void stopInteract(int sum);
384  bool handleMoneyDialog();
385 
386  // TODO: Change to 6, or change struct, and fix initialization
387  int _dialog1[2];
388  int _dialog2[2];
389  int _dialog3[4];
390 
391  byte _rows[6];
392 
393 };
394 
395 class AxacussCorridor6 : public Room1 {
396 public:
398 
399  void onEntrance() override;
400  bool interact(Action verb, Object &obj1, Object &obj2) override;
401 
402 private:
403 };
404 
405 class AxacussCorridor7 : public Room1 {
406 public:
408 
409  void onEntrance() override;
410 
411 private:
412 };
413 
414 class AxacussCorridor8 : public Room1 {
415 public:
417 
418  void onEntrance() override;
419  bool interact(Action verb, Object &obj1, Object &obj2) override;
420 
421 private:
422 };
423 
424 class AxacussCorridor9 : public Room1 {
425 public:
427 
428  void onEntrance() override;
429  bool interact(Action verb, Object &obj1, Object &obj2) override;
430 
431 private:
432 };
433 
434 class AxacussBcorridor : public Room1 {
435 public:
437 
438  void onEntrance() override;
439  bool interact(Action verb, Object &obj1, Object &obj2) override;
440 
441 private:
442 };
443 
444 class AxacussIntersection : public Room1 {
445 public:
447 
448  bool interact(Action verb, Object &obj1, Object &obj2) override;
449 };
450 
451 class AxacussExit : public Room1 {
452 public:
454 
455  bool interact(Action verb, Object &obj1, Object &obj2) override;
456 };
457 
458 class AxacussOffice1 : public Room1 {
459 public:
461 
462  bool interact(Action verb, Object &obj1, Object &obj2) override;
463 
464 private:
465 };
466 
467 class AxacussOffice2 : public Room1 {
468 public:
470 
471  bool interact(Action verb, Object &obj1, Object &obj2) override;
472 
473 private:
474 };
475 
476 class AxacussOffice3 : public Room1 {
477 public:
479 
480  bool interact(Action verb, Object &obj1, Object &obj2) override;
481 
482 private:
483 };
484 
485 class AxacussOffice4 : public Room1 {
486 public:
488 
489  bool interact(Action verb, Object &obj1, Object &obj2) override;
490 
491 private:
492 };
493 
494 class AxacussOffice5 : public Room1 {
495 public:
497 
498  void onEntrance() override;
499  bool interact(Action verb, Object &obj1, Object &obj2) override;
500 
501 private:
502 };
503 
504 class AxacussElevator : public Room1 {
505 public:
507 
508  bool interact(Action verb, Object &obj1, Object &obj2) override;
509 
510 private:
511 };
512 
513 class AxacussStation : public Room1 {
514 public:
516 
517  bool interact(Action verb, Object &obj1, Object &obj2) override;
518 
519 private:
520 };
521 
522 class AxacussSign : public Room1 {
523 public:
525 
526  bool interact(Action verb, Object &obj1, Object &obj2) override;
527 
528 private:
529 };
530 
531 class Outro : public Room1 {
532 public:
534 
535  void onEntrance() override;
536  void animation() override;
537 
538 private:
539  void animate(int filenumber, int section1, int section2, int duration);
540  void animate(int filenumber, int section1, int section2, int duration, MessagePosition position,
541  const char *text);
542  void animate(int filenumber, int section1, int section2, int section3, int section4, int duration,
543  MessagePosition position, const char *text);
544 
545  Common::String _outroText;
546 };
547 
548 }
549 #endif // SUPERNOVA_ROOMS_H
Definition: rooms.h:260
Definition: supernova.h:61
Definition: str.h:59
Definition: rooms.h:444
Definition: rooms.h:476
Definition: rooms.h:364
Definition: rooms.h:458
Definition: rooms.h:120
Definition: console.h:27
Definition: rooms.h:405
Definition: rooms.h:152
Definition: room.h:39
Definition: rooms.h:138
Definition: rooms.h:40
Definition: rooms.h:80
Definition: rooms.h:346
Definition: rooms.h:296
Definition: rooms.h:285
Definition: rooms.h:216
Definition: rooms.h:89
Definition: rooms.h:485
Definition: rooms.h:355
Definition: rooms.h:467
Definition: rooms.h:49
Definition: rooms.h:145
Definition: rooms.h:451
Definition: rooms.h:513
Definition: rooms.h:337
Definition: rooms.h:326
Definition: rooms.h:494
Definition: rooms.h:271
Definition: algorithm.h:29
Definition: rooms.h:189
Definition: state.h:66
Definition: rooms.h:162
Definition: rooms.h:395
Definition: rooms.h:233
Definition: rooms.h:424
Definition: rooms.h:207
Definition: rooms.h:101
Definition: rooms.h:226
Definition: rooms.h:504
Definition: rooms.h:71
Definition: rooms.h:522
Definition: rooms.h:246
Definition: msn_def.h:210
Definition: rooms.h:375
Definition: rooms.h:129
Definition: rooms.h:113
Definition: rooms.h:313
Definition: rooms.h:169
Definition: rooms.h:531
Definition: rooms.h:198
Definition: rooms.h:414
Definition: rooms.h:179
Definition: rooms.h:434