mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Replace F12 with standard button controls
- Removes the function of the F12 key. - 'A' button to view next player, 'X' button to view previous player. - Pressing the A or X buttons temporarily disables director cam, meaning your view stays on that player. - R button to reenable director cam. - You can no longer use spectator movement to shake your viewpoint off of another player.
This commit is contained in:
parent
2d063445a6
commit
898cac9515
1 changed files with 27 additions and 46 deletions
73
src/g_game.c
73
src/g_game.c
|
|
@ -61,6 +61,7 @@
|
|||
#include "k_specialstage.h"
|
||||
#include "k_bot.h"
|
||||
#include "doomstat.h"
|
||||
#include "k_director.h"
|
||||
|
||||
#ifdef HAVE_DISCORDRPC
|
||||
#include "discord.h"
|
||||
|
|
@ -1210,6 +1211,28 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
|
|||
goto aftercmdinput;
|
||||
}
|
||||
|
||||
if (displayplayers[forplayer] != g_localplayers[forplayer])
|
||||
{
|
||||
if (M_MenuButtonPressed(forplayer, MBT_A))
|
||||
{
|
||||
G_AdjustView(ssplayer, 1, true);
|
||||
K_ToggleDirector(false);
|
||||
}
|
||||
|
||||
if (M_MenuButtonPressed(forplayer, MBT_X))
|
||||
{
|
||||
G_AdjustView(ssplayer, -1, true);
|
||||
K_ToggleDirector(false);
|
||||
}
|
||||
|
||||
if (M_MenuButtonPressed(forplayer, MBT_R))
|
||||
{
|
||||
K_ToggleDirector(true);
|
||||
}
|
||||
|
||||
goto aftercmdinput;
|
||||
}
|
||||
|
||||
if (K_PlayerUsesBotMovement(player))
|
||||
{
|
||||
// Bot ticcmd is generated by K_BuildBotTiccmd
|
||||
|
|
@ -1398,16 +1421,6 @@ aftercmdinput:
|
|||
cmd->throwdir = -KART_FULLTURN;
|
||||
|
||||
G_DoAnglePrediction(cmd, realtics, ssplayer, player);
|
||||
|
||||
// Reset away view if a command is given.
|
||||
if ((cmd->forwardmove || cmd->buttons)
|
||||
&& !r_splitscreen && displayplayers[0] != consoleplayer && ssplayer == 1)
|
||||
{
|
||||
// Call ViewpointSwitch hooks here.
|
||||
// The viewpoint was forcibly changed.
|
||||
LUA_HookViewpointSwitch(player, &players[consoleplayer], true);
|
||||
displayplayers[0] = consoleplayer;
|
||||
}
|
||||
}
|
||||
|
||||
ticcmd_t *G_CopyTiccmd(ticcmd_t* dest, const ticcmd_t* src, const size_t n)
|
||||
|
|
@ -1740,44 +1753,8 @@ boolean G_Responder(event_t *ev)
|
|||
return true; // chat ate the event
|
||||
}
|
||||
|
||||
// allow spy mode changes even during the demo
|
||||
if (gamestate == GS_LEVEL && ev->type == ev_keydown
|
||||
&& (ev->data1 == KEY_F12 /*|| ev->data1 == gamecontrol[0][gc_viewpoint][0] || ev->data1 == gamecontrol[0][gc_viewpoint][1]*/))
|
||||
{
|
||||
if (!demo.playback && (r_splitscreen || !netgame))
|
||||
g_localplayers[0] = consoleplayer;
|
||||
else
|
||||
{
|
||||
G_AdjustView(1, 1, true);
|
||||
|
||||
// change statusbar also if playing back demo
|
||||
if (demo.quitafterplaying)
|
||||
ST_changeDemoView();
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (gamestate == GS_LEVEL && ev->type == ev_keydown && multiplayer && demo.playback && !demo.freecam)
|
||||
{
|
||||
/*
|
||||
if (ev->data1 == gamecontrol[1][gc_viewpoint][0] || ev->data1 == gamecontrol[1][gc_viewpoint][1])
|
||||
{
|
||||
G_AdjustView(2, 1, true);
|
||||
return true;
|
||||
}
|
||||
else if (ev->data1 == gamecontrol[2][gc_viewpoint][0] || ev->data1 == gamecontrol[2][gc_viewpoint][1])
|
||||
{
|
||||
G_AdjustView(3, 1, true);
|
||||
return true;
|
||||
}
|
||||
else if (ev->data1 == gamecontrol[3][gc_viewpoint][0] || ev->data1 == gamecontrol[3][gc_viewpoint][1])
|
||||
{
|
||||
G_AdjustView(4, 1, true);
|
||||
return true;
|
||||
}
|
||||
*/
|
||||
|
||||
// Allow pausing
|
||||
if (
|
||||
//ev->data1 == gamecontrol[0][gc_pause][0]
|
||||
|
|
@ -2071,6 +2048,10 @@ void G_ResetView(UINT8 viewnum, INT32 playernum, boolean onlyactive)
|
|||
|
||||
if (viewnum == 1 && demo.playback)
|
||||
consoleplayer = displayplayers[0];
|
||||
|
||||
// change statusbar also if playing back demo
|
||||
if (demo.quitafterplaying)
|
||||
ST_changeDemoView();
|
||||
}
|
||||
|
||||
//
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue