aboutsummaryrefslogtreecommitdiff
path: root/engines/supernova/supernova1/rooms.h
diff options
context:
space:
mode:
authorJaromir Wysoglad2019-06-20 21:21:24 +0200
committerThierry Crozat2019-07-28 15:09:14 +0100
commit33d7391f4a3cd5ee457e29eef0072634cbda8922 (patch)
treeb898def5392079b47b8e2d0519c64730d04790f7 /engines/supernova/supernova1/rooms.h
parent4dd72f4ae05c4e0fca7e4f92115f49697736c4ab (diff)
downloadscummvm-rg350-33d7391f4a3cd5ee457e29eef0072634cbda8922.tar.gz
scummvm-rg350-33d7391f4a3cd5ee457e29eef0072634cbda8922.tar.bz2
scummvm-rg350-33d7391f4a3cd5ee457e29eef0072634cbda8922.zip
SUPERNOVA: Move part 1 files to it's own directory
Diffstat (limited to 'engines/supernova/supernova1/rooms.h')
-rw-r--r--engines/supernova/supernova1/rooms.h486
1 files changed, 486 insertions, 0 deletions
diff --git a/engines/supernova/supernova1/rooms.h b/engines/supernova/supernova1/rooms.h
new file mode 100644
index 0000000000..c49e8356c9
--- /dev/null
+++ b/engines/supernova/supernova1/rooms.h
@@ -0,0 +1,486 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef SUPERNOVA_ROOMS_H
+#define SUPERNOVA_ROOMS_H
+
+#include "common/str.h"
+
+#include "supernova/msn_def.h"
+#include "supernova/room.h"
+
+namespace Common {
+class ReadStream;
+class WriteStream;
+}
+
+namespace Supernova {
+
+class GameManager1;
+class SupernovaEngine;
+
+// Room 0
+class Intro : public Room {
+public:
+ Intro(SupernovaEngine *vm, GameManager1 *gm);
+ virtual void onEntrance();
+
+private:
+ bool animate(int section1, int section2, int duration);
+ bool animate(int section1, int section2, int duration, MessagePosition position,
+ StringId text);
+ bool animate(int section1, int section2, int section3, int section4, int duration,
+ MessagePosition position, StringId text);
+
+ void titleScreen();
+ void titleFadeIn();
+ void cutscene();
+ void leaveCutscene();
+
+ bool _shouldExit;
+ Common::String _introText;
+};
+
+// Spaceship
+class ShipCorridor : public Room {
+public:
+ ShipCorridor(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+};
+
+class ShipHall: public Room {
+public:
+ ShipHall(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+};
+
+class ShipSleepCabin: public Room {
+public:
+ ShipSleepCabin(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+ virtual void animation();
+ virtual void onEntrance();
+
+private:
+ byte _color;
+};
+
+class ShipCockpit : public Room {
+public:
+ ShipCockpit(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+ virtual void animation();
+ virtual void onEntrance();
+
+private:
+ byte _color;
+};
+
+class ShipCabinL1: public Room {
+public:
+ ShipCabinL1(SupernovaEngine *vm, GameManager1 *gm);
+};
+
+class ShipCabinL2 : public Room {
+public:
+ ShipCabinL2(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+};
+
+class ShipCabinL3 : public Room {
+public:
+ ShipCabinL3(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+};
+
+class ShipCabinR1 : public Room {
+public:
+ ShipCabinR1(SupernovaEngine *vm, GameManager1 *gm);
+};
+
+class ShipCabinR2 : public Room {
+public:
+ ShipCabinR2(SupernovaEngine *vm, GameManager1 *gm);
+};
+
+class ShipCabinR3 : public Room {
+public:
+ ShipCabinR3(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+ virtual void onEntrance();
+};
+
+class ShipCabinBathroom : public Room {
+public:
+ ShipCabinBathroom(SupernovaEngine *vm, GameManager1 *gm);
+};
+
+class ShipAirlock : public Room {
+public:
+ ShipAirlock(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+ virtual void onEntrance();
+};
+
+class ShipHold : public Room {
+public:
+ ShipHold(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+ virtual void onEntrance();
+};
+
+class ShipLandingModule : public Room {
+public:
+ ShipLandingModule(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+};
+
+class ShipGenerator : public Room {
+public:
+ ShipGenerator(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+};
+
+class ShipOuterSpace : public Room {
+public:
+ ShipOuterSpace(SupernovaEngine *vm, GameManager1 *gm);
+};
+
+
+// Arsano
+class ArsanoRocks : public Room {
+public:
+ ArsanoRocks(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual void onEntrance();
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+};
+
+class ArsanoCave : public Room {
+public:
+ ArsanoCave(SupernovaEngine *vm, GameManager1 *gm);
+};
+
+class ArsanoMeetup : public Room {
+public:
+ ArsanoMeetup(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual void onEntrance();
+ virtual void animation();
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+
+private:
+ byte _sign;
+ byte _beacon;
+};
+
+class ArsanoEntrance : public Room {
+public:
+ ArsanoEntrance(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+ virtual void animation();
+
+private:
+ StringId _dialog1[5];
+ StringId _dialog2[5];
+ StringId _dialog3[5];
+ byte _eyewitness;
+};
+
+class ArsanoRemaining : public Room {
+public:
+ ArsanoRemaining(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual void animation();
+
+private:
+ bool _chewing;
+ int _i;
+};
+
+class ArsanoRoger : public Room {
+public:
+ ArsanoRoger(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual void animation();
+ virtual void onEntrance();
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+
+private:
+ StringId _dialog1[4];
+ byte _eyewitness;
+ byte _hands;
+};
+
+class ArsanoGlider : public Room {
+public:
+ ArsanoGlider(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual void animation();
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+
+private:
+ byte _sinus;
+};
+
+class ArsanoMeetup2 : public Room {
+public:
+ ArsanoMeetup2(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual void onEntrance();
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+
+ void shipStart();
+
+private:
+ // TODO: change to 6, fix initialization
+ StringId _dialog1[2];
+ StringId _dialog2[2];
+ StringId _dialog3[4];
+ StringId _dialog4[3];
+
+ // FIXME: Remove following unused bool variables?
+ //bool _found;
+ //bool _flug;
+};
+
+class ArsanoMeetup3 : public Room {
+public:
+ ArsanoMeetup3(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+
+private:
+ StringId _dialog2[4];
+ StringId _dialog3[2];
+
+ // TODO: Hack, to be move away and renamed when the other uses are found
+ StringId _dialogsX[6];
+};
+
+
+// Axacuss
+class AxacussCell : public Room {
+public:
+ AxacussCell(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+ virtual void animation();
+ virtual void onEntrance();
+};
+
+class AxacussCorridor1 : public Room {
+public:
+ AxacussCorridor1(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual void onEntrance();
+};
+
+class AxacussCorridor2 : public Room {
+public:
+ AxacussCorridor2(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual void onEntrance();
+};
+
+class AxacussCorridor3 : public Room {
+public:
+ AxacussCorridor3(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual void onEntrance();
+};
+
+class AxacussCorridor4 : public Room {
+public:
+ AxacussCorridor4(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual void onEntrance();
+ virtual void animation();
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+};
+
+class AxacussCorridor5 : public Room {
+public:
+ AxacussCorridor5(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual void onEntrance();
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+
+private:
+ void stopInteract(int sum);
+ bool handleMoneyDialog();
+
+ // TODO: Change to 6, or change struct, and fix initialization
+ StringId _dialog1[2];
+ StringId _dialog2[2];
+ StringId _dialog3[4];
+
+ byte _rows[6];
+};
+
+class AxacussCorridor6 : public Room {
+public:
+ AxacussCorridor6(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual void onEntrance();
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+};
+
+class AxacussCorridor7 : public Room {
+public:
+ AxacussCorridor7(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual void onEntrance();
+};
+
+class AxacussCorridor8 : public Room {
+public:
+ AxacussCorridor8(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual void onEntrance();
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+};
+
+class AxacussCorridor9 : public Room {
+public:
+ AxacussCorridor9(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual void onEntrance();
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+};
+
+class AxacussBcorridor : public Room {
+public:
+ AxacussBcorridor(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual void onEntrance();
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+};
+
+class AxacussIntersection : public Room {
+public:
+ AxacussIntersection(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+
+private:
+ StringId _dialogsX[6];
+};
+
+class AxacussExit : public Room {
+public:
+ AxacussExit(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+
+private:
+ StringId _dialogsX[6];
+};
+
+class AxacussOffice1 : public Room {
+public:
+ AxacussOffice1(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+};
+
+class AxacussOffice2 : public Room {
+public:
+ AxacussOffice2(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+};
+
+class AxacussOffice3 : public Room {
+public:
+ AxacussOffice3(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+};
+
+class AxacussOffice4 : public Room {
+public:
+ AxacussOffice4(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+};
+
+class AxacussOffice5 : public Room {
+public:
+ AxacussOffice5(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual void onEntrance();
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+};
+
+class AxacussElevator : public Room {
+public:
+ AxacussElevator(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+};
+
+class AxacussStation : public Room {
+public:
+ AxacussStation(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+};
+
+class AxacussSign : public Room {
+public:
+ AxacussSign(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+};
+
+class Outro : public Room {
+public:
+ Outro(SupernovaEngine *vm, GameManager1 *gm);
+
+ virtual void onEntrance();
+ virtual void animation();
+
+private:
+ void animate(int filenumber, int section1, int section2, int duration);
+ void animate(int filenumber, int section1, int section2, int duration, MessagePosition position,
+ const char *text);
+ void animate(int filenumber, int section1, int section2, int section3, int section4, int duration,
+ MessagePosition position, const char *text);
+
+ Common::String _outroText;
+};
+
+}
+#endif // SUPERNOVA_ROOMS_H