From e6ec09869e17cbfa7e8955b07b3023b8249d52d6 Mon Sep 17 00:00:00 2001 From: zicodxx <> Date: Thu, 8 May 2008 18:29:52 +0000 Subject: [PATCH] Some code improvements and small fixes --- CHANGELOG.txt | 4 ++++ arch/include/key.h | 4 +++- arch/sdl/key.c | 5 +++-- main/gamecntl.c | 2 +- main/kconfig.c | 15 --------------- main/multi.c | 2 +- main/newmenu.c | 8 ++++---- 7 files changed, 16 insertions(+), 24 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 47bcfb332..da60d84a8 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,5 +1,9 @@ D2X-Rebirth Changelog +20080508 +-------- +main/newmenu.c, main/multi.c, main/kconfig.c, main/gamecntl.c, arch/sdl/key.c, arch/include/key.h: Some code improvements and small fixes + 20080507 -------- include/args.h, main/newmenu.c, main/multi.c, main/multi.h, main/inferno.c, main/menu.c, main/netdrv_udp.c, main/powerup.c, main/automap.c, main/gamecntl.c, misc/args.c, d2x.ini, ui/inputbox.c, ui/menubar.c, arch/sdl/digi_mixer.c, arch/sdl/jukebox.c, arch/sdl/key.c,arch/include/jukebox.h, arch/include/key.h: Return unicode characters in key_to_ascii for non-EN keyboard layouts; Fixed sound menu issue if not compiled with SDL_mixer; switched -ip_norelay to -ip_relay since it's not tested enough; Renamed jukebox_free() to jukebox_unload() to stay with naming-convention diff --git a/arch/include/key.h b/arch/include/key.h index 3cc16112f..38ad4b4e4 100644 --- a/arch/include/key.h +++ b/arch/include/key.h @@ -57,6 +57,8 @@ extern unsigned char keyd_editor_mode; // Time in seconds when last key was pressed... extern volatile int keyd_time_when_last_pressed; +extern volatile int keyd_ascii; + //========================================================================== // These are the "buffered" keypress routines. Use them by setting the // "keyd_buffer_type" variable. @@ -69,7 +71,7 @@ extern int key_inkey(); // Gets key if one, other returns 0. extern int key_inkey_time(fix *time); // Same as inkey, but returns the time the key was pressed down. extern int key_peekkey(); // Same as inkey, but doesn't remove key from buffer. -extern unsigned char key_to_ascii(); +extern unsigned char key_to_ascii(void); extern void key_debug(); // Does an INT3 diff --git a/arch/sdl/key.c b/arch/sdl/key.c index f7d5e5732..1fae5e4d8 100644 --- a/arch/sdl/key.c +++ b/arch/sdl/key.c @@ -354,10 +354,10 @@ void key_buid_key_text(void) { } -unsigned char key_to_ascii() +unsigned char key_to_ascii(void) { static int last_ascii = 0; - + if (last_ascii == keyd_ascii) return 255; @@ -492,6 +492,7 @@ void key_flush() key_data.keys[i].timehelddown = 0; key_data.keys[i].counter = 0; } + keyd_ascii=255; } int add_one(int n) diff --git a/main/gamecntl.c b/main/gamecntl.c index 233614661..e9627fc4d 100644 --- a/main/gamecntl.c +++ b/main/gamecntl.c @@ -1873,7 +1873,7 @@ void FinalCheats(int key) int i; char *cryptstring; - key=key_to_ascii(key); + key=keyd_ascii; for (i=0;i<15;i++) CheatBuffer[i]=CheatBuffer[i+1]; diff --git a/main/kconfig.c b/main/kconfig.c index 800ef49a6..70420fd5d 100644 --- a/main/kconfig.c +++ b/main/kconfig.c @@ -1356,21 +1356,6 @@ fix LastReadTime = 0; fix joy_axis[JOY_MAX_AXES]; -fix Next_toggle_time[3]={0,0,0}; - -int allowed_to_toggle(int i) -{ - //used for keeping tabs of when its ok to toggle headlight,primary,and secondary - - if (Next_toggle_time[i] > GameTime) - if (Next_toggle_time[i] < GameTime + (F1_0/8)) // In case time is bogus, never wait > 1 second. - return 0; - - Next_toggle_time[i] = GameTime + (F1_0/8); - - return 1; -} - #ifdef D2X_KEYS int d2x_joystick_ostate[20]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; #endif diff --git a/main/multi.c b/main/multi.c index 72117a264..86242981b 100644 --- a/main/multi.c +++ b/main/multi.c @@ -1295,7 +1295,7 @@ void multi_message_input_sub() break; default: { - int ascii = key_to_ascii(key); + int ascii = key_to_ascii(); if ((ascii < 255 ) && (ascii != 37)) { if (multi_message_index < MAX_MESSAGE_LEN-2 ) { Network_message[multi_message_index++] = ascii; diff --git a/main/newmenu.c b/main/newmenu.c index 505c2497e..df6f9566a 100644 --- a/main/newmenu.c +++ b/main/newmenu.c @@ -1287,7 +1287,7 @@ int newmenu_do4( char * title, char * subtitle, int nitems, newmenu_item * item, item[choice].value--; item[choice].text[item[choice].value] = 0; } else { - ascii = key_to_ascii(k); + ascii = key_to_ascii(); if ((ascii < 255 ) && (item[choice].value < item[choice].text_len )) { int allowed; @@ -1312,7 +1312,7 @@ int newmenu_do4( char * title, char * subtitle, int nitems, newmenu_item * item, } else if ((item[choice].type!=NM_TYPE_INPUT) && (item[choice].type!=NM_TYPE_INPUT_MENU) ) { - ascii = key_to_ascii(k); + ascii = key_to_ascii(); if (ascii < 255 ) { int choice1 = choice; ascii = toupper(ascii); @@ -2131,8 +2131,8 @@ int newmenu_listbox1( char * title, int nitems, char * items[], int allow_abort_ break; default: - if ( key > 0 ) { - int ascii = key_to_ascii(key); + { + int ascii = key_to_ascii(); if ( ascii < 255 ) { int cc,cc1; cc=cc1=citem+1;