aboutsummaryrefslogtreecommitdiff
path: root/backends/PalmOS/Src/scumm_globals.cpp
diff options
context:
space:
mode:
authorChris Apers2003-09-23 16:11:54 +0000
committerChris Apers2003-09-23 16:11:54 +0000
commitf2f5f9a9af93b19692fe57c5f6230c6ce336ba84 (patch)
tree55eaa114384a58084e497ba971f26a271983df67 /backends/PalmOS/Src/scumm_globals.cpp
parent0f8eca26ab04e0254efca196bb57f5abea421d2c (diff)
downloadscummvm-rg350-f2f5f9a9af93b19692fe57c5f6230c6ce336ba84.tar.gz
scummvm-rg350-f2f5f9a9af93b19692fe57c5f6230c6ce336ba84.tar.bz2
scummvm-rg350-f2f5f9a9af93b19692fe57c5f6230c6ce336ba84.zip
ScummVM Headers were missing
svn-id: r10381
Diffstat (limited to 'backends/PalmOS/Src/scumm_globals.cpp')
-rw-r--r--backends/PalmOS/Src/scumm_globals.cpp105
1 files changed, 105 insertions, 0 deletions
diff --git a/backends/PalmOS/Src/scumm_globals.cpp b/backends/PalmOS/Src/scumm_globals.cpp
new file mode 100644
index 0000000000..e27bc89466
--- /dev/null
+++ b/backends/PalmOS/Src/scumm_globals.cpp
@@ -0,0 +1,105 @@
+/* ScummVM - Scumm Interpreter
+ * Copyright (C) 2001 Ludvig Strigeus
+ * Copyright (C) 2001-2003 The ScummVM project
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * $Header$
+ *
+ */
+#include <PalmOS.h>
+
+#include "start.h"
+#include "globals.h"
+#include "scumm_globals.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)
+#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)
+#endif
+}
+
+//TODO : use Boolean instead of void to check err
+static DmOpenRef GlbOpenInternal(const Char *nameP) {
+ LocalID dbID = DmFindDatabase(0, nameP);
+ if (dbID) {
+ UInt32 dbType, dbCreator;
+ Err e = DmDatabaseInfo(0, dbID, 0, 0, 0, 0, 0, 0, 0, 0, 0, &dbType, &dbCreator);
+
+ if (!e && dbType == 'GLBS' && dbCreator == appFileCreator)
+ return DmOpenDatabase(0, dbID, dmModeReadOnly);
+ }
+ return NULL;
+}
+
+void GlbOpen() {
+ gVars->globals[GBVARS_SCUMM] = GlbOpenInternal("Scumm-Globals");
+ gVars->globals[GBVARS_SIMON] = GlbOpenInternal("Simon-Globals");
+ gVars->globals[GBVARS_SKY] = GlbOpenInternal("Sky-Globals");
+
+ GlbInitAll();
+}
+
+void GlbClose() {
+ GlbReleaseAll();
+
+ if (gVars->globals[GBVARS_SCUMM])
+ DmCloseDatabase(gVars->globals[GBVARS_SCUMM]);
+ if (gVars->globals[GBVARS_SIMON])
+ DmCloseDatabase(gVars->globals[GBVARS_SIMON]);
+ if (gVars->globals[GBVARS_SKY])
+ DmCloseDatabase(gVars->globals[GBVARS_SKY]);
+}
+
+void *GlbGetRecord(UInt16 index, UInt16 id) {
+ if (gVars->globals[id]) {
+ MemHandle recordH = DmQueryRecord(gVars->globals[id], index);
+ if (recordH)
+ return MemHandleLock(recordH);
+ }
+ return NULL;
+}
+
+void GlbReleaseRecord(UInt16 index, UInt16 id) {
+ if (gVars->globals[id]) {
+ MemHandle recordH = DmQueryRecord(gVars->globals[id], index);
+ if (recordH)
+ MemHandleUnlock(recordH);
+ }
+} \ No newline at end of file