libsuperderpy/src/pause.c

43 lines
1.5 KiB
C
Raw Normal View History

2012-03-02 16:52:13 +01:00
/*! \file pause.c
* \brief Pause state.
*/
#include <stdio.h>
#include "pause.h"
int Pause_Keydown(struct Game *game, ALLEGRO_EVENT *ev) {
if ((ev->keyboard.keycode == ALLEGRO_KEY_ESCAPE) || (ev->keyboard.keycode==ALLEGRO_KEY_P)) {
al_destroy_bitmap(game->pause.bitmap);
game->gamestate = game->loadstate;
}
return 0;
}
void Pause_Load(struct Game* game) {
game->gamestate=game->loadstate;
2012-03-02 17:47:02 +01:00
game->loadstate=GAMESTATE_PAUSE;
2012-03-02 16:52:13 +01:00
DrawGameState(game);
2012-03-02 17:47:02 +01:00
game->loadstate=game->gamestate;
2012-03-02 16:52:13 +01:00
game->gamestate=GAMESTATE_PAUSE;
ALLEGRO_BITMAP *fade = al_create_bitmap(al_get_display_width(game->display), al_get_display_height(game->display));
al_set_target_bitmap(fade);
al_clear_to_color(al_map_rgb(0,0,0));
al_set_target_bitmap(al_get_backbuffer(game->display));
al_draw_tinted_bitmap(fade,al_map_rgba_f(1,1,1,0.75),0,0,0);
al_draw_text_with_shadow(game->font, al_map_rgb(255,255,255), al_get_display_width(game->display)*0.5, al_get_display_height(game->display)*0.5, ALLEGRO_ALIGN_CENTRE,"Game paused!");
game->pause.bitmap = al_create_bitmap(al_get_display_width(game->display), al_get_display_height(game->display));
al_set_target_bitmap(game->pause.bitmap);
al_draw_bitmap(al_get_backbuffer(game->display), 0, 0, 0);
al_set_target_bitmap(al_get_backbuffer(game->display));
}
void Pause_Draw(struct Game* game) {
al_draw_bitmap(game->pause.bitmap, 0, 0, 0);
DrawConsole(game);
}
void Pause_Unload(struct Game* game) {
al_destroy_bitmap(game->pause.bitmap);
game->gamestate=game->loadstate;
UnloadGameState(game);
}