void JE_tyrianHalt( JE_byte code ) { deinit_audio(); deinit_video(); deinit_joysticks(); /* TODO: NETWORK */ free_main_shape_tables(); free_sprite2s(&shapes6); for (int i = 0; i < SAMPLE_COUNT; i++) { free(digiFx[i]); } if (code != 9) { /* TODO? JE_drawANSI("exitmsg.bin"); JE_gotoXY(1,22);*/ JE_saveConfiguration(); } /* endkeyboard; */ if (code == 9) { /* OutputString('call=file0002.EXE' + #0'); TODO? */ } if (code == 5) { code = 0; } if (trentWin) { printf("\n" "\n" "\n" "\n" "Sleep well, Trent, you deserve the rest.\n" "You now have permission to borrow my ship on your next mission.\n" "\n" "Also, you might want to try out the YESXMAS parameter.\n" " Type: File0001 YESXMAS\n" "\n" "You'll need the 2.1 patch, though!\n" "\n"); } SDL_Quit(); exit(code); }
AgiEngine::~AgiEngine() { agi_deinit(); delete g_agi_music; deinit_sound(); deinit_video(); delete _sprites; free(game.hires); free(game.sbuf); deinit_machine(); delete rnd; delete _console; }
int main (int argc, char *argv[]) { int ec; MaxApplZone (); game.clock_enabled = FALSE; game.state = STATE_INIT; init_machine (argc, argv); game.color_fg = 15; game.color_bg = 0; if ((game.sbuf = calloc (_WIDTH, _HEIGHT)) == NULL) { ec = err_NotEnoughMemory; goto bail_out; } #ifdef USE_HIRES if ((game.hires = calloc (_WIDTH * 2, _HEIGHT)) == NULL) { ec = err_NotEnoughMemory; goto bail_out_2; }; opt.hires = 1; #endif if (init_sprites () != err_OK) { ec = err_NotEnoughMemory; goto bail_out_3; } if (init_video () != err_OK) { ec = err_Unk; goto bail_out_4; } console_init (); report ("--- Starting console ---\n\n"); _D ("Init sound"); init_sound (); game.ver = -1; /* Disable conf file warning */ report (" \nSarien " VERSION " is ready.\n"); if (game.state < STATE_LOADED) { console_prompt (); do { main_cycle (); } while (game.state < STATE_RUNNING); if (game.ver < 0) game.ver = 0; /* Enable conf file warning */ } ec = run_game (); deinit_sound (); deinit_video (); bail_out_4: deinit_sprites (); bail_out_3: #ifdef USE_HIRES free (game.hires); #endif bail_out_2: free (game.sbuf); bail_out: if (ec == err_OK || ec == err_DoNothing) { deinit_machine (); exit (ec); } deinit_machine (); return ec; }