diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/titanic/npcs/bilge_succubus.cpp | 32 | ||||
-rw-r--r-- | engines/titanic/npcs/parrot_succubus.cpp | 6 | ||||
-rw-r--r-- | engines/titanic/npcs/succubus.cpp | 87 | ||||
-rw-r--r-- | engines/titanic/npcs/succubus.h | 13 |
4 files changed, 65 insertions, 73 deletions
diff --git a/engines/titanic/npcs/bilge_succubus.cpp b/engines/titanic/npcs/bilge_succubus.cpp index f9dc5fa258..63d0006885 100644 --- a/engines/titanic/npcs/bilge_succubus.cpp +++ b/engines/titanic/npcs/bilge_succubus.cpp @@ -73,14 +73,14 @@ bool CBilgeSuccUBus::FrameMsg(CFrameMsg *msg) { bool CBilgeSuccUBus::PETReceiveMsg(CPETReceiveMsg *msg) { CPetControl *pet = getPetControl(); - if (_v2) { + if (_style) { if (_receiveStartFrame >= 0) playMovie(_receiveStartFrame, _receiveEndFrame, MOVIE_GAMESTATE); if (_afterReceiveStartFrame >= 0) playMovie(_afterReceiveStartFrame, _afterReceiveEndFrame, MOVIE_GAMESTATE); playSound("z#28.wav", 70); - } else if (!_enabled) { + } else if (!_isOn) { petDisplayMessage(2, SUCCUBUS_IS_IN_STANDBY); return false; } else if (!pet) { @@ -88,7 +88,7 @@ bool CBilgeSuccUBus::PETReceiveMsg(CPETReceiveMsg *msg) { } else { uint roomFlags = pet->getRoomFlags(); CGameObject *mailObject = findMailByFlags( - _v3 && compareRoomNameTo("Titania") ? RFC_TITANIA : _flagsComparison, + _enabled && compareRoomNameTo("Titania") ? RFC_TITANIA : _flagsComparison, roomFlags); if (mailObject) { @@ -105,7 +105,7 @@ bool CBilgeSuccUBus::PETReceiveMsg(CPETReceiveMsg *msg) { bool CBilgeSuccUBus::PETDeliverMsg(CPETDeliverMsg *msg) { CPetControl *pet = getPetControl(); - if (!_enabled || !pet) + if (!_isOn || !pet) return true; uint petRoomFlags = pet->getRoomFlags(); @@ -129,7 +129,7 @@ bool CBilgeSuccUBus::PETDeliverMsg(CPETDeliverMsg *msg) { _isFeathers = mailObject->getName() == "Feathers"; _sendAction = SA_SENT; - if (_v2) { + if (_style) { if (_isFeathers) { startTalking(this, 230022); _sendAction = SA_FEATHERS; @@ -188,7 +188,7 @@ bool CBilgeSuccUBus::MovieEndMsg(CMovieEndMsg *msg) { playSound("z#30.wav"); } else { if (msg->_endFrame == _onEndFrame && pet) { - if (_v2) { + if (_style) { startTalking(this, getRandomNumber(1) ? 230062 : 230063); } else if (!findMail(pet->getRoomFlags())) { switch (getRandomNumber(4)) { @@ -253,7 +253,7 @@ bool CBilgeSuccUBus::MovieEndMsg(CMovieEndMsg *msg) { } else if (msg->_endFrame == _sneezing2EndFrame) { changeView("BilgeRoomWith.Node 1.N", ""); - _v2 = 0; + _style = false; resetMail(); if (_mailP) { @@ -280,11 +280,11 @@ bool CBilgeSuccUBus::MovieEndMsg(CMovieEndMsg *msg) { } bool CBilgeSuccUBus::MouseButtonDownMsg(CMouseButtonDownMsg *msg) { - if (_enabled) { + if (_isOn) { switch (getRandomNumber(4)) { case 0: case 4: { - _enabled = false; + _isOn = false; CTurnOff offMsg; offMsg.execute(this); break; @@ -308,7 +308,7 @@ bool CBilgeSuccUBus::MouseButtonDownMsg(CMouseButtonDownMsg *msg) { } else { CTurnOn onMsg; onMsg.execute(this); - _enabled = true; + _isOn = true; } return true; @@ -320,7 +320,7 @@ bool CBilgeSuccUBus::SubAcceptCCarryMsg(CSubAcceptCCarryMsg *msg) { return false; CCarry *item = dynamic_cast<CCarry *>(msg->_item); - if (!_enabled || !pet || !item) { + if (!_isOn || !pet || !item) { item->petAddToInventory(); return true; } @@ -393,8 +393,8 @@ bool CBilgeSuccUBus::LeaveViewMsg(CLeaveViewMsg *msg) { _soundHandle = -1; } - if (_enabled) { - _enabled = false; + if (_isOn) { + _isOn = false; if (_offStartFrame >= 0) playSound("z#27.wav"); } @@ -408,7 +408,7 @@ bool CBilgeSuccUBus::LeaveViewMsg(CLeaveViewMsg *msg) { bool CBilgeSuccUBus::TrueTalkGetStateValueMsg(CTrueTalkGetStateValueMsg *msg) { if (msg->_stateNum == 1) - msg->_stateVal = _enabled; + msg->_stateVal = _isOn; return true; } @@ -425,7 +425,7 @@ bool CBilgeSuccUBus::TurnOn(CTurnOn *msg) { if (mailExists(pet->getRoomFlags()) && _okStartFrame >= 0) playMovie(_okStartFrame, _okEndFrame, 0); - _enabled = true; + _isOn = true; CSUBTransition transMsg; transMsg.execute(this); @@ -453,7 +453,7 @@ bool CBilgeSuccUBus::TurnOff(CTurnOff *msg) { if (_offStartFrame >= 0) playMovie(_offStartFrame, _offEndFrame, MOVIE_NOTIFY_OBJECT); - _enabled = false; + _isOn = false; performAction(true); CSUBTransition transMsg; diff --git a/engines/titanic/npcs/parrot_succubus.cpp b/engines/titanic/npcs/parrot_succubus.cpp index 2fa5b2f844..8f5a5ebebd 100644 --- a/engines/titanic/npcs/parrot_succubus.cpp +++ b/engines/titanic/npcs/parrot_succubus.cpp @@ -75,8 +75,8 @@ bool CParrotSuccUBus::HoseConnectedMsg(CHoseConnectedMsg *msg) { pumpingMsg.execute(this); _hoseConnected = true; - if (_enabled) { - _enabled = false; + if (_isOn) { + _isOn = false; } else { playMovie(_onStartFrame, _onEndFrame, 0); playSound("z#26.wav"); @@ -97,7 +97,7 @@ bool CParrotSuccUBus::HoseConnectedMsg(CHoseConnectedMsg *msg) { obj->setVisible(true); } - _enabled = true; + _isOn = true; CTurnOff offMsg; offMsg.execute(this); } diff --git a/engines/titanic/npcs/succubus.cpp b/engines/titanic/npcs/succubus.cpp index d9383ce0e7..71272fad03 100644 --- a/engines/titanic/npcs/succubus.cpp +++ b/engines/titanic/npcs/succubus.cpp @@ -46,11 +46,9 @@ BEGIN_MESSAGE_MAP(CSuccUBus, CTrueTalkNPC) ON_MESSAGE(MouseDragStartMsg) END_MESSAGE_MAP() +bool CSuccUBus::_isOn; +bool CSuccUBus::_style; bool CSuccUBus::_enabled; -int CSuccUBus::_v1; -int CSuccUBus::_v2; -int CSuccUBus::_v3; -int CSuccUBus::_v4; CSuccUBus::CSuccUBus() : CTrueTalkNPC() { _initialStartFrame = -1; @@ -74,8 +72,8 @@ CSuccUBus::CSuccUBus() : CTrueTalkNPC() { _trayOutStartFrame = 224; _trayOutEndFrame = 248; _sendAction = SA_SENT; - _field15C = 0; - _string2 = "NULL"; + _signalFlag = false; + _signalTarget = "NULL"; _startFrame1 = 28; _endFrame1 = 40; _rect1 = Rect(82, 284, 148, 339); @@ -103,7 +101,7 @@ CSuccUBus::CSuccUBus() : CTrueTalkNPC() { void CSuccUBus::save(SimpleFile *file, int indent) { file->writeNumberLine(1, indent); - file->writeNumberLine(_enabled, indent); + file->writeNumberLine(_isOn, indent); file->writeNumberLine(_initialStartFrame, indent); file->writeNumberLine(_initialEndFrame, indent); file->writeNumberLine(_endingStartFrame, indent); @@ -120,15 +118,14 @@ void CSuccUBus::save(SimpleFile *file, int indent) { file->writeNumberLine(_okEndFrame, indent); file->writeNumberLine(_flagsComparison, indent); - file->writeNumberLine(_v2, indent); + file->writeNumberLine(_style, indent); file->writeNumberLine(_afterReceiveStartFrame, indent); file->writeNumberLine(_afterReceiveEndFrame, indent); file->writeNumberLine(_trayOutStartFrame, indent); file->writeNumberLine(_trayOutEndFrame, indent); file->writeNumberLine(_sendAction, indent); - file->writeNumberLine(_field15C, indent); - - file->writeQuotedLine(_string2, indent); + file->writeNumberLine(_signalFlag, indent); + file->writeQuotedLine(_signalTarget, indent); file->writeNumberLine(_startFrame1, indent); file->writeNumberLine(_endFrame1, indent); file->writeNumberLine(_rect1.left, indent); @@ -157,7 +154,7 @@ void CSuccUBus::save(SimpleFile *file, int indent) { file->writeNumberLine(_pumpingEndFrame, indent); file->writeNumberLine(_destRoomFlags, indent); - file->writeNumberLine(_v3, indent); + file->writeNumberLine(_enabled, indent); file->writeNumberLine(_inProgress, indent); file->writeNumberLine(_field104, indent); @@ -167,7 +164,7 @@ void CSuccUBus::save(SimpleFile *file, int indent) { void CSuccUBus::load(SimpleFile *file) { file->readNumber(); - _enabled = file->readNumber(); + _isOn = file->readNumber(); _initialStartFrame = file->readNumber(); _initialEndFrame = file->readNumber(); _endingStartFrame = file->readNumber(); @@ -184,15 +181,15 @@ void CSuccUBus::load(SimpleFile *file) { _okEndFrame = file->readNumber(); _flagsComparison = (RoomFlagsComparison)file->readNumber(); - _v2 = file->readNumber(); + _style = file->readNumber(); _afterReceiveStartFrame = file->readNumber(); _afterReceiveEndFrame = file->readNumber(); _trayOutStartFrame = file->readNumber(); _trayOutEndFrame = file->readNumber(); _sendAction = (SuccUBusAction)file->readNumber(); - _field15C = file->readNumber(); + _signalFlag = file->readNumber(); - _string2 = file->readString(); + _signalTarget = file->readString(); _startFrame1 = file->readNumber(); _endFrame1 = file->readNumber(); _rect1.left = file->readNumber(); @@ -221,7 +218,7 @@ void CSuccUBus::load(SimpleFile *file) { _pumpingEndFrame = file->readNumber(); _destRoomFlags = file->readNumber(); - _v3 = file->readNumber(); + _enabled = file->readNumber(); _inProgress = file->readNumber(); _field104 = file->readNumber(); @@ -233,12 +230,12 @@ bool CSuccUBus::MouseButtonDownMsg(CMouseButtonDownMsg *msg) { Rect tempRect = _rect1; tempRect.translate(_bounds.left, _bounds.top); - if (!_enabled || (_field188 && tempRect.contains(msg->_mousePos))) { + if (!_isOn || (_field188 && tempRect.contains(msg->_mousePos))) { CTurnOn onMsg; onMsg.execute(this); - _enabled = true; + _isOn = true; } else if (getRandomNumber(256) < 130) { - _enabled = false; + _isOn = false; CTurnOff offMsg; offMsg.execute(this); } else { @@ -271,7 +268,7 @@ bool CSuccUBus::SubAcceptCCarryMsg(CSubAcceptCCarryMsg *msg) { tempRect.translate(_bounds.left, _bounds.top); uint roomFlags = pet ? pet->getRoomFlags() : 0; - if (!_enabled || !pet || !item || !tempRect.contains(item->getControid())) { + if (!_isOn || !pet || !item || !tempRect.contains(item->getControid())) { item->petAddToInventory(); } else if (mailExists(roomFlags)) { petDisplayMessage(SUCCUBUS_DESCRIPTION); @@ -350,7 +347,7 @@ bool CSuccUBus::LeaveViewMsg(CLeaveViewMsg *msg) { petDisplayMessage(2, BLANK); if (_initialStartFrame >= 0) loadFrame(_initialStartFrame); - else if (!_field15C && _onStartFrame >= 0) + else if (!_signalFlag && _onStartFrame >= 0) loadFrame(_onStartFrame); petClear(); @@ -359,12 +356,12 @@ bool CSuccUBus::LeaveViewMsg(CLeaveViewMsg *msg) { _soundHandle = -1; } - if (_enabled) { - _enabled = false; + if (_isOn) { + _isOn = false; if (_offStartFrame >= 0) playSound("z#27.wav", 100); - if (_field15C) + if (_signalFlag) setVisible(false); } @@ -379,7 +376,7 @@ bool CSuccUBus::PETDeliverMsg(CPETDeliverMsg *msg) { if (_inProgress) return true; - if (!_enabled) { + if (!_isOn) { petDisplayMessage(2, SUCCUBUS_IS_IN_STANDBY); return true; } @@ -468,7 +465,7 @@ bool CSuccUBus::PETReceiveMsg(CPETReceiveMsg *msg) { if (_inProgress || !pet) return true; - if (!_enabled) { + if (!_isOn) { petDisplayMessage(2, SUCCUBUS_IS_IN_STANDBY); return true; } @@ -491,7 +488,7 @@ bool CSuccUBus::PETReceiveMsg(CPETReceiveMsg *msg) { } } else { CGameObject *mailObject = findMailByFlags( - _v3 && compareRoomNameTo("Titania") ? RFC_TITANIA : _flagsComparison, petRoomFlags); + _enabled && compareRoomNameTo("Titania") ? RFC_TITANIA : _flagsComparison, petRoomFlags); if (!mailObject) { // No mail for this SuccUBus if (getRandomNumber(1) == 0) { @@ -528,12 +525,12 @@ bool CSuccUBus::MovieEndMsg(CMovieEndMsg *msg) { if (_endingStartFrame >= 0) playSound("z#30.wav", 100); - if (_field15C) { - _field15C = false; + if (_signalFlag) { + _signalFlag = false; setVisible(false); CSignalObject signalMsg; signalMsg._numValue = 1; - signalMsg.execute(_string2); + signalMsg.execute(_signalTarget); } } @@ -541,7 +538,7 @@ bool CSuccUBus::MovieEndMsg(CMovieEndMsg *msg) { bool flag = false; if (pet && !mailExists(petRoomFlags)) { - CGameObject *mailObject = _v3 && compareRoomNameTo("Titania") ? + CGameObject *mailObject = _enabled && compareRoomNameTo("Titania") ? findMailByFlags(RFC_TITANIA, petRoomFlags) : findMailByFlags(_flagsComparison, petRoomFlags); @@ -573,7 +570,7 @@ bool CSuccUBus::MovieEndMsg(CMovieEndMsg *msg) { stopSound(_soundHandle); _soundHandle = -1; - switch (getRandomNumber(_v2 ? 7 : 5, &_priorRandomVal2)) { + switch (getRandomNumber(_style ? 7 : 5, &_priorRandomVal2)) { case 2: startTalking(this, 230001, findView()); break; @@ -644,15 +641,15 @@ bool CSuccUBus::MovieEndMsg(CMovieEndMsg *msg) { bool CSuccUBus::TrueTalkGetStateValueMsg(CTrueTalkGetStateValueMsg *msg) { if (msg->_stateNum == 1) - msg->_stateVal = _enabled; + msg->_stateVal = _isOn; return true; } bool CSuccUBus::SignalObject(CSignalObject *msg) { if (msg->_numValue == 1) { - _string2 = msg->_strValue; - _field15C = 1; + _signalTarget = msg->_strValue; + _signalFlag = true; setVisible(true); CTurnOn onMsg; onMsg.execute(this); @@ -669,7 +666,7 @@ bool CSuccUBus::TurnOn(CTurnOn *msg) { CPetControl *pet = getPetControl(); if (pet) { - if (!_field15C && _initialStartFrame >= 0) { + if (!_signalFlag && _initialStartFrame >= 0) { playMovie(_initialStartFrame, _initialEndFrame, 0); playSound("z#30.wav", 100); } @@ -684,7 +681,7 @@ bool CSuccUBus::TurnOn(CTurnOn *msg) { // Mail canister present playMovie(_endFrame1, _endFrame1, 0); - _enabled = true; + _isOn = true; CSUBTransition transMsg; transMsg.execute(this); @@ -707,10 +704,10 @@ bool CSuccUBus::TurnOff(CTurnOff *msg) { playMovie(_offStartFrame, _offEndFrame, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); } - if (!_field15C && _endingStartFrame >= 0) + if (!_signalFlag && _endingStartFrame >= 0) playMovie(_endingStartFrame, _endingEndFrame, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); - _enabled = false; + _isOn = false; performAction(true); CSUBTransition transMsg; transMsg.execute(this); @@ -724,7 +721,7 @@ bool CSuccUBus::SUBTransition(CSUBTransition *msg) { if (pet) { uint petRoomFlags = pet->getRoomFlags(); - if (_enabled) { + if (_isOn) { CGameObject *mailObject = findMail(petRoomFlags); if (mailObject) pet->phonographAction("Send"); @@ -742,7 +739,7 @@ bool CSuccUBus::SUBTransition(CSUBTransition *msg) { } bool CSuccUBus::SetChevRoomBits(CSetChevRoomBits *msg) { - if (_enabled) { + if (_isOn) { _destRoomFlags = msg->_roomFlags; playSound("z#98.wav", 100); } @@ -752,9 +749,9 @@ bool CSuccUBus::SetChevRoomBits(CSetChevRoomBits *msg) { bool CSuccUBus::ActMsg(CActMsg *msg) { if (msg->_action == "EnableObject") - _v3 = 1; + _enabled = true; else if (msg->_action == "DisableObject") - _v3 = 0; + _enabled = false; return true; } @@ -764,7 +761,7 @@ bool CSuccUBus::MouseDragStartMsg(CMouseDragStartMsg *msg) { Rect tempRect = _rect1; tempRect.translate(_bounds.left, _bounds.top); - if (_inProgress || !_enabled || !_field188 || !tempRect.contains(msg->_mousePos) + if (_inProgress || !_isOn || !_field188 || !tempRect.contains(msg->_mousePos) || !pet) return true; diff --git a/engines/titanic/npcs/succubus.h b/engines/titanic/npcs/succubus.h index 1627af63f3..483ef54f47 100644 --- a/engines/titanic/npcs/succubus.h +++ b/engines/titanic/npcs/succubus.h @@ -49,11 +49,9 @@ class CSuccUBus : public CTrueTalkNPC { bool ActMsg(CActMsg *msg); bool MouseDragStartMsg(CMouseDragStartMsg *msg); protected: + static bool _isOn; + static bool _style; static bool _enabled; - static int _v1; - static int _v2; - static int _v3; - static int _v4; protected: int _initialStartFrame; int _initialEndFrame; @@ -76,17 +74,14 @@ protected: int _trayOutStartFrame; int _trayOutEndFrame; SuccUBusAction _sendAction; - bool _field15C; - CString _string2; + bool _signalFlag; + CString _signalTarget; int _startFrame1; int _endFrame1; Rect _rect1; int _field184; int _field188; Rect _rect2; - int _field190; - int _field194; - int _field198; bool _sendLost; int _soundHandle; bool _isChicken; |