aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2016-12-21 07:38:54 -0500
committerPaul Gilbert2016-12-21 07:38:54 -0500
commit04952b6645f3f5d454c54c493a61eaccb76afa80 (patch)
treec6b083012de98da0edf31b495f2580edf7fca576
parentcab134f1e9eadefd785cbaf5f290569c038eda0c (diff)
downloadscummvm-rg350-04952b6645f3f5d454c54c493a61eaccb76afa80.tar.gz
scummvm-rg350-04952b6645f3f5d454c54c493a61eaccb76afa80.tar.bz2
scummvm-rg350-04952b6645f3f5d454c54c493a61eaccb76afa80.zip
TITANIC: Remove parrot from inventory when it escapes
-rw-r--r--engines/titanic/carry/carry_parrot.cpp23
-rw-r--r--engines/titanic/carry/carry_parrot.h2
2 files changed, 13 insertions, 12 deletions
diff --git a/engines/titanic/carry/carry_parrot.cpp b/engines/titanic/carry/carry_parrot.cpp
index cbc8028606..70b191ba7c 100644
--- a/engines/titanic/carry/carry_parrot.cpp
+++ b/engines/titanic/carry/carry_parrot.cpp
@@ -42,13 +42,13 @@ BEGIN_MESSAGE_MAP(CCarryParrot, CCarry)
ON_MESSAGE(ActMsg)
END_MESSAGE_MAP()
-CCarryParrot::CCarryParrot() : CCarry(), _string6("PerchedParrot"),
+CCarryParrot::CCarryParrot() : CCarry(), _parrotName("PerchedParrot"),
_timerId(0), _freeCounter(0), _feathersFlag(false) {
}
void CCarryParrot::save(SimpleFile *file, int indent) {
file->writeNumberLine(1, indent);
- file->writeQuotedLine(_string6, indent);
+ file->writeQuotedLine(_parrotName, indent);
file->writeNumberLine(_timerId, indent);
file->writeNumberLine(_freeCounter, indent);
file->writeNumberLine(_feathersFlag, indent);
@@ -58,7 +58,7 @@ void CCarryParrot::save(SimpleFile *file, int indent) {
void CCarryParrot::load(SimpleFile *file) {
file->readNumber();
- _string6 = file->readString();
+ _parrotName = file->readString();
_timerId = file->readNumber();
_freeCounter = file->readNumber();
_feathersFlag = file->readNumber();
@@ -164,7 +164,7 @@ bool CCarryParrot::PassOnDragStartMsg(CPassOnDragStartMsg *msg) {
return CCarry::PassOnDragStartMsg(msg);
}
- CTrueTalkNPC *npc = dynamic_cast<CTrueTalkNPC *>(getRoot()->findByName(_string6));
+ CTrueTalkNPC *npc = dynamic_cast<CTrueTalkNPC *>(getRoot()->findByName(_parrotName));
if (npc)
startTalking(npc, 0x446BF);
@@ -195,7 +195,7 @@ bool CCarryParrot::UseWithCharMsg(CUseWithCharMsg *msg) {
bool CCarryParrot::ActMsg(CActMsg *msg) {
if (msg->_action == "FreeParrot" && (CParrot::_v4 == 4 || CParrot::_v4 == 1)) {
- CTrueTalkNPC *npc = dynamic_cast<CTrueTalkNPC *>(getRoot()->findByName(_string6));
+ CTrueTalkNPC *npc = dynamic_cast<CTrueTalkNPC *>(getRoot()->findByName(_parrotName));
if (npc)
startTalking(npc, 0x446BF);
@@ -203,9 +203,6 @@ bool CCarryParrot::ActMsg(CActMsg *msg) {
_fieldE0 = 0;
if (CParrot::_v4 == 4) {
- CActMsg actMsg("Shut");
- actMsg.execute("ParrotCage");
- } else {
playSound("z#475.wav");
if (!_feathersFlag) {
@@ -218,13 +215,17 @@ bool CCarryParrot::ActMsg(CActMsg *msg) {
_feathersFlag = true;
}
- getPetControl()->removeFromInventory(this);
- getPetControl()->setAreaChangeType(1);
+ CPetControl *pet = getPetControl();
+ pet->removeFromInventory(this);
+ pet->setAreaChangeType(1);
moveUnder(getRoom());
+ } else {
+ CActMsg actMsg("Shut");
+ actMsg.execute("ParrotCage");
}
CParrot::_v4 = 2;
- stopTimer(_timerId);
+ stopAnimTimer(_timerId);
_timerId = 0;
}
diff --git a/engines/titanic/carry/carry_parrot.h b/engines/titanic/carry/carry_parrot.h
index c42475e5f0..e165482edc 100644
--- a/engines/titanic/carry/carry_parrot.h
+++ b/engines/titanic/carry/carry_parrot.h
@@ -42,7 +42,7 @@ class CCarryParrot : public CCarry {
bool UseWithCharMsg(CUseWithCharMsg *msg);
bool ActMsg(CActMsg *msg);
private:
- CString _string6;
+ CString _parrotName;
int _timerId;
int _freeCounter;
bool _feathersFlag;