summaryrefslogtreecommitdiff
path: root/src/screen/mainMenu.c
diff options
context:
space:
mode:
authorTomas Chvatal <scarabeus@gentoo.org>2009-02-03 13:56:55 +0100
committerTomas Chvatal <scarabeus@gentoo.org>2009-02-03 13:56:55 +0100
commit87821f04c9565450d8e724be76993ae5ea2c20c4 (patch)
treecd98fd39a789464294fd05ae00eeea5bd9411138 /src/screen/mainMenu.c
parent509890f14896d2064916555c04a3bfeec537cb1d (diff)
Revert "Revert "First pass renaming sreen and widgets.""
This reverts commit 509890f14896d2064916555c04a3bfeec537cb1d.
Diffstat (limited to 'src/screen/mainMenu.c')
-rw-r--r--src/screen/mainMenu.c133
1 files changed, 133 insertions, 0 deletions
diff --git a/src/screen/mainMenu.c b/src/screen/mainMenu.c
new file mode 100644
index 0000000..2209d8e
--- /dev/null
+++ b/src/screen/mainMenu.c
@@ -0,0 +1,133 @@
+
+#include <stdio.h>
+#include <assert.h>
+
+#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 "mainMenu.h"
+#include "setting.h"
+
+#include "widget.h"
+#include "label.h"
+#include "button.h"
+#include "textfield.h"
+#include "check.h"
+#include "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("main.png", IMAGE_NO_ALPHA, "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);
+}