[Scummvm-cvs-logs] CVS: scummvm/backends/PalmOS/Src/builder b_globals.c,NONE,1.1 b_globals.h,NONE,1.1 builder.c,NONE,1.1 enum_globals.h,NONE,1.1

Chris Apers chrilith at users.sourceforge.net
Fri Nov 28 01:55:12 CET 2003


Update of /cvsroot/scummvm/scummvm/backends/PalmOS/Src/builder
In directory sc8-pr-cvs1:/tmp/cvs-serv6867

Added Files:
	b_globals.c b_globals.h builder.c enum_globals.h 
Log Message:
Builder files

--- NEW FILE: b_globals.c ---
#include <PalmOS.h>
#include "b_globals.h"


/*
#define BUILD_RES	GBVARS_SCUMM
#define BUILD		(0)
#define BUILD_NAME	"Scumm"
*/
#define BUILD_SIMON

#ifdef BUILD_SCUMM
#	define BUILD_RES	GBVARS_SCUMM
#	define BUILD_NAME	"Scumm"
#elif defined(BUILD_SIMON)
#	define BUILD_RES	GBVARS_SIMON
#	define BUILD_NAME	"Simon"
#else
#	define BUILD_RES	-1
#	define BUILD_NAME
#	error No target defined.
#endif
DmOpenRef dbP[GBVARS_COUNT];
///////////////////////////////////////////////////////////////////

void writeRecord(MemPtr ptr, UInt32 size, UInt16 index, UInt16 dbID) {
	Err e;
	
	MemHandle recordH = DmNewRecord(dbP[dbID], &index, size);
	MemPtr save = MemHandleLock(recordH);
	e = DmWrite(save, 0, ptr, size);
	MemHandleUnlock(recordH);
	DmReleaseRecord (dbP[dbID], index, 0);
}
///////////////////////////////////////////////////////////////////
void buildAll() {
	Err err;
	LocalID olddb;	

	olddb = DmFindDatabase(0, BUILD_NAME "-Globals");
	if (olddb) {
		DmDeleteDatabase(0,olddb);
		FrmCustomAlert(1000,"delete old " BUILD_NAME " DB",0,0);
	}
	err = DmCreateDatabase (0, BUILD_NAME "-Globals", 'ScVM', 'GLBS', false);
	olddb = DmFindDatabase(0, BUILD_NAME "-Globals");
	dbP[BUILD_RES] = DmOpenDatabase(0, olddb, dmModeReadWrite);

#if defined(BUILD_SCUMM)
	addImuseDigi();
	addNewGui();
	// temp removed
	// TODO ::scummvm use sizeof(OLD256_MIDI_HACK) so i need to fix it
	// directly in the code or call MemHandleSize but it may slow down
	// code execution
	addAkos();
	addBundle();
	addCodec47();
	addGfx();
	addDialogs();
	addCharset();
	addCostume();

#elif defined(BUILD_SIMON)
	addSimon();
	Simon_addCharset();

//#elif defined(BUILD_QUEEN)
//	addRestables();
#endif

	DmCloseDatabase(dbP[BUILD_RES]);
}

--- NEW FILE: b_globals.h ---
#include "enum_globals.h"

// define this to limit memory request on Simon
#define SMALL_MEMORY

void writeRecord(MemPtr ptr, UInt32 size, UInt16 index, UInt16 dbID);
void buildAll();

void addImuseDigi();
void addNewGui();
void addAkos();
void addBundle();
void addCodec47();
void addGfx();
void addDialogs();
void addCharset();
void addCostume();
void addPlayerV2();
/////////////////////////////////
void addSimon();
void Simon_addCharset();
/////////////////////////////////
void addRestables();

--- NEW FILE: builder.c ---
#include <PalmOS.h>
#include "BuilderRsc.h"


/***********************************************************************
 *
 *	Entry Points
 *
 ***********************************************************************/

void buildAll();
/***********************************************************************
 *
 *	Internal Structures
 *
 ***********************************************************************/
typedef struct 
	{
	UInt8 replaceme;
	} StarterPreferenceType;

typedef struct 
	{
	UInt8 replaceme;
	} StarterAppInfoType;

typedef StarterAppInfoType* StarterAppInfoPtr;


/***********************************************************************
 *
 *	Global variables
 *
 ***********************************************************************/
//static Boolean HideSecretRecords;


/***********************************************************************
 *
 *	Internal Constants
 *
 ***********************************************************************/
#define appFileCreator			'STRT'	// register your own at http://www.palmos.com/dev/creatorid/
#define appVersionNum			0x01
#define appPrefID				0x00
#define appPrefVersionNum		0x01

// Define the minimum OS version we support (2.0 for now).
#define ourMinVersion	sysMakeROMVersion(2,0,0,sysROMStageRelease,0)
#define kPalmOS10Version	sysMakeROMVersion(1,0,0,sysROMStageRelease,0)


/***********************************************************************
 *
 *	Internal Functions
 *
 ***********************************************************************/


/***********************************************************************
 *
 * 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;
}


/***********************************************************************
 *
 * 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:
 *
 *
 ***********************************************************************/
static void * GetObjectPtr(UInt16 objectID)
{
	FormPtr frmP;

	frmP = FrmGetActiveForm();
	return FrmGetObjectPtr(frmP, FrmGetObjectIndex(frmP, objectID));
}


/***********************************************************************
 *
 * FUNCTION:    MainFormInit
 *
 * DESCRIPTION: This routine initializes the MainForm form.
 *
 * PARAMETERS:  frm - pointer to the MainForm form.
 *
 * RETURNED:    nothing
 *
 * REVISION HISTORY:
 *
 *
 ***********************************************************************/
static void MainFormInit(FormPtr /*frmP*/)
{
}


/***********************************************************************
 *
 * 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;
	FormPtr frmP;

	switch (command)
		{
		case MainOptionsAboutStarterApp:
			MenuEraseStatus(0);					// Clear the menu status from the display.
			frmP = FrmInitForm (AboutForm);
			FrmDoDialog (frmP);					// Display the About Box.
			FrmDeleteForm (frmP);
			handled = true;
			break;

		}
	
	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 MainFormHandleEvent(EventPtr eventP)
{
	Boolean handled = false;
	FormPtr frmP;

	switch (eventP->eType) 
		{
		case menuEvent:
			return MainFormDoCommand(eventP->data.menu.itemID);

		case frmOpenEvent:
			frmP = FrmGetActiveForm();
			MainFormInit( frmP);
			FrmDrawForm ( frmP);
			handled = true;
			break;
		
		case ctlSelectEvent:
			switch (eventP->data.ctlSelect.controlID)
			{
				case MainBuildButton:
					buildAll();
					break;
			}
			handled = true;
			break;
			
		case frmUpdateEvent:
			// To do any custom drawing here, first call FrmDrawForm(), then do your
			// drawing, and then set handled to true.
			break;

		default:
			break;
		
		}
	
	return handled;
}


/***********************************************************************
 *
 * 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;

			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, evtWaitForever);

		if (! SysHandleEvent(&event))
			if (! MenuHandleEvent(0, &event, &error))
				if (! AppHandleEvent(&event))
					FrmDispatchEvent(&event);

	} while (event.eType != appStopEvent);
}


/***********************************************************************
 *
 * FUNCTION:     AppStart
 *
 * DESCRIPTION:  Get the current application's preferences.
 *
 * PARAMETERS:   nothing
 *
 * RETURNED:     Err value 0 if nothing went wrong
 *
 * REVISION HISTORY:
 *
 *
 ***********************************************************************/
static Err AppStart(void)
{
	StarterPreferenceType prefs;
	UInt16 prefsSize;

	// Read the saved preferences / saved-state information.
	prefsSize = sizeof(StarterPreferenceType);
	if (PrefGetAppPreferences(appFileCreator, appPrefID, &prefs, &prefsSize, true) != 
		noPreferenceFound)
		{
		}
	
	return errNone;
}


/***********************************************************************
 *
 * FUNCTION:    AppStop
 *
 * DESCRIPTION: Save the current state of the application.
 *
 * PARAMETERS:  nothing
 *
 * RETURNED:    nothing
 *
 * REVISION HISTORY:
 *
 *
 ***********************************************************************/
static void AppStop(void)
{
	StarterPreferenceType prefs;

	// Write the saved preferences / saved-state information.  This data 
	// will saved during a HotSync backup.
	PrefSetAppPreferences (appFileCreator, appPrefID, appPrefVersionNum, 
		&prefs, sizeof (prefs), true);
		
	// Close all the open forms.
	FrmCloseAllForms ();
}


/***********************************************************************
 *
 * FUNCTION:    StarterPalmMain
 *
 * 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 UInt32 StarterPalmMain(UInt16 cmd, MemPtr /*cmdPBP*/, UInt16 launchFlags)
{
	Err error;

	error = RomVersionCompatible (ourMinVersion, launchFlags);
	if (error) return (error);

	switch (cmd)
		{
		case sysAppLaunchCmdNormalLaunch:
			error = AppStart();
			if (error) 
				return error;
				
			FrmGotoForm(MainForm);
			AppEventLoop();
			AppStop();
			break;

		default:
			break;

		}
	
	return errNone;
}


/***********************************************************************
 *
 * 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 StarterPalmMain(cmd, cmdPBP, launchFlags);
}

--- NEW FILE: enum_globals.h ---
#ifndef __ENUM_GLOBALS_H__
#define __ENUM_GLOBALS_H__

// Scumm
enum {
	GBVARS_DIGSTATEMUSICMAP_INDEX = 0,
	GBVARS_DIGSTATEMUSICTABLE_INDEX,
	GBVARS_COMISTATEMUSICTABLE_INDEX,
	GBVARS_COMISEQMUSICTABLE_INDEX,
	GBVARS_DIGSEQMUSICTABLE_INDEX,
	GBVARS_FTSTATEMUSICTABLE_INDEX,
	GBVARS_FTSEQMUSICTABLE_INDEX,
	GBVARS_GUIFONT_INDEX,
	GBVARS_DEFAULTSCALETABLE_INDEX,
	GBVARS_IMCTABLE_INDEX,
	GBVARS_CODEC47TABLE_INDEX,
	GBVARS_TRANSITIONEFFECTS_INDEX,
	GBVARS_STRINGMAPTABLEV7_INDEX,
	GBVARS_STRINGMAPTABLEV6_INDEX,
	GBVARS_STRINGMAPTABLEV5_INDEX,
	GBVARS_GERMANCHARSETDATAV2_INDEX,
	GBVARS_FRENCHCHARSETDATAV2_INDEX,
	GBVARS_ENGLISHCHARSETDATAV2_INDEX,
	GBVARS_ITALIANCHARSETDATAV2_INDEX,
	GBVARS_SPANISHCHARSETDATAV2_INDEX,
	GBVARS_COSTSCALETABLE_INDEX,
	GBVARS_NOTELENGTHS_INDEX,
	GBVARS_HULLOFFSETS_INDEX,
	GBVARS_HULLS_INDEX,
	GBVARS_FREQMODLENGTHS_INDEX,
	GBVARS_FREQMODOFFSETS_INDEX,
	GBVARS_FREQMODTABLE_INDEX,
	GBVARS_SPKFREQTABLE_INDEX,
	GBVARS_PCJRFREQTABLE_INDEX
};
// Simon
enum {
	GBVARS_SIMON1SETTINGS_INDEX = 0,
	GBVARS_SIMON1ACORNSETTINGS_INDEX,
	GBVARS_SIMON1AMIGASETTINGS_INDEX,
	GBVARS_SIMON1DEMOSETTINGS_INDEX,
	GBVARS_SIMON2WINSETTINGS_INDEX,
	GBVARS_SIMON2MACSETTINGS_INDEX,
	GBVARS_SIMON2DOSSETTINGS_INDEX,
	GBVARS_FRENCHVIDEOFONT_INDEX,
	GBVARS_GERMANVIDEOFONT_INDEX,
	GBVARS_HEBREWVIDEOFONT_INDEX,
	GBVARS_ITALIANVIDEOFONT_INDEX,
	GBVARS_SPANISHVIDEOFONT_INDEX,
	GBVARS_VIDEOFONT_INDEX,
	GBVARS_SIMON1CURSOR_INDEX
//	GBVARS_SIMON2CURSORS_INDEX	
};
// Queen
enum {
	GBVARS_RESOURCETABLEPE100V1_INDEX = 0,
	GBVARS_RESOURCETABLEPE100V2_INDEX,
	GBVARS_RESOURCETABLEPM10_INDEX,
	GBVARS_RESOURCETABLECM10_INDEX
};

enum {
	GBVARS_SCUMM = 0,
	GBVARS_SIMON = 1,
	GBVARS_SKY,
	GBVARS_SWORD2,
	GBVARS_QUEEN,
	
	GBVARS_COUNT
};

#endif





More information about the Scummvm-git-logs mailing list