/* // [DEPRECATED] void GetGlobalString (int index, char *strval) { if ((index<0) | (index >= MAXGLOBALSTRINGS)) quit("!GetGlobalString: invalid index"); strcpy (strval, play.globalstrings[index]); } */ int RunAGSGame (const char *newgame, unsigned int mode, int data) { can_run_delayed_command(); int AllowedModes = RAGMODE_PRESERVEGLOBALINT | RAGMODE_LOADNOW; if ((mode & (~AllowedModes)) != 0) quit("!RunAGSGame: mode value unknown"); if (editor_debugging_enabled) { quit("!RunAGSGame cannot be used while running the game from within the AGS Editor. You must build the game EXE and run it from there to use this function."); } if ((mode & RAGMODE_LOADNOW) == 0) { // need to copy, since the script gets destroyed get_install_dir_path(gamefilenamebuf, newgame); game_file_name = gamefilenamebuf; usetup.main_data_filename = game_file_name; play.takeover_data = data; load_new_game_restore = -1; if (inside_script) { curscript->queue_action(ePSARunAGSGame, mode | RAGMODE_LOADNOW, "RunAGSGame"); ccInstance::GetCurrentInstance()->Abort(); } else load_new_game = mode | RAGMODE_LOADNOW; return 0; } int ee; unload_old_room(); displayed_room = -10; unload_game_file(); if (Common::AssetManager::SetDataFile(game_file_name) != Common::kAssetNoError) quitprintf("!RunAGSGame: unable to load new game file '%s'", game_file_name.GetCStr()); Bitmap *ds = GetVirtualScreen(); ds->Fill(0); show_preload(); HError err = load_game_file(); if (!err) quitprintf("!RunAGSGame: error loading new game file:\n%s", err->FullMessage().GetCStr()); spriteset.reset(); if (spriteset.initFile ("acsprset.spr")) quit("!RunAGSGame: error loading new sprites"); if ((mode & RAGMODE_PRESERVEGLOBALINT) == 0) { // reset GlobalInts for (ee = 0; ee < MAXGSVALUES; ee++) play.globalscriptvars[ee] = 0; } engine_init_game_settings(); play.screen_is_faded_out = 1; if (load_new_game_restore >= 0) { try_restore_save(load_new_game_restore); load_new_game_restore = -1; } else start_game(); return 0; }
void display_game_file_error(HError err) { platform->DisplayAlert(String::FromFormat("Loading game failed with error:\n%s.\n\nThe game files may be incomplete, corrupt or from unsupported version of AGS.", err->FullMessage().GetCStr())); }