diff options
| author | Chris Apers | 2003-09-23 16:11:54 +0000 |
|---|---|---|
| committer | Chris Apers | 2003-09-23 16:11:54 +0000 |
| commit | f2f5f9a9af93b19692fe57c5f6230c6ce336ba84 (patch) | |
| tree | 55eaa114384a58084e497ba971f26a271983df67 /backends/PalmOS/Src/scumm_globals.cpp | |
| parent | 0f8eca26ab04e0254efca196bb57f5abea421d2c (diff) | |
| download | scummvm-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.cpp | 105 |
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 |
