aboutsummaryrefslogtreecommitdiff
path: root/backends/PalmOS
diff options
context:
space:
mode:
authorChris Apers2006-02-11 18:41:00 +0000
committerChris Apers2006-02-11 18:41:00 +0000
commit62b5df4e7b62aef4c548253aa5fb57e2f98744c0 (patch)
treecc46531074c66e98dcf17c6113cdb8a73a118abc /backends/PalmOS
parent044d5164a1f6e225cbd08f3c8e52fbc3b9afe90f (diff)
downloadscummvm-rg350-62b5df4e7b62aef4c548253aa5fb57e2f98744c0.tar.gz
scummvm-rg350-62b5df4e7b62aef4c548253aa5fb57e2f98744c0.tar.bz2
scummvm-rg350-62b5df4e7b62aef4c548253aa5fb57e2f98744c0.zip
Added new engine, platform and language
svn-id: r20566
Diffstat (limited to 'backends/PalmOS')
-rw-r--r--backends/PalmOS/Src/games.cpp86
-rw-r--r--backends/PalmOS/Src/games.h44
2 files changed, 83 insertions, 47 deletions
diff --git a/backends/PalmOS/Src/games.cpp b/backends/PalmOS/Src/games.cpp
index 1668d7ef8c..23464d00d0 100644
--- a/backends/PalmOS/Src/games.cpp
+++ b/backends/PalmOS/Src/games.cpp
@@ -1,6 +1,7 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2001 Ludvig Strigeus
* Copyright (C) 2001-2006 The ScummVM project
+ * Copyright (C) 2002-2006 Chris Apers - PalmOS Backend
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -53,7 +54,7 @@ static Err GamUpdateList() {
MemHandleUnlock(tmpH);
// check record
- if (version != curItemVersion && size != sizeof(GameInfoType)) {
+ if (version != curItemVersion || size != sizeof(GameInfoType)) {
UInt16 index;
GameInfoType gitCur;
void *tmpP;
@@ -68,22 +69,27 @@ static Err GamUpdateList() {
MemSet(&gitCur, sizeof(GameInfoType), 0);
- if (version == itemVersion_33 ||
- version == itemVersion_32 ||
- version == itemVersion_31 ||
- version == itemVersion_30 ||
- version == itemVersion_27 ||
- version == itemVersion_26 ||
- version == itemVersion_25) {
-
+ if (version == itemVersion_351 ||
+ version == itemVersion_350 ||
+ version == itemVersion_340 ||
+ version == itemVersion_330 ||
+ version == itemVersion_320 ||
+ version == itemVersion_310 ||
+ version == itemVersion_300 ||
+ version == itemVersion_270 ||
+ version == itemVersion_260 ||
+ version == itemVersion_250) {
for (index = 0; index < numRecs; index++) {
// get old data
tmpH = DmQueryRecord(gameDB, index);
tmpP = MemHandleLock(tmpH);
MemMove(&gitCur, tmpP, MemHandleSize(tmpH));
MemHandleUnlock(tmpH);
+
+ // new format
+ gitCur.version = curItemVersion;
- if (version < itemVersion_30) {
+ if (version < itemVersion_300) {
gitCur.musicInfo.volume.palm = 50;
gitCur.musicInfo.volume.music = 192;
gitCur.musicInfo.volume.sfx = 192;
@@ -95,17 +101,16 @@ static Err GamUpdateList() {
gitCur.musicInfo.sound.firstTrack = 1;
}
- if (version < itemVersion_31)
+ if (version < itemVersion_310)
gitCur.engine = 0;
- if (version < itemVersion_32)
+ if (version < itemVersion_320)
gitCur.renderMode = 0;
- gitCur.renderMode = 0;
- gitCur.fmQuality = 0;
- gitCur.gfxMode = (gitCur.gfxMode == 3 ? 1 : 0); // v3.4 only 2 modes
+ if (version <= itemVersion_330) {
+ gitCur.fmQuality = 0;
+ gitCur.gfxMode = (gitCur.gfxMode == 3 ? 1 : 0); // v3.4 only 2 modes
- if (version <= itemVersion_33) {
if (gitCur.engine == 0) gitCur.engine = 8;
else if (gitCur.engine == 1) gitCur.engine = 7;
else if (gitCur.engine == 2) gitCur.engine = 3;
@@ -115,7 +120,7 @@ static Err GamUpdateList() {
else if (gitCur.engine == 6) gitCur.engine = 4;
else if (gitCur.engine == 7) gitCur.engine = 5;
else if (gitCur.engine == 8) gitCur.engine = 2;
-
+
if (gitCur.renderMode == 1) gitCur.renderMode = 4;
else if (gitCur.renderMode == 2) gitCur.renderMode = 5;
else if (gitCur.renderMode == 3) gitCur.renderMode = 2;
@@ -145,7 +150,30 @@ static Err GamUpdateList() {
else if (gitCur.musicInfo.sound.drvMusic == 4) gitCur.musicInfo.sound.drvMusic = 2;
else if (gitCur.musicInfo.sound.drvMusic == 5) gitCur.musicInfo.sound.drvMusic = 1;
}
+
+ if (version <= itemVersion_340) {
+ gitCur.platform++;
+
+ if (gitCur.language == 3)
+ gitCur.language = 0;
+ else if (gitCur.language >= 11)
+ gitCur.language++;
+ }
+ if (version <= itemVersion_350)
+ if (gitCur.platform >= 9)
+ gitCur.platform++;
+
+ if (version <= itemVersion_351) {
+ if (gitCur.engine >= ENGINE_LURE) // newly added engine
+ gitCur.engine++;
+
+ if (gitCur.engine == ENGINE_SCUMM) // reorder
+ gitCur.engine = ENGINE_SIMON;
+ else if (gitCur.engine == ENGINE_SIMON)
+ gitCur.engine = ENGINE_SCUMM;
+ }
+
if (gitCur.musicInfo.volume.palm > 100)
gitCur.musicInfo.volume.palm = 50;
@@ -156,8 +184,8 @@ static Err GamUpdateList() {
MemPtrUnlock(tmpP);
}
- } else if (version == itemVersion_20) {
- // need conversion from V2 -> V3.4
+ } else if (version == itemVersion_200) {
+ // need conversion from V2 -> V3.5.2
GameInfoTypeV2 git0;
for (index = 0; index < numRecs; index++) {
@@ -223,6 +251,19 @@ static Err GamUpdateList() {
else if (gitCur.musicInfo.sound.drvMusic == 4) gitCur.musicInfo.sound.drvMusic = 2;
else if (gitCur.musicInfo.sound.drvMusic == 5) gitCur.musicInfo.sound.drvMusic = 1;
+ // to V3.5
+ gitCur.platform++;
+
+ if (gitCur.language == 3)
+ gitCur.language = 0;
+ else if (gitCur.language >= 11)
+ gitCur.language++;
+
+ // to V3.5.1
+ if (gitCur.platform >= 9)
+ gitCur.platform++;
+
+ // -----
gitCur.engine = ENGINE_SCUMM;
tmpH = DmResizeRecord(gameDB, index, sizeof(GameInfoType)); // TODO : check error on resize tmpH==NULL
@@ -231,7 +272,7 @@ static Err GamUpdateList() {
MemPtrUnlock(tmpP);
}
} else {
- // need conversion from V0 -> V3.4
+ // need conversion from V0 -> V3.5.2
GameInfoTypeV0 git0;
for (index = 0; index < numRecs; index++) {
@@ -254,6 +295,7 @@ static Err GamUpdateList() {
gitCur.autoLoad = git0.autoLoad;
gitCur.bootParam = git0.bootParam;
gitCur.setPlatform = git0.amiga; // amiga become platform amiga/atari-st/machintosh
+ gitCur.platform = 1;
gitCur.subtitles = git0.subtitles;
gitCur.talkSpeed = git0.talkSpeed;
@@ -317,7 +359,7 @@ Err GamOpenDatabase() {
}
void GamImportDatabase() {
- if (gPrefs->card.volRefNum != sysInvalidRefNum && gPrefs->card.moveDB) {
+ if (gPrefs->card.volRefNum != vfsInvalidVolRef && gPrefs->card.moveDB) {
FileRef file;
Err e;
@@ -357,7 +399,7 @@ void GamCloseDatabase(Boolean ignoreCardParams) {
DmCloseDatabase(gameDB);
if (!ignoreCardParams) {
- if (gPrefs->card.moveDB && gPrefs->card.volRefNum != sysInvalidRefNum) {
+ if (gPrefs->card.moveDB && gPrefs->card.volRefNum != vfsInvalidVolRef) {
VFSFileRename(gPrefs->card.volRefNum, "/Palm/Programs/ScummVM/listdata.pdb", "listdata-old.pdb");
Err e = VFSExportDatabaseToFile(gPrefs->card.volRefNum, "/Palm/Programs/ScummVM/listdata.pdb", cardNo, dbID);
if (!e) {
diff --git a/backends/PalmOS/Src/games.h b/backends/PalmOS/Src/games.h
index 5c3f3a2313..1bbd199dc0 100644
--- a/backends/PalmOS/Src/games.h
+++ b/backends/PalmOS/Src/games.h
@@ -1,6 +1,7 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2001 Ludvig Strigeus
* Copyright (C) 2001-2006 The ScummVM project
+ * Copyright (C) 2002-2006 Chris Apers - PalmOS Backend
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -24,16 +25,20 @@
#ifndef __GAMES_H__
#define __GAMES_H__
-#define curItemVersion sysMakeROMVersion(3,4,0,0,0)
+#define curItemVersion sysMakeROMVersion(3,5,2,0,0) // Added : Lure engine
-#define itemVersion_33 sysMakeROMVersion(3,3,0,0,0)
-#define itemVersion_32 sysMakeROMVersion(3,2,0,0,0)
-#define itemVersion_31 sysMakeROMVersion(3,1,0,0,0)
-#define itemVersion_30 sysMakeROMVersion(3,0,0,0,0)
-#define itemVersion_27 sysMakeROMVersion(2,7,0,0,0)
-#define itemVersion_26 sysMakeROMVersion(2,6,0,0,0)
-#define itemVersion_25 sysMakeROMVersion(2,5,0,0,0)
-#define itemVersion_20 sysMakeROMVersion(2,0,0,0,0)
+
+#define itemVersion_351 sysMakeROMVersion(3,5,1,0,0) // Added : Sega CD platform
+#define itemVersion_350 sysMakeROMVersion(3,5,0,0,0)
+#define itemVersion_340 sysMakeROMVersion(3,4,0,0,0)
+#define itemVersion_330 sysMakeROMVersion(3,3,0,0,0)
+#define itemVersion_320 sysMakeROMVersion(3,2,0,0,0)
+#define itemVersion_310 sysMakeROMVersion(3,1,0,0,0)
+#define itemVersion_300 sysMakeROMVersion(3,0,0,0,0)
+#define itemVersion_270 sysMakeROMVersion(2,7,0,0,0)
+#define itemVersion_260 sysMakeROMVersion(2,6,0,0,0)
+#define itemVersion_250 sysMakeROMVersion(2,5,0,0,0)
+#define itemVersion_200 sysMakeROMVersion(2,0,0,0,0)
// old config structs
typedef struct {
@@ -88,7 +93,7 @@ typedef struct {
struct {
UInt16 palm;
UInt16 music;
- UInt16 sfx;
+ UInt16 sfx; // TODO : remove
UInt16 speech;
UInt16 audiocd;
} volume;
@@ -143,30 +148,18 @@ typedef struct {
// Boolean use16Bit; // |- v3.3 // removed
UInt8 fmQuality; // |- v3.4 // replace use16Bit
} GameInfoType;
-/*
-enum {
- ENGINE_SCUMM = 0,
- ENGINE_SIMON,
- ENGINE_QUEEN,
- ENGINE_SWORD1,
- ENGINE_SKY,
- ENGINE_SAGA,
- ENGINE_GOB,
- ENGINE_KYRA,
- ENGINE_SWORD2
-};
-*/
enum {
ENGINE_SKY = 0,
ENGINE_SWORD1,
ENGINE_SWORD2,
ENGINE_QUEEN,
+ ENGINE_LURE,
ENGINE_GOB,
ENGINE_KYRA,
ENGINE_SAGA,
- ENGINE_SIMON,
ENGINE_SCUMM,
+ ENGINE_SIMON,
ENGINE_COUNT
};
@@ -178,11 +171,12 @@ static const struct {
{ "sword1", "Broken Sword 1" },
{ "sword2", "Broken Sword 2" },
{ "queen", "Flight of the Amazon Queen" },
+ { "lure", "Lure of the Tempress" },
{ "gob", "Gobliiins" },
{ "kyra", "Kyrandia" },
{ "saga", "SAGA Engine" },
- { "simon", "Simon the Sorcerer" },
{ "scumm", "Scumm Games" },
+ { "simon", "Simon the Sorcerer" },
};