diff options
Diffstat (limited to 'src/screen')
| -rw-r--r-- | src/screen/screen_analyze.c | 10 | ||||
| -rw-r--r-- | src/screen/screen_browser.c | 10 | ||||
| -rw-r--r-- | src/screen/screen_choiceArena.c | 9 | ||||
| -rw-r--r-- | src/screen/screen_credits.c | 45 | ||||
| -rw-r--r-- | src/screen/screen_gameType.c | 9 | ||||
| -rw-r--r-- | src/screen/screen_mainMenu.c | 9 | ||||
| -rw-r--r-- | src/screen/screen_setting.c | 9 | ||||
| -rw-r--r-- | src/screen/screen_settingKeys.c | 15 | ||||
| -rw-r--r-- | src/screen/screen_table.c | 9 |
9 files changed, 104 insertions, 21 deletions
diff --git a/src/screen/screen_analyze.c b/src/screen/screen_analyze.c index df2ea75..b249f81 100644 --- a/src/screen/screen_analyze.c +++ b/src/screen/screen_analyze.c @@ -9,6 +9,7 @@ #include "interface.h" #include "screen.h" #include "image.h" +#include "hotKey.h" #ifndef NO_SOUND # include "music.h" @@ -48,11 +49,18 @@ static void destroyAnalyze(analyze_t * p) free(p); } +static void hotkey_escape() +{ + setScreen("mainMenu"); +} + void startScreenAnalyze() { #ifndef NO_SOUND playMusic("menu", MUSIC_GROUP_BASE); #endif + + registerHotKey(SDLK_ESCAPE, hotkey_escape); } void drawScreenAnalyze() @@ -85,6 +93,8 @@ void stopScreenAnalyze() { destroyWidgetLabel(widgetLabelMsg); widgetLabelMsg = newWidgetLabel("", WINDOW_SIZE_X / 2, 250, WIDGET_LABEL_CENTER); + + unregisterHotKey(SDLK_ESCAPE); } static void eventWidget(void *p) diff --git a/src/screen/screen_browser.c b/src/screen/screen_browser.c index edf222a..f09ca18 100644 --- a/src/screen/screen_browser.c +++ b/src/screen/screen_browser.c @@ -12,7 +12,7 @@ #include "interface.h" #include "screen.h" #include "image.h" - +#include "hotKey.h" #ifndef __WIN32__ # include <sys/socket.h> @@ -72,6 +72,10 @@ static int LoadServers(); static int RefreshServers(); static server_t *server_getcurr(); +static void hotkey_escape() +{ + setScreen("gameType"); +} void startScreenBrowser() { @@ -79,6 +83,8 @@ void startScreenBrowser() playMusic("menu", MUSIC_GROUP_BASE); #endif + registerHotKey(SDLK_ESCAPE, hotkey_escape); + LoadServers(); } @@ -118,6 +124,8 @@ void stopScreenBrowser() //select_server->list = newList(); removeAllFromWidgetSelect(select_server); + unregisterHotKey(SDLK_ESCAPE); + while (1) { i = 0; for (server = server_list.next; server != &server_list; diff --git a/src/screen/screen_choiceArena.c b/src/screen/screen_choiceArena.c index 969c350..7bc6ce4 100644 --- a/src/screen/screen_choiceArena.c +++ b/src/screen/screen_choiceArena.c @@ -9,6 +9,7 @@ #include "interface.h" #include "screen.h" #include "image.h" +#include "hotKey.h" #ifndef NO_SOUND # include "music.h" @@ -31,11 +32,18 @@ static widget_t *button_back; static list_t *listWidgetButtonimage; static arenaFile_t *currentArena; +static void hotkey_escape() +{ + setScreen("gameType"); +} + void startScreenChoiceArena() { #ifndef NO_SOUND playMusic("menu", MUSIC_GROUP_BASE); #endif + + registerHotKey(SDLK_ESCAPE, hotkey_escape); } void drawScreenChoiceArena() @@ -72,6 +80,7 @@ void eventScreenChoiceArena() void stopScreenChoiceArena() { + unregisterHotKey(SDLK_ESCAPE); } static void eventWidgetButtonImage(void *p) diff --git a/src/screen/screen_credits.c b/src/screen/screen_credits.c index e3edabf..a3ed787 100644 --- a/src/screen/screen_credits.c +++ b/src/screen/screen_credits.c @@ -9,6 +9,7 @@ #include "interface.h" #include "screen.h" #include "image.h" +#include "hotKey.h" #ifndef NO_SOUND # include "music.h" @@ -28,12 +29,19 @@ static textFile_t *textFile; static int offset; static int creditExists; +static void hotkey_escape() +{ + setScreen("mainMenu"); +} + void startScreenCredits() { #ifndef NO_SOUND playMusic("menu", MUSIC_GROUP_BASE); #endif offset = 0; + + registerHotKey(SDLK_ESCAPE, hotkey_escape); } void drawScreenCredits() @@ -48,13 +56,13 @@ void drawScreenCredits() int z; widget_t *this; + this = (widget_t *) listWidgetLabel->list[i]; z = this->y; this->y += offset; - if (this->y > SCREEN_CREDITS_OFFSET_MIN - && this->y < SCREEN_CREDITS_OFFSET_MAX) { + if (this->y > SCREEN_CREDITS_OFFSET_MIN && this->y < SCREEN_CREDITS_OFFSET_MAX) { drawWidgetLabel(this); } @@ -72,11 +80,13 @@ void eventScreenCredits() if (offset < SCREEN_CREDITS_OFFSET_RESTART) { offset = 0; } + //printf("offset = %d\n", offset); } void stopScreenCredits() { + unregisterHotKey(SDLK_ESCAPE); } static void eventWidget(void *p) @@ -98,24 +108,24 @@ void initScreenCredits() image = getImage(IMAGE_GROUP_BASE, "screen_main"); image_backgorund = newWidgetImage(0, 0, image); - button_back = - newWidgetButton(_("back"), - WINDOW_SIZE_X / 2 - WIDGET_BUTTON_WIDTH / 2, - WINDOW_SIZE_Y - 80, eventWidget); + button_back = newWidgetButton(_("back"), WINDOW_SIZE_X / 2 - WIDGET_BUTTON_WIDTH / 2, + WINDOW_SIZE_Y - 80, eventWidget); listWidgetLabel = newList(); if (tryExistFile(PATH_DOC SCREEN_CREDITS_FILE) == 0) { creditExists = 1; textFile = loadTextFile(PATH_DOC SCREEN_CREDITS_FILE); + for (i = 0; i < textFile->text->count; i++) { widget_t *label; char *line; + line = (char *) textFile->text->list[i]; - label = - newWidgetLabel(line, WINDOW_SIZE_X / 2 - WINDOW_SIZE_X / 4, - (WINDOW_SIZE_Y - 100) + i * 20, - WIDGET_LABEL_LEFT); + + label = newWidgetLabel(line, WINDOW_SIZE_X / 2 - WINDOW_SIZE_X / 4, + (WINDOW_SIZE_Y - 100) + i * 20, + WIDGET_LABEL_LEFT); addList(listWidgetLabel, label); } @@ -124,20 +134,20 @@ void initScreenCredits() creditExists = 0; widget_t *label; char line[STR_SIZE]; + sprintf(line, _("Credit file not found... %s/%s"), PATH_DOC, SCREEN_CREDITS_FILE); - label = - newWidgetLabel(line, WINDOW_SIZE_X / 2, - (WINDOW_SIZE_Y - 100) + i * 20, - WIDGET_LABEL_CENTER); + + label = newWidgetLabel(line, WINDOW_SIZE_X / 2, + (WINDOW_SIZE_Y - 100) + i * 20, + WIDGET_LABEL_CENTER); addList(listWidgetLabel, label); } } - registerScreen(newScreen - ("credits", startScreenCredits, eventScreenCredits, - drawScreenCredits, stopScreenCredits)); + registerScreen(newScreen ("credits", startScreenCredits, eventScreenCredits, + drawScreenCredits, stopScreenCredits)); } void quitScreenCredits() @@ -146,6 +156,7 @@ void quitScreenCredits() destroyWidgetButton(button_back); destroyListItem(listWidgetLabel, destroyWidgetLabel); + if (creditExists) { destroyTextFile(textFile); } diff --git a/src/screen/screen_gameType.c b/src/screen/screen_gameType.c index 84fb4eb..1ef8461 100644 --- a/src/screen/screen_gameType.c +++ b/src/screen/screen_gameType.c @@ -13,6 +13,7 @@ #include "interface.h" #include "screen.h" #include "image.h" +#include "hotKey.h" #ifndef NO_SOUND # include "music.h" @@ -82,6 +83,11 @@ static void loadSession(widget_t * p) destroyDirector(director); } +static void hotkey_escape() +{ + setScreen("mainMenu"); +} + void startScreenGameType() { #ifndef NO_SOUND @@ -94,6 +100,8 @@ void startScreenGameType() setWidgetChoiceStatus(check_load_session, FALSE); loadSession(selectSession); + + registerHotKey(SDLK_ESCAPE, hotkey_escape); } void drawScreenGameType() @@ -169,6 +177,7 @@ void eventScreenGameType() void stopScreenGameType() { + unregisterHotKey(SDLK_ESCAPE); } static void eventWidget(void *p) diff --git a/src/screen/screen_mainMenu.c b/src/screen/screen_mainMenu.c index 0bb50d7..84d57b8 100644 --- a/src/screen/screen_mainMenu.c +++ b/src/screen/screen_mainMenu.c @@ -8,6 +8,7 @@ #include "interface.h" #include "screen.h" #include "image.h" +#include "hotKey.h" #ifndef NO_SOUND # include "music.h" @@ -31,11 +32,18 @@ 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() @@ -60,6 +68,7 @@ void eventScreenMainMenu() void stopScreenMainMenu() { + unregisterHotKey(SDLK_ESCAPE); } static void eventWidget(void *p) diff --git a/src/screen/screen_setting.c b/src/screen/screen_setting.c index 4e19978..b52a9db 100644 --- a/src/screen/screen_setting.c +++ b/src/screen/screen_setting.c @@ -15,6 +15,7 @@ #include "interface.h" #include "screen.h" #include "image.h" +#include "hotKey.h" #ifndef NO_SOUND # include "music.h" @@ -78,11 +79,18 @@ static widget_t *check_ai; static textFile_t *configFile; +static void hotkey_escape() +{ + setScreen("mainMenu"); +} + void startScreenSetting() { #ifndef NO_SOUND playMusic("menu", MUSIC_GROUP_BASE); #endif + + registerHotKey(SDLK_ESCAPE, hotkey_escape); } void drawScreenSetting() @@ -173,6 +181,7 @@ void eventScreenSetting() void stopScreenSetting() { + unregisterHotKey(SDLK_ESCAPE); } static void eventWidget(void *p) diff --git a/src/screen/screen_settingKeys.c b/src/screen/screen_settingKeys.c index 60ddd79..35215cf 100644 --- a/src/screen/screen_settingKeys.c +++ b/src/screen/screen_settingKeys.c @@ -9,10 +9,13 @@ #include "textFile.h"
#include "director.h"
#include "homeDirector.h"
+
#include "configFile.h"
#include "interface.h"
#include "screen.h"
#include "image.h"
+#include "hotKey.h"
+
#ifndef NO_SOUND
# include "music.h"
# include "sound.h"
@@ -72,13 +75,19 @@ static widget_t *tux_left_keyfire_val; // possible variant will be reusing widget_image for current widget_label so there wont
// be key names but only images
+static void hotkey_escape()
+{
+ setScreen("setting");
+}
+
void startScreenSettingKeys()
{
#ifndef NO_SOUND
playMusic("menu", MUSIC_GROUP_BASE);
-
-#endif
+#endif
+
+ registerHotKey(SDLK_ESCAPE, hotkey_escape);
}
static void setKeytableFromConfigFile(textFile_t * configFile)
{
@@ -362,7 +371,7 @@ void stopScreenSettingKeys()
{
-
+ unregisterHotKey(SDLK_ESCAPE);
}
void
diff --git a/src/screen/screen_table.c b/src/screen/screen_table.c index 5d4b3a4..b49de93 100644 --- a/src/screen/screen_table.c +++ b/src/screen/screen_table.c @@ -11,6 +11,7 @@ #include "interface.h" #include "screen.h" #include "image.h" +#include "hotKey.h" #ifndef NO_SOUND # include "music.h" @@ -31,11 +32,18 @@ static list_t *listWidgetLabelScore; static textFile_t *textFile; +static void hotkey_escape() +{ + setScreen("mainMenu"); +} + void startScreenTable() { #ifndef NO_SOUND playMusic("menu", MUSIC_GROUP_BASE); #endif + + registerHotKey(SDLK_ESCAPE, hotkey_escape); } void drawScreenTable() @@ -72,6 +80,7 @@ void eventScreenTable() void stopScreenTable() { + unregisterHotKey(SDLK_ESCAPE); } static void eventWidget(void *p) |