aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2016-02-28 10:57:45 -0500
committerPaul Gilbert2016-02-28 10:57:45 -0500
commitdecec97c4b7611c56135cf222544afa9f043c894 (patch)
treef0e00a3fd0e8d13a49628917a136d3e784d44a26
parent6cb2a5e81f03ff984a2bc8b214c02f0a3c255952 (diff)
downloadscummvm-rg350-decec97c4b7611c56135cf222544afa9f043c894.tar.gz
scummvm-rg350-decec97c4b7611c56135cf222544afa9f043c894.tar.bz2
scummvm-rg350-decec97c4b7611c56135cf222544afa9f043c894.zip
TITANIC: Implement various parrot classes
-rw-r--r--engines/titanic/core/drop_target.cpp (renamed from engines/titanic/game/drop_target.cpp)2
-rw-r--r--engines/titanic/core/drop_target.h (renamed from engines/titanic/game/drop_target.h)0
-rw-r--r--engines/titanic/core/multi_drop_target.cpp43
-rw-r--r--engines/titanic/core/multi_drop_target.h55
-rw-r--r--engines/titanic/core/saveable_object.cpp44
-rw-r--r--engines/titanic/game/parrot/parrot_lobby_controller.cpp37
-rw-r--r--engines/titanic/game/parrot/parrot_lobby_controller.h50
-rw-r--r--engines/titanic/game/parrot/parrot_lobby_link_updater.cpp37
-rw-r--r--engines/titanic/game/parrot/parrot_lobby_link_updater.h54
-rw-r--r--engines/titanic/game/parrot/parrot_lobby_object.cpp59
-rw-r--r--engines/titanic/game/parrot/parrot_lobby_object.h57
-rw-r--r--engines/titanic/game/parrot/parrot_lobby_view_object.cpp39
-rw-r--r--engines/titanic/game/parrot/parrot_lobby_view_object.h54
-rw-r--r--engines/titanic/game/parrot/parrot_loser.cpp37
-rw-r--r--engines/titanic/game/parrot/parrot_loser.h50
-rw-r--r--engines/titanic/game/parrot/parrot_nut_bowl_actor.cpp47
-rw-r--r--engines/titanic/game/parrot/parrot_nut_bowl_actor.h54
-rw-r--r--engines/titanic/game/parrot/parrot_nut_eater.cpp45
-rw-r--r--engines/titanic/game/parrot/parrot_nut_eater.h58
-rw-r--r--engines/titanic/game/parrot/parrot_perch_holder.cpp37
-rw-r--r--engines/titanic/game/parrot/parrot_perch_holder.h50
-rw-r--r--engines/titanic/game/parrot/parrot_succubus.cpp49
-rw-r--r--engines/titanic/game/parrot/parrot_succubus.h58
-rw-r--r--engines/titanic/game/parrot/parrot_trigger.cpp39
-rw-r--r--engines/titanic/game/parrot/parrot_trigger.h54
-rw-r--r--engines/titanic/game/port_hole.cpp49
-rw-r--r--engines/titanic/game/port_hole.h55
-rw-r--r--engines/titanic/game/sweet_bowl.cpp37
-rw-r--r--engines/titanic/game/sweet_bowl.h50
-rw-r--r--engines/titanic/module.mk15
-rw-r--r--engines/titanic/titanic.cpp3
31 files changed, 1314 insertions, 4 deletions
diff --git a/engines/titanic/game/drop_target.cpp b/engines/titanic/core/drop_target.cpp
index 34a87e067e..9782967105 100644
--- a/engines/titanic/game/drop_target.cpp
+++ b/engines/titanic/core/drop_target.cpp
@@ -20,7 +20,7 @@
*
*/
-#include "titanic/game/drop_target.h"
+#include "titanic/core/drop_target.h"
namespace Titanic {
diff --git a/engines/titanic/game/drop_target.h b/engines/titanic/core/drop_target.h
index b106623f62..b106623f62 100644
--- a/engines/titanic/game/drop_target.h
+++ b/engines/titanic/core/drop_target.h
diff --git a/engines/titanic/core/multi_drop_target.cpp b/engines/titanic/core/multi_drop_target.cpp
new file mode 100644
index 0000000000..1f6e6cf210
--- /dev/null
+++ b/engines/titanic/core/multi_drop_target.cpp
@@ -0,0 +1,43 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/core/multi_drop_target.h"
+
+namespace Titanic {
+
+void CMultiDropTarget::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string5, indent);
+ file->writeQuotedLine(_string6, indent);
+
+ CDropTarget::save(file, indent);
+}
+
+void CMultiDropTarget::load(SimpleFile *file) {
+ file->readNumber();
+ _string5 = file->readString();
+ _string6 = file->readString();
+
+ CDropTarget::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/core/multi_drop_target.h b/engines/titanic/core/multi_drop_target.h
new file mode 100644
index 0000000000..db6f605062
--- /dev/null
+++ b/engines/titanic/core/multi_drop_target.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_MULTI_DROP_TARGET_H
+#define TITANIC_MULTI_DROP_TARGET_H
+
+#include "titanic/core/drop_target.h"
+
+namespace Titanic {
+
+class CMultiDropTarget : public CDropTarget {
+public:
+ CString _string5;
+ CString _string6;
+public:
+ CMultiDropTarget() : CDropTarget(), _string5("1,2") {}
+
+ /**
+ * Return the class name
+ */
+ virtual const char *getClassName() const { return "CMultiDropTarget"; }
+
+ /**
+ * 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_CLICK_RESPONDER_H */
diff --git a/engines/titanic/core/saveable_object.cpp b/engines/titanic/core/saveable_object.cpp
index 799ee3c766..411f1b4ff9 100644
--- a/engines/titanic/core/saveable_object.cpp
+++ b/engines/titanic/core/saveable_object.cpp
@@ -52,11 +52,13 @@
#include "titanic/core/saveable_object.h"
#include "titanic/core/background.h"
#include "titanic/core/click_responder.h"
+#include "titanic/core/drop_target.h"
#include "titanic/core/file_item.h"
#include "titanic/core/link_item.h"
#include "titanic/core/list.h"
#include "titanic/core/message_target.h"
#include "titanic/core/movie_clip.h"
+#include "titanic/core/multi_drop_target.h"
#include "titanic/core/node_item.h"
#include "titanic/core/project_item.h"
#include "titanic/core/saveable_object.h"
@@ -76,17 +78,28 @@
#include "titanic/game/desk_click_responder.h"
#include "titanic/game/doorbot_home_handler.h"
#include "titanic/game/drawer.h"
-#include "titanic/game/drop_target.h"
#include "titanic/game/hammer_dispensor_button.h"
#include "titanic/game/null_port_hole.h"
#include "titanic/game/pet_position.h"
+#include "titanic/game/port_hole.h"
#include "titanic/game/room_item.h"
#include "titanic/game/service_elevator_door.h"
#include "titanic/game/sgt_state_room.h"
#include "titanic/game/sgt_upper_doors_sound.h"
#include "titanic/game/start_action.h"
#include "titanic/game/sub_glass.h"
+#include "titanic/game/sweet_bowl.h"
#include "titanic/game/television.h"
+#include "titanic/game/parrot/parrot_lobby_controller.h"
+#include "titanic/game/parrot/parrot_lobby_link_updater.h"
+#include "titanic/game/parrot/parrot_lobby_object.h"
+#include "titanic/game/parrot/parrot_lobby_view_object.h"
+#include "titanic/game/parrot/parrot_loser.h"
+#include "titanic/game/parrot/parrot_nut_bowl_actor.h"
+#include "titanic/game/parrot/parrot_nut_eater.h"
+#include "titanic/game/parrot/parrot_perch_holder.h"
+#include "titanic/game/parrot/parrot_succubus.h"
+#include "titanic/game/parrot/parrot_trigger.h"
#include "titanic/gfx/act_button.h"
#include "titanic/gfx/changes_season_button.h"
@@ -187,12 +200,14 @@ DEFFN(CSweets);
DEFFN(CBackground);
DEFFN(CClickResponder);
+DEFFN(CDropTarget);
DEFFN(CFileItem);
DEFFN(CFileListItem);
DEFFN(CLinkItem);
DEFFN(CMessageTarget);
DEFFN(CMovieClip);
DEFFN(CMovieClipList);
+DEFFN(CMultiDropTarget);
DEFFN(CNodeItem);
DEFFN(CProjectItem);
DEFFN(CTurnOnObject);
@@ -210,17 +225,28 @@ DEFFN(CCreditsButton);
DEFFN(CDeadArea);
DEFFN(CDeskClickResponder);
DEFFN(CDoorbotHomeHandler);
-DEFFN(CDropTarget);
DEFFN(CHammerDispensorButton);
DEFFN(CNullPortHole);
DEFFN(CPETPosition);
+DEFFN(CPortHole);
DEFFN(CRoomItem);
DEFFN(CServiceElevatorDoor);
DEFFN(CSGTStateRoom);
DEFFN(CSGTUpperDoorsSound);
DEFFN(CStartAction);
DEFFN(CSUBGlass);
+DEFFN(CSweetBowl);
DEFFN(CTelevision);
+DEFFN(CParrotLobbyController);
+DEFFN(CParrotLobbyLinkUpdater);
+DEFFN(CParrotLobbyObject);
+DEFFN(CParrotLobbyViewObject);
+DEFFN(CParrotLoser);
+DEFFN(CParrotNutBowlActor);
+DEFFN(CParrotNutEater);
+DEFFN(CParrotPerchHolder);
+DEFFN(CParrotSuccUBus);
+DEFFN(CParrotTrigger);
DEFFN(CActButton);
DEFFN(CChangesSeasonButton);
@@ -485,12 +511,14 @@ void CSaveableObject::initClassList() {
ADDFN(CBackground);
ADDFN(CClickResponder);
+ ADDFN(CDropTarget);
ADDFN(CFileItem);
ADDFN(CFileListItem);
ADDFN(CLinkItem);
ADDFN(CMessageTarget);
ADDFN(CMovieClip);
ADDFN(CMovieClipList);
+ ADDFN(CMultiDropTarget);
ADDFN(CNodeItem);
ADDFN(CProjectItem);
ADDFN(CTreeItem);
@@ -512,13 +540,25 @@ void CSaveableObject::initClassList() {
ADDFN(CHammerDispensorButton);
ADDFN(CNullPortHole);
ADDFN(CPETPosition);
+ ADDFN(CPortHole);
ADDFN(CRoomItem);
ADDFN(CServiceElevatorDoor);
ADDFN(CSGTStateRoom);
ADDFN(CSGTUpperDoorsSound);
ADDFN(CStartAction);
ADDFN(CSUBGlass);
+ ADDFN(CSweetBowl);
ADDFN(CTelevision);
+ ADDFN(CParrotLobbyController);
+ ADDFN(CParrotLobbyLinkUpdater);
+ ADDFN(CParrotLobbyObject);
+ ADDFN(CParrotLobbyViewObject);
+ ADDFN(CParrotLoser);
+ ADDFN(CParrotNutBowlActor);
+ ADDFN(CParrotNutEater);
+ ADDFN(CParrotPerchHolder);
+ ADDFN(CParrotSuccUBus);
+ ADDFN(CParrotTrigger);
ADDFN(CActButton);
ADDFN(CChangesSeasonButton);
diff --git a/engines/titanic/game/parrot/parrot_lobby_controller.cpp b/engines/titanic/game/parrot/parrot_lobby_controller.cpp
new file mode 100644
index 0000000000..2376cea25c
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_lobby_controller.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/parrot/parrot_lobby_controller.h"
+
+namespace Titanic {
+
+void CParrotLobbyController::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CParrotLobbyObject::save(file, indent);
+}
+
+void CParrotLobbyController::load(SimpleFile *file) {
+ file->readNumber();
+ CParrotLobbyObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/parrot/parrot_lobby_controller.h b/engines/titanic/game/parrot/parrot_lobby_controller.h
new file mode 100644
index 0000000000..371e31eaa9
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_lobby_controller.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PARROT_LOBBY_CONTROLLER_H
+#define TITANIC_PARROT_LOBBY_CONTROLLER_H
+
+#include "titanic/game/parrot/parrot_lobby_object.h"
+
+namespace Titanic {
+
+class CParrotLobbyController : public CParrotLobbyObject {
+public:
+ /**
+ * Return the class name
+ */
+ virtual const char *getClassName() const { return "CParrotLobbyController"; }
+
+ /**
+ * 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_PARROT_LOBBY_CONTROLLER_H */
diff --git a/engines/titanic/game/parrot/parrot_lobby_link_updater.cpp b/engines/titanic/game/parrot/parrot_lobby_link_updater.cpp
new file mode 100644
index 0000000000..912495dbd8
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_lobby_link_updater.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/parrot/parrot_lobby_link_updater.h"
+
+namespace Titanic {
+
+void CParrotLobbyLinkUpdater::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CParrotLobbyLinkUpdater::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/parrot/parrot_lobby_link_updater.h b/engines/titanic/game/parrot/parrot_lobby_link_updater.h
new file mode 100644
index 0000000000..d0843fe9ec
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_lobby_link_updater.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_PARROT_LOBBY_LINK_UPDATER_H
+#define TITANIC_PARROT_LOBBY_LINK_UPDATER_H
+
+#include "titanic/game/parrot/parrot_lobby_object.h"
+
+namespace Titanic {
+
+class CParrotLobbyLinkUpdater : public CParrotLobbyObject {
+public:
+ int _fieldBC;
+public:
+ CParrotLobbyLinkUpdater() : CParrotLobbyObject(), _fieldBC(1) {}
+
+ /**
+ * Return the class name
+ */
+ virtual const char *getClassName() const { return "CParrotLobbyLinkUpdater"; }
+
+ /**
+ * 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_PARROT_LOBBY_LINK_UPDATER_H */
diff --git a/engines/titanic/game/parrot/parrot_lobby_object.cpp b/engines/titanic/game/parrot/parrot_lobby_object.cpp
new file mode 100644
index 0000000000..137f3e2ff9
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_lobby_object.cpp
@@ -0,0 +1,59 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/parrot/parrot_lobby_object.h"
+
+namespace Titanic {
+
+int CParrotLobbyObject::_v1;
+int CParrotLobbyObject::_v2;
+int CParrotLobbyObject::_v3;
+int CParrotLobbyObject::_v4;
+
+void CParrotLobbyObject::init() {
+ _v1 = 1;
+ _v2 = 1;
+ _v3 = 1;
+ _v4 = 7;
+}
+
+void CParrotLobbyObject::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_v1, indent);
+ file->writeNumberLine(_v2, indent);
+ file->writeNumberLine(_v3, indent);
+ file->writeNumberLine(_v4, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CParrotLobbyObject::load(SimpleFile *file) {
+ file->readNumber();
+ _v1 = file->readNumber();
+ _v2 = file->readNumber();
+ _v3 = file->readNumber();
+ _v4 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/parrot/parrot_lobby_object.h b/engines/titanic/game/parrot/parrot_lobby_object.h
new file mode 100644
index 0000000000..85f2c3bc77
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_lobby_object.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_PARROT_LOBBY_OBJECT_H
+#define TITANIC_PARROT_LOBBY_OBJECT_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CParrotLobbyObject : public CGameObject {
+public:
+ static int _v1;
+ static int _v2;
+ static int _v3;
+ static int _v4;
+
+ static void init();
+public:
+ /**
+ * Return the class name
+ */
+ virtual const char *getClassName() const { return "CParrotLobbyObject"; }
+
+ /**
+ * 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_PARROT_LOBBY_OBJECT_H */
diff --git a/engines/titanic/game/parrot/parrot_lobby_view_object.cpp b/engines/titanic/game/parrot/parrot_lobby_view_object.cpp
new file mode 100644
index 0000000000..740eac83de
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_lobby_view_object.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/parrot/parrot_lobby_view_object.h"
+
+namespace Titanic {
+
+void CParrotLobbyViewObject::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ CParrotLobbyObject::save(file, indent);
+}
+
+void CParrotLobbyViewObject::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ CParrotLobbyObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/parrot/parrot_lobby_view_object.h b/engines/titanic/game/parrot/parrot_lobby_view_object.h
new file mode 100644
index 0000000000..00f7bbc72d
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_lobby_view_object.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_PARROT_LOBBY_VIEW_OBJECT_H
+#define TITANIC_PARROT_LOBBY_VIEW_OBJECT_H
+
+#include "titanic/game/parrot/parrot_lobby_object.h"
+
+namespace Titanic {
+
+class CParrotLobbyViewObject : public CParrotLobbyObject {
+public:
+ int _fieldBC;
+public:
+ CParrotLobbyViewObject() : CParrotLobbyObject(), _fieldBC(1) {}
+
+ /**
+ * Return the class name
+ */
+ virtual const char *getClassName() const { return "CParrotLobbyViewObject"; }
+
+ /**
+ * 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_PARROT_LOBBY_VIEW_OBJECT_H */
diff --git a/engines/titanic/game/parrot/parrot_loser.cpp b/engines/titanic/game/parrot/parrot_loser.cpp
new file mode 100644
index 0000000000..e82506e137
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_loser.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/parrot/parrot_loser.h"
+
+namespace Titanic {
+
+void CParrotLoser::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CParrotLoser::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/parrot/parrot_loser.h b/engines/titanic/game/parrot/parrot_loser.h
new file mode 100644
index 0000000000..dac253e189
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_loser.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PARROT_LOSER_H
+#define TITANIC_PARROT_LOSER_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CParrotLoser : public CGameObject {
+public:
+ /**
+ * Return the class name
+ */
+ virtual const char *getClassName() const { return "CParrotLoser"; }
+
+ /**
+ * 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_PARROT_LOSER_H */
diff --git a/engines/titanic/game/parrot/parrot_nut_bowl_actor.cpp b/engines/titanic/game/parrot/parrot_nut_bowl_actor.cpp
new file mode 100644
index 0000000000..0917319da0
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_nut_bowl_actor.cpp
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/parrot/parrot_nut_bowl_actor.h"
+
+namespace Titanic {
+
+CParrotNutBowlActor::CParrotNutBowlActor() : CGameObject(),
+ _value1(0), _value2(0) {
+}
+
+void CParrotNutBowlActor::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value1, indent);
+ file->writeNumberLine(_value2, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CParrotNutBowlActor::load(SimpleFile *file) {
+ file->readNumber();
+ _value1 = file->readNumber();
+ _value2 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/parrot/parrot_nut_bowl_actor.h b/engines/titanic/game/parrot/parrot_nut_bowl_actor.h
new file mode 100644
index 0000000000..623918c85b
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_nut_bowl_actor.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_PARROT_NUT_BOWL_ACTOR_H
+#define TITANIC_PARROT_NUT_BOWL_ACTOR_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CParrotNutBowlActor : public CGameObject {
+public:
+ int _value1, _value2;
+public:
+ CParrotNutBowlActor();
+
+ /**
+ * Return the class name
+ */
+ virtual const char *getClassName() const { return "CParrotNutBowlActor"; }
+
+ /**
+ * 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_PARROT_NUT_BOWL_ACTOR_H */
diff --git a/engines/titanic/game/parrot/parrot_nut_eater.cpp b/engines/titanic/game/parrot/parrot_nut_eater.cpp
new file mode 100644
index 0000000000..9d58632c89
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_nut_eater.cpp
@@ -0,0 +1,45 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/parrot/parrot_nut_eater.h"
+
+namespace Titanic {
+
+CParrotNutEater::CParrotNutEater() : CGameObject(), _fieldBC(0),
+ _fieldC0(69), _fieldC4(132), _fieldC8(0), _fieldCC(68) {
+}
+
+void CParrotNutEater::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CParrotNutEater::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/parrot/parrot_nut_eater.h b/engines/titanic/game/parrot/parrot_nut_eater.h
new file mode 100644
index 0000000000..55367af818
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_nut_eater.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_PARROT_NUT_EATER_H
+#define TITANIC_PARROT_NUT_EATER_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CParrotNutEater : public CGameObject {
+public:
+ int _fieldBC;
+ int _fieldC0;
+ int _fieldC4;
+ int _fieldC8;
+ int _fieldCC;
+public:
+ CParrotNutEater();
+
+ /**
+ * Return the class name
+ */
+ virtual const char *getClassName() const { return "CParrotNutEater"; }
+
+ /**
+ * 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_CREDITS_H */
diff --git a/engines/titanic/game/parrot/parrot_perch_holder.cpp b/engines/titanic/game/parrot/parrot_perch_holder.cpp
new file mode 100644
index 0000000000..00dfe4a1c9
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_perch_holder.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/parrot/parrot_perch_holder.h"
+
+namespace Titanic {
+
+void CParrotPerchHolder::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CMultiDropTarget::save(file, indent);
+}
+
+void CParrotPerchHolder::load(SimpleFile *file) {
+ file->readNumber();
+ CMultiDropTarget::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/parrot/parrot_perch_holder.h b/engines/titanic/game/parrot/parrot_perch_holder.h
new file mode 100644
index 0000000000..489e124a91
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_perch_holder.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PARROT_PERCH_HOLDER_H
+#define TITANIC_PARROT_PERCH_HOLDER_H
+
+#include "titanic/core/multi_drop_target.h"
+
+namespace Titanic {
+
+class CParrotPerchHolder : public CMultiDropTarget {
+public:
+ /**
+ * Return the class name
+ */
+ virtual const char *getClassName() const { return "CParrotPerchHolder"; }
+
+ /**
+ * 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_PARROT_PERCH_HOLDER_H */
diff --git a/engines/titanic/game/parrot/parrot_succubus.cpp b/engines/titanic/game/parrot/parrot_succubus.cpp
new file mode 100644
index 0000000000..e29c6a6781
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_succubus.cpp
@@ -0,0 +1,49 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/parrot/parrot_succubus.h"
+
+namespace Titanic {
+
+CParrotSuccUBus::CParrotSuccUBus() : CSuccUBus(), _field1DC(0),
+ _field1EC(0), _field1F0(376), _field1F4(393) {
+}
+
+void CParrotSuccUBus::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_field1DC, indent);
+ file->writeQuotedLine(_string3, indent);
+ file->writeNumberLine(_field1EC, indent);
+
+ CSuccUBus::save(file, indent);
+}
+
+void CParrotSuccUBus::load(SimpleFile *file) {
+ file->readNumber();
+ _field1DC = file->readNumber();
+ _string3 = file->readString();
+ _field1EC = file->readNumber();
+
+ CSuccUBus::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/parrot/parrot_succubus.h b/engines/titanic/game/parrot/parrot_succubus.h
new file mode 100644
index 0000000000..aad8a7ffa5
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_succubus.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_PARROT_SUCCUBUS_H
+#define TITANIC_PARROT_SUCCUBUS_H
+
+#include "titanic/npcs/succubus.h"
+
+namespace Titanic {
+
+class CParrotSuccUBus : public CSuccUBus {
+public:
+ int _field1DC;
+ CString _string3;
+ int _field1EC;
+ int _field1F0;
+ int _field1F4;
+public:
+ CParrotSuccUBus();
+
+ /**
+ * Return the class name
+ */
+ virtual const char *getClassName() const { return "CParrotSuccUBus"; }
+
+ /**
+ * 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_PARROT_SUCCUBUS_H */
diff --git a/engines/titanic/game/parrot/parrot_trigger.cpp b/engines/titanic/game/parrot/parrot_trigger.cpp
new file mode 100644
index 0000000000..aeab3c1ea7
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_trigger.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/parrot/parrot_trigger.h"
+
+namespace Titanic {
+
+void CParrotTrigger::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value, indent);
+ CGameObject::save(file, indent);
+}
+
+void CParrotTrigger::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/parrot/parrot_trigger.h b/engines/titanic/game/parrot/parrot_trigger.h
new file mode 100644
index 0000000000..cb0d59c320
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_trigger.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_PARROT_TRIGGER_H
+#define TITANIC_PARROT_TRIGGER_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CParrotTrigger : public CGameObject {
+public:
+ int _value;
+public:
+ CParrotTrigger() : CGameObject(), _value(0x446AB) {}
+
+ /**
+ * Return the class name
+ */
+ virtual const char *getClassName() const { return "CParrotTrigger"; }
+
+ /**
+ * 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_PARROT_TRIGGER_H */
diff --git a/engines/titanic/game/port_hole.cpp b/engines/titanic/game/port_hole.cpp
new file mode 100644
index 0000000000..556473263b
--- /dev/null
+++ b/engines/titanic/game/port_hole.cpp
@@ -0,0 +1,49 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/port_hole.h"
+
+namespace Titanic {
+
+CPortHole::CPortHole() : CGameObject(), _fieldBC(0),
+ _string1("b#47.wav"), _string2("b#46.wav") {
+}
+
+void CPortHole::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeQuotedLine(_string2, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CPortHole::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _string1 = file->readString();
+ _string2 = file->readString();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/port_hole.h b/engines/titanic/game/port_hole.h
new file mode 100644
index 0000000000..60aab51bb6
--- /dev/null
+++ b/engines/titanic/game/port_hole.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_PORT_HOLE_H
+#define TITANIC_PORT_HOLE_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CPortHole : public CGameObject {
+private:
+ int _fieldBC;
+ CString _string1, _string2;
+public:
+ CPortHole();
+
+ /**
+ * Return the class name
+ */
+ virtual const char *getClassName() const { return "CPortHole"; }
+
+ /**
+ * 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_PORT_HOLE_H */
diff --git a/engines/titanic/game/sweet_bowl.cpp b/engines/titanic/game/sweet_bowl.cpp
new file mode 100644
index 0000000000..f6bbb2c89c
--- /dev/null
+++ b/engines/titanic/game/sweet_bowl.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/sweet_bowl.h"
+
+namespace Titanic {
+
+void CSweetBowl::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CSweetBowl::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/sweet_bowl.h b/engines/titanic/game/sweet_bowl.h
new file mode 100644
index 0000000000..8fb20e4041
--- /dev/null
+++ b/engines/titanic/game/sweet_bowl.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SWEET_BOWL_H
+#define TITANIC_SWEET_BOWL_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CSweetBowl : public CGameObject {
+public:
+ /**
+ * Return the class name
+ */
+ virtual const char *getClassName() const { return "CSweetBowl"; }
+
+ /**
+ * 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_CREDITS_H */
diff --git a/engines/titanic/module.mk b/engines/titanic/module.mk
index 9faf157534..f2265bfafb 100644
--- a/engines/titanic/module.mk
+++ b/engines/titanic/module.mk
@@ -46,12 +46,14 @@ MODULE_OBJS := \
core/background.o \
core/click_responder.o \
core/dont_save_file_item.o \
+ core/drop_target.o \
core/file_item.o \
core/game_object.o \
core/link_item.o \
core/list.o \
core/message_target.o \
core/movie_clip.o \
+ core/multi_drop_target.o \
core/named_item.o \
core/node_item.o \
core/pet_control.o \
@@ -73,9 +75,9 @@ MODULE_OBJS := \
game/desk_click_responder.o \
game/doorbot_home_handler.o \
game/drawer.o \
- game/drop_target.o \
game/hammer_dispensor_button.o \
game/pet_position.o \
+ game/port_hole.o \
game/null_port_hole.o \
game/room_item.o \
game/service_elevator_door.o \
@@ -83,7 +85,18 @@ MODULE_OBJS := \
game/sgt_upper_doors_sound.o \
game/start_action.o \
game/sub_glass.o \
+ game/sweet_bowl.o \
game/television.o \
+ game/parrot/parrot_lobby_controller.o \
+ game/parrot/parrot_lobby_link_updater.o \
+ game/parrot/parrot_lobby_object.o \
+ game/parrot/parrot_lobby_view_object.o \
+ game/parrot/parrot_loser.o \
+ game/parrot/parrot_nut_bowl_actor.o \
+ game/parrot/parrot_nut_eater.o \
+ game/parrot/parrot_perch_holder.o \
+ game/parrot/parrot_succubus.o \
+ game/parrot/parrot_trigger.o \
gfx/act_button.o \
gfx/changes_season_button.o \
gfx/chev_left_off.o \
diff --git a/engines/titanic/titanic.cpp b/engines/titanic/titanic.cpp
index 47b7c1336a..9deb5e6e7a 100644
--- a/engines/titanic/titanic.cpp
+++ b/engines/titanic/titanic.cpp
@@ -29,6 +29,7 @@
#include "graphics/thumbnail.h"
#include "titanic/titanic.h"
#include "titanic/core/saveable_object.h"
+#include "titanic/game/parrot/parrot_lobby_object.h"
namespace Titanic {
@@ -52,6 +53,8 @@ void TitanicEngine::initialize() {
DebugMan.addDebugChannel(kDebugSound, "sound", "Sound and Music handling");
CSaveableObject::initClassList();
+ CParrotLobbyObject::init();
+
_screenManager = new OSScreenManager(this);
_window = new CMainGameWindow(this);
_window->applicationStarting();