summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt3
-rw-r--r--config.h2
-rwxr-xr-xdata/conf/keytable.conf273
-rw-r--r--src/base/exportFunction.c1
-rw-r--r--src/base/exportFunction.h1
-rwxr-xr-xsrc/base/modules.c4
-rw-r--r--src/base/modules.h8
-rwxr-xr-xsrc/modules/modMove.c4
-rw-r--r--src/screen/screen_settingKeys.c399
-rw-r--r--src/screen/screen_world.c11
-rw-r--r--src/widget/widget_catchkey.c2
-rw-r--r--src/widget/widget_catchkey.h2
12 files changed, 155 insertions, 555 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f752740..75c9a4a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -73,7 +73,7 @@ PROJECT ( tuxanci )
IF ( Debug )
SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 -Wall -pipe")
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -Wall -pipe")
- SET ( CMAKE_VERBOSE_MAKEFILE on )
+ #SET ( CMAKE_VERBOSE_MAKEFILE on )
ENDIF ( Debug)
MESSAGE ( "EXTRA Cflags:${CMAKE_C_FLAGS}" )
MESSAGE ( "EXTRA CXXflags:${CMAKE_CXX_FLAGS}" )
@@ -99,7 +99,6 @@ ELSE ( Server )
IF ( NOT Win )
INSTALL ( FILES ${CMAKE_SOURCE_DIR}/data/tuxanci.ico DESTINATION ${CMAKE_INSTALL_DATADIR}/${APPNAME}/doc/)
ENDIF ( NOT Win )
- INSTALL ( FILES ${CMAKE_SOURCE_DIR}/data/conf/keytable.conf DESTINATION ${CMAKE_INSTALL_DATADIR}/${APPNAME}/conf/ )
FILE ( GLOB files "${CMAKE_SOURCE_DIR}/data/font/*.ttf" )
INSTALL ( FILES ${files} DESTINATION ${CMAKE_INSTALL_DATADIR}/${APPNAME}/font/ )
FILE ( GLOB files "${CMAKE_SOURCE_DIR}/data/image/*.png" )
diff --git a/config.h b/config.h
index b9f91a7..ba1d8fd 100644
--- a/config.h
+++ b/config.h
@@ -1 +1 @@
-#define TUXANCI_NG_VERSION "svn176"
+#define TUXANCI_NG_VERSION "svn178"
diff --git a/data/conf/keytable.conf b/data/conf/keytable.conf
deleted file mode 100755
index 236b72c..0000000
--- a/data/conf/keytable.conf
+++ /dev/null
@@ -1,273 +0,0 @@
-
-#********************************************
-
-#
-# Key table :
-#
-
-#********************************************
-
-keycode SDLK_FIRST = 0
-keycode SDLK_BACKSPACE = 8
-keycode SDLK_TAB = 9
-keycode SDLK_CLEAR = 12
-keycode SDLK_RETURN = 13
-keycode SDLK_PAUSE = 19
-keycode SDLK_ESCAPE = 27
-keycode SDLK_SPACE = 32
-keycode SDLK_EXCLAIM = 33
-keycode SDLK_QUOTEDBL = 34
-keycode SDLK_HASH = 35
-keycode SDLK_DOLLAR = 36
-keycode SDLK_AMPERSAND = 38
-keycode SDLK_QUOTE = 39
-keycode SDLK_LEFTPAREN = 40
-keycode SDLK_RIGHTPAREN = 41
-keycode SDLK_ASTERISK = 42
-keycode SDLK_PLUS = 43
-keycode SDLK_COMMA = 44
-keycode SDLK_MINUS = 45
-keycode SDLK_PERIOD = 46
-keycode SDLK_SLASH = 47
-
-#********************************************
-
-keycode SDLK_0 = 48
-keycode SDLK_1 = 49
-keycode SDLK_2 = 50
-keycode SDLK_3 = 51
-keycode SDLK_4 = 52
-keycode SDLK_5 = 53
-keycode SDLK_6 = 54
-keycode SDLK_7 = 55
-keycode SDLK_8 = 56
-keycode SDLK_9 = 57
-
-#********************************************
-
-keycode SDLK_COLON = 58
-keycode SDLK_SEMICOLON = 59
-keycode SDLK_LESS = 60
-keycode SDLK_EQUALS = 61
-keycode SDLK_GREATER = 62
-keycode SDLK_QUESTION = 63
-keycode SDLK_AT = 64
-
-#********************************************
-
-keycode SDLK_LEFTBRACKET = 91
-keycode SDLK_BACKSLASH = 92
-keycode SDLK_RIGHTBRACKET = 93
-keycode SDLK_CARET = 94
-keycode SDLK_UNDERSCORE = 95
-keycode SDLK_BACKQUOTE = 96
-
-#********************************************
-
-keycode SDLK_a = 97
-keycode SDLK_b = 98
-keycode SDLK_c = 99
-keycode SDLK_d = 100
-keycode SDLK_e = 101
-keycode SDLK_f = 102
-keycode SDLK_g = 103
-keycode SDLK_h = 104
-keycode SDLK_i = 105
-keycode SDLK_j = 106
-keycode SDLK_k = 107
-keycode SDLK_l = 108
-keycode SDLK_m = 1
-keycode SDLK_n = 110
-keycode SDLK_o = 111
-keycode SDLK_p = 112
-keycode SDLK_q = 113
-keycode SDLK_r = 114
-keycode SDLK_s = 115
-keycode SDLK_t = 116
-keycode SDLK_u = 117
-keycode SDLK_v = 118
-keycode SDLK_w = 119
-keycode SDLK_x = 120
-keycode SDLK_y = 121
-keycode SDLK_z = 122
-keycode SDLK_DELETE = 127
-
-#********************************************
-
-keycode SDLK_WORLD_0 = 160
-keycode SDLK_WORLD_1 = 161
-keycode SDLK_WORLD_2 = 162
-keycode SDLK_WORLD_3 = 163
-keycode SDLK_WORLD_4 = 164
-keycode SDLK_WORLD_5 = 165
-keycode SDLK_WORLD_6 = 166
-keycode SDLK_WORLD_7 = 167
-keycode SDLK_WORLD_8 = 168
-keycode SDLK_WORLD_9 = 169
-keycode SDLK_WORLD_10 = 170
-keycode SDLK_WORLD_11 = 171
-keycode SDLK_WORLD_12 = 172
-keycode SDLK_WORLD_13 = 173
-keycode SDLK_WORLD_14 = 174
-keycode SDLK_WORLD_15 = 175
-keycode SDLK_WORLD_16 = 176
-keycode SDLK_WORLD_17 = 177
-keycode SDLK_WORLD_18 = 178
-keycode SDLK_WORLD_19 = 179
-keycode SDLK_WORLD_20 = 180
-keycode SDLK_WORLD_21 = 181
-keycode SDLK_WORLD_22 = 182
-keycode SDLK_WORLD_23 = 183
-keycode SDLK_WORLD_24 = 184
-keycode SDLK_WORLD_25 = 185
-keycode SDLK_WORLD_26 = 186
-keycode SDLK_WORLD_27 = 187
-keycode SDLK_WORLD_28 = 188
-keycode SDLK_WORLD_29 = 189
-keycode SDLK_WORLD_30 = 190
-keycode SDLK_WORLD_31 = 191
-keycode SDLK_WORLD_32 = 192
-keycode SDLK_WORLD_33 = 193
-keycode SDLK_WORLD_34 = 194
-keycode SDLK_WORLD_35 = 195
-keycode SDLK_WORLD_36 = 196
-keycode SDLK_WORLD_37 = 197
-keycode SDLK_WORLD_38 = 198
-keycode SDLK_WORLD_39 = 199
-keycode SDLK_WORLD_40 = 200
-keycode SDLK_WORLD_41 = 201
-keycode SDLK_WORLD_42 = 202
-keycode SDLK_WORLD_43 = 203
-keycode SDLK_WORLD_44 = 204
-keycode SDLK_WORLD_45 = 205
-keycode SDLK_WORLD_46 = 206
-keycode SDLK_WORLD_47 = 207
-keycode SDLK_WORLD_48 = 208
-keycode SDLK_WORLD_49 = 2
-keycode SDLK_WORLD_50 = 210
-keycode SDLK_WORLD_51 = 211
-keycode SDLK_WORLD_52 = 212
-keycode SDLK_WORLD_53 = 213
-keycode SDLK_WORLD_54 = 214
-keycode SDLK_WORLD_55 = 215
-keycode SDLK_WORLD_56 = 216
-keycode SDLK_WORLD_57 = 217
-keycode SDLK_WORLD_58 = 218
-keycode SDLK_WORLD_59 = 219
-keycode SDLK_WORLD_60 = 220
-keycode SDLK_WORLD_61 = 221
-keycode SDLK_WORLD_62 = 222
-keycode SDLK_WORLD_63 = 223
-keycode SDLK_WORLD_64 = 224
-keycode SDLK_WORLD_65 = 225
-keycode SDLK_WORLD_66 = 226
-keycode SDLK_WORLD_67 = 227
-keycode SDLK_WORLD_68 = 228
-keycode SDLK_WORLD_69 = 229
-keycode SDLK_WORLD_70 = 230
-keycode SDLK_WORLD_71 = 231
-keycode SDLK_WORLD_72 = 232
-keycode SDLK_WORLD_73 = 233
-keycode SDLK_WORLD_74 = 234
-keycode SDLK_WORLD_75 = 235
-keycode SDLK_WORLD_76 = 236
-keycode SDLK_WORLD_77 = 237
-keycode SDLK_WORLD_78 = 238
-keycode SDLK_WORLD_79 = 239
-keycode SDLK_WORLD_80 = 240
-keycode SDLK_WORLD_81 = 241
-keycode SDLK_WORLD_82 = 242
-keycode SDLK_WORLD_83 = 243
-keycode SDLK_WORLD_84 = 244
-keycode SDLK_WORLD_85 = 245
-keycode SDLK_WORLD_86 = 246
-keycode SDLK_WORLD_87 = 247
-keycode SDLK_WORLD_88 = 248
-keycode SDLK_WORLD_89 = 249
-keycode SDLK_WORLD_90 = 250
-keycode SDLK_WORLD_91 = 251
-keycode SDLK_WORLD_92 = 252
-keycode SDLK_WORLD_93 = 253
-keycode SDLK_WORLD_94 = 254
-keycode SDLK_WORLD_95 = 255
-
-#********************************************
-
-keycode SDLK_KP0 = 256
-keycode SDLK_KP1 = 257
-keycode SDLK_KP2 = 258
-keycode SDLK_KP3 = 259
-keycode SDLK_KP4 = 260
-keycode SDLK_KP5 = 261
-keycode SDLK_KP6 = 262
-keycode SDLK_KP7 = 263
-keycode SDLK_KP8 = 264
-keycode SDLK_KP9 = 265
-keycode SDLK_KP_PERIOD = 266
-keycode SDLK_KP_DIVIDE = 267
-keycode SDLK_KP_MULTIPLY = 268
-keycode SDLK_KP_MINUS = 269
-keycode SDLK_KP_PLUS = 270
-keycode SDLK_KP_ENTER = 271
-keycode SDLK_KP_EQUALS = 272
-
-#********************************************
-
-keycode SDLK_UP = 273
-keycode SDLK_DOWN = 274
-keycode SDLK_RIGHT = 275
-keycode SDLK_LEFT = 276
-keycode SDLK_INSERT = 277
-keycode SDLK_HOME = 278
-keycode SDLK_END = 279
-keycode SDLK_PAGEUP = 280
-keycode SDLK_PAGEDOWN = 281
-
-#********************************************
-
-keycode SDLK_F1 = 282
-keycode SDLK_F2 = 283
-keycode SDLK_F3 = 284
-keycode SDLK_F4 = 285
-keycode SDLK_F5 = 286
-keycode SDLK_F6 = 287
-keycode SDLK_F7 = 288
-keycode SDLK_F8 = 289
-keycode SDLK_F9 = 290
-keycode SDLK_F10 = 291
-keycode SDLK_F11 = 292
-keycode SDLK_F12 = 293
-keycode SDLK_F13 = 294
-keycode SDLK_F14 = 295
-keycode SDLK_F15 = 296
-
-#********************************************
-
-keycode SDLK_NUMLOCK = 300
-keycode SDLK_CAPSLOCK = 301
-keycode SDLK_SCROLLOCK = 302
-keycode SDLK_RSHIFT = 303
-keycode SDLK_LSHIFT = 304
-keycode SDLK_RCTRL = 305
-keycode SDLK_LCTRL = 306
-keycode SDLK_RALT = 307
-keycode SDLK_LALT = 308
-keycode SDLK_RMETA = 3
-keycode SDLK_LMETA = 310
-keycode SDLK_LSUPER = 311
-keycode SDLK_RSUPER = 312
-keycode SDLK_MODE = 313
-keycode SDLK_COMPOSE = 314
-
-#********************************************
-
-keycode SDLK_HELP = 315
-keycode SDLK_PRINT = 316
-keycode SDLK_SYSREQ = 317
-keycode SDLK_BREAK = 318
-keycode SDLK_MENU = 319
-keycode SDLK_POWER = 320
-keycode SDLK_EURO = 321
-keycode SDLK_UNDO = 322
-
-#********************************************
diff --git a/src/base/exportFunction.c b/src/base/exportFunction.c
index 955c0e1..550e4ec 100644
--- a/src/base/exportFunction.c
+++ b/src/base/exportFunction.c
@@ -37,7 +37,6 @@ void initExortFunction()
{
listExportFce = newList();
}
-
void addToExportFce(char *name, void *function)
{
printf("add to export function %s\n", name);
diff --git a/src/base/exportFunction.h b/src/base/exportFunction.h
index 5f3f1d0..8e01fc9 100644
--- a/src/base/exportFunction.h
+++ b/src/base/exportFunction.h
@@ -5,6 +5,7 @@
extern void initExortFunction();
extern void addToExportFce(char *name, void *function);
+
extern void* getExportFce(char *name);
extern void quitExportFunction();
diff --git a/src/base/modules.c b/src/base/modules.c
index e84cd30..13b0ff2 100755
--- a/src/base/modules.c
+++ b/src/base/modules.c
@@ -88,9 +88,8 @@ static void* getFce(module_t *p, char *s)
static void* mapImage(char *name)
{
- void *image;
-
#ifndef __WIN32__
+ void *image;
image = dlopen (name, RTLD_LAZY);
if( image == NULL )
@@ -118,7 +117,6 @@ static void* mapImage(char *name)
);
fputs(msg, stderr);
free(msg);
- free(ret);
FreeLibrary(image);
return NULL;
}
diff --git a/src/base/modules.h b/src/base/modules.h
index 8036a6a..5ad0287 100644
--- a/src/base/modules.h
+++ b/src/base/modules.h
@@ -31,7 +31,11 @@ typedef struct export_fce_s
int (*fce_getNetTypeGame)();
int (*fce_loadDepModule)(void *name);
+#ifndef __WIN32__
void (*fce_addToExportFce)(char *name, void *function);
+#else
+ void (*fce_addToExportFce)(char *name, HINSTANCE *function);
+#endif
void* (*fce_getExportFce)(char *name);
void (*fce_getTuxProportion)(tux_t *tux, int *x,int *y, int *w, int *h);
@@ -56,7 +60,11 @@ typedef struct export_fce_s
typedef struct module_s
{
char *name;
+#ifndef __WIN32__
void *image;
+#else
+ HINSTANCE *image;
+#endif
int (*fce_init)(export_fce_t *p);
#ifndef PUBLIC_SERVER
diff --git a/src/modules/modMove.c b/src/modules/modMove.c
index 3b8d09c..f4ac84e 100755
--- a/src/modules/modMove.c
+++ b/src/modules/modMove.c
@@ -223,8 +223,8 @@ int init(export_fce_t *p)
{
export_fce = p;
- export_fce->fce_addToExportFce("move_tux", move_tux);
- export_fce->fce_addToExportFce("move_shot", move_shot);
+ export_fce->fce_addToExportFce("move_tux", (void *)move_tux);
+ export_fce->fce_addToExportFce("move_shot", (void *)move_shot);
return 0;
}
diff --git a/src/screen/screen_settingKeys.c b/src/screen/screen_settingKeys.c
index 2a6539a..4825a2f 100644
--- a/src/screen/screen_settingKeys.c
+++ b/src/screen/screen_settingKeys.c
@@ -23,11 +23,10 @@
#include "screen_settingKeys.h"
#include "widget_button.h"
#include "widget_image.h"
+#include "widget_catchkey.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;
@@ -50,20 +49,20 @@ 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;
+static widget_catchkey_t *tux_right_keyup_val;
+static widget_catchkey_t *tux_right_keydown_val;
+static widget_catchkey_t *tux_right_keyleft_val;
+static widget_catchkey_t *tux_right_keyright_val;
+static widget_catchkey_t *tux_right_keyswitch_val;
+static widget_catchkey_t *tux_right_keyfire_val;
+static widget_catchkey_t *tux_left_keyup_val;
+static widget_catchkey_t *tux_left_keydown_val;
+static widget_catchkey_t *tux_left_keyleft_val;
+static widget_catchkey_t *tux_left_keyright_val;
+static widget_catchkey_t *tux_left_keyswitch_val;
+static widget_catchkey_t *tux_left_keyfire_val;
-static widget_catcgkey_t *catcher;
+//static widget_catchkey_t *catcher;
// todo add key images
// possible variant will be reusing widget_image for current widget_label so there wont
// be key names but only images
@@ -74,27 +73,6 @@ void startScreenSettingKeys()
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];
@@ -102,14 +80,6 @@ void initKeyTable()
/*
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);
@@ -123,54 +93,30 @@ void initKeyTable()
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);
+ loadValueFromConfigFile(keycontrolFile, "TUX_RIGHT_MOVE_UP", val, STR_SIZE, "273");
+ keytable[ KEY_TUX_RIGHT_MOVE_UP ] = atoi(val);
+ loadValueFromConfigFile(keycontrolFile, "TUX_RIGHT_MOVE_RIGHT", val, STR_SIZE, "275");
+ keytable[ KEY_TUX_RIGHT_MOVE_RIGHT ] = atoi(val);
+ loadValueFromConfigFile(keycontrolFile, "TUX_RIGHT_MOVE_LEFT", val, STR_SIZE, "276");
+ keytable[ KEY_TUX_RIGHT_MOVE_LEFT ] = atoi(val);
+ loadValueFromConfigFile(keycontrolFile, "TUX_RIGHT_MOVE_DOWN", val, STR_SIZE, "274");
+ keytable[ KEY_TUX_RIGHT_MOVE_DOWN ] = atoi(val);
+ loadValueFromConfigFile(keycontrolFile, "TUX_RIGHT_SHOOT", val, STR_SIZE, "48");
+ keytable[ KEY_TUX_RIGHT_SHOOT ] = atoi(val);
+ loadValueFromConfigFile(keycontrolFile, "TUX_RIGHT_SWITCH_WEAPON", val, STR_SIZE, "49");
+ keytable[ KEY_TUX_RIGHT_SWITCH_WEAPON ] = atoi(val);
+ loadValueFromConfigFile(keycontrolFile, "TUX_LEFT_MOVE_UP", val, STR_SIZE, "119");
+ keytable[ KEY_TUX_LEFT_MOVE_UP ] = atoi(val);
+ loadValueFromConfigFile(keycontrolFile, "TUX_LEFT_MOVE_RIGHT", val, STR_SIZE, "100");
+ keytable[ KEY_TUX_LEFT_MOVE_RIGHT ] = atoi(val);
+ loadValueFromConfigFile(keycontrolFile, "TUX_LEFT_MOVE_LEFT", val, STR_SIZE, "97");
+ keytable[ KEY_TUX_LEFT_MOVE_LEFT ] = atoi(val);
+ loadValueFromConfigFile(keycontrolFile, "TUX_LEFT_MOVE_DOWN", val, STR_SIZE, "115");
+ keytable[ KEY_TUX_LEFT_MOVE_DOWN ] = atoi(val);
+ loadValueFromConfigFile(keycontrolFile, "TUX_LEFT_SHOOT", val, STR_SIZE, "113");
+ keytable[ KEY_TUX_LEFT_SHOOT ] = atoi(val);
+ loadValueFromConfigFile(keycontrolFile, "TUX_LEFT_SWITCH_WEAPON", val, STR_SIZE, "9");
+ keytable[ KEY_TUX_LEFT_SWITCH_WEAPON ] = atoi(val);
/*
for( i = 0 ; i < KEY_LENGTH ; i++)
@@ -208,167 +154,62 @@ void drawScreenSettingKeys()
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);
-}
-void createNewKey() {
- // create catchkey
- // redraw keyval
- // update config file
+ drawWidgetCatchkey(tux_right_keyup_val);
+ drawWidgetCatchkey(tux_right_keydown_val);
+ drawWidgetCatchkey(tux_right_keyleft_val);
+ drawWidgetCatchkey(tux_right_keyright_val);
+ drawWidgetCatchkey(tux_right_keyswitch_val);
+ drawWidgetCatchkey(tux_right_keyfire_val);
+ drawWidgetCatchkey(tux_left_keyup_val);
+ drawWidgetCatchkey(tux_left_keydown_val);
+ drawWidgetCatchkey(tux_left_keyleft_val);
+ drawWidgetCatchkey(tux_left_keyright_val);
+ drawWidgetCatchkey(tux_left_keyswitch_val);
+ drawWidgetCatchkey(tux_left_keyfire_val);
}
static void eventWidget(void *p)
{
widget_button_t *button;
- widget_label_t *label;
+ widget_catchkey_t *catcher;
button = (widget_button_t *)(p);
- label = (widget_label_t *)(p);
-
+ catcher = (widget_catchkey_t *)(p);
if(button == button_back) {
setScreen("setting");
}
- //events on picture/text
- if(label == tux_left_keyup) {
- //call load of new value
- //call change to config + redraw of value
- }
- if(label == tux_left_keydown) {
- //call load of new value
- //call change to config + redraw of value
- }
- if(label == tux_left_keyleft) {
- //call load of new value
- //call change to config + redraw of value
- }
- if(label == tux_left_keyright) {
- //call load of new value
- //call change to config + redraw of value
- }
- if(label == tux_left_keyfire) {
- //call load of new value
- //call change to config + redraw of value
- }
- if(label == tux_left_keyswitch) {
- //call load of new value
- //call change to config + redraw of value
- }
- if(label == tux_right_keyup) {
- //call load of new value
- //call change to config + redraw of value
- }
- if(label == tux_right_keydown) {
- //call load of new value
- //call change to config + redraw of value
- }
- if(label == tux_right_keyleft) {
- //call load of new value
- //call change to config + redraw of value
- }
- if(label == tux_right_keyright) {
- //call load of new value
- //call change to config + redraw of value
- }
- if(label == tux_right_keyswitch) {
- //call load of new value
- //call change to config + redraw of value
- }
- if(label == tux_right_keyfire) {
- //call load of new value
- //call change to config + redraw of value
- }
//events on value
- if(label == tux_left_keyup_val) {
- //call load of new value
- //call change to config + redraw of value
- }
- if(label == tux_left_keydown_val) {
- //call load of new value
- //call change to config + redraw of value
- }
- if(label == tux_left_keyleft_val) {
- //call load of new value
- //call change to config + redraw of value
- }
- if(label == tux_left_keyright_val) {
- //call load of new value
- //call change to config + redraw of value
- }
- if(label == tux_left_keyfire_val) {
- //call load of new value
- //call change to config + redraw of value
- }
- if(label == tux_left_keyswitch_val) {
- //call load of new value
- //call change to config + redraw of value
- }
- if(label == tux_right_keyup_val) {
- //call load of new value
- //call change to config + redraw of value
- }
- if(label == tux_right_keydown_val) {
- //call load of new value
- //call change to config + redraw of value
- }
- if(label == tux_right_keyleft_val) {
- //call load of new value
- //call change to config + redraw of value
- }
- if(label == tux_right_keyright_val) {
- //call load of new value
- //call change to config + redraw of value
- }
- if(label == tux_right_keyswitch_val) {
- //call load of new value
- //call change to config + redraw of value
- }
- if(label == tux_right_keyfire_val) {
- //call load of new value
- //call change to config + redraw of value
+ if( (catcher == tux_left_keyup_val) ||
+ (catcher == tux_left_keydown_val) ||
+ (catcher == tux_left_keyleft_val) ||
+ (catcher == tux_left_keyright_val) ||
+ (catcher == tux_left_keyfire_val) ||
+ (catcher == tux_left_keyswitch_val) ||
+ (catcher == tux_right_keyup_val) ||
+ (catcher == tux_right_keydown_val) ||
+ (catcher == tux_right_keyleft_val) ||
+ (catcher == tux_right_keyright_val) ||
+ (catcher == tux_right_keyswitch_val) ||
+ (catcher == tux_right_keyfire_val) ) {
+ // draw press any key picture
+ // check if there is no other key with new value (what to revert if yes?)
+ // allow ony one key per time change HOW THE HELL IS THIS EVEN POSSIBLE
}
}
void eventScreenSettingKeys()
{
eventWidgetButton(button_back);
- // text/image
- eventWidgetLabel(tux_right);
- eventWidgetLabel(tux_left);
- eventWidgetLabel(tux_right_keyup);
- eventWidgetLabel(tux_right_keydown);
- eventWidgetLabel(tux_right_keyleft);
- eventWidgetLabel(tux_right_keyright);
- eventWidgetLabel(tux_right_keyswitch);
- eventWidgetLabel(tux_right_keyfire);
- eventWidgetLabel(tux_left_keyup);
- eventWidgetLabel(tux_left_keydown);
- eventWidgetLabel(tux_left_keyleft);
- eventWidgetLabel(tux_left_keyright);
- eventWidgetLabel(tux_left_keyswitch);
- eventWidgetLabel(tux_left_keyfire);
- // value
- eventWidgetLabel(tux_right_val);
- eventWidgetLabel(tux_left_val);
- eventWidgetLabel(tux_right_keyup_val);
- eventWidgetLabel(tux_right_keydown_val);
- eventWidgetLabel(tux_right_keyleft_val);
- eventWidgetLabel(tux_right_keyright_val);
- eventWidgetLabel(tux_right_keyswitch_val);
- eventWidgetLabel(tux_right_keyfire_val);
- eventWidgetLabel(tux_left_keyup_val);
- eventWidgetLabel(tux_left_keydown_val);
- eventWidgetLabel(tux_left_keyleft_val);
- eventWidgetLabel(tux_left_keyright_val);
- eventWidgetLabel(tux_left_keyswitch_val);
- eventWidgetLabel(tux_left_keyfire_val);
+ eventWidgetCatchkey(tux_right_keyup_val);
+ eventWidgetCatchkey(tux_right_keydown_val);
+ eventWidgetCatchkey(tux_right_keyleft_val);
+ eventWidgetCatchkey(tux_right_keyright_val);
+ eventWidgetCatchkey(tux_right_keyswitch_val);
+ eventWidgetCatchkey(tux_right_keyfire_val);
+ eventWidgetCatchkey(tux_left_keyup_val);
+ eventWidgetCatchkey(tux_left_keydown_val);
+ eventWidgetCatchkey(tux_left_keyleft_val);
+ eventWidgetCatchkey(tux_left_keyright_val);
+ eventWidgetCatchkey(tux_left_keyswitch_val);
+ eventWidgetCatchkey(tux_left_keyfire_val);
}
void stopScreenSettingKeys()
{
@@ -398,31 +239,61 @@ void initScreenSettingKeys()
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_left_keyup_val = newWidgetCatchkey(keytable[6], tux_left_keyup->x+200, tux_left->y+50);
+ tux_left_keydown_val = newWidgetCatchkey(keytable[9], tux_left_keyup_val->x, tux_left_keyup->y + 20);
+ tux_left_keyleft_val = newWidgetCatchkey(keytable[8], tux_left_keyup_val->x, tux_left_keydown->y + 20);
+ tux_left_keyright_val = newWidgetCatchkey(keytable[7], tux_left_keyup_val->x, tux_left_keyleft->y + 20);
+ tux_left_keyfire_val = newWidgetCatchkey(keytable[10], tux_left_keyup_val->x, tux_left_keyright->y + 20);
+ tux_left_keyswitch_val = newWidgetCatchkey(keytable[11], tux_left_keyup_val->x, tux_left_keyfire->y + 20);
- 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);
+ tux_right_keyup_val = newWidgetCatchkey(keytable[0], WINDOW_SIZE_X/2 + tux_left_keyup_val->x, tux_left->y+50);
+ tux_right_keydown_val = newWidgetCatchkey(keytable[3], WINDOW_SIZE_X/2 + tux_left_keyup_val->x, tux_left_keyup->y + 20);
+ tux_right_keyleft_val = newWidgetCatchkey(keytable[2], WINDOW_SIZE_X/2 + tux_left_keyup_val->x, tux_right_keydown->y + 20);
+ tux_right_keyright_val = newWidgetCatchkey(keytable[1], WINDOW_SIZE_X/2 + tux_left_keyup_val->x, tux_right_keyleft->y + 20);
+ tux_right_keyfire_val = newWidgetCatchkey(keytable[4], WINDOW_SIZE_X/2 + tux_left_keyup_val->x, tux_left_keyright->y + 20);
+ tux_right_keyswitch_val = newWidgetCatchkey(keytable[5], WINDOW_SIZE_X/2 + tux_left_keyup_val->x, tux_left_keyfire->y + 20);
registerScreen( newScreen("settingKeys", startScreenSettingKeys, eventScreenSettingKeys,
drawScreenSettingKeys, stopScreenSettingKeys) );
}
void quitKeyTable()
{
- //printf("quitKeyTable\n");
destroyTextFile(keycontrolFile);
- destroyTextFile(keytableFile);
+}
+void saveKeyTable() {
+ char str[STR_SIZE];
+ sprintf(str,"%d",tux_left_keyup_val->key);
+ setValueInConfigFile(keycontrolFile, "TUX_LEFT_MOVE_UP", str);
+ sprintf(str,"%d",tux_left_keydown_val->key);
+ setValueInConfigFile(keycontrolFile, "TUX_LEFT_MOVE_DOWN", str);
+ sprintf(str,"%d",tux_left_keyleft_val->key);
+ setValueInConfigFile(keycontrolFile, "TUX_LEFT_MOVE_LEFT", str);
+ sprintf(str,"%d",tux_left_keyright_val->key);
+ setValueInConfigFile(keycontrolFile, "TUX_LEFT_MOVE_RIGHT", str);
+ sprintf(str,"%d",tux_left_keyfire_val->key);
+ setValueInConfigFile(keycontrolFile, "TUX_LEFT_MOVE_SHOOT", str);
+ sprintf(str,"%d",tux_left_keyswitch_val->key);
+ setValueInConfigFile(keycontrolFile, "TUX_LEFT_MOVE_SWITCH_WEAPON ", str);
+
+ sprintf(str,"%d",tux_right_keyup_val->key);
+ setValueInConfigFile(keycontrolFile, "TUX_RIGHT_MOVE_UP", str);
+ sprintf(str,"%d",tux_right_keydown_val->key);
+ setValueInConfigFile(keycontrolFile, "TUX_RIGHT_MOVE_DOWN", str);
+ sprintf(str,"%d",tux_right_keyleft_val->key);
+ setValueInConfigFile(keycontrolFile, "TUX_RIGHT_MOVE_LEFT", str);
+ sprintf(str,"%d",tux_right_keyright_val->key);
+ setValueInConfigFile(keycontrolFile, "TUX_RIGHT_MOVE_RIGHT", str);
+ sprintf(str,"%d",tux_right_keyfire_val->key);
+ setValueInConfigFile(keycontrolFile, "TUX_RIGHT_MOVE_SHOOT", str);
+ sprintf(str,"%d",tux_right_keyswitch_val->key);
+ setValueInConfigFile(keycontrolFile, "TUX_RIGHT_MOVE_SWITCH_WEAPON ", str);
+
+ saveTextFile(keycontrolFile);
}
void quitScreenSettingKeys()
{
+ saveKeyTable();
+ quitKeyTable();
// key names
destroyWidgetImage(image_backgorund);
destroyWidgetLabel(tux_right);
@@ -439,18 +310,18 @@ void quitScreenSettingKeys()
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);
+ destroyWidgetCatchkey(tux_right_keyup_val);
+ destroyWidgetCatchkey(tux_right_keydown_val);
+ destroyWidgetCatchkey(tux_right_keyleft_val);
+ destroyWidgetCatchkey(tux_right_keyright_val);
+ destroyWidgetCatchkey(tux_right_keyswitch_val);
+ destroyWidgetCatchkey(tux_right_keyfire_val);
+ destroyWidgetCatchkey(tux_left_keyup_val);
+ destroyWidgetCatchkey(tux_left_keydown_val);
+ destroyWidgetCatchkey(tux_left_keyleft_val);
+ destroyWidgetCatchkey(tux_left_keyright_val);
+ destroyWidgetCatchkey(tux_left_keyswitch_val);
+ destroyWidgetCatchkey(tux_left_keyfire_val);
destroyWidgetButton(button_back);
}
diff --git a/src/screen/screen_world.c b/src/screen/screen_world.c
index b253565..9e686b8 100644
--- a/src/screen/screen_world.c
+++ b/src/screen/screen_world.c
@@ -217,14 +217,11 @@ static void control_keyboard_right(tux_t *tux)
if( mapa[(SDLKey)getKey(KEY_TUX_RIGHT_MOVE_LEFT)] == SDL_PRESSED )countKey++;
if( mapa[(SDLKey)getKey(KEY_TUX_RIGHT_MOVE_DOWN)] == SDL_PRESSED )countKey++;
- if( mapa[(SDLKey)getKey(KEY_TUX_RIGHT_SWITCH_WEAPON)] == SDL_PRESSED )
+ if( mapa[(SDLKey)getKey(KEY_TUX_RIGHT_SWITCH_WEAPON)] == SDL_PRESSED && tux->isCanSwitchGun == TRUE )
{
- if( tux->isCanSwitchGun == TRUE )
- {
- netAction(tux, TUX_SWITCH_GUN);
- actionTux(tux, TUX_SWITCH_GUN);
- return;
- }
+ netAction(tux, TUX_SWITCH_GUN);
+ actionTux(tux, TUX_SWITCH_GUN);
+ return;
}
if( mapa[(SDLKey)getKey(KEY_TUX_RIGHT_SHOOT)] == SDL_PRESSED && tux->isCanShot == TRUE )
diff --git a/src/widget/widget_catchkey.c b/src/widget/widget_catchkey.c
index 7443358..afdac23 100644
--- a/src/widget/widget_catchkey.c
+++ b/src/widget/widget_catchkey.c
@@ -6,7 +6,7 @@
#include "font.h"
#include "widget_catchkey.h"
-widget_catchkey_t* newWidgetCatchkey(int x, int y, int key)
+widget_catchkey_t* newWidgetCatchkey(int key, int x, int y)
{
widget_catchkey_t *new;
diff --git a/src/widget/widget_catchkey.h b/src/widget/widget_catchkey.h
index ab95bbd..0b8b080 100644
--- a/src/widget/widget_catchkey.h
+++ b/src/widget/widget_catchkey.h
@@ -18,7 +18,7 @@ typedef struct widget_catchkey_struct
bool_t active;
} widget_catchkey_t;
-extern widget_catchkey_t* newWidgetCatchkey(int x, int y, int key);
+extern widget_catchkey_t* newWidgetCatchkey(int key, int x, int y);
extern int getWidgetCatchKey(widget_catchkey_t *p);
extern void setWidgetCatchKey(widget_catchkey_t *p, int key);
extern void drawWidgetCatchkey(widget_catchkey_t *p);