diff options
Diffstat (limited to 'engines/fullpipe')
-rw-r--r-- | engines/fullpipe/fullpipe.h | 2 | ||||
-rw-r--r-- | engines/fullpipe/scenes.cpp | 18 |
2 files changed, 19 insertions, 1 deletions
diff --git a/engines/fullpipe/fullpipe.h b/engines/fullpipe/fullpipe.h index be0c89f76e..eb502cbadf 100644 --- a/engines/fullpipe/fullpipe.h +++ b/engines/fullpipe/fullpipe.h @@ -176,6 +176,8 @@ public: Floaters *_floaters; MGM *_mgm; + Common::Array<Common::Point *> _arcadeKeys; + void initMap(); void updateMapPiece(int mapId, int update); void updateScreen(); diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp index c5578cfacf..ddc53dfc93 100644 --- a/engines/fullpipe/scenes.cpp +++ b/engines/fullpipe/scenes.cpp @@ -708,7 +708,23 @@ int defaultUpdateCursor() { } void FullpipeEngine::initArcadeKeys(const char *varname) { - warning("STUB: FullpipeEngine::initArcadeKeys(\"%s\")", varname); + GameVar *var = getGameLoaderGameVar()->getSubVarByName(varname)->getSubVarByName("KEYPOS"); + + if (!var) + return; + + int cnt = var->getSubVarsCount(); + + for (int i = 0; i < cnt; i++) { + Common::Point *point = new Common::Point; + + GameVar *sub = var->getSubVarByIndex(i); + + point->x = sub->getSubVarAsInt("X"); + point->y = sub->getSubVarAsInt("Y"); + + _arcadeKeys.push_back(point); + } } void FullpipeEngine::processArcade(ExCommand *ex) { |