aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/carry
diff options
context:
space:
mode:
authorPaul Gilbert2016-04-14 20:21:40 -0400
committerPaul Gilbert2016-07-10 16:11:08 -0400
commit7ddd5d1a8b97bda75e4eece9c91ff3286e3c3eca (patch)
treef226626c6989fec1db1dc2f32f21436b2b853e26 /engines/titanic/carry
parentf77a8a63cde7b40dd6fb4dfc23f11cc654c7e9a5 (diff)
downloadscummvm-rg350-7ddd5d1a8b97bda75e4eece9c91ff3286e3c3eca.tar.gz
scummvm-rg350-7ddd5d1a8b97bda75e4eece9c91ff3286e3c3eca.tar.bz2
scummvm-rg350-7ddd5d1a8b97bda75e4eece9c91ff3286e3c3eca.zip
TITANIC: Finished CArm msg handlers, stubs for adding to inventory
Diffstat (limited to 'engines/titanic/carry')
-rw-r--r--engines/titanic/carry/arm.cpp20
-rw-r--r--engines/titanic/carry/carry.cpp7
-rw-r--r--engines/titanic/carry/carry.h5
3 files changed, 30 insertions, 2 deletions
diff --git a/engines/titanic/carry/arm.cpp b/engines/titanic/carry/arm.cpp
index 0098c6f4c6..b6e125aa10 100644
--- a/engines/titanic/carry/arm.cpp
+++ b/engines/titanic/carry/arm.cpp
@@ -158,8 +158,26 @@ bool CArm::MouseDragStartMsg(CMouseDragStartMsg *msg) {
}
bool CArm::MaitreDHappyMsg(CMaitreDHappyMsg *msg) {
+ CGameObject *petItem;
+ if (find(getName(), &petItem, FIND_PET)) {
+ if (!_field158)
+ playSound("z#47.wav", 100, 0, 0);
+ if (_string6 == "Key" || _string6 == "AuditoryCentre") {
+ CGameObject *child = static_cast<CGameObject *>(getFirstChild());
+ if (child) {
+ child->setVisible(true);
+ dropOnPet();
+ }
- // TODO
+ _visibleFrame = _field170;
+ loadFrame(_visibleFrame);
+ _string6 = "None";
+ addToInventory();
+ }
+ }
+
+ _field158 = 1;
+ _fieldE0 = 1;
return true;
}
diff --git a/engines/titanic/carry/carry.cpp b/engines/titanic/carry/carry.cpp
index 9968c523ee..1bb81fb4cb 100644
--- a/engines/titanic/carry/carry.cpp
+++ b/engines/titanic/carry/carry.cpp
@@ -24,6 +24,7 @@
#include "titanic/messages/messages.h"
#include "titanic/npcs/character.h"
#include "titanic/npcs/succubus.h"
+#include "titanic/pet_control/pet_control.h"
namespace Titanic {
@@ -241,4 +242,10 @@ void CCarry::dropOnPet() {
warning("TODO: dropOnPet");
}
+void CCarry::addToInventory() {
+ CPetControl *pet = getPetControl();
+ if (pet)
+ pet->addToInventory(this);
+}
+
} // End of namespace Titanic
diff --git a/engines/titanic/carry/carry.h b/engines/titanic/carry/carry.h
index b14ba05934..9fd7679463 100644
--- a/engines/titanic/carry/carry.h
+++ b/engines/titanic/carry/carry.h
@@ -62,7 +62,10 @@ protected:
bool _enterFrameSet;
int _visibleFrame;
protected:
-
+ /**
+ * Add the item to the PET inventory
+ */
+ void addToInventory();
public:
CLASSDEF
CCarry();