diff options
Diffstat (limited to 'engines')
22 files changed, 783 insertions, 4 deletions
diff --git a/engines/titanic/carry/hose.cpp b/engines/titanic/carry/hose.cpp index bb52ec34d5..1617feffc1 100644 --- a/engines/titanic/carry/hose.cpp +++ b/engines/titanic/carry/hose.cpp @@ -24,18 +24,32 @@ namespace Titanic { +CHoseStatics *CHose::_statics; + +void CHose::init() { + _statics = new CHoseStatics(); +} + +void CHose::deinit() { + delete _statics; +} + CHose::CHose() : CCarry(), _string6("Succ-U-Bus auxiliary hose attachment incompatible with sliding glass cover.") { } void CHose::save(SimpleFile *file, int indent) const { file->writeNumberLine(1, indent); + file->writeNumberLine(_statics->_v1, indent); + file->writeQuotedLine(_statics->_v2, indent); file->writeQuotedLine(_string6, indent); CCarry::save(file, indent); } void CHose::load(SimpleFile *file) { file->readNumber(); + _statics->_v1 = file->readNumber(); + _statics->_v2 = file->readString(); _string6 = file->readString(); CCarry::load(file); } diff --git a/engines/titanic/carry/hose.h b/engines/titanic/carry/hose.h index 87f47b3bc4..dc60f6832f 100644 --- a/engines/titanic/carry/hose.h +++ b/engines/titanic/carry/hose.h @@ -27,11 +27,20 @@ namespace Titanic { +struct CHoseStatics { + int _v1; + CString _v2; +}; + class CHose : public CCarry { -private: +protected: + static CHoseStatics *_statics; + CString _string6; public: CHose(); + static void init(); + static void deinit(); /** * Return the class name diff --git a/engines/titanic/carry/hose_end.cpp b/engines/titanic/carry/hose_end.cpp new file mode 100644 index 0000000000..97d75b0ac4 --- /dev/null +++ b/engines/titanic/carry/hose_end.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/carry/hose_end.h" + +namespace Titanic { + +CHoseEnd::CHoseEnd() : CHose() { + _string6 = "Connection refused by remote hose."; +} + +void CHoseEnd::save(SimpleFile *file, int indent) const { + file->writeNumberLine(1, indent); + file->writeQuotedLine(_string6, indent); + CHose::save(file, indent); +} + +void CHoseEnd::load(SimpleFile *file) { + file->readNumber(); + _string6 = file->readString(); + CHose::load(file); +} + +} // End of namespace Titanic diff --git a/engines/titanic/carry/hose_end.h b/engines/titanic/carry/hose_end.h new file mode 100644 index 0000000000..efce6b8db0 --- /dev/null +++ b/engines/titanic/carry/hose_end.h @@ -0,0 +1,52 @@ +/* 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_HOSE_END_H +#define TITANIC_HOSE_END_H + +#include "titanic/carry/hose.h" + +namespace Titanic { + +class CHoseEnd : public CHose { +public: + CHoseEnd(); + + /** + * Return the class name + */ + virtual const char *getClassName() const { return "CHoseEnd"; } + + /** + * 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_HOSE_END_H */ diff --git a/engines/titanic/carry/perch.cpp b/engines/titanic/carry/perch.cpp new file mode 100644 index 0000000000..976921beb0 --- /dev/null +++ b/engines/titanic/carry/perch.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/carry/perch.h" + +namespace Titanic { + +void CPerch::save(SimpleFile *file, int indent) const { + file->writeNumberLine(1, indent); + CCentralCore::save(file, indent); +} + +void CPerch::load(SimpleFile *file) { + file->readNumber(); + CCentralCore::load(file); +} + +} // End of namespace Titanic diff --git a/engines/titanic/carry/perch.h b/engines/titanic/carry/perch.h new file mode 100644 index 0000000000..ce13dbe684 --- /dev/null +++ b/engines/titanic/carry/perch.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_PERCH_H +#define TITANIC_PERCH_H + +#include "titanic/carry/central_core.h" + +namespace Titanic { + +class CPerch : public CCentralCore { +public: + /** + * Return the class name + */ + virtual const char *getClassName() const { return "CPerch"; } + + /** + * 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_PERCH_H */ diff --git a/engines/titanic/core/saveable_object.cpp b/engines/titanic/core/saveable_object.cpp index 20d6fec86e..9267e17dae 100644 --- a/engines/titanic/core/saveable_object.cpp +++ b/engines/titanic/core/saveable_object.cpp @@ -37,6 +37,7 @@ #include "titanic/carry/hammer.h" #include "titanic/carry/head_piece.h" #include "titanic/carry/hose.h" +#include "titanic/carry/hose_end.h" #include "titanic/carry/key.h" #include "titanic/carry/liftbot_head.h" #include "titanic/carry/long_stick.h" @@ -46,6 +47,7 @@ #include "titanic/carry/nose.h" #include "titanic/carry/note.h" #include "titanic/carry/parcel.h" +#include "titanic/carry/perch.h" #include "titanic/carry/phonograph_cylinder.h" #include "titanic/carry/phonograph_ear.h" #include "titanic/carry/photograph.h" @@ -87,6 +89,7 @@ #include "titanic/game/cdrom_computer.h" #include "titanic/game/cdrom_tray.h" #include "titanic/game/cell_point_button.h" +#include "titanic/game/chicken_cooler.h" #include "titanic/game/chicken_dispensor.h" #include "titanic/game/close_broken_pel.h" #include "titanic/game/computer.h" @@ -103,6 +106,8 @@ #include "titanic/game/emma_control.h" #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/floor_indicator.h" #include "titanic/game/games_console.h" #include "titanic/game/hammer_dispensor_button.h" #include "titanic/game/head_smash_event.h" @@ -111,8 +116,11 @@ #include "titanic/game/light.h" #include "titanic/game/light_switch.h" #include "titanic/game/little_lift_button.h" +#include "titanic/game/maitred_arm_holder.h" #include "titanic/game/musical_instrument.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/play_music_button.h" @@ -120,6 +128,7 @@ #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/room_item.h" #include "titanic/game/sauce_dispensor.h" #include "titanic/game/season_background.h" @@ -135,6 +144,8 @@ #include "titanic/game/sweet_bowl.h" #include "titanic/game/television.h" #include "titanic/game/third_class_canal.h" +#include "titanic/game/throw_tv_down_well.h" +#include "titanic/game/up_lighter.h" #include "titanic/game/wheel_button.h" #include "titanic/game/wheel_hotspot.h" #include "titanic/game/wheel_spin.h" @@ -148,6 +159,7 @@ #include "titanic/game/parrot/parrot_perch_holder.h" #include "titanic/game/parrot/parrot_succubus.h" #include "titanic/game/parrot/parrot_trigger.h" +#include "titanic/game/parrot/player_meets_parrot.h" #include "titanic/game/pet/pet.h" #include "titanic/game/pet/pet_class1.h" #include "titanic/game/pet/pet_class2.h" @@ -257,6 +269,7 @@ DEFFN(CBridgePiece); DEFFN(CCarryParrot); DEFFN(CCentralCore); DEFFN(CChicken); +DEFFN(CChickenCooler); DEFFN(CCrushedTV); DEFFN(CEar); DEFFN(CEye); @@ -266,13 +279,17 @@ DEFFN(CGlass); DEFFN(CHammer); DEFFN(CHeadPiece); DEFFN(CHose); +DEFFN(CHoseEnd); DEFFN(CKey); DEFFN(CLiftbotHead); DEFFN(CLongStick); DEFFN(CMagazine); +DEFFN(CMouth); DEFFN(CNapkin); +DEFFN(CNose); DEFFN(CNote); DEFFN(CParcel); +DEFFN(CPerch); DEFFN(CPhonographCylinder); DEFFN(CPhonographEar); DEFFN(CPhotograph); @@ -328,6 +345,8 @@ DEFFN(CEjectPhonographButton); DEFFN(CEmmaControl); DEFFN(CEmptyNutBowl); DEFFN(CEnterExitFirstClassState); +DEFFN(CEnterExitView); +DEFFN(CFloorIndicator); DEFFN(CGamesConsole); DEFFN(CHammerDispensorButton); DEFFN(CHeadSmashEvent); @@ -336,8 +355,11 @@ DEFFN(CLemonDispensor); DEFFN(CLight); DEFFN(CLightSwitch); DEFFN(CLittleLiftButton); +DEFFN(CMaitreDArmHolder); DEFFN(CMusicalInstrument); +DEFFN(CMusicSystemLock); DEFFN(CNoNutBowl); +DEFFN(CNoseHolder); DEFFN(CNullPortHole); DEFFN(CNutReplacer); DEFFN(CPlayMusicButton); @@ -345,6 +367,7 @@ DEFFN(CPlayOnAct); DEFFN(CPortHole); DEFFN(CRecordPhonographButton); DEFFN(CReplacementEar); +DEFFN(CRestaurantCylinderHolder); DEFFN(CRoomItem); DEFFN(CSauceDispensor); DEFFN(CSeasonBackground); @@ -360,6 +383,8 @@ DEFFN(CSUBGlass); DEFFN(CSweetBowl); DEFFN(CTelevision); DEFFN(CThirdClassCanal); +DEFFN(CThrowTVDownWell); +DEFFN(CUpLighter); DEFFN(CWheelButton); DEFFN(CWheelHotSpot); DEFFN(CWheelSpin); @@ -373,6 +398,7 @@ DEFFN(CParrotNutEater); DEFFN(CParrotPerchHolder); DEFFN(CParrotSuccUBus); DEFFN(CParrotTrigger); +DEFFN(CPlayerMeetsParrot); DEFFN(CPET); DEFFN(CPETClass1); DEFFN(CPETClass2); @@ -648,6 +674,7 @@ void CSaveableObject::initClassList() { ADDFN(CCarryParrot); ADDFN(CCentralCore); ADDFN(CChicken); + ADDFN(CChickenCooler); ADDFN(CCrushedTV); ADDFN(CEar); ADDFN(CEye); @@ -657,13 +684,17 @@ void CSaveableObject::initClassList() { ADDFN(CHammer); ADDFN(CHeadPiece); ADDFN(CHose); + ADDFN(CHoseEnd); ADDFN(CKey); ADDFN(CLiftbotHead); ADDFN(CLongStick); ADDFN(CMagazine); + ADDFN(CMouth); ADDFN(CNapkin); + ADDFN(CNose); ADDFN(CNote); ADDFN(CParcel); + ADDFN(CPerch); ADDFN(CPhonographCylinder); ADDFN(CPhonographEar); ADDFN(CPhotograph); @@ -720,6 +751,8 @@ void CSaveableObject::initClassList() { ADDFN(CEmmaControl); ADDFN(CEmptyNutBowl); ADDFN(CEnterExitFirstClassState); + ADDFN(CEnterExitView); + ADDFN(CFloorIndicator); ADDFN(CGamesConsole); ADDFN(CHammerDispensorButton); ADDFN(CHeadSmashEvent); @@ -728,8 +761,11 @@ void CSaveableObject::initClassList() { ADDFN(CLight); ADDFN(CLightSwitch); ADDFN(CLittleLiftButton); + ADDFN(CMaitreDArmHolder); ADDFN(CMusicalInstrument); + ADDFN(CMusicSystemLock); ADDFN(CNoNutBowl); + ADDFN(CNoseHolder); ADDFN(CNullPortHole); ADDFN(CNutReplacer); ADDFN(CPETPosition); @@ -738,6 +774,7 @@ void CSaveableObject::initClassList() { ADDFN(CPortHole); ADDFN(CRecordPhonographButton); ADDFN(CReplacementEar); + ADDFN(CRestaurantCylinderHolder); ADDFN(CRoomItem); ADDFN(CSauceDispensor); ADDFN(CSeasonBackground); @@ -753,6 +790,8 @@ void CSaveableObject::initClassList() { ADDFN(CSweetBowl); ADDFN(CTelevision); ADDFN(CThirdClassCanal); + ADDFN(CThrowTVDownWell); + ADDFN(CUpLighter); ADDFN(CWheelButton); ADDFN(CWheelHotSpot); ADDFN(CWheelSpin); @@ -766,6 +805,7 @@ void CSaveableObject::initClassList() { ADDFN(CParrotPerchHolder); ADDFN(CParrotSuccUBus); ADDFN(CParrotTrigger); + ADDFN(CPlayerMeetsParrot); ADDFN(CPET); ADDFN(CPETClass1); ADDFN(CPETClass2); diff --git a/engines/titanic/game/chicken_cooler.cpp b/engines/titanic/game/chicken_cooler.cpp index feb3b4cade..335ed36fb6 100644 --- a/engines/titanic/game/chicken_cooler.cpp +++ b/engines/titanic/game/chicken_cooler.cpp @@ -26,11 +26,17 @@ namespace Titanic { void CChickenCooler::save(SimpleFile *file, int indent) const { file->writeNumberLine(1, indent); + file->writeNumberLine(_fieldBC, indent); + file->writeNumberLine(_fieldC0, indent); + CGameObject::save(file, indent); } void CChickenCooler::load(SimpleFile *file) { file->readNumber(); + _fieldBC = file->readNumber(); + _fieldC0 = file->readNumber(); + CGameObject::load(file); } diff --git a/engines/titanic/game/maitred_arm_holder.cpp b/engines/titanic/game/maitred_arm_holder.cpp new file mode 100644 index 0000000000..81ad43556b --- /dev/null +++ b/engines/titanic/game/maitred_arm_holder.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/maitred_arm_holder.h" + +namespace Titanic { + +void CMaitreDArmHolder::save(SimpleFile *file, int indent) const { + file->writeNumberLine(1, indent); + CDropTarget::save(file, indent); +} + +void CMaitreDArmHolder::load(SimpleFile *file) { + file->readNumber(); + CGameObject::load(file); +} + +} // End of namespace Titanic diff --git a/engines/titanic/game/maitred_arm_holder.h b/engines/titanic/game/maitred_arm_holder.h new file mode 100644 index 0000000000..b838109fa3 --- /dev/null +++ b/engines/titanic/game/maitred_arm_holder.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_MAITRED_ARM_HOLDER_H +#define TITANIC_MAITRED_ARM_HOLDER_H + +#include "titanic/core/drop_target.h" + +namespace Titanic { + +class CMaitreDArmHolder : public CDropTarget { +public: + /** + * Return the class name + */ + virtual const char *getClassName() const { return "CMaitreDArmHolder"; } + + /** + * 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_MAITRED_ARM_HOLDER_H */ diff --git a/engines/titanic/game/music_system_lock.cpp b/engines/titanic/game/music_system_lock.cpp new file mode 100644 index 0000000000..a5419d983f --- /dev/null +++ b/engines/titanic/game/music_system_lock.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_system_lock.h" + +namespace Titanic { + +void CMusicSystemLock::save(SimpleFile *file, int indent) const { + file->writeNumberLine(1, indent); + file->writeNumberLine(_value, indent); + CDropTarget::save(file, indent); +} + +void CMusicSystemLock::load(SimpleFile *file) { + file->readNumber(); + _value = file->readNumber(); + CGameObject::load(file); +} + +} // End of namespace Titanic diff --git a/engines/titanic/game/music_system_lock.h b/engines/titanic/game/music_system_lock.h new file mode 100644 index 0000000000..98dc68b0dd --- /dev/null +++ b/engines/titanic/game/music_system_lock.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_SYSTEM_LOCK_H +#define TITANIC_MUSIC_SYSTEM_LOCK_H + +#include "titanic/core/drop_target.h" + +namespace Titanic { + +class CMusicSystemLock : public CDropTarget { +private: + int _value; +public: + CMusicSystemLock() : CDropTarget(), _value(0) {} + + /** + * Return the class name + */ + virtual const char *getClassName() const { return "CMusicSystemLock"; } + + /** + * 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_SYSTEM_LOCK_H */ diff --git a/engines/titanic/game/nose_holder.cpp b/engines/titanic/game/nose_holder.cpp new file mode 100644 index 0000000000..ba512d015a --- /dev/null +++ b/engines/titanic/game/nose_holder.cpp @@ -0,0 +1,44 @@ +/* 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/nose_holder.h" + +namespace Titanic { + +CNoseHolder::CNoseHolder() : CDropTarget(), _field118(0), _field11C(0) { +} + +void CNoseHolder::save(SimpleFile *file, int indent) const { + file->writeNumberLine(1, indent); + file->writeNumberLine(_field11C, indent); + + CDropTarget::save(file, indent); +} + +void CNoseHolder::load(SimpleFile *file) { + file->readNumber(); + _field11C = file->readNumber(); + + CDropTarget::load(file); +} + +} // End of namespace Titanic diff --git a/engines/titanic/game/nose_holder.h b/engines/titanic/game/nose_holder.h new file mode 100644 index 0000000000..3512e62bb4 --- /dev/null +++ b/engines/titanic/game/nose_holder.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_NOSE_HOLDER_H +#define TITANIC_NOSE_HOLDER_H + +#include "titanic/core/drop_target.h" + +namespace Titanic { + +class CNoseHolder : public CDropTarget { +private: + int _field118; + int _field11C; +public: + CNoseHolder(); + + /** + * Return the class name + */ + virtual const char *getClassName() const { return "CNoseHolder"; } + + /** + * 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_NOSE_HOLDER_H */ diff --git a/engines/titanic/game/restaurant_cylinder_holder.cpp b/engines/titanic/game/restaurant_cylinder_holder.cpp new file mode 100644 index 0000000000..1662064d17 --- /dev/null +++ b/engines/titanic/game/restaurant_cylinder_holder.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/restaurant_cylinder_holder.h" + +namespace Titanic { + +CRestaurantCylinderHolder::CRestaurantCylinderHolder() : CDropTarget(), + _field118(0), _field11C(0), _field12C(0), _field130(0), + _string6("z#61.wav"), _field140(1) { +} + +void CRestaurantCylinderHolder::save(SimpleFile *file, int indent) const { + file->writeNumberLine(1, indent); + file->writeNumberLine(_field118, indent); + file->writeNumberLine(_field11C, indent); + file->writeQuotedLine(_string5, indent); + file->writeNumberLine(_field12C, indent); + file->writeNumberLine(_field130, indent); + file->writeQuotedLine(_string6, indent); + file->writeNumberLine(_field140, indent); + + CDropTarget::save(file, indent); +} + +void CRestaurantCylinderHolder::load(SimpleFile *file) { + file->readNumber(); + _field118 = file->readNumber(); + _field11C = file->readNumber(); + _string5 = file->readString(); + _field12C = file->readNumber(); + _field130 = file->readNumber(); + _string6 = file->readString(); + _field140 = file->readNumber(); + + CDropTarget::load(file); +} + +} // End of namespace Titanic diff --git a/engines/titanic/game/restaurant_cylinder_holder.h b/engines/titanic/game/restaurant_cylinder_holder.h new file mode 100644 index 0000000000..29e2958f98 --- /dev/null +++ b/engines/titanic/game/restaurant_cylinder_holder.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_RESTAURANT_CYLINDER_HOLDER_H +#define TITANIC_RESTAURANT_CYLINDER_HOLDER_H + +#include "titanic/core/drop_target.h" + +namespace Titanic { + +class CRestaurantCylinderHolder : public CDropTarget { +private: + int _field118; + int _field11C; + CString _string5; + int _field12C; + int _field130; + CString _string6; + int _field140; +public: + CRestaurantCylinderHolder(); + + /** + * Return the class name + */ + virtual const char *getClassName() const { return "CRestaurantCylinderHolder"; } + + /** + * 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_CYLINDER_HOLDER_H */ diff --git a/engines/titanic/game/sgt/sgt_state_room.cpp b/engines/titanic/game/sgt/sgt_state_room.cpp index d244309351..e0d8de1282 100644 --- a/engines/titanic/game/sgt/sgt_state_room.cpp +++ b/engines/titanic/game/sgt/sgt_state_room.cpp @@ -24,7 +24,15 @@ namespace Titanic { -CSGTStateRoomStatics *_statics; +CSGTStateRoomStatics *CSGTStateRoom::_statics; + +void CSGTStateRoom::init() { + _statics = new CSGTStateRoomStatics(); +} + +void CSGTStateRoom::deinit() { + delete _statics; +} CSGTStateRoom::CSGTStateRoom() : CBackground(), _fieldE0(1), _fieldE4(1), _fieldE8(0), _fieldEC(1), _fieldF0(1) { diff --git a/engines/titanic/game/sgt/sgt_state_room.h b/engines/titanic/game/sgt/sgt_state_room.h index ba70e541a3..f67a916f1f 100644 --- a/engines/titanic/game/sgt/sgt_state_room.h +++ b/engines/titanic/game/sgt/sgt_state_room.h @@ -46,7 +46,7 @@ struct CSGTStateRoomStatics { class CSGTStateRoom : public CBackground { private: - CSGTStateRoomStatics *_statics; + static CSGTStateRoomStatics *_statics; private: int _fieldE0; int _fieldE4; @@ -55,6 +55,8 @@ private: int _fieldF0; public: CSGTStateRoom(); + static void init(); + static void deinit(); /** * Return the class name diff --git a/engines/titanic/game/up_lighter.cpp b/engines/titanic/game/up_lighter.cpp new file mode 100644 index 0000000000..0e6c4d88cc --- /dev/null +++ b/engines/titanic/game/up_lighter.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/up_lighter.h" + +namespace Titanic { + +CUpLighter::CUpLighter() : CDropTarget(), _field118(0), + _field11C(0), _field120(0), _field124(0) { +} + +void CUpLighter::save(SimpleFile *file, int indent) const { + file->writeNumberLine(1, indent); + file->writeNumberLine(_field118, indent); + file->writeNumberLine(_field11C, indent); + file->writeNumberLine(_field120, indent); + file->writeNumberLine(_field124, indent); + + CDropTarget::save(file, indent); +} + +void CUpLighter::load(SimpleFile *file) { + file->readNumber(); + _field118 = file->readNumber(); + _field11C = file->readNumber(); + _field120 = file->readNumber(); + _field124 = file->readNumber(); + + CDropTarget::load(file); +} + +} // End of namespace Titanic diff --git a/engines/titanic/game/up_lighter.h b/engines/titanic/game/up_lighter.h new file mode 100644 index 0000000000..e7c6cdf38e --- /dev/null +++ b/engines/titanic/game/up_lighter.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_UP_LIGHTER_H +#define TITANIC_UP_LIGHTER_H + +#include "titanic/core/drop_target.h" + +namespace Titanic { + +class CUpLighter : public CDropTarget { +private: + int _field118; + int _field11C; + int _field120; + int _field124; +public: + CUpLighter(); + + /** + * Return the class name + */ + virtual const char *getClassName() const { return "CUpLighter"; } + + /** + * 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_UP_LIGHTER_H */ diff --git a/engines/titanic/module.mk b/engines/titanic/module.mk index 5894bf3317..f9927867b5 100644 --- a/engines/titanic/module.mk +++ b/engines/titanic/module.mk @@ -33,6 +33,7 @@ MODULE_OBJS := \ carry/hammer.o \ carry/head_piece.o \ carry/hose.o \ + carry/hose_end.o \ carry/key.o \ carry/liftbot_head.o \ carry/long_stick.o \ @@ -42,6 +43,7 @@ MODULE_OBJS := \ carry/nose.o \ carry/note.o \ carry/parcel.o \ + carry/perch.o \ carry/phonograph_cylinder.o \ carry/phonograph_ear.o \ carry/photograph.o \ @@ -151,11 +153,14 @@ MODULE_OBJS := \ game/little_lift_button.o \ game/long_stick_dispenser.o \ game/mail_man.o \ + game/maitred_arm_holder.o \ game/missiveomat.o \ game/movie_tester.o \ + game/music_system_lock.o \ game/musical_instrument.o \ game/navigation_computer.o \ game/no_nut_bowl.o \ + game/nose_holder.o \ game/null_port_hole.o \ game/nut_replacer.o \ game/pet_controler.o \ @@ -170,6 +175,7 @@ MODULE_OBJS := \ game/record_phonograph_button.o \ game/replacement_ear.o \ game/reserved_table.o \ + game/restaurant_cylinder_holder.o \ game/room_item.o \ game/sauce_dispensor.o \ game/search_point.o \ @@ -195,6 +201,7 @@ MODULE_OBJS := \ game/tow_parrot_nav.o \ game/throw_tv_down_well.o \ game/titania_still_control.o \ + game/up_lighter.o \ game/wheel_button.o \ game/wheel_hotspot.o \ game/wheel_spin.o \ diff --git a/engines/titanic/titanic.cpp b/engines/titanic/titanic.cpp index b3aae7bf1b..62a0ae25c1 100644 --- a/engines/titanic/titanic.cpp +++ b/engines/titanic/titanic.cpp @@ -29,8 +29,10 @@ #include "graphics/thumbnail.h" #include "titanic/titanic.h" #include "titanic/core/saveable_object.h" -#include "titanic/game/parrot/parrot_lobby_object.h" #include "titanic/game/enter_exit_first_class_state.h" +#include "titanic/game/parrot/parrot_lobby_object.h" +#include "titanic/game/sgt/sgt_state_room.h" +#include "titanic/carry/hose.h" namespace Titanic { @@ -56,6 +58,8 @@ void TitanicEngine::initialize() { CSaveableObject::initClassList(); CParrotLobbyObject::init(); CEnterExitFirstClassState::init(); + CHose::init(); + CSGTStateRoom::init(); _screenManager = new OSScreenManager(this); _window = new CMainGameWindow(this); @@ -64,6 +68,8 @@ void TitanicEngine::initialize() { void TitanicEngine::deinitialize() { CEnterExitFirstClassState::deinit(); + CHose::deinit(); + CSGTStateRoom::deinit(); } Common::Error TitanicEngine::run() { |