void D_DoomMain(void) { D_DoomMainSetup(); D_DoomLoop(); }
/* ================== iphoneDoomSetup Run the Doom game setup functions. This was made seperate from iphoneStartup so that the user could select a mission pack first. ================== */ void iphoneDoomStartup( const char * iwad, const char * pwad ) { Com_Printf( "---------- D_DoomMain ----------\n" ); D_DoomMainSetup( iwad, pwad ); // put savegames here strcpy( basesavegame, SysIphoneGetDocDir() ); }
// // D_DoomMain // void D_DoomMain (void) { D_DoomMainSetup(); // get this crap off the stack D_DoomLoop (); // never returns }
void D_DoomMain(void) { D_DoomMainSetup(); // CPhipps - setup out of main execution stack D_DoomLoop (); // never returns }
bool retro_load_game(const struct retro_game_info *info) { int argc = 0; static char *argv[32] = {NULL}; struct retro_input_descriptor desc[] = { { 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_LEFT, "D-Pad Left" }, { 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_UP, "D-Pad Up" }, { 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_DOWN, "D-Pad Down" }, { 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_RIGHT, "D-Pad Right" }, { 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_B, "Strafe" }, { 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_A, "Use" }, { 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_X, "Fire" }, { 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_Y, "Run" }, { 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_L, "Strafe Left" }, { 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_R, "Strafe Right" }, { 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_L2, "Previous Weapon" }, { 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_R2, "Next Weapon" }, { 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_SELECT, "Show/Hide Map" }, { 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_START, "Settings" }, { 0 }, }; environ_cb(RETRO_ENVIRONMENT_SET_INPUT_DESCRIPTORS, desc); update_variables(true); extract_directory(g_wad_dir, info->path, sizeof(g_wad_dir)); extract_basename(g_basename, info->path, sizeof(g_basename)); argv[argc++] = strdup("prboom"); if(info->path) { argv[argc++] = strdup("-iwad"); argv[argc++] = strdup(g_basename); } myargc = argc; myargv = argv; if (!Z_Init()) /* 1/18/98 killough: start up memory stuff first */ goto failed; /* cphipps - call to video specific startup code */ if (!I_PreInitGraphics()) goto failed; if (!D_DoomMainSetup()) goto failed; return true; failed: { struct retro_message msg; char msg_local[256]; snprintf(msg_local, sizeof(msg_local), "ROM loading failed..."); msg.msg = msg_local; msg.frames = 360; if (environ_cb) environ_cb(RETRO_ENVIRONMENT_SET_MESSAGE, (void*)&msg); } if (screen_buf) free(screen_buf); I_SafeExit(-1); return false; }
void iphoneStartup() { int start = SysIphoneMilliseconds(); // print networking information ReportNetworkInterfaces(); // microseconds will be plenty random for playerID and localGameID playerID = localGameID = SysIphoneMicroseconds(); InitImmediateModeGL(); // init OpenAL before pak file, so the pak file can // make all the al static buffers Sound_Init(); // get our new-style pak file char pakFile[1024]; sprintf( pakFile, "%s/base/base.iPack", SysIphoneGetAppDir() ); PK_Init( pakFile ); // register console commands Cmd_AddCommand( "listcvars", Cvar_List_f ); Cmd_AddCommand( "resetcvars", Cvar_Reset_f ); Cmd_AddCommand( "resetmaps", ResetMaps_f ); Cmd_AddCommand( "listcmds", Cmd_ListCommands_f ); Cmd_AddCommand( "give", Give_f ); Cmd_AddCommand( "god", God_f ); Cmd_AddCommand( "mail", EmailConsole ); //gsh, mails the console to id // register console variables Cvar_Get( "version", va( "%3.1f %s %s", DOOM_IPHONE_VERSION, __DATE__, __TIME__ ), 0 ); skill = Cvar_Get( "skill", "1", CVAR_ARCHIVE ); episode = Cvar_Get( "episode", "0", CVAR_ARCHIVE ); controlScheme = Cvar_Get( "controlScheme", "0", CVAR_ARCHIVE ); stickTurn = Cvar_Get( "stickTurn", "128", CVAR_ARCHIVE ); stickMove = Cvar_Get( "stickMove", "128", CVAR_ARCHIVE ); stickDeadBand = Cvar_Get( "stickDeadBand", "0.2", CVAR_ARCHIVE ); rotorTurn = Cvar_Get( "rotorTurn", "50000", CVAR_ARCHIVE ); tiltTurn = Cvar_Get( "tiltTurn", "0", CVAR_ARCHIVE ); tiltMove = Cvar_Get( "tiltMove", "0", CVAR_ARCHIVE ); tiltDeadBand = Cvar_Get( "tiltDeadBand", "0.08", CVAR_ARCHIVE ); tiltAverages = Cvar_Get( "tiltAverages", "3", CVAR_ARCHIVE ); centerSticks = Cvar_Get( "centerSticks", "1", CVAR_ARCHIVE ); rampTurn = Cvar_Get( "rampTurn", "1", CVAR_ARCHIVE ); music = Cvar_Get( "music", "1", CVAR_ARCHIVE ); cropSprites = Cvar_Get( "cropSprites", "1", 0 ); revLand = Cvar_Get( "revLand", "0", CVAR_ARCHIVE ); mapScale = Cvar_Get( "mapScale", "10", CVAR_ARCHIVE ); drawControls = Cvar_Get( "drawControls", "1", CVAR_ARCHIVE ); autoUse = Cvar_Get( "autoUse", "1", CVAR_ARCHIVE ); statusBar = Cvar_Get( "statusBar", "1", CVAR_ARCHIVE ); touchClick = Cvar_Get( "touchClick", "0.15", CVAR_ARCHIVE ); messages = Cvar_Get( "messages", "1", CVAR_ARCHIVE ); mapSelectY = Cvar_Get( "mapSelectY", "0", CVAR_ARCHIVE ); miniNet = Cvar_Get( "miniNet", "1", CVAR_ARCHIVE ); // multiplayer setup timeLimit = Cvar_Get( "timeLimit", "0", CVAR_ARCHIVE ); fragLimit = Cvar_Get( "fragLimit", "5", CVAR_ARCHIVE ); mpDeathmatch = Cvar_Get( "mpDeathmatch", "0", CVAR_ARCHIVE ); mpDataset = Cvar_Get( "mpDataset", "0", CVAR_ARCHIVE ); mpEpisode = Cvar_Get( "mpEpisode", "1", CVAR_ARCHIVE ); mpSkill = Cvar_Get( "mpSkill", "1", CVAR_ARCHIVE ); mpMap = Cvar_Get( "mpMap", "1", CVAR_ARCHIVE ); // debug tools showTilt = Cvar_Get( "showTilt", "-1", 0 ); showTime = Cvar_Get( "showTime", "0", 0 ); showNet = Cvar_Get( "showNet", "0", 0 ); showSound = Cvar_Get( "showSound", "0", 0 ); noBlend = Cvar_Get( "noBlend", "0", 0 ); // disable the damae blends for screenshots glfinish = Cvar_Get( "glfinish", "0", 0 ); throttle = Cvar_Get( "throttle", "1", 0 ); // network packet throttle enable netBuffer = Cvar_Get( "netBuffer", "4", 0 ); // max tics to buffer ahead // load the archived cvars Cmd_ExecuteFile( va( "%s/config.cfg", SysIphoneGetDocDir() ) ); // make sure volume changes and incoming calls draw the right orientation SysIPhoneSetUIKitOrientation( revLand->value ); // start the intro music if it wasn't disabled with the music cvar iphonePlayMusic( "intro" ); // iphonePlayMusic( "e1m1" ); // these should get overwritten by the config loading memset( &playState, 0, sizeof( playState ) ); playState.map.skill = 1; playState.map.episode = 1; playState.map.map = 1; HudSetForScheme( 0 ); // load the binary config file FILE *f = fopen( va( "%s/binaryConfig.bin", SysIphoneGetDocDir() ), "rb" ); if ( f ) { int version; version = 0; fread( &version, 1, sizeof( version ), f ); if ( version != VERSION_BCONFIG ) { Com_Printf( "Binary config file bad version.\n" ); } else { fread( &playState, 1, sizeof( playState ), f ); fread( &huds, 1, sizeof( huds ), f ); version = 0; fread( &version, 1, sizeof( version ), f ); if ( version != VERSION_BCONFIG ) { Com_Error( "Binary config file bad trailing version.\n" ); } } fclose( f ); } Com_Printf( "startup time: %i msec\n", SysIphoneMilliseconds() - start ); start = SysIphoneMilliseconds(); // the texnums might have been different in the savegame HudSetTexnums(); #ifdef USE_ID_FONT arialFontTexture = PK_FindTexture( "iphone/arialImageLAL.tga" ); #else arialFontTexture = PK_FindTexture( "iphone/droidImageLAL.tga" ); #endif Com_Printf( "preloadBeforePlay(): %i msec\n", SysIphoneMilliseconds() - start ); Com_Printf( "---------- D_DoomMain ----------\n" ); D_DoomMainSetup(); // put savegames here strcpy( basesavegame, SysIphoneGetDocDir() ); // prBoom seems to draw the static pic screens without setting up 2D, causing // a bad first frame iphoneSet2D(); menuState = IPM_MAIN; #if 0 // jump right to the save spot for debugging ResumeGame(); #endif }