From 0d7edb94e351b4595867f9c3722c984aa4112687 Mon Sep 17 00:00:00 2001 From: Sebastian Krzyszkowiak Date: Sun, 4 Mar 2012 13:24:35 +0100 Subject: [PATCH] add Derpy to pause screen :D --- src/about.c | 6 ++++-- src/level.c | 2 ++ src/main.h | 1 + src/pause.c | 22 +++++++++++++++++++++- src/pause.h | 1 + 5 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/about.c b/src/about.c index 4226fd4..13776c0 100644 --- a/src/about.c +++ b/src/about.c @@ -73,10 +73,12 @@ void About_Preload(struct Game *game) { draw_text(" http://dosowisko.net/"); draw_text(""); draw_text("Graphics:"); - draw_text(" - hombre0 (menu background)"); + draw_text(" - hombre0"); draw_text(" http://hombre0.deviantart.com/"); - draw_text(" - Siobhan Brewer (cloud shapes)"); + draw_text(" - Siobhan Brewer"); draw_text(" http://boxdrink.deviantart.com/"); + draw_text(" - CptOfTheFriendship"); + draw_text(" http://cptofthefriendship.deviantart.com/"); draw_text(""); draw_text("Music:"); draw_text(" - Dr Dissonance (\"Don Discord\")"); diff --git a/src/level.c b/src/level.c index 8ceefa4..6e35171 100644 --- a/src/level.c +++ b/src/level.c @@ -94,9 +94,11 @@ void Level_Preload(struct Game *game) { al_draw_textf(game->font, al_map_rgb(255,255,255), al_get_display_width(game->display)/2, al_get_display_height(game->display)/2.2, ALLEGRO_ALIGN_CENTRE, "Level %d: Not implemented yet!", game->level.current_level); al_draw_text(game->font, al_map_rgb(255,255,255), al_get_display_width(game->display)/2, al_get_display_height(game->display)/1.8, ALLEGRO_ALIGN_CENTRE, "Have some moonwalk instead."); al_set_target_bitmap(al_get_backbuffer(game->display)); + Pause_Preload(game); } void Level_Unload(struct Game *game) { + Pause_Unload_Real(game); ALLEGRO_EVENT ev; game->level.fade_bitmap = al_create_bitmap(al_get_display_width(game->display), al_get_display_height(game->display)); al_set_target_bitmap(game->level.fade_bitmap); diff --git a/src/main.h b/src/main.h index 29c4d59..7418171 100644 --- a/src/main.h +++ b/src/main.h @@ -83,6 +83,7 @@ struct Loading { /*! \brief Resources used by Pause state. */ struct Pause { ALLEGRO_BITMAP *bitmap; + ALLEGRO_BITMAP *derpy; int selected; bool options; }; diff --git a/src/pause.c b/src/pause.c index c307aa3..050f4b9 100644 --- a/src/pause.c +++ b/src/pause.c @@ -43,6 +43,21 @@ int Pause_Keydown(struct Game *game, ALLEGRO_EVENT *ev) { return 0; } +void Pause_Preload(struct Game* game) { + game->pause.bitmap = NULL; + game->pause.derpy = al_create_bitmap(al_get_display_width(game->display)*0.53, al_get_display_height(game->display)*0.604); + + al_set_new_bitmap_flags(ALLEGRO_MEMORY_BITMAP); + ALLEGRO_BITMAP *derpy = al_load_bitmap( "data/derpy_pause.png" ); + al_set_new_bitmap_flags(ALLEGRO_MAG_LINEAR | ALLEGRO_MIN_LINEAR); + + al_set_target_bitmap(game->pause.derpy); + ScaleBitmap(derpy, al_get_display_width(game->display)*0.53, al_get_display_height(game->display)*0.604); + al_set_target_bitmap(al_get_backbuffer(game->display)); + + al_destroy_bitmap(derpy); +} + void Pause_Load(struct Game* game) { game->gamestate=game->loadstate; game->loadstate=GAMESTATE_PAUSE; @@ -58,6 +73,7 @@ void Pause_Load(struct Game* game) { 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_draw_bitmap(game->pause.derpy, 0.47*al_get_display_width(game->display), al_get_display_height(game->display)*0.396, 0); al_set_target_bitmap(al_get_backbuffer(game->display)); al_destroy_bitmap(fade); game->pause.selected=0; @@ -96,8 +112,12 @@ void Pause_Draw(struct Game* game) { DrawConsole(game); } +void Pause_Unload_Real(struct Game* game) { + if (game->pause.bitmap) al_destroy_bitmap(game->pause.bitmap); + al_destroy_bitmap(game->pause.derpy); +} + void Pause_Unload(struct Game* game) { - al_destroy_bitmap(game->pause.bitmap); game->gamestate=game->loadstate; UnloadGameState(game); } \ No newline at end of file diff --git a/src/pause.h b/src/pause.h index 99b8c23..b26e1dd 100644 --- a/src/pause.h +++ b/src/pause.h @@ -6,6 +6,7 @@ void Pause_Draw(struct Game *game); void Pause_Preload(struct Game *game); +void Pause_Unload_Real(struct Game* game); void Pause_Unload(struct Game *game); void Pause_Load(struct Game *game); int Pause_Keydown(struct Game *game, ALLEGRO_EVENT *ev);