static void draw(struct game_state *gs) { extern struct game_state *cur_state; extern struct game_state playback_state; glMatrixMode(GL_MODELVIEW); glPushMatrix(); set_modelview_matrix(); if (!settings.static_settings || settings.static_settings->background) draw_level_background(); if (cur_state != &playback_state && settings.control_type == CONTROL_HYBRID && ship_is_visible()) draw_crosshair(); if (inner_state.state != IS_LEVEL_CLEARED && inner_state.state != IS_LEVEL_TRANSITION && (inner_state.state != IS_WAVE_CLEARED || inner_state.tics < WAVE_CLEARED_TICS/2)) draw_arena_outline(cur_arena, 1, cur_arena->border_type); draw_explosions(); draw_particles(); if (ship_is_visible()) { draw_ship(); draw_missiles(); draw_bombs(); draw_lasers(); draw_foes(); draw_powerups(); } draw_in_game_texts(); draw_text(); glMatrixMode(GL_MODELVIEW); glPopMatrix(); }
//------------------------------ // Drawing functions //------------------------------ void draw_everything() { // Fill the screen with black SDL_FillRect(screen,NULL, 0x000000); // Draw background draw_background(); // Draw the title screen if(gamestate_title == true) draw_titlescreen(); else { // Draw the game objects if(gamestate_over == false) draw_player(); draw_enemies(); draw_explosions(); draw_lasers(); draw_info(); draw_statustext(); } }