void init() { // Init GL before call this. Otherwise don't work. setVSync(true); glClearColor(0.0f, 0.0f, 0.0f, 1.0f); float pos_light[4] = { 5.0f, 5.0f, 10.0f, 0.0f }; glLightfv(GL_LIGHT0, GL_POSITION, pos_light); glEnable(GL_LIGHT0); #ifdef DEBUG glDisable(GL_CULL_FACE); #else glEnable(GL_CULL_FACE); #endif glEnable(GL_DEPTH_TEST); glEnable(GL_NORMALIZE); glEnable(GL_COLOR_MATERIAL); #ifdef USE_BUFFERS glEnable(GL_LIGHTING); #else glDisable(GL_LIGHTING); #endif glClearColor(1.0f, 1.0f, 1.0f, 1.0f); load_resources(); game = new Game(); }
int main(int argc, char **argv) { SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO); SDL_CreateWindowAndRenderer(SCREEN_WIDTH+232, SCREEN_HEIGHT+16, 0, &displayWindow, &displayRenderer); SDL_GetRendererInfo(displayRenderer, &displayRendererInfo); SDL_SetRenderDrawBlendMode(displayRenderer, SDL_BLENDMODE_BLEND); SCREEN_SHIFT_X = 8; SCREEN_SHIFT_Y = 8; #ifdef __EMSCRIPTEN__ emscripten_set_main_loop(null_loop_iter, 60, 1); #endif srand(time(NULL)); sound_init(); resizeWindow(SCREEN_WIDTH, SCREEN_HEIGHT); load_resources(); last_time = clock(); #ifdef __EMSCRIPTEN__ emscripten_set_main_loop(loop_iter, 60, 1); #else while (!done) { loop_iter(); } #endif sound_exit(); Quit(0); return (0); }
int bind_noaudio_set(void *b, int v) { int i = bind_common_onoffset_inverted(b, v); if(v) { alutExit(); printf("-- Unloaded ALUT\n"); if(resources.state & RS_SfxLoaded) { delete_sounds(); resources.state &= ~RS_SfxLoaded; } } else { if(!alutInit(NULL, NULL)) { warnx("Error initializing audio: %s", alutGetErrorString(alutGetError())); tconfig.intval[NO_AUDIO] = 1; return 1; // index of "off" } tconfig.intval[NO_AUDIO] = 0; printf("-- ALUT\n"); load_resources(); } return i; }
void init(void) { qr_Init(); load_resources(); s_window = window_create(); window_set_window_handlers(s_window, (WindowHandlers) { .load = main_window_load, .unload = main_window_unload });
int bind_noshader_set(void *b, int v) { int i = bind_common_onoffset_inverted(b, v); if(!v) load_resources(); return i; }
/* class implementation begins here */ Resources::Resources(Subsystem& subsystem, const std::string& resource_directory) throw (ResourcesException) : subsystem(subsystem), resource_directory(resource_directory) { subsystem << "initializing resources" << std::endl; srand(static_cast<unsigned int>(time(0))); create_directory(UserDirectory, get_home_directory()); load_resources(false); }
int main(int argc, const char * argv[]) { int exclude = 0; if (load_resources() == -1) {fprintf(stderr, "Chyba systemovych volani.\n"); free_resources(); exit(2);} if (parse(argc, argv) == -1) {fprintf(stderr,"Nespravne zadane parametre.\n"); free_resources(); exit(1);} srand(time(NULL)); vars->oxygen = 0; vars->hydrogen = 0; vars->global_count = 1; vars->barrier_count = 0; vars->count = 0; pid_t childPID; vars->h2o = fopen("h2o.out", "w+"); //hydrogen_maker childPID = fork(); if (childPID == 0) { exclude = 1; hydrogen_maker(); } else if (childPID == -1) { fprintf(stderr, "Chyba systemovych volani.\n"); free_resources(); exit(2); } //oxygen_maker childPID = fork(); if (childPID == 0 && exclude != 1) { oxygen_maker(); } else if (childPID == -1) { fprintf(stderr, "Chyba systemovych volani.\n"); free_resources(); exit(2); } fclose(vars->h2o); free_resources(); exit(EXIT_SUCCESS); }
bool initialize_allegro(al_defs* al){ if(!al_init()){ fprintf(stderr, "[Sokoban] Failed to initialize graphics. \n"); return 0; } al->conf = al_load_config_file("res/config.ini"); if(!al->conf){ al->conf = al_create_config(); al_save_config_file("res/config.ini", al->conf); } al->width = atoi(al_get_config_value(al->conf, "window", "width")); al->height = atoi(al_get_config_value(al->conf, "window", "height")); al->disp = al_create_display(al->width, al->height); if(!al->disp){ fprintf(stderr, "[Sokoban] Failed to create display. \n"); return 0; } if(!al_init_image_addon()){ fprintf(stderr, "[Sokoban] Cannot initialize image addon. \n"); return 0; } if(!al_install_keyboard()){ fprintf(stderr, "[Sokoban] Cannot install keyboard. \n"); return 0; } al_init_font_addon(); if(!al_init_ttf_addon()){ fprintf(stderr, "[Sokoban] Cannot initialize fonts."); return 0; } load_resources(al); return 1; }
void app_Scene::on_open() { if(!glew_init()) die("GLEW init fail"); if(!gl_init()) die("GL init fail"); if(!load_resources()) die("Couldn't load resources"); if(!init_scene()) die("Couldn't init scene"); //Initial resize ( window init kinda ) { int w, h; glfwGetWindowSize(this->handle(), &w, &h); this->on_resize(w,h); } }
bool application::setup() { root = new Ogre::Root(plugin_cfg); setup_resources(); if (!configure()) return false; choose_scene_mgr(); create_camera(); create_viewports(); Ogre::TextureManager::getSingleton().setDefaultNumMipmaps(5); create_resource_listener(); load_resources(); create_scene(); create_frame_listener(); return true; }
/******************************************************************* * main */ int main(int argc, char **argv) { DLLSPEC *spec = alloc_dll_spec(); #ifdef SIGHUP signal( SIGHUP, exit_on_signal ); #endif signal( SIGTERM, exit_on_signal ); signal( SIGINT, exit_on_signal ); output_file = stdout; argv = parse_options( argc, argv, spec ); switch(exec_mode) { case MODE_DLL: if (spec->subsystem != IMAGE_SUBSYSTEM_NATIVE) spec->characteristics |= IMAGE_FILE_DLL; /* fall through */ case MODE_EXE: load_resources( argv, spec ); load_import_libs( argv ); if (spec_file_name && !parse_input_file( spec )) break; if (fake_module) { if (spec->type == SPEC_WIN16) output_fake_module16( spec ); else output_fake_module( spec ); break; } read_undef_symbols( spec, argv ); switch (spec->type) { case SPEC_WIN16: output_spec16_file( spec ); break; case SPEC_WIN32: BuildSpec32File( spec ); break; default: assert(0); } break; case MODE_DEF: if (argv[0]) fatal_error( "file argument '%s' not allowed in this mode\n", argv[0] ); if (!spec_file_name) fatal_error( "missing .spec file\n" ); if (!parse_input_file( spec )) break; output_def_file( spec, 1 ); break; case MODE_IMPLIB: if (!spec_file_name) fatal_error( "missing .spec file\n" ); if (!parse_input_file( spec )) break; output_import_lib( spec, argv ); break; case MODE_RESOURCES: load_resources( argv, spec ); output_res_o_file( spec ); break; default: usage(1); break; } if (nb_errors) exit(1); if (output_file_name) { if (fclose( output_file ) < 0) fatal_perror( "fclose" ); if (output_file_source_name) assemble_file( output_file_source_name, output_file_name ); output_file_name = NULL; } return 0; }
bool GameMgr::load() { // iniciar gerador de números randômicos std::srand(std::time(0)); // loading...... load_resources(); // Inicializando a biblioteca if (!al_init()) { fprintf(stderr, "failed to initialize allegro!\n"); return -1; } // Criando a nossa janela al_set_new_display_flags(ALLEGRO_RESIZABLE); al_set_new_display_flags(ALLEGRO_OPENGL); display = al_create_display(320, 200); if (!display) { fprintf(stderr, "falha ao criar a tela!\n"); return -1; } screen_width = al_get_display_width(display); screen_height = al_get_display_height(display); // inicializando uso do teclado if (!al_install_keyboard()) { fprintf(stderr, "Falha ao inicializar o teclado.\n"); return false; } // inicializando uso do mouse if (!al_install_mouse()) { fprintf(stderr, "Falha ao inicializar o mouse.\n"); return false; } fila_eventos = al_create_event_queue(); if (!fila_eventos) { fprintf(stderr, "Falha ao criar fila de eventos.\n"); al_destroy_display(display); return false; } al_register_event_source(fila_eventos, al_get_keyboard_event_source()); al_register_event_source(fila_eventos, al_get_mouse_event_source()); al_register_event_source(fila_eventos, al_get_display_event_source(display)); draw_timer = al_create_timer(1.0 / REFRESH_RATE); al_start_timer(draw_timer); al_register_event_source(fila_eventos, al_get_timer_event_source(draw_timer)); logic_timer = al_create_timer(1.0 / 59); al_start_timer(logic_timer); al_register_event_source(fila_eventos, al_get_timer_event_source(logic_timer)); al_init_primitives_addon(); // inicializando o trabalho com primitivas gr�ficas al_init_image_addon(); // Inicia o add-on para uso de fontes al_init_font_addon(); // Inicia o add-on para uso de fontes True Type al_init_ttf_addon(); // Carregando o arquivo de fonte, o arquivo de fonte deve estar na pasta do projeto return true; }
int main(int argc, char* argv[]) { if (argc <= 1) { printf("wine spec file convert tool\nusage: %s specfile(16bit only) module name\n%s specfile(16bit only) -DEF\n", argv[0], argv[0]); fatal_error("file argument '%s' not allowed in this mode\n", argv[0]); } DLLSPEC *spec = alloc_dll_spec(); spec_file_name = argv[1]; exec_mode = MODE_DLL; spec->type = SPEC_WIN16; spec->file_name = spec_file_name; output_file = stdout; // init_dll_name(spec); if (argc > 2) { if (!strcmp(argv[2], "-DEF")) { exec_mode = MODE_DEF; } else { spec->main_module = xstrdup(argv[2]); spec->dll_name = xstrdup(argv[2]); } } else { init_dll_name(spec); } switch (exec_mode) { case MODE_DEF: if (!spec_file_name) fatal_error("missing .spec file\n"); if (!parse_input_file(spec)) break; output_def_file(spec, 1); break; case MODE_DLL: if (spec->subsystem != IMAGE_SUBSYSTEM_NATIVE) spec->characteristics |= IMAGE_FILE_DLL; /* fall through */ case MODE_EXE: load_resources(argv, spec); load_import_libs(argv); if (spec_file_name && !parse_input_file(spec)) break; if (fake_module) { if (spec->type == SPEC_WIN16) output_fake_module16(spec); else output_fake_module(spec); break; } //read_undef_symbols(spec, argv); switch (spec->type) { case SPEC_WIN16: output_spec16_file(spec); break; case SPEC_WIN32: BuildSpec32File(spec); break; default: assert(0); } break; } if (nb_errors) exit(1); return EXIT_SUCCESS; }
/******************************************************************* * main */ int main(int argc, char **argv) { DLLSPEC *spec = alloc_dll_spec(); #ifdef SIGHUP signal( SIGHUP, exit_on_signal ); #endif signal( SIGTERM, exit_on_signal ); signal( SIGINT, exit_on_signal ); output_file = stdout; argv = parse_options( argc, argv, spec ); switch(exec_mode) { case MODE_DLL: spec->characteristics |= IMAGE_FILE_DLL; load_resources( argv, spec ); load_import_libs( argv ); if (!spec_file_name) fatal_error( "missing .spec file\n" ); if (!parse_input_file( spec )) break; switch (spec->type) { case SPEC_WIN16: if (argv[0]) fatal_error( "file argument '%s' not allowed in this mode\n", argv[0] ); BuildSpec16File( output_file, spec ); break; case SPEC_WIN32: read_undef_symbols( spec, argv ); BuildSpec32File( output_file, spec ); break; default: assert(0); } break; case MODE_EXE: if (spec->type == SPEC_WIN16) fatal_error( "Cannot build 16-bit exe files\n" ); if (!spec->file_name) fatal_error( "executable must be named via the -F option\n" ); load_resources( argv, spec ); load_import_libs( argv ); if (spec_file_name && !parse_input_file( spec )) break; read_undef_symbols( spec, argv ); BuildSpec32File( output_file, spec ); break; case MODE_DEF: if (argv[0]) fatal_error( "file argument '%s' not allowed in this mode\n", argv[0] ); if (spec->type == SPEC_WIN16) fatal_error( "Cannot yet build .def file for 16-bit dlls\n" ); if (!spec_file_name) fatal_error( "missing .spec file\n" ); if (!parse_input_file( spec )) break; BuildDef32File( output_file, spec ); break; case MODE_RELAY16: if (argv[0]) fatal_error( "file argument '%s' not allowed in this mode\n", argv[0] ); BuildRelays16( output_file ); break; case MODE_RELAY32: if (argv[0]) fatal_error( "file argument '%s' not allowed in this mode\n", argv[0] ); BuildRelays32( output_file ); break; default: usage(1); break; } if (nb_errors) exit(1); if (output_file_name) { fclose( output_file ); if (output_file_source_name) assemble_file( output_file_source_name, output_file_name ); output_file_name = NULL; } return 0; }
/* Loads the resources from file. */ void load_auct_resources() { avail_resources = create_resource_list(); //initializes resource list empty load_resources("../resource.txt", avail_resources); }
static GdkPixbuf * load_icon (unsigned size, IN gpointer data, gsize datalen) { guchar *icon = NULL; guchar *mask = NULL; gsize isize = 0, msize = 0, i; guchar *image = NULL; if (!load_resources (size, data, datalen, &icon, &isize, &mask, &msize)) return NULL; /* 256x256 icons don't use RLE or uncompressed data, * They're usually JPEG 2000 images */ if (size == 256) { GdkPixbufLoader *loader; GdkPixbuf *pixbuf; loader = gdk_pixbuf_loader_new (); if (!gdk_pixbuf_loader_write (loader, icon, isize, NULL) || !gdk_pixbuf_loader_close (loader, NULL)) { g_object_unref (loader); return NULL; } pixbuf = gdk_pixbuf_loader_get_pixbuf (loader); g_object_ref (pixbuf); g_object_unref (loader); return pixbuf; } g_assert (mask); if (msize != size * size) /* wrong mask size */ return NULL; image = (guchar *) g_try_malloc0 (size * size * 4); /* 4 bytes/pixel = RGBA */ if (!image) return NULL; if (isize == size * size * 4) /* icon data is uncompressed */ for (i = 0; i < size * size; i++) /* 4 bytes/pixel = ARGB (A: ignored) */ { image[i * 4] = icon[4 * i + 1]; /* R */ image[i * 4 + 1] = icon[4 * i + 2]; /* G */ image[i * 4 + 2] = icon[4 * i + 3]; /* B */ } else { guchar *data = icon; gsize remaining = 0; /* R */ if (!uncompress (size, &data, image, &remaining)) goto bail; /* G */ if (!uncompress (size, &data, image + 1, &remaining)) goto bail; /* B */ if (!uncompress (size, &data, image + 2, &remaining)) goto bail; } for (i = 0; i < size * size; i++) /* copy mask to alpha channel */ image[i * 4 + 3] = mask[i]; return gdk_pixbuf_new_from_data ((guchar *) image, GDK_COLORSPACE_RGB, /* RGB image */ TRUE, /* with alpha channel */ 8, /* 8 bits per sample */ size, /* width */ size, /* height */ size * 4, /* no gap between rows */ (GdkPixbufDestroyNotify)g_free, /* free() function */ NULL); /* param to free() function */ bail: g_free (image); return NULL; }
//----------------------------------- Main ------------------------------------- int main(int argc, char *argv[]) { std::string cheat_string = "cheat"; //std::locale::global( std::locale( "" ) ); events_init(); game.log.File_Set("Star.P.G..log"); game.log.File_Clear(); if (argc > 1) { for (int count = 0; count < (argc+1); count++) { //game.log.File_Write(argv[count]); if (cheat_string.compare(argv[count]) == 0) game_o.cheats_enabled = true; } } //game_o.cheats_enabled = true; /// test!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! game.log.File_Write("------------------"); game.log.File_Write("| Star.P.G V1.01 |"); game.log.File_Write("------------------\n"); game.log.File_Write("Starting up!"); game.log.File_Write(""); game.log.File_Write("------------------\n"); //if (game_o.cheats_enabled) game.log.File_Write("Cheating enabled!\n"); game.config.File_Set("Star.P.G..cfg"); game.config.Set_Defaults(); game.log.File_Write("Loading config..."); game.config.File_Set("Star.P.G..cfg"); game.config.File_Read(); game.log.File_Write("Loading language file -> data/configuration/languages/"+game.config.language+".txt"); game_o.language.load("data/configuration/languages/"+game.config.language+".txt"); //----------------------------------- Start the PhysicsFS ---------------------- //game.log.File_Write("Starting PhysicsFS..."); //PHYSFS_init(argv[0]); //PHYSFS_addToSearchPath("Star.P.G..spg", 1); //----------------------------------- SDL Video -------------------------------- game.log.File_Write("Starting SDL..."); char SDL_VID_WIN_POS[] = "SDL_VIDEO_WINDOW_POS"; char SDL_VID_CENTERD[] = "SDL_VIDEO_CENTERED=1"; putenv(SDL_VID_WIN_POS); putenv(SDL_VID_CENTERD); getenv("SDL_VIDEO_WINDOW_POS"); getenv("SDL_VIDEO_CENTERED"); SDL_Init(SDL_INIT_VIDEO | SDL_INIT_EVENTTHREAD); game.log.File_Write("Starting OpenGL..."); if (game.config.Display_Fullscreen) SDL_SetVideoMode(game.config.Display_X_Resolution,game.config.Display_Y_Resolution,game.config.Display_BPS,SDL_OPENGL | SDL_FULLSCREEN); else SDL_SetVideoMode(game.config.Display_X_Resolution,game.config.Display_Y_Resolution,game.config.Display_BPS,SDL_OPENGL/* | SDL_NOFRAME */); SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 ); App_Icon_Surface = SDL_LoadBMP(App_Icon); colorkey = SDL_MapRGB(App_Icon_Surface->format, 255, 0, 255); SDL_SetColorKey(App_Icon_Surface, SDL_SRCCOLORKEY, colorkey); SDL_WM_SetIcon(App_Icon_Surface,NULL); SDL_WM_SetCaption(App_Name, 0); //SDL_ShowCursor(SDL_DISABLE); //----------------------------------- SDL Audio -------------------------------- game.log.File_Write("Starting sound system..."); SDL_Init(SDL_INIT_AUDIO); Mix_AllocateChannels(game.config.Audio_Channels); Mix_OpenAudio(game.config.Audio_Rate, AUDIO_S16, 2, game.config.Audio_Buffers); Mix_Volume(-1,game.config.Audio_Sound_Volume); Mix_VolumeMusic(game.config.Audio_Music_Volume); game.log.File_Write("Initializing joystick / gamepad..."); SDL_Init(SDL_INIT_JOYSTICK); game.log.File_Write("Initializing game system..."); init_game(false); game.log.File_Write("Initializing projectiles..."); init_player_bullets(); game.log.File_Write("Initializing explosions..."); init_explosions(); game.log.File_Write("Initializing NPCs...\n"); init_active_npcs(); init_npc_bullets(); init_npcs(0); game_o.current_level = 0; game.log.File_Write("Initializing OpenGL..."); game.graphics.init_gl(game.config.Display_X_Resolution,game.config.Display_Y_Resolution); seed_rand(); TTF_Init(); game.log.File_Write("Loading resources..."); loading_screen_display("data/textures/misc/loading_screen.png"); load_resources(); game.log.File_Write("Initializing menu system..."); init_menu(); init_in_game_message_class(); init_projectiles(false); init_powerups(); init_shields(false); init_game(false); game.log.File_Write("Starting game..."); game.log.File_Write("---------------\n"); //----------------------------------- Main loop -------------------------------- game.timer.start(); game.LastTicks = game.timer.getticks(); for(int quit = 0; !quit;) { game.config.process(false); if (game.config.mouse_autohide) SDL_ShowCursor(SDL_DISABLE); else SDL_ShowCursor(SDL_ENABLE); proc_textures(); events_process(); if (game.status_quit_active) quit = 1; glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //****************************************** MENU ***************************************** if (game.menu_active) { SDL_ShowCursor(SDL_ENABLE); if (game.music_next_track) { music.menu_00.play(); game.music_next_track = false; } diplay_menu (); if (game.process_ready) game.background.process(); if (game.process_ready) process_menu(); } //****************************************** GAME ***************************************** if (game.game_active) { if (game.music_next_track) { game.music_next_track = false; if (game.music_track == 0) music.level_00.play(); if (game.music_track == 1) music.level_01.play(); if (game.music_track == 2) music.level_02.play(); if (game.music_track == 3) music.level_03.play(); if (game.music_track == 4) music.level_04.play(); if (game.music_track == 5) music.level_05.play(); if (game.music_track == 6) music.level_06.play(); if (game.music_track == 7) music.level_07.play(); if (game.music_track == 8) music.level_08.play(); if (game.music_track == 9) music.level_09.play(); if (game.music_track == 10) music.level_10.play(); if (game.music_track == 11) music.level_11.play(); if (game.music_track == 12) music.level_12.play(); if (game.music_track == 13) music.level_13.play(); if (game.music_track == 14) music.level_14.play(); if (game.music_track == 15) music.level_15.play(); if (game.music_track == 16) music.level_16.play(); if (game.music_track == 17) music.level_17.play(); if (game.music_track == 18) music.level_18.play(); if (game.music_track == 19) music.level_19.play(); if (game.music_track == 20) music.level_20.play(); if (game.music_track == 21) music.level_21.play(); if (game.music_track == 22) music.level_22.play(); if (game.music_track == 23) music.level_23.play(); if (game.music_track == 24) music.level_24.play(); if (game.music_track == 25) music.level_25.play(); } game.game_resume = true; if (game.process_ready) process_game(); display_game(); if ((game.config.Display_Touchscreen) && (game.process_ready)) { if(game.physics.point_in_quadrangle(-0.875f,0.2f,-0.550f,0.2f,game.io.mouse_x,game.io.mouse_y)) game.io.left = true; if(game.physics.point_in_quadrangle(-0.475f,0.2f,-0.550f,0.2f,game.io.mouse_x,game.io.mouse_y)) game.io.right = true; if(game.physics.point_in_quadrangle(-0.675f,0.2f,-0.350f,0.2f,game.io.mouse_x,game.io.mouse_y)) game.io.up = true; if(game.physics.point_in_quadrangle(-0.675f,0.2f,-0.750f,0.2f,game.io.mouse_x,game.io.mouse_y)) game.io.down = true; if(game.physics.point_in_quadrangle( 0.875f,0.2f,-0.750f,0.2f,game.io.mouse_x,game.io.mouse_y)) game.io.shoot = true; if(game.physics.point_in_quadrangle( 0.575f,0.2f,-0.750f,0.2f,game.io.mouse_x,game.io.mouse_y)) game.io.key_b = true; if(game.physics.point_in_quadrangle( 0.875f,0.2f, 0.750f,0.2f,game.io.mouse_x,game.io.mouse_y)) game.io.escape = true; } if (game_o.player.health < 0) { sound.menu_select_00.play(); game.game_active = false; game.game_resume = false; game.pdie_active = true; game.menu_level = 8; game.config.menu_delay_count = 0; music.level_pd.play(); game.background.set_data ( 2, 1, 1, 0.0f, 0.0f, 0.0050f, 0.0050f, texture.background_019.ref_number); game.background.set_data ( 1, 1, 1, 0.0f, 0.0f, 0.0020f, 0.0020f, texture.background_008.ref_number); game.background.set_active( 3, false); game.background.set_active( 4, false); game.background.set_movement_type(BOUNCE); SDL_WarpMouse(game.graphics.gl_to_res(game_over_menu.get_button_x_pos(1),game.config.mouse_resolution_x),game.config.mouse_resolution_y-game.graphics.gl_to_res(game_over_menu.get_button_y_pos(1),game.config.mouse_resolution_y)); game.log.File_Write("User terminated due to insufficient health...better luck next time buddy!"); } if ((game.io.escape) && (game.process_ready)) { sound.menu_select_01.play(); game.music_next_track = true; game.game_active = false; game.menu_level = 1; game.menu_active = true; game.io.escape = false; game.io.keyboard_delay_count = 0; game.config.menu_delay_count = 0; while (game.config.menu_delay_count < (game.config.menu_delay/2)) { game.config.menu_delay_count++; } } if (game_o.bomb_delay_count < game_o.bomb_delay)//bomb delay counter { game_o.bomb_delay_count++; if (game_o.bomb_delay_count > game_o.bomb_delay) game_o.bomb_delay_count = game_o.bomb_delay; } if ((game.io.key_b) && (game.process_ready))//user pressed "b" for bomb { if ((game_o.number_bombs > 0) && (game_o.bomb_delay_count >= game_o.bomb_delay)) { game_o.number_bombs--; use_bomb_powerup(); game_o.bomb_delay_count = 0; if (!game_o.rumble.active) sound.explosion_001.play(); if (!game_o.rumble.active) game_o.rumble.start(0.025f,45); // shake the screen about. } } if (game.io.pause) { if (!game.game_paused) { game_o.paused.spawn(); game.game_paused = true; game.game_active = false; game.io.pause = false; game.menu_level = 11; SDL_WarpMouse(game.graphics.gl_to_res(pause_menu.get_button_x_pos(1),game.config.mouse_resolution_x),game.config.mouse_resolution_y-game.graphics.gl_to_res(pause_menu.get_button_y_pos(1),game.config.mouse_resolution_y)); game.config.menu_delay_count = 0; while (game.config.menu_delay_count < (game.config.menu_delay*16)) { game.config.menu_delay_count++; } } else { game.menu_active = false; game.game_paused = false; game.game_active = true; } }; if (game_o.cheats_enabled == true) { if (game.io.key_0) game_o.victory_kills = game_o.level_kills; //complete level if (game.io.key_1) spawn_powerup(1.0f,random_GLcoord(), 1);//spawn health power-up if (game.io.key_2) spawn_powerup(1.0f,random_GLcoord(), 2);//spawn shield level power-up if (game.io.key_3) spawn_powerup(1.0f,random_GLcoord(), 3);//spawn shield new power-up if (game.io.key_4) spawn_powerup(1.0f,random_GLcoord(), 4);//spawn thruster level power-up if (game.io.key_5) spawn_powerup(1.0f,random_GLcoord(), 5);//spawn thruster new power-up if (game.io.key_6) spawn_powerup(1.0f,random_GLcoord(), 6);//spawn weapon level power-up if (game.io.key_7) spawn_powerup(1.0f,random_GLcoord(), 7);//spawn weapon new power-up if (game.io.key_8) unlock_levels(); //unlock all levels if (game.io.key_9) spawn_powerup(1.0f,random_GLcoord(), 8);//spawn bomb power-up if (game.io.key_a) game_o.anc_enabled = !game_o.anc_enabled; //toggle active NPC count display if (game.io.key_f) game_o.fps_enabled = !game_o.fps_enabled; //toggle active NPC count display if (game.io.key_q) spawn_powerup(1.0f,random_GLcoord(), 9);//spawn support ship 0 power-up if (game.io.key_w) spawn_powerup(1.0f,random_GLcoord(),10);//spawn support ship 1 power-up if (game.io.key_e) spawn_powerup(1.0f,random_GLcoord(),11);//spawn support ship 2 power-up if (game.io.key_r) spawn_powerup(1.0f,random_GLcoord(),12);//spawn support ship 3 power-up if (game.io.key_s) { if (!game_o.rumble.active) sound.explosion_001.play(); if (!game_o.rumble.active) game_o.rumble.start(); // shake the screen about. } } if (game.io.shoot) { process_supportships(true); if(game_o.fw_rof_count >= game_o.projectile[game_o.player.front_weapon].rate_of_fire) { spawn_player_bullet(0); game_o.fw_rof_count = 0; } if(game_o.sw_rof_count >= game_o.projectile[game_o.player.side_weapon].rate_of_fire) { spawn_player_bullet(1); game_o.sw_rof_count = 0; } } else { process_supportships(false); } if (game.process_ready) { if (game.io.up) process_player(1); if (game.io.down) process_player(2); if (game.io.right) process_player(3); if (game.io.left) process_player(4); } if ((game.io.key_1) && (game_o.projectile[ 0].active)) { game_o.player.front_weapon = 0; } if ((game.io.key_2) && (game_o.projectile[ 1].active)) { game_o.player.front_weapon = 1; } if ((game.io.key_3) && (game_o.projectile[ 2].active)) { game_o.player.front_weapon = 2; } if ((game.io.key_4) && (game_o.projectile[ 3].active)) { game_o.player.front_weapon = 3; } if ((game.io.key_5) && (game_o.projectile[ 4].active)) { game_o.player.front_weapon = 4; } if ((game.io.key_6) && (game_o.projectile[ 5].active)) { game_o.player.front_weapon = 5; } } //*********************************** Game paused ***************************************** if (game.game_paused) { if ((game.io.pause) && (game.process_ready)) { game.menu_active = false; game.game_paused = false; game.game_active = true; } if (game.music_next_track) { game.music_next_track = false; music.level_pd.play(); } game.menu_level = 11; if (game.process_ready) game.background.process(); if (game.process_ready) process_menu(); display_game(); diplay_menu (); } //*********************************** PLAYER DEATH SCREEN ***************************************** if (game.pdie_active) { if (game.music_next_track) { game.music_next_track = false; music.level_pd.play(); } diplay_menu (); if (game.process_ready) game.background.process(); if (game.process_ready) process_menu(); if (!game.pdie_active) init_game(true); } //******************************* PLAYER NEXT LEVEL SCREEN ************************************* if (game.nlvl_active) { if (game.music_next_track) { game.music_next_track = false; music.level_nl.play(); } game.menu_level = 9; if (game.process_ready) game.background.process(); if (game.process_ready) process_menu(); diplay_menu (); } //******************************* OUTRO SCREEN ************************************************* if (game.outr_active) { if (game.music_next_track) { game.music_next_track = false; music.outro_00.play(); } game.menu_level = 10; if (game.process_ready) game.background.process(); if (game.process_ready) process_menu(); diplay_menu (); } //---------------------------- code for end of main loop ----------------------- game.FPS = (game.timer.getticks() - game.LastTicks); if ((game.timer.getticks() - game.LastTicks) >= 2) { game.LastTicks = game.timer.getticks(); game.process_ready = true; } else game.process_ready = false; SDL_GL_SwapBuffers(); } //----------------------------------- Exit ------------------------------------- game.log.File_Write("Saving configuration..."); game.config.File_Set("Star.P.G..cfg"); game.config.File_Clear(); game.config.File_Write(); game.log.File_Write("\n"); game.log.File_Write("Shutting down..."); game.log.File_Write("---------------\n"); // game.log.File_Write("PhysicsFS deinit..."); // PHYSFS_deinit(); game.log.File_Write("SDL deinit..."); SDL_Quit(); return(0); }
void init(struct Game *g) { load_resources(g); start_sdl(g); }
int main() { #ifdef __MIPSEL__ create_app_dir(BASE_PATH); #endif if (SDL_Init(SDL_INIT_VIDEO) < 0) { log(FATAL, "Cannot init SDL."); } if (!(screen = SDL_SetVideoMode(WIDTH, HEIGHT, DEPTH, SDL_HWSURFACE | SDL_DOUBLEBUF))) { SDL_Quit(); log(FATAL, "Cannot SetVideoMode."); } SDL_ShowCursor(SDL_DISABLE); if (TTF_Init() < 0) { SDL_Quit(); log(FATAL, "Unable to start the TTF."); } int img_flags = IMG_INIT_PNG; if(!(IMG_Init(img_flags) & img_flags)) { TTF_Quit(); SDL_Quit(); log(FATAL, "SDL_image could not initialize. %s.", IMG_GetError()); } pconfig = new Config(); pconfig->load(); pmixer = new Mixer(); current_volume = pmixer->get_speaker_volume(); pmixer->set_speaker_volume(current_volume); load_resources(); draw_buttons(); draw_timer(0, 0, 0); draw_volume(); draw_vu(1, -1); draw_vu(1, 1); pmic = new Mic(); pmic->set_on_terminate_event(on_terminate_exec); pmic->set_on_vu_change_event(on_vu_changed); main_loop(); delete pmic; delete pmixer; delete pconfig; TTF_CloseFont(font_10); TTF_CloseFont(font_28); IMG_Quit(); TTF_Quit(); SDL_Quit(); return 0; }
int main(int argc, char** argv) { int running = 1; int move_right = 1; int frame_current = 0; Uint32 ticks; // Initialize everything if(!init()) { printf("Failed to initialize SDL, exiting.\n"); return 1; } // Load the resources if(!load_resources()) { printf("Failed to load all necessary resources, exiting.\n"); cleanup(); return 1; } // Initialize Panda rect_panda.x = 1; rect_panda.y = rect_screen.h - rect_panda.h; // Measure time ticks = SDL_GetTicks(); // Start playing music if(Mix_PlayChannel(0, music_bg, -1) == -1) printf("Failed to play background music: %s\n", Mix_GetError()); // Main loop do { frame_current++; // Move the Panda if(move_right) { rect_panda.x = rect_panda.x + 3; rotation += 1.5; } else { rect_panda.x = rect_panda.x - 3; rotation -= 1.5; } rect_panda.y -= accel; accel -= 1; // Handle edges and floor if(move_right && rect_panda.x > rect_screen.w - rect_panda.w) move_right = 0; if(!move_right && rect_panda.x < 1) move_right = 1; if(rect_panda.y > rect_screen.h - rect_panda.h) rect_panda.y = rect_screen.h - rect_panda.h; // Handle events running = handle_events(); // Set the background color SDL_SetRenderDrawColor(renderer, frame_current % 255, frame_current % 255, frame_current % 255, SDL_ALPHA_OPAQUE); // Clear the renderer SDL_RenderClear(renderer); // Draw the panda SDL_RenderCopyEx(renderer, texture_panda, NULL, &rect_panda, rotation, NULL, move_right ? SDL_FLIP_NONE : SDL_FLIP_HORIZONTAL); // Update the screen SDL_RenderPresent(renderer); // Calculate FPS if(frame_current % 60 == 0) { Uint32 tick_diff = SDL_GetTicks() - ticks; printf("%.2f FPS (%i milliseconds) for the last 60 frames\n", 1.0 / (tick_diff / 60000.0), tick_diff); ticks = SDL_GetTicks(); } } while(running); // Free resources free_resources(); // Clean up SDL cleanup(); // Exit return 0; }
void Client::sevt_data(ServerEvent& evt) { GTransport *t = reinterpret_cast<GTransport *>(evt.data); while (true) { t->from_net(); switch (t->cmd) { case GPCServerMessage: { size_t sz = 0; std::string msg(reinterpret_cast<char *>(t->data), t->len); std::vector<std::string> lines; while (true) { sz++; size_t pos = msg.find("|"); if (pos == std::string::npos) { lines.push_back(msg); break; } lines.push_back(msg.substr(0, pos)); msg = msg.substr(pos + 1); } int vw = subsystem.get_view_width(); int vh = subsystem.get_view_height(); int ww = 200; int wh = 130; int x = 10; int y = 10; GuiWindow *window = push_window(x, y, ww, wh, "Server Message"); Font *f = get_font(); int text_height = 0; int ly = Spc; int maxw = 0; for (size_t i = 0; i < sz; i++) { create_label(window, Spc, ly, lines[i]); ly += f->get_font_height(); text_height += f->get_font_height(); int tw = f->get_text_width(lines[i]) + 2 * Spc; maxw = (tw > maxw ? tw : maxw); } int maxh = text_height + 2 * Spc; int bw = 46; int bh = 18; create_button(window, maxw / 2 - bw / 2, maxh, bw, bh, "Okay", static_window_close_click, this); maxh += bh + Spc; window->set_width(window->get_width() - window->get_client_width() + maxw); window->set_height(window->get_height() - window->get_client_height() + maxh); window->set_x(vw / 2 - window->get_width() / 2); window->set_y(vh / 2 - window->get_height() / 2); break; } case GPCMapState: { GTournament *tour = reinterpret_cast<GTournament *>(t->data); tour->from_net(); if (tournament) { delete tournament; } /* reload resources? */ if (reload_resources) { resources.reload_resources(); load_resources(); reload_resources = false; } /* setup tournament */ bool warmup = ((tour->flags & TournamentFlagWarmup) != 0); GamePlayType type = static_cast<GamePlayType>(tour->gametype); MapConfiguration config(type, tour->map_name, tour->duration, tour->warmup); tournament = factory.create_tournament(config, false, warmup, players, 0); factory.set_tournament_id(tour->tournament_id); tournament->set_following_id(my_id); tournament->set_player_configuration(&player_config); tournament->set_team_names(team_red_name, team_blue_name); /* reopen, if join request window is already open */ if (me && me->joining) { tournament->reopen_join_window(me); } break; } case GPCIdentifyPlayer: { player_id_t *nid = reinterpret_cast<player_id_t *>(t->data); my_id = ntohs(*nid); if (tournament) { tournament->set_following_id(my_id); } break; } case GPCReady: { if (tournament) { tournament->set_ready(); } if (me) { me->state.client_server_state.key_states = 0; } break; } case GPCAddPlayer: { GPlayerInfo *info = reinterpret_cast<GPlayerInfo *>(t->data); info->from_net(); Player *p = new Player(resources, 0, info->id, info->desc.player_name, info->desc.characterset_name); players.push_back(p); p->state.server_state = info->server_state; p->state.client_server_state = info->client_server_state; p->state.client_state = info->client_state; if (p->state.id == my_id) { me = p; p->mark_as_me(); } if (tournament) { tournament->player_added(p); } break; } case GPCResetPlayer: { GPlayerInfo *info = reinterpret_cast<GPlayerInfo *>(t->data); info->from_net(); for (Players::iterator it = players.begin(); it != players.end(); it++) { Player *p = *it; if (p->state.id == info->id) { p->state.server_state = info->server_state; p->state.client_server_state = info->client_server_state; p->state.client_state = info->client_state; if (tournament) { tournament->reset_player(p); } break; } } break; } case GPCRemovePlayer: { player_id_t *nid = reinterpret_cast<player_id_t *>(t->data); player_id_t id = ntohs(*nid); for (Players::iterator it = players.begin(); it != players.end(); it++) { Player *p = *it; if (p->state.id == id) { if (id == my_id) { me = 0; } if (tournament) { tournament->player_removed(p); } players.erase(it); delete p; break; } } break; } case GPCSpawnPlayer: { GPlayerState *state = reinterpret_cast<GPlayerState *>(t->data); state->from_net(); for (Players::iterator it = players.begin(); it != players.end(); it++) { Player *p = *it; if (p->state.id == state->id) { if (p == me) { p->state.server_state = state->server_state; } else { p->state = *state; } p->respawning = false; if (tournament) { tournament->add_player_spawn_animation(p); } break; } } break; } case GPCUpdateGameState: { if (t->tournament_id == factory.get_tournament_id()) { GGameState *state = reinterpret_cast<GGameState *>(t->data); state->from_net(); if (tournament) { tournament->get_game_state() = *state; } } break; } case GPCUpdatePlayerState: { if (t->tournament_id== factory.get_tournament_id()) { GPTAllStates *state = reinterpret_cast<GPTAllStates *>(t->data); state->from_net(); for (Players::iterator it = players.begin(); it != players.end(); it++) { Player *p = *it; if (p->state.id == state->id) { p->state.server_state = state->server_state; if (p != me) { p->state.client_server_state = state->client_server_state; } break; } } } break; } case GPCUpdateObject: { if (tournament) { if (t->tournament_id == factory.get_tournament_id()) { GObjectState *state = reinterpret_cast<GObjectState *>(t->data); state->from_net(); Tournament::GameObjects& objects = tournament->get_game_objects(); for (Tournament::GameObjects::iterator it = objects.begin(); it != objects.end(); it++) { GameObject *obj = *it; if (obj->state.id == state->id) { obj->state = *state; break; } } } } break; } case GPCUpdateAnimation: { if (tournament) { if (t->tournament_id == factory.get_tournament_id()) { GAnimationState *state = reinterpret_cast<GAnimationState *>(t->data); state->from_net(); Tournament::GameAnimations& animations = tournament->get_game_animations(); for (Tournament::GameAnimations::iterator it = animations.begin(); it != animations.end(); it++) { GameAnimation *ani = *it; if (ani->state.id == state->id) { ani->state = *state; break; } } } } break; } case GPCUpdateSpawnableNPC: { if (tournament) { if (t->tournament_id == factory.get_tournament_id()) { GNPCState *state = reinterpret_cast<GNPCState *>(t->data); state->from_net(); Tournament::SpawnableNPCs& spawnable_npcs = tournament->get_spawnable_npcs(); for (Tournament::SpawnableNPCs::iterator it = spawnable_npcs.begin(); it != spawnable_npcs.end(); it++) { SpawnableNPC *npc = *it; if (npc->state.id == state->id) { npc->state = *state; break; } } } } break; } case GPCSpawnNPC: { if (tournament) { if (t->tournament_id == factory.get_tournament_id()) { GSpawnNPC *state = reinterpret_cast<GSpawnNPC *>(t->data); state->from_net(); tournament->add_spawnable_npc(state); } } break; } case GPCRemoveNPC: { if (tournament) { if (t->tournament_id == factory.get_tournament_id()) { GRemoveNPC *rnpc = reinterpret_cast<GRemoveNPC *>(t->data); rnpc->from_net(); tournament->remove_spawnable_npc(rnpc); } } break; } case GPCTextMessage: { std::string msg(reinterpret_cast<char *>(t->data), t->len); ClientTextMessage *cmsg = new ClientTextMessage; cmsg->text = msg; client_text_messages.push_back(cmsg); break; } case GPCPlaySound: { GGenericName *name = reinterpret_cast<GGenericName *>(t->data); try { subsystem.play_sound(resources.get_sound(name->name), 0); } catch (...) { /* chomp */ } break; } case GPCChatMessage: { std::string msg(reinterpret_cast<char *>(t->data), t->len); ClientTextMessage *cmsg = new ClientTextMessage; cmsg->text = msg; client_text_messages.push_back(cmsg); subsystem.play_sound(resources.get_sound("chat"), 0); break; } case GPCAddAnimation: { GAnimation *ani = reinterpret_cast<GAnimation *>(t->data); ani->from_net(); if (tournament) { tournament->add_animation(ani); } break; } case GPCAddTextAnimation: { GTextAnimation *ani = reinterpret_cast<GTextAnimation *>(t->data); ani->from_net(); if (tournament) { tournament->add_text_animation(ani); } break; } case GPCPlayerRecoil: { GPlayerRecoil *prec = reinterpret_cast<GPlayerRecoil *>(t->data); prec->from_net(); for (Players::iterator it = players.begin(); it != players.end(); it++) { Player *p = *it; if (p->state.id == prec->id) { p->state.client_server_state.accel_x += prec->x_recoil; break; } } break; } case GPCPlayerHurt: { if (tournament) { if (t->tournament_id == factory.get_tournament_id()) { subsystem.play_sound(resources.get_sound("hurt"), 0); } } break; } case GPCPickObject: { GPickObject *po = reinterpret_cast<GPickObject *>(t->data); po->from_net(); if (tournament) { tournament->add_pick_object(po); } break; } case GPCPlaceObject: { GPlaceObject *po = reinterpret_cast<GPlaceObject *>(t->data); po->from_net(); if (tournament) { tournament->add_place_object(po); } break; } case GPCSpawnObject: { GSpawnObject *so = reinterpret_cast<GSpawnObject *>(t->data); so->from_net(); if (tournament) { tournament->spawn_object(so); } break; } case GPCJoinAccepted: { if (tournament) { tournament->join_accepted(); } break; } case GPCJoinRefused: { if (tournament) { tournament->join_refused(); ClientTextMessage *cmsg = new ClientTextMessage; cmsg->text = "YOUR JOIN REQUEST WAS REFUSED"; client_text_messages.push_back(cmsg); subsystem.play_sound(resources.get_sound("error"), 0); } break; } case GPCTeamScore: { GTeamScore *ts = reinterpret_cast<GTeamScore *>(t->data); ts->from_net(); if (tournament) { tournament->add_team_score(ts); } break; } case GPCTimeRemaining: { GTimeRemaining *remain = reinterpret_cast<GTimeRemaining *>(t->data); remain->from_net(); if (tournament) { tournament->update_wearable_remaining(remain); } break; } case GPCFriendlyFire: { GFriendyFireAlarm *alarm = reinterpret_cast<GFriendyFireAlarm *>(t->data); alarm->from_net(); if (tournament) { if (tournament->friendly_fire_alarm(alarm)) { subsystem.play_controlled_sound(resources.get_sound("friendly_fire"), 0); ClientTextMessage *cmsg = new ClientTextMessage; cmsg->text = "FRIENDLY FIRE: WATCH OUT!!!"; client_text_messages.push_back(cmsg); } } break; } case GPCGamePlayUnbalanced: { if (tournament) { subsystem.play_controlled_sound(resources.get_sound("unbalanced"), 0); ClientTextMessage *cmsg = new ClientTextMessage; cmsg->text = "GAMEPLAY IS UNBALANCED"; client_text_messages.push_back(cmsg); } break; } case GPCWarmUp: { if (tournament) { subsystem.play_system_sound(resources.get_sound("warm_up")); ClientTextMessage *cmsg = new ClientTextMessage; cmsg->text = "please warm up"; client_text_messages.push_back(cmsg); } break; } case GPCGameBegins: { if (tournament) { subsystem.play_system_sound(resources.get_sound("ready")); ClientTextMessage *cmsg = new ClientTextMessage; cmsg->text = "game begins"; client_text_messages.push_back(cmsg); } break; } case GPCGameOver: { if (tournament) { subsystem.play_system_sound(resources.get_sound("game_over")); ClientTextMessage *cmsg = new ClientTextMessage; cmsg->text = "GAME IS OVER"; client_text_messages.push_back(cmsg); } break; } case GPCPlayerChanged: { GPlayerDescription *pdesc = reinterpret_cast<GPlayerDescription *>(t->data); pdesc->from_net(); for (Players::iterator it = players.begin(); it != players.end(); it++) { Player *p = *it; if (p->state.id == pdesc->id) { std::string old_name = p->get_player_name(); std::string new_name(pdesc->player_name); std::string old_skin(p->get_characterset()->get_name()); std::string new_skin(pdesc->characterset_name); /* change player name */ if (old_name != new_name) { p->set_player_name(new_name); p->font = 0; ClientTextMessage *cmsg = new ClientTextMessage; cmsg->text = old_name + " is now known as " + new_name; client_text_messages.push_back(cmsg); } /* change skin */ if (old_skin != new_skin) { try { p->set_characterset(new_skin); ClientTextMessage *cmsg = new ClientTextMessage; cmsg->text = p->get_player_name() + " changed the skin to " + new_skin; client_text_messages.push_back(cmsg); } catch (const Exception& e) { subsystem << e.what() << std::endl; } } break; } } break; } case GPCScoreTransportRaw: { if (tournament) { tournament->score_transport_raw(t->data); } break; } case GPCClanNames: { GClanNames *names = reinterpret_cast<GClanNames *>(t->data); names->from_net(); team_red_name = names->red_name; team_blue_name = names->blue_name; if (tournament) { tournament->set_team_names(team_red_name, team_blue_name); } break; } case GPCXferHeader: { reload_resources = true; GXferHeader *header = reinterpret_cast<GXferHeader *>(t->data); header->from_net(); if (!fhnd) { xfer_filename = header->filename; current_download_filename = get_home_directory() + dir_separator + UserDirectory + dir_separator + header->filename; fhnd = fopen(current_download_filename.c_str(), "wb"); if (fhnd) { total_xfer_sz = remaining_xfer_sz = header->filesize; } else { subsystem << "WARNING: cannot open file " << strerror(errno) << std::endl; } } else { subsystem << "WARNING: cannot receive " << xfer_filename << ". a file is already opened." << std::endl; } break; } case GPCXferDataChunk: { GXferDataChunk *chunk = reinterpret_cast<GXferDataChunk *>(t->data); chunk->from_net(); if (fhnd) { fwrite(chunk->data, chunk->chunksize, 1, fhnd); remaining_xfer_sz -= chunk->chunksize; if (remaining_xfer_sz < 1) { fclose(fhnd); fhnd = 0; current_download_filename = ""; } } { ScopeMutex lock(mtx); send_data(evt.c, 0, GPSPakSyncAck, NetFlagsReliable, 0, 0); } break; } case GPCGenericData: { if (tournament) { tournament->generic_data_delivery(t->data); } break; } case GPCServerQuit: { exception_msg.assign(reinterpret_cast<char *>(t->data), t->len); throw_exception = true; return; /* not necessary */ break; } } /* advance to next element */ if (t->flags & TransportFlagMorePackets) { unsigned char *tpb = reinterpret_cast<unsigned char *>(t); tpb += GTransportLen; tpb += t->len; t = reinterpret_cast<GTransport *>(tpb); } else { break; } } }
void Resources::reload_resources() throw (ResourcesException) { destroy_resources(true); load_resources(true); }