diff options
author | Paul Gilbert | 2016-04-14 20:21:40 -0400 |
---|---|---|
committer | Paul Gilbert | 2016-07-10 16:11:08 -0400 |
commit | 7ddd5d1a8b97bda75e4eece9c91ff3286e3c3eca (patch) | |
tree | f226626c6989fec1db1dc2f32f21436b2b853e26 /engines/titanic/carry | |
parent | f77a8a63cde7b40dd6fb4dfc23f11cc654c7e9a5 (diff) | |
download | scummvm-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.cpp | 20 | ||||
-rw-r--r-- | engines/titanic/carry/carry.cpp | 7 | ||||
-rw-r--r-- | engines/titanic/carry/carry.h | 5 |
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(); |