diff options
-rw-r--r-- | backends/PalmOS/Src/scumm_globals.cpp | 65 | ||||
-rw-r--r-- | backends/PalmOS/Src/scumm_globals.h | 28 |
2 files changed, 65 insertions, 28 deletions
diff --git a/backends/PalmOS/Src/scumm_globals.cpp b/backends/PalmOS/Src/scumm_globals.cpp index e27bc89466..7f8cb9611b 100644 --- a/backends/PalmOS/Src/scumm_globals.cpp +++ b/backends/PalmOS/Src/scumm_globals.cpp @@ -25,33 +25,49 @@ #include "globals.h" #include "scumm_globals.h" +#include "scumm.h" + static void GlbInitAll() { #ifndef DISABLE_SCUMM - CALL_INIT(IMuseDigital) - CALL_INIT(NewGui) - CALL_INIT(Akos) - CALL_INIT(Bundle) - CALL_INIT(Codec47) - CALL_INIT(Gfx) - CALL_INIT(Dialogs) - CALL_INIT(Charset) - CALL_INIT(Costume) - CALL_INIT(PlayerV2) + if (gVars->globals[GBVARS_SCUMM]) { + CALL_INIT(IMuseDigital) + CALL_INIT(NewGui) + CALL_INIT(Akos) + CALL_INIT(Bundle) + CALL_INIT(Codec47) + CALL_INIT(Gfx) + CALL_INIT(Dialogs) + CALL_INIT(Charset) + CALL_INIT(Costume) + CALL_INIT(PlayerV2) + } +#endif +#ifndef DISABLE_QUEEN + if (gVars->globals[GBVARS_QUEEN]) { + CALL_INIT(Restables) + } #endif } static void GlbReleaseAll() { #ifndef DISABLE_SCUMM - CALL_RELEASE(IMuseDigital) - CALL_RELEASE(NewGui) - CALL_RELEASE(Akos) - CALL_RELEASE(Bundle) - CALL_RELEASE(Codec47) - CALL_RELEASE(Gfx) - CALL_RELEASE(Dialogs) - CALL_RELEASE(Charset) - CALL_RELEASE(Costume) - CALL_RELEASE(PlayerV2) + if (gVars->globals[GBVARS_SCUMM]) { + CALL_RELEASE(IMuseDigital) + CALL_RELEASE(NewGui) + CALL_RELEASE(Akos) + CALL_RELEASE(Bundle) + CALL_RELEASE(Codec47) + CALL_RELEASE(Gfx) + CALL_RELEASE(Dialogs) + CALL_RELEASE(Charset) + CALL_RELEASE(Costume) + CALL_RELEASE(PlayerV2) + } +#endif +#ifndef DISABLE_QUEEN + if (gVars->globals[GBVARS_QUEEN]) { + CALL_RELEASE(Restables) + } #endif } @@ -71,8 +87,9 @@ static DmOpenRef GlbOpenInternal(const Char *nameP) { void GlbOpen() { gVars->globals[GBVARS_SCUMM] = GlbOpenInternal("Scumm-Globals"); gVars->globals[GBVARS_SIMON] = GlbOpenInternal("Simon-Globals"); - gVars->globals[GBVARS_SKY] = GlbOpenInternal("Sky-Globals"); - + gVars->globals[GBVARS_SKY ] = GlbOpenInternal("Sky-Globals"); + gVars->globals[GBVARS_QUEEN] = GlbOpenInternal("Queen-Globals"); + GlbInitAll(); } @@ -85,6 +102,8 @@ void GlbClose() { DmCloseDatabase(gVars->globals[GBVARS_SIMON]); if (gVars->globals[GBVARS_SKY]) DmCloseDatabase(gVars->globals[GBVARS_SKY]); + if (gVars->globals[GBVARS_QUEEN]) + DmCloseDatabase(gVars->globals[GBVARS_QUEEN]); } void *GlbGetRecord(UInt16 index, UInt16 id) { @@ -102,4 +121,4 @@ void GlbReleaseRecord(UInt16 index, UInt16 id) { if (recordH) MemHandleUnlock(recordH); } -}
\ No newline at end of file +} diff --git a/backends/PalmOS/Src/scumm_globals.h b/backends/PalmOS/Src/scumm_globals.h index e19eea6077..27ecaa5e8f 100644 --- a/backends/PalmOS/Src/scumm_globals.h +++ b/backends/PalmOS/Src/scumm_globals.h @@ -55,15 +55,27 @@ enum { GBVARS_PCJRFREQTABLE_INDEX }; +enum { + GBVARS_RESOURCETABLEPE100V1_INDEX = 0, + GBVARS_RESOURCETABLEPE100V2_INDEX, + GBVARS_RESOURCETABLEPM10_INDEX, + GBVARS_RESOURCETABLECM10_INDEX +}; + void *GlbGetRecord(UInt16 index, UInt16 id); void GlbReleaseRecord(UInt16 index, UInt16 id); void GlbOpen(); void GlbClose(); -#define GBVARS_SCUMM 0 -#define GBVARS_SIMON 1 -#define GBVARS_SKY 2 -#define GBVARS_SWORD2 3 +enum { + GBVARS_SCUMM = 0, + GBVARS_SIMON, + GBVARS_SKY, + GBVARS_SWORD2, + GBVARS_QUEEN, + + GBVARS_COUNT +}; #define _GINIT(x) void initGlobals_##x() { #define _GEND } @@ -78,6 +90,7 @@ void GlbClose(); #define PROTO_GLOBALS(x) void CALL_INIT(x);\ void CALL_RELEASE(x); +#ifndef DISABLE_SCUMM PROTO_GLOBALS(IMuseDigital) PROTO_GLOBALS(NewGui) PROTO_GLOBALS(Akos) @@ -88,7 +101,12 @@ PROTO_GLOBALS(Dialogs) PROTO_GLOBALS(Charset) PROTO_GLOBALS(Costume) PROTO_GLOBALS(PlayerV2) +#endif + +#ifndef DISABLE_QUEEN +PROTO_GLOBALS(Restables) +#endif #undef PROTO_GLOBALS -#endif
\ No newline at end of file +#endif |