diff options
author | Alejandro Marzini | 2010-07-30 05:28:09 +0000 |
---|---|---|
committer | Alejandro Marzini | 2010-07-30 05:28:09 +0000 |
commit | fb4086cadb8ce3e473dae40558d713e7a31b3858 (patch) | |
tree | 95c19d544da914c43a43f0538a1977f43e17cb39 /backends/platform/PalmOS/Src/launcher | |
parent | 7b070bbef8275ff25dfc2cbc3106acfdc8de74a5 (diff) | |
parent | a17e3c444917ca90dfd537c2102a6150e7ffe977 (diff) | |
download | scummvm-rg350-fb4086cadb8ce3e473dae40558d713e7a31b3858.tar.gz scummvm-rg350-fb4086cadb8ce3e473dae40558d713e7a31b3858.tar.bz2 scummvm-rg350-fb4086cadb8ce3e473dae40558d713e7a31b3858.zip |
Merged from trunk, from Rev 50841 to HEAD
svn-id: r51495
Diffstat (limited to 'backends/platform/PalmOS/Src/launcher')
23 files changed, 0 insertions, 5997 deletions
diff --git a/backends/platform/PalmOS/Src/launcher/app.cpp b/backends/platform/PalmOS/Src/launcher/app.cpp deleted file mode 100644 index 9bb1c1479b..0000000000 --- a/backends/platform/PalmOS/Src/launcher/app.cpp +++ /dev/null @@ -1,360 +0,0 @@ -/* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - * - */ - -#include <PalmOS.h> -#include <SonyClie.h> -#include <SysGlue.h> - -#include "StarterRsc.h" -#include "palmdefs.h" -#include "start.h" -#include "globals.h" -#include "rumble.h" - -#include "mathlib.h" -#include "formCards.h" -#include "games.h" - -#include "modules.h" -#include "init_mathlib.h" -#include "init_sony.h" -#include "init_palmos.h" -#include "init_stuffs.h" - -/*********************************************************************** - * - * FUNCTION: AppStart - * - * DESCRIPTION: Get the current application's preferences. - * - * PARAMETERS: nothing - * - * RETURNED: Err value 0 if nothing went wrong - * - * REVISION HISTORY: - * - * - ***********************************************************************/ -static Err AppStartCheckHRmode() -{ - Err e = errNone; - UInt32 depth = (OPTIONS_TST(kOptMode16Bit) && OPTIONS_TST(kOptDeviceOS5)) ? 16 : 8; - - // try to init Sony HR mode then Palm HR mode - gVars->HRrefNum = SonyHRInit(depth); - - if (gVars->HRrefNum == sysInvalidRefNum) { - if (e = PalmHRInit(depth)) - FrmCustomAlert(FrmErrorAlert,"Your device doesn't seem to support Hi-Res or 256color mode.",0,0); - } else { - OPTIONS_SET(kOptDeviceClie); - } - - return e; -} - -static void AppStopHRMode() { - if (gVars->HRrefNum != sysInvalidRefNum) - SonyHRRelease(gVars->HRrefNum); - else - PalmHRRelease(); -} - -static Err AppStartCheckNotify() { - UInt32 romVersion; - Err err; - - err = FtrGet(sysFtrCreator, sysFtrNumNotifyMgrVersion, &romVersion); - if (!err) { - UInt16 cardNo; - LocalID dbID; - - err = SysCurAppDatabase(&cardNo, &dbID); - if (!err) { - SysNotifyRegister(cardNo, dbID, sysNotifyVolumeMountedEvent, NULL, sysNotifyNormalPriority, NULL); - SysNotifyRegister(cardNo, dbID, sysNotifyVolumeUnmountedEvent, NULL, sysNotifyNormalPriority, NULL); - SysNotifyRegister(cardNo, dbID, sonySysNotifyMsaEnforceOpenEvent, NULL, sysNotifyNormalPriority, NULL); - SysNotifyRegister(cardNo, dbID, sysNotifyDisplayResizedEvent, NULL, sysNotifyNormalPriority, NULL); - } - } - - return err; -} - -static Err AppStartLoadSkin() { - Err err = errNone; - - // if skin defined, check if the db still exists - if (gPrefs->skin.dbID) { - UInt32 type, creator; - - // check if the DB still exists - DmSearchStateType state; - UInt16 cardNo; - LocalID dbID; - Boolean found = false; - err = DmGetNextDatabaseByTypeCreator(true, &state, 'skin', appFileCreator, false, &cardNo, &dbID); - while (!err && dbID && !found) { - found = (cardNo == gPrefs->skin.cardNo && dbID == gPrefs->skin.dbID); - err = DmGetNextDatabaseByTypeCreator(false, &state, 'skin', appFileCreator, false, &cardNo, &dbID); - } - - if (found) { - // remember to check version for next revision of the skin - err = DmDatabaseInfo (gPrefs->skin.cardNo, gPrefs->skin.dbID, gPrefs->skin.nameP, 0, 0, 0, 0, 0, 0, 0,0, &type, &creator); - if (!err) - if (type != 'skin' || creator != appFileCreator) - err = dmErrInvalidParam; - } - - if (!found || err) - MemSet(&(gPrefs->skin),sizeof(SkinInfoType),0); - } - - // No skin ? try to get the first one - if (!gPrefs->skin.dbID) { - DmSearchStateType stateInfo; - - err = DmGetNextDatabaseByTypeCreator(true, &stateInfo, 'skin', appFileCreator, false, &gPrefs->skin.cardNo, &gPrefs->skin.dbID); - if (!err) - err = DmDatabaseInfo (gPrefs->skin.cardNo, gPrefs->skin.dbID, gPrefs->skin.nameP, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); - } - - return err; -} - -static Err AppStartCheckMathLib() { - Err e = MathlibInit(); - - switch (e) { - case errNone: - break; - case sysErrLibNotFound: - FrmCustomAlert(FrmErrorAlert,"Can't find MathLib !",0,0); - break; - default: - FrmCustomAlert(FrmErrorAlert,"Can't open MathLib !",0,0); - break; - } - - return e; -} - -static void AppStopMathLib() { - MathlibRelease(); -} - -static void AppStartCheckScreenSize() { - Coord sw, sh, fw, fh; - UInt8 mode; - - OPTIONS_RST(kOptCollapsible); - OPTIONS_RST(kOptModeWide); - OPTIONS_RST(kOptModeLandscape); - OPTIONS_RST(kOptModeRotatable); - - // we are on a sony device - if (OPTIONS_TST(kOptDeviceClie)) { - mode = SonyScreenSize(gVars->HRrefNum, &sw, &sh, &fw, &fh); - if (mode) { - OPTIONS_SET(kOptModeWide); - OPTIONS_SET((mode == SONY_LANDSCAPE) ? kOptModeLandscape : kOptNone); - } - } else { - mode = PalmScreenSize(&sw, &sh, &fw, &fh); - if (mode) { - OPTIONS_SET(kOptCollapsible); - OPTIONS_SET(kOptModeWide); - OPTIONS_SET((mode == PALM_LANDSCAPE) ? kOptModeLandscape : kOptNone); - // TODO: doesn't work with Sony - OPTIONS_SET(SysGlueTrapExists(pinSysSetOrientation) ? kOptModeRotatable :kOptNone); - } - } - - gVars->screenWidth = sw; - gVars->screenHeight = sh; - - gVars->screenFullWidth = fw; - gVars->screenFullHeight = fh; -} - -#define max(id,value) gVars->memory[id] = (gVars->memory[id] < value ? value : gVars->memory[id]) -#define min(id,value) gVars->memory[id] = (gVars->memory[id] > value ? value : gVars->memory[id]) -#define threshold 700 - -static void AppStartSetMemory() { - UInt32 mem, def; - PalmGetMemory(0,0,0,&mem); - def = (mem > threshold) ? (mem - threshold) * 1024 : 0; - gVars->startupMemory = mem; -} - -#undef threshold -#undef min -#undef max - -Err AppStart(void) { - UInt16 dataSize, checkSize = 0; - Err error; - -#ifndef _DEBUG_ENGINE - // delete old databases - ModDelete(); -#endif - - // allocate global variables space - dataSize = sizeof(GlobalsDataType); - gVars = (GlobalsDataType *)MemPtrNew(dataSize); - MemSet(gVars, dataSize, 0); - - gVars->indicator.on = 255; - gVars->indicator.off = 0; - gVars->HRrefNum = sysInvalidRefNum; - gVars->VFS.volRefNum = vfsInvalidVolRef; - gVars->slkRefNum = sysInvalidRefNum; - gVars->options = kOptNone; - - // set memory required by the differents engines - AppStartSetMemory(); - StuffsGetFeatures(); - - // allocate prefs space - dataSize = sizeof(GlobalsPreferenceType); - gPrefs = (GlobalsPreferenceType *)MemPtrNew(dataSize); - MemSet(gPrefs, dataSize, 0); - - // Read the saved preferences / saved-state information. - if (PrefGetAppPreferences(appFileCreator, appPrefID, NULL, &checkSize, true) == noPreferenceFound || checkSize != dataSize) { - // reset all elements - MemSet(gPrefs, dataSize, 0); - - gPrefs->card.volRefNum = vfsInvalidVolRef; - gPrefs->card.cacheSize = 4096; - gPrefs->card.useCache = true; - gPrefs->card.showLED = true; - gPrefs->card.autoDetect = true; - - gPrefs->autoOff = true; - gPrefs->vibrator = RumbleExists(); - gPrefs->debug = false; - gPrefs->exitLauncher = true; - gPrefs->stdPalette = OPTIONS_TST(kOptDeviceOS5); - gPrefs->stylusClick = true; - - } else { - PrefGetAppPreferences(appFileCreator, appPrefID, gPrefs, &dataSize, true); - } - - if (!OPTIONS_TST(kOptDeviceARM)) { - error = AppStartCheckMathLib(); - if (error) return (error); - } - - error = AppStartCheckHRmode(); - if (error) return (error); - - bDirectMode = (AppStartLoadSkin() != errNone); - - // if volref previously defined, check if it's a valid one - if (gPrefs->card.volRefNum != vfsInvalidVolRef) { - VolumeInfoType volInfo; - Err err = VFSVolumeInfo(gPrefs->card.volRefNum, &volInfo); - if (err) - gPrefs->card.volRefNum = parseCards(); - } - else - gPrefs->card.volRefNum = parseCards(); - if (gPrefs->card.volRefNum != vfsInvalidVolRef) - CardSlotCreateDirs(); - - // open games database - error = GamOpenDatabase(); - if (error) return (error); - GamImportDatabase(); - - AppStartCheckScreenSize(); - AppStartCheckNotify(); // not fatal error if not avalaible - - return error; -} - -/*********************************************************************** - * - * FUNCTION: AppStop - * - * DESCRIPTION: Save the current state of the application. - * - * PARAMETERS: nothing - * - * RETURNED: nothing - * - * REVISION HISTORY: - * - * - ***********************************************************************/ -static Err AppStopCheckNotify() -{ - UInt32 romVersion; - Err err; - - err = FtrGet(sysFtrCreator, sysFtrNumNotifyMgrVersion, &romVersion); - if (!err) { - UInt16 cardNo; - LocalID dbID; - - err = SysCurAppDatabase(&cardNo, &dbID); - if (!err) { - SysNotifyUnregister(cardNo, dbID, sysNotifyVolumeUnmountedEvent, sysNotifyNormalPriority); - SysNotifyUnregister(cardNo, dbID, sysNotifyVolumeMountedEvent, sysNotifyNormalPriority); - // sonySysNotifyMsaEnforceOpenEvent - SysNotifyUnregister(cardNo, dbID, sysNotifyDisplayResizedEvent, sysNotifyNormalPriority); - } - } - - return err; -} - -void AppStop(void) { - // Close all the open forms. - FrmCloseAllForms(); - WinEraseWindow(); - WinPalette(winPaletteSetToDefault, 0, 256, NULL); - - // Close and move Game list database - GamCloseDatabase(false); - - // Write the saved preferences / saved-state information. This data - // will saved during a HotSync backup. - SavePrefs(); - - // stop all - AppStopCheckNotify(); - if (!OPTIONS_TST(kOptDeviceARM)) - AppStopMathLib(); - AppStopHRMode(); - - if (!bLaunched) - MemPtrFree(gVars); -} diff --git a/backends/platform/PalmOS/Src/launcher/forms/formCards.cpp b/backends/platform/PalmOS/Src/launcher/forms/formCards.cpp deleted file mode 100644 index eb4654ed10..0000000000 --- a/backends/platform/PalmOS/Src/launcher/forms/formCards.cpp +++ /dev/null @@ -1,383 +0,0 @@ -/* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - * - */ - -#include <PalmOS.h> -#include <VFSMgr.h> -#include <PmPalmOSNVFS.h> - -#include "start.h" -#include "formTabs.h" -#include "forms.h" -#include "globals.h" - -typedef struct { - UInt16 volRefNum; - Char nameP[expCardInfoStringMaxLen+1]; - -} CardInfoType; - -static TabType *myTabP; -static UInt16 lastTab = 0; - -static void CardSlotFormExit(Boolean bSave); - -static void CardSlotFreeList() { - MemHandle cards = NULL; - MemHandle items = NULL; - - if (itemsText && itemsList) { - cards = MemPtrRecoverHandle(itemsList); - items = MemPtrRecoverHandle(itemsText); - - itemsText = NULL; - itemsList = NULL; - } - itemsType = ITEM_TYPE_UNKNOWN; - - if (items && cards) { - MemHandleUnlock(items); - MemHandleUnlock(cards); - MemHandleFree(items); - MemHandleFree(cards); - } -} - -static UInt16 CardSlotFillList(Boolean getRefNum = false) { - Err err; - UInt16 index; - UInt16 volRefNum; - UInt32 volIterator = vfsIteratorStart|vfsIncludePrivateVolumes; - UInt8 counter = 0; - UInt32 other = 1; - - MemHandle items = NULL; - MemHandle cards = NULL; - CardInfoType *cardsInfo; - - // retreive card infos - while (volIterator != vfsIteratorStop) { - err = VFSVolumeEnumerate(&volRefNum, &volIterator); - - if (!err) { - Char labelP[expCardInfoStringMaxLen+1]; - MemSet(labelP, expCardInfoStringMaxLen+1, 0); - err = VFSVolumeGetLabel(volRefNum, labelP, expCardInfoStringMaxLen+1); - - if (err || StrLen(labelP) == 0) { // if no label try to retreive card type - VolumeInfoType volInfo; - err = VFSVolumeInfo(volRefNum, &volInfo); - - if (!err) { - ExpCardInfoType info; - err = ExpCardInfo(volInfo.slotRefNum, &info); - StrCopy(labelP, info.deviceClassStr); - } - - if (err) // if err default name - StrPrintF(labelP,"Other Card %ld", other++); - } - - if (!cards) - cards = MemHandleNew(sizeof(CardInfoType)); - else - MemHandleResize(cards, MemHandleSize(cards) + sizeof(CardInfoType)); - - cardsInfo = (CardInfoType *)MemHandleLock(cards); - cardsInfo[counter].volRefNum = volRefNum; - StrCopy(cardsInfo[counter].nameP, labelP); - MemHandleUnlock(cards); - counter++; - } - } - - if (counter > 0) { - // set the list items ... - if (!getRefNum) { - for (index = 0; index < counter; index++) { - if (!items) - items = MemHandleNew(sizeof(Char *)); - else - MemHandleResize(items, MemHandleSize(items) + sizeof(Char *)); - - itemsText = (Char **)MemHandleLock(items); - itemsText[index] = cardsInfo[index].nameP; - MemHandleUnlock(items); - } - - // save globals - itemsText = (Char **)MemHandleLock(items); - itemsList = (void *)MemHandleLock(cards); - itemsType = ITEM_TYPE_CARD; - - // ... or just return a default volRefNum - } else { - UInt16 volRefNum; - - cardsInfo = (CardInfoType *)MemHandleLock(cards); - volRefNum = cardsInfo[0].volRefNum; // return the first volref - MemHandleUnlock(cards); - MemHandleFree(cards); - - return volRefNum; - } - - // no card found ? free old list in any or return invalid volref - } else { - if (!getRefNum) - CardSlotFreeList(); - else - return vfsInvalidVolRef; - } - - return counter; -} - -static void ConfigTabInit(Boolean update = false) { - ListPtr listP; - - UInt16 index; - Int16 selected = -1; - - UInt16 counter = CardSlotFillList(); - listP = (ListType *)GetObjectPtr(TabCardConfigSlotList); - - // itemsText can be NULL if counter = 0 - LstSetListChoices (listP, itemsText, counter); - if (counter > 0) { - CardInfoType *cardsInfo = (CardInfoType *)itemsList; - - for (index = 0; index < counter; index++) { - if (cardsInfo[index].volRefNum == gPrefs->card.volRefNum) { - selected = index; - break; - } - } - - LstSetSelection(listP, selected); - } - - if (!update) { - FieldType *fld1P; - Char *cacheP; - MemHandle cacheH; - - fld1P = (FieldType *)GetObjectPtr(TabCardConfigCacheSizeField); - cacheH = MemHandleNew(FldGetMaxChars(fld1P)+1); - cacheP = (Char *)MemHandleLock(cacheH); - StrIToA(cacheP, gPrefs->card.cacheSize / 1024); - MemHandleUnlock(cacheH); - - FldSetTextHandle(fld1P, cacheH); - CtlSetValue((ControlType *)GetObjectPtr(TabCardConfigCacheCheckbox), gPrefs->card.useCache); - CtlSetValue((ControlType *)GetObjectPtr(TabCardConfigLedCheckbox), gPrefs->card.showLED); - CtlSetValue((ControlType *)GetObjectPtr(TabCardConfigDetectCheckbox), gPrefs->card.autoDetect); - // update ? redraw the list - } else { - WinScreenLock(winLockCopy); - LstDrawList(listP); - WinScreenUnlock(); - } -} - -static UInt16 ConfigTabSave() { - ControlType *cckP[3]; - FieldType *fld1P; - ListPtr listP; - FormPtr frmP; - UInt16 updateCode = frmRedrawUpdateMS; - - cckP[0] = (ControlType *)GetObjectPtr(TabCardConfigCacheCheckbox); - cckP[1] = (ControlType *)GetObjectPtr(TabCardConfigLedCheckbox); - cckP[2] = (ControlType *)GetObjectPtr(TabCardConfigDetectCheckbox); - - gPrefs->card.useCache = CtlGetValue(cckP[0]); - gPrefs->card.showLED = CtlGetValue(cckP[1]); - gPrefs->card.autoDetect = CtlGetValue(cckP[2]); - - fld1P = (FieldType *)GetObjectPtr(TabCardConfigCacheSizeField); - frmP = FrmGetActiveForm(); - if (FldGetTextLength(fld1P) == 0 && CtlGetValue(cckP[0]) == 1) { - TabSetActive(frmP, myTabP, 0); - FrmSetFocus(frmP, FrmGetObjectIndex(frmP, TabCardConfigCacheSizeField)); - FrmCustomAlert(FrmWarnAlert,"You must specified a cache size.",0,0); - return 0; - } - gPrefs->card.cacheSize = StrAToI(FldGetTextPtr(fld1P)) * 1024; - - Int16 selected; - CardInfoType *cardsInfo = (CardInfoType *)itemsList; - - listP = (ListType *)GetObjectPtr(TabCardConfigSlotList); - selected = LstGetSelection(listP); - if (selected == -1) { - gPrefs->card.volRefNum = vfsInvalidVolRef; - } else if (gPrefs->card.volRefNum != cardsInfo[selected].volRefNum) { - updateCode = frmRedrawUpdateMSImport; - gPrefs->card.volRefNum = cardsInfo[selected].volRefNum; - } - - CardSlotCreateDirs(); - CardSlotFreeList(); - - return updateCode; -} - -static void GameListTabInit() { - CtlSetValue((ControlType *)GetObjectPtr(TabCardGameListMoveCheckbox), gPrefs->card.moveDB); - CtlSetValue((ControlType *)GetObjectPtr(TabCardGameListDeleteCheckbox), gPrefs->card.deleteDB); - CtlSetValue((ControlType *)GetObjectPtr(TabCardGameListConfirmCheckbox), gPrefs->card.confirmMoveDB); -} - -static void GameListTabSave() { - ControlType *cckP[3]; - - cckP[0] = (ControlType *)GetObjectPtr(TabCardGameListMoveCheckbox); - cckP[1] = (ControlType *)GetObjectPtr(TabCardGameListDeleteCheckbox); - cckP[2] = (ControlType *)GetObjectPtr(TabCardGameListConfirmCheckbox); - - gPrefs->card.moveDB = CtlGetValue(cckP[0]); - gPrefs->card.deleteDB = CtlGetValue(cckP[1]); - gPrefs->card.confirmMoveDB = CtlGetValue(cckP[2]); -} - -static void GameListTabDraw() { - ControlType *cck1P; - FormPtr frmP = FrmGetActiveForm(); - - cck1P = (ControlType *)GetObjectPtr(TabCardGameListMoveCheckbox); - if (CtlGetValue(cck1P)) { - FrmShowObject(frmP, FrmGetObjectIndex (frmP, TabCardGameListDeleteCheckbox)); - FrmShowObject(frmP, FrmGetObjectIndex (frmP, TabCardGameListConfirmCheckbox)); - } else { - FrmHideObject(frmP, FrmGetObjectIndex (frmP, TabCardGameListDeleteCheckbox)); - FrmHideObject(frmP, FrmGetObjectIndex (frmP, TabCardGameListConfirmCheckbox)); - } -} - -static void CardSlotFormInit() { - TabType *tabP; - FormType *frmP = FrmGetActiveForm(); - - tabP = TabNewTabs(2); - TabAddContent(&frmP, tabP, "Cards", TabCardConfigForm); - TabAddContent(&frmP, tabP, "Game List", TabCardGameListForm, GameListTabDraw); - - ConfigTabInit(); - GameListTabInit(); - - FrmDrawForm(frmP); - TabSetActive(frmP, tabP, lastTab); - - myTabP = tabP; -} - -static void CardSlotFormSave() { - UInt16 updateCode; - updateCode = ConfigTabSave(); - if (!updateCode) return; - GameListTabSave(); - CardSlotCreateDirs(); - - TabDeleteTabs(myTabP); - FrmReturnToMain(updateCode); -} - -static void CardSlotFormCancel() { - CardSlotFreeList(); - TabDeleteTabs(myTabP); - FrmReturnToMain(); -} - -Boolean CardSlotFormHandleEvent(EventPtr eventP) { - FormPtr frmP = FrmGetActiveForm(); - Boolean handled = false; - - switch (eventP->eType) { - case frmOpenEvent: - CardSlotFormInit(); - handled = true; - break; - - case frmCloseEvent: - CardSlotFormCancel(); - handled = true; - break; - - case ctlSelectEvent: - switch (eventP->data.ctlSelect.controlID) - { - case (CardSlotForm + 1) : - case (CardSlotForm + 2) : - lastTab = (eventP->data.ctlSelect.controlID - CardSlotForm - 1); - TabSetActive(frmP, myTabP, lastTab); - break; - - case CardSlotOkButton: - CardSlotFormSave(); - break; - - case CardSlotCancelButton: - CardSlotFormCancel(); - break; - - case TabCardGameListMoveCheckbox: - GameListTabDraw(); - break; - } - handled = true; - break; - - default: - break; - } - - return handled; -} - -void CardSlotCreateDirs() { - if (gPrefs->card.volRefNum != vfsInvalidVolRef) { - VFSDirCreate(gPrefs->card.volRefNum, "/PALM"); - VFSDirCreate(gPrefs->card.volRefNum, "/PALM/Programs"); - VFSDirCreate(gPrefs->card.volRefNum, "/PALM/Programs/ScummVM"); - VFSDirCreate(gPrefs->card.volRefNum, "/PALM/Programs/ScummVM/Games"); - VFSDirCreate(gPrefs->card.volRefNum, "/PALM/Programs/ScummVM/Saved"); - VFSDirCreate(gPrefs->card.volRefNum, "/PALM/Programs/ScummVM/Audio"); - VFSDirCreate(gPrefs->card.volRefNum, "/PALM/Programs/ScummVM/Mods"); - VFSDirCreate(gPrefs->card.volRefNum, "/PALM/Programs/ScummVM/Themes"); - } -} - -void CardSlotFormUpdate() { - if (itemsType == ITEM_TYPE_CARD) { - CardSlotFreeList(); - ConfigTabInit(true); - } -} - -UInt16 parseCards() { - UInt16 volRefNum = CardSlotFillList(true); - CardSlotFreeList(); - return volRefNum; -} diff --git a/backends/platform/PalmOS/Src/launcher/forms/formCards.h b/backends/platform/PalmOS/Src/launcher/forms/formCards.h deleted file mode 100644 index 766c4793b9..0000000000 --- a/backends/platform/PalmOS/Src/launcher/forms/formCards.h +++ /dev/null @@ -1,33 +0,0 @@ -/* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - * - */ - -#ifndef __FORMCARDS_H__ -#define __FORMCARDS_H__ - -UInt16 parseCards(); -void CardSlotFormUpdate(); -void CardSlotCreateDirs(); - -#endif diff --git a/backends/platform/PalmOS/Src/launcher/forms/formEditGame.cpp b/backends/platform/PalmOS/Src/launcher/forms/formEditGame.cpp deleted file mode 100644 index 0540c12577..0000000000 --- a/backends/platform/PalmOS/Src/launcher/forms/formEditGame.cpp +++ /dev/null @@ -1,612 +0,0 @@ -/* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - * - */ - -#include <PalmOS.h> -#include <VFSMgr.h> -#include <FileBrowserLibCommon.h> -#include <FileBrowserLib68K.h> - -#include "formTabs.h" -#include "forms.h" - -#include "start.h" -#include "games.h" -#include "skin.h" - -#define errBadParam 0x1000 - -static TabType *myTabP; -static UInt16 lastTab = 0; - -UInt8 gFormEditMode; - -static void GameTabInit(GameInfoType *gameInfoP) { - FieldType *fld1P, *fld2P, *fld3P; - Char *nameP, *pathP, *gameP; - MemHandle nameH, pathH, gameH; - ListType *list1P; - - list1P = (ListType *)GetObjectPtr(TabGameInfoEngineList); - - itemsText = (Char **)MemPtrNew(ENGINE_COUNT * sizeof(Char *)); - for (int i = 0; i < ENGINE_COUNT; i++) - itemsText[i] = (Char *)engines[i].nameP; - LstSetListChoices(list1P, itemsText, ENGINE_COUNT); - - fld1P = (FieldType *)GetObjectPtr(TabGameInfoEntryNameField); - fld2P = (FieldType *)GetObjectPtr(TabGameInfoPathField); - fld3P = (FieldType *)GetObjectPtr(TabGameInfoGameField); - - nameH = MemHandleNew(FldGetMaxChars(fld1P)+1); - pathH = MemHandleNew(FldGetMaxChars(fld2P)+1); - gameH = MemHandleNew(FldGetMaxChars(fld3P)+1); - - nameP = (Char *)MemHandleLock(nameH); - pathP = (Char *)MemHandleLock(pathH); - gameP = (Char *)MemHandleLock(gameH); - - if (gameInfoP) { - LstSetSelection(list1P, gameInfoP->engine); - LstSetTopItem(list1P, gameInfoP->engine); - StrCopy(nameP, gameInfoP->nameP); - StrCopy(pathP, gameInfoP->pathP); - StrCopy(gameP, gameInfoP->gameP); - } else { - LstSetSelection(list1P, 0); - MemSet(nameP,MemHandleSize(nameH),0); - MemSet(pathP,MemHandleSize(pathH),0); - MemSet(gameP,MemHandleSize(gameH),0); - } - - CtlSetLabel((ControlType *)GetObjectPtr(TabGameInfoEnginePopTrigger), LstGetSelectionText(list1P, LstGetSelection(list1P))); - - MemHandleUnlock(nameH); - MemHandleUnlock(pathH); - MemHandleUnlock(gameH); - - FldSetTextHandle(fld1P, nameH); - FldSetTextHandle(fld2P, pathH); - FldSetTextHandle(fld3P, gameH); -} - -static Err GameTabSave(GameInfoType *gameInfoP) { - FieldType *fld1P, *fld2P, *fld3P; - ListType *list1P; - - FormType *frmP = FrmGetActiveForm(); - list1P = (ListType *)GetObjectPtr(TabGameInfoEngineList); - - fld1P = (FieldType *)GetObjectPtr(TabGameInfoEntryNameField); - fld2P = (FieldType *)GetObjectPtr(TabGameInfoPathField); - fld3P = (FieldType *)GetObjectPtr(TabGameInfoGameField); - - FldTrimText(fld1P); - FldTrimText(fld2P); - FldTrimText(fld3P); - - // test case - if (!gameInfoP) { - if (FldGetTextLength(fld1P) == 0) { - FrmCustomAlert(FrmWarnAlert,"You must specify an entry name.",0,0); - TabSetActive(frmP, myTabP, 0); - FrmSetFocus(frmP, FrmGetObjectIndex(frmP, TabGameInfoEntryNameField)); - return errBadParam; - - } else if (FldGetTextLength(fld2P) == 0) { - FrmCustomAlert(FrmWarnAlert,"You must specify a path.",0,0); - TabSetActive(frmP, myTabP, 0); - FrmSetFocus(frmP, FrmGetObjectIndex(frmP, TabGameInfoPathField)); - return errBadParam; - - } else if (FldGetTextLength(fld3P) == 0) { - FrmCustomAlert(FrmWarnAlert,"You must specify a game.",0,0); - TabSetActive(frmP, myTabP, 0); - FrmSetFocus(frmP, FrmGetObjectIndex(frmP, TabGameInfoGameField)); - return errBadParam; - } - - } else { - gameInfoP->engine = LstGetSelection(list1P); - StrCopy(gameInfoP->nameP, FldGetTextPtr(fld1P)); - StrCopy(gameInfoP->pathP, FldGetTextPtr(fld2P)); - StrCopy(gameInfoP->gameP, FldGetTextPtr(fld3P)); - - if (gameInfoP->pathP[StrLen(gameInfoP->pathP)-1] != '/') - StrCat(gameInfoP->pathP, "/"); - - MemPtrFree(itemsText); - itemsText = NULL; - } - - return errNone; -} - -static void DisplayInit(GameInfoType *gameInfoP) { - ListType *list1P, *list2P; - - list1P = (ListType *)GetObjectPtr(TabGameDisplayGfxListList); - list2P = (ListType *)GetObjectPtr(TabGameDisplayRenderList); - - if (gameInfoP) { - LstSetSelection(list1P, gameInfoP->gfxMode); - LstSetSelection(list2P, gameInfoP->renderMode); - CtlSetValue((ControlType *)GetObjectPtr(TabGameDisplayFilterCheckbox), gameInfoP->filter); - CtlSetValue((ControlType *)GetObjectPtr(TabGameDisplayFullscreenCheckbox), gameInfoP->fullscreen); - CtlSetValue((ControlType *)GetObjectPtr(TabGameDisplayAspectRatioCheckbox), gameInfoP->aspectRatio); - - } else { - LstSetSelection(list1P, 0); - CtlSetValue((ControlType *)GetObjectPtr(TabGameDisplayFilterCheckbox), 0); - CtlSetValue((ControlType *)GetObjectPtr(TabGameDisplayFullscreenCheckbox), 0); - CtlSetValue((ControlType *)GetObjectPtr(TabGameDisplayAspectRatioCheckbox), 0); - } - - CtlSetLabel((ControlType *)GetObjectPtr(TabGameDisplayGfxPopupPopTrigger), LstGetSelectionText(list1P, LstGetSelection(list1P))); - CtlSetLabel((ControlType *)GetObjectPtr(TabGameDisplayRenderPopTrigger), LstGetSelectionText(list2P, LstGetSelection(list2P))); -} - -static Err DisplaySave(GameInfoType *gameInfoP) { - ListType *list1P, *list2P; - ControlType *cck6P, *cck7P, *cck8P; - - FormType *frmP = FrmGetActiveForm(); - - list1P = (ListType *)GetObjectPtr(TabGameDisplayGfxListList); - list2P = (ListType *)GetObjectPtr(TabGameDisplayRenderList); - cck6P = (ControlType *)GetObjectPtr(TabGameDisplayFilterCheckbox); - cck7P = (ControlType *)GetObjectPtr(TabGameDisplayFullscreenCheckbox); - cck8P = (ControlType *)GetObjectPtr(TabGameDisplayAspectRatioCheckbox); - - if (!gameInfoP) { - } else { - gameInfoP->gfxMode = LstGetSelection(list1P); - gameInfoP->renderMode = LstGetSelection(list2P); - gameInfoP->filter = CtlGetValue(cck6P); - gameInfoP->fullscreen = CtlGetValue(cck7P); - gameInfoP->aspectRatio = CtlGetValue(cck8P); - } - - return errNone; -} - -static void OptionsInit(GameInfoType *gameInfoP) { - ListType *list2P, *list3P; - FieldType *fld4P, *fld5P, *fld6P; - Char *loadP, *roomP, *talkP; - MemHandle loadH, roomH, talkH; - - list2P = (ListType *)GetObjectPtr(TabGameOptionsLanguageList); - list3P = (ListType *)GetObjectPtr(TabGameOptionsPlatformList); - - fld4P = (FieldType *)GetObjectPtr(TabGameOptionsLoadSlotField); - fld5P = (FieldType *)GetObjectPtr(TabGameOptionsStartRoomField); - fld6P = (FieldType *)GetObjectPtr(TabGameOptionsTalkSpeedField); - - loadH = MemHandleNew(FldGetMaxChars(fld4P)+1); - roomH = MemHandleNew(FldGetMaxChars(fld5P)+1); - talkH = MemHandleNew(FldGetMaxChars(fld6P)+1); - - loadP = (Char *)MemHandleLock(loadH); - roomP = (Char *)MemHandleLock(roomH); - talkP = (Char *)MemHandleLock(talkH); - - if (gameInfoP) { - LstSetSelection(list2P, gameInfoP->language); - LstSetTopItem(list2P, gameInfoP->language); - LstSetSelection(list3P, gameInfoP->platform); - LstSetTopItem(list3P, gameInfoP->platform); - - StrIToA(loadP, gameInfoP->loadSlot); - StrIToA(roomP, gameInfoP->bootValue); - StrIToA(talkP, gameInfoP->talkValue); - - CtlSetValue((ControlType *)GetObjectPtr(TabGameOptionsLoadSlotCheckbox), gameInfoP->autoLoad); - CtlSetValue((ControlType *)GetObjectPtr(TabGameOptionsStartRoomCheckbox), gameInfoP->bootParam); - CtlSetValue((ControlType *)GetObjectPtr(TabGameOptionsAmigaCheckbox), gameInfoP->setPlatform); - CtlSetValue((ControlType *)GetObjectPtr(TabGameOptionsSubtitlesCheckbox), gameInfoP->subtitles); - CtlSetValue((ControlType *)GetObjectPtr(TabGameOptionsTalkSpeedCheckbox), gameInfoP->talkSpeed); - - } else { - LstSetSelection(list2P, 0); - LstSetSelection(list3P, 0); - - StrIToA(loadP, 0); - StrIToA(roomP, 0); - StrIToA(talkP, 60); - - CtlSetValue((ControlType *)GetObjectPtr(TabGameOptionsLoadSlotCheckbox), 0); - CtlSetValue((ControlType *)GetObjectPtr(TabGameOptionsStartRoomCheckbox), 0); - CtlSetValue((ControlType *)GetObjectPtr(TabGameOptionsAmigaCheckbox), 0); - CtlSetValue((ControlType *)GetObjectPtr(TabGameOptionsSubtitlesCheckbox), 1); - CtlSetValue((ControlType *)GetObjectPtr(TabGameOptionsTalkSpeedCheckbox), 0); - } - - MemHandleUnlock(loadH); - MemHandleUnlock(roomH); - MemHandleUnlock(talkH); - - FldSetTextHandle(fld4P, loadH); - FldSetTextHandle(fld5P, roomH); - FldSetTextHandle(fld6P, talkH); - - CtlSetLabel((ControlType *)GetObjectPtr(TabGameOptionsLanguagePopTrigger), LstGetSelectionText(list2P, LstGetSelection(list2P))); - CtlSetLabel((ControlType *)GetObjectPtr(TabGameOptionsPlatformPopTrigger), LstGetSelectionText(list3P, LstGetSelection(list3P))); -} - -static Err OptionsSave(GameInfoType *gameInfoP) { - FieldType *fld4P, *fld5P, *fld6P; - ControlType *cck1P, *cck2P, *cck3P, *cck4P, *cck5P; - ListType *list2P, *list3P; - - FormType *frmP = FrmGetActiveForm(); - - list2P = (ListType *)GetObjectPtr(TabGameOptionsLanguageList); - list3P = (ListType *)GetObjectPtr(TabGameOptionsPlatformList); - - fld4P = (FieldType *)GetObjectPtr(TabGameOptionsLoadSlotField); - fld5P = (FieldType *)GetObjectPtr(TabGameOptionsStartRoomField); - fld6P = (FieldType *)GetObjectPtr(TabGameOptionsTalkSpeedField); - - cck1P = (ControlType *)GetObjectPtr(TabGameOptionsLoadSlotCheckbox); - cck2P = (ControlType *)GetObjectPtr(TabGameOptionsStartRoomCheckbox); - cck3P = (ControlType *)GetObjectPtr(TabGameOptionsAmigaCheckbox); - cck4P = (ControlType *)GetObjectPtr(TabGameOptionsSubtitlesCheckbox); - cck5P = (ControlType *)GetObjectPtr(TabGameOptionsTalkSpeedCheckbox); - - if (!gameInfoP) { - if (FldGetTextLength(fld5P) == 0 && CtlGetValue(cck2P) == 1) { - FrmCustomAlert(FrmWarnAlert,"You must specify a room number.",0,0); - TabSetActive(frmP, myTabP, 2); - FrmSetFocus(frmP, FrmGetObjectIndex(frmP, TabGameOptionsStartRoomField)); - return errBadParam; - - } else if (FldGetTextLength(fld6P) == 0 && CtlGetValue(cck5P) == 1) { - FrmCustomAlert(FrmWarnAlert,"You must specify a talk speed.",0,0); - TabSetActive(frmP, myTabP, 2); - FrmSetFocus(frmP, FrmGetObjectIndex(frmP, TabGameOptionsTalkSpeedField)); - return errBadParam; - } - } else { - gameInfoP->language = LstGetSelection(list2P); - gameInfoP->platform = LstGetSelection(list3P); - - gameInfoP->autoLoad = CtlGetValue(cck1P); - gameInfoP->bootParam = CtlGetValue(cck2P); - gameInfoP->setPlatform = CtlGetValue(cck3P); - gameInfoP->subtitles = (CtlGetValue(cck4P)); - gameInfoP->talkSpeed = CtlGetValue(cck5P); - - gameInfoP->loadSlot = StrAToI(FldGetTextPtr(fld4P)); - gameInfoP->bootValue = StrAToI(FldGetTextPtr(fld5P)); - gameInfoP->talkValue = StrAToI(FldGetTextPtr(fld6P)); - } - - return errNone; -} - -static void GameManInit(UInt16 index) { - TabType *tabP; - FormType *frmP = FrmGetActiveForm(); - UInt16 active = lastTab; - - tabP = TabNewTabs(3); - TabAddContent(&frmP, tabP, "Game", TabGameInfoForm); - TabAddContent(&frmP, tabP, "Display", TabGameDisplayForm); - TabAddContent(&frmP, tabP, "Options", TabGameOptionsForm); - - UInt16 refNum; - if (SysLibFind(kFileBrowserLibName, &refNum)) - FrmRemoveObject(&frmP, FrmGetObjectIndex(frmP, TabGameInfoBrowsePushButton)); - - if (index != dmMaxRecordIndex) { - MemHandle recordH = NULL; - GameInfoType *gameInfoP; - - recordH = DmQueryRecord(gameDB, index); - gameInfoP = (GameInfoType *)MemHandleLock(recordH); - - GameTabInit(gameInfoP); - DisplayInit(gameInfoP); - OptionsInit(gameInfoP); - - MemHandleUnlock(recordH); - CtlSetUsable((ControlType *)GetObjectPtr(GameEditDeleteButton),true); - } else { - active = 0; // new game ? start with first tab - GameTabInit(0); - DisplayInit(0); - OptionsInit(0); - CtlSetUsable((ControlType *)GetObjectPtr(GameEditDeleteButton),false); - } - - FrmSetFocus(frmP, FrmGetObjectIndex(frmP, TabGameInfoEntryNameField)); - FrmDrawForm(frmP); - TabSetActive(frmP, tabP, active); - - myTabP = tabP; -} - -static void GameManSave(UInt16 index) { - MemHandle recordH; - GameInfoType *gameInfoP, newGameInfo; - - if (GameTabSave(0) == errBadParam) return; - if (DisplaySave(0) == errBadParam) return; - if (OptionsSave(0) == errBadParam) return; - - if (index != dmMaxRecordIndex) { - recordH = DmGetRecord(gameDB, index); - gameInfoP = (GameInfoType *)MemHandleLock(recordH); - MemMove(&newGameInfo, gameInfoP, sizeof(GameInfoType)); - - } else { - index = dmMaxRecordIndex; - GamUnselect(); - recordH = DmNewRecord(gameDB, &index, sizeof(GameInfoType)); - gameInfoP = (GameInfoType *)MemHandleLock(recordH); - - MemSet(&newGameInfo, sizeof(GameInfoType), 0); - newGameInfo.version = curItemVersion; - newGameInfo.icnID = 0xFFFF; - newGameInfo.selected = true; - - // default sound data - newGameInfo.musicInfo.volume.palm = 50; - newGameInfo.musicInfo.volume.music = 192; - newGameInfo.musicInfo.volume.sfx = 192; - newGameInfo.musicInfo.volume.speech = 192; - newGameInfo.musicInfo.volume.audiocd = 50; - - newGameInfo.musicInfo.sound.tempo = 100; - newGameInfo.musicInfo.sound.defaultTrackLength = 10; - newGameInfo.musicInfo.sound.firstTrack = 1; - } - - GameTabSave(&newGameInfo); - DisplaySave(&newGameInfo); - OptionsSave(&newGameInfo); - - DmWrite(gameInfoP, 0, &newGameInfo, sizeof(GameInfoType)); - - MemHandleUnlock(recordH); - DmReleaseRecord (gameDB, index, 0); - GamSortList(); - // update list position - { - RectangleType rArea; - UInt16 posIndex, maxView; - - // get the sorted index - index = GamGetSelected(); - // if new item is out of the list bounds, change current list pos - SknGetListBounds(&rArea, NULL); - maxView = rArea.extent.y / sknInfoListItemSize; - posIndex = gPrefs->listPosition; - - // if out of the current list position - if (!(index >= posIndex && index < (posIndex + maxView))) - gPrefs->listPosition = index; // this value is corrected in SknUpdateList if needed - } - - TabDeleteTabs(myTabP); - FrmReturnToMain(); - SknUpdateList(); -} - -/*********************************************************************** - * - * FUNCTION: EditGameFormSave - * FUNCTION: EditGameFormInit - * FUNCTION: EditGameFormHandleEvent - * - * DESCRIPTION: - * - * REVISION HISTORY: - * - * - ***********************************************************************/ -void EditGameFormDelete(Boolean direct) { - UInt16 index = GamGetSelected(); - - if (index == dmMaxRecordIndex) { - FrmCustomAlert(FrmWarnAlert, "Select an entry first.",0,0); - return; - - } else if (FrmCustomAlert(FrmConfirmAlert, "Do you really want to delete this entry ?", 0, 0) == FrmConfirmYes) { - DmRemoveRecord(gameDB, index); - if (!direct) { - TabDeleteTabs(myTabP); - FrmReturnToMain(); - } - GamSortList(); - SknUpdateList(); - } -} - -static void EditGameCancel() { - if (itemsText) { - MemPtrFree(itemsText); - itemsText = NULL; - } - TabDeleteTabs(myTabP); - FrmReturnToMain(); -} - -static void EditGameBowser() { - UInt16 refNum; - Err e; - - ControlPtr butP = (ControlType *)GetObjectPtr(TabGameInfoBrowsePushButton); - CtlSetValue(butP, 0); - - e = SysLibFind (kFileBrowserLibName, &refNum); - if (!e) { - e = FileBrowserLibOpen (refNum); - if (!e) { - UInt16 volRefNum = gPrefs->card.volRefNum; - Char *textP, *pathP = (Char *)MemPtrNew(kFileBrowserLibPathBufferSize); - pathP[0] = chrNull; - - if (FileBrowserLibShowOpenDialog(refNum, &volRefNum, pathP, 0, 0, 0, "Game Data Path", kFileBrowserLibFlagNoFiles)) { - FieldPtr fldP; - MemHandle textH; - Int16 offset, copySize, maxSize; - - fldP = (FieldType *)GetObjectPtr(TabGameInfoPathField); - maxSize = FldGetMaxChars(fldP); - textH = FldGetTextHandle(fldP); - - FldSetTextHandle(fldP, NULL); - textP = (Char *)MemHandleLock(textH); - offset = 0; - copySize = StrLen(pathP); - - if (StrNCaselessCompare(pathP, "/Palm/Programs/ScummVM/Games/", 29) == 0) { - if (StrLen(pathP) == 29) { - copySize = 1; - pathP[0] = '.'; - } else { - copySize -= 29; - offset = 29; - } - } - - if (copySize > maxSize) - copySize = maxSize; - StrNCopy(textP, pathP + offset, copySize); - - MemHandleUnlock(textH); - FldSetTextHandle(fldP, textH); - FldDrawField(fldP); - FldGrabFocus(fldP); - } - - MemPtrFree(pathP); - FileBrowserLibClose(refNum); - } - } -} - -Boolean EditGameFormHandleEvent(EventPtr eventP) { - FormPtr frmP = FrmGetActiveForm(); - Boolean handled = false; - - switch (eventP->eType) { - case frmCloseEvent: - EditGameCancel(); - handled = true; - break; - - case frmOpenEvent: - switch (gFormEditMode) { - case edtModeAdd: - GameManInit(dmMaxRecordIndex); - break; - case edtModeEdit: - case edtModeParams: - default : - GameManInit(GamGetSelected()); - break; - } - handled = true; - break; - - case keyDownEvent: - switch (eventP->data.keyDown.chr) { - case chrLineFeed: - case chrCarriageReturn: - return true; - } - break; - - case ctlSelectEvent: - switch (eventP->data.ctlSelect.controlID) - { - case (GameEditForm + 1) : - case (GameEditForm + 2) : - case (GameEditForm + 3) : - lastTab = (eventP->data.ctlSelect.controlID - GameEditForm - 1); - TabSetActive(frmP, myTabP, lastTab); - break; - - case GameEditOKButton: - switch (gFormEditMode) { - case edtModeAdd: - GameManSave(dmMaxRecordIndex); - break; - case edtModeEdit: - case edtModeParams: - default : - GameManSave(GamGetSelected()); - break; - } - break; - - case GameEditCancelButton: - EditGameCancel(); - break; - - case GameEditDeleteButton: - EditGameFormDelete(false); - break; - - case TabGameInfoBrowsePushButton: - EditGameBowser(); - break; - - case TabGameInfoEnginePopTrigger: - FrmList(eventP, TabGameInfoEngineList); - FrmHideObject(frmP, FrmGetObjectIndex(frmP, TabGameInfoEngineList)); - break; - - case TabGameDisplayGfxPopupPopTrigger: - FrmList(eventP, TabGameDisplayGfxListList); - FrmHideObject(frmP, FrmGetObjectIndex(frmP, TabGameDisplayGfxListList)); - break; - - case TabGameDisplayRenderPopTrigger: - FrmList(eventP, TabGameDisplayRenderList); - FrmHideObject(frmP, FrmGetObjectIndex(frmP, TabGameDisplayRenderList)); - break; - - case TabGameOptionsLanguagePopTrigger: - FrmList(eventP, TabGameOptionsLanguageList); - FrmHideObject(frmP, FrmGetObjectIndex(frmP, TabGameOptionsLanguageList)); - break; - - case TabGameOptionsPlatformPopTrigger: - FrmList(eventP, TabGameOptionsPlatformList); - FrmHideObject(frmP, FrmGetObjectIndex(frmP, TabGameOptionsPlatformList)); - break; - } - handled = true; - break; - - default: - break; - } - - return handled; -} diff --git a/backends/platform/PalmOS/Src/launcher/forms/formEditGame.h b/backends/platform/PalmOS/Src/launcher/forms/formEditGame.h deleted file mode 100644 index 90d271e115..0000000000 --- a/backends/platform/PalmOS/Src/launcher/forms/formEditGame.h +++ /dev/null @@ -1,39 +0,0 @@ -/* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - * - */ - -#ifndef __FORMEDITGAME_H__ -#define __FORMEDITGAME_H__ - -// edit game mode -enum { - edtModeAdd, - edtModeEdit, - edtModeParams -}; - -extern UInt8 gFormEditMode; -void EditGameFormDelete(Boolean direct); - -#endif diff --git a/backends/platform/PalmOS/Src/launcher/forms/formMisc.cpp b/backends/platform/PalmOS/Src/launcher/forms/formMisc.cpp deleted file mode 100644 index 35b44486e9..0000000000 --- a/backends/platform/PalmOS/Src/launcher/forms/formMisc.cpp +++ /dev/null @@ -1,275 +0,0 @@ -/* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - * - */ - -#include <PalmOS.h> - -#include "start.h" -#include "formTabs.h" -#include "forms.h" -#include "globals.h" - -static TabType *myTabP; -static UInt16 lastTab = 0; - -static Boolean ScummVMTabSave() { - FieldType *fld1P, *fld2P; - ControlType *cckP[11]; - FormPtr frmP; - - fld1P = (FieldType *)GetObjectPtr(TabMiscScummVMDebugLevelField); - fld2P = (FieldType *)GetObjectPtr(TabMiscScummVMAutosaveField); - - cckP[0] = (ControlType *)GetObjectPtr(TabMiscScummVMAutosaveCheckbox); - cckP[3] = (ControlType *)GetObjectPtr(TabMiscScummVMDebugCheckbox); - cckP[6] = (ControlType *)GetObjectPtr(TabMiscScummVMDemoCheckbox); - cckP[9] = (ControlType *)GetObjectPtr(TabMiscScummVMCopyProtectionCheckbox); - cckP[10]= (ControlType *)GetObjectPtr(TabMiscScummVMAltIntroCheckbox); - - frmP = FrmGetActiveForm(); - if (FldGetTextLength(fld1P) == 0 && CtlGetValue(cckP[3]) == 1) { - TabSetActive(frmP, myTabP, 1); - FrmSetFocus(frmP, FrmGetObjectIndex(frmP, TabMiscScummVMDebugLevelField)); - FrmCustomAlert(FrmWarnAlert,"You must specify a debug level.",0,0); - return false; - - } else if (FldGetTextLength(fld2P) == 0 && CtlGetValue(cckP[0]) == 1) { - TabSetActive(frmP, myTabP, 1); - FrmSetFocus(frmP, FrmGetObjectIndex(frmP, TabMiscScummVMAutosaveField)); - FrmCustomAlert(FrmWarnAlert,"You must specify a period.",0,0); - return false; - } - - gPrefs->autoSave = CtlGetValue(cckP[0]); - gPrefs->debug = CtlGetValue(cckP[3]); - gPrefs->demoMode = CtlGetValue(cckP[6]); - gPrefs->copyProtection = CtlGetValue(cckP[9]); - gPrefs->altIntro = CtlGetValue(cckP[10]); - - gPrefs->debugLevel = StrAToI(FldGetTextPtr(fld1P)); - gPrefs->autoSavePeriod = StrAToI(FldGetTextPtr(fld2P)); - - return true; -} - -static void PalmOSTabSave() { - ControlType *cckP[11]; - - if (OPTIONS_TST(kOptDeviceARM) && !OPTIONS_TST(kOptDeviceZodiac)) { - cckP[3]= (ControlType *)GetObjectPtr(TabMiscPalmOSAdvancedCheckbox); - gPrefs->advancedMode = CtlGetValue(cckP[3]); - } - - if (!OPTIONS_TST(kOptDeviceARM)) { - cckP[2] = (ControlType *)GetObjectPtr(TabMiscPalmOSStdPaletteCheckbox); - gPrefs->stdPalette = CtlGetValue(cckP[2]); - } - - cckP[0] = (ControlType *)GetObjectPtr(TabMiscPalmOSVibratorCheckbox); - cckP[1] = (ControlType *)GetObjectPtr(TabMiscPalmOSNoAutoOffCheckbox); - cckP[4] = (ControlType *)GetObjectPtr(TabMiscPalmOSLargerStackCheckbox); - cckP[5] = (ControlType *)GetObjectPtr(TabMiscPalmOSExitLauncherCheckbox); - cckP[6] = (ControlType *)GetObjectPtr(TabMiscPalmOSStylusClickCheckbox); - cckP[7] = (ControlType *)GetObjectPtr(TabMiscPalmOSArrowCheckbox); - - gPrefs->vibrator = CtlGetValue(cckP[0]); - gPrefs->autoOff = !CtlGetValue(cckP[1]); - gPrefs->setStack = CtlGetValue(cckP[4]); - gPrefs->exitLauncher = CtlGetValue(cckP[5]); - gPrefs->stylusClick = !CtlGetValue(cckP[6]); - gPrefs->arrowKeys = CtlGetValue(cckP[7]); -} - -static void ExtsTabSave() { - ControlType *cckP[2]; - - if (OPTIONS_TST(kOptLightspeedAPI)) { - ListType *list1P = (ListType *)GetObjectPtr(TabMiscExtsLightspeedList); - cckP[0] = (ControlType *)GetObjectPtr(TabMiscExtsLightspeedCheckbox); - - gPrefs->lightspeed.enable = CtlGetValue(cckP[0]); - gPrefs->lightspeed.mode = LstGetSelection(list1P); - } - if (OPTIONS_TST(kOptGoLcdAPI)) { - cckP[1] = (ControlType *)GetObjectPtr(TabMiscExtsGolcdCheckbox); - gPrefs->goLCD = CtlGetValue(cckP[1]); - } -} - -static void ScummVMTabInit() { - FieldType *fld1P, *fld2P; - Char *levelP, *periodP; - MemHandle levelH, periodH; - - CtlSetValue((ControlType *)GetObjectPtr(TabMiscScummVMAutosaveCheckbox), gPrefs->autoSave); - CtlSetValue((ControlType *)GetObjectPtr(TabMiscScummVMDebugCheckbox), gPrefs->debug); - CtlSetValue((ControlType *)GetObjectPtr(TabMiscScummVMDemoCheckbox), gPrefs->demoMode); - CtlSetValue((ControlType *)GetObjectPtr(TabMiscScummVMCopyProtectionCheckbox), gPrefs->copyProtection); - CtlSetValue((ControlType *)GetObjectPtr(TabMiscScummVMAltIntroCheckbox), gPrefs->altIntro); - - fld1P = (FieldType *)GetObjectPtr(TabMiscScummVMDebugLevelField); - fld2P = (FieldType *)GetObjectPtr(TabMiscScummVMAutosaveField); - - levelH = MemHandleNew(FldGetMaxChars(fld1P)+1); - levelP = (Char *)MemHandleLock(levelH); - StrIToA(levelP, gPrefs->debugLevel); - MemHandleUnlock(levelH); - - periodH = MemHandleNew(FldGetMaxChars(fld2P)+1); - periodP = (Char *)MemHandleLock(periodH); - StrIToA(periodP, gPrefs->autoSavePeriod); - MemHandleUnlock(periodH); - - FldSetTextHandle(fld1P, levelH); - FldSetTextHandle(fld2P, periodH); -} - -static void PalmOSTabInit() { - if (OPTIONS_TST(kOptDeviceARM) && !OPTIONS_TST(kOptDeviceZodiac)) - CtlSetValue((ControlType *)GetObjectPtr(TabMiscPalmOSAdvancedCheckbox), gPrefs->advancedMode); - - if (!OPTIONS_TST(kOptDeviceARM)) - CtlSetValue((ControlType *)GetObjectPtr(TabMiscPalmOSStdPaletteCheckbox), gPrefs->stdPalette); - - CtlSetValue((ControlType *)GetObjectPtr(TabMiscPalmOSExitLauncherCheckbox), gPrefs->exitLauncher); - CtlSetValue((ControlType *)GetObjectPtr(TabMiscPalmOSLargerStackCheckbox), gPrefs->setStack); - CtlSetValue((ControlType *)GetObjectPtr(TabMiscPalmOSVibratorCheckbox), gPrefs->vibrator); - CtlSetValue((ControlType *)GetObjectPtr(TabMiscPalmOSNoAutoOffCheckbox), !gPrefs->autoOff); - CtlSetValue((ControlType *)GetObjectPtr(TabMiscPalmOSStylusClickCheckbox), !gPrefs->stylusClick); - CtlSetValue((ControlType *)GetObjectPtr(TabMiscPalmOSArrowCheckbox), gPrefs->arrowKeys); -} - -static void ExtsTabInit() { - if (OPTIONS_TST(kOptLightspeedAPI)) { - ListType *list1P = (ListType *)GetObjectPtr(TabMiscExtsLightspeedList); - LstSetSelection(list1P, gPrefs->lightspeed.mode); - CtlSetLabel((ControlType *)GetObjectPtr(TabMiscExtsLightspeedPopTrigger), LstGetSelectionText(list1P, LstGetSelection(list1P))); - CtlSetValue((ControlType *)GetObjectPtr(TabMiscExtsLightspeedCheckbox), gPrefs->lightspeed.enable); - } - - if (OPTIONS_TST(kOptGoLcdAPI)) - CtlSetValue((ControlType *)GetObjectPtr(TabMiscExtsGolcdCheckbox), gPrefs->goLCD); -} - -static void MiscFormSave() { - if (!ScummVMTabSave()) return; - PalmOSTabSave(); - ExtsTabSave(); - - TabDeleteTabs(myTabP); - FrmReturnToMain(); -} - -static void MiscFormInit() { - TabType *tabP; - FormType *frmP = FrmGetActiveForm(); - UInt8 extsCnt = 2; - - tabP = TabNewTabs(3); - TabAddContent(&frmP, tabP, "PalmOS", TabMiscPalmOSForm); - TabAddContent(&frmP, tabP, "ScummVM", TabMiscScummVMForm); - TabAddContent(&frmP, tabP, "More ...", TabMiscExtsForm); - - if (OPTIONS_TST(kOptDeviceARM)) { - FrmRemoveObject(&frmP, FrmGetObjectIndex(frmP, TabMiscPalmOSStdPaletteCheckbox)); - TabMoveUpObject(frmP, TabMiscPalmOSAdvancedCheckbox, 12); - } - - if (!OPTIONS_TST(kOptDeviceARM) || OPTIONS_TST(kOptDeviceZodiac)) - FrmRemoveObject(&frmP, FrmGetObjectIndex(frmP, TabMiscPalmOSAdvancedCheckbox)); - - if (!OPTIONS_TST(kOptGoLcdAPI)) { - FrmRemoveObject(&frmP, FrmGetObjectIndex(frmP, TabMiscExtsGolcdCheckbox)); - // move lightspeed - TabMoveUpObject(frmP, TabMiscExtsLightspeedCheckbox, 12); - TabMoveUpObject(frmP, TabMiscExtsLightspeedPopTrigger, 12); - TabMoveUpObject(frmP, TabMiscExtsLightspeedList, 12); - TabMoveUpObject(frmP, TabMiscExtsNothingLabel, 12); - extsCnt--; - } - - if (!OPTIONS_TST(kOptLightspeedAPI)) { - FrmRemoveObject(&frmP, FrmGetObjectIndex(frmP, TabMiscExtsLightspeedCheckbox)); -// FrmRemoveObject(&frmP, FrmGetObjectIndex(frmP, TabMiscExtsLightspeedList)); // cannot remove this ? - FrmRemoveObject(&frmP, FrmGetObjectIndex(frmP, TabMiscExtsLightspeedPopTrigger)); - TabMoveUpObject(frmP, TabMiscExtsNothingLabel, 12); - extsCnt--; - } - - if (extsCnt) - FrmRemoveObject(&frmP, FrmGetObjectIndex(frmP, TabMiscExtsNothingLabel)); - - PalmOSTabInit(); - ScummVMTabInit(); - ExtsTabInit(); - - FrmDrawForm(frmP); - TabSetActive(frmP, tabP, lastTab); - - myTabP = tabP; -} - -Boolean MiscFormHandleEvent(EventPtr eventP) { - FormPtr frmP = FrmGetActiveForm(); - Boolean handled = false; - - switch (eventP->eType) { - case frmOpenEvent: - MiscFormInit(); - handled = true; - break; - - case ctlSelectEvent: - switch (eventP->data.ctlSelect.controlID) - { - case (MiscForm + 1) : - case (MiscForm + 2) : - case (MiscForm + 3) : - lastTab = (eventP->data.ctlSelect.controlID - MiscForm - 1); - TabSetActive(frmP, myTabP, lastTab); - break; - - case TabMiscExtsLightspeedPopTrigger: - FrmList(eventP, TabMiscExtsLightspeedList); - FrmHideObject(frmP, FrmGetObjectIndex(frmP, TabMiscExtsLightspeedList)); - break; - - case MiscOKButton: - MiscFormSave(); - break; - - case MiscCancelButton: - TabDeleteTabs(myTabP); - FrmReturnToMain(); - break; - } - handled = true; - break; - - default: - break; - } - - return handled; -} diff --git a/backends/platform/PalmOS/Src/launcher/forms/formSelect.cpp b/backends/platform/PalmOS/Src/launcher/forms/formSelect.cpp deleted file mode 100644 index bb0ac894c2..0000000000 --- a/backends/platform/PalmOS/Src/launcher/forms/formSelect.cpp +++ /dev/null @@ -1,278 +0,0 @@ -/* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - * - */ - -#include <PalmOS.h> -#include "StarterRsc.h" -#include "formUtil.h" -#include "games.h" -#include "start.h" - -#define ARRAYSIZE(x) ((int)(sizeof(x) / sizeof(x[0]))) - -static Char **items = NULL; -Int16 selectedEngine = -1; - -// Supported games -static const char *engine_agos[] = { - "Demon in my Pocket", - "Elvira - Mistress of the Dark", - "Elvira II - The Jaws of Cerberus", - "Jumble", - "NoPatience", - "Simon the Sorcerer I", - "Simon the Sorcerer II", - "Swampy Adventures", - "The Feeble Files", - "Waxworks" -}; - -static const char *engine_sky[] = { - "Floppy, CD and Demo" -}; - -static const char *engine_sword1[] = { - "The Shadow of the Templars (PC/Mac)", - "The Shadow of the Templars (Demo)" -}; - -static const char *engine_sword2[] = { - "The Smoking Mirror", - "The Smoking Mirror (Demo)" -}; - -static const char *engine_cine[] = { - "Future Wars", - "Operation Stealth" -}; - -static const char *engine_queen[] = { - "Flight of the Amazon Queen" -}; - -static const char *engine_lure[] = { - "Lure of the Tempress" -}; - -static const char *engine_gob[] = { - "Bargon Attack", - "Gobliiins", - "Gobliins 2", - "Goblins Quest 3", - "The Bizarre Adventures of Woodruff and the Schnibble", - "Ween: The Prophecy", -}; - -static const char *engine_kyra[] = { - "The Legend of Kyrandia", - "The Legend of Kyrandia: The Hand of Fate", - "The Legend of Kyrandia: Malcolm's Revenge" -}; - -static const char *engine_parallaction[] = { - "Nippon Safes Inc." -}; - -static const char *engine_saga[] = { - "I Have No Mouth And I Must Scream", - "Inherit the earth" -}; - -static const char *engine_scumm[] = { - "Day of the Tentacle", - "Indiana Jones and the Fate of Atlantis", - "Indiana Jones and the Last Crusade", - "Loom", - "Maniac Mansion", - "Monkey Island 2: LeChuck's Revenge", - "Passport to Adventure", - "Sam & Max Hit the Road", - "The Secret of Monkey Island" - "Zak McKracken and the Alien Mindbenders" -}; - -static const char *engine_agi[] = { - "AGI Tetris", - "Caitlyn's Destiny", - "Donald Duck's Playground", - "Fanmade AGI game", - "Gold Rush!", - "King's Quest I: Quest for the Crown", - "King's Quest II: Romancing the Throne", - "King's Quest III: To Heir Is Human", - "King's Quest IV: The Perils of Rosella", - "Leisure Suit Larry in the Land of the Lounge Lizards", - "Mixed-Up Mother Goose", - "Manhunter 1: New York", - "Manhunter 2: San Francisco", - "Police Quest I: In Pursuit of the Death Angel", - "Serguei's Destiny 1", - "Serguei's Destiny 2", - "Space Quest 0: Replicated", - "Space Quest I: The Sarien Encounter", - "Space Quest II: Vohaul's Revenge", - "Space Quest X: The Lost Chapter", - "The Black Cauldron", - "Xmas Card" -}; - -static const char *engine_touche[] = { - "Touche: The Adventures of the Fifth Musketeer" -}; - -static const char *engine_cruise[] = { - "Cruise for a Corpse" -}; - -static const struct { - int size; - const char **listP; -} supported[] = { - { ARRAYSIZE(engine_agos), engine_agos }, - { ARRAYSIZE(engine_sky), engine_sky }, - { ARRAYSIZE(engine_sword1), engine_sword1 }, - { ARRAYSIZE(engine_sword2), engine_sword2 }, - { ARRAYSIZE(engine_cine), engine_cine }, - { ARRAYSIZE(engine_queen), engine_queen }, - { ARRAYSIZE(engine_lure), engine_lure }, - { ARRAYSIZE(engine_gob), engine_gob }, - { ARRAYSIZE(engine_kyra), engine_kyra }, - { ARRAYSIZE(engine_parallaction), engine_parallaction }, - { ARRAYSIZE(engine_saga), engine_saga }, - { ARRAYSIZE(engine_scumm), engine_scumm }, - { ARRAYSIZE(engine_agi), engine_agi }, - { ARRAYSIZE(engine_touche), engine_touche }, - { ARRAYSIZE(engine_cruise), engine_cruise } -}; - -static void SelectorSetList(Int16 sel) { - ListType *listP; - FormPtr frmP = FrmGetActiveForm(); - - Boolean toBeDrawn = (items != NULL); - if (items) - MemPtrFree(items); - - listP = (ListType *)FrmGetObjectPtr(frmP, FrmGetObjectIndex(frmP, EngineSupportedList)); - items = (Char **)MemPtrNew(supported[sel].size * sizeof(Char *)); - - for (int i = 0; i < supported[sel].size; i++) - items[i] = (Char *)supported[sel].listP[i]; - - LstSetListChoices (listP, items, supported[sel].size); - LstSetTopItem(listP, 0); - LstSetSelection(listP, -1); - - if (toBeDrawn) { - WinScreenLock(winLockCopy); - LstDrawList(listP); - WinScreenUnlock(); - } -} - -static void SelectorFormInit() { - ListType *listP; - FormPtr frmP = FrmGetActiveForm(); - - listP = (ListType *)FrmGetObjectPtr(frmP, FrmGetObjectIndex(frmP, EngineListList)); - itemsText = (Char **)MemPtrNew(ENGINE_COUNT * sizeof(Char *)); - - for (int i = 0; i < ENGINE_COUNT; i++) - itemsText[i] = (Char *)engines[i].nameP; - - LstSetListChoices (listP, itemsText, ENGINE_COUNT); - LstSetSelection(listP, 0); - - SelectorSetList(0); - - FrmDrawForm(frmP); -} - -static void SelectorFormFree(bool quit) { - items = NULL; - - if (!quit) { - ListType *listP = (ListType *)GetObjectPtr(EngineListList); - Int16 sel = LstGetSelection(listP); - - FrmReturnToMain(); - StartScummVM(sel); - - } else { - FrmReturnToMain(); - - if (bDirectMode) { - // force exit if nothing selected - EventType event; - event.eType = keyDownEvent; - event.data.keyDown.chr = vchrLaunch; - event.data.keyDown.modifiers = commandKeyMask; - EvtAddUniqueEventToQueue(&event, 0, true); - } - } -} - -Boolean SelectorFormHandleEvent(EventPtr eventP) { - FormPtr frmP = FrmGetActiveForm(); - Boolean handled = false; - - switch (eventP->eType) { - case frmOpenEvent: - SelectorFormInit(); - handled = true; - break; - - case frmCloseEvent: - SelectorFormFree(true); - handled = true; - break; - - case lstSelectEvent: - if (eventP->data.lstSelect.listID == EngineSupportedList) - LstSetSelection(eventP->data.lstSelect.pList, -1); - else - SelectorSetList(eventP->data.lstSelect.selection); - handled = true; - break; - - case ctlSelectEvent: - switch (eventP->data.ctlSelect.controlID) - { - case EngineOkButton: - SelectorFormFree(false); - break; - - case EngineCancelButton: - SelectorFormFree(true); - break; - } - handled = true; - break; - - default: - break; - } - - return handled; -} diff --git a/backends/platform/PalmOS/Src/launcher/forms/formSkins.cpp b/backends/platform/PalmOS/Src/launcher/forms/formSkins.cpp deleted file mode 100644 index 9566a25311..0000000000 --- a/backends/platform/PalmOS/Src/launcher/forms/formSkins.cpp +++ /dev/null @@ -1,267 +0,0 @@ -#include <PalmOS.h> - -#include "palmdefs.h" -#include "start.h" -#include "forms.h" -#include "skin.h" -#include "globals.h" - -static Int16 SkinsFormCompare(SkinInfoType *a, SkinInfoType *b, SortRecordInfoPtr, SortRecordInfoPtr, MemHandle) { - return StrCompare(a->nameP, b->nameP); -} - -static void SkinsFormInit(Boolean bDraw) { - MemHandle skins = NULL; - SkinInfoType *skinsInfo; - UInt16 numSkins = 0; - - FormPtr frmP; - ListType *listP; - MemHandle items = NULL; - ControlType *cck1P; - DmSearchStateType stateInfo; - UInt16 cardNo; - LocalID dbID; - - Err errInfo; - Char nameP[32]; - - itemsText = NULL; - - // parse and save skins - Err err = DmGetNextDatabaseByTypeCreator(true, &stateInfo, 'skin', appFileCreator, false, &cardNo, &dbID); - while (!err && dbID) { - errInfo = DmDatabaseInfo (cardNo, dbID, nameP, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); - if (!errInfo) - { - if (!skins) - skins = MemHandleNew(sizeof(SkinInfoType)); - else - MemHandleResize(skins, MemHandleSize(skins) + sizeof(SkinInfoType)); - - skinsInfo = (SkinInfoType *)MemHandleLock(skins); - StrCopy(skinsInfo[numSkins].nameP, nameP); - skinsInfo[numSkins].cardNo = cardNo; - skinsInfo[numSkins].dbID = dbID; - MemHandleUnlock(skins); - numSkins++; - } - err = DmGetNextDatabaseByTypeCreator(false, &stateInfo, 'skin', appFileCreator, false, &cardNo, &dbID); - } - - Int16 selected = -1; - - cck1P = (ControlType *)GetObjectPtr(SkinsSoundClickCheckbox); - CtlSetValue(cck1P, gPrefs->soundClick); - - listP = (ListType *)GetObjectPtr(SkinsSkinList); - skinsInfo = (SkinInfoType *)MemHandleLock(skins); - SysQSort(skinsInfo, numSkins, sizeof(SkinInfoType), (CmpFuncPtr)SkinsFormCompare, 0); - - // create itemsText (TODO: create a custom draw function) - for (UInt16 index=0; index < numSkins; index++) - { - if (!items) - items = MemHandleNew(sizeof(Char *)); - else - MemHandleResize(items, MemHandleSize(items) + sizeof(Char *)); - - itemsText = (Char **)MemHandleLock(items); - itemsText[index] = skinsInfo[index].nameP; - MemHandleUnlock(items); - - if ( gPrefs->skin.cardNo == skinsInfo[index].cardNo && - gPrefs->skin.dbID == skinsInfo[index].dbID && - StrCompare(gPrefs->skin.nameP, skinsInfo[index].nameP) == 0) - selected = index; - } - // save globals and set list - itemsText = (Char **)MemHandleLock(items); - itemsList = (void *)skinsInfo; - itemsType = ITEM_TYPE_SKIN; - - LstSetListChoices (listP, itemsText, numSkins); - LstSetSelection(listP, selected); - - // bDraw = true -> draw whole from - // bDraw = false -> redraw list - if (bDraw) { - frmP = FrmGetActiveForm(); - FrmDrawForm(frmP); - } else { - WinScreenLock(winLockCopy); - LstDrawList(listP); - WinScreenUnlock(); -// LstSetSelection(listP, 0); - } -} - -static void SkinsFormExit(Boolean bSave) { - MemHandle skins; - MemHandle items; - SkinInfoType *skinsInfo; - - ListType *listP; - Int16 selected; - - listP = (ListType *)GetObjectPtr(SkinsSkinList); - selected = LstGetSelection(listP); - - if (bSave && selected == -1) { // may never occurred... - FrmCustomAlert(FrmWarnAlert, "You didn't select a skin.", 0, 0); - return; - } - - skinsInfo = (SkinInfoType *)itemsList; - skins = MemPtrRecoverHandle(skinsInfo); - items = MemPtrRecoverHandle(itemsText); - - itemsText = NULL; - itemsList = NULL; - itemsType = ITEM_TYPE_UNKNOWN; - - if (bSave) { - ControlType *cck1P; - - StrCopy(gPrefs->skin.nameP, skinsInfo[selected].nameP); - gPrefs->skin.cardNo = skinsInfo[selected].cardNo; - gPrefs->skin.dbID = skinsInfo[selected].dbID; - -/* DmOpenRef skinDB = SknOpenSkin(); - UInt32 depth = SknGetDepth(skinDB); - SknCloseSkin(skinDB); - - if (depth != 8 && depth != 16) depth = 8; - - if (depth == 16 && !OPTIONS_TST(kOptMode16Bit)) { - FrmCustomAlert(FrmInfoAlert, "You can only use 8bit skin on your device.", 0, 0); - gPrefs->skin.cardNo = cardNo; - gPrefs->skin.dbID = dbID; - } -*/ - cck1P = (ControlType *)GetObjectPtr(SkinsSoundClickCheckbox); - gPrefs->soundClick = CtlGetValue(cck1P); - } - - FrmReturnToMain(); - - MemHandleUnlock(items); - MemHandleUnlock(skins); - MemHandleFree(items); - MemHandleFree(skins); - - if (bSave) - SknApplySkin(); -} - -static void SkinsFormBeam() { - SkinInfoType *skinsInfo; - - ListType *listP; - Int16 selected; - Err err; - - listP = (ListType *)GetObjectPtr(SkinsSkinList); - selected = LstGetSelection(listP); - - if (selected == -1) { // may never occurred... - FrmCustomAlert(FrmWarnAlert, "You didn't select a skin.", 0, 0); - return; - } - - skinsInfo = (SkinInfoType *)itemsList; - err = SendDatabase(0, skinsInfo[selected].dbID, "skin.pdb", "\nScummVM Skin"); - -// if (err) -// FrmCustomAlert(FrmErrorAlert, "Unable to beam this skin.",0,0); -} - -static void SkinsFormDelete() { - MemHandle skins; - MemHandle items; - SkinInfoType *skinsInfo; - - ListType *listP; - Int16 selected; - - listP = (ListType *)GetObjectPtr(SkinsSkinList); - selected = LstGetSelection(listP); - - if (selected == -1) { // may never occurred... - FrmCustomAlert(FrmInfoAlert, "You didn't select a skin.", 0, 0); - return; - } - - skinsInfo = (SkinInfoType *)itemsList; - skins = MemPtrRecoverHandle(skinsInfo); - items = MemPtrRecoverHandle(itemsText); - - if ( gPrefs->skin.cardNo == skinsInfo[selected].cardNo && - gPrefs->skin.dbID == skinsInfo[selected].dbID && - StrCompare(gPrefs->skin.nameP, skinsInfo[selected].nameP) == 0) { - FrmCustomAlert(FrmInfoAlert, "You cannot delete the active skin.",0,0); - return; - - } else { - Err err = DmDeleteDatabase(0, skinsInfo[selected].dbID); - if (!err) { - - itemsText = NULL; - itemsList = NULL; - itemsType = ITEM_TYPE_UNKNOWN; - - MemHandleUnlock(items); - MemHandleUnlock(skins); - MemHandleFree(items); - MemHandleFree(skins); - - SkinsFormInit(false); - } else { - FrmCustomAlert(FrmErrorAlert, "Skin deletion failed.",0,0); - } - } - -} -Boolean SkinsFormHandleEvent(EventPtr eventP) { - Boolean handled = false; - - switch (eventP->eType) { - - case frmOpenEvent: - SkinsFormInit(true); - handled = true; - break; - - case frmCloseEvent: - SkinsFormExit(false); - handled = true; - break; - - case ctlSelectEvent: - switch (eventP->data.ctlSelect.controlID) - { - case SkinsOKButton: - SkinsFormExit(true); - break; - - case SkinsCancelButton: - SkinsFormExit(false); - break; - - case SkinsBeamButton: - SkinsFormBeam(); - break; - - case SkinsDeleteButton: - SkinsFormDelete(); - break; - } - handled = true; - break; - - default: - break; - } - - return handled; -} diff --git a/backends/platform/PalmOS/Src/launcher/forms/formUtil.cpp b/backends/platform/PalmOS/Src/launcher/forms/formUtil.cpp deleted file mode 100644 index 6d1d55e6e2..0000000000 --- a/backends/platform/PalmOS/Src/launcher/forms/formUtil.cpp +++ /dev/null @@ -1,60 +0,0 @@ -#include <PalmOS.h> -#include <TxtGlue.h> - -#include "forms.h" - -Char **itemsText = NULL; -void *itemsList = NULL; -Char itemsType = ITEM_TYPE_UNKNOWN; - -void FrmReturnToMain(UInt16 updateCode) { - // if there is a form loaded, prevent crash on OS5 - if (FrmGetFirstForm()) { - FrmUpdateForm(MainForm, updateCode); - FrmReturnToForm(MainForm); - } -} - -void FldTrimText(FieldPtr fldP) { - MemHandle tmpH; - Char *tmpP; - - tmpH = FldGetTextHandle(fldP); - FldSetTextHandle(fldP, NULL); - tmpP = (Char *)MemHandleLock(tmpH); - TxtGlueStripSpaces(tmpP, true, true); - MemHandleUnlock(tmpH); - FldSetTextHandle(fldP, tmpH); -} - -/*********************************************************************** - * - * FUNCTION: GetObjectPtr - * - * DESCRIPTION: This routine returns a pointer to an object in the current - * form. - * - * PARAMETERS: formId - id of the form to display - * - * RETURNED: void * - * - * REVISION HISTORY: - * - * - ***********************************************************************/ -void * GetObjectPtr(UInt16 objectID) { - FormPtr frmP; - - frmP = FrmGetActiveForm(); - return FrmGetObjectPtr(frmP, FrmGetObjectIndex(frmP, objectID)); -} - -void FrmList(EventPtr eventP, UInt16 objectID) { - ListType *listP; - UInt16 listItem; - - listP = (ListType *)GetObjectPtr(objectID); - listItem = LstPopupList(listP); - CtlSetLabel(eventP->data.ctlSelect.pControl, LstGetSelectionText(listP, LstGetSelection(listP))); -} - diff --git a/backends/platform/PalmOS/Src/launcher/forms/formUtil.h b/backends/platform/PalmOS/Src/launcher/forms/formUtil.h deleted file mode 100644 index e9b87bc49f..0000000000 --- a/backends/platform/PalmOS/Src/launcher/forms/formUtil.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef __FORMUTIL_H__ -#define __FORMUTIL_H__ - -#define frmRedrawUpdateMS (frmRedrawUpdateCode + 1) -#define frmRedrawUpdateMSImport (frmRedrawUpdateCode + 2) - -#define NO_ENGINE -1 - -// form list draw -#define ITEM_TYPE_UNKNOWN 'U' -#define ITEM_TYPE_CARD 'C' -#define ITEM_TYPE_SKIN 'S' - -extern Char **itemsText; -extern void *itemsList; -extern Char itemsType; - -void FrmReturnToMain(UInt16 updateCode = frmRedrawUpdateMS); -void * GetObjectPtr(UInt16 objectID); -void FldTrimText(FieldPtr fldP); -void FrmList(EventPtr eventP, UInt16 objectID); - -#endif diff --git a/backends/platform/PalmOS/Src/launcher/forms/forminfo.cpp b/backends/platform/PalmOS/Src/launcher/forms/forminfo.cpp deleted file mode 100644 index 3f4ab1b28f..0000000000 --- a/backends/platform/PalmOS/Src/launcher/forms/forminfo.cpp +++ /dev/null @@ -1,146 +0,0 @@ -#include <PalmOS.h> - -#include "start.h" -#include "formTabs.h" -#include "forms.h" - -#include "base/version.h" -#include "globals.h" -#include "init_palmos.h" - -/*********************************************************************** - * - * FUNCTION: MiscOptionsFormSave - * FUNCTION: MiscOptionsFormInit - * FUNCTION: MiscOptionsFormHandleEvent - * - * DESCRIPTION: Misc. Options form functions - * - * REVISION HISTORY: - * - * - ***********************************************************************/ -static TabType *myTabP; -static UInt16 lastTab = 0; - -static UInt32 GetStackSize() { - MemPtr startPP, endPP; - SysGetStackInfo(&startPP, &endPP); - - return ((Char *)endPP - (Char *)startPP) / 1024L; -} - -static void VersionTabDraw() { - WinDrawChars(gScummVMVersion, StrLen(gScummVMVersion), 47, 12 + 30); - WinDrawChars(gScummVMBuildDate, StrLen(gScummVMBuildDate), 47, 24 + 30); -} - -static void SystemTabDraw() { - Coord x; - UInt32 dm, sm, df, sf, stack; - Char num[10]; - - PalmGetMemory(&sm, &dm, &sf, 0); - stack = GetStackSize(); - df = gVars->startupMemory; - - WinSetTextColor(UIColorGetTableEntryIndex(UIObjectForeground)); - FntSetFont(stdFont); - - StrIToA(num, dm); - x = 147 - FntCharsWidth(num, StrLen(num)) + 5; - WinDrawChars(num, StrLen(num), x, 12 + 30); - - StrIToA(num, sm); - x = 147 - FntCharsWidth(num, StrLen(num)) + 5; - WinDrawChars(num, StrLen(num), x, 24 + 30); - - StrIToA(num, stack); - x = 147 - FntCharsWidth(num, StrLen(num)) + 5; - WinDrawChars(num, StrLen(num), x, 36 + 30); - - StrIToA(num, df); - x = 107 - FntCharsWidth(num, StrLen(num)) + 5; - WinDrawChars(num, StrLen(num), x, 12 + 30); - - StrIToA(num, sf); - x = 107 - FntCharsWidth(num, StrLen(num)) + 5; - WinDrawChars(num, StrLen(num), x, 24 + 30); - - StrCopy(num,"-"); - x = 107 - FntCharsWidth(num, StrLen(num)) + 5; - WinDrawChars(num, StrLen(num), x, 36 + 30); -} - -static void InfoFormSave() { - TabDeleteTabs(myTabP); - FrmReturnToMain(); -} - -static void AboutTabDraw() { - MemHandle hTemp; - BitmapPtr bmpTemp; - - hTemp = DmGetResource (bitmapRsc, 1200); - if (hTemp) { - bmpTemp = (BitmapType *)MemHandleLock(hTemp); - WinDrawBitmap(bmpTemp,3,44); - MemPtrUnlock(bmpTemp); - DmReleaseResource(hTemp); - } -} - -static void InfoFormInit() { - TabType *tabP; - FormType *frmP = FrmGetActiveForm(); - - tabP = TabNewTabs(3); - TabAddContent(&frmP, tabP, "About", TabInfoAboutForm, AboutTabDraw); - TabAddContent(&frmP, tabP, "Version", TabInfoVersionForm, VersionTabDraw); - TabAddContent(&frmP, tabP, "Memory", TabInfoSystemForm, SystemTabDraw); - - lastTab = 0; - FrmDrawForm(frmP); - TabSetActive(frmP, tabP, lastTab); - - myTabP = tabP; -} - -Boolean InfoFormHandleEvent(EventPtr eventP) { - FormPtr frmP = FrmGetActiveForm(); - Boolean handled = false; - - switch (eventP->eType) { - case frmOpenEvent: - InfoFormInit(); - handled = true; - break; - - case frmCloseEvent: - InfoFormSave(); - handled = true; - break; - - case ctlSelectEvent: - switch (eventP->data.ctlSelect.controlID) - { - case (InfoForm + 1) : - case (InfoForm + 2) : - case (InfoForm + 3) : - lastTab = (eventP->data.ctlSelect.controlID - InfoForm - 1); - TabSetActive(frmP, myTabP, lastTab); - break; - - case InfoOKButton: - InfoFormSave(); - break; - } - handled = true; - break; - - default: - break; - } - - return handled; -} diff --git a/backends/platform/PalmOS/Src/launcher/forms/formmain.cpp b/backends/platform/PalmOS/Src/launcher/forms/formmain.cpp deleted file mode 100644 index ca2e18ee6d..0000000000 --- a/backends/platform/PalmOS/Src/launcher/forms/formmain.cpp +++ /dev/null @@ -1,364 +0,0 @@ -/* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - * - */ - -#include <PalmOS.h> - -#include "StarterRsc.h" -#include "start.h" -#include "skin.h" -#include "games.h" -#include "globals.h" - -#include "base/version.h" - -#include "formEditGame.h" -#include "formUtil.h" - -static UInt16 sknLastOn = skinButtonNone; - -static Err BeamMe() { - UInt16 cardNo; - LocalID dbID; - Err err; - - err = SysCurAppDatabase(&cardNo, &dbID); - if (dbID) - err = SendDatabase(0, dbID, "ScummVM.prc", "\nPlay your favorite LucasArts games"); - else - err = DmGetLastErr(); - - return err; -} - -/*********************************************************************** - * - * FUNCTION: MainFormInit - * - * DESCRIPTION: This routine initializes the MainForm form. - * - * PARAMETERS: frm - pointer to the MainForm form. - * - * RETURNED: nothing - * - * REVISION HISTORY: - * - * - ***********************************************************************/ -static void MainFormInit() -{ - SknApplySkin(); -} - -/*********************************************************************** - * - * FUNCTION: MainFormDoCommand - * - * DESCRIPTION: This routine performs the menu command specified. - * - * PARAMETERS: command - menu item id - * - * RETURNED: nothing - * - * REVISION HISTORY: - * - * - ***********************************************************************/ - -static Boolean MainFormDoCommand(UInt16 command) -{ - Boolean handled = false; - - switch (command) { - case MainGamesMemoryCard: - FrmPopupForm(CardSlotForm); - handled = true; - break; - - case MainGamesNew: - gFormEditMode = edtModeAdd; - FrmPopupForm(GameEditForm); - handled = true; - break; - - case MainGamesEdit: - gFormEditMode = edtModeEdit; - FrmPopupForm(GameEditForm); - handled = true; - break; - - case MainGamesDelete: - EditGameFormDelete(true); - handled = true; - break; - - case MainOptionsBeam: - BeamMe(); - //if (BeamMe()) - //FrmCustomAlert(FrmErrorAlert,"Unable to beam ScummVM for PalmOS.",0,0); - handled = true; - break; - - case MainOptionsAbout: - FrmPopupForm(InfoForm); - handled = true; - break; - - case MainGamesMusicSound: - FrmPopupForm(MusicForm); - handled = true; - break; - - case MainOptionsSkins: - FrmPopupForm(SkinsForm); - handled = true; - break; - - case MainOptionsMisc: - FrmPopupForm(MiscForm); - handled = true; - break; - } - - MenuEraseStatus(0); - return handled; -} - -/*********************************************************************** - * - * FUNCTION: MainFormHandleEvent - * - * DESCRIPTION: This routine is the event handler for the - * "MainForm" of this application. - * - * PARAMETERS: eventP - a pointer to an EventType structure - * - * RETURNED: true if the event has handle and should not be passed - * to a higher level handler. - * - * REVISION HISTORY: - * - * - ***********************************************************************/ - -static Boolean PenDownRepeat() { - Coord x,y; - Boolean penDown, handled = false; - EvtGetPen(&x, &y, &penDown); - - if (penDown && sknLastOn) { - RectangleType r; - DmOpenRef skinDBP; - - skinDBP = SknOpenSkin(); - SknGetObjectBounds(skinDBP, sknLastOn, &r); - - if (RctPtInRectangle(x*2, y*2, &r)) { - if (SknGetState(skinDBP, sknLastOn) != sknStateSelected) { - SknSetState(skinDBP, sknLastOn, sknStateSelected); - SknShowObject(skinDBP, sknLastOn); - } - - switch (sknLastOn) { - case skinSliderUpArrow: - case skinSliderDownArrow: - handled = SknProcessArrowAction(sknLastOn); - break; - } - - } else { - if (SknGetState(skinDBP, sknLastOn) != sknStateNormal) { - SknSetState(skinDBP, sknLastOn, sknStateNormal); - SknShowObject(skinDBP, sknLastOn); - } - } - - SknCloseSkin(skinDBP); - } - - return handled; -} - - -Boolean MainFormHandleEvent(EventPtr eventP) -{ - Boolean handled = false; - FormPtr frmP; - Coord x,y; - DmOpenRef skinDBP; - - switch (eventP->eType) { - case frmUpdateEvent: - { - RectangleType r; - UInt16 idx; - IndexedColorType bgColor = UIColorGetTableEntryIndex(UIFormFill); - frmP = FrmGetFormPtr(MainForm); - - if (gPrefs->card.volRefNum != vfsInvalidVolRef) - idx = FrmGetObjectIndex (frmP, MainMSBitMap); - else - idx = FrmGetObjectIndex (frmP, MainMSNoneBitMap); - - WinSetDrawMode(winPaint); - WinSetBackColor(bgColor); - FrmGetObjectBounds(frmP, idx, &r); - WinEraseRectangle(&r, 0); - FrmShowObject(frmP, idx); - - if (eventP->data.frmUpdate.updateCode == frmRedrawUpdateMSImport) { - GamImportDatabase(); - SknUpdateList(); - } - handled = true; - break; - } - case menuEvent: - handled = MainFormDoCommand(eventP->data.menu.itemID); - break; - - case frmOpenEvent: - MainFormInit(); - handled = true; - break; - - case ctlSelectEvent: - switch (eventP->data.ctlSelect.controlID) - { - case MainCardsButton: - //gPrefs->card.volRefNum = parseCards(true); - FrmPopupForm(CardSlotForm); - break; - - case MainAboutButton: - FrmPopupForm(InfoForm); - break; - -// case MainListTypeSelTrigger: -// FrmList(eventP, MainListTypeList); -// break; - } - handled = true; - break; - - case penUpEvent: - x = eventP->screenX; - y = eventP->screenY; - lastIndex = dmMaxRecordIndex; // enable select/unselect list item - - if (sknLastOn != skinButtonNone) { - RectangleType r; - skinDBP = SknOpenSkin(); - SknGetObjectBounds(skinDBP, sknLastOn, &r); - SknSetState(skinDBP, sknLastOn, sknStateNormal); - SknShowObject(skinDBP, sknLastOn); - SknCloseSkin(skinDBP); - - if (RctPtInRectangle(x*2, y*2, &r)) { - switch (sknLastOn) { - case skinButtonGameAdd: - gFormEditMode = edtModeAdd; - FrmPopupForm(GameEditForm); - handled = true; - break; - - case skinButtonGameAudio: - FrmPopupForm(MusicForm); - handled = true; - break; - - case skinButtonGameEdit: - case skinButtonGameParams: - gFormEditMode = edtModeParams; - FrmPopupForm(GameEditForm); - handled = true; - break; - - case skinButtonGameStart: - if (gPrefs->card.volRefNum == vfsInvalidVolRef) - FrmCustomAlert(FrmWarnAlert,"Please select/insert a memory card.", 0, 0); - else if (GamGetSelected() != dmMaxRecordIndex) - StartScummVM(); - else - FrmPopupForm(EngineForm); - handled = true; - break; - - case skinButtonGameDelete: - EditGameFormDelete(true); - break; - } - } - sknLastOn = skinButtonNone; - } - break; - - case penDownEvent: - case penMoveEvent: - if (sknLastOn == skinButtonNone) { - x = eventP->screenX; - y = eventP->screenY; - skinDBP = SknOpenSkin(); - - switch (sknLastOn = SknCheckClick(skinDBP, x,y)) { - case skinButtonNone: - break; - case skinSliderUpArrow: - case skinSliderDownArrow: - case skinButtonGameAdd: - case skinButtonGameEdit: - case skinButtonGameParams: - case skinButtonGameStart: - case skinButtonGameDelete: - case skinButtonGameAudio: - SknSetState(skinDBP, sknLastOn, sknStateSelected); - SknShowObject(skinDBP, sknLastOn); - if (gPrefs->soundClick) - SndPlaySystemSound(sndClick); - handled = true; - break; - default: - FrmCustomAlert(FrmWarnAlert,"Unknown button !",0,0); - } - SknCloseSkin(skinDBP); - SknSelect(x, y); - } - break; - - case keyDownEvent: - if ( (eventP->data.keyDown.chr >= 'a' && eventP->data.keyDown.chr <= 'z') || - (eventP->data.keyDown.chr >= 'A' && eventP->data.keyDown.chr <= 'Z')) { - if (GamJumpTo(eventP->data.keyDown.chr)) { - SknUpdateList(); - handled = true; - } - } - break; - - default: - handled = PenDownRepeat(); - } - - return handled; -} diff --git a/backends/platform/PalmOS/Src/launcher/forms/formmusic.cpp b/backends/platform/PalmOS/Src/launcher/forms/formmusic.cpp deleted file mode 100644 index 48399efa95..0000000000 --- a/backends/platform/PalmOS/Src/launcher/forms/formmusic.cpp +++ /dev/null @@ -1,388 +0,0 @@ -/* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - * - */ - -#include <PalmOS.h> - -#include "start.h" -#include "formTabs.h" -#include "forms.h" -#include "games.h" - -#include "globals.h" - -static TabType *myTabP; -static UInt16 lastTab = 0; - -static GameInfoType *gameInfoP = NULL; - -// Music -static Boolean MusicTabSave() { - ControlType *cck1P, *cck2P; - ListType *list1P, *list2P, *list3P; - FieldType *fld1P; - UInt16 tempo; - FormPtr frmP; - - frmP = FrmGetActiveForm(); - - cck1P = (ControlType *)GetObjectPtr(TabMusicMusicCheckbox); - cck2P = (ControlType *)GetObjectPtr(TabMusicMultiMidiCheckbox); - - list1P = (ListType *)GetObjectPtr(TabMusicDriverList); - list2P = (ListType *)GetObjectPtr(TabMusicRateList); - list3P = (ListType *)GetObjectPtr(TabMusicQualityList); - - fld1P = (FieldType *)GetObjectPtr(TabMusicTempoField); - - tempo = StrAToI(FldGetTextPtr(fld1P)); - if (tempo < 50 || tempo > 200) { - TabSetActive(frmP, myTabP, 0); - FrmSetFocus(frmP, FrmGetObjectIndex(frmP, TabMusicTempoField)); - FrmCustomAlert(FrmErrorAlert, "Invalid tempo value (50...200)", 0, 0); - return false; - } - - gameInfoP->musicInfo.sound.music = CtlGetValue(cck1P); - gameInfoP->musicInfo.sound.multiMidi = CtlGetValue(cck2P); - - gameInfoP->musicInfo.sound.drvMusic = LstGetSelection(list1P); - gameInfoP->musicInfo.sound.rate = LstGetSelection(list2P); - gameInfoP->fmQuality = LstGetSelection(list3P); - gameInfoP->musicInfo.sound.tempo = tempo; - - return true; -} - -static void MusicTabInit() { - ControlType *cck1P, *cck2P; - ListType *list1P, *list2P, *list3P; - FieldType *fld1P; - MemHandle tempoH; - Char *tempoP; - - cck1P = (ControlType *)GetObjectPtr(TabMusicMusicCheckbox); - cck2P = (ControlType *)GetObjectPtr(TabMusicMultiMidiCheckbox); - - list1P = (ListType *)GetObjectPtr(TabMusicDriverList); - list2P = (ListType *)GetObjectPtr(TabMusicRateList); - list3P = (ListType *)GetObjectPtr(TabMusicQualityList); - - fld1P = (FieldType *)GetObjectPtr(TabMusicTempoField); - - CtlSetValue(cck1P, gameInfoP->musicInfo.sound.music); - CtlSetValue(cck2P, gameInfoP->musicInfo.sound.multiMidi); - - if (gameInfoP->musicInfo.sound.drvMusic > 5) - gameInfoP->musicInfo.sound.drvMusic = 0; - - - LstSetSelection(list1P, gameInfoP->musicInfo.sound.drvMusic); - LstSetTopItem(list1P, gameInfoP->musicInfo.sound.drvMusic); - CtlSetLabel((ControlType *)GetObjectPtr(TabMusicDriverPopTrigger), LstGetSelectionText(list1P, LstGetSelection(list1P))); - - LstSetSelection(list2P, gameInfoP->musicInfo.sound.rate); - LstSetTopItem(list2P, gameInfoP->musicInfo.sound.rate); - CtlSetLabel((ControlType *)GetObjectPtr(TabMusicRatePopTrigger), LstGetSelectionText(list2P, LstGetSelection(list2P))); - - LstSetSelection(list3P, gameInfoP->fmQuality); - CtlSetLabel((ControlType *)GetObjectPtr(TabMusicQualityPopTrigger), LstGetSelectionText(list3P, LstGetSelection(list3P))); - - tempoH = MemHandleNew(FldGetMaxChars(fld1P)+1); - tempoP = (Char *)MemHandleLock(tempoH); - StrIToA(tempoP, gameInfoP->musicInfo.sound.tempo); - MemHandleUnlock(tempoH); - FldSetTextHandle(fld1P, tempoH); -} - -// Audio CD -static Boolean AudioCDTabSave() { - ControlType *cck3P; - FieldType *fld2P, *fld3P; - ListType *list1P, *list2P; - UInt16 firstTrack; - FormPtr frmP; - - frmP = FrmGetActiveForm(); - - cck3P = (ControlType *)GetObjectPtr(TabAudioCDMP3Checkbox); - fld2P = (FieldType *)GetObjectPtr(TabAudioCDLengthSecsField); - fld3P = (FieldType *)GetObjectPtr(TabAudioCDFirstTrackField); - list1P = (ListType *)GetObjectPtr(TabAudioCDDriverList); - list2P = (ListType *)GetObjectPtr(TabAudioCDFormatList); - - firstTrack = StrAToI(FldGetTextPtr(fld3P)); - if (firstTrack < 1 || firstTrack > 999) { - TabSetActive(frmP, myTabP, 2); - FrmSetFocus(frmP, FrmGetObjectIndex(frmP, TabAudioCDFirstTrackField)); - FrmCustomAlert(FrmErrorAlert, "Invalid track value (1...999)", 0, 0); - return false; - } - - gameInfoP->musicInfo.sound.CD = CtlGetValue(cck3P); - - gameInfoP->musicInfo.sound.drvCD = LstGetSelection(list1P); - gameInfoP->musicInfo.sound.frtCD = LstGetSelection(list2P); - - gameInfoP->musicInfo.sound.defaultTrackLength = StrAToI(FldGetTextPtr(fld2P)); - gameInfoP->musicInfo.sound.firstTrack = firstTrack; - - return true; -} - -static void AudioCDTabInit() { - ControlType *cck3P; - FieldType *fld2P, *fld3P; - ListType *list1P, *list2P; - MemHandle lengthH, firstTrackH; - Char *lengthP, *firstTrackP; - - cck3P = (ControlType *)GetObjectPtr(TabAudioCDMP3Checkbox); - fld2P = (FieldType *)GetObjectPtr(TabAudioCDLengthSecsField); - fld3P = (FieldType *)GetObjectPtr(TabAudioCDFirstTrackField); - list1P = (ListType *)GetObjectPtr(TabAudioCDDriverList); - list2P = (ListType *)GetObjectPtr(TabAudioCDFormatList); - - LstSetSelection(list1P, gameInfoP->musicInfo.sound.drvCD); - CtlSetLabel((ControlType *)GetObjectPtr(TabAudioCDDriverPopTrigger), LstGetSelectionText(list1P, LstGetSelection(list1P))); - - LstSetSelection(list2P, gameInfoP->musicInfo.sound.frtCD); - CtlSetLabel((ControlType *)GetObjectPtr(TabAudioCDFormatPopTrigger), LstGetSelectionText(list2P, LstGetSelection(list2P))); - - CtlSetValue(cck3P, gameInfoP->musicInfo.sound.CD); - - lengthH = MemHandleNew(FldGetMaxChars(fld2P)+1); - lengthP = (Char *)MemHandleLock(lengthH); - StrIToA(lengthP, gameInfoP->musicInfo.sound.defaultTrackLength); - MemHandleUnlock(lengthH); - FldSetTextHandle(fld2P, lengthH); - - firstTrackH = MemHandleNew(FldGetMaxChars(fld3P)+1); - firstTrackP = (Char *)MemHandleLock(firstTrackH); - StrIToA(firstTrackP, gameInfoP->musicInfo.sound.firstTrack); - MemHandleUnlock(firstTrackH); - FldSetTextHandle(fld3P, firstTrackH); -} - -// Volume -static void VolumeTabSave() { - SliderControlType *slid1P, *slid2P, *slid3P, *slid4P, *slid5P; - - slid1P = (SliderControlType *)GetObjectPtr(TabVolumePalmSliderControl); - slid2P = (SliderControlType *)GetObjectPtr(TabVolumeMusicSliderControl); - slid3P = (SliderControlType *)GetObjectPtr(TabVolumeSfxSliderControl); - slid4P = (SliderControlType *)GetObjectPtr(TabVolumeSpeechSliderControl); - slid5P = (SliderControlType *)GetObjectPtr(TabVolumeAudioCDSliderControl); - - CtlGetSliderValues ((ControlType *)slid1P, 0, 0, 0, &gameInfoP->musicInfo.volume.palm); - CtlGetSliderValues ((ControlType *)slid2P, 0, 0, 0, &gameInfoP->musicInfo.volume.music); - CtlGetSliderValues ((ControlType *)slid3P, 0, 0, 0, &gameInfoP->musicInfo.volume.sfx); - CtlGetSliderValues ((ControlType *)slid4P, 0, 0, 0, &gameInfoP->musicInfo.volume.speech); - CtlGetSliderValues ((ControlType *)slid5P, 0, 0, 0, &gameInfoP->musicInfo.volume.audiocd); -} - -static void VolumeTabInit() { - SliderControlType *slid1P, *slid2P, *slid3P, *slid4P, *slid5P; - UInt16 value; - - slid1P = (SliderControlType *)GetObjectPtr(TabVolumePalmSliderControl); - slid2P = (SliderControlType *)GetObjectPtr(TabVolumeMusicSliderControl); - slid3P = (SliderControlType *)GetObjectPtr(TabVolumeSfxSliderControl); - slid4P = (SliderControlType *)GetObjectPtr(TabVolumeSpeechSliderControl); - slid5P = (SliderControlType *)GetObjectPtr(TabVolumeAudioCDSliderControl); - - value = gameInfoP->musicInfo.volume.palm; - CtlSetSliderValues ((ControlType *)slid1P, 0, 0, 0, &value); - value = gameInfoP->musicInfo.volume.music; - CtlSetSliderValues ((ControlType *)slid2P, 0, 0, 0, &value); - value = gameInfoP->musicInfo.volume.sfx; - CtlSetSliderValues ((ControlType *)slid3P, 0, 0, 0, &value); - value = gameInfoP->musicInfo.volume.speech; - CtlSetSliderValues ((ControlType *)slid4P, 0, 0, 0, &value); - value = gameInfoP->musicInfo.volume.audiocd; - CtlSetSliderValues ((ControlType *)slid5P, 0, 0, 0, &value); -} - -static void MusicFormSave(UInt16 index) { - if (index != dmMaxRecordIndex) { - MemHandle recordH; - GameInfoType *ogameInfoP; - - if (!MusicTabSave()) return; - if (!AudioCDTabSave()) return; - VolumeTabSave(); - - recordH = DmGetRecord(gameDB, index); - ogameInfoP = (GameInfoType *)MemHandleLock(recordH); - DmWrite(ogameInfoP, 0, gameInfoP, sizeof(GameInfoType)); - MemHandleUnlock(recordH); - DmReleaseRecord (gameDB, index, 0); - } - - MemPtrFree(gameInfoP); - gameInfoP = NULL; - - TabDeleteTabs(myTabP); - FrmReturnToMain(); -} -static void MusicFormInit(UInt16 index) { - TabType *tabP; - FormType *frmP = FrmGetActiveForm(); - - if (index != dmMaxRecordIndex) { - MemHandle recordH = NULL; - GameInfoType *ogameInfoP; - - recordH = DmQueryRecord(gameDB, index); - ogameInfoP = (GameInfoType *)MemHandleLock(recordH); - - if (!ogameInfoP) { - FrmCustomAlert(FrmErrorAlert, "An error occurred.",0,0); - return; - } - - gameInfoP = (GameInfoType *)MemPtrNew(sizeof(GameInfoType)); - MemMove(gameInfoP, ogameInfoP, sizeof(GameInfoType)); - MemHandleUnlock(recordH); - - } else { - FrmCustomAlert(FrmWarnAlert, "Select an entry first.",0,0); - FrmReturnToMain(); - return; - } - - tabP = TabNewTabs(3); - TabAddContent(&frmP, tabP, "Sound", TabMusicForm); - TabAddContent(&frmP, tabP, "Volume", TabVolumeForm); - TabAddContent(&frmP, tabP, "Audio CD", TabAudioCDForm); - - MusicTabInit(); - AudioCDTabInit(); - VolumeTabInit(); - - FrmDrawForm(frmP); - TabSetActive(frmP, tabP, lastTab); - - myTabP = tabP; -} - -Boolean MusicFormHandleEvent(EventPtr eventP) { - FormPtr frmP = FrmGetActiveForm(); - Boolean handled = false; - - switch (eventP->eType) { - case frmOpenEvent: - MusicFormInit(GamGetSelected()); - handled = true; - break; - - case frmCloseEvent: - MusicFormSave(dmMaxRecordIndex); - handled = true; - break; - - case ctlSelectEvent: - switch (eventP->data.ctlSelect.controlID) - { - case (MusicForm + 1) : - case (MusicForm + 2) : - case (MusicForm + 3) : - lastTab = (eventP->data.ctlSelect.controlID - MusicForm - 1); - TabSetActive(frmP, myTabP, lastTab); - break; - - case TabMusicDriverPopTrigger: - FrmList(eventP, TabMusicDriverList); - FrmHideObject(frmP, FrmGetObjectIndex(frmP, TabMusicDriverList)); - - if (!OPTIONS_TST(kOptDeviceZodiac) && !OPTIONS_TST(kOptSonyPa1LibAPI)) { - ListType *list1P = (ListType *)GetObjectPtr(TabMusicDriverList); - - if (LstGetSelection(list1P) == 4) { - FrmCustomAlert(FrmInfoAlert, "There is no built-in MIDI support on your device.", 0, 0); - LstSetSelection(list1P, 0); - CtlSetLabel((ControlType *)GetObjectPtr(TabMusicDriverPopTrigger), LstGetSelectionText(list1P, LstGetSelection(list1P))); - } - } - break; - - case TabMusicQualityPopTrigger: - FrmList(eventP, TabMusicQualityList); - FrmHideObject(frmP, FrmGetObjectIndex(frmP, TabMusicQualityList)); - break; - - case TabMusicRatePopTrigger: - FrmList(eventP, TabMusicRateList); - FrmHideObject(frmP, FrmGetObjectIndex(frmP, TabMusicRateList)); - - if (!OPTIONS_TST(kOptPalmSoundAPI)) { - ListType *list1P = (ListType *)GetObjectPtr(TabMusicRateList); - - if (LstGetSelection(list1P) != 0) { - FrmCustomAlert(FrmInfoAlert, "You cannot use this rate on your device.", 0, 0); - LstSetSelection(list1P, 0); - CtlSetLabel((ControlType *)GetObjectPtr(TabMusicRatePopTrigger), LstGetSelectionText(list1P, LstGetSelection(list1P))); - } - } - break; - - case TabAudioCDFormatPopTrigger: - FrmList(eventP, TabAudioCDFormatList); - FrmHideObject(frmP, FrmGetObjectIndex(frmP, TabAudioCDFormatList)); - - if (LstGetSelection((ListPtr)GetObjectPtr(TabAudioCDDriverList)) == 1) { - ListType *list1P = (ListType *)GetObjectPtr(TabAudioCDFormatList); - LstSetSelection(list1P, 0); - CtlSetLabel((ControlType *)GetObjectPtr(TabAudioCDFormatPopTrigger), LstGetSelectionText(list1P, LstGetSelection(list1P))); - } - break; - - case TabAudioCDDriverPopTrigger: - FrmList(eventP, TabAudioCDDriverList); - FrmHideObject(frmP, FrmGetObjectIndex(frmP, TabAudioCDDriverList)); - - if (LstGetSelection((ListPtr)GetObjectPtr(TabAudioCDDriverList)) == 1) { - ListType *list1P = (ListType *)GetObjectPtr(TabAudioCDFormatList); - LstSetSelection(list1P, 0); - CtlSetLabel((ControlType *)GetObjectPtr(TabAudioCDFormatPopTrigger), LstGetSelectionText(list1P, LstGetSelection(list1P))); - } - break; - - case MusicOKButton: - MusicFormSave(GamGetSelected()); - break; - - case MusicCancelButton: - MusicFormSave(dmMaxRecordIndex); - break; - } - handled = true; - break; - - default: - break; - } - - return handled; -} diff --git a/backends/platform/PalmOS/Src/launcher/forms/forms.h b/backends/platform/PalmOS/Src/launcher/forms/forms.h deleted file mode 100644 index ca0089d8c1..0000000000 --- a/backends/platform/PalmOS/Src/launcher/forms/forms.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef __FORMS_H__ -#define __FORMS_H__ - -#include "StarterRsc.h" -#include "formUtil.h" - -#include "formEditGame.h" -#include "formCards.h" - - -#define HANDLER(x) Boolean x##FormHandleEvent(EventPtr eventP); - -HANDLER(Main) -HANDLER(EditGame) -HANDLER(SystemInfo) -HANDLER(Misc) -HANDLER(CardSlot) -HANDLER(Skins) -HANDLER(Music) -HANDLER(Info) -HANDLER(Selector) - -#endif diff --git a/backends/platform/PalmOS/Src/launcher/forms/formtabs.cpp b/backends/platform/PalmOS/Src/launcher/forms/formtabs.cpp deleted file mode 100644 index d3f18e39d7..0000000000 --- a/backends/platform/PalmOS/Src/launcher/forms/formtabs.cpp +++ /dev/null @@ -1,242 +0,0 @@ -#include <PalmOS.h> -#include <CtlGlue.h> -#include <FrmGlue.h> -#include <LstGlue.h> - -#include "globals.h" -#include "formTabs.h" - -TabType *TabNewTabs(UInt16 cnt) { - TabType *newP = new TabType; - - newP->count = 0; - newP->width = 0; - newP->tabs = new TabDataType[cnt]; - - return newP; -} - -void TabMoveUpObject(FormType *frmP, UInt16 objID, Coord amount) { - Coord x, y; - FrmGetObjectPosition(frmP, FrmGetObjectIndex(frmP, objID), &x, &y); - FrmSetObjectPosition(frmP, FrmGetObjectIndex(frmP, objID), x, y - amount); -} - -void TabDeleteTabs(TabType *tabP) { - UInt16 cnt, num; - num = MemPtrSize(tabP->tabs) / sizeof(TabDataType); - - for (cnt = 0; cnt < num; cnt++) - FrmDeleteForm(tabP->tabs[cnt].srcP); - - delete tabP->tabs; - delete tabP; -} - -Err TabAddContent(FormType **frmP, TabType *tabP, const Char *nameP, UInt16 rscID, TabProc *drawFunc) { - FormType *srcP; - UInt16 cnt; - void *objP, **dstP; - UInt16 objNum; - Coord x, y, w, h; - UInt16 id; - RectangleType r; - - dstP = (void **)frmP; - srcP = FrmInitForm(rscID); - - objNum = FrmGetNumberOfObjects(srcP); - - // save tab data - - // it's required to keep to source forms active - // while the tab form is not close for list data ptr (items text) - // TODO : fix this ! - tabP->tabs[tabP->count].srcP = srcP; - tabP->tabs[tabP->count].first = FrmGetObjectId(srcP, 0); - tabP->tabs[tabP->count].last = FrmGetObjectId(srcP, objNum - 1); - tabP->tabs[tabP->count].drawFunc= drawFunc; - tabP->count++; - tabP->active = tabP->count; - - // create tab - FntSetFont(stdFont); - x = 4 + tabP->width; - y = 16; - w = FntCharsWidth(nameP, StrLen(nameP)) + 6; - h = 12; - ControlType *addP = CtlNewControl(dstP, (FrmGetFormId(*frmP) + tabP->count), buttonCtl, nameP, x, y, w, h, stdFont, 0, true); - CtlGlueSetFrameStyle(addP, noButtonFrame); - tabP->width += w + 3; - - // create tab content - for (cnt = 0; cnt < objNum; cnt++) { - objP = FrmGetObjectPtr(srcP, cnt); - id = FrmGetObjectId(srcP, cnt); - FrmGetObjectBounds(srcP, cnt, &r); - x = r.topLeft.x - 2; - y = r.topLeft.y + 30; - w = r.extent.x; - h = r.extent.y; - - FrmSetObjectPosition(srcP, cnt, x, y); - - switch (FrmGetObjectType(srcP, cnt)) { - case frmListObj: { - // HOWTO : to auto link the list to a popup trigger the listID must be popupID + 1 if popup id - // desn't exist the triggerID will be 0 and the list will be shown, but take care to not define - // ListID - 1 object if you want to show the list. - ListType *newP; - Char **itemsP = LstGlueGetItemsText((ListType *)objP); - FontID font = LstGlueGetFont((ListType *)objP); - UInt16 visible = LstGetVisibleItems((ListType *)objP); - UInt16 items = LstGetNumberOfItems((ListType *)objP); - UInt16 trigger = id - 1; - trigger = (FrmGetObjectIndex((FormType *)*dstP, trigger) != frmInvalidObjectId) ? trigger : 0; - - LstNewList(dstP, id, x, y, w, h, font, visible, trigger); - newP = (ListType *)FrmGetObjectPtr((FormType *)*dstP, FrmGetObjectIndex((FormType *)*dstP, id)); - LstSetListChoices(newP, itemsP, items); - FrmHideObject((FormType *)*dstP, FrmGetObjectIndex((FormType *)*dstP, id)); - break; - } - case frmFieldObj: { - FieldAttrType attr; - FontID font = FldGetFont((FieldType *)objP); - UInt16 maxChars = FldGetMaxChars((FieldType *)objP); - FldGetAttributes((FieldType *)objP, &attr); - FldNewField(dstP, id, x, y, w, h, font, maxChars, attr.editable, attr.underlined, attr.singleLine, attr.dynamicSize, (JustificationType)attr.justification, attr.autoShift, attr.hasScrollBar, attr.numeric); - FrmHideObject((FormType *)*dstP, FrmGetObjectIndex((FormType *)*dstP, id)); - break; - } - case frmControlObj: { - const Char *textP = CtlGetLabel((ControlType *)objP); - ControlStyleType style = CtlGlueGetControlStyle((ControlType *)objP); - FontID font = CtlGlueGetFont((ControlType *)objP); - ControlType *newP = CtlNewControl(dstP, id, style, textP, x, y, w, h, font, 0, true); - FrmHideObject((FormType *)*dstP, FrmGetObjectIndex((FormType *)*dstP, id)); - switch (style) { - case sliderCtl: - { - UInt16 min, max, page, val; - CtlGetSliderValues((ControlType *)objP, &min, &max, &page, &val); - CtlSetSliderValues(newP, &min, &max, &page, &val); - break; - } - } - break; - } - case frmLabelObj: { - const Char *textP = FrmGetLabel(srcP, id); - FontID font = FrmGlueGetLabelFont(srcP, id); - FrmNewLabel((FormType **)dstP, id, textP, x, y, font); - FrmHideObject((FormType *)*dstP, FrmGetObjectIndex((FormType *)*dstP, id)); - break; - } - - case frmBitmapObj: { -/* UInt16 family = id + 1; - FrmNewBitmap((FormType **)dstP, id, id, x, y); - //FrmHideObject((FormType *)*dstP, FrmGetObjectIndex((FormType *)*dstP, id)); -*/ break; - } - } - } - - frmP = (FormType **)dstP; // save new form ptr - return errNone; -} - -void TabSetActive(FormType *frmP, TabType *tabP, UInt16 num) { - UInt16 cnt, idx; - RectangleType r; - TabDataPtr dataP; - - if (tabP->active == num) - return; - - dataP = &tabP->tabs[tabP->active]; - - // hide active tab objects - if (tabP->active != tabP->count) { - for (cnt = dataP->first; cnt <= dataP->last; cnt++) { - if ((idx = FrmGetObjectIndex(frmP, cnt)) != frmInvalidObjectId) - FrmHideObject(frmP, idx); - } - } - - // save active tab - tabP->active = num; - dataP = &tabP->tabs[num]; - - // draw tab limit - WinSetForeColor(UIColorGetTableEntryIndex(UIFormFill)); - WinDrawLine(1, 14, 154,14); - WinDrawLine(1, 15, 154,15); - RctSetRectangle(&r, 1, 30, 154, 100); - WinDrawRectangle(&r, 0); - WinSetForeColor(UIColorGetTableEntryIndex(UIObjectFrame)); - WinDrawLine(1, 28, 154,28); - - // set tabs size - for (cnt = 0; cnt < tabP->count; cnt++) { - idx = FrmGetObjectIndex (frmP, (FrmGetFormId(frmP) + cnt + 1)); - - if (idx != frmInvalidObjectId) { - FrmGetObjectBounds(frmP, idx, &r); - r.topLeft.y = (num == cnt) ? 17 : 17; - r.extent.y = (num == cnt) ? 12 : 11; - FrmSetObjectBounds(frmP, idx, &r); - - if (num == cnt) { - RGBColorType yellow = {0,255,192,0}; - - UInt8 line = /*(UIColorGetTableEntryIndex(UIFormFill) == UIColorGetTableEntryIndex(UIFieldTextHighlightBackground)) ? - WinRGBToIndex(&yellow) :*/ - UIColorGetTableEntryIndex(UIFieldTextHighlightBackground); - - r.topLeft.y -= 1; - WinSetForeColor(UIColorGetTableEntryIndex(UIObjectFrame)); - WinDrawRectangleFrame(simpleFrame, &r); - WinSetForeColor(line); - WinDrawLine(r.topLeft.x, r.topLeft.y, r.topLeft.x + r.extent.x - 1, r.topLeft.y); - FrmShowObject(frmP, idx); - - } else { - UInt8 frame = UIColorGetTableEntryIndex(UIObjectFrame); - RGBColorType light; - WinIndexToRGB(frame, &light); - light.r = (255 - light.r) > 72 ? light.r + 72 : 255; - light.g = (255 - light.g) > 72 ? light.g + 72 : 255; - light.b = (255 - light.b) > 72 ? light.b + 72 : 255; - - WinSetForeColor(WinRGBToIndex(&light)); - WinDrawRectangleFrame(simpleFrame, &r); - WinSetForeColor(frame); - WinDrawLine(r.topLeft.x - 1, r.topLeft.y + r.extent.y, r.topLeft.x + r.extent.x, r.topLeft.y + r.extent.y); - } - - // round corner - WinSetForeColor(UIColorGetTableEntryIndex(UIFormFill)); - if (OPTIONS_TST(kOptModeHiDensity)) { - WinSetCoordinateSystem(kCoordinatesNative); - WinDrawPixel((r.topLeft.x - 1) * 2, (r.topLeft.y - 1) * 2); - WinDrawPixel((r.topLeft.x + r.extent.x) * 2 + 1, (r.topLeft.y - 1) * 2); - WinSetCoordinateSystem(kCoordinatesStandard); - - } else { - // TODO - } - } - } - - // show objects - for (cnt = dataP->first; cnt <= dataP->last; cnt++) { - if ((idx = FrmGetObjectIndex(frmP, cnt)) != frmInvalidObjectId) - FrmShowObject(frmP, idx); - } - - // post draw function - if (dataP->drawFunc) - (dataP->drawFunc)(); -} diff --git a/backends/platform/PalmOS/Src/launcher/forms/formtabs.h b/backends/platform/PalmOS/Src/launcher/forms/formtabs.h deleted file mode 100644 index f14c2ff4e4..0000000000 --- a/backends/platform/PalmOS/Src/launcher/forms/formtabs.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef __FORMTABS_H__ -#define __FORMTABS_H__ - -typedef void (TabProc)(); - -typedef struct { - FormPtr srcP; - UInt16 first; - UInt16 last; - TabProc *drawFunc; -} TabDataType, *TabDataPtr; - -typedef struct { - UInt16 count, active; - Coord width; - TabDataPtr tabs; -} TabType, *TabPtr; - -TabType *TabNewTabs (UInt16 cnt); -void TabDeleteTabs (TabType *tabP); -Err TabAddContent (FormType **frmP, TabType *tabP, const Char *nameP, UInt16 rscID, TabProc *drawFunc = 0); -void TabSetActive (FormType *frmP, TabType *tabP, UInt16 num); -void TabMoveUpObject (FormType *frmP, UInt16 objID, Coord amount); -#endif diff --git a/backends/platform/PalmOS/Src/launcher/games.cpp b/backends/platform/PalmOS/Src/launcher/games.cpp deleted file mode 100644 index c3f7ef3e4a..0000000000 --- a/backends/platform/PalmOS/Src/launcher/games.cpp +++ /dev/null @@ -1,548 +0,0 @@ -/* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - * - */ - -#include <PalmOS.h> -#include <VFSMgr.h> -#include <ctype.h> - -#include "globals.h" -#include "palmdefs.h" -#include "start.h" -#include "games.h" -#include "skin.h" - -#include "StarterRsc.h" - -DmOpenRef gameDB = NULL; - -static Err GamUpdateList() { - if (gameDB) { - UInt16 numRecs = DmNumRecords(gameDB); - - if (numRecs > 0) { - MemHandle tmpH; - UInt32 version, size; - UInt32 *versionP; - - // get record size and version - tmpH = DmQueryRecord(gameDB, 0); - size = MemHandleSize(tmpH); - versionP = (UInt32 *)MemHandleLock(tmpH); - version = *versionP; - MemHandleUnlock(tmpH); - - // check record - if (version != curItemVersion || size != sizeof(GameInfoType)) { - UInt16 index; - GameInfoType gitCur; - void *tmpP; - FormPtr ofmP, frmP; - - // show dialog - ofmP = FrmGetActiveForm(); - frmP = FrmInitForm(ConvertForm); - FrmSetActiveForm(frmP); - FrmDrawForm(frmP); - SysTaskDelay(1 * SysTicksPerSecond()); - - MemSet(&gitCur, sizeof(GameInfoType), 0); - - if (version == itemVersion_357 || - version == itemVersion_356 || - version == itemVersion_355 || - version == itemVersion_354 || - version == itemVersion_353 || - version == itemVersion_352 || - 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_300) { - gitCur.musicInfo.volume.palm = 50; - gitCur.musicInfo.volume.music = 192; - gitCur.musicInfo.volume.sfx = 192; - gitCur.musicInfo.volume.speech = 192; - gitCur.musicInfo.volume.audiocd = 50; - - gitCur.musicInfo.sound.tempo = 100; - gitCur.musicInfo.sound.defaultTrackLength = 10; - gitCur.musicInfo.sound.firstTrack = 1; - } - - if (version < itemVersion_310) - gitCur.engine = 0; - - if (version < itemVersion_320) - gitCur.renderMode = 0; - - if (version <= itemVersion_330) { - gitCur.fmQuality = 0; - gitCur.gfxMode = (gitCur.gfxMode == 3 ? 1 : 0); // v3.4 only 2 modes - - if (gitCur.engine == 0) gitCur.engine = 8; - else if (gitCur.engine == 1) gitCur.engine = 7; - else if (gitCur.engine == 2) gitCur.engine = 3; - else if (gitCur.engine == 3) gitCur.engine = 1; - else if (gitCur.engine == 4) gitCur.engine = 0; - else if (gitCur.engine == 5) gitCur.engine = 6; - 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; - else if (gitCur.renderMode == 4) gitCur.renderMode = 3; - else if (gitCur.renderMode == 5) gitCur.renderMode = 1; - - if (gitCur.platform == 2) gitCur.platform = 6; - else if (gitCur.platform == 5) gitCur.platform = 8; - else if (gitCur.platform == 6) gitCur.platform = 2; - - if (gitCur.language == 1) gitCur.language = 4; - else if (gitCur.language == 2) gitCur.language = 6; - else if (gitCur.language == 3) gitCur.language = 5; - else if (gitCur.language == 4) gitCur.language = 8; - else if (gitCur.language == 5) gitCur.language = 11; - else if (gitCur.language == 6) gitCur.language = 13; - else if (gitCur.language == 7) gitCur.language = 9; - else if (gitCur.language == 8) gitCur.language = 1; - else if (gitCur.language == 9) gitCur.language = 10; - else if (gitCur.language == 10) gitCur.language = 7; - else if (gitCur.language == 11) gitCur.language = 12; - else if (gitCur.language == 12) gitCur.language = 2; - else if (gitCur.language == 13) gitCur.language = 3; - - if (gitCur.musicInfo.sound.drvMusic == 1) gitCur.musicInfo.sound.drvMusic = 4; - else if (gitCur.musicInfo.sound.drvMusic == 2) gitCur.musicInfo.sound.drvMusic = 5; - 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_AGOS; - else if (gitCur.engine == ENGINE_AGOS) - gitCur.engine = ENGINE_SCUMM; - } - - if (version <= itemVersion_352) { - if (gitCur.engine >= ENGINE_CINE) // newly added engine - gitCur.engine++; - - gitCur.platform++; - } - - if (version <= itemVersion_353) - gitCur.musicInfo.sound.drvMusic++; - - if (version <= itemVersion_354) - if (gitCur.engine >= ENGINE_AGI) // newly added engine - gitCur.engine++; - - if (version <= itemVersion_355) { - gitCur.engine++; // renamed Simon -> AGOS - if (gitCur.engine == ENGINE_COUNT) - gitCur.engine = ENGINE_AGOS; - } - - if (version <= itemVersion_356) { - if (gitCur.platform >= 3) - gitCur.platform++; - } - - if (version <= itemVersion_357) - if (gitCur.engine >= ENGINE_PARALLACTION) // newly added engine - gitCur.engine++; - - if (gitCur.musicInfo.volume.palm > 100) - gitCur.musicInfo.volume.palm = 50; - - // simply resize the old record - 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 if (version == itemVersion_200) { - // need conversion from V2 -> V3.5.2 - 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 == 3 ? 1 : 0); // v3.4 only 2 modes - - 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; - - gitCur.musicInfo.volume.palm = 50; - gitCur.musicInfo.volume.music = 192; - gitCur.musicInfo.volume.sfx = 192; - gitCur.musicInfo.volume.speech = 192; - gitCur.musicInfo.volume.audiocd = 50; - - gitCur.musicInfo.sound.tempo = 100; - gitCur.musicInfo.sound.defaultTrackLength = 10; - gitCur.musicInfo.sound.firstTrack = 1; - - // to V3.4 - if (gitCur.platform == 2) gitCur.platform = 6; - else if (gitCur.platform == 5) gitCur.platform = 8; - else if (gitCur.platform == 6) gitCur.platform = 2; - - if (gitCur.language == 1) gitCur.language = 4; - else if (gitCur.language == 2) gitCur.language = 6; - else if (gitCur.language == 3) gitCur.language = 5; - else if (gitCur.language == 4) gitCur.language = 8; - else if (gitCur.language == 5) gitCur.language = 11; - else if (gitCur.language == 6) gitCur.language = 13; - else if (gitCur.language == 7) gitCur.language = 9; - else if (gitCur.language == 8) gitCur.language = 1; - else if (gitCur.language == 9) gitCur.language = 10; - else if (gitCur.language == 10) gitCur.language = 7; - else if (gitCur.language == 11) gitCur.language = 12; - else if (gitCur.language == 12) gitCur.language = 2; - else if (gitCur.language == 13) gitCur.language = 3; - - if (gitCur.musicInfo.sound.drvMusic == 1) gitCur.musicInfo.sound.drvMusic = 4; - else if (gitCur.musicInfo.sound.drvMusic == 2) gitCur.musicInfo.sound.drvMusic = 5; - 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++; - - //to V3.5.3 - gitCur.musicInfo.sound.drvMusic++; - - // ----- - gitCur.engine = ENGINE_SCUMM; - - 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 -> V3.5.2 - 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 == 3 ? 1 : 0); // v3.4 only 2 modes - - 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; - - gitCur.loadSlot = git0.loadSlot; - gitCur.bootValue = git0.bootValue; - gitCur.talkValue = git0.talkValue; - gitCur.platform = 2; // default to amiga - gitCur.language = git0.language; - - gitCur.musicInfo.volume.palm = 50; - gitCur.musicInfo.volume.music = 192; - gitCur.musicInfo.volume.sfx = 192; - gitCur.musicInfo.volume.speech = 192; - gitCur.musicInfo.volume.audiocd = 50; - - gitCur.musicInfo.sound.tempo = 100; - gitCur.musicInfo.sound.defaultTrackLength = 10; - gitCur.musicInfo.sound.firstTrack = 1; - - gitCur.engine = ENGINE_SCUMM; - - 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); - FrmDeleteForm(frmP); - if (ofmP) - FrmSetActiveForm(ofmP); - } - } - } - - return errNone; -} - -Err GamOpenDatabase() { - Err err = errNone; - - gameDB = DmOpenDatabaseByTypeCreator( 'DATA', appFileCreator, dmModeReadWrite); - - if (!gameDB) { - err = DmCreateDatabase(0, "ScummVM-Data", appFileCreator, 'DATA', false); - if (!err) { - gameDB = DmOpenDatabaseByTypeCreator( 'DATA', appFileCreator, dmModeReadWrite); - - if (!gameDB) - err = DmGetLastErr(); - } - } - - if (err) - FrmCustomAlert(FrmErrorAlert,"Cannot open/create games list DB !",0,0); - else - err = GamUpdateList(); - - return err; -} - -void GamImportDatabase() { - if (gPrefs->card.volRefNum != vfsInvalidVolRef && gPrefs->card.moveDB) { - FileRef file; - Err e; - - e = VFSFileOpen(gPrefs->card.volRefNum, "/Palm/Programs/ScummVM/listdata.pdb", vfsModeRead, &file); - if (!e) { - UInt16 oCardNo, nCardNo; - LocalID oDbID, nDbID; - - VFSFileClose(file); - if (gPrefs->card.confirmMoveDB) - if (FrmCustomAlert(FrmConfirmAlert, "Do you want to import games database from memory card ?", 0, 0) == FrmConfirmNo) { - // prevent to replace the file on memory card - gPrefs->card.moveDB = false; - return; - } - - // get current db info and rename it - DmOpenDatabaseInfo(gameDB, &oDbID, 0, 0, &oCardNo, 0); - GamCloseDatabase(true); - e = DmDeleteDatabase(oCardNo, oDbID); - - if (!e) - if (e = VFSImportDatabaseFromFile(gPrefs->card.volRefNum, "/Palm/Programs/ScummVM/listdata.pdb", &nCardNo, &nDbID)) - FrmCustomAlert(FrmErrorAlert, "Failed to import games database from memory card.", 0, 0); - - GamOpenDatabase(); - } - } -} - -void GamCloseDatabase(Boolean ignoreCardParams) { - if (gameDB) { - LocalID dbID; - UInt16 cardNo; - - DmOpenDatabaseInfo(gameDB, &dbID, 0, 0, &cardNo, 0); - DmCloseDatabase(gameDB); - - if (!ignoreCardParams) { - 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) { - VFSFileDelete(gPrefs->card.volRefNum, "/Palm/Programs/ScummVM/listdata-old.pdb"); - if (gPrefs->card.deleteDB) - DmDeleteDatabase(cardNo, dbID); - } else { - VFSFileRename(gPrefs->card.volRefNum, "/Palm/Programs/ScummVM/listdata-old.pdb", "listdata.pdb"); - } - } - } - } - gameDB = NULL; -} - -static Int16 GamCompare(GameInfoType *a, GameInfoType *b, SortRecordInfoPtr, SortRecordInfoPtr, MemHandle) { - return StrCaselessCompare(a->nameP, b->nameP); -} - -Err GamSortList() { - return DmQuickSort (gameDB, (DmComparF *)GamCompare, 0); -} - -void GamUnselect() { - GameInfoType *game; - - MemHandle recordH; - UInt16 index; - - index = GamGetSelected(); - - if (index != dmMaxRecordIndex) { - Boolean newValue; - - recordH = DmGetRecord(gameDB, index); - game = (GameInfoType *)MemHandleLock(recordH); - - newValue = false; - DmWrite(game, OffsetOf(GameInfoType,selected), &newValue, sizeof(Boolean)); - - MemHandleUnlock(recordH); - DmReleaseRecord (gameDB, index, 0); - } -} - -UInt16 GamGetSelected() { - MemHandle record; - GameInfoType *game; - Boolean selected; - UInt16 index = DmNumRecords(gameDB)-1; - - while (index != (UInt16)-1) { - record = DmQueryRecord(gameDB, index); - game = (GameInfoType *)MemHandleLock(record); - selected = game->selected; - MemHandleUnlock(record); - - if (selected) - return index; - - index--; - } - - return dmMaxRecordIndex; -} - -Boolean GamJumpTo(Char letter) { - MemHandle record; - GameInfoType *game; - Boolean found = false; - UInt16 index = 0; - UInt16 maxIndex = DmNumRecords(gameDB); - UInt16 active = GamGetSelected(); - - while (index < maxIndex) { - record = DmGetRecord(gameDB, index); - game = (GameInfoType *)MemHandleLock(record); - - if (tolower(game->nameP[0]) == tolower(letter)) { - found = true; - - if (index != active) { - RectangleType rArea; - UInt16 maxView; - Boolean newValue = true; - - SknGetListBounds(&rArea, NULL); - maxView = rArea.extent.y / sknInfoListItemSize; - - GamUnselect(); - DmWrite(game, OffsetOf(GameInfoType,selected), &newValue, sizeof(Boolean)); - - if (index < gPrefs->listPosition || index >= (gPrefs->listPosition + maxView)) - gPrefs->listPosition = index; - } - } - - MemHandleUnlock(record); - DmReleaseRecord (gameDB, index, 0); - - index++; - - if (found) - return found; - } - - return found; -} diff --git a/backends/platform/PalmOS/Src/launcher/games.h b/backends/platform/PalmOS/Src/launcher/games.h deleted file mode 100644 index 7c381a40f4..0000000000 --- a/backends/platform/PalmOS/Src/launcher/games.h +++ /dev/null @@ -1,212 +0,0 @@ -/* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - * - */ - -#ifndef __GAMES_H__ -#define __GAMES_H__ - -#define curItemVersion sysMakeROMVersion(3,5,8,0,0) // Parallaction engine - - -#define itemVersion_357 sysMakeROMVersion(3,5,7,0,0) // Added : Apple IIgs -#define itemVersion_356 sysMakeROMVersion(3,5,6,0,0) // Changed : Simon -> AGOS -#define itemVersion_355 sysMakeROMVersion(3,5,5,0,0) // Added : AGI engine -#define itemVersion_354 sysMakeROMVersion(3,5,4,0,0) // Added : Default/Auto music driver -#define itemVersion_353 sysMakeROMVersion(3,5,3,0,0) // Added : CinE engine and 3DO platform -#define itemVersion_352 sysMakeROMVersion(3,5,2,0,0) // Added : Lure engine -#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 { - 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[10]; // scumm name of the game - UInt16 gfxMode; - - Boolean autoLoad; - UInt16 loadSlot; - Boolean bootParam; - UInt16 bootValue; - Boolean amiga; - Boolean subtitles; - Boolean talkSpeed; - UInt16 talkValue; - UInt8 language; - -} GameInfoTypeV0; - -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[10]; // 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; - -} GameInfoTypeV2; - - -// Current config -typedef struct { - struct { - UInt16 palm; - UInt16 music; - UInt16 sfx; // TODO : remove - UInt16 speech; - UInt16 audiocd; - } volume; - - struct { - // midi - Boolean multiMidi; - Boolean music; // TODO : rename this, it is enable audio option - UInt8 drvMusic; - UInt8 tempo; - // sound FX - Boolean sfx; // TODO : remove this - UInt8 rate; - // CD audio - Boolean CD; - UInt8 drvCD, frtCD; - UInt16 defaultTrackLength; - UInt16 firstTrack; - } sound; -} MusicInfoType; - -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; // |- v2.5 - - Boolean filter; // v2.6 - Boolean fullscreen; // | - Boolean aspectRatio; // |- v2.7 - - MusicInfoType musicInfo;// v3.0 - - UInt8 engine; // |- v3.1 - UInt8 renderMode; // |- v3.2 -// Boolean use16Bit; // |- v3.3 // removed - UInt8 fmQuality; // |- v3.4 // replace use16Bit -} GameInfoType; - -enum { - ENGINE_AGOS = 0, - ENGINE_SKY, - ENGINE_SWORD1, - ENGINE_SWORD2, - ENGINE_CINE, - ENGINE_QUEEN, - ENGINE_LURE, - ENGINE_GOB, - ENGINE_KYRA, - ENGINE_PARALLACTION, - ENGINE_SAGA, - ENGINE_SCUMM, - ENGINE_AGI, - ENGINE_TOUCHE, - ENGINE_CRUISE, - ENGINE_DRASCULA, - ENGINE_COUNT -}; - -static const struct { - const char *fileP; - const char *nameP; -} engines[] = { - { "agos", "AGOS Engine" }, - { "sky", "Beneath a Steel Sky" }, - { "sword1", "Broken Sword I" }, - { "sword2", "Broken Sword II" }, - { "cine", "Delphine Cinematique v1.0" }, - { "queen", "Flight of the Amazon Queen" }, - { "lure", "Lure of the Tempress" }, - { "gob", "Gobliiins, Bargon Attack and more" }, - { "kyra", "Kyrandia" }, - { "parallaction", "Parallaction" }, - { "saga", "SAGA Engine" }, - { "scumm", "Scumm Games" }, - { "agi", "Sierra AGI" }, - { "touche", "Touche: The Adventures of the Fifth Musketeer" }, - { "cruise", "Beta -> Cruise for a Corpse" }, - { "drascula", "Beta -> Drascula" }, -}; - -// protos -Err GamOpenDatabase (); -void GamImportDatabase (); -void GamCloseDatabase (Boolean ignoreCardParams); -Err GamSortList (); -UInt16 GamGetSelected (); -void GamUnselect (); -Boolean GamJumpTo (Char letter); - -extern DmOpenRef gameDB; - -#endif diff --git a/backends/platform/PalmOS/Src/launcher/launch.cpp b/backends/platform/PalmOS/Src/launcher/launch.cpp deleted file mode 100644 index d83a34e94c..0000000000 --- a/backends/platform/PalmOS/Src/launcher/launch.cpp +++ /dev/null @@ -1,512 +0,0 @@ -/* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - * - */ - -#include <PalmOS.h> -#include <PmPalmOSNVFS.h> -#include "StarterRsc.h" - -#include "games.h" -#include "start.h" -#include "rumble.h" -#include "globals.h" -#include "features.h" -#include "formUtil.h" -#include "formCards.h" -#include "palmdefs.h" - -#include "init_palmos.h" -#include "init_stuffs.h" - -#include "modules.h" -#include "args.h" - - -#define BUILD_ERROR(m) \ - { StrCopy(msg, m); \ - StrCat(msg, "\n\nPlease check that all required files are installed on your card, and you have enough free storage memory."); \ - goto onError; } - -#define BUILD_FILE(h,m) \ - StrCopy(filename, "/Palm/Programs/ScummVM/Mods/"); \ - StrCat(filename, h); \ - StrCat(filename, m); - -#define FIND_FILE() \ - if (*volRefNum == vfsInvalidVolRef) \ - *volRefNum = ModFind(filename); - - -#define CHECK_FILE(m) \ - e = VFSFileOpen(*volRefNum, filename, vfsModeRead, &file); \ - if (e) \ - BUILD_ERROR(m) \ - else \ - VFSFileClose(file); - -#define IMPRT_FILE(m) \ - e = VFSImportDatabaseFromFile(*volRefNum, filename, &cardNo, &dbID); \ - if (e) \ - BUILD_ERROR(m) - -#define DELET_FILE(f) \ - del_dbID = DmFindDatabase(0, f); \ - if (del_dbID) \ - DmDeleteDatabase(0, del_dbID); - -void ModDelete() { - LocalID del_dbID; - - DELET_FILE("Glbs::Common"); - DELET_FILE("Glbs::Engine"); - DELET_FILE("ScummVM-Engine"); -} - -UInt16 ModFind(const Char *f) { - Err e; - UInt16 volRefNum; - FileRef r; - UInt32 volIterator = vfsIteratorStart|vfsIncludePrivateVolumes; - while (volIterator != vfsIteratorStop) { - e = VFSVolumeEnumerate(&volRefNum, &volIterator); - - if (!e) e = VFSFileOpen(volRefNum, f, vfsModeRead, &r); - if (!e) e = VFSFileClose(r); - if (!e) break; - } - - return volRefNum; -} - -static void ModSetStack(UInt32 newSize, UInt16 cardNo, LocalID dbID) { - DmOpenRef dbRef = DmOpenDatabase(cardNo, dbID, dmModeReadWrite); - - if (dbRef) { - MemHandle pref = DmGetResource('pref',0); - UInt32 size = 0; - - if (pref) { - SysAppPrefsType *data = (SysAppPrefsType *)MemHandleLock(pref); - size = data->stackSize; - - if (newSize) { - SysAppPrefsType newData; - MemMove(&newData, data, sizeof(SysAppPrefsType)); - newData.stackSize = newSize; - DmWrite(data, 0, &newData, sizeof(SysAppPrefsType)); - } - - MemPtrUnlock(data); - DmReleaseResource(pref); - } - - DmCloseDatabase(dbRef); - } -} - -static Err ModImport(UInt16 *volRefNum, UInt8 engine, Boolean *armP) { -#ifndef _DEBUG_ENGINE - char filename[256]; - UInt16 cardNo; - LocalID dbID; - UInt32 result; - FileRef file; -#endif - char msg[256]; - FormPtr ofmP, frmP; - Err e = errNone; - - ofmP = FrmGetActiveForm(); - frmP = FrmInitForm(ImportForm); - FrmSetActiveForm(frmP); - FrmDrawForm(frmP); - - // In debug mode, the engine files are directly uploaded to the simulator -#ifndef _DEBUG_ENGINE - // engine file ? - BUILD_FILE(engines[engine].fileP, ".engine"); - FIND_FILE (); - CHECK_FILE("ScummVM engine file was not found !"); - IMPRT_FILE("Cannot import engine file !"); - - // need more files ? - dbID = DmFindDatabase(0, "ScummVM-Engine"); // be sure to have the correct dbID - e = SysAppLaunch(cardNo, dbID, 0, sysAppLaunchCustomEngineGetInfo, 0, &result); - *armP = ((result & GET_MODEARM) == GET_MODEARM); - -/* ARM ONLY FOR NOW, NOT REQUIRED - // common file ? - if (!e && (result & GET_DATACOMMON)) { - BUILD_FILE("common", ".data"); - CHECK_FILE("Common data file was not found !"); - IMPRT_FILE("Cannot import common data file !"); - } - // data file ? - if (!e && (result & GET_DATAENGINE)) { - BUILD_FILE(engines[engine].fileP, ".data"); - CHECK_FILE("Engine data file was not found !"); - IMPRT_FILE("Cannot import engine data file !"); - } -*/ -#endif - // if error, cleanup - if (e) ModDelete(); - -onError: - FrmEraseForm(frmP); - FrmDeleteForm(frmP); - if (e) { - if (ofmP) FrmSetActiveForm(ofmP); - FrmCustomAlert(FrmErrorAlert, msg, 0, 0); - } - - return e; -} - -#undef DELET_FILE -#undef CHECK_FILE -#undef BUILD_FILE - -Boolean StartScummVM(Int16 engine) { - Char **argvP; - UInt8 lightspeed, argc = 0; - UInt32 stackSize; - Boolean toLauncher, direct, isARM; - Char num[6]; - - argvP = ArgsInit(); - direct = false; - - // start command line (exec name) - ArgsAdd(&argvP[argc], "-", NULL, &argc); - // standard path - ArgsAdd(&argvP[argc], "--themepath=", "/PALM/Programs/ScummVM/Themes", &argc); - - UInt16 index = GamGetSelected(); - // no game selected - if (index == dmMaxRecordIndex) { - if (engine == NO_ENGINE) { - // free args - ArgsFree(argvP); - return false; - } - - // default values - if (bDirectMode) - gPrefs->card.volRefNum = parseCards(); // always use the first removable card available (?) - - gVars->filter = true; - gVars->palmVolume = 50; - gVars->fmQuality = FM_QUALITY_INI; - direct = true; - - // somthing selected - } else { - Char pathP[256]; - MemHandle recordH; - GameInfoType *gameInfoP; - - recordH = DmQueryRecord(gameDB,index); - gameInfoP = (GameInfoType *)MemHandleLock(recordH); - engine = gameInfoP->engine; - - // build path - StrCopy(pathP,"/Palm/Programs/ScummVM/Games/"); - if (gameInfoP->pathP[0] == '/') - StrCopy(pathP, gameInfoP->pathP); - else if (!(gameInfoP->pathP[0] == '.' && StrLen(gameInfoP->pathP) == 1)) - StrCat(pathP, gameInfoP->pathP); - - // path - ArgsAdd(&argvP[argc], "-p", pathP, &argc); - - // language - if (gameInfoP->language > 0) { - const Char *lang = "zh\0cz\0gb\0en\0fr\0de\0hb\0it\0jp\0kr\0pl\0pt\0ru\0es\0se\0"; - ArgsAdd(&argvP[argc], "-q", (lang + (gameInfoP->language - 1) * 3), &argc); - } - - // fullscreen ? - if (gameInfoP->fullscreen) - ArgsAdd(&argvP[argc], "-f", NULL, &argc); - - // aspect-ratio ? - ArgsAdd(&argvP[argc], (gameInfoP->aspectRatio ? "--aspect-ratio" : "--no-aspect-ratio"), NULL, &argc); - - // gfx mode - gVars->filter = gameInfoP->filter; - - switch (gameInfoP->renderMode) { - case 1: - ArgsAdd(&argvP[argc], "--render-mode=", "amiga", &argc); - break; - case 2: - ArgsAdd(&argvP[argc], "--render-mode=", "cga", &argc); - break; - case 3: - ArgsAdd(&argvP[argc], "--render-mode=", "ega", &argc); - break; - case 4: - ArgsAdd(&argvP[argc], "--render-mode=", "hercAmber", &argc); - break; - case 5: - ArgsAdd(&argvP[argc], "--render-mode=", "hercGreen", &argc); - break; - } - - switch (gameInfoP->gfxMode) { - case 1: - ArgsAdd(&argvP[argc], "-g", "wide", &argc); - break; - default: - ArgsAdd(&argvP[argc], "-g", "1x", &argc); - break; - } - - // load state - if (gameInfoP->autoLoad) { - StrIToA(num, gameInfoP->loadSlot); - ArgsAdd(&argvP[argc], "-x", num, &argc); - } - // boot script parameter - if (gameInfoP->bootParam) { - StrIToA(num, gameInfoP->bootValue); - ArgsAdd(&argvP[argc], "-b", num, &argc); - } - // not a PC version - if (gameInfoP->setPlatform) { - static const char *platform[] = { - "3do", - "acorn", - "amiga", - "2gs", - "atari", - "c64", - "pc", - "fmtowns", - "linux", - "mac", - "nes", - "segacd", - "windows" - }; - ArgsAdd(&argvP[argc], "--platform=", platform[gameInfoP->platform], &argc); - } - - // subtitles - if (gameInfoP->subtitles) - ArgsAdd(&argvP[argc], "-n", NULL, &argc); - - // multi midi ? - if (gameInfoP->musicInfo.sound.multiMidi) - ArgsAdd(&argvP[argc], "--multi-midi", NULL, &argc); - - if (engine == ENGINE_SCUMM) { - // music tempo - StrIToA(num, gameInfoP->musicInfo.sound.tempo); - ArgsAdd(&argvP[argc], "--tempo=", num, &argc); - } - - // talk speed - if (gameInfoP->talkSpeed) { - StrIToA(num, gameInfoP->talkValue); - ArgsAdd(&argvP[argc], "--talkspeed=", num, &argc); - } - - // music driver - if (gameInfoP->musicInfo.sound.music) { - static char *drv[] = { - "auto", - "null", - "adlib", - "towns", - "pcjr", - "native", - "pcspk" - }; - - if (StrCompare(drv[gameInfoP->musicInfo.sound.drvMusic], "native") == 0) { - if (OPTIONS_TST(kOptDeviceZodiac)) - ArgsAdd(&argvP[argc], "-e", "zodiac", &argc); // Tapwave Zodiac - else if (OPTIONS_TST(kOptSonyPa1LibAPI)) - ArgsAdd(&argvP[argc], "-e", "ypa1", &argc); // Pa1Lib devices - else - ArgsAdd(&argvP[argc], "-e", "auto", &argc); // no driver, switch to auto - } else { - ArgsAdd(&argvP[argc], "-e", drv[gameInfoP->musicInfo.sound.drvMusic], &argc); - } - - // output rate - UInt32 rates[] = {4000, 8000, 11025, 22050, 44100}; - StrIToA(num, rates[gameInfoP->musicInfo.sound.rate]); - ArgsAdd(&argvP[argc], "--output-rate=", num, &argc); - - // FM quality - gVars->fmQuality = gameInfoP->fmQuality; - - } else { - ArgsAdd(&argvP[argc], "-e", "null", &argc); - } - - // volume control - StrIToA(num, gameInfoP->musicInfo.volume.sfx); - ArgsAdd(&argvP[argc], "-s", num, &argc); - StrIToA(num, gameInfoP->musicInfo.volume.music); - ArgsAdd(&argvP[argc], "-m", num, &argc); - StrIToA(num, gameInfoP->musicInfo.volume.speech); - ArgsAdd(&argvP[argc], "-r", num, &argc); - - // game name - ArgsAdd(&argvP[argc], gameInfoP->gameP, NULL, &argc); - - gVars->palmVolume = gameInfoP->musicInfo.sound.music ? gameInfoP->musicInfo.volume.palm : 0; - - MemHandleUnlock(recordH); - } // end no game / game selected - - // common command line options - - // debug level - if (gPrefs->debug) { - StrIToA(num, gPrefs->debugLevel); - ArgsAdd(&argvP[argc], "-d", num, &argc); - } - - if (engine == ENGINE_QUEEN || engine == ENGINE_SKY) { - // alternative intro ? - if (gPrefs->altIntro) - ArgsAdd(&argvP[argc], "--alt-intro", NULL, &argc); - } - - if (engine == ENGINE_SCUMM) { - // demo mode ? - if (gPrefs->demoMode) - ArgsAdd(&argvP[argc], "--demo-mode", NULL, &argc); - } - - // copy protection ? - if (gPrefs->copyProtection) - ArgsAdd(&argvP[argc], "--copy-protection", NULL, &argc); - - // exceed max args ? - if (argc > MAX_ARG) - FrmCustomAlert(FrmErrorAlert, "Too many parameters.",0,0); - - // set some common options - stackSize = (gPrefs->setStack ? STACK_LARGER : STACK_DEFAULT); - lightspeed= (gPrefs->lightspeed.enable ? gPrefs->lightspeed.mode : 255); - toLauncher= (gPrefs->exitLauncher); - - // gVars values - // (gVars->HRrefNum defined in checkHRmode on Clie) -#ifndef _DEBUG_ENGINE - gVars->VFS.volRefNum = (gPrefs->card.autoDetect ? vfsInvalidVolRef : gPrefs->card.volRefNum); -#else - gVars->VFS.volRefNum = gPrefs->card.volRefNum; -#endif - gVars->vibrator = gPrefs->vibrator; - gVars->stdPalette = gPrefs->stdPalette; - gVars->VFS.cacheSize = (gPrefs->card.useCache ? gPrefs->card.cacheSize : 0); - gVars->indicator.showLED= gPrefs->card.showLED; - gVars->stylusClick = gPrefs->stylusClick; - gVars->autoSave = (gPrefs->autoSave ? gPrefs->autoSavePeriod : -1); - gVars->advancedMode = gPrefs->advancedMode; - gVars->arrowKeys = gPrefs->arrowKeys; - - // user params - HWR_RSTALL(); - - if (gPrefs->goLCD) - HWR_SET(INIT_GOLCD); - else - OPTIONS_RST(kOptGoLcdAPI); - - if (!gPrefs->autoOff) - HWR_SET(INIT_AUTOOFF); - - if (gVars->vibrator) - HWR_SET(INIT_VIBRATOR); -/* ???? - if ( musicDriver == 1 || - musicDriver == 3 || - musicDriver == 4 || - musicDriver == sysInvalidRefNum) { - HWR_SET(INIT_PA1LIB); - } -*/ - if (ModImport(&gVars->VFS.volRefNum, engine, &isARM) != errNone) { - if (bDirectMode) { - // and force exit if nothing selected - EventType event; - event.eType = keyDownEvent; - event.data.keyDown.chr = vchrLaunch; - event.data.keyDown.modifiers = commandKeyMask; - EvtAddUniqueEventToQueue(&event, 0, true); - } - ArgsFree(argvP); - return false; - } - - // reset mode if screen rotation occurred (DIA only) - if (!direct && OPTIONS_TST(kOptCollapsible)) { - UInt8 mode = PalmScreenSize(0,0, &(gVars->screenFullWidth), &(gVars->screenFullHeight)); - OPTIONS_RST(kOptModeLandscape); - OPTIONS_SET((mode == PALM_LANDSCAPE) ? kOptModeLandscape : kOptNone); - } - - // free and save globals pref memory - GamCloseDatabase(false); - FrmCloseAllForms(); - SavePrefs(); - - { - UInt16 cardNo; - UInt32 dbID; - - LaunchParamType *cmdPBP = (LaunchParamType *)MemPtrNew(sizeof(LaunchParamType)); - - MemPtrSetOwner(cmdPBP, 0); - MemPtrSetOwner(gVars, 0); - ArgsSetOwner(argvP, 0); - - cardNo = 0; - dbID = DmFindDatabase(0, "ScummVM-Engine"); - - if (isARM) - FtrSet(appFileCreator, ftrStack , (stackSize * 4)); - else - ModSetStack(stackSize, cardNo, dbID); - - cmdPBP->args.argc = argc; - cmdPBP->args.argv = argvP; - cmdPBP->gVars = gVars; - cmdPBP->lightspeed = lightspeed; - cmdPBP->exitLauncher = toLauncher; - - SysUIAppSwitch(cardNo, dbID, sysAppLaunchCmdNormalLaunch, cmdPBP); - bLaunched = true; - } - - return false; -} diff --git a/backends/platform/PalmOS/Src/launcher/skin.cpp b/backends/platform/PalmOS/Src/launcher/skin.cpp deleted file mode 100644 index 4c3f722aa1..0000000000 --- a/backends/platform/PalmOS/Src/launcher/skin.cpp +++ /dev/null @@ -1,612 +0,0 @@ -/* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - * - */ - -#include <PalmOS.h> -#include <PalmOSGlue.h> -#include <SonyClie.h> - -#include "start.h" -#include "games.h" -#include "globals.h" -#include "skin.h" -#include "StarterRsc.h" - -UInt16 lastIndex = dmMaxRecordIndex; // last select index in the list to prevent flash -static WinHandle winLockH = NULL; - -MemPtr SknScreenLock(WinLockInitType initMode) { - Err e; - RectangleType r; - - WinGetBounds(WinGetDisplayWindow(), &r); - winLockH = WinCreateOffscreenWindow(r.extent.x, r.extent.y, nativeFormat, &e); - WinSetDrawWindow(winLockH); - - if (initMode == winLockCopy) - WinCopyRectangle(WinGetDisplayWindow(), winLockH, &r, 0, 0, winPaint); - - return BmpGetBits(WinGetBitmap(winLockH)); -} - -void SknScreenUnlock() { - RectangleType r; - - WinGetBounds(winLockH, &r); - WinCopyRectangle(winLockH, WinGetDisplayWindow(), &r, 0, 0, winPaint); - WinSetDrawWindow(WinGetDisplayWindow()); - WinDeleteWindow(winLockH, false); - winLockH = NULL; -} - -static void SknGetListColors(DmOpenRef skinDBP, UInt8 *text, UInt8 *selected, UInt8 *background) { - UInt16 colIndex; - MemHandle colH; - UInt8 *colTemp; - - // default - *text = UIColorGetTableEntryIndex (UIMenuForeground); - *selected = UIColorGetTableEntryIndex (UIMenuSelectedForeground); - *background = UIColorGetTableEntryIndex (UIMenuSelectedFill); - - if (skinDBP) { - colIndex = DmFindResource (skinDBP, sknColorsRsc, skinColors, NULL); - - if (colIndex != (UInt16)-1) { - colH = DmGetResourceIndex(skinDBP, colIndex); - - if (colH) { - colTemp = (UInt8 *)MemHandleLock(colH); - - *text = colTemp[0]; - *selected = colTemp[1]; - *background = colTemp[2]; - - MemPtrUnlock(colTemp); - DmReleaseResource(colH); - } - } - } -} - -static void SknCopyBits(DmOpenRef skinDBP, DmResID bitmapID, const RectangleType *srcRect, Coord destX, Coord destY) { - MemHandle hTemp; - BitmapPtr bmpTemp; - UInt16 index; - - Coord cx, cy, cw, ch, bw, bh; - RectangleType copy, old; - - if (skinDBP) { - // find the bitmap - index = DmFindResource (skinDBP, bitmapRsc, bitmapID, NULL); - - if (index != (UInt16)-1) { - hTemp = DmGetResourceIndex(skinDBP,index); - - if (hTemp) { - bmpTemp = (BitmapType *)MemHandleLock(hTemp); - BmpGlueGetDimensions(bmpTemp, &bw, &bh, 0); - - if (!srcRect) { - cx = 0; - cy = 0; - cw = bw; - ch = bh; - } else { - cx = srcRect->topLeft.x; - cy = srcRect->topLeft.y; - cw = srcRect->extent.x; - ch = srcRect->extent.y; - } - - if (ch) { - WinGetClip(&old); - if (OPTIONS_TST(kOptModeHiDensity)) { - Err e; - BitmapTypeV3 *bmp2P; - - // create an uncompressed version of the bitmap - WinHandle win = WinCreateOffscreenWindow(bw, bh, screenFormat, &e); - WinHandle old = WinGetDrawWindow(); - WinSetDrawWindow(win); - WinDrawBitmap(bmpTemp, 0, 0); - WinSetDrawWindow(old); - - bmp2P = BmpCreateBitmapV3(WinGetBitmap(win), kDensityDouble, BmpGetBits(WinGetBitmap(win)), NULL); - - copy.topLeft.x = destX / 2; - copy.topLeft.y = destY / 2; - copy.extent.x = cw / 2; - copy.extent.y = ch / 2; - - WinSetClip(©); - WinDrawBitmap((BitmapPtr)bmp2P, (destX - cx) / 2, (destY - cy) / 2); - BmpDelete((BitmapPtr)bmp2P); - WinDeleteWindow(win, false); - - } else { - copy.topLeft.x = destX; - copy.topLeft.y = destY; - copy.extent.x = cw; - copy.extent.y = ch; - - HRWinSetClip(gVars->HRrefNum, ©); - HRWinDrawBitmap(gVars->HRrefNum, bmpTemp, destX - cx, destY - cy); - } - WinSetClip(&old); - } - - MemPtrUnlock(bmpTemp); - DmReleaseResource(hTemp); - } - } - } -} - -void SknApplySkin() { - DmOpenRef skinDBP; - RectangleType r; - FormPtr frmP = FrmGetActiveForm(); - - // draw skin - FrmDrawForm(frmP); - SknScreenLock(winLockCopy); - - skinDBP = SknOpenSkin(); - - if (gPrefs->card.volRefNum != vfsInvalidVolRef) - FrmShowObject(frmP, FrmGetObjectIndex (frmP, MainMSBitMap)); - else - FrmShowObject(frmP, FrmGetObjectIndex (frmP, MainMSNoneBitMap)); - - WinSetForeColor(255); - WinSetDrawMode(winPaint); - WinDrawLine (0, 14, 159, 14); - WinDrawLine (0, 13, 159, 13); - - SknGetObjectBounds(skinDBP, skinBackgroundImageTop, &r); - SknCopyBits(skinDBP, skinBackgroundImageTop, 0, r.topLeft.x, r.topLeft.y); - SknGetObjectBounds(skinDBP, skinBackgroundImageBottom, &r); - SknCopyBits(skinDBP, skinBackgroundImageBottom, 0, r.topLeft.x, r.topLeft.y); - - for (UInt16 resID = 1100; resID <= 7000; resID += 100) { - SknSetState(skinDBP, resID, sknStateNormal); - SknShowObject(skinDBP, resID); - } - - SknCloseSkin(skinDBP); - SknScreenUnlock(); - SknUpdateList(); -} - -void SknGetObjectBounds(DmOpenRef skinDBP, DmResID resID, RectangleType *rP) { - - UInt16 bmpIndex, strIndex; - MemHandle hBmp, hStr; - BitmapType *bmpTemp; - UInt8 *strTemp; - - RctSetRectangle(rP, 0, 0, 0, 0); - - if (skinDBP) { - bmpIndex = DmFindResource (skinDBP, bitmapRsc, resID, NULL); - - if (bmpIndex != (UInt16)-1) { // if bmp exists - strIndex = DmFindResource (skinDBP, sknPosRsc, resID, NULL); - - if (strIndex != (UInt16)-1) { // if params exist - hBmp = DmGetResourceIndex(skinDBP,bmpIndex); - - if (hBmp) { - hStr = DmGetResourceIndex(skinDBP,strIndex); - - if (hStr) { - // buttons : state|x|y|w/h slider|draw mode|x1/y1 keep|x2/y2 keep slider - // list (160mode) : state|x|y|w|h| - bmpTemp = (BitmapType *)MemHandleLock(hBmp); - strTemp = (UInt8 *)MemHandleLock(hStr); - - BmpGlueGetDimensions(bmpTemp, &(rP->extent.x), &(rP->extent.y), 0); - rP->topLeft.x = strTemp[sknInfoPosX] * 2; - rP->topLeft.y = strTemp[sknInfoPosY] * 2; - - MemPtrUnlock(strTemp); - DmReleaseResource(hStr); - } - - MemPtrUnlock(bmpTemp); - DmReleaseResource(hBmp); - } - } - } - } -} - -DmOpenRef SknOpenSkin() { - return DmOpenDatabase(gPrefs->skin.cardNo, gPrefs->skin.dbID, dmModeReadOnly); -} - -void SknCloseSkin(DmOpenRef skinDBP) { - if (skinDBP) - DmCloseDatabase(skinDBP); -} - -UInt8 SknSetState(DmOpenRef skinDBP, DmResID resID, UInt8 newState) { - - UInt16 index; - MemHandle hStr; - UInt8 *strTemp; - UInt8 oldState = 0; - - if (skinDBP) { - index = DmFindResource (skinDBP, sknPosRsc, resID, NULL); - - if (index != (UInt16)-1) { - hStr = DmGetResourceIndex(skinDBP, index); - - if (hStr) { - strTemp = (UInt8 *)MemHandleLock(hStr); - oldState = strTemp[sknInfoState]; - - if (oldState != newState) { - DmWrite(strTemp, 0, &newState, 1); - } - - MemPtrUnlock(strTemp); - DmReleaseResource(hStr); - } - } - } - - return oldState; -} - -UInt8 SknGetDepth(DmOpenRef skinDBP) { - UInt16 index; - MemHandle hStr; - UInt8 *strTemp; - UInt8 depth = 8; - - if (skinDBP) { - index = DmFindResource (skinDBP, sknDepthRsc, skinDepth, NULL); - - if (index != (UInt16)-1) { - hStr = DmGetResourceIndex(skinDBP, index); - - if (hStr) { - strTemp = (UInt8 *)MemHandleLock(hStr); - depth = *strTemp; - MemPtrUnlock(strTemp); - DmReleaseResource(hStr); - } - } - } - - return depth; -} - -UInt8 SknGetState(DmOpenRef skinDBP, DmResID resID) { - UInt16 index; - MemHandle hStr; - UInt8 *strTemp; - UInt8 oldState = sknStateDisabled; - - if (skinDBP) { - index = DmFindResource (skinDBP, sknPosRsc, resID, NULL); - - if (index != (UInt16)-1) { - hStr = DmGetResourceIndex(skinDBP, index); - - if (hStr) { - strTemp = (UInt8 *)MemHandleLock(hStr); - oldState = strTemp[sknInfoState]; - MemPtrUnlock(strTemp); - DmReleaseResource(hStr); - } - } - } - - return oldState; -} - -void SknShowObject(DmOpenRef skinDBP, DmResID resID) { - RectangleType r; - UInt8 state = SknGetState(skinDBP, resID); - SknGetObjectBounds(skinDBP, resID, &r); - SknCopyBits(skinDBP, resID + state, NULL, r.topLeft.x, r.topLeft.y); -} - -void SknGetListBounds(RectangleType *rAreaP, RectangleType *rArea2xP) { - DmOpenRef skinDBP; - UInt16 strIndex; - MemHandle hStr; - UInt8 *strTemp; - UInt16 x,y,w,h; - - skinDBP = DmOpenDatabase(gPrefs->skin.cardNo, gPrefs->skin.dbID, dmModeReadOnly); - if (skinDBP) { - strIndex = DmFindResource (skinDBP, sknPosRsc, skinList, NULL); - - if (strIndex != 0xFFFF) { // if params exist - hStr = DmGetResourceIndex(skinDBP,strIndex); - if (hStr) { - strTemp = (UInt8 *)MemHandleLock(hStr); - - x = strTemp[sknInfoPosX]; - y = strTemp[sknInfoPosY]; - w = strTemp[sknInfoListWidth]; - h = strTemp[sknInfoListSize] * sknInfoListItemSize; - - if (rAreaP) - RctSetRectangle(rAreaP ,x, y, w, h); - if (rArea2xP) - RctSetRectangle(rArea2xP, x+x, y+y, w+w, h+h); - - MemHandleUnlock(hStr); - DmReleaseResource(hStr); - } - } - - DmCloseDatabase(skinDBP); - } -} - -static void SknRedrawTools(DmOpenRef skinDBP) { - if (GamGetSelected() == dmMaxRecordIndex) { - if (SknGetState(skinDBP, skinButtonGameDelete) == sknStateNormal) { - SknSetState(skinDBP, skinButtonGameDelete,sknStateDisabled); - SknShowObject(skinDBP, skinButtonGameDelete); - } - if (SknGetState(skinDBP, skinButtonGameEdit) == sknStateNormal) { - SknSetState(skinDBP, skinButtonGameEdit,sknStateDisabled); - SknShowObject(skinDBP, skinButtonGameEdit); - } - if (SknGetState(skinDBP, skinButtonGameAudio) == sknStateNormal) { - SknSetState(skinDBP, skinButtonGameAudio,sknStateDisabled); - SknShowObject(skinDBP, skinButtonGameAudio); - } - - } else { - if (SknGetState(skinDBP, skinButtonGameDelete) == sknStateDisabled) { - SknSetState(skinDBP, skinButtonGameDelete,sknStateNormal); - SknShowObject(skinDBP, skinButtonGameDelete); - } - if (SknGetState(skinDBP, skinButtonGameEdit) == sknStateDisabled) { - SknSetState(skinDBP, skinButtonGameEdit,sknStateNormal); - SknShowObject(skinDBP, skinButtonGameEdit); - } - if (SknGetState(skinDBP, skinButtonGameAudio) == sknStateDisabled) { - SknSetState(skinDBP, skinButtonGameAudio,sknStateNormal); - SknShowObject(skinDBP, skinButtonGameAudio); - } - } -} - -static void SknRedrawSlider(DmOpenRef skinDBP, UInt16 index, UInt16 maxIndex, UInt16 perPage) { - if (maxIndex <= perPage) { - if (SknGetState(skinDBP,skinSliderUpArrow) != sknStateDisabled) { - SknSetState(skinDBP,skinSliderUpArrow,sknStateDisabled); - SknShowObject(skinDBP,skinSliderUpArrow); - } - if (SknGetState(skinDBP,skinSliderDownArrow) != sknStateDisabled) { - SknSetState(skinDBP,skinSliderDownArrow,sknStateDisabled); - SknShowObject(skinDBP,skinSliderDownArrow); - } - - } else { - if (SknGetState(skinDBP,skinSliderUpArrow) == sknStateDisabled) { - SknSetState(skinDBP,skinSliderUpArrow,sknStateNormal); - SknShowObject(skinDBP,skinSliderUpArrow); - } - if (SknGetState(skinDBP,skinSliderDownArrow) == sknStateDisabled) { - SknSetState(skinDBP,skinSliderDownArrow,sknStateNormal); - SknShowObject(skinDBP,skinSliderDownArrow); - } - } -} - -void SknUpdateList() { - MemHandle record; - Int32 index, maxIndex, maxView; - GameInfoType *game; - RectangleType rArea, rField, rCopy, rArea2x; - DmOpenRef skinDBP; - - UInt8 txtColor, norColor, selColor, bkgColor; - UInt16 x,y; - - SknScreenLock(winLockCopy); - - SknGetListBounds(&rArea, &rArea2x); - skinDBP = SknOpenSkin(); - // set default bg - WinSetForeColor(UIColorGetTableEntryIndex (UIFormFill)); - WinDrawRectangle(&rArea,0); - // copy top bg - SknGetObjectBounds(skinDBP, skinBackgroundImageTop, &rField); - RctGetIntersection(&rArea2x, &rField, &rCopy); - x = rCopy.topLeft.x; - y = rCopy.topLeft.y; - rCopy.topLeft.x -= rField.topLeft.x; - rCopy.topLeft.y -= rField.topLeft.y; - SknCopyBits(skinDBP, skinBackgroundImageTop, &rCopy, x, y); - // copy bottom bg - SknGetObjectBounds(skinDBP, skinBackgroundImageBottom, &rField); - RctGetIntersection(&rArea2x, &rField, &rCopy); - x = rCopy.topLeft.x; - y = rCopy.topLeft.y; - rCopy.topLeft.x -= rField.topLeft.x; - rCopy.topLeft.y -= rField.topLeft.y; - SknCopyBits(skinDBP, skinBackgroundImageBottom, &rCopy, x, y); - - FntSetFont(stdFont); - - index = gPrefs->listPosition; - maxIndex = DmNumRecords(gameDB); - maxView = rArea.extent.y / sknInfoListItemSize; - - if (index > 0 && (index + maxView) > maxIndex) - index -= (index + maxView) - maxIndex; - - if (index < 0) - index = 0; - - gPrefs->listPosition = index; - - SknRedrawSlider(skinDBP, index, maxIndex, maxView); - SknRedrawTools(skinDBP); - SknGetListColors(skinDBP, &norColor, &selColor, &bkgColor); - - SknCloseSkin(skinDBP); - - while (index < (gPrefs->listPosition + maxView) && index < maxIndex) { - record = DmQueryRecord(gameDB, index); - game = (GameInfoType *)MemHandleLock(record); - - // text box - RctSetRectangle(&rField, rArea.topLeft.x, (rArea.topLeft.y + sknInfoListItemSize * (index - gPrefs->listPosition)), rArea.extent.x, sknInfoListItemSize); - WinSetClip(&rField); - - if (game->selected) { - WinSetDrawMode(winPaint); - WinSetForeColor(bkgColor); - WinDrawRectangle(&rField,0); - txtColor = selColor; - } - else - txtColor = norColor; - - // clipping - rField.topLeft.x += 2; - rField.extent.x -= 4; - WinSetClip(&rField); - // draw text mask - WinSetTextColor(255); - WinSetDrawMode(winMask); - WinPaintChars(game->nameP, StrLen(game->nameP), rField.topLeft.x, rField.topLeft.y); - // draw text - if (txtColor) { - WinSetTextColor(txtColor); - WinSetDrawMode(winOverlay); - WinPaintChars(game->nameP, StrLen(game->nameP), rField.topLeft.x, rField.topLeft.y); - } - - MemHandleUnlock(record); - index++; - } - - RctSetRectangle(&rArea,0,0,160,160); - WinSetClip(&rArea); - SknScreenUnlock(); -} - -UInt16 SknCheckClick(DmOpenRef skinDBP, Coord mx, Coord my) { - UInt16 resID; - RectangleType r; - - mx *= 2; - my *= 2; - - if (skinDBP) { - for (resID = 1100; resID <= 7000; resID += 100) { - if (SknGetState(skinDBP, resID) != sknStateDisabled) { - SknGetObjectBounds(skinDBP, resID, &r); - if (RctPtInRectangle(mx, my, &r)) { - return resID; - } - } - } - } - - return 0; -} - -void SknSelect(Coord x, Coord y) { - RectangleType rArea; - SknGetListBounds(&rArea,0); - - if (RctPtInRectangle(x, y, &rArea)) { - UInt16 index; - MemHandle record; - GameInfoType *game; - UInt16 oldIndex; - - index = (y - rArea.topLeft.y) / sknInfoListItemSize + gPrefs->listPosition; - - if (index == lastIndex) - return; - - if (index < DmNumRecords(gameDB)) { - Boolean newValue; - - oldIndex = GamGetSelected(); - - if (oldIndex != index && oldIndex != dmMaxRecordIndex) - GamUnselect(); - - record = DmGetRecord(gameDB, index); - game = (GameInfoType *)MemHandleLock(record); - - newValue = !game->selected; - DmWrite(game, OffsetOf(GameInfoType,selected), &newValue, sizeof(Boolean)); - - MemHandleUnlock(record); - DmReleaseRecord (gameDB, index, 0); - - lastIndex = index; - SknUpdateList(); - } - } -} - -Boolean SknProcessArrowAction(UInt16 button) { - Boolean handled = false; - - switch (button) { - case skinSliderUpArrow: - if (gPrefs->listPosition > 0) { - gPrefs->listPosition--; - SknUpdateList(); - } - handled = true; - break; - - case skinSliderDownArrow: - RectangleType rArea; - UInt16 maxView; - - SknGetListBounds(&rArea, 0); - maxView = rArea.extent.y / sknInfoListItemSize; - - if (gPrefs->listPosition < DmNumRecords(gameDB)-maxView) { - gPrefs->listPosition++; - SknUpdateList(); - } - handled = true; - break; - } - - return handled; -} diff --git a/backends/platform/PalmOS/Src/launcher/skin.h b/backends/platform/PalmOS/Src/launcher/skin.h deleted file mode 100644 index e8a81e7e2d..0000000000 --- a/backends/platform/PalmOS/Src/launcher/skin.h +++ /dev/null @@ -1,131 +0,0 @@ -/* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - * - */ - -#ifndef __SKIN_H__ -#define __SKIN_H__ - -// skin -#define sknInfoState 0 -#define sknInfoPosX 1 -#define sknInfoPosY 2 - -#define sknInfoMaxWOrH 3 -#define sknInfoDrawMode 4 -#define sknInfoKeepXOrY1 5 -#define sknInfoKeepXOrY2 7 - -#define sknInfoListWidth sknInfoMaxWOrH -#define sknInfoListHeight sknInfoDrawMode -#define sknInfoListSize sknInfoListHeight -#define sknInfoListItemSize 12 - -#define sknPosRsc 'sPos' -#define sknColorsRsc 'sCol' -#define sknDepthRsc 'sDep' - -#define sknStateNormal 0 -#define sknStateSelected 10 -#define sknStateDisabled 20 - -#define sknSelectedState(bmp) (bmp + sknStateSelected) -#define sknDisabledState(bmp) (bmp + sknStateDisabled) - -// skin elements -#define skinList 500 -#define skinColors 600 -#define skinDepth 700 - -#define skinButtonNone 0 - -#define skinSliderUpArrow 2000 -#define skinSliderDownArrow 2100 - -#define skinButtonGameParams 3000 -#define skinButtonGameAdd 3100 -#define skinButtonGameEdit 3200 -#define skinButtonGameAudio 3300 -#define skinButtonGameDelete 4000 -#define skinButtonGameStart 7000 - -#define skinBackgroundImageTop 1000 -#define skinBackgroundImageBottom 1010 -/// - - -#define skinToolsBackground 1100 - -#define skinListUpArrowNormal 1500 -#define skinListUpArrowOver 1510 -#define skinListUpArrowDisabled 1540 - -#define skinListDownArrowNormal 1800 -#define skinListDownArrowOver 1810 -#define skinListDownArrowDisabled 1840 - -#define skinButtonGameInfoNormal 2000 -#define skinButtonGameInfoOver 2010 -#define skinButtonGameInfoDisabled 2040 - -#define skinButtonGameParamNormal 3000 -#define skinButtonGameParamOver 3010 - -#define skinButtonGameDeleteNormal 4000 -#define skinButtonGameDeleteOver 4010 -#define skinButtonGameDeleteDisabled 4040 - -#define skinButtonVibratorNormal 5000 -#define skinButtonVibratorOver 5010 -#define skinButtonVibratorSelected 5020 -#define skinButtonVibratorSelectedOver 5030 -#define skinButtonVibratorDisabled 5040 - - -#define skinButtonSleepNormal 6000 -#define skinButtonSleepOver 6010 -#define skinButtonSleepSelected 6020 -#define skinButtonSleepSelectedOver 9030 - -#define skinButtonPlayNormal 7000 -#define skinButtonPlayOver 7010 -#define skinButtonPlayDisabled 7040 - -// protos -void SknApplySkin(); -void SknGetObjectBounds(DmOpenRef skinDBP, DmResID resID, RectangleType *rP); -DmOpenRef SknOpenSkin(); -void SknCloseSkin(DmOpenRef skinDBP); -UInt8 SknSetState(DmOpenRef skinDBP, DmResID resID, UInt8 newState); -void SknShowObject(DmOpenRef skinDBP, DmResID resID); -UInt8 SknGetState(DmOpenRef skinDBP, DmResID resID); -void SknUpdateList(); -void SknGetListBounds(RectangleType *rAreaP, RectangleType *rArea2xP); -UInt16 SknCheckClick(DmOpenRef skinDBP, Coord mx, Coord my); -void SknSelect(Coord x, Coord y); -Boolean SknProcessArrowAction(UInt16 button); -UInt8 SknGetDepth(DmOpenRef skinDBP); - -extern UInt16 lastIndex; - -#endif diff --git a/backends/platform/PalmOS/Src/launcher/start.cpp b/backends/platform/PalmOS/Src/launcher/start.cpp deleted file mode 100644 index b5e8f24884..0000000000 --- a/backends/platform/PalmOS/Src/launcher/start.cpp +++ /dev/null @@ -1,367 +0,0 @@ -/* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - * - */ - -#include <PalmOS.h> -#include <SonyClie.h> - -#include "palmdefs.h" -#include "start.h" -#include "games.h" -#include "globals.h" -#include "modules.h" -#include "skin.h" - -#include "forms.h" - -/*********************************************************************** - * - * Global variables - * - ***********************************************************************/ -GlobalsPreferencePtr gPrefs; -GlobalsDataPtr gVars; - -Boolean bDirectMode = false; -Boolean bLaunched = false; - -/*********************************************************************** - * - * Internal Constants - * - ***********************************************************************/ - -// Define the minimum OS version we support (3.5 for now). -#define kOurMinVersion sysMakeROMVersion(3,5,0,sysROMStageRelease,0) -#define kPalmOS10Version sysMakeROMVersion(1,0,0,sysROMStageRelease,0) - -/*********************************************************************** - * - * Internal Functions - * - ***********************************************************************/ - -// Callback for ExgDBWrite to send data with Exchange Manager -static Err WriteDBData(const void* dataP, UInt32* sizeP, void* userDataP) { - Err err; - *sizeP = ExgSend((ExgSocketPtr)userDataP, (void*)dataP, *sizeP, &err); - return err; -} - -Err SendDatabase (UInt16 cardNo, LocalID dbID, Char *nameP, Char *descriptionP) { - ExgSocketType exgSocket; - Err err; - - // Create exgSocket structure - MemSet(&exgSocket, sizeof(exgSocket), 0); - exgSocket.description = descriptionP; - exgSocket.name = nameP; - - // Start an exchange put operation - err = ExgPut(&exgSocket); - if (!err) { - err = ExgDBWrite(WriteDBData, &exgSocket, NULL, dbID, cardNo); - err = ExgDisconnect(&exgSocket, err); - } - - return err; -} - - -/*********************************************************************** - * - * FUNCTION: RomVersionCompatible - * - * DESCRIPTION: This routine checks that a ROM version is meet your - * minimum requirement. - * - * PARAMETERS: requiredVersion - minimum rom version required - * (see sysFtrNumROMVersion in SystemMgr.h - * for format) - * launchFlags - flags that indicate if the application - * UI is initialized. - * - * RETURNED: error code or zero if rom is compatible - * - * REVISION HISTORY: - * - * - ***********************************************************************/ -static Err RomVersionCompatible(UInt32 requiredVersion, UInt16 launchFlags) { - UInt32 romVersion; - - // See if we're on in minimum required version of the ROM or later. - FtrGet(sysFtrCreator, sysFtrNumROMVersion, &romVersion); - if (romVersion < requiredVersion) { - if ((launchFlags & (sysAppLaunchFlagNewGlobals | sysAppLaunchFlagUIApp)) == - (sysAppLaunchFlagNewGlobals | sysAppLaunchFlagUIApp)) { - - FrmAlert (RomIncompatibleAlert); - - // Palm OS 1.0 will continuously relaunch this app unless we switch to - // another safe one. - if (romVersion <= kPalmOS10Version) - AppLaunchWithCommand(sysFileCDefaultApp, sysAppLaunchCmdNormalLaunch, NULL); - - } - return sysErrRomIncompatible; - } - - return errNone; -} - -/////////////////////////////////////////////////////////////////////// - - -void SavePrefs() { - if (gPrefs) { - PrefSetAppPreferences(appFileCreator, appPrefID, appPrefVersionNum, gPrefs, sizeof (GlobalsPreferenceType), true); - MemPtrFree(gPrefs); - gPrefs = NULL; - } -} - -/*********************************************************************** - * - * FUNCTION: AppHandleEvent - * - * DESCRIPTION: This routine loads form resources and set the event - * handler for the form loaded. - * - * PARAMETERS: event - a pointer to an EventType structure - * - * RETURNED: true if the event has handle and should not be passed - * to a higher level handler. - * - * REVISION HISTORY: - * - * - ***********************************************************************/ -static Boolean AppHandleEvent(EventPtr eventP) { - UInt16 formId; - FormPtr frmP; - - if (eventP->eType == frmLoadEvent) { - // Load the form resource. - formId = eventP->data.frmLoad.formID; - frmP = FrmInitForm(formId); - FrmSetActiveForm(frmP); - - // Set the event handler for the form. The handler of the currently - // active form is called by FrmHandleEvent each time is receives an - // event. - switch (formId) { - case MainForm: - FrmSetEventHandler(frmP, MainFormHandleEvent); - break; - - case SkinsForm: - FrmSetEventHandler(frmP, SkinsFormHandleEvent); - break; - - case GameEditForm: - FrmSetEventHandler(frmP, EditGameFormHandleEvent); - break; - - case MiscForm: - FrmSetEventHandler(frmP, MiscFormHandleEvent); - break; - - case CardSlotForm: - FrmSetEventHandler(frmP, CardSlotFormHandleEvent); - break; - - case MusicForm: - FrmSetEventHandler(frmP, MusicFormHandleEvent); - break; - - case InfoForm: - FrmSetEventHandler(frmP, InfoFormHandleEvent); - break; - - case EngineForm: - FrmSetEventHandler(frmP, SelectorFormHandleEvent); - break; - - default: -// ErrFatalDisplay("Invalid Form Load Event"); - break; - } - return true; - } - - return false; -} - -/*********************************************************************** - * - * FUNCTION: AppEventLoop - * - * DESCRIPTION: This routine is the event loop for the application. - * - * PARAMETERS: nothing - * - * RETURNED: nothing - * - * REVISION HISTORY: - * - * - ***********************************************************************/ -static void AppEventLoop(void) { - UInt16 error; - EventType event; - - do { - EvtGetEvent(&event, evtNoWait); - - if (! SysHandleEvent(&event)) - if (! MenuHandleEvent(0, &event, &error)) - if (! AppHandleEvent(&event)) - FrmDispatchEvent(&event); - - } while (event.eType != appStopEvent); -} - -/*********************************************************************** - * - * FUNCTION: ScummVMPalmMain - * - * DESCRIPTION: This is the main entry point for the application. - * - * PARAMETERS: cmd - word value specifying the launch code. - * cmdPB - pointer to a structure that is associated with the launch code. - * launchFlags - word value providing extra information about the launch. - * - * RETURNED: Result of launch - * - * REVISION HISTORY: - * - * - ***********************************************************************/ -static void AppLaunchCmdNotify(UInt16 LaunchFlags, SysNotifyParamType * pData) { - switch (pData->notifyType) { - case sysNotifyVolumeMountedEvent: - pData->handled = true; // don't switch - - if (gPrefs) { // gPrefs exists ? so we are in the palm selector - CardSlotFormUpdate(); // redraw card list if needed - - if (gPrefs->card.volRefNum == vfsInvalidVolRef) { - VFSAnyMountParamType *notifyDetailsP = (VFSAnyMountParamType *)pData->notifyDetailsP; - gPrefs->card.volRefNum = notifyDetailsP->volRefNum; - - if (FrmGetFormPtr(MainForm) == FrmGetActiveForm()) - if (gPrefs->card.volRefNum != vfsInvalidVolRef) { - CardSlotCreateDirs(); - FrmUpdateForm(MainForm, frmRedrawUpdateMSImport); - } - } - } - break; - - case sysNotifyVolumeUnmountedEvent: - if (gPrefs) { - CardSlotFormUpdate(); - - if (gPrefs->card.volRefNum == (UInt16)pData->notifyDetailsP) { - gPrefs->card.volRefNum = vfsInvalidVolRef; - - if (FrmGetFormPtr(MainForm) == FrmGetActiveForm()) - FrmUpdateForm(MainForm, frmRedrawUpdateMS); - } - } - break; - - case sysNotifyDisplayResizedEvent: - if (gVars) - if (FrmGetFormPtr(MainForm) == FrmGetActiveForm()) - SknApplySkin(); - break; - - case sonySysNotifyMsaEnforceOpenEvent: - // what am i supposed to do here ??? - break; - } -} - -static UInt32 ScummVMPalmMain(UInt16 cmd, MemPtr cmdPBP, UInt16 launchFlags) { - Err error; - - error = RomVersionCompatible (kOurMinVersion, launchFlags); - if (error) return (error); - - switch (cmd) { - case sysAppLaunchCmdNotify: - AppLaunchCmdNotify(launchFlags, (SysNotifyParamType *) cmdPBP); - break; - - case sysAppLaunchCustomEngineDelete: -#ifndef _DEBUG_ENGINE - ModDelete(); -#endif - break; - - case sysAppLaunchCmdNormalLaunch: - error = AppStart(); - if (error) - goto end; - - if (!bDirectMode) { - FrmGotoForm(MainForm); - }else { - GamUnselect(); - FrmGotoForm(EngineForm); - } - - AppEventLoop(); -end: - AppStop(); - break; - - default: - break; - - } - return error; -} - -/*********************************************************************** - * - * FUNCTION: PilotMain - * - * DESCRIPTION: This is the main entry point for the application. - * - * PARAMETERS: cmd - word value specifying the launch code. - * cmdPB - pointer to a structure that is associated with the launch code. - * launchFlags - word value providing extra information about the launch. - * RETURNED: Result of launch - * - * REVISION HISTORY: - * - * - ***********************************************************************/ - -UInt32 PilotMain( UInt16 cmd, MemPtr cmdPBP, UInt16 launchFlags) { - return ScummVMPalmMain(cmd, cmdPBP, launchFlags); -} diff --git a/backends/platform/PalmOS/Src/launcher/start.h b/backends/platform/PalmOS/Src/launcher/start.h deleted file mode 100644 index 3ed52b465b..0000000000 --- a/backends/platform/PalmOS/Src/launcher/start.h +++ /dev/null @@ -1,98 +0,0 @@ -/* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - * - */ - -#ifndef __START_H__ -#define __START_H__ - -typedef struct { - Char nameP[32]; - UInt16 cardNo; - LocalID dbID; -} SkinInfoType, *SkinInfoPtr; - -typedef struct { - - //skin params - SkinInfoType skin; // card where is located the skin - Boolean soundClick; - - Boolean vibrator; - Boolean autoOff; - Boolean setStack; - Boolean exitLauncher; - Boolean goLCD; - Boolean stylusClick; - Boolean arrowKeys; - - UInt16 listPosition; - UInt16 autoSavePeriod; - - struct { - UInt16 volRefNum; - UInt32 cacheSize; - Boolean useCache; - Boolean showLED; - Boolean autoDetect; - Boolean moveDB; - Boolean deleteDB; - Boolean confirmMoveDB; - } card; - - Boolean debug; - UInt16 debugLevel; - Boolean stdPalette; - Boolean demoMode; - Boolean copyProtection; - Boolean oldarm;// TODO : free slot... - Boolean altIntro; - Boolean autoSave; - Boolean advancedMode; - - struct { - Boolean enable; - UInt8 mode; - } lightspeed; - -} GlobalsPreferenceType, *GlobalsPreferencePtr; - -extern GlobalsPreferencePtr gPrefs; - -extern Boolean bDirectMode; -extern Boolean bLaunched; - -#define appPrefID 0x00 -#define appVersionNum 0x01 -#define appPrefVersionNum 0x02 - -#define STACK_DEFAULT 8192 -#define STACK_LARGER 16384 -#define STACK_GET 0 - -Err AppStart(void); -void AppStop(void); -Boolean StartScummVM(Int16 engine = -1); -void SavePrefs(); -Err SendDatabase (UInt16 cardNo, LocalID dbID, Char *nameP, Char *descriptionP); -#endif |