From 83ad770f498b5c99b4667b838b8c7a8def087e71 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Thu, 25 Feb 2016 23:49:10 -0500 Subject: TITANIC: Implement CMovePlayerTo class hierarchy --- engines/titanic/core/saveable_object.cpp | 96 ++++++++++++++++------ engines/titanic/messages/enter_bomb_room.cpp | 40 +++++++++ engines/titanic/messages/enter_bomb_room.h | 54 ++++++++++++ engines/titanic/messages/exit_arboretum.cpp | 49 +++++++++++ engines/titanic/messages/exit_arboretum.h | 56 +++++++++++++ engines/titanic/messages/exit_bridge.cpp | 42 ++++++++++ engines/titanic/messages/exit_bridge.h | 54 ++++++++++++ engines/titanic/messages/exit_state_room.cpp | 40 +++++++++ engines/titanic/messages/exit_state_room.h | 54 ++++++++++++ engines/titanic/messages/exit_titania.cpp | 51 ++++++++++++ engines/titanic/messages/exit_titania.h | 57 +++++++++++++ .../messages/move_player_in_parrot_room.cpp | 40 +++++++++ .../titanic/messages/move_player_in_parrot_room.h | 52 ++++++++++++ engines/titanic/messages/move_player_to.cpp | 44 ++++++++++ engines/titanic/messages/move_player_to.h | 54 ++++++++++++ engines/titanic/messages/move_player_to_from.cpp | 44 ++++++++++ engines/titanic/messages/move_player_to_from.h | 54 ++++++++++++ engines/titanic/messages/multi_move.cpp | 52 ++++++++++++ engines/titanic/messages/multi_move.h | 58 +++++++++++++ engines/titanic/messages/pan_from_pel.cpp | 46 +++++++++++ engines/titanic/messages/pan_from_pel.h | 55 +++++++++++++ .../titanic/messages/restaurant_pan_handler.cpp | 46 +++++++++++ engines/titanic/messages/restaurant_pan_handler.h | 55 +++++++++++++ engines/titanic/messages/restricted_move.cpp | 44 ++++++++++ engines/titanic/messages/restricted_move.h | 54 ++++++++++++ engines/titanic/messages/trip_down_canal.cpp | 40 +++++++++ engines/titanic/messages/trip_down_canal.h | 52 ++++++++++++ engines/titanic/module.mk | 13 +++ 28 files changed, 1370 insertions(+), 26 deletions(-) create mode 100644 engines/titanic/messages/enter_bomb_room.cpp create mode 100644 engines/titanic/messages/enter_bomb_room.h create mode 100644 engines/titanic/messages/exit_arboretum.cpp create mode 100644 engines/titanic/messages/exit_arboretum.h create mode 100644 engines/titanic/messages/exit_bridge.cpp create mode 100644 engines/titanic/messages/exit_bridge.h create mode 100644 engines/titanic/messages/exit_state_room.cpp create mode 100644 engines/titanic/messages/exit_state_room.h create mode 100644 engines/titanic/messages/exit_titania.cpp create mode 100644 engines/titanic/messages/exit_titania.h create mode 100644 engines/titanic/messages/move_player_in_parrot_room.cpp create mode 100644 engines/titanic/messages/move_player_in_parrot_room.h create mode 100644 engines/titanic/messages/move_player_to.cpp create mode 100644 engines/titanic/messages/move_player_to.h create mode 100644 engines/titanic/messages/move_player_to_from.cpp create mode 100644 engines/titanic/messages/move_player_to_from.h create mode 100644 engines/titanic/messages/multi_move.cpp create mode 100644 engines/titanic/messages/multi_move.h create mode 100644 engines/titanic/messages/pan_from_pel.cpp create mode 100644 engines/titanic/messages/pan_from_pel.h create mode 100644 engines/titanic/messages/restaurant_pan_handler.cpp create mode 100644 engines/titanic/messages/restaurant_pan_handler.h create mode 100644 engines/titanic/messages/restricted_move.cpp create mode 100644 engines/titanic/messages/restricted_move.h create mode 100644 engines/titanic/messages/trip_down_canal.cpp create mode 100644 engines/titanic/messages/trip_down_canal.h (limited to 'engines') diff --git a/engines/titanic/core/saveable_object.cpp b/engines/titanic/core/saveable_object.cpp index 551cd47278..382023da95 100644 --- a/engines/titanic/core/saveable_object.cpp +++ b/engines/titanic/core/saveable_object.cpp @@ -37,6 +37,20 @@ #include "titanic/game/room_item.h" #include "titanic/game/service_elevator_door.h" #include "titanic/game/sub_glass.h" + +#include "titanic/messages/enter_bomb_room.h" +#include "titanic/messages/exit_arboretum.h" +#include "titanic/messages/exit_bridge.h" +#include "titanic/messages/exit_state_room.h" +#include "titanic/messages/move_player_in_parrot_room.h" +#include "titanic/messages/move_player_to.h" +#include "titanic/messages/move_player_to_from.h" +#include "titanic/messages/multi_move.h" +#include "titanic/messages/pan_from_pel.h" +#include "titanic/messages/restaurant_pan_handler.h" +#include "titanic/messages/restricted_move.h" +#include "titanic/messages/trip_down_canal.h" + #include "titanic/npcs/barbot.h" #include "titanic/npcs/bellbot.h" #include "titanic/npcs/deskbot.h" @@ -57,63 +71,93 @@ Common::HashMap * #define DEFFN(T) CSaveableObject *Function##T() { return new T(); } #define ADDFN(T) (*_classList)[#T] = Function##T -DEFFN(CAnnounce); DEFFN(CBackground); -DEFFN(CBarbot); -DEFFN(CBellBot); -DEFFN(CDeskbot); -DEFFN(CDoorbot); DEFFN(CFileItem); DEFFN(CFileListItem); -DEFFN(CLiftBot); DEFFN(CLinkItem); -DEFFN(CMaitreD); DEFFN(CMessageTarget); -DEFFN(CMobile); DEFFN(CMovieClip); DEFFN(CMovieClipList); DEFFN(CNodeItem); -DEFFN(CParrot); -DEFFN(CPETPosition); DEFFN(CProjectItem); +DEFFN(CTreeItem); +DEFFN(CViewItem); + +DEFFN(CAnnounce); +DEFFN(CPETPosition); DEFFN(CRoomItem); DEFFN(CServiceElevatorDoor); -DEFFN(CStarlings); DEFFN(CSUBGlass); + +DEFFN(CEnterBombRoom); +DEFFN(CExitArboretum); +DEFFN(CExitBridge); +DEFFN(CExitStateRoom); +DEFFN(CMovePlayerInParrotRoom); +DEFFN(CMovePlayerTo); +DEFFN(CMovePlayerToFrom); +DEFFN(CMultiMove); +DEFFN(CPanFromPel); +DEFFN(CRestaurantPanHandler); +DEFFN(CRestrictedMove); +DEFFN(CTripDownCanal); + +DEFFN(CBarbot); +DEFFN(CBellBot); +DEFFN(CDeskbot); +DEFFN(CDoorbot); +DEFFN(CLiftBot); +DEFFN(CMaitreD); +DEFFN(CMobile); +DEFFN(CParrot); +DEFFN(CStarlings); DEFFN(CSuccUBus); DEFFN(CTitania); -DEFFN(CTreeItem); -DEFFN(CViewItem); void CSaveableObject::initClassList() { _classList = new Common::HashMap(); - ADDFN(CAnnounce); ADDFN(CBackground); - ADDFN(CBarbot); - ADDFN(CBellBot); - ADDFN(CDeskbot); - ADDFN(CDoorbot); ADDFN(CFileItem); ADDFN(CFileListItem); - ADDFN(CLiftBot); ADDFN(CLinkItem); - ADDFN(CMaitreD); ADDFN(CMessageTarget); - ADDFN(CMobile); ADDFN(CMovieClip); ADDFN(CMovieClipList); ADDFN(CNodeItem); - ADDFN(CParrot); - ADDFN(CPETPosition); ADDFN(CProjectItem); + ADDFN(CTreeItem); + ADDFN(CViewItem); + + ADDFN(CAnnounce); + ADDFN(CPETPosition); ADDFN(CRoomItem); ADDFN(CServiceElevatorDoor); - ADDFN(CStarlings); ADDFN(CSUBGlass); + + ADDFN(CEnterBombRoom); + ADDFN(CExitArboretum); + ADDFN(CExitBridge); + ADDFN(CExitStateRoom); + ADDFN(CMovePlayerInParrotRoom); + ADDFN(CMovePlayerTo); + ADDFN(CMovePlayerToFrom); + ADDFN(CMultiMove); + ADDFN(CPanFromPel); + ADDFN(CRestaurantPanHandler); + ADDFN(CRestrictedMove); + ADDFN(CTripDownCanal); + + ADDFN(CBarbot); + ADDFN(CBellBot); + ADDFN(CDeskbot); + ADDFN(CDoorbot); + ADDFN(CMaitreD); + ADDFN(CLiftBot); + ADDFN(CMobile); + ADDFN(CParrot); + ADDFN(CStarlings); ADDFN(CSuccUBus); ADDFN(CTitania); - ADDFN(CTreeItem); - ADDFN(CViewItem); } void CSaveableObject::freeClassList() { diff --git a/engines/titanic/messages/enter_bomb_room.cpp b/engines/titanic/messages/enter_bomb_room.cpp new file mode 100644 index 0000000000..049c3f45ae --- /dev/null +++ b/engines/titanic/messages/enter_bomb_room.cpp @@ -0,0 +1,40 @@ +/* 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/messages/enter_bomb_room.h" + +namespace Titanic { + +CEnterBombRoom::CEnterBombRoom() : CMovePlayerTo(), _fieldC8(0) { +} + +void CEnterBombRoom::save(SimpleFile *file, int indent) const { + file->writeNumberLine(1, indent); + CMovePlayerTo::save(file, indent); +} + +void CEnterBombRoom::load(SimpleFile *file) { + file->readNumber(); + CMovePlayerTo::load(file); +} + +} // End of namespace Titanic diff --git a/engines/titanic/messages/enter_bomb_room.h b/engines/titanic/messages/enter_bomb_room.h new file mode 100644 index 0000000000..3ec5616db0 --- /dev/null +++ b/engines/titanic/messages/enter_bomb_room.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_ENTER_BOMB_ROOM_H +#define TITANIC_ENTER_BOMB_ROOM_H + +#include "titanic/messages/move_player_to.h" + +namespace Titanic { + +class CEnterBombRoom : public CMovePlayerTo { +protected: + int _fieldC8; +public: + CEnterBombRoom(); + + /** + * Return the class name + */ + virtual const char *getClassName() const { return "CEnterBombRoom"; } + + /** + * 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_BOMB_ROOM_H */ diff --git a/engines/titanic/messages/exit_arboretum.cpp b/engines/titanic/messages/exit_arboretum.cpp new file mode 100644 index 0000000000..0a50377afb --- /dev/null +++ b/engines/titanic/messages/exit_arboretum.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/messages/exit_arboretum.h" + +namespace Titanic { + +CExitArboretum::CExitArboretum() : CMovePlayerTo(), + _fieldC8(0), _fieldCC(0), _fieldD0(1) { +} + +void CExitArboretum::save(SimpleFile *file, int indent) const { + file->writeNumberLine(1, indent); + file->writeNumberLine(_fieldC8, indent); + file->writeNumberLine(_fieldCC, indent); + file->writeNumberLine(_fieldD0, indent); + + CMovePlayerTo::save(file, indent); +} + +void CExitArboretum::load(SimpleFile *file) { + file->readNumber(); + _fieldC8 = file->readNumber(); + _fieldCC = file->readNumber(); + _fieldD0 = file->readNumber(); + + CMovePlayerTo::load(file); +} + +} // End of namespace Titanic diff --git a/engines/titanic/messages/exit_arboretum.h b/engines/titanic/messages/exit_arboretum.h new file mode 100644 index 0000000000..4ee135e6bc --- /dev/null +++ b/engines/titanic/messages/exit_arboretum.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_EXIT_ARBORETUM_H +#define TITANIC_EXIT_ARBORETUM_H + +#include "titanic/messages/move_player_to.h" + +namespace Titanic { + +class CExitArboretum : public CMovePlayerTo { +protected: + int _fieldC8; + int _fieldCC; + int _fieldD0; +public: + CExitArboretum(); + + /** + * Return the class name + */ + virtual const char *getClassName() const { return "CExitArboretum"; } + + /** + * 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_BACKGROUND_H */ diff --git a/engines/titanic/messages/exit_bridge.cpp b/engines/titanic/messages/exit_bridge.cpp new file mode 100644 index 0000000000..27f923bf11 --- /dev/null +++ b/engines/titanic/messages/exit_bridge.cpp @@ -0,0 +1,42 @@ +/* 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/messages/exit_bridge.h" + +namespace Titanic { + +CExitBridge::CExitBridge() : CMovePlayerTo() { +} + +void CExitBridge::save(SimpleFile *file, int indent) const { + file->writeNumberLine(1, indent); + CMovePlayerTo::save(file, indent); +} + +void CExitBridge::load(SimpleFile *file) { + file->readNumber(); + _string1 = file->readString(); + + CMovePlayerTo::load(file); +} + +} // End of namespace Titanic diff --git a/engines/titanic/messages/exit_bridge.h b/engines/titanic/messages/exit_bridge.h new file mode 100644 index 0000000000..6d65a0028a --- /dev/null +++ b/engines/titanic/messages/exit_bridge.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_EXIT_BRIDGE_H +#define TITANIC_EXIT_BRIDGE_H + +#include "titanic/messages/move_player_to.h" + +namespace Titanic { + +class CExitBridge : public CMovePlayerTo { +private: + CString _string1; +public: + CExitBridge(); + + /** + * Return the class name + */ + virtual const char *getClassName() const { return "CExitBridge"; } + + /** + * 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_EXIT_BRIDGE_H */ diff --git a/engines/titanic/messages/exit_state_room.cpp b/engines/titanic/messages/exit_state_room.cpp new file mode 100644 index 0000000000..f1acd910d8 --- /dev/null +++ b/engines/titanic/messages/exit_state_room.cpp @@ -0,0 +1,40 @@ +/* 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/messages/exit_state_room.h" + +namespace Titanic { + +CExitStateRoom::CExitStateRoom() : CMovePlayerTo(), _fieldC8(0) { +} + +void CExitStateRoom::save(SimpleFile *file, int indent) const { + file->writeNumberLine(1, indent); + CMovePlayerTo::save(file, indent); +} + +void CExitStateRoom::load(SimpleFile *file) { + file->readNumber(); + CMovePlayerTo::load(file); +} + +} // End of namespace Titanic diff --git a/engines/titanic/messages/exit_state_room.h b/engines/titanic/messages/exit_state_room.h new file mode 100644 index 0000000000..12adcfba44 --- /dev/null +++ b/engines/titanic/messages/exit_state_room.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_EXIT_STATE_ROOM_H +#define TITANIC_EXIT_STATE_ROOM_H + +#include "titanic/messages/move_player_to.h" + +namespace Titanic { + +class CExitStateRoom : public CMovePlayerTo { +protected: + int _fieldC8; +public: + CExitStateRoom(); + + /** + * Return the class name + */ + virtual const char *getClassName() const { return "CExitStateRoom"; } + + /** + * 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_EXIT_STATE_ROOM_H */ diff --git a/engines/titanic/messages/exit_titania.cpp b/engines/titanic/messages/exit_titania.cpp new file mode 100644 index 0000000000..e94d0cd706 --- /dev/null +++ b/engines/titanic/messages/exit_titania.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/messages/exit_titania.h" + +namespace Titanic { + +CExitTitania::CExitTitania() : CMovePlayerTo(), _fieldC8(0), + _string1("NULL"), _string2("NULL"), _string3("NULL") { +} + +void CExitTitania::save(SimpleFile *file, int indent) const { + file->writeNumberLine(1, indent); + file->writeNumberLine(_fieldC8, indent); + file->writeQuotedLine(_string1, indent); + file->writeQuotedLine(_string2, indent); + file->writeQuotedLine(_string3, indent); + + CMovePlayerTo::save(file, indent); +} + +void CExitTitania::load(SimpleFile *file) { + file->readNumber(); + _fieldC8 = file->readNumber(); + _string1 = file->readString(); + _string2 = file->readString(); + _string3 = file->readString(); + + CMovePlayerTo::load(file); +} + +} // End of namespace Titanic diff --git a/engines/titanic/messages/exit_titania.h b/engines/titanic/messages/exit_titania.h new file mode 100644 index 0000000000..529886aee9 --- /dev/null +++ b/engines/titanic/messages/exit_titania.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_EXIT_TITANIA_H +#define TITANIC_EXIT_TITANIA_H + +#include "titanic/messages/move_player_to.h" + +namespace Titanic { + +class CExitTitania : public CMovePlayerTo { +private: + int _fieldC8; + CString _string1; + CString _string2; + CString _string3; +public: + CExitTitania(); + + /** + * Return the class name + */ + virtual const char *getClassName() const { return "CExitTitania"; } + + /** + * 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_EXIT_TITANIA_H */ diff --git a/engines/titanic/messages/move_player_in_parrot_room.cpp b/engines/titanic/messages/move_player_in_parrot_room.cpp new file mode 100644 index 0000000000..b1040bfb75 --- /dev/null +++ b/engines/titanic/messages/move_player_in_parrot_room.cpp @@ -0,0 +1,40 @@ +/* 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/messages/move_player_in_parrot_room.h" + +namespace Titanic { + +CMovePlayerInParrotRoom::CMovePlayerInParrotRoom() : CMovePlayerTo() { +} + +void CMovePlayerInParrotRoom::save(SimpleFile *file, int indent) const { + file->writeNumberLine(1, indent); + CGameObject::save(file, indent); +} + +void CMovePlayerInParrotRoom::load(SimpleFile *file) { + file->readNumber(); + CGameObject::load(file); +} + +} // End of namespace Titanic diff --git a/engines/titanic/messages/move_player_in_parrot_room.h b/engines/titanic/messages/move_player_in_parrot_room.h new file mode 100644 index 0000000000..f4e5779fd8 --- /dev/null +++ b/engines/titanic/messages/move_player_in_parrot_room.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_MOVE_PLAYER_IN_PARROT_ROOM_H +#define TITANIC_MOVE_PLAYER_IN_PARROT_ROOM_H + +#include "titanic/messages/move_player_to.h" + +namespace Titanic { + +class CMovePlayerInParrotRoom : public CMovePlayerTo { +public: + CMovePlayerInParrotRoom(); + + /** + * Return the class name + */ + virtual const char *getClassName() const { return "CMovePlayerInParrotRoom"; } + + /** + * 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_MOVE_PLAYER_IN_PARROT_ROOM_H */ diff --git a/engines/titanic/messages/move_player_to.cpp b/engines/titanic/messages/move_player_to.cpp new file mode 100644 index 0000000000..66a71e8fa5 --- /dev/null +++ b/engines/titanic/messages/move_player_to.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/messages/move_player_to.h" + +namespace Titanic { + +CMovePlayerTo::CMovePlayerTo() : CGameObject() { +} + +void CMovePlayerTo::save(SimpleFile *file, int indent) const { + file->writeNumberLine(1, indent); + file->writeQuotedLine(_destination, indent); + + CGameObject::save(file, indent); +} + +void CMovePlayerTo::load(SimpleFile *file) { + file->readNumber(); + _destination = file->readString(); + + CGameObject::load(file); +} + +} // End of namespace Titanic diff --git a/engines/titanic/messages/move_player_to.h b/engines/titanic/messages/move_player_to.h new file mode 100644 index 0000000000..aa785b9167 --- /dev/null +++ b/engines/titanic/messages/move_player_to.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_MOVE_PLAYER_TO_H +#define TITANIC_MOVE_PLAYER_TO_H + +#include "titanic/core/game_object.h" + +namespace Titanic { + +class CMovePlayerTo : public CGameObject { +protected: + CString _destination; +public: + CMovePlayerTo(); + + /** + * Return the class name + */ + virtual const char *getClassName() const { return "CMovePlayerTo"; } + + /** + * 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_MOVE_PLAYER_TO_H */ diff --git a/engines/titanic/messages/move_player_to_from.cpp b/engines/titanic/messages/move_player_to_from.cpp new file mode 100644 index 0000000000..77c74d5b50 --- /dev/null +++ b/engines/titanic/messages/move_player_to_from.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/messages/move_player_to_from.h" + +namespace Titanic { + +CMovePlayerToFrom::CMovePlayerToFrom() : CGameObject() { +} + +void CMovePlayerToFrom::save(SimpleFile *file, int indent) const { + file->writeNumberLine(1, indent); + file->writeQuotedLine(_string2, indent); + + CGameObject::save(file, indent); +} + +void CMovePlayerToFrom::load(SimpleFile *file) { + file->readNumber(); + _string2 = file->readString(); + + CGameObject::load(file); +} + +} // End of namespace Titanic diff --git a/engines/titanic/messages/move_player_to_from.h b/engines/titanic/messages/move_player_to_from.h new file mode 100644 index 0000000000..82fe5db2ec --- /dev/null +++ b/engines/titanic/messages/move_player_to_from.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_MOVE_PLAYER_TO_FROM_H +#define TITANIC_MOVE_PLAYER_TO_FROM_H + +#include "titanic/core/game_object.h" + +namespace Titanic { + +class CMovePlayerToFrom : public CGameObject { +private: + CString _string2; +public: + CMovePlayerToFrom(); + + /** + * Return the class name + */ + virtual const char *getClassName() const { return "CMovePlayerToFrom"; } + + /** + * 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_MOVE_PLAYER_TO_FROM_H */ diff --git a/engines/titanic/messages/multi_move.cpp b/engines/titanic/messages/multi_move.cpp new file mode 100644 index 0000000000..dd1948c435 --- /dev/null +++ b/engines/titanic/messages/multi_move.cpp @@ -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. + * + */ + +#include "titanic/messages/multi_move.h" + +namespace Titanic { + +CMultiMove::CMultiMove() : CMovePlayerTo() { +} + +void CMultiMove::save(SimpleFile *file, int indent) const { + file->writeNumberLine(1, indent); + file->writeQuotedLine(_string1, indent); + file->writeQuotedLine(_string2, indent); + file->writeQuotedLine(_string3, indent); + file->writeQuotedLine(_string4, indent); + file->writeQuotedLine(_string5, indent); + + CMovePlayerTo::save(file, indent); +} + +void CMultiMove::load(SimpleFile *file) { + file->readNumber(); + _string1 = file->readString(); + _string2 = file->readString(); + _string3 = file->readString(); + _string5 = file->readString(); + _string4 = file->readString(); + + CMovePlayerTo::load(file); +} + +} // End of namespace Titanic diff --git a/engines/titanic/messages/multi_move.h b/engines/titanic/messages/multi_move.h new file mode 100644 index 0000000000..2cc4f4e6bb --- /dev/null +++ b/engines/titanic/messages/multi_move.h @@ -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. + * + */ + +#ifndef TITANIC_MULTI_MOVE_H +#define TITANIC_MULTI_MOVE_H + +#include "titanic/messages/move_player_to.h" + +namespace Titanic { + +class CMultiMove : public CMovePlayerTo { +private: + CString _string1; + CString _string2; + CString _string3; + CString _string4; + CString _string5; +public: + CMultiMove(); + + /** + * Return the class name + */ + virtual const char *getClassName() const { return "CMultiMove"; } + + /** + * 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_MULTI_MOVE_H */ diff --git a/engines/titanic/messages/pan_from_pel.cpp b/engines/titanic/messages/pan_from_pel.cpp new file mode 100644 index 0000000000..718927f9c7 --- /dev/null +++ b/engines/titanic/messages/pan_from_pel.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/messages/pan_from_pel.h" + +namespace Titanic { + +CPanFromPel::CPanFromPel() : CMovePlayerTo(), _fieldC8(0) { +} + +void CPanFromPel::save(SimpleFile *file, int indent) const { + file->writeNumberLine(1, indent); + file->writeNumberLine(_fieldC8, indent); + file->writeQuotedLine(_string1, indent); + + CMovePlayerTo::save(file, indent); +} + +void CPanFromPel::load(SimpleFile *file) { + file->readNumber(); + _fieldC8 = file->readNumber(); + _string1 = file->readString(); + + CMovePlayerTo::load(file); +} + +} // End of namespace Titanic diff --git a/engines/titanic/messages/pan_from_pel.h b/engines/titanic/messages/pan_from_pel.h new file mode 100644 index 0000000000..abb565c9ce --- /dev/null +++ b/engines/titanic/messages/pan_from_pel.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_PAN_FROM_PEL_H +#define TITANIC_PAN_FROM_PEL_H + +#include "titanic/messages/move_player_to.h" + +namespace Titanic { + +class CPanFromPel : public CMovePlayerTo { +protected: + int _fieldC8; + CString _string1; +public: + CPanFromPel(); + + /** + * Return the class name + */ + virtual const char *getClassName() const { return "CPanFromPel"; } + + /** + * 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_PAN_FROM_PEL_H */ diff --git a/engines/titanic/messages/restaurant_pan_handler.cpp b/engines/titanic/messages/restaurant_pan_handler.cpp new file mode 100644 index 0000000000..14fd383cde --- /dev/null +++ b/engines/titanic/messages/restaurant_pan_handler.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/messages/restaurant_pan_handler.h" + +namespace Titanic { + +CRestaurantPanHandler::CRestaurantPanHandler() : CMovePlayerTo() { +} + +void CRestaurantPanHandler::save(SimpleFile *file, int indent) const { + file->writeNumberLine(1, indent); + file->writeQuotedLine(_string1, indent); + file->writeQuotedLine(_string2, indent); + + CMovePlayerTo::save(file, indent); +} + +void CRestaurantPanHandler::load(SimpleFile *file) { + file->readNumber(); + _string1 = file->readString(); + _string2 = file->readString(); + + CMovePlayerTo::load(file); +} + +} // End of namespace Titanic diff --git a/engines/titanic/messages/restaurant_pan_handler.h b/engines/titanic/messages/restaurant_pan_handler.h new file mode 100644 index 0000000000..dd757bef7c --- /dev/null +++ b/engines/titanic/messages/restaurant_pan_handler.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_RESTAURANT_PAN_HANDLER_H +#define TITANIC_RESTAURANT_PAN_HANDLER_H + +#include "titanic/messages/move_player_to.h" + +namespace Titanic { + +class CRestaurantPanHandler : public CMovePlayerTo { +protected: + CString _string1; + CString _string2; +public: + CRestaurantPanHandler(); + + /** + * Return the class name + */ + virtual const char *getClassName() const { return "CRestaurantPanHandler"; } + + /** + * 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_PAN_HANDLER_H */ diff --git a/engines/titanic/messages/restricted_move.cpp b/engines/titanic/messages/restricted_move.cpp new file mode 100644 index 0000000000..147cf11c08 --- /dev/null +++ b/engines/titanic/messages/restricted_move.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/messages/restricted_move.h" + +namespace Titanic { + +CRestrictedMove::CRestrictedMove() : CMovePlayerTo(), _fieldC8(0) { +} + +void CRestrictedMove::save(SimpleFile *file, int indent) const { + file->writeNumberLine(1, indent); + file->writeNumberLine(_fieldC8, indent); + + CMovePlayerTo::save(file, indent); +} + +void CRestrictedMove::load(SimpleFile *file) { + file->readNumber(); + _fieldC8 = file->readNumber(); + + CMovePlayerTo::load(file); +} + +} // End of namespace Titanic diff --git a/engines/titanic/messages/restricted_move.h b/engines/titanic/messages/restricted_move.h new file mode 100644 index 0000000000..5feae2985b --- /dev/null +++ b/engines/titanic/messages/restricted_move.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_RESTRICTED_MOVE_H +#define TITANIC_RESTRICTED_MOVE_H + +#include "titanic/messages/move_player_to.h" + +namespace Titanic { + +class CRestrictedMove : public CMovePlayerTo { +protected: + int _fieldC8; +public: + CRestrictedMove(); + + /** + * Return the class name + */ + virtual const char *getClassName() const { return "CRestrictedMove"; } + + /** + * 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_MOVE_H */ diff --git a/engines/titanic/messages/trip_down_canal.cpp b/engines/titanic/messages/trip_down_canal.cpp new file mode 100644 index 0000000000..be5f28321f --- /dev/null +++ b/engines/titanic/messages/trip_down_canal.cpp @@ -0,0 +1,40 @@ +/* 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/messages/trip_down_canal.h" + +namespace Titanic { + +CTripDownCanal::CTripDownCanal() : CMovePlayerTo() { +} + +void CTripDownCanal::save(SimpleFile *file, int indent) const { + file->writeNumberLine(1, indent); + CMovePlayerTo::save(file, indent); +} + +void CTripDownCanal::load(SimpleFile *file) { + file->readNumber(); + CMovePlayerTo::load(file); +} + +} // End of namespace Titanic diff --git a/engines/titanic/messages/trip_down_canal.h b/engines/titanic/messages/trip_down_canal.h new file mode 100644 index 0000000000..117ce94c12 --- /dev/null +++ b/engines/titanic/messages/trip_down_canal.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_TRIP_DOWN_CANAL_H +#define TITANIC_TRIP_DOWN_CANAL_H + +#include "titanic/messages/move_player_to.h" + +namespace Titanic { + +class CTripDownCanal : public CMovePlayerTo { +public: + CTripDownCanal(); + + /** + * Return the class name + */ + virtual const char *getClassName() const { return "CTripDownCanal"; } + + /** + * 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_TRIP_DOWN_CANAL_H */ diff --git a/engines/titanic/module.mk b/engines/titanic/module.mk index 74206ea262..66157be507 100644 --- a/engines/titanic/module.mk +++ b/engines/titanic/module.mk @@ -38,6 +38,19 @@ MODULE_OBJS := \ game/room_item.o \ game/service_elevator_door.o \ game/sub_glass.o \ + messages/enter_bomb_room.o \ + messages/exit_arboretum.o \ + messages/exit_bridge.o \ + messages/exit_state_room.o \ + messages/exit_titania.o \ + messages/move_player_in_parrot_room.o \ + messages/move_player_to_from.o \ + messages/move_player_to.o \ + messages/multi_move.o \ + messages/pan_from_pel.o \ + messages/restaurant_pan_handler.o \ + messages/restricted_move.o \ + messages/trip_down_canal.o \ npcs/barbot.o \ npcs/bellbot.o \ npcs/character.o \ -- cgit v1.2.3