aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2016-02-25 23:49:10 -0500
committerPaul Gilbert2016-02-25 23:49:10 -0500
commit83ad770f498b5c99b4667b838b8c7a8def087e71 (patch)
treef2011e7c055f996131f3235e118a59c6ddee8f95
parent5c77a55328f98f1df79de86f82135ed60ee6f4fd (diff)
downloadscummvm-rg350-83ad770f498b5c99b4667b838b8c7a8def087e71.tar.gz
scummvm-rg350-83ad770f498b5c99b4667b838b8c7a8def087e71.tar.bz2
scummvm-rg350-83ad770f498b5c99b4667b838b8c7a8def087e71.zip
TITANIC: Implement CMovePlayerTo class hierarchy
-rw-r--r--engines/titanic/core/saveable_object.cpp96
-rw-r--r--engines/titanic/messages/enter_bomb_room.cpp40
-rw-r--r--engines/titanic/messages/enter_bomb_room.h54
-rw-r--r--engines/titanic/messages/exit_arboretum.cpp49
-rw-r--r--engines/titanic/messages/exit_arboretum.h56
-rw-r--r--engines/titanic/messages/exit_bridge.cpp42
-rw-r--r--engines/titanic/messages/exit_bridge.h54
-rw-r--r--engines/titanic/messages/exit_state_room.cpp40
-rw-r--r--engines/titanic/messages/exit_state_room.h54
-rw-r--r--engines/titanic/messages/exit_titania.cpp51
-rw-r--r--engines/titanic/messages/exit_titania.h57
-rw-r--r--engines/titanic/messages/move_player_in_parrot_room.cpp40
-rw-r--r--engines/titanic/messages/move_player_in_parrot_room.h52
-rw-r--r--engines/titanic/messages/move_player_to.cpp44
-rw-r--r--engines/titanic/messages/move_player_to.h54
-rw-r--r--engines/titanic/messages/move_player_to_from.cpp44
-rw-r--r--engines/titanic/messages/move_player_to_from.h54
-rw-r--r--engines/titanic/messages/multi_move.cpp52
-rw-r--r--engines/titanic/messages/multi_move.h58
-rw-r--r--engines/titanic/messages/pan_from_pel.cpp46
-rw-r--r--engines/titanic/messages/pan_from_pel.h55
-rw-r--r--engines/titanic/messages/restaurant_pan_handler.cpp46
-rw-r--r--engines/titanic/messages/restaurant_pan_handler.h55
-rw-r--r--engines/titanic/messages/restricted_move.cpp44
-rw-r--r--engines/titanic/messages/restricted_move.h54
-rw-r--r--engines/titanic/messages/trip_down_canal.cpp40
-rw-r--r--engines/titanic/messages/trip_down_canal.h52
-rw-r--r--engines/titanic/module.mk13
28 files changed, 1370 insertions, 26 deletions
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<Common::String, CSaveableObject::CreateFunction> *
#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<Common::String, CreateFunction>();
- 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 \