aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/titanic/carry/chicken.cpp2
-rw-r--r--engines/titanic/carry/phonograph_ear.cpp2
-rw-r--r--engines/titanic/carry/phonograph_ear.h8
-rw-r--r--engines/titanic/core/saveable_object.cpp74
-rw-r--r--engines/titanic/game/hammer_dispensor.cpp49
-rw-r--r--engines/titanic/game/hammer_dispensor.h56
-rw-r--r--engines/titanic/game/hammer_dispensor_button.h6
-rw-r--r--engines/titanic/game/music_console_button.cpp37
-rw-r--r--engines/titanic/game/music_console_button.h50
-rw-r--r--engines/titanic/game/music_room_phonograph.cpp39
-rw-r--r--engines/titanic/game/music_room_phonograph.h54
-rw-r--r--engines/titanic/game/music_room_stop_phonograph_button.cpp39
-rw-r--r--engines/titanic/game/music_room_stop_phonograph_button.h54
-rw-r--r--engines/titanic/game/phonograph.cpp58
-rw-r--r--engines/titanic/game/phonograph.h60
-rw-r--r--engines/titanic/game/restaurant_phonograph.cpp51
-rw-r--r--engines/titanic/game/restaurant_phonograph.h57
-rw-r--r--engines/titanic/game/sauce_dispensor.cpp25
-rw-r--r--engines/titanic/game/sauce_dispensor.h6
-rw-r--r--engines/titanic/game/sgt/enter_exit_mini_lift.cpp43
-rw-r--r--engines/titanic/game/sgt/enter_exit_mini_lift.h55
-rw-r--r--engines/titanic/game/sgt/sgt_navigation.cpp18
-rw-r--r--engines/titanic/game/sgt/sgt_navigation.h11
-rw-r--r--engines/titanic/game/sgt/sgt_restaurant_doors.cpp2
-rw-r--r--engines/titanic/game/sgt/sgt_restaurant_doors.h4
-rw-r--r--engines/titanic/game/transport/gondolier.cpp37
-rw-r--r--engines/titanic/game/transport/gondolier.h50
-rw-r--r--engines/titanic/game/transport/lift.cpp60
-rw-r--r--engines/titanic/game/transport/lift.h61
-rw-r--r--engines/titanic/game/transport/lift_indicator.cpp51
-rw-r--r--engines/titanic/game/transport/lift_indicator.h57
-rw-r--r--engines/titanic/game/transport/pellerator.cpp37
-rw-r--r--engines/titanic/game/transport/pellerator.h50
-rw-r--r--engines/titanic/game/transport/service_elevator.cpp51
-rw-r--r--engines/titanic/game/transport/service_elevator.h57
-rw-r--r--engines/titanic/game/transport/transport.cpp46
-rw-r--r--engines/titanic/game/transport/transport.h55
-rw-r--r--engines/titanic/gfx/volume_control.cpp48
-rw-r--r--engines/titanic/gfx/volume_control.h56
-rw-r--r--engines/titanic/module.mk15
-rw-r--r--engines/titanic/sound/music_player.cpp10
-rw-r--r--engines/titanic/sound/restricted_auto_music_player.cpp47
-rw-r--r--engines/titanic/sound/restricted_auto_music_player.h55
-rw-r--r--engines/titanic/titanic.cpp3
44 files changed, 1679 insertions, 27 deletions
diff --git a/engines/titanic/carry/chicken.cpp b/engines/titanic/carry/chicken.cpp
index 972c993ec4..52f3c25cef 100644
--- a/engines/titanic/carry/chicken.cpp
+++ b/engines/titanic/carry/chicken.cpp
@@ -34,6 +34,7 @@ void CChicken::save(SimpleFile *file, int indent) const {
file->writeNumberLine(1, indent);
file->writeNumberLine(_field12C, indent);
file->writeQuotedLine(_string6, indent);
+ file->writeNumberLine(_v1, indent);
file->writeNumberLine(_field13C, indent);
file->writeNumberLine(_field140, indent);
@@ -44,6 +45,7 @@ void CChicken::load(SimpleFile *file) {
file->readNumber();
_field12C = file->readNumber();
_string6 = file->readString();
+ _v1 = file->readNumber();
_field13C = file->readNumber();
_field140 = file->readNumber();
diff --git a/engines/titanic/carry/phonograph_ear.cpp b/engines/titanic/carry/phonograph_ear.cpp
index 759356ab30..0b4142ca37 100644
--- a/engines/titanic/carry/phonograph_ear.cpp
+++ b/engines/titanic/carry/phonograph_ear.cpp
@@ -26,11 +26,13 @@ namespace Titanic {
void CPhonographEar::save(SimpleFile *file, int indent) const {
file->writeNumberLine(1, indent);
+ file->writeNumberLine(_field140, indent);
CEar::save(file, indent);
}
void CPhonographEar::load(SimpleFile *file) {
file->readNumber();
+ _field140 = file->readNumber();
CEar::load(file);
}
diff --git a/engines/titanic/carry/phonograph_ear.h b/engines/titanic/carry/phonograph_ear.h
index 59042000c9..ec6cfedf5e 100644
--- a/engines/titanic/carry/phonograph_ear.h
+++ b/engines/titanic/carry/phonograph_ear.h
@@ -20,15 +20,19 @@
*
*/
-#ifndef TITANIC_PHONOGRAPH_EYE_H
-#define TITANIC_PHONOGRAPH_EYE_H
+#ifndef TITANIC_PHONOGRAPH_EAR_H
+#define TITANIC_PHONOGRAPH_EAR_H
#include "titanic/carry/ear.h"
namespace Titanic {
class CPhonographEar : public CEar {
+private:
+ int _field140;
public:
+ CPhonographEar() : CEar(), _field140(1) {}
+
/**
* Return the class name
*/
diff --git a/engines/titanic/core/saveable_object.cpp b/engines/titanic/core/saveable_object.cpp
index 9267e17dae..8328aa5e49 100644
--- a/engines/titanic/core/saveable_object.cpp
+++ b/engines/titanic/core/saveable_object.cpp
@@ -69,6 +69,7 @@
#include "titanic/core/node_item.h"
#include "titanic/core/project_item.h"
#include "titanic/core/saveable_object.h"
+#include "titanic/core/static_image.h"
#include "titanic/core/turn_on_object.h"
#include "titanic/core/turn_on_play_sound.h"
#include "titanic/core/tree_item.h"
@@ -84,6 +85,7 @@
#include "titanic/game/bridge_view.h"
#include "titanic/game/broken_pell_base.h"
#include "titanic/game/cage.h"
+#include "titanic/game/call_pellerator.h"
#include "titanic/game/captains_wheel.h"
#include "titanic/game/cdrom.h"
#include "titanic/game/cdrom_computer.h"
@@ -107,8 +109,15 @@
#include "titanic/game/empty_nut_bowl.h"
#include "titanic/game/enter_exit_first_class_state.h"
#include "titanic/game/enter_exit_view.h"
+#include "titanic/game/fan.h"
+#include "titanic/game/fan_control.h"
+#include "titanic/game/fan_decrease.h"
+#include "titanic/game/fan_increase.h"
+#include "titanic/game/fan_noises.h"
#include "titanic/game/floor_indicator.h"
#include "titanic/game/games_console.h"
+#include "titanic/game/hammer_clip.h"
+#include "titanic/game/hammer_dispensor.h"
#include "titanic/game/hammer_dispensor_button.h"
#include "titanic/game/head_smash_event.h"
#include "titanic/game/head_smash_lever.h"
@@ -118,17 +127,22 @@
#include "titanic/game/little_lift_button.h"
#include "titanic/game/maitred_arm_holder.h"
#include "titanic/game/musical_instrument.h"
+#include "titanic/game/music_console_button.h"
+#include "titanic/game/music_room_phonograph.h"
+#include "titanic/game/music_room_stop_phonograph_button.h"
#include "titanic/game/music_system_lock.h"
#include "titanic/game/no_nut_bowl.h"
#include "titanic/game/nose_holder.h"
#include "titanic/game/null_port_hole.h"
#include "titanic/game/nut_replacer.h"
+#include "titanic/game/phonograph.h"
#include "titanic/game/play_music_button.h"
#include "titanic/game/play_on_act.h"
#include "titanic/game/port_hole.h"
#include "titanic/game/record_phonograph_button.h"
#include "titanic/game/replacement_ear.h"
#include "titanic/game/restaurant_cylinder_holder.h"
+#include "titanic/game/restaurant_phonograph.h"
#include "titanic/game/room_item.h"
#include "titanic/game/sauce_dispensor.h"
#include "titanic/game/season_background.h"
@@ -138,6 +152,7 @@
#include "titanic/game/service_elevator_window.h"
#include "titanic/game/ship_setting.h"
#include "titanic/game/speech_dispensor.h"
+#include "titanic/game/starling_puret.h"
#include "titanic/game/start_action.h"
#include "titanic/game/stop_phonograph_button.h"
#include "titanic/game/sub_glass.h"
@@ -170,11 +185,18 @@
#include "titanic/game/pet/pet_sounds.h"
#include "titanic/game/pet/pet_transition.h"
#include "titanic/game/pet/pet_transport.h"
+#include "titanic/game/sgt/enter_exit_mini_lift.h"
#include "titanic/game/sgt/sgt_doors.h"
#include "titanic/game/sgt/sgt_navigation.h"
#include "titanic/game/sgt/sgt_restaurant_doors.h"
#include "titanic/game/sgt/sgt_state_room.h"
#include "titanic/game/sgt/sgt_upper_doors_sound.h"
+#include "titanic/game/transport/gondolier.h"
+#include "titanic/game/transport/lift.h"
+#include "titanic/game/transport/lift_indicator.h"
+#include "titanic/game/transport/pellerator.h"
+#include "titanic/game/transport/service_elevator.h"
+#include "titanic/game/transport/transport.h"
#include "titanic/gfx/act_button.h"
#include "titanic/gfx/changes_season_button.h"
#include "titanic/gfx/chev_left_off.h"
@@ -213,6 +235,7 @@
#include "titanic/gfx/status_change_button.h"
#include "titanic/gfx/st_button.h"
#include "titanic/gfx/toggle_switch.h"
+#include "titanic/gfx/volume_control.h"
#include "titanic/messages/messages.h"
#include "titanic/messages/mouse_messages.h"
#include "titanic/messages/pet_messages.h"
@@ -249,6 +272,7 @@
#include "titanic/sound/auto_sound_player.h"
#include "titanic/sound/background_sound_maker.h"
#include "titanic/sound/music_player.h"
+#include "titanic/sound/restricted_auto_music_player.h"
#include "titanic/sound/seasonal_music_player.h"
#include "titanic/sound/titania_speech.h"
#include "titanic/sound/trigger_auto_music_player.h"
@@ -310,6 +334,7 @@ DEFFN(CMovieClipList);
DEFFN(CMultiDropTarget);
DEFFN(CNodeItem);
DEFFN(CProjectItem);
+DEFFN(CStaticImage);
DEFFN(CTurnOnObject);
DEFFN(CTurnOnPlaySound);
DEFFN(CTreeItem);
@@ -325,6 +350,7 @@ DEFFN(CBomb);
DEFFN(CBridgeView);
DEFFN(CBrokenPellBase)
DEFFN(CCage);
+DEFFN(CCallPellerator);
DEFFN(CCaptainsWheel);
DEFFN(CCDROM);
DEFFN(CCDROMComputer);
@@ -346,8 +372,15 @@ DEFFN(CEmmaControl);
DEFFN(CEmptyNutBowl);
DEFFN(CEnterExitFirstClassState);
DEFFN(CEnterExitView);
+DEFFN(CFan);
+DEFFN(CFanControl);
+DEFFN(CFanDecrease);
+DEFFN(CFanIncrease);
+DEFFN(CFanNoises);
DEFFN(CFloorIndicator);
DEFFN(CGamesConsole);
+DEFFN(CHammerClip);
+DEFFN(CHammerDispensor);
DEFFN(CHammerDispensorButton);
DEFFN(CHeadSmashEvent);
DEFFN(CHeadSmashLever);
@@ -357,17 +390,22 @@ DEFFN(CLightSwitch);
DEFFN(CLittleLiftButton);
DEFFN(CMaitreDArmHolder);
DEFFN(CMusicalInstrument);
+DEFFN(CMusicConsoleButton);
+DEFFN(CMusicRoomPhonograph);
+DEFFN(CMusicRoomStopPhonographButton);
DEFFN(CMusicSystemLock);
DEFFN(CNoNutBowl);
DEFFN(CNoseHolder);
DEFFN(CNullPortHole);
DEFFN(CNutReplacer);
+DEFFN(CPhonograph);
DEFFN(CPlayMusicButton);
DEFFN(CPlayOnAct);
DEFFN(CPortHole);
DEFFN(CRecordPhonographButton);
DEFFN(CReplacementEar);
DEFFN(CRestaurantCylinderHolder);
+DEFFN(CRestaurantPhonograph);
DEFFN(CRoomItem);
DEFFN(CSauceDispensor);
DEFFN(CSeasonBackground);
@@ -377,6 +415,7 @@ DEFFN(CServiceElevatorDoor);
DEFFN(CServiceElevatorWindow);
DEFFN(CShipSetting);
DEFFN(CSpeechDispensor);
+DEFFN(CStarlingPuret);
DEFFN(CStartAction);
DEFFN(CStopPhonographButton);
DEFFN(CSUBGlass);
@@ -409,11 +448,18 @@ DEFFN(CPETSentinal);
DEFFN(CPETSounds);
DEFFN(CPETTransition);
DEFFN(CPETTransport);
+DEFFN(CEnterExitMiniLift);
DEFFN(CSGTDoors);
DEFFN(CSGTNavigation);
DEFFN(CSGTRestaurantDoors);
DEFFN(CSGTStateRoom);
DEFFN(CSGTUpperDoorsSound);
+DEFFN(CGondolier);
+DEFFN(CLift);
+DEFFN(CLiftindicator);
+DEFFN(CPellerator);
+DEFFN(CServiceElevator);
+DEFFN(CTransport);
DEFFN(CActButton);
DEFFN(CChangesSeasonButton);
@@ -453,6 +499,7 @@ DEFFN(CSmallChevRightOff);
DEFFN(CSmallChevRightOn);
DEFFN(CStatusChangeButton);
DEFFN(CSTButton);
+DEFFN(CVolumeControl);
DEFFN(CActMsg);
DEFFN(CActivationmsg);
@@ -660,6 +707,7 @@ DEFFN(CAutoMusicPlayerBase);
DEFFN(CAutoSoundPlayer);
DEFFN(CBackgroundSoundMaker);
DEFFN(CMusicPlayer);
+DEFFN(CRestrictedAutoMusicPlayer);
DEFFN(CSeasonalMusicPlayer);
DEFFN(CTitaniaSpeech);
DEFFN(CTriggerAutoMusicPlayer);
@@ -715,6 +763,7 @@ void CSaveableObject::initClassList() {
ADDFN(CMultiDropTarget);
ADDFN(CNodeItem);
ADDFN(CProjectItem);
+ ADDFN(CStaticImage);
ADDFN(CTreeItem);
ADDFN(CTurnOnObject);
ADDFN(CTurnOnPlaySound);
@@ -730,6 +779,7 @@ void CSaveableObject::initClassList() {
ADDFN(CBridgeView);
ADDFN(CBrokenPellBase);
ADDFN(CCage);
+ ADDFN(CCallPellerator);
ADDFN(CCaptainsWheel);
ADDFN(CCDROM);
ADDFN(CCDROMComputer);
@@ -752,8 +802,15 @@ void CSaveableObject::initClassList() {
ADDFN(CEmptyNutBowl);
ADDFN(CEnterExitFirstClassState);
ADDFN(CEnterExitView);
+ ADDFN(CFan);
+ ADDFN(CFanControl);
+ ADDFN(CFanDecrease);
+ ADDFN(CFanIncrease);
+ ADDFN(CFanNoises);
ADDFN(CFloorIndicator);
ADDFN(CGamesConsole);
+ ADDFN(CHammerClip);
+ ADDFN(CHammerDispensor);
ADDFN(CHammerDispensorButton);
ADDFN(CHeadSmashEvent);
ADDFN(CHeadSmashLever);
@@ -763,18 +820,22 @@ void CSaveableObject::initClassList() {
ADDFN(CLittleLiftButton);
ADDFN(CMaitreDArmHolder);
ADDFN(CMusicalInstrument);
+ ADDFN(CMusicConsoleButton);
+ ADDFN(CMusicRoomPhonograph);
+ ADDFN(CMusicRoomStopPhonographButton);
ADDFN(CMusicSystemLock);
ADDFN(CNoNutBowl);
ADDFN(CNoseHolder);
ADDFN(CNullPortHole);
ADDFN(CNutReplacer);
- ADDFN(CPETPosition);
+ ADDFN(CPhonograph);
ADDFN(CPlayMusicButton);
ADDFN(CPlayOnAct);
ADDFN(CPortHole);
ADDFN(CRecordPhonographButton);
ADDFN(CReplacementEar);
ADDFN(CRestaurantCylinderHolder);
+ ADDFN(CRestaurantPhonograph);
ADDFN(CRoomItem);
ADDFN(CSauceDispensor);
ADDFN(CSeasonBackground);
@@ -784,6 +845,7 @@ void CSaveableObject::initClassList() {
ADDFN(CServiceElevatorWindow);
ADDFN(CShipSetting);
ADDFN(CSpeechDispensor);
+ ADDFN(CStarlingPuret);
ADDFN(CStartAction);
ADDFN(CStopPhonographButton);
ADDFN(CSUBGlass);
@@ -816,11 +878,18 @@ void CSaveableObject::initClassList() {
ADDFN(CPETSounds);
ADDFN(CPETTransition);
ADDFN(CPETTransport);
+ ADDFN(CEnterExitMiniLift);
ADDFN(CSGTDoors);
ADDFN(CSGTNavigation);
ADDFN(CSGTRestaurantDoors);
ADDFN(CSGTStateRoom);
ADDFN(CSGTUpperDoorsSound);
+ ADDFN(CGondolier);
+ ADDFN(CLift);
+ ADDFN(CLiftindicator);
+ ADDFN(CPellerator);
+ ADDFN(CServiceElevator);
+ ADDFN(CTransport);
ADDFN(CActButton);
ADDFN(CChangesSeasonButton);
@@ -848,6 +917,7 @@ void CSaveableObject::initClassList() {
ADDFN(CMusicSwitch);
ADDFN(CMusicSwitchInversion);
ADDFN(CMusicSwitchReverse);
+ ADDFN(CMusicVoiceMute);
ADDFN(CPetModeOff);
ADDFN(CPetModeOn);
ADDFN(CPetModePanel);
@@ -859,6 +929,7 @@ void CSaveableObject::initClassList() {
ADDFN(CSmallChevRightOn);
ADDFN(CStatusChangeButton);
ADDFN(CSTButton);
+ ADDFN(CVolumeControl);
ADDFN(CActMsg);
ADDFN(CActivationmsg);
@@ -1067,6 +1138,7 @@ void CSaveableObject::initClassList() {
ADDFN(CAutoSoundPlayer);
ADDFN(CBackgroundSoundMaker);
ADDFN(CMusicPlayer);
+ ADDFN(CRestrictedAutoMusicPlayer);
ADDFN(CSeasonalMusicPlayer);
ADDFN(CAutoMusicPlayer);
ADDFN(CTitaniaSpeech);
diff --git a/engines/titanic/game/hammer_dispensor.cpp b/engines/titanic/game/hammer_dispensor.cpp
new file mode 100644
index 0000000000..d486910843
--- /dev/null
+++ b/engines/titanic/game/hammer_dispensor.cpp
@@ -0,0 +1,49 @@
+/* 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.
+ *
+ */
+
+#include "titanic/game/hammer_dispensor.h"
+
+namespace Titanic {
+
+CHammerDispensor::CHammerDispensor() : CBackground(),
+ _fieldE0(0), _fieldE4(0), _fieldE8(0) {
+}
+
+void CHammerDispensor::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_fieldE8, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CHammerDispensor::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _fieldE8 = file->readNumber();
+
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/hammer_dispensor.h b/engines/titanic/game/hammer_dispensor.h
new file mode 100644
index 0000000000..60b70546fd
--- /dev/null
+++ b/engines/titanic/game/hammer_dispensor.h
@@ -0,0 +1,56 @@
+/* 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 TITANIC_HAMMER_DISPENSOR_H
+#define TITANIC_HAMMER_DISPENSOR_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CHammerDispensor : public CBackground {
+private:
+ int _fieldE0;
+ int _fieldE4;
+ int _fieldE8;
+public:
+ CHammerDispensor();
+
+ /**
+ * Return the class name
+ */
+ virtual const char *getClassName() const { return "CHammerDispensor"; }
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_HAMMER_DISPENSOR_H */
diff --git a/engines/titanic/game/hammer_dispensor_button.h b/engines/titanic/game/hammer_dispensor_button.h
index e4b5fc13b1..978c1d3c9f 100644
--- a/engines/titanic/game/hammer_dispensor_button.h
+++ b/engines/titanic/game/hammer_dispensor_button.h
@@ -20,8 +20,8 @@
*
*/
-#ifndef TITANIC_HAMMER_DISPENSOR_H
-#define TITANIC_HAMMER_DISPENSOR_H
+#ifndef TITANIC_HAMMER_DISPENSOR_BUTTON_H
+#define TITANIC_HAMMER_DISPENSOR_BUTTON_H
#include "titanic/game/start_action.h"
@@ -57,4 +57,4 @@ public:
} // End of namespace Titanic
-#endif /* TITANIC_HAMMER_DISPENSOR_H */
+#endif /* TITANIC_HAMMER_DISPENSOR_BUTTON_H */
diff --git a/engines/titanic/game/music_console_button.cpp b/engines/titanic/game/music_console_button.cpp
new file mode 100644
index 0000000000..d92dd4d3bb
--- /dev/null
+++ b/engines/titanic/game/music_console_button.cpp
@@ -0,0 +1,37 @@
+/* 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.
+ *
+ */
+
+#include "titanic/game/music_console_button.h"
+
+namespace Titanic {
+
+void CMusicConsoleButton::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CMusicPlayer::save(file, indent);
+}
+
+void CMusicConsoleButton::load(SimpleFile *file) {
+ file->readNumber();
+ CMusicPlayer::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/music_console_button.h b/engines/titanic/game/music_console_button.h
new file mode 100644
index 0000000000..84a7452b28
--- /dev/null
+++ b/engines/titanic/game/music_console_button.h
@@ -0,0 +1,50 @@
+/* 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 TITANIC_MUSIC_CONSOLE_BUTTON_H
+#define TITANIC_MUSIC_CONSOLE_BUTTON_H
+
+#include "titanic/sound/music_player.h"
+
+namespace Titanic {
+
+class CMusicConsoleButton : public CMusicPlayer {
+public:
+ /**
+ * Return the class name
+ */
+ virtual const char *getClassName() const { return "CMusicConsoleButton"; }
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MUSIC_CONSOLE_BUTTON_H */
diff --git a/engines/titanic/game/music_room_phonograph.cpp b/engines/titanic/game/music_room_phonograph.cpp
new file mode 100644
index 0000000000..7fa30f5dcf
--- /dev/null
+++ b/engines/titanic/game/music_room_phonograph.cpp
@@ -0,0 +1,39 @@
+/* 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.
+ *
+ */
+
+#include "titanic/game/music_room_phonograph.h"
+
+namespace Titanic {
+
+void CMusicRoomPhonograph::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_field118, indent);
+ CRestaurantPhonograph::save(file, indent);
+}
+
+void CMusicRoomPhonograph::load(SimpleFile *file) {
+ file->readNumber();
+ _field118 = file->readNumber();
+ CRestaurantPhonograph::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/music_room_phonograph.h b/engines/titanic/game/music_room_phonograph.h
new file mode 100644
index 0000000000..2d34b160c9
--- /dev/null
+++ b/engines/titanic/game/music_room_phonograph.h
@@ -0,0 +1,54 @@
+/* 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 TITANIC_MUSIC_ROOM_PHONOGRAPH_H
+#define TITANIC_MUSIC_ROOM_PHONOGRAPH_H
+
+#include "titanic/game/restaurant_phonograph.h"
+
+namespace Titanic {
+
+class CMusicRoomPhonograph : public CRestaurantPhonograph {
+private:
+ int _field118;
+public:
+ CMusicRoomPhonograph() : CRestaurantPhonograph(), _field118(0) {}
+
+ /**
+ * Return the class name
+ */
+ virtual const char *getClassName() const { return "CMusicRoomPhonograph"; }
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MUSIC_ROOM_PHONOGRAPH_H */
diff --git a/engines/titanic/game/music_room_stop_phonograph_button.cpp b/engines/titanic/game/music_room_stop_phonograph_button.cpp
new file mode 100644
index 0000000000..7e00bade35
--- /dev/null
+++ b/engines/titanic/game/music_room_stop_phonograph_button.cpp
@@ -0,0 +1,39 @@
+/* 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.
+ *
+ */
+
+#include "titanic/game/music_room_stop_phonograph_button.h"
+
+namespace Titanic {
+
+void CMusicRoomStopPhonographButton::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_field100, indent);
+ CEjectPhonographButton::save(file, indent);
+}
+
+void CMusicRoomStopPhonographButton::load(SimpleFile *file) {
+ file->readNumber();
+ _field100 = file->readNumber();
+ CEjectPhonographButton::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/music_room_stop_phonograph_button.h b/engines/titanic/game/music_room_stop_phonograph_button.h
new file mode 100644
index 0000000000..4fd4aa6535
--- /dev/null
+++ b/engines/titanic/game/music_room_stop_phonograph_button.h
@@ -0,0 +1,54 @@
+/* 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 TITANIC_MUSIC_ROOM_STOP_PHONOGRAPH_BUTTON_H
+#define TITANIC_MUSIC_ROOM_STOP_PHONOGRAPH_BUTTON_H
+
+#include "titanic/game/eject_phonograph_button.h"
+
+namespace Titanic {
+
+class CMusicRoomStopPhonographButton : public CEjectPhonographButton {
+private:
+ int _field100;
+public:
+ CMusicRoomStopPhonographButton() : CEjectPhonographButton(), _field100(0) {}
+
+ /**
+ * Return the class name
+ */
+ virtual const char *getClassName() const { return "CMusicRoomStopPhonographButton"; }
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MUSIC_ROOM_STOP_PHONOGRAPH_BUTTON_H */
diff --git a/engines/titanic/game/phonograph.cpp b/engines/titanic/game/phonograph.cpp
new file mode 100644
index 0000000000..3461e34cb6
--- /dev/null
+++ b/engines/titanic/game/phonograph.cpp
@@ -0,0 +1,58 @@
+/* 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.
+ *
+ */
+
+#include "titanic/game/phonograph.h"
+
+namespace Titanic {
+
+CPhonograph::CPhonograph() : CMusicPlayer(),
+ _fieldE0(0), _fieldE4(0), _fieldE8(0), _fieldEC(0),
+ _fieldF0(0), _fieldF4(0) {
+}
+
+void CPhonograph::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string2, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_fieldE8, indent);
+ file->writeNumberLine(_fieldEC, indent);
+ file->writeNumberLine(_fieldF0, indent);
+ file->writeNumberLine(_fieldF4, indent);
+
+ CMusicPlayer::save(file, indent);
+}
+
+void CPhonograph::load(SimpleFile *file) {
+ file->readNumber();
+ _string2 = file->readString();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _fieldE8 = file->readNumber();
+ _fieldEC = file->readNumber();
+ _fieldF0 = file->readNumber();
+ _fieldF4 = file->readNumber();
+
+ CMusicPlayer::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/phonograph.h b/engines/titanic/game/phonograph.h
new file mode 100644
index 0000000000..e7fcddf0ae
--- /dev/null
+++ b/engines/titanic/game/phonograph.h
@@ -0,0 +1,60 @@
+/* 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 TITANIC_PHONOGRAPH_H
+#define TITANIC_PHONOGRAPH_H
+
+#include "titanic/sound/music_player.h"
+
+namespace Titanic {
+
+class CPhonograph : public CMusicPlayer {
+protected:
+ CString _string2;
+ int _fieldE0;
+ int _fieldE4;
+ int _fieldE8;
+ int _fieldEC;
+ int _fieldF0;
+ int _fieldF4;
+public:
+ CPhonograph();
+
+ /**
+ * Return the class name
+ */
+ virtual const char *getClassName() const { return "CPhonograph"; }
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MUSIC_CONSOLE_BUTTON_H */
diff --git a/engines/titanic/game/restaurant_phonograph.cpp b/engines/titanic/game/restaurant_phonograph.cpp
new file mode 100644
index 0000000000..c73bd51d34
--- /dev/null
+++ b/engines/titanic/game/restaurant_phonograph.cpp
@@ -0,0 +1,51 @@
+/* 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.
+ *
+ */
+
+#include "titanic/game/restaurant_phonograph.h"
+
+namespace Titanic {
+
+CRestaurantPhonograph::CRestaurantPhonograph() : CPhonograph(),
+ _fieldF8(1), _field114(0) {}
+
+void CRestaurantPhonograph::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldF8, indent);
+ file->writeQuotedLine(_string2, indent);
+ file->writeQuotedLine(_string3, indent);
+
+ file->writeNumberLine(_field114, indent);
+
+ CPhonograph::save(file, indent);
+}
+
+void CRestaurantPhonograph::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldF8 = file->readNumber();
+ _string2 = file->readString();
+ _string3 = file->readString();
+ _field114 = file->readNumber();
+
+ CPhonograph::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/restaurant_phonograph.h b/engines/titanic/game/restaurant_phonograph.h
new file mode 100644
index 0000000000..777ec34358
--- /dev/null
+++ b/engines/titanic/game/restaurant_phonograph.h
@@ -0,0 +1,57 @@
+/* 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 TITANIC_RESTAURANT_PHONOGRAPH_H
+#define TITANIC_RESTAURANT_PHONOGRAPH_H
+
+#include "titanic/game/phonograph.h"
+
+namespace Titanic {
+
+class CRestaurantPhonograph : public CPhonograph {
+private:
+ int _fieldF8;
+ CString _string2;
+ CString _string3;
+ int _field114;
+public:
+ CRestaurantPhonograph();
+
+ /**
+ * Return the class name
+ */
+ virtual const char *getClassName() const { return "CRestaurantPhonograph"; }
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_RESTAURANT_PHONOGRAPH_H */
diff --git a/engines/titanic/game/sauce_dispensor.cpp b/engines/titanic/game/sauce_dispensor.cpp
index 4982df6e26..6365f6e57b 100644
--- a/engines/titanic/game/sauce_dispensor.cpp
+++ b/engines/titanic/game/sauce_dispensor.cpp
@@ -24,25 +24,17 @@
namespace Titanic {
-CSauceDispensor::CSauceDispensor() : CBackground() {
- _fieldEC = 0;
- _fieldF0 = 0;
- _fieldF4 = 0;
- _fieldF8 = 0;
- _fieldFC = 0;
- _field100 = 0;
- _field104 = 0;
- _field108 = 0;
+CSauceDispensor::CSauceDispensor() : CBackground(),
+ _fieldEC(0), _fieldF0(0), _field104(0), _field108(0) {
}
void CSauceDispensor::save(SimpleFile *file, int indent) const {
file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string3, indent);
file->writeNumberLine(_fieldEC, indent);
file->writeNumberLine(_fieldF0, indent);
- file->writeNumberLine(_fieldF4, indent);
- file->writeNumberLine(_fieldF8, indent);
- file->writeNumberLine(_fieldFC, indent);
- file->writeNumberLine(_field100, indent);
+ file->writePoint(_pos1, indent);
+ file->writePoint(_pos2, indent);
file->writeNumberLine(_field104, indent);
file->writeNumberLine(_field108, indent);
@@ -51,12 +43,11 @@ void CSauceDispensor::save(SimpleFile *file, int indent) const {
void CSauceDispensor::load(SimpleFile *file) {
file->readNumber();
+ _string3 = file->readString();
_fieldEC = file->readNumber();
_fieldF0 = file->readNumber();
- _fieldF4 = file->readNumber();
- _fieldF8 = file->readNumber();
- _fieldFC = file->readNumber();
- _field100 = file->readNumber();
+ _pos1 = file->readPoint();
+ _pos2 = file->readPoint();
_field104 = file->readNumber();
_field108 = file->readNumber();
diff --git a/engines/titanic/game/sauce_dispensor.h b/engines/titanic/game/sauce_dispensor.h
index 791839d545..fd9afd979c 100644
--- a/engines/titanic/game/sauce_dispensor.h
+++ b/engines/titanic/game/sauce_dispensor.h
@@ -32,10 +32,8 @@ public:
CString _string3;
int _fieldEC;
int _fieldF0;
- int _fieldF4;
- int _fieldF8;
- int _fieldFC;
- int _field100;
+ Common::Point _pos1;
+ Common::Point _pos2;
int _field104;
int _field108;
public:
diff --git a/engines/titanic/game/sgt/enter_exit_mini_lift.cpp b/engines/titanic/game/sgt/enter_exit_mini_lift.cpp
new file mode 100644
index 0000000000..a7f85b9952
--- /dev/null
+++ b/engines/titanic/game/sgt/enter_exit_mini_lift.cpp
@@ -0,0 +1,43 @@
+/* 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.
+ *
+ */
+
+#include "titanic/game/sgt/enter_exit_mini_lift.h"
+
+namespace Titanic {
+
+void CEnterExitMiniLift::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeNumberLine(_fieldC0, indent);
+
+ CSGTNavigation::save(file, indent);
+}
+
+void CEnterExitMiniLift::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _fieldC0 = file->readNumber();
+
+ CSGTNavigation::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/sgt/enter_exit_mini_lift.h b/engines/titanic/game/sgt/enter_exit_mini_lift.h
new file mode 100644
index 0000000000..417e25d13f
--- /dev/null
+++ b/engines/titanic/game/sgt/enter_exit_mini_lift.h
@@ -0,0 +1,55 @@
+/* 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 TITANIC_ENTER_EXIT_MINI_LIFT_H
+#define TITANIC_ENTER_EXIT_MINI_LIFT_H
+
+#include "titanic/game/sgt/sgt_navigation.h"
+
+namespace Titanic {
+
+class CEnterExitMiniLift : public CSGTNavigation {
+private:
+ int _fieldBC;
+ int _fieldC0;
+public:
+ CEnterExitMiniLift() : CSGTNavigation(), _fieldBC(0), _fieldC0(1) {}
+
+ /**
+ * Return the class name
+ */
+ virtual const char *getClassName() const { return "CEnterExitMiniLift"; }
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ENTER_EXIT_MINI_LIFT_H */
diff --git a/engines/titanic/game/sgt/sgt_navigation.cpp b/engines/titanic/game/sgt/sgt_navigation.cpp
index eba37fd4f3..666459bbf1 100644
--- a/engines/titanic/game/sgt/sgt_navigation.cpp
+++ b/engines/titanic/game/sgt/sgt_navigation.cpp
@@ -24,13 +24,31 @@
namespace Titanic {
+CSGTNavigationStatics *CSGTNavigation::_statics;
+
+void CSGTNavigation::init() {
+ _statics = new CSGTNavigationStatics();
+}
+
+void CSGTNavigation::deinit() {
+ delete _statics;
+}
+
void CSGTNavigation::save(SimpleFile *file, int indent) const {
file->writeNumberLine(1, indent);
+ file->writeNumberLine(_statics->_v1, indent);
+ file->writeQuotedLine(_statics->_v2, indent);
+ file->writeQuotedLine(_statics->_v3, indent);
+
CGameObject::save(file, indent);
}
void CSGTNavigation::load(SimpleFile *file) {
file->readNumber();
+ _statics->_v1 = file->readNumber();
+ _statics->_v2 = file->readString();
+ _statics->_v3 = file->readString();
+
CGameObject::load(file);
}
diff --git a/engines/titanic/game/sgt/sgt_navigation.h b/engines/titanic/game/sgt/sgt_navigation.h
index 15c903f35c..539a6073a8 100644
--- a/engines/titanic/game/sgt/sgt_navigation.h
+++ b/engines/titanic/game/sgt/sgt_navigation.h
@@ -27,8 +27,19 @@
namespace Titanic {
+struct CSGTNavigationStatics {
+ int _v1;
+ CString _v2;
+ CString _v3;
+};
+
class CSGTNavigation : public CGameObject {
+private:
+ static CSGTNavigationStatics *_statics;
public:
+ static void init();
+ static void deinit();
+
/**
* Return the class name
*/
diff --git a/engines/titanic/game/sgt/sgt_restaurant_doors.cpp b/engines/titanic/game/sgt/sgt_restaurant_doors.cpp
index e7d8f7bda1..1e4a167357 100644
--- a/engines/titanic/game/sgt/sgt_restaurant_doors.cpp
+++ b/engines/titanic/game/sgt/sgt_restaurant_doors.cpp
@@ -26,11 +26,13 @@ namespace Titanic {
void CSGTRestaurantDoors::save(SimpleFile *file, int indent) const {
file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
CGameObject::save(file, indent);
}
void CSGTRestaurantDoors::load(SimpleFile *file) {
file->readNumber();
+ _fieldBC = file->readNumber();
CGameObject::load(file);
}
diff --git a/engines/titanic/game/sgt/sgt_restaurant_doors.h b/engines/titanic/game/sgt/sgt_restaurant_doors.h
index 287452e074..904c0c6b60 100644
--- a/engines/titanic/game/sgt/sgt_restaurant_doors.h
+++ b/engines/titanic/game/sgt/sgt_restaurant_doors.h
@@ -28,7 +28,11 @@
namespace Titanic {
class CSGTRestaurantDoors : public CGameObject {
+private:
+ int _fieldBC;
public:
+ CSGTRestaurantDoors() : CGameObject(), _fieldBC(0) {}
+
/**
* Return the class name
*/
diff --git a/engines/titanic/game/transport/gondolier.cpp b/engines/titanic/game/transport/gondolier.cpp
new file mode 100644
index 0000000000..f67a3b68d9
--- /dev/null
+++ b/engines/titanic/game/transport/gondolier.cpp
@@ -0,0 +1,37 @@
+/* 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.
+ *
+ */
+
+#include "titanic/game/transport/gondolier.h"
+
+namespace Titanic {
+
+void CGondolier::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CTransport::save(file, indent);
+}
+
+void CGondolier::load(SimpleFile *file) {
+ file->readNumber();
+ CTransport::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/transport/gondolier.h b/engines/titanic/game/transport/gondolier.h
new file mode 100644
index 0000000000..1d874beb3a
--- /dev/null
+++ b/engines/titanic/game/transport/gondolier.h
@@ -0,0 +1,50 @@
+/* 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 TITANIC_GONDOLIER_H
+#define TITANIC_GONDOLIER_H
+
+#include "titanic/game/transport/transport.h"
+
+namespace Titanic {
+
+class CGondolier : public CTransport {
+public:
+ /**
+ * Return the class name
+ */
+ virtual const char *getClassName() const { return "CGondolier"; }
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_GONDOLIER_H */
diff --git a/engines/titanic/game/transport/lift.cpp b/engines/titanic/game/transport/lift.cpp
new file mode 100644
index 0000000000..1e21b9f582
--- /dev/null
+++ b/engines/titanic/game/transport/lift.cpp
@@ -0,0 +1,60 @@
+/* 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.
+ *
+ */
+
+#include "titanic/game/transport/lift.h"
+
+namespace Titanic {
+
+int CLift::_v1;
+int CLift::_v2;
+int CLift::_v3;
+int CLift::_v4;
+int CLift::_v5;
+int CLift::_v6;
+
+void CLift::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_v1, indent);
+ file->writeNumberLine(_v2, indent);
+ file->writeNumberLine(_v3, indent);
+ file->writeNumberLine(_v4, indent);
+ file->writeNumberLine(_v5, indent);
+ file->writeNumberLine(_fieldF8, indent);
+ file->writeNumberLine(_v6, indent);
+
+ CTransport::save(file, indent);
+}
+
+void CLift::load(SimpleFile *file) {
+ file->readNumber();
+ _v1 = file->readNumber();
+ _v2 = file->readNumber();
+ _v3 = file->readNumber();
+ _v4 = file->readNumber();
+ _v5 = file->readNumber();
+ _fieldF8 = file->readNumber();
+ _v6 = file->readNumber();
+
+ CTransport::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/transport/lift.h b/engines/titanic/game/transport/lift.h
new file mode 100644
index 0000000000..acb5fde45b
--- /dev/null
+++ b/engines/titanic/game/transport/lift.h
@@ -0,0 +1,61 @@
+/* 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 TITANIC_LIFT_H
+#define TITANIC_LIFT_H
+
+#include "titanic/game/transport/transport.h"
+
+namespace Titanic {
+
+class CLift : public CTransport {
+private:
+ static int _v1;
+ static int _v2;
+ static int _v3;
+ static int _v4;
+ static int _v5;
+ static int _v6;
+
+ int _fieldF8;
+public:
+ CLift() : CTransport(), _fieldF8(1) {}
+
+ /**
+ * Return the class name
+ */
+ virtual const char *getClassName() const { return "CLift"; }
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_LIFT_H */
diff --git a/engines/titanic/game/transport/lift_indicator.cpp b/engines/titanic/game/transport/lift_indicator.cpp
new file mode 100644
index 0000000000..ebeaf55e2e
--- /dev/null
+++ b/engines/titanic/game/transport/lift_indicator.cpp
@@ -0,0 +1,51 @@
+/* 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.
+ *
+ */
+
+#include "titanic/game/transport/lift_indicator.h"
+
+namespace Titanic {
+
+CLiftindicator::CLiftindicator() : CLift(),
+ _fieldFC(0), _field108(0), _field10C(0) {
+}
+
+void CLiftindicator::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldFC, indent);
+ file->writePoint(_pos2, indent);
+ file->writeNumberLine(_field108, indent);
+ file->writeNumberLine(_field10C, indent);
+
+ CLift::save(file, indent);
+}
+
+void CLiftindicator::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldFC = file->readNumber();
+ _pos2 = file->readPoint();
+ _field108 = file->readNumber();
+ _field10C = file->readNumber();
+
+ CLift::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/transport/lift_indicator.h b/engines/titanic/game/transport/lift_indicator.h
new file mode 100644
index 0000000000..bbd6cb2867
--- /dev/null
+++ b/engines/titanic/game/transport/lift_indicator.h
@@ -0,0 +1,57 @@
+/* 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 TITANIC_LIFT_INDICATOR_H
+#define TITANIC_LIFT_INDICATOR_H
+
+#include "titanic/game/transport/lift.h"
+
+namespace Titanic {
+
+class CLiftindicator : public CLift {
+private:
+ int _fieldFC;
+ Common::Point _pos2;
+ int _field108;
+ int _field10C;
+public:
+ CLiftindicator();
+
+ /**
+ * Return the class name
+ */
+ virtual const char *getClassName() const { return "CLiftindicator"; }
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_LIFT_INDICATOR_H */
diff --git a/engines/titanic/game/transport/pellerator.cpp b/engines/titanic/game/transport/pellerator.cpp
new file mode 100644
index 0000000000..1ab8935008
--- /dev/null
+++ b/engines/titanic/game/transport/pellerator.cpp
@@ -0,0 +1,37 @@
+/* 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.
+*
+*/
+
+#include "titanic/game/transport/pellerator.h"
+
+namespace Titanic {
+
+void CPellerator::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CTransport::save(file, indent);
+}
+
+void CPellerator::load(SimpleFile *file) {
+ file->readNumber();
+ CTransport::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/transport/pellerator.h b/engines/titanic/game/transport/pellerator.h
new file mode 100644
index 0000000000..6ccc56f595
--- /dev/null
+++ b/engines/titanic/game/transport/pellerator.h
@@ -0,0 +1,50 @@
+/* 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 TITANIC_PELLERATOR_H
+#define TITANIC_PELLERATOR_H
+
+#include "titanic/game/transport/transport.h"
+
+namespace Titanic {
+
+class CPellerator : public CTransport {
+public:
+ /**
+ * Return the class name
+ */
+ virtual const char *getClassName() const { return "CPellerator"; }
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PELLERATOR_H */
diff --git a/engines/titanic/game/transport/service_elevator.cpp b/engines/titanic/game/transport/service_elevator.cpp
new file mode 100644
index 0000000000..df88c13454
--- /dev/null
+++ b/engines/titanic/game/transport/service_elevator.cpp
@@ -0,0 +1,51 @@
+/* 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.
+ *
+ */
+
+#include "titanic/game/transport/service_elevator.h"
+
+namespace Titanic {
+
+CServiceElevator::CServiceElevator() : CTransport(),
+ _fieldF8(0), _fieldFC(0), _field100(0), _field104(0) {
+}
+
+void CServiceElevator::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldF8, indent);
+ file->writeNumberLine(_fieldFC, indent);
+ file->writeNumberLine(_field100, indent);
+ file->writeNumberLine(_field104, indent);
+
+ CTransport::save(file, indent);
+}
+
+void CServiceElevator::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldF8 = file->readNumber();
+ _fieldFC = file->readNumber();
+ _field100 = file->readNumber();
+ _field104 = file->readNumber();
+
+ CTransport::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/transport/service_elevator.h b/engines/titanic/game/transport/service_elevator.h
new file mode 100644
index 0000000000..b41c6b155c
--- /dev/null
+++ b/engines/titanic/game/transport/service_elevator.h
@@ -0,0 +1,57 @@
+/* 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 TITANIC_SERVICE_ELEVATOR_H
+#define TITANIC_SERVICE_ELEVATOR_H
+
+#include "titanic/game/transport/transport.h"
+
+namespace Titanic {
+
+class CServiceElevator : public CTransport {
+public:
+ int _fieldF8;
+ int _fieldFC;
+ int _field100;
+ int _field104;
+public:
+ CServiceElevator();
+
+ /**
+ * Return the class name
+ */
+ virtual const char *getClassName() const { return "CServiceElevator"; }
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SERVICE_ELEVATOR_H */
diff --git a/engines/titanic/game/transport/transport.cpp b/engines/titanic/game/transport/transport.cpp
new file mode 100644
index 0000000000..ef31a07367
--- /dev/null
+++ b/engines/titanic/game/transport/transport.cpp
@@ -0,0 +1,46 @@
+/* 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.
+ *
+ */
+
+#include "titanic/game/transport/transport.h"
+
+namespace Titanic {
+
+CTransport::CTransport() : CMobile(), _string1("*.*.*") {
+}
+
+void CTransport::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeQuotedLine(_string2, indent);
+
+ CMobile::save(file, indent);
+}
+
+void CTransport::load(SimpleFile *file) {
+ file->readNumber();
+ _string1 = file->readString();
+ _string2 = file->readString();
+
+ CMobile::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/transport/transport.h b/engines/titanic/game/transport/transport.h
new file mode 100644
index 0000000000..6e3f1a2d1d
--- /dev/null
+++ b/engines/titanic/game/transport/transport.h
@@ -0,0 +1,55 @@
+/* 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 TITANIC_TRANSPORT_H
+#define TITANIC_TRANSPORT_H
+
+#include "titanic/npcs/mobile.h"
+
+namespace Titanic {
+
+class CTransport : public CMobile {
+public:
+ CString _string1;
+ CString _string2;
+public:
+ CTransport();
+
+ /**
+ * Return the class name
+ */
+ virtual const char *getClassName() const { return "CTransport"; }
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TRANSPORT_H */
diff --git a/engines/titanic/gfx/volume_control.cpp b/engines/titanic/gfx/volume_control.cpp
new file mode 100644
index 0000000000..7c829169bb
--- /dev/null
+++ b/engines/titanic/gfx/volume_control.cpp
@@ -0,0 +1,48 @@
+/* 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.
+ *
+ */
+
+#include "titanic/gfx/volume_control.h"
+
+namespace Titanic {
+
+CVolumeControl::CVolumeControl() : CGameObject() {
+}
+
+void CVolumeControl::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeNumberLine(_fieldCC, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CVolumeControl::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _string1 = file->readString();
+ _fieldCC = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/volume_control.h b/engines/titanic/gfx/volume_control.h
new file mode 100644
index 0000000000..5ff5c732b1
--- /dev/null
+++ b/engines/titanic/gfx/volume_control.h
@@ -0,0 +1,56 @@
+/* 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 TITANIC_VOLUME_CONTROL_H
+#define TITANIC_VOLUME_CONTROL_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CVolumeControl : public CGameObject {
+private:
+ int _fieldBC;
+ CString _string1;
+ int _fieldCC;
+public:
+ CVolumeControl();
+
+ /**
+ * Return the class name
+ */
+ virtual const char *getClassName() const { return "CVolumeControl"; }
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_VOLUME_CONTROL_H */
diff --git a/engines/titanic/module.mk b/engines/titanic/module.mk
index f9927867b5..87d5774878 100644
--- a/engines/titanic/module.mk
+++ b/engines/titanic/module.mk
@@ -127,6 +127,7 @@ MODULE_OBJS := \
game/enter_exit_sec_class_mini_lift.o \
game/enter_exit_view.o \
game/enter_sec_class_state.o \
+ game/hammer_dispensor.o \
game/hammer_dispensor_button.o \
game/exit_lift.o \
game/exit_pellerator.o \
@@ -156,6 +157,9 @@ MODULE_OBJS := \
game/maitred_arm_holder.o \
game/missiveomat.o \
game/movie_tester.o \
+ game/music_console_button.o \
+ game/music_room_phonograph.o \
+ game/music_room_stop_phonograph_button.o \
game/music_system_lock.o \
game/musical_instrument.o \
game/navigation_computer.o \
@@ -167,6 +171,7 @@ MODULE_OBJS := \
game/pet_disabler.o \
game/pet_graphic2.o \
game/pet_graphic.o \
+ game/phonograph.o \
game/phonograph_lid.o \
game/place_holder.o \
game/play_music_button.o \
@@ -176,6 +181,7 @@ MODULE_OBJS := \
game/replacement_ear.o \
game/reserved_table.o \
game/restaurant_cylinder_holder.o \
+ game/restaurant_phonograph.o \
game/room_item.o \
game/sauce_dispensor.o \
game/search_point.o \
@@ -226,6 +232,13 @@ MODULE_OBJS := \
game/pet/pet_sounds.o \
game/pet/pet_transition.o \
game/pet/pet_transport.o \
+ game/transport/gondolier.o \
+ game/transport/lift.o \
+ game/transport/lift_indicator.o \
+ game/transport/pellerator.o \
+ game/transport/service_elevator.o \
+ game/transport/transport.o \
+ game/sgt/enter_exit_mini_lift.o \
game/sgt/sgt_doors.o \
game/sgt/sgt_navigation.o \
game/sgt/sgt_restaurant_doors.o \
@@ -263,6 +276,7 @@ MODULE_OBJS := \
gfx/status_change_button.o \
gfx/st_button.o \
gfx/toggle_switch.o \
+ gfx/volume_control.o \
messages/auto_sound_event.o \
messages/door_auto_sound_event.o \
messages/messages.o \
@@ -300,6 +314,7 @@ MODULE_OBJS := \
sound/auto_sound_player.o \
sound/background_sound_maker.o \
sound/music_player.o \
+ sound/restricted_auto_music_player.o \
sound/seasonal_music_player.o \
sound/titania_speech.o \
sound/trigger_auto_music_player.o
diff --git a/engines/titanic/sound/music_player.cpp b/engines/titanic/sound/music_player.cpp
index 39e97ed10e..6bab2d91dc 100644
--- a/engines/titanic/sound/music_player.cpp
+++ b/engines/titanic/sound/music_player.cpp
@@ -26,11 +26,21 @@ namespace Titanic {
void CMusicPlayer::save(SimpleFile *file, int indent) const {
file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeNumberLine(_fieldCC, indent);
+ file->writeNumberLine(_fieldD0, indent);
+
CGameObject::save(file, indent);
}
void CMusicPlayer::load(SimpleFile *file) {
file->readNumber();
+ _fieldBC = file->readNumber();
+ _string1 = file->readString();
+ _fieldCC = file->readNumber();
+ _fieldD0 = file->readNumber();
+
CGameObject::load(file);
}
diff --git a/engines/titanic/sound/restricted_auto_music_player.cpp b/engines/titanic/sound/restricted_auto_music_player.cpp
new file mode 100644
index 0000000000..442dc90ce2
--- /dev/null
+++ b/engines/titanic/sound/restricted_auto_music_player.cpp
@@ -0,0 +1,47 @@
+/* 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.
+ *
+ */
+
+#include "titanic/sound/restricted_auto_music_player.h"
+
+namespace Titanic {
+
+void CRestrictedAutoMusicPlayer::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string3, indent);
+ file->writeQuotedLine(_string4, indent);
+ file->writeQuotedLine(_string5, indent);
+ file->writeQuotedLine(_string6, indent);
+
+ CAutoMusicPlayer::save(file, indent);
+}
+
+void CRestrictedAutoMusicPlayer::load(SimpleFile *file) {
+ file->readNumber();
+ _string3 = file->readString();
+ _string4 = file->readString();
+ _string5 = file->readString();
+ _string6 = file->readString();
+
+ CAutoMusicPlayer::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/sound/restricted_auto_music_player.h b/engines/titanic/sound/restricted_auto_music_player.h
new file mode 100644
index 0000000000..ab8e26e9da
--- /dev/null
+++ b/engines/titanic/sound/restricted_auto_music_player.h
@@ -0,0 +1,55 @@
+/* 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 TITANIC_RESTRICTED_AUTO_MUSIC_PLAYER_H
+#define TITANIC_RESTRICTED_AUTO_MUSIC_PLAYER_H
+
+#include "titanic/sound/auto_music_player.h"
+
+namespace Titanic {
+
+class CRestrictedAutoMusicPlayer : public CAutoMusicPlayer {
+private:
+ CString _string3;
+ CString _string4;
+ CString _string5;
+ CString _string6;
+public:
+ /**
+ * Return the class name
+ */
+ virtual const char *getClassName() const { return "CRestrictedAutoMusicPlayer"; }
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_RESTRICTED_AUTO_MUSIC_PLAYER_H */
diff --git a/engines/titanic/titanic.cpp b/engines/titanic/titanic.cpp
index 62a0ae25c1..03dbacd6da 100644
--- a/engines/titanic/titanic.cpp
+++ b/engines/titanic/titanic.cpp
@@ -31,6 +31,7 @@
#include "titanic/core/saveable_object.h"
#include "titanic/game/enter_exit_first_class_state.h"
#include "titanic/game/parrot/parrot_lobby_object.h"
+#include "titanic/game/sgt/sgt_navigation.h"
#include "titanic/game/sgt/sgt_state_room.h"
#include "titanic/carry/hose.h"
@@ -59,6 +60,7 @@ void TitanicEngine::initialize() {
CParrotLobbyObject::init();
CEnterExitFirstClassState::init();
CHose::init();
+ CSGTNavigation::init();
CSGTStateRoom::init();
_screenManager = new OSScreenManager(this);
@@ -69,6 +71,7 @@ void TitanicEngine::initialize() {
void TitanicEngine::deinitialize() {
CEnterExitFirstClassState::deinit();
CHose::deinit();
+ CSGTNavigation::deinit();
CSGTStateRoom::deinit();
}