First part of revamp: Removing Camera Rotate L/R keys, and giving the two situations where they had any unique functionality (Analog mode and NiGHTS objectplace) suitable replacements.

This commit is contained in:
toasterbabe 2017-04-14 20:29:08 +01:00
parent 63a16355da
commit 99a04cca9c
6 changed files with 31 additions and 65 deletions

View File

@ -1011,13 +1011,13 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics)
if (turnleft) if (turnleft)
cmd->angleturn = (INT16)(cmd->angleturn + angleturn[tspeed]); cmd->angleturn = (INT16)(cmd->angleturn + angleturn[tspeed]);
} }
if (cv_analog.value || twodlevel if (twodlevel
|| (player->mo && (player->mo->flags2 & MF2_TWOD)) || (player->mo && (player->mo->flags2 & MF2_TWOD))
|| (!demoplayback && (player->climbing || (!demoplayback && (player->climbing
|| (player->powers[pw_carry] == CR_NIGHTSMODE) || (player->powers[pw_carry] == CR_NIGHTSMODE)
|| (player->pflags & (PF_SLIDING|PF_FORCESTRAFE))))) // Analog || (player->pflags & (PF_SLIDING|PF_FORCESTRAFE))))) // Analog
forcestrafe = true; forcestrafe = true;
if (forcestrafe) // Analog if (forcestrafe)
{ {
if (turnright) if (turnright)
side += sidemove[speed]; side += sidemove[speed];
@ -1030,6 +1030,13 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics)
side += ((axis * sidemove[1]) >> 10); side += ((axis * sidemove[1]) >> 10);
} }
} }
else if (cv_analog.value) // Analog
{
if (turnright)
cmd->buttons |= BT_CAMRIGHT;
if (turnleft)
cmd->buttons |= BT_CAMLEFT;
}
else else
{ {
if (turnright) if (turnright)
@ -1117,15 +1124,6 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics)
if (PLAYER1INPUTDOWN(gc_use)) if (PLAYER1INPUTDOWN(gc_use))
cmd->buttons |= BT_USE; cmd->buttons |= BT_USE;
// Camera Controls
if (cv_debug || cv_analog.value || demoplayback || objectplacing || player->powers[pw_carry] == CR_NIGHTSMODE)
{
if (PLAYER1INPUTDOWN(gc_camleft))
cmd->buttons |= BT_CAMLEFT;
if (PLAYER1INPUTDOWN(gc_camright))
cmd->buttons |= BT_CAMRIGHT;
}
if (PLAYER1INPUTDOWN(gc_camreset)) if (PLAYER1INPUTDOWN(gc_camreset))
{ {
if (camera.chase && !resetdown) if (camera.chase && !resetdown)
@ -1225,9 +1223,10 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics)
cmd->sidemove = (SINT8)(cmd->sidemove + side); cmd->sidemove = (SINT8)(cmd->sidemove + side);
if (cv_analog.value) { if (cv_analog.value) {
cmd->angleturn = (INT16)(thiscam->angle >> 16);
if (player->awayviewtics) if (player->awayviewtics)
cmd->angleturn = (INT16)(player->awayviewmobj->angle >> 16); cmd->angleturn = (INT16)(player->awayviewmobj->angle >> 16);
else
cmd->angleturn = (INT16)(thiscam->angle >> 16);
} }
else else
{ {
@ -1301,7 +1300,7 @@ void G_BuildTiccmd2(ticcmd_t *cmd, INT32 realtics)
if (turnleft) if (turnleft)
cmd->angleturn = (INT16)(cmd->angleturn + angleturn[tspeed]); cmd->angleturn = (INT16)(cmd->angleturn + angleturn[tspeed]);
} }
if (cv_analog2.value || twodlevel if (twodlevel
|| (player->mo && (player->mo->flags2 & MF2_TWOD)) || (player->mo && (player->mo->flags2 & MF2_TWOD))
|| player->climbing || player->climbing
|| (player->powers[pw_carry] == CR_NIGHTSMODE) || (player->powers[pw_carry] == CR_NIGHTSMODE)
@ -1320,6 +1319,13 @@ void G_BuildTiccmd2(ticcmd_t *cmd, INT32 realtics)
side += ((axis * sidemove[1]) >> 10); side += ((axis * sidemove[1]) >> 10);
} }
} }
else if (cv_analog2.value) // Analog
{
if (turnright)
cmd->buttons |= BT_CAMRIGHT;
if (turnleft)
cmd->buttons |= BT_CAMLEFT;
}
else else
{ {
if (turnright) if (turnright)
@ -1404,15 +1410,6 @@ void G_BuildTiccmd2(ticcmd_t *cmd, INT32 realtics)
if (PLAYER2INPUTDOWN(gc_use)) if (PLAYER2INPUTDOWN(gc_use))
cmd->buttons |= BT_USE; cmd->buttons |= BT_USE;
// Camera Controls
if (cv_debug || cv_analog2.value || player->powers[pw_carry] == CR_NIGHTSMODE)
{
if (PLAYER2INPUTDOWN(gc_camleft))
cmd->buttons |= BT_CAMLEFT;
if (PLAYER2INPUTDOWN(gc_camright))
cmd->buttons |= BT_CAMRIGHT;
}
if (PLAYER2INPUTDOWN(gc_camreset)) if (PLAYER2INPUTDOWN(gc_camreset))
{ {
if (camera2.chase && !resetdown) if (camera2.chase && !resetdown)
@ -1524,9 +1521,10 @@ void G_BuildTiccmd2(ticcmd_t *cmd, INT32 realtics)
} }
if (cv_analog2.value) { if (cv_analog2.value) {
cmd->angleturn = (INT16)(thiscam->angle >> 16);
if (player->awayviewtics) if (player->awayviewtics)
cmd->angleturn = (INT16)(player->awayviewmobj->angle >> 16); cmd->angleturn = (INT16)(player->awayviewmobj->angle >> 16);
else
cmd->angleturn = (INT16)(thiscam->angle >> 16);
} }
else else
{ {

View File

@ -977,8 +977,6 @@ static const char *gamecontrolname[num_gamecontrols] =
"tossflag", "tossflag",
"use", "use",
"camtoggle", "camtoggle",
"camleft",
"camright",
"camreset", "camreset",
"lookup", "lookup",
"lookdown", "lookdown",
@ -1074,8 +1072,6 @@ void G_Controldefault(void)
gamecontrol[gc_use ][0] = KEY_JOY1+1; //B gamecontrol[gc_use ][0] = KEY_JOY1+1; //B
gamecontrol[gc_use ][1] = '.'; gamecontrol[gc_use ][1] = '.';
gamecontrol[gc_camtoggle ][1] = ','; gamecontrol[gc_camtoggle ][1] = ',';
gamecontrol[gc_camleft ][0] = 'o';
gamecontrol[gc_camright ][0] = 'p';
gamecontrol[gc_camreset ][0] = 'c'; gamecontrol[gc_camreset ][0] = 'c';
gamecontrol[gc_lookup ][0] = KEY_PGUP; gamecontrol[gc_lookup ][0] = KEY_PGUP;
gamecontrol[gc_lookdown ][0] = KEY_PGDN; gamecontrol[gc_lookdown ][0] = KEY_PGDN;
@ -1178,8 +1174,6 @@ void G_Controldefault(void)
gamecontrol[gc_tossflag ][0] = '\''; gamecontrol[gc_tossflag ][0] = '\'';
gamecontrol[gc_use ][0] = KEY_LSHIFT; gamecontrol[gc_use ][0] = KEY_LSHIFT;
gamecontrol[gc_camtoggle ][0] = 'v'; gamecontrol[gc_camtoggle ][0] = 'v';
gamecontrol[gc_camleft ][0] = '[';
gamecontrol[gc_camright ][0] = ']';
gamecontrol[gc_camreset ][0] = 'r'; gamecontrol[gc_camreset ][0] = 'r';
gamecontrol[gc_lookup ][0] = KEY_UPARROW; gamecontrol[gc_lookup ][0] = KEY_UPARROW;
gamecontrol[gc_lookdown ][0] = KEY_DOWNARROW; gamecontrol[gc_lookdown ][0] = KEY_DOWNARROW;

View File

@ -105,8 +105,6 @@ typedef enum
gc_tossflag, gc_tossflag,
gc_use, gc_use,
gc_camtoggle, gc_camtoggle,
gc_camleft,
gc_camright,
gc_camreset, gc_camreset,
gc_lookup, gc_lookup,
gc_lookdown, gc_lookdown,

View File

@ -968,7 +968,7 @@ void OP_NightsObjectplace(player_t *player)
if (player->pflags & PF_ATTACKDOWN) if (player->pflags & PF_ATTACKDOWN)
{ {
// Are ANY objectplace buttons pressed? If no, remove flag. // Are ANY objectplace buttons pressed? If no, remove flag.
if (!(cmd->buttons & (BT_ATTACK|BT_TOSSFLAG|BT_USE|BT_CAMRIGHT|BT_CAMLEFT))) if (!(cmd->buttons & (BT_ATTACK|BT_TOSSFLAG|BT_USE|BT_WEAPONNEXT|BT_WEAPONPREV)))
player->pflags &= ~PF_ATTACKDOWN; player->pflags &= ~PF_ATTACKDOWN;
// Do nothing. // Do nothing.
@ -1019,7 +1019,7 @@ void OP_NightsObjectplace(player_t *player)
} }
// This places a ring! // This places a ring!
if (cmd->buttons & BT_CAMRIGHT) if (cmd->buttons & BT_WEAPONNEXT)
{ {
player->pflags |= PF_ATTACKDOWN; player->pflags |= PF_ATTACKDOWN;
if (!OP_HeightOkay(player, false)) if (!OP_HeightOkay(player, false))
@ -1030,7 +1030,7 @@ void OP_NightsObjectplace(player_t *player)
} }
// This places a wing item! // This places a wing item!
if (cmd->buttons & BT_CAMLEFT) if (cmd->buttons & BT_WEAPONPREV)
{ {
player->pflags |= PF_ATTACKDOWN; player->pflags |= PF_ATTACKDOWN;
if (!OP_HeightOkay(player, false)) if (!OP_HeightOkay(player, false))

View File

@ -1101,8 +1101,6 @@ static menuitem_t OP_CameraControlsMenu[] =
{ {
{IT_CALL | IT_STRING2, NULL, "Look Up", M_ChangeControl, gc_lookup }, {IT_CALL | IT_STRING2, NULL, "Look Up", M_ChangeControl, gc_lookup },
{IT_CALL | IT_STRING2, NULL, "Look Down", M_ChangeControl, gc_lookdown }, {IT_CALL | IT_STRING2, NULL, "Look Down", M_ChangeControl, gc_lookdown },
{IT_CALL | IT_STRING2, NULL, "Rotate Camera L", M_ChangeControl, gc_camleft },
{IT_CALL | IT_STRING2, NULL, "Rotate Camera R", M_ChangeControl, gc_camright },
{IT_CALL | IT_STRING2, NULL, "Center View", M_ChangeControl, gc_centerview }, {IT_CALL | IT_STRING2, NULL, "Center View", M_ChangeControl, gc_centerview },
{IT_CALL | IT_STRING2, NULL, "Mouselook", M_ChangeControl, gc_mouseaiming }, {IT_CALL | IT_STRING2, NULL, "Mouselook", M_ChangeControl, gc_mouseaiming },
{IT_CALL | IT_STRING2, NULL, "Reset Camera", M_ChangeControl, gc_camreset }, {IT_CALL | IT_STRING2, NULL, "Reset Camera", M_ChangeControl, gc_camreset },

View File

@ -8451,46 +8451,24 @@ boolean P_MoveChaseCamera(player_t *player, camera_t *thiscam, boolean resetcall
thiscam->angle = angle; thiscam->angle = angle;
} }
if (!objectplacing && !(twodlevel || (mo->flags2 & MF2_TWOD)) && (player->powers[pw_carry] != CR_NIGHTSMODE) && displayplayer == consoleplayer) if ((((thiscam == &camera) && cv_analog.value) || ((thiscam != &camera) && cv_analog2.value) || demoplayback) && !objectplacing && !(twodlevel || (mo->flags2 & MF2_TWOD)) && (player->powers[pw_carry] != CR_NIGHTSMODE) && displayplayer == consoleplayer)
{ {
#ifdef REDSANALOG #ifdef REDSANALOG
if ((player->cmd.buttons & (BT_CAMLEFT|BT_CAMRIGHT)) == (BT_CAMLEFT|BT_CAMRIGHT)); else if ((player->cmd.buttons & (BT_CAMLEFT|BT_CAMRIGHT)) == (BT_CAMLEFT|BT_CAMRIGHT)); else
#endif #endif
if (player->cmd.buttons & BT_CAMLEFT) if (player->cmd.buttons & BT_CAMRIGHT)
{ {
if (thiscam == &camera) if (thiscam == &camera)
{ angle -= FixedAngle(cv_cam_rotspeed.value*FRACUNIT);
if (cv_analog.value || demoplayback)
angle -= FixedAngle(cv_cam_rotspeed.value*FRACUNIT);
else
CV_SetValue(&cv_cam_rotate, camrotate == 0 ? 358
: camrotate - 2);
}
else else
{ angle -= FixedAngle(cv_cam2_rotspeed.value*FRACUNIT);
if (cv_analog2.value)
angle -= FixedAngle(cv_cam2_rotspeed.value*FRACUNIT);
else
CV_SetValue(&cv_cam2_rotate, camrotate == 0 ? 358
: camrotate - 2);
}
} }
else if (player->cmd.buttons & BT_CAMRIGHT) else if (player->cmd.buttons & BT_CAMLEFT)
{ {
if (thiscam == &camera) if (thiscam == &camera)
{ angle += FixedAngle(cv_cam_rotspeed.value*FRACUNIT);
if (cv_analog.value || demoplayback)
angle += FixedAngle(cv_cam_rotspeed.value*FRACUNIT);
else
CV_SetValue(&cv_cam_rotate, camrotate + 2);
}
else else
{ angle += FixedAngle(cv_cam2_rotspeed.value*FRACUNIT);
if (cv_analog2.value)
angle += FixedAngle(cv_cam2_rotspeed.value*FRACUNIT);
else
CV_SetValue(&cv_cam2_rotate, camrotate + 2);
}
} }
} }