From 9af0a3c8fd56dcf170698c3867a376a822f39d08 Mon Sep 17 00:00:00 2001 From: Simon Howard Date: Sat, 24 Sep 2011 17:55:32 +0000 Subject: Add -testcontrols to Hexen. Subversion-branch: /branches/v2-branch Subversion-revision: 2398 --- src/hexen/g_game.c | 19 +++++++++++++++++++ src/hexen/h2_main.c | 19 +++++++++++++++++++ src/hexen/h2def.h | 3 +++ src/hexen/mn_menu.c | 12 ++++++++++++ 4 files changed, 53 insertions(+) diff --git a/src/hexen/g_game.c b/src/hexen/g_game.c index 190fdf76..fa115e56 100644 --- a/src/hexen/g_game.c +++ b/src/hexen/g_game.c @@ -175,6 +175,9 @@ static skill_t TempSkill; static int TempEpisode; static int TempMap; +boolean testcontrols = false; +int testcontrols_mousespeed; + //============================================================================= /* ==================== @@ -535,6 +538,12 @@ void G_BuildTiccmd(ticcmd_t * cmd) { cmd->angleturn -= mousex * 0x8; } + + if (mousex == 0) + { + testcontrols_mousespeed = 0; + } + forward += mousey; mousex = mousey = 0; @@ -632,6 +641,11 @@ void G_DoLoadLevel(void) sendpause = sendsave = paused = false; memset(mousebuttons, 0, sizeof(mousebuttons)); memset(joybuttons, 0, sizeof(joybuttons)); + + if (testcontrols) + { + P_SetMessage(&players[consoleplayer], "PRESS ESCAPE TO QUIT.", false); + } } @@ -693,6 +707,11 @@ boolean G_Responder(event_t * ev) } } + if (ev->type == ev_mouse) + { + testcontrols_mousespeed = abs(ev->data2); + } + switch (ev->type) { case ev_keydown: diff --git a/src/hexen/h2_main.c b/src/hexen/h2_main.c index c78d662a..20720e4e 100644 --- a/src/hexen/h2_main.c +++ b/src/hexen/h2_main.c @@ -92,6 +92,7 @@ static void DrawAndBlit(void); static void ExecOptionSCRIPTS(char **args, int tag); static void ExecOptionSKILL(char **args, int tag); static void ExecOptionPLAYDEMO(char **args, int tag); +static void ExecOptionTestControls(char **args, int tag); static void CreateSavePath(void); static void WarpCheck(void); @@ -137,6 +138,7 @@ static execOpt_t ExecOptions[] = { {"-skill", ExecOptionSKILL, 1, 0}, {"-playdemo", ExecOptionPLAYDEMO, 1, 0}, {"-timedemo", ExecOptionPLAYDEMO, 1, 0}, + {"-testcontrols", ExecOptionTestControls, 0, 0}, {NULL, NULL, 0, 0} // Terminator }; @@ -515,6 +517,18 @@ static void ExecOptionPLAYDEMO(char **args, int tag) ST_Message("Playing demo %s.\n", file); } +//========================================================================== +// +// ExecOptionTestControls +// +//========================================================================== + +static void ExecOptionTestControls(char **args, int tag) +{ + autostart = true; + testcontrols = true; +} + //========================================================================== // // ExecOptionSCRIPTS @@ -656,6 +670,11 @@ static void DrawAndBlit(void) break; } + if (testcontrols) + { + V_DrawMouseSpeedBox(testcontrols_mousespeed); + } + if (paused && !MenuActive && !askforquit) { if (!netgame) diff --git a/src/hexen/h2def.h b/src/hexen/h2def.h index 5993fe55..7910cde8 100644 --- a/src/hexen/h2def.h +++ b/src/hexen/h2def.h @@ -739,6 +739,9 @@ extern int startepisode; extern int startmap; extern boolean autostart; +extern boolean testcontrols; +extern int testcontrols_mousespeed; + /* =============================================================================== diff --git a/src/hexen/mn_menu.c b/src/hexen/mn_menu.c index 9f37df66..c7a8bef9 100644 --- a/src/hexen/mn_menu.c +++ b/src/hexen/mn_menu.c @@ -1142,6 +1142,18 @@ boolean MN_Responder(event_t * event) extern void G_CheckDemoStatus(void); char *textBuffer; + if (testcontrols) + { + if (event->type == ev_quit + || (event->type == ev_keydown + && (event->data1 == key_menu_activate + || event->data1 == key_menu_quit))) + { + I_Quit(); + return true; + } + } + // "close" button pressed on window? if (event->type == ev_quit) { -- cgit v1.2.3