diff options
| author | Chris Apers | 2003-11-28 09:21:45 +0000 | 
|---|---|---|
| committer | Chris Apers | 2003-11-28 09:21:45 +0000 | 
| commit | fa2abbf4556d079695d127400d8dbe74b57d7d0e (patch) | |
| tree | 0936fb2e98728f37aea0576500e8fd7342c90b12 /backends | |
| parent | 3cfeebdb1fd69939cdc97f05cf97d90674e12fe8 (diff) | |
| download | scummvm-rg350-fa2abbf4556d079695d127400d8dbe74b57d7d0e.tar.gz scummvm-rg350-fa2abbf4556d079695d127400d8dbe74b57d7d0e.tar.bz2 scummvm-rg350-fa2abbf4556d079695d127400d8dbe74b57d7d0e.zip | |
Process new games database version
svn-id: r11390
Diffstat (limited to 'backends')
| -rw-r--r-- | backends/PalmOS/Src/games.cpp | 111 | ||||
| -rw-r--r-- | backends/PalmOS/Src/games.h | 26 | 
2 files changed, 101 insertions, 36 deletions
| diff --git a/backends/PalmOS/Src/games.cpp b/backends/PalmOS/Src/games.cpp index 364bfd6c3e..6b08326913 100644 --- a/backends/PalmOS/Src/games.cpp +++ b/backends/PalmOS/Src/games.cpp @@ -51,7 +51,6 @@ static Err GamUpdateList() {  			if (version != curItemVersion && size != sizeof(GameInfoType)) {  				UInt16 index;  				GameInfoType gitCur; -				GameInfoTypeV0 git0;  				void *tmpP;  				FormPtr ofmP, frmP; @@ -62,40 +61,82 @@ static Err GamUpdateList() {  				FrmDrawForm(frmP);  				SysTaskDelay(200); -				// need conversion from V0 -> V2 -				for (index = 0; index < numRecs; index++) { -					 -					// get old data -					tmpH = DmQueryRecord(gameDB, index); -					tmpP = MemHandleLock(tmpH); -					MemMove(&git0, tmpP, sizeof(GameInfoTypeV0)); -					MemHandleUnlock(tmpH); - -					// convert to new format -					gitCur.version = curItemVersion; -					gitCur.icnID = 0xFFFF; -					gitCur.selected = git0.selected; -					StrCopy(gitCur.nameP, git0.nameP); -					StrCopy(gitCur.pathP, git0.pathP); -					StrCopy(gitCur.gameP, git0.gameP); -					gitCur.gfxMode = git0.gfxMode; -					 -					gitCur.autoLoad = git0.autoLoad; -					gitCur.bootParam = git0.bootParam; -					gitCur.setPlatform = git0.amiga;	// amiga become platform amiga/atari-st/machintosh -					gitCur.subtitles = git0.subtitles; -					gitCur.talkSpeed = git0.talkSpeed; - -					gitCur.loadSlot = git0.loadSlot; -					gitCur.bootValue = git0.bootValue; -					gitCur.talkValue = git0.talkValue; -					gitCur.platform = 0;	// default to amiga -					gitCur.language = git0.language; -					 -					tmpH = DmResizeRecord(gameDB, index, sizeof(GameInfoType));	// TODO : check error on resize tmpH==NULL -					tmpP = MemHandleLock(tmpH); -					DmWrite(tmpP, 0, &gitCur, sizeof(GameInfoType)); -					MemPtrUnlock(tmpP); +				if (version == itemVersion_2) { +					// need conversion from V2 -> V2.5 +					GameInfoTypeV2 git0; + +					for (index = 0; index < numRecs; index++) { +						 +						// get old data +						tmpH = DmQueryRecord(gameDB, index); +						tmpP = MemHandleLock(tmpH); +						MemMove(&git0, tmpP, sizeof(GameInfoTypeV2)); +						MemHandleUnlock(tmpH); + +						// convert to new format +						gitCur.version = curItemVersion; +						gitCur.icnID = 0xFFFF; +						gitCur.selected = git0.selected; +						StrCopy(gitCur.nameP, git0.nameP); +						StrCopy(gitCur.pathP, git0.pathP); +						StrCopy(gitCur.gameP, git0.gameP); +						gitCur.gfxMode = git0.gfxMode; +						 +						gitCur.autoLoad = git0.autoLoad; +						gitCur.bootParam = git0.bootParam; +						gitCur.setPlatform = git0.setPlatform; +						gitCur.subtitles = git0.subtitles; +						gitCur.talkSpeed = git0.talkSpeed; + +						gitCur.loadSlot = git0.loadSlot; +						gitCur.bootValue = git0.bootValue; +						gitCur.talkValue = git0.talkValue; +						gitCur.platform = git0.platform; +						gitCur.language = git0.language; +						 +						tmpH = DmResizeRecord(gameDB, index, sizeof(GameInfoType));	// TODO : check error on resize tmpH==NULL +						tmpP = MemHandleLock(tmpH); +						DmWrite(tmpP, 0, &gitCur, sizeof(GameInfoType)); +						MemPtrUnlock(tmpP); +					} +				} else { +					// need conversion from V0 -> V2.5 +					GameInfoTypeV0 git0; + +					for (index = 0; index < numRecs; index++) { +						 +						// get old data +						tmpH = DmQueryRecord(gameDB, index); +						tmpP = MemHandleLock(tmpH); +						MemMove(&git0, tmpP, sizeof(GameInfoTypeV0)); +						MemHandleUnlock(tmpH); + +						// convert to new format +						gitCur.version = curItemVersion; +						gitCur.icnID = 0xFFFF; +						gitCur.selected = git0.selected; +						StrCopy(gitCur.nameP, git0.nameP); +						StrCopy(gitCur.pathP, git0.pathP); +						StrCopy(gitCur.gameP, git0.gameP); +						gitCur.gfxMode = git0.gfxMode; +						 +						gitCur.autoLoad = git0.autoLoad; +						gitCur.bootParam = git0.bootParam; +						gitCur.setPlatform = git0.amiga;	// amiga become platform amiga/atari-st/machintosh +						gitCur.subtitles = git0.subtitles; +						gitCur.talkSpeed = git0.talkSpeed; + +						gitCur.loadSlot = git0.loadSlot; +						gitCur.bootValue = git0.bootValue; +						gitCur.talkValue = git0.talkValue; +						gitCur.platform = 0;	// default to amiga +						gitCur.language = git0.language; +						 +						tmpH = DmResizeRecord(gameDB, index, sizeof(GameInfoType));	// TODO : check error on resize tmpH==NULL +						tmpP = MemHandleLock(tmpH); +						DmWrite(tmpP, 0, &gitCur, sizeof(GameInfoType)); +						MemPtrUnlock(tmpP); +					}  				}  				FrmEraseForm(frmP); diff --git a/backends/PalmOS/Src/games.h b/backends/PalmOS/Src/games.h index 1dcbcb33a1..a43a0e1577 100644 --- a/backends/PalmOS/Src/games.h +++ b/backends/PalmOS/Src/games.h @@ -46,7 +46,6 @@ typedef struct {  } GameInfoTypeV0; -// Current config  typedef struct {  	UInt32	version;  	UInt16	icnID;			// icon to display on the list @@ -69,6 +68,31 @@ typedef struct {  	UInt8 platform;  	UInt8 language; +} GameInfoTypeV2; + +// Current config +typedef struct { +	UInt32	version; +	UInt16	icnID;			// icon to display on the list +	Boolean	selected; + +	Char 	nameP[50];		// game name to display in list +	Char 	pathP[150];		// path to the game files +	Char 	gameP[15];		// scumm name of the game +	UInt16	gfxMode; + +	Boolean autoLoad; +	Boolean bootParam; +	Boolean setPlatform; +	Boolean subtitles; +	Boolean talkSpeed; + +	UInt16 loadSlot; +	UInt16 bootValue; +	UInt16 talkValue; +	UInt8 platform; +	UInt8 language; +  } GameInfoType;  // protos | 
