void lose() { delay(500); reset_posns(); if (game_mode == GAME_MODE_NORMAL) { if (lives == 0) { score = 0; lives = 3; render_game_over(); } else { lives -= 1; } } else if (score <= 0) { score = 0; render_game_over(); } else { score -= 2; } return; }
void render_game(GameState * state) { /* Variables */ Color color = {255, 0, 255, 255}; Color black = {0, 0, 0, 255}; Color white = {255, 255, 255, 255}; char buffer [20]; int i,n; /* Set redraw off */ state->redraw = 0; /* Render world */ render_world(&state->world); /* Render pathfinding, if enabled */ if (SHOW_PATHFINDING) render_paths(state); /* Render towers */ for (i = 0; i < state->towers_length; i++) { render_entity(state->towers[i]); } /* Render enemies if they are alive */ for (i = 0; i < state->enemies_length; i++) { if (state->enemies[i].enemy.alive) render_entity(&state->enemies[i]); } /* Render spellscreen */ render_spellscreen(&state->spells); /* Render projectiles */ for (i = 0; i < state->towers_length; i++) { render_projectiles(state->towers[i]); } /* render selection */ render_mouse_actions(state); /* Render ui on top */ render_ui(state); /* Fps rendering */ n = sprintf(buffer, "%#.1f FPS", get_current_fps()); draw_text(buffer, FONT_LARGE, color, SCREEN_WIDTH-20 -100, 6, ALIGN_RIGHT); /* Game over? */ render_game_over(state); /* Render to screen */ flip_display(); clear_to_color(color); }