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:
parent
d91b472f31
commit
adbe894e5e
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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++ )
|
||||
|
|
Loading…
Reference in a new issue