aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe
diff options
context:
space:
mode:
Diffstat (limited to 'engines/fullpipe')
-rw-r--r--engines/fullpipe/fullpipe.h2
-rw-r--r--engines/fullpipe/scenes.cpp18
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) {