void start_game_check_replay() { write_log_debug("Checking replay status"); if (play.recording) { start_recording(); } else if (play.playback) { start_playback(); } }
void initialize_start_and_play_game(int override_start_room, const char *loadSaveGameOnStartup) { try { // BEGIN try for ALI3DEXception set_cursor_mode (MODE_WALK); if (convert_16bit_bgr) { // Disable text as speech while displaying the warning message // This happens if the user's graphics card does BGR order 16-bit colour int oldalways = game.options[OPT_ALWAYSSPCH]; game.options[OPT_ALWAYSSPCH] = 0; // PSP: This is normal. Don't show a warning. //Display ("WARNING: AGS has detected that you have an incompatible graphics card for this game. You may experience colour problems during the game. Try running the game with \"--15bit\" command line parameter and see if that helps.[[Click the mouse to continue."); game.options[OPT_ALWAYSSPCH] = oldalways; } srand (play.randseed); play.gamestep = 0; if (override_start_room) playerchar->room = override_start_room; start_game_check_replay(); write_log_debug("Engine initialization complete"); write_log_debug("Starting game"); start_game_init_editor_debugging(); start_game_load_savegame_on_startup(); do_start_game(); do_play_game(); } catch (Ali3DException gfxException) { quit((char*)gfxException._message); } }
PACKFILE *pack_fopen(const char *filnam1, const char *modd1) { #else PACKFILE *pack_fopen(char *filnam1, char *modd1) { #endif char msg[2000]; sprintf(msg, "pack_fopen: %s - %s\n", filnam1, modd1); write_log_debug(msg); char *filnam = (char *)filnam1; char *modd = (char *)modd1; int needsetback = 0; if (filnam[0] == '~') { // ~ signals load from specific data file, not the main default one char gfname[80]; int ii = 0; filnam++; while (filnam[0]!='~') { gfname[ii] = filnam[0]; filnam++; ii++; } filnam++; // MACPORT FIX 9/6/5: changed from NULL TO '\0' gfname[ii] = '\0'; /* char useloc[250]; #ifdef LINUX_VERSION sprintf(useloc,"%s/%s",usetup.data_files_dir,gfname); #else sprintf(useloc,"%s\\%s",usetup.data_files_dir,gfname); #endif csetlib(useloc,"");*/ char *libname = ci_find_file(usetup.data_files_dir, gfname); if (csetlib(libname,"")) { // Hack for running in Debugger free(libname); libname = ci_find_file("Compiled", gfname); csetlib(libname,""); } free(libname); needsetback = 1; } // if the file exists, override the internal file FILE *testf = fopen(filnam, "rb"); if (testf != NULL) fclose(testf); if ((cliboffset(filnam)<1) || (testf != NULL)) { if (needsetback) csetlib(game_file_name,""); return __old_pack_fopen(filnam, modd); } else { _my_temppack=__old_pack_fopen(clibgetdatafile(filnam), modd); if (_my_temppack == NULL) quitprintf("pack_fopen: unable to change datafile: not found: %s", clibgetdatafile(filnam)); pack_fseek(_my_temppack,cliboffset(filnam)); #if ALLEGRO_DATE < 20050101 _my_temppack->todo=clibfilesize(filnam); #else _my_temppack->normal.todo = clibfilesize(filnam); #endif if (needsetback) csetlib(game_file_name,""); return _my_temppack; } }