Incompatible changes are tracked in the keys.cfg file now
git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@1102 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
Changes towards version 0.3:
|
Changes towards version 0.3:
|
||||||
|
- Version checks inside the input code to flag incompatible changes --Michael
|
||||||
- Install location for content on unix systems is now ${prefix}/share/uqm
|
- Install location for content on unix systems is now ${prefix}/share/uqm
|
||||||
instead of ${prefix}/lib/uqm - SvdB
|
instead of ${prefix}/lib/uqm - SvdB
|
||||||
- New main menu graphics from MarkVera, Paxtez, Nic (bug #393)
|
- New main menu graphics from MarkVera, Paxtez, Nic (bug #393)
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
# Default UQM input configuration file.
|
# Default UQM input configuration file.
|
||||||
|
|
||||||
|
# This is a VCONTROL version 1 config file (UQM 0.3 or later).
|
||||||
|
version 1
|
||||||
|
|
||||||
# Keyboard control definitions follow this point. Most keys can be
|
# Keyboard control definitions follow this point. Most keys can be
|
||||||
# described in a straightforward manner; consult the name table in
|
# described in a straightforward manner; consult the name table in
|
||||||
# src/sc2code/libs/input/sdl/keynames.c for the names of unusual keys.
|
# src/sc2code/libs/input/sdl/keynames.c for the names of unusual keys.
|
||||||
@@ -86,10 +89,12 @@ Exit: key F10
|
|||||||
Abort: key F12
|
Abort: key F12
|
||||||
|
|
||||||
# This is a sample joystick configuration. This is intended to work
|
# This is a sample joystick configuration. This is intended to work
|
||||||
# primarily under WinXP with a USB analag/digital gamepad. The
|
# primarily under WinXP with a USB analog/digital gamepad. The
|
||||||
# digital aspect of the gamepad happens to present itself to the
|
# digital aspect of the gamepad happens to present itself to the
|
||||||
# system as a POV hat. This configuration allows either the digital
|
# system as a POV hat. This configuration allows either the digital
|
||||||
# or analog stick to be used simultaneously.
|
# or analog stick to be used simultaneously. More importantly, it
|
||||||
|
# gives us a chance to give examples for all of the various input types
|
||||||
|
# that UQM can handle.
|
||||||
|
|
||||||
# joystick 0 threshold 10000 # How far to move before it counts; 0-30000
|
# joystick 0 threshold 10000 # How far to move before it counts; 0-30000
|
||||||
# Menu-Left: joystick 0 axis 0 negative
|
# Menu-Left: joystick 0 axis 0 negative
|
||||||
|
|||||||
@@ -37,6 +37,8 @@ UWORD UNICODEToKBD (UNICODE which_key);
|
|||||||
|
|
||||||
static BOOLEAN _in_character_mode = FALSE;
|
static BOOLEAN _in_character_mode = FALSE;
|
||||||
|
|
||||||
|
#define VCONTROL_VERSION 1
|
||||||
|
|
||||||
static VControl_NameBinding control_names[] = {
|
static VControl_NameBinding control_names[] = {
|
||||||
{ "Menu-Up", (int *)&ImmediateMenuState.up },
|
{ "Menu-Up", (int *)&ImmediateMenuState.up },
|
||||||
{ "Menu-Down", (int *)&ImmediateMenuState.down },
|
{ "Menu-Down", (int *)&ImmediateMenuState.down },
|
||||||
@@ -97,31 +99,40 @@ initKeyConfig(void) {
|
|||||||
}
|
}
|
||||||
errors = VControl_ReadConfiguration (fp);
|
errors = VControl_ReadConfiguration (fp);
|
||||||
res_CloseResFile (fp);
|
res_CloseResFile (fp);
|
||||||
if (errors)
|
if (errors || (VControl_GetConfigFileVersion () != VCONTROL_VERSION))
|
||||||
{
|
{
|
||||||
fprintf (stderr, "%d errors encountered in key configuration "
|
fprintf (stderr, "%d errors encountered in key configuration file.\n", errors);
|
||||||
"file.\n", errors);
|
/* This code should go away in 0.4; it's just
|
||||||
/* This code should go away in 0.3; it's just
|
|
||||||
* to force people to upgrade and forestall a
|
* to force people to upgrade and forestall a
|
||||||
* bunch of "none of my keys work anymore" bugs.
|
* bunch of "none of my keys work anymore" bugs.
|
||||||
*/
|
*/
|
||||||
if (errors > 5)
|
if (VControl_GetValidCount () == 0)
|
||||||
{
|
{
|
||||||
fprintf (stderr, "Hey! you haven't updated your keys.cfg to "
|
fprintf (stderr, "\nI didn't understand a single line in your configuration file.\n");
|
||||||
"use the new system, have you?\nDelete keys.cfg and "
|
fprintf (stderr, "This is likely because you're still using a 0.2 era or earlier keys.cfg.\n");
|
||||||
"try again.\n");
|
fprintf (stderr, "Please delete your keys.cfg file and try again.\n");
|
||||||
fprintf (stderr, "If you've done that and it STILL doesn't "
|
fprintf (stderr, "That will give you a new template to edit.\n\n");
|
||||||
"work, make sure your content/starcon.key is up to"
|
fprintf (stderr, "If you've done that and it STILL doesn't work, make sure you've\n");
|
||||||
"date.\n");
|
fprintf (stderr, "properly updated your content, too.\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fprintf (stderr, "Repair your keys.cfg file to continue.\n");
|
if (VControl_GetConfigFileVersion () != VCONTROL_VERSION)
|
||||||
|
{
|
||||||
|
fprintf (stderr, "\nThe control scheme for UQM has changed since you last updated keys.cfg.\n");
|
||||||
|
fprintf (stderr, "(I'm using control scheme version %d, while your config file appears to be\nfor version %d.)\n", VCONTROL_VERSION, VControl_GetConfigFileVersion ());
|
||||||
|
fprintf (stderr, "You should delete your keys.cfg file and rerun UQM to get a new template to\nedit.\n\n");
|
||||||
|
fprintf (stderr, "If you've done that and it STILL doesn't work, make sure you've\n");
|
||||||
|
fprintf (stderr, "properly updated your content, too.\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fprintf (stderr, "\nRepair your keys.cfg file to continue.\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
exit (1);
|
exit (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|||||||
@@ -48,6 +48,10 @@ static int joycount;
|
|||||||
static keypool *pool;
|
static keypool *pool;
|
||||||
static VControl_NameBinding *nametable;
|
static VControl_NameBinding *nametable;
|
||||||
|
|
||||||
|
/* Statistics variables - set by VControl_ReadConfiguration */
|
||||||
|
|
||||||
|
static int version, errors, validlines;
|
||||||
|
|
||||||
static keypool *
|
static keypool *
|
||||||
_allocate_key_chunk (void)
|
_allocate_key_chunk (void)
|
||||||
{
|
{
|
||||||
@@ -215,16 +219,18 @@ VControl_Uninit (void)
|
|||||||
_name_uninit ();
|
_name_uninit ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
int
|
||||||
VControl_SetJoyThreshold (int port, int threshold)
|
VControl_SetJoyThreshold (int port, int threshold)
|
||||||
{
|
{
|
||||||
if (port >= 0 && port < joycount)
|
if (port >= 0 && port < joycount)
|
||||||
{
|
{
|
||||||
joysticks[port].threshold = threshold;
|
joysticks[port].threshold = threshold;
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fprintf (stderr, "VControl_SetJoyThreshold passed illegal port %d\n", port);
|
fprintf (stderr, "VControl_SetJoyThreshold passed illegal port %d\n", port);
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -278,7 +284,7 @@ _add_binding (keybinding **newptr, int *target)
|
|||||||
/* Sanity check. */
|
/* Sanity check. */
|
||||||
if (!newbinding)
|
if (!newbinding)
|
||||||
{
|
{
|
||||||
fprintf (stderr, "VControl_AddKeyBinding failed to find a free binding slot!\n");
|
fprintf (stderr, "_add_binding failed to find a free binding slot!\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -344,19 +350,77 @@ _deactivate (keybinding *i)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
int
|
||||||
VControl_AddKeyBinding (int symbol, int *target)
|
VControl_AddBinding (SDL_Event *e, int *target)
|
||||||
{
|
{
|
||||||
_add_binding(&bindings[symbol], target);
|
int result;
|
||||||
|
switch (e->type)
|
||||||
|
{
|
||||||
|
case SDL_KEYDOWN:
|
||||||
|
result = VControl_AddKeyBinding (e->key.keysym.sym, target);
|
||||||
|
break;
|
||||||
|
case SDL_JOYAXISMOTION:
|
||||||
|
result = VControl_AddJoyAxisBinding (e->jaxis.which, e->jaxis.axis, (e->jaxis.value < 0) ? -1 : 1, target);
|
||||||
|
break;
|
||||||
|
case SDL_JOYHATMOTION:
|
||||||
|
result = VControl_AddJoyHatBinding (e->jhat.which, e->jhat.hat, e->jhat.value, target);
|
||||||
|
break;
|
||||||
|
case SDL_JOYBUTTONDOWN:
|
||||||
|
result = VControl_AddJoyButtonBinding (e->jbutton.which, e->jbutton.button, target);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
fprintf (stderr, "VControl_AddBinding didn't understand argument event\n");
|
||||||
|
result = -1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
VControl_RemoveKeyBinding (int symbol, int *target)
|
VControl_RemoveBinding (SDL_Event *e, int *target)
|
||||||
{
|
{
|
||||||
|
switch (e->type)
|
||||||
|
{
|
||||||
|
case SDL_KEYDOWN:
|
||||||
|
VControl_RemoveKeyBinding (e->key.keysym.sym, target);
|
||||||
|
break;
|
||||||
|
case SDL_JOYAXISMOTION:
|
||||||
|
VControl_RemoveJoyAxisBinding (e->jaxis.which, e->jaxis.axis, (e->jaxis.value < 0) ? -1 : 1, target);
|
||||||
|
break;
|
||||||
|
case SDL_JOYHATMOTION:
|
||||||
|
VControl_RemoveJoyHatBinding (e->jhat.which, e->jhat.hat, e->jhat.value, target);
|
||||||
|
break;
|
||||||
|
case SDL_JOYBUTTONDOWN:
|
||||||
|
VControl_RemoveJoyButtonBinding (e->jbutton.which, e->jbutton.button, target);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
fprintf (stderr, "VControl_RemoveBinding didn't understand argument event\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
VControl_AddKeyBinding (SDLKey symbol, int *target)
|
||||||
|
{
|
||||||
|
if ((symbol < 0) || (symbol >= SDLK_LAST)) {
|
||||||
|
fprintf (stderr, "VControl: Illegal key index %d\n", symbol);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
_add_binding(&bindings[symbol], target);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
VControl_RemoveKeyBinding (SDLKey symbol, int *target)
|
||||||
|
{
|
||||||
|
if ((symbol < 0) || (symbol >= SDLK_LAST)) {
|
||||||
|
fprintf (stderr, "VControl: Illegal key index %d\n", symbol);
|
||||||
|
return;
|
||||||
|
}
|
||||||
_remove_binding (&bindings[symbol], target);
|
_remove_binding (&bindings[symbol], target);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
int
|
||||||
VControl_AddJoyAxisBinding (int port, int axis, int polarity, int *target)
|
VControl_AddJoyAxisBinding (int port, int axis, int polarity, int *target)
|
||||||
{
|
{
|
||||||
if (port >= 0 && port < joycount)
|
if (port >= 0 && port < joycount)
|
||||||
@@ -377,17 +441,21 @@ VControl_AddJoyAxisBinding (int port, int axis, int polarity, int *target)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
fprintf (stderr, "VControl: Attempted to bind to polarity zero\n");
|
fprintf (stderr, "VControl: Attempted to bind to polarity zero\n");
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fprintf (stderr, "VControl: Attempted to bind to illegal axis %d\n", axis);
|
fprintf (stderr, "VControl: Attempted to bind to illegal axis %d\n", axis);
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fprintf (stderr, "VControl: Attempted to bind to illegal port %d\n", port);
|
fprintf (stderr, "VControl: Attempted to bind to illegal port %d\n", port);
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -424,7 +492,7 @@ VControl_RemoveJoyAxisBinding (int port, int axis, int polarity, int *target)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
int
|
||||||
VControl_AddJoyButtonBinding (int port, int button, int *target)
|
VControl_AddJoyButtonBinding (int port, int button, int *target)
|
||||||
{
|
{
|
||||||
if (port >= 0 && port < joycount)
|
if (port >= 0 && port < joycount)
|
||||||
@@ -435,15 +503,18 @@ VControl_AddJoyButtonBinding (int port, int button, int *target)
|
|||||||
if ((button >= 0) && (button < j->numbuttons))
|
if ((button >= 0) && (button < j->numbuttons))
|
||||||
{
|
{
|
||||||
_add_binding(&joysticks[port].buttons[button], target);
|
_add_binding(&joysticks[port].buttons[button], target);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fprintf (stderr, "VControl: Attempted to bind to illegal button %d\n", button);
|
fprintf (stderr, "VControl: Attempted to bind to illegal button %d\n", button);
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fprintf (stderr, "VControl: Attempted to bind to illegal port %d\n", port);
|
fprintf (stderr, "VControl: Attempted to bind to illegal port %d\n", port);
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -470,7 +541,7 @@ VControl_RemoveJoyButtonBinding (int port, int button, int *target)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
int
|
||||||
VControl_AddJoyHatBinding (int port, int which, Uint8 dir, int *target)
|
VControl_AddJoyHatBinding (int port, int which, Uint8 dir, int *target)
|
||||||
{
|
{
|
||||||
if (port >= 0 && port < joycount)
|
if (port >= 0 && port < joycount)
|
||||||
@@ -499,16 +570,20 @@ VControl_AddJoyHatBinding (int port, int which, Uint8 dir, int *target)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
fprintf (stderr, "VControl: Attempted to bind to illegal direction\n");
|
fprintf (stderr, "VControl: Attempted to bind to illegal direction\n");
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fprintf (stderr, "VControl: Attempted to bind to illegal hat %d\n", which);
|
fprintf (stderr, "VControl: Attempted to bind to illegal hat %d\n", which);
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fprintf (stderr, "VControl: Attempted to bind to illegal port %d\n", port);
|
fprintf (stderr, "VControl: Attempted to bind to illegal port %d\n", port);
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -562,13 +637,13 @@ VControl_RemoveAllBindings ()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
VControl_ProcessKeyDown (int symbol)
|
VControl_ProcessKeyDown (SDLKey symbol)
|
||||||
{
|
{
|
||||||
_activate (bindings[symbol]);
|
_activate (bindings[symbol]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
VControl_ProcessKeyUp (int symbol)
|
VControl_ProcessKeyUp (SDLKey symbol)
|
||||||
{
|
{
|
||||||
_deactivate (bindings[symbol]);
|
_deactivate (bindings[symbol]);
|
||||||
}
|
}
|
||||||
@@ -847,6 +922,7 @@ VControl_Dump (FILE *out)
|
|||||||
*
|
*
|
||||||
* configline <- IDNAME binding
|
* configline <- IDNAME binding
|
||||||
* | "joystick" NUM "threshold" NUM
|
* | "joystick" NUM "threshold" NUM
|
||||||
|
* | "version" NUM
|
||||||
*
|
*
|
||||||
* binding <- "key" KEYNAME
|
* binding <- "key" KEYNAME
|
||||||
* | "joystick" NUM joybinding
|
* | "joystick" NUM joybinding
|
||||||
@@ -1089,7 +1165,10 @@ _parse_joybinding (parse_state *state, int *target)
|
|||||||
int polarity = _consume_polarity (state);
|
int polarity = _consume_polarity (state);
|
||||||
if (!state->error)
|
if (!state->error)
|
||||||
{
|
{
|
||||||
VControl_AddJoyAxisBinding (sticknum, axisnum, polarity, target);
|
if (VControl_AddJoyAxisBinding (sticknum, axisnum, polarity, target))
|
||||||
|
{
|
||||||
|
state->error = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1100,7 +1179,10 @@ _parse_joybinding (parse_state *state, int *target)
|
|||||||
buttonnum = _consume_num (state);
|
buttonnum = _consume_num (state);
|
||||||
if (!state->error)
|
if (!state->error)
|
||||||
{
|
{
|
||||||
VControl_AddJoyButtonBinding (sticknum, buttonnum, target);
|
if (VControl_AddJoyButtonBinding (sticknum, buttonnum, target))
|
||||||
|
{
|
||||||
|
state->error = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (!stricmp (state->token, "hat"))
|
else if (!stricmp (state->token, "hat"))
|
||||||
@@ -1113,7 +1195,10 @@ _parse_joybinding (parse_state *state, int *target)
|
|||||||
Uint8 dir = _consume_dir (state);
|
Uint8 dir = _consume_dir (state);
|
||||||
if (!state->error)
|
if (!state->error)
|
||||||
{
|
{
|
||||||
VControl_AddJoyHatBinding (sticknum, hatnum, dir, target);
|
if (VControl_AddJoyHatBinding (sticknum, hatnum, dir, target))
|
||||||
|
{
|
||||||
|
state->error = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1138,7 +1223,10 @@ _parse_binding (parse_state *state)
|
|||||||
keysym = _consume_keyname (state);
|
keysym = _consume_keyname (state);
|
||||||
if (!state->error)
|
if (!state->error)
|
||||||
{
|
{
|
||||||
VControl_AddKeyBinding (keysym, target);
|
if (VControl_AddKeyBinding (keysym, target))
|
||||||
|
{
|
||||||
|
state->error = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (!stricmp (state->token, "joystick"))
|
else if (!stricmp (state->token, "joystick"))
|
||||||
@@ -1171,26 +1259,46 @@ _parse_config_line (parse_state *state)
|
|||||||
if (!state->error) threshold = _consume_num (state);
|
if (!state->error) threshold = _consume_num (state);
|
||||||
if (!state->error)
|
if (!state->error)
|
||||||
{
|
{
|
||||||
VControl_SetJoyThreshold (sticknum, threshold);
|
if (VControl_SetJoyThreshold (sticknum, threshold))
|
||||||
|
{
|
||||||
|
state->error = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!state->error)
|
||||||
|
{
|
||||||
|
validlines++;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!stricmp (state->token, "version"))
|
||||||
|
{
|
||||||
|
_consume (state, "version");
|
||||||
|
version = _consume_num (state);
|
||||||
|
if (!state->error)
|
||||||
|
{
|
||||||
|
validlines++;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/* Otherwise, it must be a binding */
|
/* Otherwise, it must be a binding */
|
||||||
_parse_binding (state);
|
_parse_binding (state);
|
||||||
|
if (!state->error)
|
||||||
|
{
|
||||||
|
validlines++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
VControl_ReadConfiguration (uio_Stream *in)
|
VControl_ReadConfiguration (uio_Stream *in)
|
||||||
{
|
{
|
||||||
parse_state ps;
|
parse_state ps;
|
||||||
int errors;
|
|
||||||
if (!in)
|
if (!in)
|
||||||
{
|
{
|
||||||
fprintf (stderr, "VControl: Invalid configuration file stream\n");
|
fprintf (stderr, "VControl: Invalid configuration file stream\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
ps.linenum = 0;
|
ps.linenum = 0;
|
||||||
errors = 0;
|
errors = version = validlines = 0;
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
_next_line (&ps, in);
|
_next_line (&ps, in);
|
||||||
@@ -1205,6 +1313,30 @@ VControl_ReadConfiguration (uio_Stream *in)
|
|||||||
return errors;
|
return errors;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
VControl_GetErrorCount (void)
|
||||||
|
{
|
||||||
|
return errors;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
VControl_GetValidCount (void)
|
||||||
|
{
|
||||||
|
return validlines;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
VControl_GetConfigFileVersion (void)
|
||||||
|
{
|
||||||
|
return version;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
VControl_SetConfigFileVersion (int v)
|
||||||
|
{
|
||||||
|
version = v;
|
||||||
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
/* This was kinda handy for proving (lack of) buffer overrun
|
/* This was kinda handy for proving (lack of) buffer overrun
|
||||||
* vulnerabilities, but there's no real need for it otherwise. */
|
* vulnerabilities, but there's no real need for it otherwise. */
|
||||||
|
|||||||
@@ -11,14 +11,14 @@ void VControl_Init (void);
|
|||||||
void VControl_Uninit (void);
|
void VControl_Uninit (void);
|
||||||
|
|
||||||
/* Control of bindings */
|
/* Control of bindings */
|
||||||
void VControl_AddKeyBinding (int symbol, int *target);
|
int VControl_AddKeyBinding (SDLKey symbol, int *target);
|
||||||
void VControl_RemoveKeyBinding (int symbol, int *target);
|
void VControl_RemoveKeyBinding (SDLKey symbol, int *target);
|
||||||
void VControl_AddJoyAxisBinding (int port, int axis, int polarity, int *target);
|
int VControl_AddJoyAxisBinding (int port, int axis, int polarity, int *target);
|
||||||
void VControl_RemoveJoyAxisBinding (int port, int axis, int polarity, int *target);
|
void VControl_RemoveJoyAxisBinding (int port, int axis, int polarity, int *target);
|
||||||
void VControl_SetJoyThreshold (int port, int threshold);
|
int VControl_SetJoyThreshold (int port, int threshold);
|
||||||
void VControl_AddJoyButtonBinding (int port, int button, int *target);
|
int VControl_AddJoyButtonBinding (int port, int button, int *target);
|
||||||
void VControl_RemoveJoyButtonBinding (int port, int button, int *target);
|
void VControl_RemoveJoyButtonBinding (int port, int button, int *target);
|
||||||
void VControl_AddJoyHatBinding (int port, int which, Uint8 dir, int *target);
|
int VControl_AddJoyHatBinding (int port, int which, Uint8 dir, int *target);
|
||||||
void VControl_RemoveJoyHatBinding (int port, int which, Uint8 dir, int *target);
|
void VControl_RemoveJoyHatBinding (int port, int which, Uint8 dir, int *target);
|
||||||
|
|
||||||
void VControl_RemoveAllBindings (void);
|
void VControl_RemoveAllBindings (void);
|
||||||
@@ -27,8 +27,8 @@ void VControl_RemoveAllBindings (void);
|
|||||||
* fabricating an SDL_Event.
|
* fabricating an SDL_Event.
|
||||||
*/
|
*/
|
||||||
void VControl_HandleEvent (const SDL_Event *e);
|
void VControl_HandleEvent (const SDL_Event *e);
|
||||||
void VControl_ProcessKeyDown (int symbol);
|
void VControl_ProcessKeyDown (SDLKey symbol);
|
||||||
void VControl_ProcessKeyUp (int symbol);
|
void VControl_ProcessKeyUp (SDLKey symbol);
|
||||||
void VControl_ProcessJoyButtonDown (int port, int button);
|
void VControl_ProcessJoyButtonDown (int port, int button);
|
||||||
void VControl_ProcessJoyButtonUp (int port, int button);
|
void VControl_ProcessJoyButtonUp (int port, int button);
|
||||||
void VControl_ProcessJoyAxis (int port, int axis, int value);
|
void VControl_ProcessJoyAxis (int port, int axis, int value);
|
||||||
@@ -50,9 +50,15 @@ typedef struct _vcontrol_namebinding {
|
|||||||
|
|
||||||
void VControl_RegisterNameTable (VControl_NameBinding *table);
|
void VControl_RegisterNameTable (VControl_NameBinding *table);
|
||||||
|
|
||||||
|
/* Version number control */
|
||||||
|
int VControl_GetConfigFileVersion (void);
|
||||||
|
void VControl_SetConfigFileVersion (int v);
|
||||||
|
|
||||||
/* Dump a configuration file corresponding to the current bindings and names. */
|
/* Dump a configuration file corresponding to the current bindings and names. */
|
||||||
void VControl_Dump (FILE *out);
|
void VControl_Dump (FILE *out);
|
||||||
/* Read a configuration file. Returns number of errors encountered. */
|
/* Read a configuration file. Returns number of errors encountered. */
|
||||||
int VControl_ReadConfiguration (uio_Stream *in);
|
int VControl_ReadConfiguration (uio_Stream *in);
|
||||||
|
int VControl_GetErrorCount (void);
|
||||||
|
int VControl_GetValidCount (void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user