aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/titanic/npcs/bilge_succubus.cpp32
-rw-r--r--engines/titanic/npcs/parrot_succubus.cpp6
-rw-r--r--engines/titanic/npcs/succubus.cpp87
-rw-r--r--engines/titanic/npcs/succubus.h13
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;