aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction/staticres.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/parallaction/staticres.cpp')
-rw-r--r--engines/parallaction/staticres.cpp355
1 files changed, 252 insertions, 103 deletions
diff --git a/engines/parallaction/staticres.cpp b/engines/parallaction/staticres.cpp
index e6cbc303b0..046176a933 100644
--- a/engines/parallaction/staticres.cpp
+++ b/engines/parallaction/staticres.cpp
@@ -219,7 +219,7 @@ byte _amigaTopazFont[2600] =
-const char *_zoneFlagNamesRes[] = {
+const char *_zoneFlagNamesRes_ns[] = {
"closed",
"active",
"remove",
@@ -234,7 +234,7 @@ const char *_zoneFlagNamesRes[] = {
"nowalk"
};
-const char *_zoneTypeNamesRes[] = {
+const char *_zoneTypeNamesRes_ns[] = {
"examine",
"door",
"get",
@@ -262,7 +262,7 @@ const char _gameNames[10][20] = {
"GAME10"
};
-const char *_commandsNamesRes[] = {
+const char *_commandsNamesRes_ns[] = {
"set",
"clear",
"start",
@@ -281,7 +281,7 @@ const char *_commandsNamesRes[] = {
"stop"
};
-const char *_instructionNamesRes[] = {
+const char *_instructionNamesRes_ns[] = {
"on",
"off",
"x",
@@ -302,7 +302,7 @@ const char *_instructionNamesRes[] = {
"move"
};
-const char *_callableNamesRes[] = {
+const char *_callableNamesRes_ns[] = {
"Projector",
"HBOff",
"StartIntro",
@@ -330,48 +330,146 @@ const char *_callableNamesRes[] = {
"TestResult"
};
-typedef void (*callable)(void*);
-
-
-void _c_play_boogie(void*);
-void _c_startIntro(void*);
-void _c_endIntro(void*);
-void _c_moveSheet(void*);
-void _c_sketch(void*);
-void _c_shade(void*);
-void _c_score(void*);
-void _c_fade(void*);
-void _c_moveSarc(void*);
-void _c_contaFoglie(void*);
-void _c_zeroFoglie(void*);
-void _c_trasformata(void*);
-void _c_offMouse(void*);
-void _c_onMouse(void*);
-void _c_setMask(void*);
-void _c_endComment(void*);
-void _c_frankenstein(void*);
-void _c_finito(void*);
-void _c_ridux(void*);
-void _c_testResult(void*);
-void _c_null(void*);
-
-void _c_projector(void*);
-void _c_HBOff(void*);
-void _c_offSound(void*);
-void _c_startMusic(void*);
-void _c_closeMusic(void*);
-void _c_HBOn(void*);
-
-callable _callables[25];
-
-
-Credit _credits[] = {
- {"Music and Sound Effects", "MARCO CAPRELLI"},
- {"PC Version", "RICCARDO BALLARINO"},
- {"Project Manager", "LOVRANO CANEPA"},
- {"Production", "BRUNO BOZ"},
- {"Special Thanks to", "LUIGI BENEDICENTI - GILDA and DANILO"},
- {"Copyright 1992 Euclidea s.r.l ITALY", "All rights reserved"}
+const char *_zoneTypeNamesRes_br[] = {
+ "examine",
+ "door",
+ "get",
+ "merge",
+ "taste",
+ "hear",
+ "feel",
+ "speak",
+ "none",
+ "trap",
+ "you",
+ "command",
+ "path",
+ "box"
+};
+
+const char *_zoneFlagNamesRes_br[] = {
+ "closed",
+ "active",
+ "remove",
+ "acting",
+ "locked",
+ "fixed",
+ "noname",
+ "nomasked",
+ "looping",
+ "added",
+ "character",
+ "nowalk",
+ "yourself",
+ "scaled",
+ "selfuse"
+};
+
+const char *_instructionNamesRes_br[] = {
+ "on",
+ "off",
+ "x",
+ "y",
+ "z",
+ "f",
+ "loop",
+ "endloop",
+ "show",
+ "inc",
+ "dec",
+ "set",
+ "put",
+ "call",
+ "wait",
+ "start",
+ "process",
+ "move",
+ "color",
+ "sound",
+ "mask",
+ "print",
+ "text",
+ "mul",
+ "div",
+ "if",
+ "ifeq",
+ "iflt",
+ "ifgt",
+ "endif",
+ "stop"
+};
+
+const char *_commandsNamesRes_br[] = {
+ "set",
+ "clear",
+ "start",
+ "speak",
+ "get"
+ "location",
+ "open",
+ "close",
+ "on",
+ "off",
+ "call",
+ "toggle",
+ "drop",
+ "quit",
+ "move",
+ "stop",
+ "character",
+ "followme",
+ "onmouse",
+ "offmouse",
+ "add",
+ "leave",
+ "inc",
+ "dec",
+ "text",
+ "dummy",
+ "dummy",
+ "let",
+ "music",
+ "fix",
+ "unfix",
+ "zeta",
+ "scroll",
+ "swap",
+ "give",
+ "text",
+ "part",
+ "dummy",
+ "return",
+ "onsave",
+ "offsave"
+};
+
+const char *_callableNamesRes_br[] = {
+ "blufade",
+ "resetpalette",
+ "ferrcycle",
+ "lipsinc",
+ "albycle",
+ "password"
+};
+
+const char *_audioCommandsNamesRes_br[] = {
+ "play",
+ "stop",
+ "pause",
+ "channel_level",
+ "fadein",
+ "fadeout",
+ "volume",
+ " ",
+ "faderate",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ "loop"
};
const char *_dinoName = "dino";
@@ -384,73 +482,124 @@ const char *_minidonnaName = "minidonna";
const char *_minidoughName = "minidough";
const char *_minidrkiName = "minidrki";
+#define CALLABLE_NS(x) &Parallaction_ns::x
+
+const Parallaction_ns::Callable Parallaction_ns::_dosCallables[] = {
+ CALLABLE_NS(_c_play_boogie),
+ CALLABLE_NS(_c_play_boogie),
+ CALLABLE_NS(_c_startIntro),
+ CALLABLE_NS(_c_endIntro),
+ CALLABLE_NS(_c_moveSheet),
+ CALLABLE_NS(_c_sketch),
+ CALLABLE_NS(_c_shade),
+ CALLABLE_NS(_c_score),
+ CALLABLE_NS(_c_null),
+ CALLABLE_NS(_c_null),
+ CALLABLE_NS(_c_null),
+ CALLABLE_NS(_c_fade),
+ CALLABLE_NS(_c_play_boogie),
+ CALLABLE_NS(_c_moveSarc),
+ CALLABLE_NS(_c_contaFoglie),
+ CALLABLE_NS(_c_zeroFoglie),
+ CALLABLE_NS(_c_trasformata),
+ CALLABLE_NS(_c_offMouse),
+ CALLABLE_NS(_c_onMouse),
+ CALLABLE_NS(_c_setMask),
+ CALLABLE_NS(_c_endComment),
+ CALLABLE_NS(_c_frankenstein),
+ CALLABLE_NS(_c_finito),
+ CALLABLE_NS(_c_ridux),
+ CALLABLE_NS(_c_testResult)
+};
+
+const Parallaction_ns::Callable Parallaction_ns::_amigaCallables[] = {
+ CALLABLE_NS(_c_projector),
+ CALLABLE_NS(_c_HBOff),
+ CALLABLE_NS(_c_startIntro),
+ CALLABLE_NS(_c_endIntro),
+ CALLABLE_NS(_c_moveSheet),
+ CALLABLE_NS(_c_sketch),
+ CALLABLE_NS(_c_shade),
+ CALLABLE_NS(_c_score),
+ CALLABLE_NS(_c_offSound),
+ CALLABLE_NS(_c_startMusic),
+ CALLABLE_NS(_c_closeMusic),
+ CALLABLE_NS(_c_fade),
+ CALLABLE_NS(_c_play_boogie),
+ CALLABLE_NS(_c_moveSarc),
+ CALLABLE_NS(_c_contaFoglie),
+ CALLABLE_NS(_c_zeroFoglie),
+ CALLABLE_NS(_c_trasformata),
+ CALLABLE_NS(_c_offMouse),
+ CALLABLE_NS(_c_onMouse),
+ CALLABLE_NS(_c_setMask),
+ CALLABLE_NS(_c_endComment),
+ CALLABLE_NS(_c_frankenstein),
+ CALLABLE_NS(_c_finito),
+ CALLABLE_NS(_c_ridux),
+ CALLABLE_NS(_c_testResult)
+};
+
+#define CALLABLE_BR(x) &Parallaction_br::x
+
+const Parallaction_br::Callable Parallaction_br::_dosCallables[] = {
+ CALLABLE_BR(_c_blufade),
+ CALLABLE_BR(_c_resetpalette),
+ CALLABLE_BR(_c_ferrcycle),
+ CALLABLE_BR(_c_lipsinc),
+ CALLABLE_BR(_c_albcycle),
+ CALLABLE_BR(_c_password)
+};
+
+void Parallaction_ns::initResources() {
-void Parallaction::initResources() {
+ _zoneFlagNamesRes = _zoneFlagNamesRes_ns;
+ _zoneTypeNamesRes = _zoneTypeNamesRes_ns;
+ _commandsNamesRes = _commandsNamesRes_ns;
+ _callableNamesRes = _callableNamesRes_ns;
+ _instructionNamesRes = _instructionNamesRes_ns;
- _callableNames = new Table(ARRAYSIZE(_callableNamesRes), _callableNamesRes);
- _instructionNames = new Table(ARRAYSIZE(_instructionNamesRes), _instructionNamesRes);
- _zoneFlagNames = new Table(ARRAYSIZE(_zoneFlagNamesRes), _zoneFlagNamesRes);
- _zoneTypeNames = new Table(ARRAYSIZE(_zoneTypeNamesRes), _zoneTypeNamesRes);
- _commandsNames = new Table(ARRAYSIZE(_commandsNamesRes), _commandsNamesRes);
+ _callableNames = new Table(ARRAYSIZE(_callableNamesRes_ns), _callableNamesRes_ns);
+ _instructionNames = new Table(ARRAYSIZE(_instructionNamesRes_ns), _instructionNamesRes_ns);
+ _zoneFlagNames = new Table(ARRAYSIZE(_zoneFlagNamesRes_ns), _zoneFlagNamesRes_ns);
+ _zoneTypeNames = new Table(ARRAYSIZE(_zoneTypeNamesRes_ns), _zoneTypeNamesRes_ns);
+ _commandsNames = new Table(ARRAYSIZE(_commandsNamesRes_ns), _commandsNamesRes_ns);
_localFlagNames = new Table(120);
_localFlagNames->addData("visited");
if (getPlatform() == Common::kPlatformPC) {
- _callables[0] = _c_play_boogie;
- _callables[1] = _c_play_boogie;
- _callables[2] = _c_startIntro;
- _callables[3] = _c_endIntro;
- _callables[4] = _c_moveSheet;
- _callables[5] = _c_sketch;
- _callables[6] = _c_shade;
- _callables[7] = _c_score;
- _callables[8] = _c_null;
- _callables[9] = _c_null;
- _callables[10] = _c_null;
- _callables[11] = _c_fade;
- _callables[12] = _c_play_boogie;
- _callables[13] = _c_moveSarc;
- _callables[14] = _c_contaFoglie;
- _callables[15] = _c_zeroFoglie;
- _callables[16] = _c_trasformata;
- _callables[17] = _c_offMouse;
- _callables[18] = _c_onMouse;
- _callables[19] = _c_setMask;
- _callables[20] = _c_endComment;
- _callables[21] = _c_frankenstein;
- _callables[22] = _c_finito;
- _callables[23] = _c_ridux;
- _callables[24] = _c_testResult;
+ _callables = _dosCallables;
} else {
- _callables[0] = _c_projector;
- _callables[1] = _c_HBOff;
- _callables[2] = _c_startIntro;
- _callables[3] = _c_endIntro;
- _callables[4] = _c_moveSheet;
- _callables[5] = _c_sketch;
- _callables[6] = _c_shade;
- _callables[7] = _c_score;
- _callables[8] = _c_offSound;
- _callables[9] = _c_startMusic;
- _callables[10] = _c_closeMusic;
- _callables[11] = _c_fade;
- _callables[12] = _c_HBOn;
- _callables[13] = _c_moveSarc;
- _callables[14] = _c_contaFoglie;
- _callables[15] = _c_zeroFoglie;
- _callables[16] = _c_trasformata;
- _callables[17] = _c_offMouse;
- _callables[18] = _c_onMouse;
- _callables[19] = _c_setMask;
- _callables[20] = _c_endComment;
- _callables[21] = _c_frankenstein;
- _callables[22] = _c_finito;
- _callables[23] = _c_ridux;
- _callables[24] = _c_testResult;
+ _callables = _amigaCallables;
}
}
+void Parallaction_br::initResources() {
+
+ _zoneFlagNamesRes = _zoneFlagNamesRes_br;
+ _zoneTypeNamesRes = _zoneTypeNamesRes_br;
+ _commandsNamesRes = _commandsNamesRes_br;
+ _callableNamesRes = _callableNamesRes_br;
+ _instructionNamesRes = _instructionNamesRes_br;
+ _audioCommandsNamesRes = _audioCommandsNamesRes_br;
+
+ _callableNames = new Table(ARRAYSIZE(_callableNamesRes_br), _callableNamesRes_br);
+ _instructionNames = new Table(ARRAYSIZE(_instructionNamesRes_br), _instructionNamesRes_br);
+ _zoneFlagNames = new Table(ARRAYSIZE(_zoneFlagNamesRes_br), _zoneFlagNamesRes_br);
+ _zoneTypeNames = new Table(ARRAYSIZE(_zoneTypeNamesRes_br), _zoneTypeNamesRes_br);
+ _commandsNames = new Table(ARRAYSIZE(_commandsNamesRes_br), _commandsNamesRes_br);
+ _audioCommandsNames = new Table(ARRAYSIZE(_audioCommandsNamesRes_br), _audioCommandsNamesRes_br);
+
+ // TODO: make sure there are 120 max locations in Big Red Adventure
+ _localFlagNames = new Table(120);
+ _localFlagNames->addData("visited");
+
+ if (getPlatform() == Common::kPlatformPC) {
+ _callables = _dosCallables;
+ }
+
+}
} // namespace Parallaction