[Scummvm-cvs-logs] scummvm master -> 7f2b69b75c8e352ea06c9571992a00d5ffe7308f
bluegr
bluegr at gmail.com
Fri Dec 25 13:13:01 CET 2015
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
c9b103b2db LAB: Use friendlier names for lists
9239f4d774 LAB: Use the MessageClass enum in the IntuiMessage struct
7f2b69b75c LAB: Rename fromCrumbs() to processEvent() and simplify it a bit
Commit: c9b103b2dbed11947cebaebaf8ff93348d034b55
https://github.com/scummvm/scummvm/commit/c9b103b2dbed11947cebaebaf8ff93348d034b55
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2015-12-25T14:12:05+02:00
Commit Message:
LAB: Use friendlier names for lists
Changed paths:
engines/lab/console.cpp
engines/lab/lab.h
engines/lab/processroom.cpp
engines/lab/processroom.h
engines/lab/resource.cpp
engines/lab/resource.h
diff --git a/engines/lab/console.cpp b/engines/lab/console.cpp
index 31b52da..12eafd3 100644
--- a/engines/lab/console.cpp
+++ b/engines/lab/console.cpp
@@ -86,7 +86,7 @@ bool Console::Cmd_DumpSceneResources(int argc, const char **argv) {
debugPrintf(" (from %s to %s)", directions[rule->_param1], directions[rule->_param2]);
debugPrintf("\n");
- Common::List<Action>::iterator action;
+ ActionList::iterator action;
for (action = rule->_actionList.begin(); action != rule->_actionList.end(); ++action) {
debugPrintf(" - %s ('%s', %d, %d, %d)\n", actionTypes[action->_actionType], action->_messages[0].c_str(), action->_param1, action->_param2, action->_param3);
}
@@ -110,7 +110,7 @@ bool Console::Cmd_FindAction(int argc, const char **argv) {
_vm->_resource->readViews(i);
for (RuleList::iterator rule = _vm->_rooms[i]._rules.begin(); rule != _vm->_rooms[i]._rules.end(); ++rule) {
- Common::List<Action>::iterator action;
+ ActionList::iterator action;
for (action = rule->_actionList.begin(); action != rule->_actionList.end(); ++action) {
if (action->_actionType == actionId &&
(action->_param1 == param1 || param1 == -1) &&
diff --git a/engines/lab/lab.h b/engines/lab/lab.h
index 0a2e407..1f53f23 100644
--- a/engines/lab/lab.h
+++ b/engines/lab/lab.h
@@ -89,6 +89,9 @@ struct CrumbData {
typedef CloseData *CloseDataPtr;
typedef Common::List<Rule> RuleList;
+typedef Common::List<Action> ActionList;
+typedef Common::List<CloseData> CloseDataList;
+typedef Common::List<ViewData> ViewDataList;
enum Direction {
kDirectionNorth,
@@ -230,7 +233,7 @@ private:
/**
* Processes the action list.
*/
- void doActions(const Common::List<Action> &actionList, CloseDataPtr *closePtrList);
+ void doActions(const ActionList &actionList, CloseDataPtr *closePtrList);
/**
* Goes through the rules if an action is taken.
@@ -350,7 +353,7 @@ private:
* some of the closeups have the same hit boxes, then this returns the first
* occurrence of the object with the same hit box.
*/
- CloseDataPtr findClosePtrMatch(CloseDataPtr closePtr, Common::List<CloseData> &list);
+ CloseDataPtr findClosePtrMatch(CloseDataPtr closePtr, CloseDataList &list);
/**
* Checks if a floor has been visited.
diff --git a/engines/lab/processroom.cpp b/engines/lab/processroom.cpp
index 1a9e7a8..4d42f96 100644
--- a/engines/lab/processroom.cpp
+++ b/engines/lab/processroom.cpp
@@ -56,9 +56,8 @@ ViewData *LabEngine::getViewData(uint16 roomNum, uint16 direction) {
if (_rooms[roomNum]._roomMsg.empty())
_resource->readViews(roomNum);
- Common::List<ViewData> &views = _rooms[roomNum]._view[direction];
-
- Common::List<ViewData>::iterator view;
+ ViewDataList &views = _rooms[roomNum]._view[direction];
+ ViewDataList::iterator view;
for (view = views.begin(); view != views.end(); ++view) {
if (checkConditions(view->_condition))
@@ -69,13 +68,14 @@ ViewData *LabEngine::getViewData(uint16 roomNum, uint16 direction) {
}
CloseData *LabEngine::getObject(Common::Point pos, CloseDataPtr closePtr) {
- Common::List<CloseData> *list;
+ CloseDataList *list;
if (!closePtr)
list = &(getViewData(_roomNum, _direction)->_closeUps);
else
list = &(closePtr->_subCloseUps);
- Common::List<CloseData>::iterator wrkClosePtr;
+ CloseDataList::iterator wrkClosePtr;
+
for (wrkClosePtr = list->begin(); wrkClosePtr != list->end(); ++wrkClosePtr) {
Common::Rect objRect;
objRect = _utils->rectScale(wrkClosePtr->_x1, wrkClosePtr->_y1, wrkClosePtr->_x2, wrkClosePtr->_y2);
@@ -86,8 +86,8 @@ CloseData *LabEngine::getObject(Common::Point pos, CloseDataPtr closePtr) {
return nullptr;
}
-CloseDataPtr LabEngine::findClosePtrMatch(CloseDataPtr closePtr, Common::List<CloseData> &list) {
- Common::List<CloseData>::iterator i;
+CloseDataPtr LabEngine::findClosePtrMatch(CloseDataPtr closePtr, CloseDataList &list) {
+ CloseDataList::iterator i;
for (i = list.begin(); i != list.end(); ++i) {
if ((closePtr->_x1 == i->_x1) && (closePtr->_x2 == i->_x2) &&
@@ -95,8 +95,7 @@ CloseDataPtr LabEngine::findClosePtrMatch(CloseDataPtr closePtr, Common::List<Cl
(closePtr->_depth == i->_depth))
return &(*i);
- CloseDataPtr resClosePtr;
- resClosePtr = findClosePtrMatch(closePtr, i->_subCloseUps);
+ CloseDataPtr resClosePtr = findClosePtrMatch(closePtr, i->_subCloseUps);
if (resClosePtr)
return resClosePtr;
@@ -173,15 +172,14 @@ uint16 LabEngine::processArrow(uint16 curDirection, uint16 arrow) {
}
void LabEngine::setCurrentClose(Common::Point pos, CloseDataPtr *closePtrList, bool useAbsoluteCoords, bool next) {
-
- Common::List<CloseData> *list;
+ CloseDataList *list;
if (!*closePtrList)
list = &(getViewData(_roomNum, _direction)->_closeUps);
else
list = &((*closePtrList)->_subCloseUps);
- Common::List<CloseData>::iterator closePtr;
+ CloseDataList::iterator closePtr;
for (closePtr = list->begin(); closePtr != list->end(); ++closePtr) {
Common::Rect target;
if (!useAbsoluteCoords)
@@ -212,7 +210,7 @@ void LabEngine::setCurrentClose(Common::Point pos, CloseDataPtr *closePtrList, b
}
bool LabEngine::takeItem(Common::Point pos, CloseDataPtr *closePtrList) {
- Common::List<CloseData> *list;
+ CloseDataList *list;
if (!*closePtrList) {
list = &(getViewData(_roomNum, _direction)->_closeUps);
} else if ((*closePtrList)->_closeUpType < 0) {
@@ -221,7 +219,7 @@ bool LabEngine::takeItem(Common::Point pos, CloseDataPtr *closePtrList) {
} else
list = &((*closePtrList)->_subCloseUps);
- Common::List<CloseData>::iterator closePtr;
+ CloseDataList::iterator closePtr;
for (closePtr = list->begin(); closePtr != list->end(); ++closePtr) {
Common::Rect objRect;
objRect = _utils->rectScale(closePtr->_x1, closePtr->_y1, closePtr->_x2, closePtr->_y2);
@@ -234,8 +232,8 @@ bool LabEngine::takeItem(Common::Point pos, CloseDataPtr *closePtrList) {
return false;
}
-void LabEngine::doActions(const Common::List<Action> &actionList, CloseDataPtr *closePtrList) {
- Common::List<Action>::const_iterator action;
+void LabEngine::doActions(const ActionList &actionList, CloseDataPtr *closePtrList) {
+ ActionList::const_iterator action;
for (action = actionList.begin(); action != actionList.end(); ++action) {
updateMusicAndEvents();
@@ -267,7 +265,6 @@ void LabEngine::doActions(const Common::List<Action> &actionList, CloseDataPtr *
if (!action->_messages[0].empty())
// Puts a file into memory
_graphics->loadPict(action->_messages[0]);
-
break;
case kActionLoadBitmap:
diff --git a/engines/lab/processroom.h b/engines/lab/processroom.h
index 5051588..d865758 100644
--- a/engines/lab/processroom.h
+++ b/engines/lab/processroom.h
@@ -143,13 +143,13 @@ struct CloseData {
uint16 _depth; // Level of the closeup.
Common::String _graphicName;
Common::String _message;
- Common::List<CloseData> _subCloseUps;
+ CloseDataList _subCloseUps;
};
struct ViewData {
Common::Array<int16> _condition;
Common::String _graphicName;
- Common::List<CloseData> _closeUps;
+ CloseDataList _closeUps;
};
struct Action {
@@ -165,13 +165,13 @@ struct Rule {
int16 _param1;
int16 _param2;
Common::Array<int16> _condition;
- Common::List<Action> _actionList;
+ ActionList _actionList;
};
struct RoomData {
uint16 _doors[4];
byte _transitionType;
- Common::List<ViewData> _view[4];
+ ViewDataList _view[4];
RuleList _rules;
Common::String _roomMsg;
};
diff --git a/engines/lab/resource.cpp b/engines/lab/resource.cpp
index 985a71b..17535a7 100644
--- a/engines/lab/resource.cpp
+++ b/engines/lab/resource.cpp
@@ -253,7 +253,7 @@ void Resource::readRule(Common::File *file, RuleList &rules) {
}
}
-void Resource::readAction(Common::File *file, Common::List<Action>& list) {
+void Resource::readAction(Common::File *file, ActionList &list) {
list.clear();
while (file->readByte() == 1) {
@@ -275,7 +275,7 @@ void Resource::readAction(Common::File *file, Common::List<Action>& list) {
}
}
-void Resource::readCloseUps(uint16 depth, Common::File *file, Common::List<CloseData> &list) {
+void Resource::readCloseUps(uint16 depth, Common::File *file, CloseDataList &list) {
list.clear();
while (file->readByte() != '\0') {
list.push_back(CloseData());
@@ -293,7 +293,7 @@ void Resource::readCloseUps(uint16 depth, Common::File *file, Common::List<Close
}
}
-void Resource::readView(Common::File *file, Common::List<ViewData> &list) {
+void Resource::readView(Common::File *file, ViewDataList &list) {
list.clear();
while (file->readByte() == 1) {
list.push_back(ViewData());
diff --git a/engines/lab/resource.h b/engines/lab/resource.h
index 7a7cfb4..307eac3 100644
--- a/engines/lab/resource.h
+++ b/engines/lab/resource.h
@@ -110,9 +110,9 @@ private:
Common::String readString(Common::File *file);
Common::Array<int16> readConditions(Common::File *file);
void readRule(Common::File *file, RuleList &rules);
- void readAction(Common::File *file, Common::List<Action> &action);
- void readCloseUps(uint16 depth, Common::File *file, Common::List<CloseData> &close);
- void readView(Common::File *file, Common::List<ViewData> &view);
+ void readAction(Common::File *file, ActionList &action);
+ void readCloseUps(uint16 depth, Common::File *file, CloseDataList &close);
+ void readView(Common::File *file, ViewDataList &view);
void readStaticText();
Common::String translateFileName(const Common::String filename);
Commit: 9239f4d7741c60173ebc372f8605afbf08233545
https://github.com/scummvm/scummvm/commit/9239f4d7741c60173ebc372f8605afbf08233545
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2015-12-25T14:12:05+02:00
Commit Message:
LAB: Use the MessageClass enum in the IntuiMessage struct
Changed paths:
engines/lab/eventman.h
diff --git a/engines/lab/eventman.h b/engines/lab/eventman.h
index ec8f824..a6b6469 100644
--- a/engines/lab/eventman.h
+++ b/engines/lab/eventman.h
@@ -38,7 +38,7 @@ namespace Lab {
class LabEngine;
class Image;
-enum MessageClasses {
+enum MessageClass {
kMessageLeftClick,
kMessageRightClick,
kMessageButtonUp,
@@ -47,13 +47,12 @@ enum MessageClasses {
};
struct IntuiMessage {
- uint32 _msgClass;
+ MessageClass _msgClass;
uint16 _code; // KeyCode or Button Id
uint16 _qualifier;
Common::Point _mouse;
};
-
struct Button {
uint16 _x, _y, _buttonId;
Common::KeyCode _keyEquiv; // the key which activates this button
Commit: 7f2b69b75c8e352ea06c9571992a00d5ffe7308f
https://github.com/scummvm/scummvm/commit/7f2b69b75c8e352ea06c9571992a00d5ffe7308f
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2015-12-25T14:12:06+02:00
Commit Message:
LAB: Rename fromCrumbs() to processEvent() and simplify it a bit
Changed paths:
engines/lab/engine.cpp
engines/lab/eventman.h
engines/lab/lab.h
diff --git a/engines/lab/engine.cpp b/engines/lab/engine.cpp
index c46910c..91388ea 100644
--- a/engines/lab/engine.cpp
+++ b/engines/lab/engine.cpp
@@ -498,7 +498,7 @@ void LabEngine::mainGameLoop() {
gotMessage = true;
mayShowCrumbIndicator();
_graphics->screenUpdate();
- if (!fromCrumbs(kMessageButtonUp, code, 0, _event->updateAndGetMousePos(), curInv, curMsg, forceDraw, code, actionMode))
+ if (!processEvent(kMessageButtonUp, code, 0, _event->updateAndGetMousePos(), curInv, curMsg, forceDraw, code, actionMode))
break;
}
}
@@ -508,7 +508,7 @@ void LabEngine::mainGameLoop() {
} else {
gotMessage = true;
_followingCrumbs = false;
- if (!fromCrumbs(curMsg->_msgClass, curMsg->_code, curMsg->_qualifier, curMsg->_mouse, curInv, curMsg, forceDraw, curMsg->_code, actionMode))
+ if (!processEvent(curMsg->_msgClass, curMsg->_code, curMsg->_qualifier, curMsg->_mouse, curInv, curMsg, forceDraw, curMsg->_code, actionMode))
break;
}
}
@@ -533,59 +533,46 @@ void LabEngine::showLab2Teaser() {
}
}
-bool LabEngine::fromCrumbs(uint32 tmpClass, uint16 code, uint16 qualifier, Common::Point tmpPos,
+bool LabEngine::processEvent(MessageClass tmpClass, uint16 code, uint16 qualifier, Common::Point tmpPos,
uint16 &curInv, IntuiMessage *curMsg, bool &forceDraw, uint16 buttonId, uint16 &actionMode) {
- uint32 msgClass = tmpClass;
+ MessageClass msgClass = tmpClass;
Common::Point curPos = tmpPos;
-
uint16 oldDirection = 0;
uint16 lastInv = kItemMap;
- bool leftButtonClick = false;
- bool rightButtonClick = false;
+
+ if (code == Common::KEYCODE_RETURN)
+ msgClass = kMessageLeftClick;
+
+ bool leftButtonClick = (msgClass == kMessageLeftClick);
+ bool rightButtonClick = (msgClass == kMessageRightClick);
_anim->_doBlack = false;
if (shouldQuit())
return false;
- if ((msgClass == kMessageRawKey) && !_graphics->_longWinInFront) {
+ if (msgClass == kMessageRawKey && !_graphics->_longWinInFront) {
if (!processKey(curMsg, msgClass, qualifier, curPos, curInv, forceDraw, code))
return false;
- }
-
- leftButtonClick = (msgClass == kMessageLeftClick);
- rightButtonClick = (msgClass == kMessageRightClick);
-
- if (_graphics->_longWinInFront) {
- if ((msgClass == kMessageRawKey) || (leftButtonClick || rightButtonClick)) {
- _graphics->_longWinInFront = false;
- _graphics->drawPanel();
- drawRoomMessage(curInv, _closeDataPtr);
- _graphics->screenUpdate();
- }
- } else if ((msgClass == kMessageButtonUp) && !_alternate) {
- processMainButton(curInv, lastInv, oldDirection, forceDraw, buttonId, actionMode);
- } else if ((msgClass == kMessageButtonUp) && _alternate) {
- processAltButton(curInv, lastInv, buttonId, actionMode);
+ } else if ((msgClass == kMessageRawKey || leftButtonClick || rightButtonClick) && _graphics->_longWinInFront) {
+ _graphics->_longWinInFront = false;
+ _graphics->drawPanel();
+ drawRoomMessage(curInv, _closeDataPtr);
+ _graphics->screenUpdate();
+ } else if (msgClass == kMessageButtonUp) {
+ if (!_alternate)
+ processMainButton(curInv, lastInv, oldDirection, forceDraw, buttonId, actionMode);
+ else
+ processAltButton(curInv, lastInv, buttonId, actionMode);
} else if (leftButtonClick && _mainDisplay) {
interfaceOff();
_mainDisplay = true;
- if (_closeDataPtr) {
- switch (_closeDataPtr->_closeUpType) {
- case SPECIALLOCK:
- if (_mainDisplay)
- _tilePuzzle->mouseCombination(curPos);
- break;
- case SPECIALBRICK:
- if (_mainDisplay)
- _tilePuzzle->mouseTile(curPos);
- break;
- default:
- performAction(actionMode, curPos, curInv);
- break;
- }
- } else
+ if (_closeDataPtr && _closeDataPtr->_closeUpType == SPECIALLOCK)
+ _tilePuzzle->mouseCombination(curPos);
+ else if (_closeDataPtr && _closeDataPtr->_closeUpType == SPECIALBRICK)
+ _tilePuzzle->mouseTile(curPos);
+ else
performAction(actionMode, curPos, curInv);
mayShowCrumbIndicator();
@@ -610,7 +597,7 @@ bool LabEngine::fromCrumbs(uint32 tmpClass, uint16 code, uint16 qualifier, Commo
mayShowCrumbIndicator();
_graphics->screenUpdate();
- } else if (msgClass == kMessageMoveCursorToCloseup) {
+ } else if (code == Common::KEYCODE_TAB) {
CloseDataPtr tmpClosePtr = _closeDataPtr;
// get next close-up in list after the one pointed to by curPos
@@ -623,13 +610,8 @@ bool LabEngine::fromCrumbs(uint32 tmpClass, uint16 code, uint16 qualifier, Commo
return true;
}
-bool LabEngine::processKey(IntuiMessage *curMsg, uint32 &msgClass, uint16 &qualifier, Common::Point &curPos, uint16 &curInv, bool &forceDraw, uint16 code) {
- if (code == Common::KEYCODE_RETURN) {
- // The return key
- msgClass = kMessageLeftClick;
- qualifier = 0;
- curPos = _event->getMousePos();
- } else if ((getPlatform() == Common::kPlatformWindows) && (code == Common::KEYCODE_b)) {
+bool LabEngine::processKey(IntuiMessage *curMsg, uint32 msgClass, uint16 &qualifier, Common::Point &curPos, uint16 &curInv, bool &forceDraw, uint16 code) {
+ if ((getPlatform() == Common::kPlatformWindows) && (code == Common::KEYCODE_b)) {
// Start bread crumbs
_breadCrumbs[0]._roomNum = 0;
_numCrumbs = 0;
@@ -697,9 +679,7 @@ bool LabEngine::processKey(IntuiMessage *curMsg, uint32 &msgClass, uint16 &quali
forceDraw = true;
interfaceOn();
- } else if (code == Common::KEYCODE_TAB)
- msgClass = kMessageMoveCursorToCloseup;
- else if (code == Common::KEYCODE_ESCAPE)
+ } else if (code == Common::KEYCODE_ESCAPE)
_closeDataPtr = nullptr;
eatMessages();
@@ -734,6 +714,7 @@ void LabEngine::processMainButton(uint16 &curInv, uint16 &lastInv, uint16 &oldDi
drawStaticMessage(kTextTakeWhat + buttonId);
}
break;
+
case kButtonInventory:
eatMessages();
@@ -835,6 +816,7 @@ void LabEngine::processMainButton(uint16 &curInv, uint16 &lastInv, uint16 &oldDi
mayShowCrumbIndicator();
break;
+
case kButtonMap:
doUse(kItemMap);
diff --git a/engines/lab/eventman.h b/engines/lab/eventman.h
index a6b6469..34cd3b0 100644
--- a/engines/lab/eventman.h
+++ b/engines/lab/eventman.h
@@ -38,14 +38,6 @@ namespace Lab {
class LabEngine;
class Image;
-enum MessageClass {
- kMessageLeftClick,
- kMessageRightClick,
- kMessageButtonUp,
- kMessageRawKey,
- kMessageMoveCursorToCloseup
-};
-
struct IntuiMessage {
MessageClass _msgClass;
uint16 _code; // KeyCode or Button Id
diff --git a/engines/lab/lab.h b/engines/lab/lab.h
index 1f53f23..958f159 100644
--- a/engines/lab/lab.h
+++ b/engines/lab/lab.h
@@ -114,6 +114,13 @@ enum MainButton {
kButtonMap
};
+enum MessageClass {
+ kMessageLeftClick,
+ kMessageRightClick,
+ kMessageButtonUp,
+ kMessageRawKey
+};
+
class LabEngine : public Engine {
private:
bool _interfaceOff;
@@ -366,7 +373,7 @@ private:
MainButton followCrumbs();
void freeMapData();
void freeScreens();
- bool fromCrumbs(uint32 tmpClass, uint16 code, uint16 qualifier, Common::Point tmpPos,
+ bool processEvent(MessageClass tmpClass, uint16 code, uint16 qualifier, Common::Point tmpPos,
uint16 &curInv, IntuiMessage *curMsg, bool &forceDraw, uint16 buttonId, uint16 &actionMode);
/**
@@ -469,7 +476,7 @@ private:
* Does the turn page wipe.
*/
void turnPage(bool fromLeft);
- bool processKey(IntuiMessage *curMsg, uint32 &msgClass, uint16 &qualifier, Common::Point &curPos, uint16 &curInv, bool &forceDraw, uint16 code);
+ bool processKey(IntuiMessage *curMsg, uint32 msgClass, uint16 &qualifier, Common::Point &curPos, uint16 &curInv, bool &forceDraw, uint16 code);
void processMainButton(uint16 &curInv, uint16 &lastInv, uint16 &oldDirection, bool &forceDraw, uint16 buttonId, uint16 &actionMode);
void processAltButton(uint16 &curInv, uint16 &lastInv, uint16 buttonId, uint16 &actionMode);
void performAction(uint16 actionMode, Common::Point curPos, uint16 &curInv);
More information about the Scummvm-git-logs
mailing list