diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/CMakeLists.txt | 4 | ||||
| -rwxr-xr-x | src/base/list.c | 4 | ||||
| -rw-r--r-- | src/client/game.c | 5 | ||||
| -rw-r--r-- | src/client/keytable.c | 136 | ||||
| -rw-r--r-- | src/screen/screen_setting.c | 17 | ||||
| -rw-r--r-- | src/screen/screen_setting.h | 2 | ||||
| -rw-r--r-- | src/screen/screen_settingKeys.c | 321 | ||||
| -rw-r--r-- | src/screen/screen_settingKeys.h (renamed from src/client/keytable.h) | 57 | ||||
| -rw-r--r-- | src/screen/screen_world.c | 2 |
9 files changed, 373 insertions, 175 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b89bd8d..fddd268 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -9,9 +9,9 @@ ${WORKDIR}/net/udp ${WORKDIR}/net/dns ) SET ( SRC_client -${WORKDIR}/client/layer ${WORKDIR}/client/term ${WORKDIR}/client/screen ${WORKDIR}/client/interface ${WORKDIR}/client/client ${WORKDIR}/client/chat ${WORKDIR}/client/configFile ${WORKDIR}/client/language ${WORKDIR}/client/keytable ${WORKDIR}/client/font ${WORKDIR}/client/game ${WORKDIR}/client/radar ${WORKDIR}/client/panel ${WORKDIR}/client/image +${WORKDIR}/client/layer ${WORKDIR}/client/term ${WORKDIR}/client/screen ${WORKDIR}/client/interface ${WORKDIR}/client/client ${WORKDIR}/client/chat ${WORKDIR}/client/configFile ${WORKDIR}/client/language ${WORKDIR}/client/font ${WORKDIR}/client/game ${WORKDIR}/client/radar ${WORKDIR}/client/panel ${WORKDIR}/client/image -${WORKDIR}/screen/screen_choiceArena ${WORKDIR}/screen/screen_table ${WORKDIR}/screen/screen_setting ${WORKDIR}/screen/screen_credits ${WORKDIR}/screen/screen_world ${WORKDIR}/screen/screen_analyze ${WORKDIR}/screen/screen_mainMenu ${WORKDIR}/screen/screen_browser ${WORKDIR}/screen/screen_gameType +${WORKDIR}/screen/screen_choiceArena ${WORKDIR}/screen/screen_settingKeys ${WORKDIR}/screen/screen_table ${WORKDIR}/screen/screen_setting ${WORKDIR}/screen/screen_credits ${WORKDIR}/screen/screen_world ${WORKDIR}/screen/screen_analyze ${WORKDIR}/screen/screen_mainMenu ${WORKDIR}/screen/screen_browser ${WORKDIR}/screen/screen_gameType ${WORKDIR}/widget/widget_check ${WORKDIR}/widget/widget_button ${WORKDIR}/widget/widget_textfield ${WORKDIR}/widget/widget_label ${WORKDIR}/widget/widget_buttonimage ${WORKDIR}/widget/widget_image ${WORKDIR}/widget/widget_select ${WORKDIR}/widget/widget_catchkey ) diff --git a/src/base/list.c b/src/base/list.c index 27b0ed8..39b3962 100755 --- a/src/base/list.c +++ b/src/base/list.c @@ -80,7 +80,7 @@ void addList(list_t *p, void *item) void **new; #ifdef DEBUG_LIST - printf("realokujem z %d na %d (count=%d)\n", + printf("realocating from %d to %d (count=%d)\n", p->alloc, p->alloc+LIST_ALLOC_LIMIT, p->count); #endif @@ -143,7 +143,7 @@ void delList(list_t *p, int n) void **new; #ifdef DEBUG_LIST - printf("realokujem z %d na %d (count=%d)\n", + printf("realocating from %d to %d (count=%d)\n", p->alloc, p->alloc-LIST_ALLOC_LIMIT, p->count); #endif diff --git a/src/client/game.c b/src/client/game.c index 7eaab20..8cc1a3b 100644 --- a/src/client/game.c +++ b/src/client/game.c @@ -20,7 +20,7 @@ #include "interface.h" #include "screen.h" #include "font.h" -#include "keytable.h" +#include "screen_settingKeys.h" #include "language.h" #include "panel.h" #include "radar.h" @@ -35,6 +35,7 @@ #include "screen_mainMenu.h" #include "screen_analyze.h" #include "screen_setting.h" +#include "screen_settingKeys.h" #include "screen_gameType.h" #include "screen_choiceArena.h" #include "screen_table.h" @@ -72,6 +73,7 @@ static void initGame() initScreenMainMenu(); initScreenAnalyze(); initScreenSetting(); + initScreenSettingKeys(); initScreenGameType(); initScreenChoiceArena(); initScreenCredits(); @@ -102,6 +104,7 @@ void quitGame() quitScreenMainMenu(); quitScreenAnalyze(); quitScreenSetting(); + quitScreenSettingKeys(); quitScreenGameType(); quitScreenChoiceArena(); quitScreenCredits(); diff --git a/src/client/keytable.c b/src/client/keytable.c deleted file mode 100644 index 672148b..0000000 --- a/src/client/keytable.c +++ /dev/null @@ -1,136 +0,0 @@ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "homeDirector.h" -#include "textFile.h" - -#include "keytable.h" -#include "configFile.h" - -static textFile_t *keytableFile; -static textFile_t *keycontrolFile; -static int keytable[KEY_LENGTH]; - -static int getKeyCode(char *s) -{ - char str[STR_SIZE]; - char *find; - int i; - - sprintf(str, "keycode %s = ", s); - - for( i = 0 ; i < keytableFile->text->count ; i++ ) - { - char *line; - line = (char *) (keytableFile->text->list[i]); - - if( ( find = strstr(line, str) ) != NULL ) - { - int ret; - ret = atoi( strchr(line, '=')+1 ); - return ret; - } - } - - return -1; -} - -void initKeyTable() -{ - char path[STR_PATH_SIZE]; - char val[STR_SIZE]; -/* - int i; -*/ - sprintf(path, PATH_CONFIG "keytable.conf"); - keytableFile = loadTextFile(path); - - if( keytableFile == NULL ) - { - fprintf(stderr, "Don't load %s\n", path); - return; - } - - sprintf(path, "%s/keycontrol.conf", getHomeDirector()); - keycontrolFile = loadTextFile(path); - - if( keycontrolFile == NULL ) - { - fprintf(stderr, "Don't load %s\n", path); - fprintf(stderr, "I create %s\n", path); - - keycontrolFile = newTextFile(path); - } - - if( keycontrolFile == NULL ) - { - fprintf(stderr, "Don't create %s\n", path); - return; - } - - loadValueFromConfigFile(keycontrolFile, "TUX_RIGHT_MOVE_UP", val, STR_SIZE, "SDLK_UP"); - keytable[ KEY_TUX_RIGHT_MOVE_UP ] = getKeyCode(val); - - loadValueFromConfigFile(keycontrolFile, "TUX_RIGHT_MOVE_RIGHT", val, STR_SIZE, "SDLK_RIGHT"); - keytable[ KEY_TUX_RIGHT_MOVE_RIGHT ] = getKeyCode(val); - - loadValueFromConfigFile(keycontrolFile, "TUX_RIGHT_MOVE_LEFT", val, STR_SIZE, "SDLK_LEFT"); - keytable[ KEY_TUX_RIGHT_MOVE_LEFT ] = getKeyCode(val); - - loadValueFromConfigFile(keycontrolFile, "TUX_RIGHT_MOVE_DOWN", val, STR_SIZE, "SDLK_DOWN"); - keytable[ KEY_TUX_RIGHT_MOVE_DOWN ] = getKeyCode(val); - - loadValueFromConfigFile(keycontrolFile, "TUX_RIGHT_SHOOT", val, STR_SIZE, "SDLK_KP0"); - keytable[ KEY_TUX_RIGHT_SHOOT ] = getKeyCode(val); - - loadValueFromConfigFile(keycontrolFile, "TUX_RIGHT_SWITCH_WEAPON", val, STR_SIZE, "SDLK_KP1"); - keytable[ KEY_TUX_RIGHT_SWITCH_WEAPON] = getKeyCode(val); - - loadValueFromConfigFile(keycontrolFile, "TUX_LEFT_MOVE_UP", val, STR_SIZE, "SDLK_w"); - keytable[ KEY_TUX_LEFT_MOVE_UP ] = getKeyCode(val); - - loadValueFromConfigFile(keycontrolFile, "TUX_LEFT_MOVE_RIGHT", val, STR_SIZE, "SDLK_d"); - keytable[ KEY_TUX_LEFT_MOVE_RIGHT ] = getKeyCode(val); - - loadValueFromConfigFile(keycontrolFile, "TUX_LEFT_MOVE_LEFT", val, STR_SIZE, "SDLK_a"); - keytable[ KEY_TUX_LEFT_MOVE_LEFT ] = getKeyCode(val); - - loadValueFromConfigFile(keycontrolFile, "TUX_LEFT_MOVE_DOWN", val, STR_SIZE, "SDLK_s"); - keytable[ KEY_TUX_LEFT_MOVE_DOWN ] = getKeyCode(val); - - loadValueFromConfigFile(keycontrolFile, "TUX_LEFT_SHOOT", val, STR_SIZE, "SDLK_q"); - keytable[ KEY_TUX_LEFT_SHOOT ] = getKeyCode(val); - - loadValueFromConfigFile(keycontrolFile, "TUX_LEFT_SWITCH_WEAPON", val, STR_SIZE, "SDLK_TAB"); - keytable[ KEY_TUX_LEFT_SWITCH_WEAPON ] = getKeyCode(val); - -/* - for( i = 0 ; i < KEY_LENGTH ; i++) - { - printf("keytable[%d] = %d\n", i, keytable[i]); - } -*/ - - saveTextFile(keycontrolFile); -} - -int getKey(int n) -{ - assert( n >= 0 && n < KEY_LENGTH ); -/* - printf("keytable[n] = %d\n", keytable[n]); -*/ - return keytable[n]; -} - -void quitKeyTable() -{ - destroyTextFile(keycontrolFile); - destroyTextFile(keytableFile); -} - diff --git a/src/screen/screen_setting.c b/src/screen/screen_setting.c index 350788d..8115842 100644 --- a/src/screen/screen_setting.c +++ b/src/screen/screen_setting.c @@ -23,6 +23,7 @@ #include "screen_mainMenu.h" #include "screen_setting.h" +#include "screen_settingKeys.h" #include "widget_label.h" #include "widget_button.h" @@ -34,6 +35,7 @@ static widget_image_t *image_backgorund; static widget_button_t *button_back; +static widget_button_t *button_keys; // setting of keycontrols static widget_label_t *label_count_round; static widget_label_t *label_name_player1; @@ -136,6 +138,7 @@ void drawScreenSetting() drawWidgetCheck(check_ai); drawWidgetButton(button_back); + drawWidgetButton(button_keys); } void eventScreenSetting() @@ -168,6 +171,7 @@ void eventScreenSetting() eventWidgetCheck(check_ai); eventWidgetButton(button_back); + eventWidgetButton(button_keys); } void stopScreenSetting() @@ -186,6 +190,10 @@ static void eventWidget(void *p) { setScreen("mainMenu"); } + if( button == button_keys ) + { + setScreen("settingKeys"); + } #ifndef NO_SOUND if( check == check_music ) @@ -319,7 +327,8 @@ void initScreenSetting() image = getImage(IMAGE_GROUP_BASE, "screen_main"); image_backgorund = newWidgetImage(0, 0, image); - button_back = newWidgetButton(getMyText("BACK"), WINDOW_SIZE_X-200, WINDOW_SIZE_Y-100, eventWidget); + button_back = newWidgetButton(getMyText("BACK"), WINDOW_SIZE_X - 200, WINDOW_SIZE_Y - 100, eventWidget); + button_keys = newWidgetButton(getMyText("CONTROLS"), WINDOW_SIZE_X - 200, button_back->y - WIDGET_BUTTON_HEIGHT - 10, eventWidget); #ifndef NO_SOUND label_music = newWidgetLabel(getMyText("MUSIC"), 100, WINDOW_SIZE_Y-85, WIDGET_LABEL_LEFT); @@ -349,13 +358,13 @@ void initScreenSetting() textfield_name_player1 = newWidgetTextfield( getParamElse("--name1", NAME_PLAYER_RIGHT), WIDGET_TEXTFIELD_FILTER_ALPHANUM, - 110+label_name_player1->w, + 110+label_count_round->w, WINDOW_SIZE_Y-160); textfield_name_player2 = newWidgetTextfield( getParamElse("--name2", NAME_PLAYER_LEFT), WIDGET_TEXTFIELD_FILTER_ALPHANUM, - 110+label_name_player2->w, + 110+label_count_round->w, WINDOW_SIZE_Y-120); for( i = GUN_DUAL_SIMPLE ; i <= GUN_BOMBBALL ; i++ ) @@ -532,5 +541,5 @@ void quitScreenSetting() } destroyWidgetButton(button_back); + destroyWidgetButton(button_keys); } - diff --git a/src/screen/screen_setting.h b/src/screen/screen_setting.h index 2dfb897..d6e6b09 100644 --- a/src/screen/screen_setting.h +++ b/src/screen/screen_setting.h @@ -19,6 +19,4 @@ extern bool_t isSettingAI(); extern bool_t isSettingAnyItem(); extern bool_t isSettingItem(int item); extern void quitScreenSetting(); - #endif - diff --git a/src/screen/screen_settingKeys.c b/src/screen/screen_settingKeys.c new file mode 100644 index 0000000..aff367c --- /dev/null +++ b/src/screen/screen_settingKeys.c @@ -0,0 +1,321 @@ +
+#include <stdio.h>
+#include <stdlib.h>
+#include <assert.h>
+
+#include "main.h"
+#include "list.h"
+#include "tux.h"
+#include "textFile.h"
+#include "director.h"
+#include "homeDirector.h"
+#include "configFile.h"
+#include "language.h"
+#include "interface.h"
+#include "screen.h"
+#include "image.h"
+#ifndef NO_SOUND
+#include "music.h"
+#include "sound.h"
+#endif
+#include "screen_mainMenu.h"
+#include "screen_setting.h"
+#include "screen_settingKeys.h"
+#include "widget_button.h"
+#include "widget_image.h"
+#include "widget_label.h"
+
+static int keytable[KEY_LENGTH];
+static char keynametable[KEY_LENGTH][STR_SIZE]={};
+static textFile_t *keytableFile;
+static textFile_t *keycontrolFile;
+
+static widget_image_t *image_backgorund;
+
+static widget_button_t *button_back;
+
+// key names
+static widget_label_t *tux_right;
+static widget_label_t *tux_right_keyup;
+static widget_label_t *tux_right_keydown;
+static widget_label_t *tux_right_keyleft;
+static widget_label_t *tux_right_keyright;
+static widget_label_t *tux_right_keyswitch;
+static widget_label_t *tux_right_keyfire;
+static widget_label_t *tux_left;
+static widget_label_t *tux_left_keyup;
+static widget_label_t *tux_left_keydown;
+static widget_label_t *tux_left_keyleft;
+static widget_label_t *tux_left_keyright;
+static widget_label_t *tux_left_keyswitch;
+static widget_label_t *tux_left_keyfire;
+// key values
+static widget_label_t *tux_right_keyup_val;
+static widget_label_t *tux_right_keydown_val;
+static widget_label_t *tux_right_keyleft_val;
+static widget_label_t *tux_right_keyright_val;
+static widget_label_t *tux_right_keyswitch_val;
+static widget_label_t *tux_right_keyfire_val;
+static widget_label_t *tux_left_keyup_val;
+static widget_label_t *tux_left_keydown_val;
+static widget_label_t *tux_left_keyleft_val;
+static widget_label_t *tux_left_keyright_val;
+static widget_label_t *tux_left_keyswitch_val;
+static widget_label_t *tux_left_keyfire_val;
+// todo add key images
+// possible variant will be reusing widget_image for current widget_label so there wont
+// be key names but only images
+
+void startScreenSettingKeys()
+{
+#ifndef NO_SOUND
+ playMusic("menu", MUSIC_GROUP_BASE);
+#endif
+}
+static int getKeyCode(char *s)
+{
+ char str[STR_SIZE];
+ char *find;
+ int i;
+
+ sprintf(str, "keycode %s = ", s);
+
+ for(i = 0 ; i < keytableFile->text->count ; i++) {
+ char *line;
+ line = (char *) (keytableFile->text->list[i]);
+ if((find = strstr(line, str)) != NULL) {
+ int ret;
+ ret = atoi( strchr(line, '=')+1 );
+ return ret;
+ }
+ }
+
+ return -1;
+}
+
+void initKeyTable()
+{
+ char path[STR_PATH_SIZE];
+ char val[STR_SIZE];
+/*
+ int i;
+*/
+ sprintf(path, PATH_CONFIG "keytable.conf");
+ keytableFile = loadTextFile(path);
+
+ if(keytableFile == NULL) {
+ fprintf(stderr, "Don't load %s\n", path);
+ return;
+ }
+
+ sprintf(path, "%s/keycontrol.conf", getHomeDirector());
+ keycontrolFile = loadTextFile(path);
+
+ if(keycontrolFile == NULL) {
+ fprintf(stderr, "Don't load %s\n", path);
+ fprintf(stderr, "I create %s\n", path);
+ keycontrolFile = newTextFile(path);
+ }
+
+ if(keycontrolFile == NULL) {
+ fprintf(stderr, "Don't create %s\n", path);
+ return;
+ }
+
+ loadValueFromConfigFile(keycontrolFile, "TUX_RIGHT_MOVE_UP", val, STR_SIZE, "SDLK_UP");
+ keytable[ KEY_TUX_RIGHT_MOVE_UP ] = getKeyCode(val);
+ sprintf(keynametable[ KEY_TUX_RIGHT_MOVE_UP ], "%s", val);
+
+ loadValueFromConfigFile(keycontrolFile, "TUX_RIGHT_MOVE_RIGHT", val, STR_SIZE, "SDLK_RIGHT");
+ keytable[ KEY_TUX_RIGHT_MOVE_RIGHT ] = getKeyCode(val);
+ sprintf(keynametable[ KEY_TUX_RIGHT_MOVE_RIGHT ], "%s", val);
+
+ loadValueFromConfigFile(keycontrolFile, "TUX_RIGHT_MOVE_LEFT", val, STR_SIZE, "SDLK_LEFT");
+ keytable[ KEY_TUX_RIGHT_MOVE_LEFT ] = getKeyCode(val);
+ sprintf(keynametable[ KEY_TUX_RIGHT_MOVE_LEFT ], "%s", val);
+
+ loadValueFromConfigFile(keycontrolFile, "TUX_RIGHT_MOVE_DOWN", val, STR_SIZE, "SDLK_DOWN");
+ keytable[ KEY_TUX_RIGHT_MOVE_DOWN ] = getKeyCode(val);
+ sprintf(keynametable[ KEY_TUX_RIGHT_MOVE_DOWN ], "%s", val);
+
+ loadValueFromConfigFile(keycontrolFile, "TUX_RIGHT_SHOOT", val, STR_SIZE, "SDLK_KP0");
+ keytable[ KEY_TUX_RIGHT_SHOOT ] = getKeyCode(val);
+ sprintf(keynametable[ KEY_TUX_RIGHT_SHOOT ], "%s", val);
+
+ loadValueFromConfigFile(keycontrolFile, "TUX_RIGHT_SWITCH_WEAPON", val, STR_SIZE, "SDLK_KP1");
+ keytable[ KEY_TUX_RIGHT_SWITCH_WEAPON] = getKeyCode(val);
+ sprintf(keynametable[ KEY_TUX_RIGHT_SWITCH_WEAPON ], "%s", val);
+
+ loadValueFromConfigFile(keycontrolFile, "TUX_LEFT_MOVE_UP", val, STR_SIZE, "SDLK_w");
+ keytable[ KEY_TUX_LEFT_MOVE_UP ] = getKeyCode(val);
+ sprintf(keynametable[ KEY_TUX_LEFT_MOVE_UP ], "%s", val);
+
+ loadValueFromConfigFile(keycontrolFile, "TUX_LEFT_MOVE_RIGHT", val, STR_SIZE, "SDLK_d");
+ keytable[ KEY_TUX_LEFT_MOVE_RIGHT ] = getKeyCode(val);
+ sprintf(keynametable[ KEY_TUX_LEFT_MOVE_RIGHT ], "%s", val);
+
+ loadValueFromConfigFile(keycontrolFile, "TUX_LEFT_MOVE_LEFT", val, STR_SIZE, "SDLK_a");
+ keytable[ KEY_TUX_LEFT_MOVE_LEFT ] = getKeyCode(val);
+ sprintf(keynametable[ KEY_TUX_LEFT_MOVE_LEFT ], "%s", val);
+
+ loadValueFromConfigFile(keycontrolFile, "TUX_LEFT_MOVE_DOWN", val, STR_SIZE, "SDLK_s");
+ keytable[ KEY_TUX_LEFT_MOVE_DOWN ] = getKeyCode(val);
+ sprintf(keynametable[ KEY_TUX_LEFT_MOVE_DOWN ], "%s", val);
+
+ loadValueFromConfigFile(keycontrolFile, "TUX_LEFT_SHOOT", val, STR_SIZE, "SDLK_q");
+ keytable[ KEY_TUX_LEFT_SHOOT ] = getKeyCode(val);
+ sprintf(keynametable[ KEY_TUX_LEFT_SHOOT ], "%s", val);
+
+ loadValueFromConfigFile(keycontrolFile, "TUX_LEFT_SWITCH_WEAPON", val, STR_SIZE, "SDLK_TAB");
+ keytable[ KEY_TUX_LEFT_SWITCH_WEAPON ] = getKeyCode(val);
+ sprintf(keynametable[ KEY_TUX_LEFT_SWITCH_WEAPON ], "%s", val);
+
+/*
+ for( i = 0 ; i < KEY_LENGTH ; i++)
+ {
+ printf("keytable[%d] = %d\n", i, keytable[i]);
+ }
+*/
+ saveTextFile(keycontrolFile);
+}
+int getKey(int n)
+{
+ assert( n >= 0 && n < KEY_LENGTH );
+
+// printf("keytable[n] = %d\n", keytable[n]);
+
+ return keytable[n];
+}
+void drawScreenSettingKeys()
+{
+ drawWidgetImage(image_backgorund);
+ drawWidgetButton(button_back);
+ // key names
+ drawWidgetLabel(tux_right);
+ drawWidgetLabel(tux_left);
+ drawWidgetLabel(tux_right_keyup);
+ drawWidgetLabel(tux_right_keydown);
+ drawWidgetLabel(tux_right_keyleft);
+ drawWidgetLabel(tux_right_keyright);
+ drawWidgetLabel(tux_right_keyswitch);
+ drawWidgetLabel(tux_right_keyfire);
+ drawWidgetLabel(tux_left_keyup);
+ drawWidgetLabel(tux_left_keydown);
+ drawWidgetLabel(tux_left_keyleft);
+ drawWidgetLabel(tux_left_keyright);
+ drawWidgetLabel(tux_left_keyswitch);
+ drawWidgetLabel(tux_left_keyfire);
+ // key values
+ drawWidgetLabel(tux_right_keyup_val);
+ drawWidgetLabel(tux_right_keydown_val);
+ drawWidgetLabel(tux_right_keyleft_val);
+ drawWidgetLabel(tux_right_keyright_val);
+ drawWidgetLabel(tux_right_keyswitch_val);
+ drawWidgetLabel(tux_right_keyfire_val);
+ drawWidgetLabel(tux_left_keyup_val);
+ drawWidgetLabel(tux_left_keydown_val);
+ drawWidgetLabel(tux_left_keyleft_val);
+ drawWidgetLabel(tux_left_keyright_val);
+ drawWidgetLabel(tux_left_keyswitch_val);
+ drawWidgetLabel(tux_left_keyfire_val);
+}
+static void eventWidget(void *p)
+{
+ widget_button_t *button;
+ widget_label_t *label;
+
+ button = (widget_button_t *)(p);
+ label = (widget_label_t *)(p);
+
+ if(button == button_back) {
+ setScreen("setting");
+ }
+}
+void eventScreenSettingKeys()
+{
+ eventWidgetButton(button_back);
+}
+void stopScreenSettingKeys()
+{
+}
+void initScreenSettingKeys()
+{
+ initKeyTable();
+ image_t *image;
+ image = getImage(IMAGE_GROUP_BASE, "screen_main");
+ image_backgorund = newWidgetImage(0, 0, image);
+
+ button_back = newWidgetButton(getMyText("BACK"), WINDOW_SIZE_X - 200, WINDOW_SIZE_Y - 100, eventWidget);
+
+ tux_left = newWidgetLabel(getMyText("TUXLEFT"), WINDOW_SIZE_X/4, 150, WIDGET_LABEL_CENTER);
+ tux_left_keyup = newWidgetLabel(getMyText("KEY_UP"), 50, tux_left->y+50, WIDGET_LABEL_LEFT);
+ tux_left_keydown = newWidgetLabel(getMyText("KEY_DOWN"), tux_left_keyup->x, tux_left_keyup->y + 20, WIDGET_LABEL_LEFT);
+ tux_left_keyleft = newWidgetLabel(getMyText("KEY_LEFT"), tux_left_keyup->x, tux_left_keydown->y + 20, WIDGET_LABEL_LEFT);
+ tux_left_keyright = newWidgetLabel(getMyText("KEY_RIGHT"), tux_left_keyup->x, tux_left_keyleft->y + 20, WIDGET_LABEL_LEFT);
+ tux_left_keyfire = newWidgetLabel(getMyText("KEY_FIRE"), tux_left_keyup->x, tux_left_keyright->y + 20, WIDGET_LABEL_LEFT);
+ tux_left_keyswitch = newWidgetLabel(getMyText("KEY_SWITCH"), tux_left_keyup->x, tux_left_keyfire->y + 20, WIDGET_LABEL_LEFT);
+
+ tux_right = newWidgetLabel(getMyText("TUXRIGHT"), WINDOW_SIZE_X/2 + WINDOW_SIZE_X/4, tux_left->y, WIDGET_LABEL_CENTER);
+ tux_right_keyup = newWidgetLabel(getMyText("KEY_UP"), WINDOW_SIZE_X/2 + tux_left_keyup->x, tux_left->y+50, WIDGET_LABEL_LEFT);
+ tux_right_keydown = newWidgetLabel(getMyText("KEY_DOWN"), WINDOW_SIZE_X/2 + tux_left_keyup->x, tux_left_keyup->y + 20, WIDGET_LABEL_LEFT);
+ tux_right_keyleft = newWidgetLabel(getMyText("KEY_LEFT"), WINDOW_SIZE_X/2 + tux_left_keyup->x, tux_right_keydown->y + 20, WIDGET_LABEL_LEFT);
+ tux_right_keyright = newWidgetLabel(getMyText("KEY_RIGHT"), WINDOW_SIZE_X/2 + tux_left_keyup->x, tux_right_keyleft->y + 20, WIDGET_LABEL_LEFT);
+ tux_right_keyfire = newWidgetLabel(getMyText("KEY_FIRE"), WINDOW_SIZE_X/2 + tux_left_keyup->x, tux_left_keyright->y + 20, WIDGET_LABEL_LEFT);
+ tux_right_keyswitch = newWidgetLabel(getMyText("KEY_SWITCH"), WINDOW_SIZE_X/2 + tux_left_keyup->x, tux_left_keyfire->y + 20, WIDGET_LABEL_LEFT);
+
+ tux_left_keyup_val = newWidgetLabel(keynametable[6], tux_left_keyup->x+200, tux_left->y+50, WIDGET_LABEL_LEFT);
+ tux_left_keydown_val = newWidgetLabel(keynametable[9], tux_left_keyup_val->x, tux_left_keyup->y + 20, WIDGET_LABEL_LEFT);
+ tux_left_keyleft_val = newWidgetLabel(keynametable[8], tux_left_keyup_val->x, tux_left_keydown->y + 20, WIDGET_LABEL_LEFT);
+ tux_left_keyright_val = newWidgetLabel(keynametable[7], tux_left_keyup_val->x, tux_left_keyleft->y + 20, WIDGET_LABEL_LEFT);
+ tux_left_keyfire_val = newWidgetLabel(keynametable[10], tux_left_keyup_val->x, tux_left_keyright->y + 20, WIDGET_LABEL_LEFT);
+ tux_left_keyswitch_val = newWidgetLabel(keynametable[11], tux_left_keyup_val->x, tux_left_keyfire->y + 20, WIDGET_LABEL_LEFT);
+
+ tux_right_keyup_val = newWidgetLabel(keynametable[0], WINDOW_SIZE_X/2 + tux_left_keyup_val->x, tux_left->y+50, WIDGET_LABEL_LEFT);
+ tux_right_keydown_val = newWidgetLabel(keynametable[3], WINDOW_SIZE_X/2 + tux_left_keyup_val->x, tux_left_keyup->y + 20, WIDGET_LABEL_LEFT);
+ tux_right_keyleft_val = newWidgetLabel(keynametable[2], WINDOW_SIZE_X/2 + tux_left_keyup_val->x, tux_right_keydown->y + 20, WIDGET_LABEL_LEFT);
+ tux_right_keyright_val = newWidgetLabel(keynametable[1], WINDOW_SIZE_X/2 + tux_left_keyup_val->x, tux_right_keyleft->y + 20, WIDGET_LABEL_LEFT);
+ tux_right_keyfire_val = newWidgetLabel(keynametable[4], WINDOW_SIZE_X/2 + tux_left_keyup_val->x, tux_left_keyright->y + 20, WIDGET_LABEL_LEFT);
+ tux_right_keyswitch_val = newWidgetLabel(keynametable[5], WINDOW_SIZE_X/2 + tux_left_keyup_val->x, tux_left_keyfire->y + 20, WIDGET_LABEL_LEFT);
+
+ registerScreen( newScreen("settingKeys", startScreenSettingKeys, eventScreenSettingKeys,
+ drawScreenSettingKeys, stopScreenSettingKeys) );
+}
+void quitKeyTable() {
+ destroyTextFile(keycontrolFile);
+ destroyTextFile(keytableFile);
+}
+void quitScreenSettingKeys()
+{
+ // key names
+ destroyWidgetImage(image_backgorund);
+ destroyWidgetLabel(tux_right);
+ destroyWidgetLabel(tux_left);
+ destroyWidgetLabel(tux_right_keyup);
+ destroyWidgetLabel(tux_right_keydown);
+ destroyWidgetLabel(tux_right_keyleft);
+ destroyWidgetLabel(tux_right_keyright);
+ destroyWidgetLabel(tux_right_keyswitch);
+ destroyWidgetLabel(tux_right_keyfire);
+ destroyWidgetLabel(tux_left_keyup);
+ destroyWidgetLabel(tux_left_keydown);
+ destroyWidgetLabel(tux_left_keyright);
+ destroyWidgetLabel(tux_left_keyswitch);
+ destroyWidgetLabel(tux_left_keyfire);
+ // key values
+ destroyWidgetLabel(tux_right_keyup_val);
+ destroyWidgetLabel(tux_right_keydown_val);
+ destroyWidgetLabel(tux_right_keyleft_val);
+ destroyWidgetLabel(tux_right_keyright_val);
+ destroyWidgetLabel(tux_right_keyswitch_val);
+ destroyWidgetLabel(tux_right_keyfire_val);
+ destroyWidgetLabel(tux_left_keyup_val);
+ destroyWidgetLabel(tux_left_keydown_val);
+ destroyWidgetLabel(tux_left_keyleft_val);
+ destroyWidgetLabel(tux_left_keyright_val);
+ destroyWidgetLabel(tux_left_keyswitch_val);
+ destroyWidgetLabel(tux_left_keyfire_val);
+
+ quitKeyTable();
+
+ destroyWidgetButton(button_back);
+}
diff --git a/src/client/keytable.h b/src/screen/screen_settingKeys.h index 80ca258..a58aacc 100644 --- a/src/client/keytable.h +++ b/src/screen/screen_settingKeys.h @@ -1,27 +1,30 @@ - -#ifndef KEYTABLE_H - -#define KEYTABLE_H - -#define KEY_LENGTH 12 - -#define KEY_TUX_RIGHT_MOVE_UP 0 -#define KEY_TUX_RIGHT_MOVE_RIGHT 1 -#define KEY_TUX_RIGHT_MOVE_LEFT 2 -#define KEY_TUX_RIGHT_MOVE_DOWN 3 -#define KEY_TUX_RIGHT_SHOOT 4 -#define KEY_TUX_RIGHT_SWITCH_WEAPON 5 -#define KEY_TUX_LEFT_MOVE_UP 6 -#define KEY_TUX_LEFT_MOVE_RIGHT 7 -#define KEY_TUX_LEFT_MOVE_LEFT 8 -#define KEY_TUX_LEFT_MOVE_DOWN 9 -#define KEY_TUX_LEFT_SHOOT 10 -#define KEY_TUX_LEFT_SWITCH_WEAPON 11 - -extern void initKeyTable(); -extern int getKey(int n); -extern void quitKeyTable(); - -#endif - - +
+#ifndef SCREEN_SETTING_KEYS
+
+#define SCREEN_SETTING_KEYS
+
+#include "main.h"
+extern void initScreenSettingKeys();
+extern void drawScreenSettingKeys();
+extern void eventScreenSettingKeys();
+extern void quitScreenSettingKeys();
+
+#define KEY_LENGTH 12
+
+#define KEY_TUX_RIGHT_MOVE_UP 0
+#define KEY_TUX_RIGHT_MOVE_RIGHT 1
+#define KEY_TUX_RIGHT_MOVE_LEFT 2
+#define KEY_TUX_RIGHT_MOVE_DOWN 3
+#define KEY_TUX_RIGHT_SHOOT 4
+#define KEY_TUX_RIGHT_SWITCH_WEAPON 5
+#define KEY_TUX_LEFT_MOVE_UP 6
+#define KEY_TUX_LEFT_MOVE_RIGHT 7
+#define KEY_TUX_LEFT_MOVE_LEFT 8
+#define KEY_TUX_LEFT_MOVE_DOWN 9
+#define KEY_TUX_LEFT_SHOOT 10
+#define KEY_TUX_LEFT_SWITCH_WEAPON 11
+
+extern void initKeyTable();
+extern int getKey(int n);
+extern void quitKeyTable();
+#endif
diff --git a/src/screen/screen_world.c b/src/screen/screen_world.c index 045adc2..b253565 100644 --- a/src/screen/screen_world.c +++ b/src/screen/screen_world.c @@ -17,7 +17,7 @@ #include "idManager.h" #include "interface.h" -#include "keytable.h" +#include "screen_settingKeys.h" #include "layer.h" #include "image.h" #include "font.h" |