mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-24 02:30:46 +00:00
- hooked up the event processing for Shadow Warrior, so keyboard input is working now. Mouse movement is not being processed yet.
Also removed some leftover code from the old input system.
This commit is contained in:
parent
caa450dcb9
commit
2da4294ba5
9 changed files with 38 additions and 111 deletions
|
@ -69,7 +69,8 @@ bool G_Responder (event_t *ev)
|
|||
}
|
||||
else
|
||||
{
|
||||
return C_DoKey (ev, &Bindings, &DoubleBindings);
|
||||
return
|
||||
C_DoKey (ev, &Bindings, &DoubleBindings);
|
||||
}
|
||||
}
|
||||
if (cmd && cmd[0] == '+')
|
||||
|
|
|
@ -304,37 +304,6 @@ public:
|
|||
|
||||
};
|
||||
|
||||
typedef enum
|
||||
{
|
||||
dir_North,
|
||||
dir_NorthEast,
|
||||
dir_East,
|
||||
dir_SouthEast,
|
||||
dir_South,
|
||||
dir_SouthWest,
|
||||
dir_West,
|
||||
dir_NorthWest,
|
||||
dir_None
|
||||
} direction;
|
||||
|
||||
struct UserInput
|
||||
{
|
||||
int32_t button0;
|
||||
int32_t button1;
|
||||
direction dir;
|
||||
};
|
||||
|
||||
// Shadow Warrior still uses these. :(
|
||||
inline void CONTROL_GetUserInput(UserInput* inp)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
inline void CONTROL_ClearUserInput(UserInput* inp)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern InputState inputState;
|
||||
|
|
|
@ -268,8 +268,7 @@ playanm(short anim_num)
|
|||
unsigned char *animbuf;
|
||||
int i, j, k, length = 0, numframes = 0;
|
||||
int32_t handle = -1;
|
||||
UserInput uinfo = { FALSE, FALSE, dir_None };
|
||||
|
||||
|
||||
ANIMnum = anim_num;
|
||||
|
||||
inputState.keyFlushChars();
|
||||
|
@ -318,8 +317,6 @@ playanm(short anim_num)
|
|||
while (totalclock < ototalclock)
|
||||
{
|
||||
handleevents();
|
||||
CONTROL_GetUserInput(&uinfo);
|
||||
CONTROL_ClearUserInput(&uinfo);
|
||||
switch (ANIMnum)
|
||||
{
|
||||
case ANIM_INTRO:
|
||||
|
|
|
@ -2247,6 +2247,12 @@ drawscreen(PLAYERp pp)
|
|||
PreUpdatePanel();
|
||||
|
||||
|
||||
if (r_usenewaspect)
|
||||
{
|
||||
newaspect_enable = 1;
|
||||
videoSetCorrectedAspect();
|
||||
}
|
||||
|
||||
smoothratio = min(max(((int32_t) totalclock - ototalclock) * (65536 / synctics),0),65536);
|
||||
|
||||
if (!ScreenSavePic)
|
||||
|
@ -2453,6 +2459,13 @@ drawscreen(PLAYERp pp)
|
|||
SET(sprite[j].cstat, CSTAT_SPRITE_ALIGNMENT_FLOOR);
|
||||
}
|
||||
|
||||
if (r_usenewaspect)
|
||||
{
|
||||
newaspect_enable = 0;
|
||||
videoSetCorrectedAspect();
|
||||
}
|
||||
|
||||
|
||||
// if doing a screen save don't need to process the rest
|
||||
if (ScreenSavePic)
|
||||
{
|
||||
|
|
|
@ -1612,8 +1612,6 @@ void LogoLevel(void)
|
|||
{
|
||||
char called;
|
||||
int fin;
|
||||
UserInput uinfo = { FALSE, FALSE, dir_None };
|
||||
|
||||
|
||||
DSPRINTF(ds,"LogoLevel...");
|
||||
MONO_PRINT(ds);
|
||||
|
@ -1652,8 +1650,6 @@ void LogoLevel(void)
|
|||
while (TRUE)
|
||||
{
|
||||
handleevents();
|
||||
CONTROL_GetUserInput(&uinfo);
|
||||
CONTROL_ClearUserInput(&uinfo);
|
||||
if (quitevent) { QuitFlag = TRUE; break; }
|
||||
|
||||
// taken from top of faketimerhandler
|
||||
|
@ -2259,7 +2255,6 @@ void BonusScreen(PLAYERp pp)
|
|||
int Tics = 0;
|
||||
int line = 0;
|
||||
SWBOOL BonusDone;
|
||||
UserInput uinfo = { FALSE, FALSE, dir_None };
|
||||
|
||||
if (Level < 0) Level = 0;
|
||||
|
||||
|
@ -2298,8 +2293,6 @@ void BonusScreen(PLAYERp pp)
|
|||
}
|
||||
ototalclock += limit;
|
||||
|
||||
CONTROL_GetUserInput(&uinfo);
|
||||
CONTROL_ClearUserInput(&uinfo);
|
||||
if (I_GeneralTrigger())
|
||||
{
|
||||
I_GeneralTriggerClear();
|
||||
|
@ -2905,16 +2898,15 @@ void RunLevel(void)
|
|||
{
|
||||
handleevents();
|
||||
OSD_DispatchQueued();
|
||||
D_ProcessEvents();
|
||||
faketimerhandler();
|
||||
|
||||
if (quitevent) QuitFlag = TRUE;
|
||||
|
||||
//MONO_PRINT("Before MoveLoop");
|
||||
MoveLoop();
|
||||
//MONO_PRINT("After MoveLoop");
|
||||
//MONO_PRINT("Before DrawScreen");
|
||||
|
||||
|
||||
drawscreen(Player + screenpeek);
|
||||
//MONO_PRINT("After DrawScreen");
|
||||
|
||||
if (QuitFlag)
|
||||
break;
|
||||
|
|
|
@ -44,6 +44,7 @@ Prepared for public release: 03/28/2005 - Charlie Wiederhold, 3D Realms
|
|||
#include "pal.h"
|
||||
#include "demo.h"
|
||||
#include "input.h"
|
||||
#include "keydef.h"
|
||||
|
||||
#include "gamecontrol.h"
|
||||
#include "gamedefs.h"
|
||||
|
@ -558,7 +559,7 @@ int SENSITIVITY = SENSE_MIN + (SENSE_DEFAULT *SENSE_MUL);
|
|||
#define VOL_MUL 16
|
||||
|
||||
// User input data for all devices
|
||||
UserInput mnu_input, mnu_input_buffered, order_input_buffered;
|
||||
//UserInput order_input_buffered;
|
||||
|
||||
// Menu function call back pointer for multiplay menus
|
||||
SWBOOL(*cust_callback)(UserCall call, MenuItem_p item);
|
||||
|
@ -717,14 +718,10 @@ SWBOOL MNU_KeySetupCustom(UserCall call, MenuItem *item)
|
|||
const char *morestr = "More...";
|
||||
const char *p;
|
||||
|
||||
UserInput inpt = {FALSE,FALSE,dir_None};
|
||||
CONTROL_GetUserInput(&inpt);
|
||||
|
||||
if (inputState.GetKeyStatus(KEYSC_ESC) || inpt.button1)
|
||||
if (inputState.GetKeyStatus(KEYSC_ESC))
|
||||
{
|
||||
inputState.ClearKeyStatus(sc_Escape);
|
||||
cust_callback = NULL;
|
||||
CONTROL_ClearUserInput(&inpt);
|
||||
return TRUE;
|
||||
}
|
||||
else if (inputState.GetKeyStatus(sc_Delete))
|
||||
|
@ -781,7 +778,6 @@ SWBOOL MNU_KeySetupCustom(UserCall call, MenuItem *item)
|
|||
currentcol = 0;
|
||||
}
|
||||
|
||||
CONTROL_ClearUserInput(&inpt);
|
||||
|
||||
if (NUMGAMEFUNCTIONS > PGSIZ)
|
||||
{
|
||||
|
@ -843,6 +839,7 @@ SWBOOL MNU_KeySetupCustom(UserCall call, MenuItem *item)
|
|||
|
||||
static int MNU_SelectButtonFunction(const char *buttonname, int *currentfunc)
|
||||
{
|
||||
// Todo: Branch off to the generic keybind menu.
|
||||
const int PGSIZ = 9;
|
||||
const char *strs[] = { "Select the function to assign to", "%s", "or ESCAPE to cancel." };
|
||||
int topitem = 0, botitem = NUMGAMEFUNCTIONS-1;
|
||||
|
@ -850,10 +847,7 @@ static int MNU_SelectButtonFunction(const char *buttonname, int *currentfunc)
|
|||
short w, h=0;
|
||||
int returnval = 0;
|
||||
|
||||
UserInput inpt = {FALSE,FALSE,dir_None};
|
||||
CONTROL_GetUserInput(&inpt);
|
||||
|
||||
if (inpt.button1)
|
||||
if (inputState.GetKeyStatus(sc_Escape))
|
||||
{
|
||||
inputState.ClearKeyStatus(sc_Escape);
|
||||
returnval = -1;
|
||||
|
@ -890,13 +884,12 @@ static int MNU_SelectButtonFunction(const char *buttonname, int *currentfunc)
|
|||
I_MenuUpClear();
|
||||
*currentfunc = max(0, *currentfunc - 1);
|
||||
}
|
||||
else if (inpt.dir == dir_South)
|
||||
else if (I_MenuDown())
|
||||
{
|
||||
I_MenuDownClear();
|
||||
*currentfunc = min(NUMGAMEFUNCTIONS - 1, *currentfunc + 1);
|
||||
}
|
||||
|
||||
CONTROL_ClearUserInput(&inpt);
|
||||
|
||||
if (NUMGAMEFUNCTIONS-1 > PGSIZ)
|
||||
{
|
||||
|
@ -1262,9 +1255,7 @@ SWBOOL
|
|||
MNU_OrderCustom(UserCall call, MenuItem *item)
|
||||
{
|
||||
static signed char on_screen = 0,last_screen = 0;
|
||||
UserInput order_input;
|
||||
static int limitmove=0;
|
||||
UserInput tst_input;
|
||||
SWBOOL select_held = FALSE;
|
||||
int zero = 0;
|
||||
static SWBOOL DidOrderSound = FALSE;
|
||||
|
@ -1332,27 +1323,20 @@ MNU_OrderCustom(UserCall call, MenuItem *item)
|
|||
wanghandle = PlaySound(DIGI_WANGORDER2, &zero, &zero, &zero, v3df_dontpan);
|
||||
}
|
||||
|
||||
order_input.button0 = order_input.button1 = FALSE;
|
||||
order_input.dir = dir_None;
|
||||
|
||||
// Zero out the input structure
|
||||
tst_input.button0 = tst_input.button1 = FALSE;
|
||||
tst_input.dir = dir_None;
|
||||
|
||||
if (!select_held)
|
||||
{
|
||||
CONTROL_GetUserInput(&tst_input);
|
||||
//order_input_buffered.dir = tst_input.dir;
|
||||
// Support a few other keys too
|
||||
if (inputState.GetKeyStatus(KEYSC_SPACE)||inputState.GetKeyStatus(KEYSC_ENTER))
|
||||
{
|
||||
inputState.ClearKeyStatus(KEYSC_SPACE);
|
||||
inputState.ClearKeyStatus(KEYSC_ENTER);
|
||||
tst_input.dir = dir_South;
|
||||
//tst_input.dir = dir_South;
|
||||
}
|
||||
}
|
||||
|
||||
if (order_input_buffered.button0 || order_input_buffered.button1 || order_input_buffered.dir != dir_None)
|
||||
#if 0
|
||||
if (inputState.GetKeyStatus(KEY_MOUSE1))
|
||||
{
|
||||
if (tst_input.button0 == order_input_buffered.button0 &&
|
||||
tst_input.button1 == order_input_buffered.button1 &&
|
||||
|
@ -1383,8 +1367,9 @@ MNU_OrderCustom(UserCall call, MenuItem *item)
|
|||
order_input_buffered.button1 = tst_input.button1;
|
||||
order_input_buffered.dir = tst_input.dir;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (!inputState.GetKeyStatus(KEYSC_ESC) && !order_input_buffered.button1)
|
||||
if (!inputState.GetKeyStatus(KEYSC_ESC))
|
||||
{
|
||||
cust_callback = MNU_OrderCustom;
|
||||
cust_callback_call = call;
|
||||
|
@ -1729,7 +1714,7 @@ MNU_QuitCustom(UserCall call, MenuItem_p item)
|
|||
|
||||
if (!ret)
|
||||
{
|
||||
if (!mnu_input.button1 && !inputState.GetKeyStatus(sc_N))
|
||||
if (!inputState.GetKeyStatus(KEY_MOUSE1) && !inputState.GetKeyStatus(sc_N))
|
||||
{
|
||||
cust_callback = MNU_QuitCustom;
|
||||
cust_callback_call = call;
|
||||
|
@ -1747,7 +1732,7 @@ MNU_QuitCustom(UserCall call, MenuItem_p item)
|
|||
ExitMenus();
|
||||
}
|
||||
|
||||
if (inputState.GetKeyStatus(sc_Y) || inputState.GetKeyStatus(sc_Enter) || mnu_input.button0)
|
||||
if (inputState.GetKeyStatus(sc_Y) || inputState.GetKeyStatus(sc_Enter) || inputState.GetKeyStatus(KEY_MOUSE1))
|
||||
{
|
||||
if (CommPlayers >= 2)
|
||||
MultiPlayQuitFlag = TRUE;
|
||||
|
@ -2197,7 +2182,6 @@ signed char MNU_InputSmallString(char *name, short pix_width)
|
|||
{
|
||||
char ch;
|
||||
short w, h;
|
||||
UserInput con_input;
|
||||
|
||||
#define ascii_backspace 8
|
||||
#define ascii_esc 27
|
||||
|
@ -2205,14 +2189,11 @@ signed char MNU_InputSmallString(char *name, short pix_width)
|
|||
|
||||
if (!MoveSkip4 && !MessageInputMode)
|
||||
{
|
||||
con_input.dir = dir_None;
|
||||
CONTROL_GetUserInput(&con_input);
|
||||
|
||||
if (con_input.dir == dir_North)
|
||||
if (I_MenuUp())
|
||||
{
|
||||
CON_CommandHistory(1);
|
||||
}
|
||||
else if (con_input.dir == dir_South)
|
||||
else if (I_MenuDown())
|
||||
{
|
||||
CON_CommandHistory(-1);
|
||||
}
|
||||
|
@ -2290,11 +2271,7 @@ static SWBOOL MNU_Dialog(void)
|
|||
y += (h + 3);
|
||||
}
|
||||
|
||||
mnu_input.button0 = mnu_input.button1 = FALSE;
|
||||
CONTROL_ClearUserInput(&mnu_input);
|
||||
CONTROL_GetUserInput(&mnu_input);
|
||||
|
||||
if (inputState.GetKeyStatus(sc_Y) || inputState.GetKeyStatus(sc_Enter) || mnu_input.button0)
|
||||
if (inputState.GetKeyStatus(sc_Y) || inputState.GetKeyStatus(sc_Enter) || inputState.GetKeyStatus(KEY_MOUSE1))
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
|
@ -3655,10 +3632,8 @@ MNU_SetupMenu(void)
|
|||
menuarray[0] = currentmenu = rootmenu;
|
||||
if (ControlPanelType == ct_mainmenu)
|
||||
|
||||
mnu_input_buffered.button0 = mnu_input_buffered.button1 = FALSE;
|
||||
mnu_input_buffered.dir = dir_None;
|
||||
order_input_buffered.button0 = order_input_buffered.button1 = FALSE;
|
||||
order_input_buffered.dir = dir_None;
|
||||
//order_input_buffered.button0 = order_input_buffered.button1 = FALSE;
|
||||
//order_input_buffered.dir = dir_None;
|
||||
ResetKeys();
|
||||
|
||||
// custom cust_callback starts out as null
|
||||
|
@ -4158,10 +4133,6 @@ void MNU_DoMenu( CTLType type, PLAYERp pp )
|
|||
//ControlPanelType = type;
|
||||
SetupMenu();
|
||||
|
||||
// Zero out the input structure
|
||||
mnu_input.button0 = mnu_input.button1 = FALSE;
|
||||
mnu_input.dir = dir_None;
|
||||
|
||||
// should not get input if you are editing a save game slot
|
||||
if (totalclock < limitmove) limitmove = (int32_t) totalclock;
|
||||
|
||||
|
@ -4216,7 +4187,6 @@ void MNU_DoMenu( CTLType type, PLAYERp pp )
|
|||
if (!FX_SoundActive(handle4))
|
||||
handle4 = PlaySound(DIGI_STAR,&zero,&zero,&zero,v3df_dontpan);
|
||||
resetitem = TRUE;
|
||||
mnu_input_buffered.button0 = mnu_input_buffered.button1 = FALSE;
|
||||
}
|
||||
else
|
||||
resetitem = FALSE;
|
||||
|
|
|
@ -8050,12 +8050,8 @@ domovethings(void)
|
|||
JS_ProcessEchoSpot();
|
||||
}
|
||||
|
||||
FAKETIMERHANDLER();
|
||||
|
||||
SpriteControl();
|
||||
|
||||
FAKETIMERHANDLER();
|
||||
|
||||
TRAVERSE_CONNECT(pnum)
|
||||
{
|
||||
extern short screenpeek;
|
||||
|
@ -8085,8 +8081,6 @@ domovethings(void)
|
|||
#endif
|
||||
}
|
||||
|
||||
FAKETIMERHANDLER();
|
||||
|
||||
// do for moving sectors
|
||||
DoPlayerSectorUpdatePreMove(pp);
|
||||
ChopsCheck(pp);
|
||||
|
|
|
@ -3306,7 +3306,6 @@ void movelava(char *dapic)
|
|||
|
||||
for (x = LAVASIZ - 1; x >= 0; x--)
|
||||
{
|
||||
FAKETIMERHANDLER();
|
||||
offs = (x + 1) * (LAVASIZ + 2) + 1;
|
||||
ptr = (char *)((x << LAVALOGSIZ) + (intptr_t) dapic);
|
||||
|
||||
|
|
|
@ -6788,8 +6788,7 @@ SpriteControl(void)
|
|||
#endif
|
||||
}
|
||||
|
||||
FAKETIMERHANDLER();
|
||||
|
||||
|
||||
// Items and skip2 things
|
||||
if (MoveSkip2 == 0)
|
||||
{
|
||||
|
@ -6812,8 +6811,6 @@ SpriteControl(void)
|
|||
}
|
||||
}
|
||||
|
||||
FAKETIMERHANDLER();
|
||||
|
||||
if (MoveSkip2 == 0) // limit to 20 times a second
|
||||
{
|
||||
// move bad guys around
|
||||
|
@ -6868,9 +6865,6 @@ SpriteControl(void)
|
|||
}
|
||||
}
|
||||
|
||||
FAKETIMERHANDLER();
|
||||
|
||||
|
||||
// Skip4 things
|
||||
if (MoveSkip4 == 0) // limit to 10 times a second
|
||||
{
|
||||
|
@ -6893,8 +6887,6 @@ SpriteControl(void)
|
|||
}
|
||||
}
|
||||
|
||||
FAKETIMERHANDLER();
|
||||
|
||||
TRAVERSE_SPRITE_STAT(headspritestat[STAT_NO_STATE], i, nexti)
|
||||
{
|
||||
if (User[i] && User[i]->ActorActionFunc)
|
||||
|
|
Loading…
Reference in a new issue