Made key_properties readable in other files; Eliminated key_text variable; Marked unicode_frame_buffer as extern in header - patches by Kp

This commit is contained in:
zicodxx 2012-11-02 17:41:40 +01:00
parent d91b472f31
commit adbe894e5e
4 changed files with 18 additions and 21 deletions

View file

@ -1,5 +1,9 @@
D2X-Rebirth Changelog
20121102
--------
arch/include/key.h, arch/sdl/key.c, main/kconfig.c: Made key_properties readable in other files; Eliminated key_text variable; Marked unicode_frame_buffer as extern in header - patches by Kp
20121031
--------
main/hostage.h, include/u_mem.h: Fixed inconsistency in hostage_rescue() definition and revoked recent patch for u_mem.h due to infinite loops in mem.c caused by this

View file

@ -20,6 +20,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
#ifndef _KEY_H
#define _KEY_H
#include <SDL/SDL_keysym.h>
#include "pstypes.h"
#include "fix.h"
#include "event.h"
@ -38,7 +39,7 @@ extern void key_close();
extern fix64 keyd_time_when_last_pressed;
// Stores Unicode values registered in one event_loop call
unsigned char unicode_frame_buffer[KEY_BUFFER_SIZE];
extern unsigned char unicode_frame_buffer[KEY_BUFFER_SIZE];
extern void key_flush(); // Clears the 256 char buffer
extern int event_key_get(d_event *event); // Get the keycode from the EVENT_KEY_COMMAND event
@ -52,8 +53,6 @@ extern volatile unsigned char keyd_last_released;
extern void key_toggle_repeat(int enable);
extern char * key_text[256];
// for key_ismodlck
#define KEY_ISMOD 1
#define KEY_ISLCK 2
@ -185,4 +184,12 @@ extern char * key_text[256];
#define KEY_PAUSE 0x61
typedef struct key_props {
const char *key_text;
unsigned char ascii_value;
SDLKey sym;
} key_props;
extern const key_props key_properties[256];
#endif

View file

@ -35,13 +35,7 @@ typedef struct keyboard {
static keyboard key_data;
typedef struct key_props {
char *key_text;
unsigned char ascii_value;
SDLKey sym;
} key_props;
key_props key_properties[256] = {
const key_props key_properties[256] = {
{ "", 255, -1 }, // 0
{ "ESC", 255, SDLK_ESCAPE },
{ "1", '1', SDLK_1 },
@ -306,8 +300,6 @@ typedef struct d_event_keycommand
int keycode;
} d_event_keycommand;
char *key_text[256];
int key_ismodlck(int keycode)
{
switch (keycode)
@ -441,8 +433,6 @@ void key_close()
void key_init()
{
int i;
if (Installed) return;
Installed=1;
@ -450,10 +440,6 @@ void key_init()
key_toggle_repeat(1);
keyd_time_when_last_pressed = timer_query();
for(i=0; i<256; i++)
key_text[i] = key_properties[i].key_text;
// Clear the keyboard array
key_flush();
}

View file

@ -442,7 +442,7 @@ int get_item_height(kc_item *item)
} else {
switch( item->type ) {
case BT_KEY:
strncpy( btext, key_text[item->value], 10 ); break;
strncpy( btext, key_properties[item->value].key_text, 10 ); break;
case BT_MOUSE_BUTTON:
strncpy( btext, mousebutton_text[item->value], 10); break;
case BT_MOUSE_AXIS:
@ -967,7 +967,7 @@ void kc_drawitem( kc_item *item, int is_current )
} else {
switch( item->type ) {
case BT_KEY:
strncpy( btext, key_text[item->value], 10 ); break;
strncpy( btext, key_properties[item->value].key_text, 10 ); break;
case BT_MOUSE_BUTTON:
strncpy( btext, mousebutton_text[item->value], 10 ); break;
case BT_MOUSE_AXIS:
@ -1033,7 +1033,7 @@ void kc_change_key( kc_menu *menu, d_event *event, kc_item * item )
Assert(event->type == EVENT_KEY_COMMAND);
keycode = event_key_get_raw(event);
if (strlen(key_text[keycode])<=0)
if (!(key_properties[keycode].key_text))
return;
for (n=0; n<(GameArg.CtlNoStickyKeys?sizeof(system_keys)-3:sizeof(system_keys)); n++ )