diff --git a/SConstruct b/SConstruct index 52392b889..5fed09731 100644 --- a/SConstruct +++ b/SConstruct @@ -237,6 +237,7 @@ class DXXArchive(DXXCommon): ] ] editor_sources = [os.path.join(srcdir, f) for f in [ +'ui/keypad.c', 'ui/keypress.c', 'ui/keytrap.c', 'ui/listbox.c', @@ -532,7 +533,6 @@ class D1XProgram(DXXProgram): 'ui/gadget.c', 'ui/icon.c', 'ui/inputbox.c', -'ui/keypad.c', ] ] DXXProgram.__init__(self) @@ -745,7 +745,6 @@ class D2XProgram(DXXProgram): 'ui/gadget.c', 'ui/icon.c', 'ui/inputbox.c', -'ui/keypad.c', ] ] DXXProgram.__init__(self) diff --git a/d2x-rebirth/ui/keypad.c b/common/ui/keypad.c similarity index 100% rename from d2x-rebirth/ui/keypad.c rename to common/ui/keypad.c diff --git a/d1x-rebirth/ui/keypad.c b/d1x-rebirth/ui/keypad.c deleted file mode 100644 index 62a1fcdf3..000000000 --- a/d1x-rebirth/ui/keypad.c +++ /dev/null @@ -1,532 +0,0 @@ -/* -THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX -SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO -END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A -ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS -IN USING, DISPLAYING, AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS -SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE -FREE PURPOSES. IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE -CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES. THE END-USER UNDERSTANDS -AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE. -COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. -*/ - -#include -#include -#include -#include "physfsx.h" -#include "fix.h" -#include "pstypes.h" -#include "gr.h" -#include "key.h" -#include "ui.h" -#include "u_mem.h" -#include "func.h" -#include "dxxerror.h" - -#define MAX_NUM_PADS 20 - -static UI_GADGET_BUTTON * Pad[17]; -static UI_KEYPAD * KeyPad[MAX_NUM_PADS]; -static int active_pad; - -static int desc_x, desc_y; - -static int HotKey[17]; -static int HotKey1[17]; - -#define REMOVE_EOL(s) (*(strstr( (s), "\n" ))='\0') - -int ui_pad_get_current() -{ - return active_pad; -} - -void ui_pad_init() -{ - int i; - - for (i=0; i< MAX_NUM_PADS; i++ ) - KeyPad[i] = NULL; - - active_pad = -1; -} - -void ui_pad_close() -{ - int i, j; - - for (i=0; i< MAX_NUM_PADS; i++ ) - if (KeyPad[i]) - { - for (j=0; j<17; j++ ) - d_free(KeyPad[i]->buttontext[j]); - d_free( KeyPad[i] ); - KeyPad[i] = NULL; - } - -} - - -void LineParse( int n, char * dest, char * source ) -{ - int i = 0, j=0, cn = 0; - - // Go to the n'th line - while (cn < n ) - if ((unsigned char) source[i++] == 179) - cn++; - - // Read up until the next comma - while ((unsigned char) source[i] != 179) - { - dest[j] = source[i++]; - j++; - } - - // Null-terminate - dest[j++] = 0; -} - -void ui_pad_activate( UI_DIALOG * dlg, int x, int y ) -{ - int w,h,row,col, n; - int bh, bw; - - bw = 56; bh = 30; - - x += 5; - y += 20; - - desc_x = x+2; - desc_y = y-17; - - n=0; row = 0; col = 0; w = 1; h = 1; - Pad[n] = ui_add_gadget_button( dlg, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); - Pad[n]->canvas->cv_font = ui_small_font; - n=1; row = 0; col = 1; w = 1; h = 1; - Pad[n] = ui_add_gadget_button( dlg, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); - Pad[n]->canvas->cv_font = ui_small_font; - n=2; row = 0; col = 2; w = 1; h = 1; - Pad[n] = ui_add_gadget_button( dlg, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); - Pad[n]->canvas->cv_font = ui_small_font; - n=3; row = 0; col = 3; w = 1; h = 1; - Pad[n] = ui_add_gadget_button( dlg, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); - Pad[n]->canvas->cv_font = ui_small_font; - n=4; row = 1; col = 0; w = 1; h = 1; - Pad[n] = ui_add_gadget_button( dlg, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); - Pad[n]->canvas->cv_font = ui_small_font; - n=5; row = 1; col = 1; w = 1; h = 1; - Pad[n] = ui_add_gadget_button( dlg, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); - Pad[n]->canvas->cv_font = ui_small_font; - n=6; row = 1; col = 2; w = 1; h = 1; - Pad[n] = ui_add_gadget_button( dlg, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); - Pad[n]->canvas->cv_font = ui_small_font; - n=7; row = 1; col = 3; w = 1; h = 2; - Pad[n] = ui_add_gadget_button( dlg, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); - Pad[n]->canvas->cv_font = ui_small_font; - n=8; row = 2; col = 0; w = 1; h = 1; - Pad[n] = ui_add_gadget_button( dlg, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); - Pad[n]->canvas->cv_font = ui_small_font; - n=9; row = 2; col = 1; w = 1; h = 1; - Pad[n] = ui_add_gadget_button( dlg, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); - Pad[n]->canvas->cv_font = ui_small_font; - n=10; row = 2; col = 2; w = 1; h = 1; - Pad[n] = ui_add_gadget_button( dlg, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); - Pad[n]->canvas->cv_font = ui_small_font; - n=11; row = 3; col = 0; w = 1; h = 1; - Pad[n] = ui_add_gadget_button( dlg, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); - Pad[n]->canvas->cv_font = ui_small_font; - n=12; row = 3; col = 1; w = 1; h = 1; - Pad[n] = ui_add_gadget_button( dlg, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); - Pad[n]->canvas->cv_font = ui_small_font; - n=13; row = 3; col = 2; w = 1; h = 1; - Pad[n] = ui_add_gadget_button( dlg, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); - Pad[n]->canvas->cv_font = ui_small_font; - n=14; row = 3; col = 3; w = 1; h = 2; - Pad[n] = ui_add_gadget_button( dlg, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); - Pad[n]->canvas->cv_font = ui_small_font; - n=15; row = 4; col = 0; w = 2; h = 1; - Pad[n] = ui_add_gadget_button( dlg, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); - Pad[n]->canvas->cv_font = ui_small_font; - n=16; row = 4; col = 2; w = 1; h = 1; - Pad[n] = ui_add_gadget_button( dlg, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); - Pad[n]->canvas->cv_font = ui_small_font; - - HotKey[0] = KEY_CTRLED + KEY_NUMLOCK; - HotKey[1] = KEY_CTRLED + KEY_PADDIVIDE; - HotKey[2] = KEY_CTRLED + KEY_PADMULTIPLY; - HotKey[3] = KEY_CTRLED + KEY_PADMINUS; - HotKey[4] = KEY_CTRLED + KEY_PAD7; - HotKey[5] = KEY_CTRLED + KEY_PAD8; - HotKey[6] = KEY_CTRLED + KEY_PAD9; - HotKey[7] = KEY_CTRLED + KEY_PADPLUS; - HotKey[8] = KEY_CTRLED + KEY_PAD4; - HotKey[9] = KEY_CTRLED + KEY_PAD5; - HotKey[10] = KEY_CTRLED + KEY_PAD6; - HotKey[11] = KEY_CTRLED + KEY_PAD1; - HotKey[12] = KEY_CTRLED + KEY_PAD2; - HotKey[13] = KEY_CTRLED + KEY_PAD3; - HotKey[14] = KEY_CTRLED + KEY_PADENTER; - HotKey[15] = KEY_CTRLED + KEY_PAD0; - HotKey[16] = KEY_CTRLED + KEY_PADPERIOD; - - HotKey1[0] = KEY_SHIFTED + KEY_CTRLED + KEY_NUMLOCK; - HotKey1[1] = KEY_SHIFTED + KEY_CTRLED + KEY_PADDIVIDE; - HotKey1[2] = KEY_SHIFTED + KEY_CTRLED + KEY_PADMULTIPLY; - HotKey1[3] = KEY_SHIFTED + KEY_CTRLED + KEY_PADMINUS; - HotKey1[4] = KEY_SHIFTED + KEY_CTRLED + KEY_PAD7; - HotKey1[5] = KEY_SHIFTED + KEY_CTRLED + KEY_PAD8; - HotKey1[6] = KEY_SHIFTED + KEY_CTRLED + KEY_PAD9; - HotKey1[7] = KEY_SHIFTED + KEY_CTRLED + KEY_PADPLUS; - HotKey1[8] = KEY_SHIFTED + KEY_CTRLED + KEY_PAD4; - HotKey1[9] = KEY_SHIFTED + KEY_CTRLED + KEY_PAD5; - HotKey1[10] = KEY_SHIFTED + KEY_CTRLED + KEY_PAD6; - HotKey1[11] = KEY_SHIFTED + KEY_CTRLED + KEY_PAD1; - HotKey1[12] = KEY_SHIFTED + KEY_CTRLED + KEY_PAD2; - HotKey1[13] = KEY_SHIFTED + KEY_CTRLED + KEY_PAD3; - HotKey1[14] = KEY_SHIFTED + KEY_CTRLED + KEY_PADENTER; - HotKey1[15] = KEY_SHIFTED + KEY_CTRLED + KEY_PAD0; - HotKey1[16] = KEY_SHIFTED + KEY_CTRLED + KEY_PADPERIOD; - - active_pad = -1; - -} - - -void ui_pad_deactivate() -{ - int i; - - for (i=0; i<17; i++ ) - { - Pad[i]->text = NULL; - } -} - -void ui_pad_draw(UI_DIALOG *dlg, int x, int y) -{ - int bh, bw; - - bw = 56; bh = 30; - - ui_dialog_set_current_canvas( dlg ); - ui_draw_box_in( x, y, x+(bw*4)+10 + 200, y+(bh*5)+45 ); - - gr_set_current_canvas( NULL ); - gr_setcolor( CWHITE ); - gr_urect( desc_x, desc_y, desc_x+ 56*4-1, desc_y+15 ); - gr_set_fontcolor( CBLACK, CWHITE ); - gr_ustring( desc_x, desc_y, KeyPad[active_pad]->description ); -} - -static void ui_pad_set_active( int n ) -{ - int np; - char * name; - int i, j; - - - - for (i=0; i<17; i++ ) - { - Pad[i]->text = KeyPad[n]->buttontext[i]; - Pad[i]->status = 1; - Pad[i]->user_function = NULL; - Pad[i]->dim_if_no_function = 1; - Pad[i]->hotkey = -1; - - for (j=0; j< KeyPad[n]->numkeys; j++ ) - { - if (HotKey[i] == KeyPad[n]->keycode[j] ) - { - Pad[i]->hotkey = HotKey[i]; - Pad[i]->user_function = func_nget( KeyPad[n]->function_number[j], &np, &name ); - } - if (HotKey1[i] == KeyPad[n]->keycode[j] ) - { - Pad[i]->hotkey1 = HotKey1[i]; - Pad[i]->user_function1 = func_nget( KeyPad[n]->function_number[j], &np, &name ); - } - } - } - - active_pad = n; -} - -void ui_pad_goto(int n) -{ - if ( KeyPad[n] != NULL ) - ui_pad_set_active(n); -} - -void ui_pad_goto_next() -{ - int i, si; - - i = active_pad + 1; - si = i; - - while( KeyPad[i]==NULL ) - { - i++; - if (i >= MAX_NUM_PADS) - i = 0; - if (i == si ) - break; - } - ui_pad_set_active(i); -} - -void ui_pad_goto_prev() -{ - int i; - - if (active_pad == -1 ) - active_pad = MAX_NUM_PADS; - - i = active_pad - 1; - if (i<0) i= MAX_NUM_PADS - 1; - - while( KeyPad[i]==NULL ) - { - i--; - if (i < 0) - i = MAX_NUM_PADS-1; - if (i == active_pad ) - break; - } - ui_pad_set_active(i); -} - -void ui_pad_read( int n, char * filename ) -{ - char * ptr; - char buffer[100]; - char text[100]; - char line_buffer[200]; - PHYSFS_file * infile; - int linenumber = 0; - int i; - int keycode, functionnumber; - - infile = PHYSFSX_openReadBuffered( filename ); - if (!infile) { - Warning( "Couldn't find %s\n", filename ); - return; - } - - MALLOC( KeyPad[n], UI_KEYPAD, 1 ); - - for (i=0; i < 17; i++ ) { - MALLOC( KeyPad[n]->buttontext[i], char, 100 ); - } - - KeyPad[n]->numkeys = 0; - - for (i=0; i<100; i++ ) - { - KeyPad[n]->keycode[i] = -1; - KeyPad[n]->function_number[i] = 0; - } - - while ( linenumber < 22) - { - PHYSFSX_fgets( buffer, 100, infile ); - - switch( linenumber+1 ) - { - case 1: - strncpy( KeyPad[n]->description, buffer, 100 ); - break; - //===================== ROW 0 ============================== - case 3: - LineParse( 1, text, buffer ); - sprintf( KeyPad[n]->buttontext[0], "%s\n", text ); - LineParse( 2, text, buffer ); - sprintf( KeyPad[n]->buttontext[1], "%s\n", text ); - LineParse( 3, text, buffer ); - sprintf( KeyPad[n]->buttontext[2], "%s\n", text ); - LineParse( 4, text, buffer ); - sprintf( KeyPad[n]->buttontext[3], "%s\n", text ); - break; - case 4: - LineParse( 1, text, buffer ); - sprintf( KeyPad[n]->buttontext[0], "%s%s\n", KeyPad[n]->buttontext[0],text ); - LineParse( 2, text, buffer ); - sprintf( KeyPad[n]->buttontext[1], "%s%s\n", KeyPad[n]->buttontext[1],text ); - LineParse( 3, text, buffer ); - sprintf( KeyPad[n]->buttontext[2], "%s%s\n", KeyPad[n]->buttontext[2],text ); - LineParse( 4, text, buffer ); - sprintf( KeyPad[n]->buttontext[3], "%s%s\n", KeyPad[n]->buttontext[3],text ); - break; - case 5: - LineParse( 1, text, buffer ); - sprintf( KeyPad[n]->buttontext[0], "%s%s", KeyPad[n]->buttontext[0],text ); - LineParse( 2, text, buffer ); - sprintf( KeyPad[n]->buttontext[1], "%s%s", KeyPad[n]->buttontext[1],text ); - LineParse( 3, text, buffer ); - sprintf( KeyPad[n]->buttontext[2], "%s%s", KeyPad[n]->buttontext[2],text ); - LineParse( 4, text, buffer ); - sprintf( KeyPad[n]->buttontext[3], "%s%s", KeyPad[n]->buttontext[3],text ); - break; - //===================== ROW 1 ============================== - case 7: - LineParse( 1, text, buffer ); - sprintf( KeyPad[n]->buttontext[4], "%s\n", text ); - LineParse( 2, text, buffer ); - sprintf( KeyPad[n]->buttontext[5], "%s\n", text ); - LineParse( 3, text, buffer); - sprintf( KeyPad[n]->buttontext[6], "%s\n", text ); - LineParse( 4, text, buffer ); - sprintf( KeyPad[n]->buttontext[7], "%s\n", text ); - break; - case 8: - LineParse( 1, text, buffer ); - sprintf( KeyPad[n]->buttontext[4], "%s%s\n", KeyPad[n]->buttontext[4],text ); - LineParse( 2, text, buffer ); - sprintf( KeyPad[n]->buttontext[5], "%s%s\n", KeyPad[n]->buttontext[5],text ); - LineParse( 3, text, buffer ); - sprintf( KeyPad[n]->buttontext[6], "%s%s\n", KeyPad[n]->buttontext[6],text ); - LineParse( 4, text, buffer ); - sprintf( KeyPad[n]->buttontext[7], "%s%s\n", KeyPad[n]->buttontext[7],text ); - break; - case 9: - LineParse( 1, text, buffer ); - sprintf( KeyPad[n]->buttontext[4], "%s%s", KeyPad[n]->buttontext[4],text ); - LineParse( 2, text, buffer ); - sprintf( KeyPad[n]->buttontext[5], "%s%s", KeyPad[n]->buttontext[5],text ); - LineParse( 3, text, buffer ); - sprintf( KeyPad[n]->buttontext[6], "%s%s", KeyPad[n]->buttontext[6],text ); - LineParse( 4, text, buffer ); - sprintf( KeyPad[n]->buttontext[7], "%s%s\n", KeyPad[n]->buttontext[7],text ); - break; - case 10: - ptr = strrchr( buffer, (char) 179 ); - *ptr = 0; - ptr = strrchr( buffer, (char) 180 ); ptr++; - sprintf( KeyPad[n]->buttontext[7], "%s%s\n", KeyPad[n]->buttontext[7],ptr ); - break; - //======================= ROW 2 ============================== - case 11: - LineParse( 1, text, buffer ); - sprintf( KeyPad[n]->buttontext[8], "%s\n", text ); - LineParse( 2, text, buffer ); - sprintf( KeyPad[n]->buttontext[9], "%s\n", text ); - LineParse( 3, text, buffer); - sprintf( KeyPad[n]->buttontext[10], "%s\n", text ); - LineParse( 4, text, buffer ); - sprintf( KeyPad[n]->buttontext[7], "%s%s\n", KeyPad[n]->buttontext[7],text ); - break; - case 12: - LineParse( 1, text, buffer ); - sprintf( KeyPad[n]->buttontext[8], "%s%s\n", KeyPad[n]->buttontext[8],text ); - LineParse( 2, text, buffer ); - sprintf( KeyPad[n]->buttontext[9], "%s%s\n", KeyPad[n]->buttontext[9],text ); - LineParse( 3, text, buffer ); - sprintf( KeyPad[n]->buttontext[10], "%s%s\n", KeyPad[n]->buttontext[10],text ); - LineParse( 4, text, buffer ); - sprintf( KeyPad[n]->buttontext[7], "%s%s\n", KeyPad[n]->buttontext[7],text ); - break; - case 13: - LineParse( 1, text, buffer ); - sprintf( KeyPad[n]->buttontext[8], "%s%s", KeyPad[n]->buttontext[8],text ); - LineParse( 2, text, buffer ); - sprintf( KeyPad[n]->buttontext[9], "%s%s", KeyPad[n]->buttontext[9],text ); - LineParse( 3, text, buffer ); - sprintf( KeyPad[n]->buttontext[10], "%s%s", KeyPad[n]->buttontext[10],text ); - LineParse( 4, text, buffer ); - sprintf( KeyPad[n]->buttontext[7], "%s%s", KeyPad[n]->buttontext[7],text ); - break; - // ====================== ROW 3 ========================= - case 15: - LineParse( 1, text, buffer ); - sprintf( KeyPad[n]->buttontext[11], "%s\n", text ); - LineParse( 2, text, buffer ); - sprintf( KeyPad[n]->buttontext[12], "%s\n", text ); - LineParse( 3, text, buffer); - sprintf( KeyPad[n]->buttontext[13], "%s\n", text ); - LineParse( 4, text, buffer ); - sprintf( KeyPad[n]->buttontext[14], "%s\n", text ); - break; - case 16: - LineParse( 1, text, buffer ); - sprintf( KeyPad[n]->buttontext[11], "%s%s\n", KeyPad[n]->buttontext[11],text ); - LineParse( 2, text, buffer ); - sprintf( KeyPad[n]->buttontext[12], "%s%s\n", KeyPad[n]->buttontext[12],text ); - LineParse( 3, text, buffer ); - sprintf( KeyPad[n]->buttontext[13], "%s%s\n", KeyPad[n]->buttontext[13],text ); - LineParse( 4, text, buffer ); - sprintf( KeyPad[n]->buttontext[14], "%s%s\n", KeyPad[n]->buttontext[14],text ); - break; - case 17: - LineParse( 1, text, buffer ); - sprintf( KeyPad[n]->buttontext[11], "%s%s", KeyPad[n]->buttontext[11],text ); - LineParse( 2, text, buffer ); - sprintf( KeyPad[n]->buttontext[12], "%s%s", KeyPad[n]->buttontext[12],text ); - LineParse( 3, text, buffer ); - sprintf( KeyPad[n]->buttontext[13], "%s%s", KeyPad[n]->buttontext[13],text ); - LineParse( 4, text, buffer ); - sprintf( KeyPad[n]->buttontext[14], "%s%s\n", KeyPad[n]->buttontext[14],text ); - break; - case 18: - ptr = strrchr( buffer, (char) 179 ); - *ptr = 0; - ptr = strrchr( buffer, (char) 180 ); ptr++; - sprintf( KeyPad[n]->buttontext[14], "%s%s\n", KeyPad[n]->buttontext[14], ptr ); - break; - //======================= ROW 4 ========================= - case 19: - LineParse( 1, text, buffer ); - sprintf( KeyPad[n]->buttontext[15], "%s\n", text ); - LineParse( 2, text, buffer ); - sprintf( KeyPad[n]->buttontext[16], "%s\n", text ); - LineParse( 3, text, buffer ); - sprintf( KeyPad[n]->buttontext[14], "%s%s\n", KeyPad[n]->buttontext[14],text ); - break; - case 20: - LineParse( 1, text, buffer ); - sprintf( KeyPad[n]->buttontext[15], "%s%s\n", KeyPad[n]->buttontext[15],text ); - LineParse( 2, text, buffer ); - sprintf( KeyPad[n]->buttontext[16], "%s%s\n", KeyPad[n]->buttontext[16],text ); - LineParse( 3, text, buffer ); - sprintf( KeyPad[n]->buttontext[14], "%s%s\n", KeyPad[n]->buttontext[14],text ); - break; - case 21: - LineParse( 1, text, buffer ); - sprintf( KeyPad[n]->buttontext[15], "%s%s", KeyPad[n]->buttontext[15],text ); - LineParse( 2, text, buffer ); - sprintf( KeyPad[n]->buttontext[16], "%s%s", KeyPad[n]->buttontext[16],text ); - LineParse( 3, text, buffer ); - sprintf( KeyPad[n]->buttontext[14], "%s%s", KeyPad[n]->buttontext[14],text ); - break; - } - - linenumber++; - } - - // Get the keycodes... - - while (PHYSFSX_fgets(line_buffer, 200, infile)) - { - sscanf(line_buffer, " %s %s ", text, buffer); - keycode = DecodeKeyText(text); - functionnumber = func_get_index(buffer); - if (functionnumber==-1) - { - Error( "Unknown function, %s, in %s\n", buffer, filename ); - } else if (keycode==-1) - { - Error( "Unknown keystroke, %s, in %s\n", text, filename ); - //ui_messagebox( -2, -2, 1, buffer, "Ok" ); - - } else { - KeyPad[n]->keycode[KeyPad[n]->numkeys] = keycode; - KeyPad[n]->function_number[KeyPad[n]->numkeys] = functionnumber; - KeyPad[n]->numkeys++; - } - } - - PHYSFS_close(infile); - -}