void retro_run(void) { bool updated = false; if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE_UPDATE, &updated) && updated) update_variables(false); if (quit_pressed) { environ_cb(RETRO_ENVIRONMENT_SHUTDOWN, NULL); I_SafeExit(1); } D_DoomLoop(); I_UpdateSound(); }
void I_Error(const char *error, ...) { char errmsg[MAX_MESSAGE_SIZE]; va_list argptr; va_start(argptr,error); doom_vsnprintf(errmsg,sizeof(errmsg),error,argptr); va_end(argptr); lprintf(LO_ERROR, "%s\n", errmsg); #ifdef _MSC_VER if (!M_CheckParm ("-nodraw")) { I_MessageBox(errmsg, PRB_MB_OK); } #endif I_SafeExit(-1); }
OVERLAY void I_Error(const char *error, ...) { char errmsg[MAX_MESSAGE_SIZE]; va_list argptr; va_start(argptr,error); #ifdef HAVE_vsnprintf vsnprintf(errmsg,sizeof(errmsg),error,argptr); #else vsprintf(errmsg,error,argptr); #endif va_end(argptr); fprintf(stderr,"%s\n",errmsg); I_SafeExit(-1); }
void I_Error(const char *error, ...) { char errmsg[MAX_MESSAGE_SIZE]; va_list argptr; va_start(argptr,error); doom_vsnprintf(errmsg,sizeof(errmsg),error,argptr); va_end(argptr); lprintf(LO_ERROR, "%s\n", errmsg); #ifdef _MSC_VER if (!M_CheckParm ("-nodraw")) { //Init_ConsoleWin(); MessageBox(con_hWnd,errmsg,"PrBoom",MB_OK | MB_TASKMODAL | MB_TOPMOST); } #endif I_SafeExit(-1); }
void I_Error(const char *error, ...) { char errmsg[MAX_MESSAGE_SIZE]; char log_array[1000]; va_list argptr; va_start(argptr,error); #ifdef HAVE_VSNPRINTF vsnprintf(errmsg,sizeof(errmsg),error,argptr); #else vsprintf(errmsg,error,argptr); #endif va_end(argptr); logg(errmsg); #ifdef _MSC_VER if (!M_CheckParm ("-nodraw")) { //Init_ConsoleWin(); MessageBox(con_hWnd,errmsg,"PrBoom",MB_OK | MB_TASKMODAL | MB_TOPMOST); } #endif I_SafeExit(-1); }
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; }