LAB: Reduce passing around of pointers to the near-global _closeDataPtr
This commit is contained in:
parent
6daf92cbf4
commit
e3ce65cce8
3 changed files with 26 additions and 26 deletions
|
@ -952,13 +952,13 @@ void LabEngine::performAction(uint16 actionMode, Common::Point curPos, uint16 &c
|
|||
switch (actionMode) {
|
||||
case 0:
|
||||
// Take something.
|
||||
if (doActionRule(curPos, actionMode, _roomNum, &_closeDataPtr))
|
||||
if (doActionRule(curPos, actionMode, _roomNum))
|
||||
_curFileName = _newFileName;
|
||||
else if (takeItem(curPos, &_closeDataPtr))
|
||||
drawStaticMessage(kTextTakeItem);
|
||||
else if (doActionRule(curPos, kRuleActionTakeDef, _roomNum, &_closeDataPtr))
|
||||
else if (doActionRule(curPos, kRuleActionTakeDef, _roomNum))
|
||||
_curFileName = _newFileName;
|
||||
else if (doActionRule(curPos, kRuleActionTake, 0, &_closeDataPtr))
|
||||
else if (doActionRule(curPos, kRuleActionTake, 0))
|
||||
_curFileName = _newFileName;
|
||||
else if (curPos.y < (_utils->vgaScaleY(149) + _utils->svgaCord(2)))
|
||||
drawStaticMessage(kTextNothing);
|
||||
|
@ -969,9 +969,9 @@ void LabEngine::performAction(uint16 actionMode, Common::Point curPos, uint16 &c
|
|||
case 2:
|
||||
case 3:
|
||||
// Manipulate an object, Open up a "door" or Close a "door"
|
||||
if (doActionRule(curPos, actionMode, _roomNum, &_closeDataPtr))
|
||||
if (doActionRule(curPos, actionMode, _roomNum))
|
||||
_curFileName = _newFileName;
|
||||
else if (!doActionRule(curPos, actionMode, 0, &_closeDataPtr)) {
|
||||
else if (!doActionRule(curPos, actionMode, 0)) {
|
||||
if (curPos.y < (_utils->vgaScaleY(149) + _utils->svgaCord(2)))
|
||||
drawStaticMessage(kTextNothing);
|
||||
}
|
||||
|
|
|
@ -245,12 +245,12 @@ private:
|
|||
/**
|
||||
* Goes through the rules if an action is taken.
|
||||
*/
|
||||
bool doActionRule(Common::Point pos, int16 action, int16 roomNum, CloseDataPtr *closePtrList);
|
||||
bool doActionRule(Common::Point pos, int16 action, int16 roomNum);
|
||||
|
||||
/**
|
||||
* Does the work for doActionRule.
|
||||
*/
|
||||
bool doActionRuleSub(int16 action, int16 roomNum, CloseDataPtr closePtr, CloseDataPtr *setCloseList, bool allowDefaults);
|
||||
bool doActionRuleSub(int16 action, int16 roomNum, CloseDataPtr closePtr, bool allowDefaults);
|
||||
|
||||
/**
|
||||
* Checks whether the close up is one of the special case closeups.
|
||||
|
@ -290,7 +290,7 @@ private:
|
|||
/**
|
||||
* Does the work for doActionRule.
|
||||
*/
|
||||
bool doOperateRuleSub(int16 itemNum, int16 roomNum, CloseDataPtr closePtr, CloseDataPtr *setCloseList, bool allowDefaults);
|
||||
bool doOperateRuleSub(int16 itemNum, int16 roomNum, CloseDataPtr closePtr, bool allowDefaults);
|
||||
|
||||
/**
|
||||
* Goes through the rules if the user tries to operate an item on an object.
|
||||
|
|
|
@ -486,7 +486,7 @@ void LabEngine::doActions(const ActionList &actionList, CloseDataPtr *closePtrLi
|
|||
}
|
||||
}
|
||||
|
||||
bool LabEngine::doActionRuleSub(int16 action, int16 roomNum, CloseDataPtr closePtr, CloseDataPtr *setCloseList, bool allowDefaults) {
|
||||
bool LabEngine::doActionRuleSub(int16 action, int16 roomNum, CloseDataPtr closePtr, bool allowDefaults) {
|
||||
action++;
|
||||
|
||||
if (closePtr) {
|
||||
|
@ -504,7 +504,7 @@ bool LabEngine::doActionRuleSub(int16 action, int16 roomNum, CloseDataPtr closeP
|
|||
((rule->_param2 == 0) && allowDefaults)) ||
|
||||
((action == 1) && (rule->_param2 == -closePtr->_closeUpType))) {
|
||||
if (checkConditions(rule->_condition)) {
|
||||
doActions(rule->_actionList, setCloseList);
|
||||
doActions(rule->_actionList, &_closeDataPtr);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -515,27 +515,27 @@ bool LabEngine::doActionRuleSub(int16 action, int16 roomNum, CloseDataPtr closeP
|
|||
return false;
|
||||
}
|
||||
|
||||
bool LabEngine::doActionRule(Common::Point pos, int16 action, int16 roomNum, CloseDataPtr *closePtrList) {
|
||||
bool LabEngine::doActionRule(Common::Point pos, int16 action, int16 roomNum) {
|
||||
if (roomNum)
|
||||
_newFileName = NOFILE;
|
||||
else
|
||||
_newFileName = _curFileName;
|
||||
|
||||
CloseDataPtr curClosePtr = getObject(pos, *closePtrList);
|
||||
CloseDataPtr curClosePtr = getObject(pos, _closeDataPtr);
|
||||
|
||||
if (doActionRuleSub(action, roomNum, curClosePtr, closePtrList, false))
|
||||
if (doActionRuleSub(action, roomNum, curClosePtr, false))
|
||||
return true;
|
||||
else if (doActionRuleSub(action, roomNum, *closePtrList, closePtrList, false))
|
||||
else if (doActionRuleSub(action, roomNum, _closeDataPtr, false))
|
||||
return true;
|
||||
else if (doActionRuleSub(action, roomNum, curClosePtr, closePtrList, true))
|
||||
else if (doActionRuleSub(action, roomNum, curClosePtr, true))
|
||||
return true;
|
||||
else if (doActionRuleSub(action, roomNum, *closePtrList, closePtrList, true))
|
||||
else if (doActionRuleSub(action, roomNum, _closeDataPtr, true))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool LabEngine::doOperateRuleSub(int16 itemNum, int16 roomNum, CloseDataPtr closePtr, CloseDataPtr *setCloseList, bool allowDefaults) {
|
||||
bool LabEngine::doOperateRuleSub(int16 itemNum, int16 roomNum, CloseDataPtr closePtr, bool allowDefaults) {
|
||||
if (closePtr)
|
||||
if (closePtr->_closeUpType > 0) {
|
||||
RuleList *rules = &(_rooms[roomNum]._rules);
|
||||
|
@ -550,7 +550,7 @@ bool LabEngine::doOperateRuleSub(int16 itemNum, int16 roomNum, CloseDataPtr clos
|
|||
((rule->_param1 == itemNum) || ((rule->_param1 == 0) && allowDefaults)) &&
|
||||
((rule->_param2 == closePtr->_closeUpType) || ((rule->_param2 == 0) && allowDefaults))) {
|
||||
if (checkConditions(rule->_condition)) {
|
||||
doActions(rule->_actionList, setCloseList);
|
||||
doActions(rule->_actionList, &_closeDataPtr);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -564,24 +564,24 @@ bool LabEngine::doOperateRule(Common::Point pos, int16 ItemNum) {
|
|||
_newFileName = NOFILE;
|
||||
CloseDataPtr closePtr = getObject(pos, _closeDataPtr);
|
||||
|
||||
if (doOperateRuleSub(ItemNum, _roomNum, closePtr, &_closeDataPtr, false))
|
||||
if (doOperateRuleSub(ItemNum, _roomNum, closePtr, false))
|
||||
return true;
|
||||
else if (doOperateRuleSub(ItemNum, _roomNum, _closeDataPtr, &_closeDataPtr, false))
|
||||
else if (doOperateRuleSub(ItemNum, _roomNum, _closeDataPtr, false))
|
||||
return true;
|
||||
else if (doOperateRuleSub(ItemNum, _roomNum, closePtr, &_closeDataPtr, true))
|
||||
else if (doOperateRuleSub(ItemNum, _roomNum, closePtr, true))
|
||||
return true;
|
||||
else if (doOperateRuleSub(ItemNum, _roomNum, _closeDataPtr, &_closeDataPtr, true))
|
||||
else if (doOperateRuleSub(ItemNum, _roomNum, _closeDataPtr, true))
|
||||
return true;
|
||||
else {
|
||||
_newFileName = _curFileName;
|
||||
|
||||
if (doOperateRuleSub(ItemNum, 0, closePtr, &_closeDataPtr, false))
|
||||
if (doOperateRuleSub(ItemNum, 0, closePtr, false))
|
||||
return true;
|
||||
else if (doOperateRuleSub(ItemNum, 0, _closeDataPtr, &_closeDataPtr, false))
|
||||
else if (doOperateRuleSub(ItemNum, 0, _closeDataPtr, false))
|
||||
return true;
|
||||
else if (doOperateRuleSub(ItemNum, 0, closePtr, &_closeDataPtr, true))
|
||||
else if (doOperateRuleSub(ItemNum, 0, closePtr, true))
|
||||
return true;
|
||||
else if (doOperateRuleSub(ItemNum, 0, _closeDataPtr, &_closeDataPtr, true))
|
||||
else if (doOperateRuleSub(ItemNum, 0, _closeDataPtr, true))
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue