From dc1bd4d1dcf8713bc5be0e9a154d44b43f71ddf8 Mon Sep 17 00:00:00 2001 From: Tomas Chvatal Date: Sat, 7 Feb 2009 17:52:36 +0100 Subject: Revert "Revert "Revert "First pass renaming sreen and widgets.""" This reverts commit 87821f04c9565450d8e724be76993ae5ea2c20c4. --- src/screen/screen_mainMenu.c | 133 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 src/screen/screen_mainMenu.c (limited to 'src/screen/screen_mainMenu.c') diff --git a/src/screen/screen_mainMenu.c b/src/screen/screen_mainMenu.c new file mode 100644 index 0000000..84d57b8 --- /dev/null +++ b/src/screen/screen_mainMenu.c @@ -0,0 +1,133 @@ + +#include +#include + +#include "main.h" + +#include "game.h" +#include "interface.h" +#include "screen.h" +#include "image.h" +#include "hotKey.h" + +#ifndef NO_SOUND +# include "music.h" +#endif + +#include "screen_mainMenu.h" +#include "screen_setting.h" + +#include "widget.h" +#include "widget_label.h" +#include "widget_button.h" +#include "widget_textfield.h" +#include "widget_check.h" +#include "widget_image.h" + +static widget_t *image_backgorund; + +static widget_t *button_play; +static widget_t *button_setting; +static widget_t *button_table; +static widget_t *button_credits; +static widget_t *button_end; + +static void hotkey_escape() +{ + quitGame(); +} + +void startScreenMainMenu() +{ +#ifndef NO_SOUND + playMusic("menu", MUSIC_GROUP_BASE); +#endif + + registerHotKey(SDLK_ESCAPE, hotkey_escape); +} + +void drawScreenMainMenu() +{ + drawWidgetImage(image_backgorund); + + drawWidgetButton(button_play); + drawWidgetButton(button_setting); + drawWidgetButton(button_table); + drawWidgetButton(button_credits); + drawWidgetButton(button_end); +} + +void eventScreenMainMenu() +{ + eventWidgetButton(button_play); + eventWidgetButton(button_setting); + eventWidgetButton(button_table); + eventWidgetButton(button_credits); + eventWidgetButton(button_end); +} + +void stopScreenMainMenu() +{ + unregisterHotKey(SDLK_ESCAPE); +} + +static void eventWidget(void *p) +{ + widget_t *button; + + button = (widget_t *) (p); + + if (button == button_play) { + setScreen("gameType"); + } + + if (button == button_setting) { + setScreen("setting"); + } + + if (button == button_table) { + setScreen("table"); + } + + if (button == button_credits) { + setScreen("credits"); + } + + if (button == button_end) { + quitGame(); + } +} + +void initScreenMainMenu() +{ + image_t *image; + + image = + addImageData("screen_main.png", IMAGE_NO_ALPHA, "screen_main", + IMAGE_GROUP_BASE); + image_backgorund = newWidgetImage(0, 0, image); + + button_play = newWidgetButton(_("Start game"), WINDOW_SIZE_X / 2 - WIDGET_BUTTON_WIDTH / 2, 200, eventWidget); + button_setting = newWidgetButton(_("Settings"), WINDOW_SIZE_X / 2 - WIDGET_BUTTON_WIDTH / 2, 250, eventWidget); + button_table = newWidgetButton(_("Highscore"), WINDOW_SIZE_X / 2 - WIDGET_BUTTON_WIDTH / 2, 300, eventWidget); + button_credits = newWidgetButton(_("Credits"), WINDOW_SIZE_X / 2 - WIDGET_BUTTON_WIDTH / 2, 350, eventWidget); + button_end = newWidgetButton(_("Quit game"), WINDOW_SIZE_X / 2 - WIDGET_BUTTON_WIDTH / 2, 400, eventWidget); + +#ifndef NO_SOUND + addMusic("menu.ogg", "menu", MUSIC_GROUP_BASE); +#endif + + registerScreen( newScreen("mainMenu", startScreenMainMenu, eventScreenMainMenu, + drawScreenMainMenu, stopScreenMainMenu)); +} + +void quitScreenMainMenu() +{ + destroyWidgetImage(image_backgorund); + + destroyWidgetButton(button_play); + destroyWidgetButton(button_setting); + destroyWidgetButton(button_table); + destroyWidgetButton(button_credits); + destroyWidgetButton(button_end); +} -- cgit v1.2.3