コード例 #1
0
ファイル: IRexxApp.cpp プロジェクト: Jaxo/yaxx
/*----------------------------------------------------CIRexxApp::ExitInstance-+
|                                                                             |
+----------------------------------------------------------------------------*/
Err CIRexxApp::ExitInstance()
{
   // If we didn't get new globals for this instance,
   // then don't delete the existing ones!
   if (!(m_wLaunchFlags & sysAppLaunchFlagNewGlobals)) {
      return errNone;
   }

   // NOTE:  The reason we have to check-before-delete is because
   //        because we can now be called under other launch codes, e.g.,
   //        Find, and we're not allowed to make cross-segment calls in such
   //        a launch.  The delete of m_args, even though it's 0,
   //        causes a cross-segment call!  YOWZA!  Why?
   //        Not sure.  Perhaps it has a virtual dtor?  Go figure...
   if (m_memoDB) delete m_memoDB;
   if (m_pedit32DB) delete m_pedit32DB;
   if (m_rexxDB) delete m_rexxDB;
   if (m_scriptIndexDB) {
      UInt16 card;
      LocalID id;
      Err err1 = m_scriptIndexDB->GetCardNo(card);
      Err err2 = m_scriptIndexDB->GetDbUniqueID(id);
      bool doDelete = (err1 == errNone && err2 == errNone);
      delete m_scriptIndexDB;
      if (doDelete) DmDeleteDatabase(card, id);
   }
   if (m_script) { /*save it*/m_script->seekp(0, ios::end); delete m_script; }
   if (m_args) delete m_args;
   if (m_rexx) delete m_rexx;
   if (g_pBeamerStreamBuf) delete g_pBeamerStreamBuf;
   return errNone;
}
コード例 #2
0
void buildAll() {
	Err err;
	LocalID olddb;	

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

#if defined(BUILD_COMMON)
	addNewGui();

#elif defined(BUILD_SCUMM)
	addDimuseTables();
	// 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();
	addDimuseCodecs();
	addCodec47();
	addGfx();
	addDialogs();
	addCharset();
	addCostume();
	addPlayerV2();
	addScummTables();

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

#elif defined(BUILD_SKY)
	Sky_addHufftext();

#elif defined(BUILD_QUEEN)
	Queen_addTalk();
	Queen_addRestables();
	Queen_addGraphics();
	Queen_addDisplay();
	Queen_addMusicdata();

#elif defined(BUILD_SWORD1)
	Sword1_addStaticres();
#endif

	DmCloseDatabase(dbP[BUILD_RES]);
}
コード例 #3
0
ファイル: AppMain.c プロジェクト: concord-consortium/teemss
static Boolean DeleteExistingDB(const char* nameP, UInt16 version, UInt16 cardNo, LocalID dbID, void* userDataP)
{

	Err err;

	err = DmDeleteDatabase(cardNo, dbID);

	if (!err)
		return(true);
	else
		return(false);
	
}
コード例 #4
0
ファイル: doclist.c プロジェクト: TimofonicJunkRoom/plucker-1
/* Create database for list of documents */
static void CreateDocList( void )
    /* THROWS */
{
    UInt16  cardNo;
    Err     err;
    LocalID dbID;
    UInt16  version;

    /* list is always put on first card in RAM */
    cardNo  = 0;
    err     = errNone;

    err = DmCreateDatabase( cardNo, PlkrDocListName, ViewerAppID,
            PlkrDocListType, false );
    THROW_IF( err != errNone, memErrNotEnoughSpace );

    dbID    = DmFindDatabase( cardNo, PlkrDocListName );
    version = PlkrDocListVersion;
    err     = DmSetDatabaseInfo( cardNo, dbID, NULL, NULL, &version, 
                NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL );

    plkrDocList = DmOpenDatabaseByTypeCreator( PlkrDocListType, ViewerAppID,
                    dmModeReadWrite );

    ErrTry {
        InitPlkrAppInfo( plkrDocList );
    }
    ErrCatch( UNUSED_PARAM( err ) ) {
        LocalID dbID;

        DmOpenDatabaseInfo( plkrDocList, &dbID, NULL, NULL, &cardNo, NULL );
        CloseDatabase( plkrDocList );
        DmDeleteDatabase( cardNo, dbID );
        MSG( "Couldn't initialize Plkr document list [ appInfo ]\n" );
        ErrThrow( memErrNotEnoughSpace );
    } ErrEndCatch
}