diff options
Diffstat (limited to 'engines')
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(); } |