Add ability to swap c-nub and c-stick

This commit is contained in:
Ian 2023-11-14 08:31:19 -05:00
parent 74b3a294ff
commit 536cf8be00
3 changed files with 48 additions and 26 deletions

BIN
.DS_Store vendored

Binary file not shown.

View file

@ -34,9 +34,16 @@ extern cvar_t in_x_axis_adjust;
extern cvar_t in_y_axis_adjust; extern cvar_t in_y_axis_adjust;
extern cvar_t in_mlook; //Heffo - mlook cvar extern cvar_t in_mlook; //Heffo - mlook cvar
cvar_t in_anub_mode = {"in_anub_mode", "0", true};
void IN_Init (void) void IN_Init (void)
{ {
Cvar_RegisterVariable (&in_analog_strafe); Cvar_RegisterVariable (&in_analog_strafe);
Cvar_RegisterVariable (&in_anub_mode);
if (new3ds_flag) {
Cvar_SetValue("in_anub_mode", 1);
}
} }
void IN_Shutdown (void) void IN_Shutdown (void)
@ -129,7 +136,7 @@ void IN_Move (usercmd_t *cmd)
// //
speed = sensitivity.value; speed = sensitivity.value;
if (!new3ds_flag) if (!in_anub_mode.value)
speed -= 2; speed -= 2;
else else
speed += 8; speed += 8;
@ -145,7 +152,7 @@ void IN_Move (usercmd_t *cmd)
speed *= 0.25; speed *= 0.25;
// Are we using the left or right stick for looking? // Are we using the left or right stick for looking?
if (!new3ds_flag) { // Left if (!in_anub_mode.value) { // Left
look_x = IN_CalcInput(left.dx, speed, deadZone, acceleration); look_x = IN_CalcInput(left.dx, speed, deadZone, acceleration);
look_y = IN_CalcInput(left.dy, speed, deadZone, acceleration); look_y = IN_CalcInput(left.dy, speed, deadZone, acceleration);
} else { // Right } else { // Right
@ -169,37 +176,44 @@ void IN_Move (usercmd_t *cmd)
cl.viewangles[PITCH] = -70.0f; cl.viewangles[PITCH] = -70.0f;
// Ability to move with the left nub on NEW model systems // Ability to move with the left nub on NEW model systems
if (new3ds_flag) { float move_x, move_y;
float move_x, move_y; float input_x, input_y;
cl_backspeed = cl_forwardspeed = cl_sidespeed = sv_player->v.maxspeed; if (in_anub_mode.value) {
cl_sidespeed *= 0.8; input_x = left.dx;
cl_backspeed *= 0.7; input_y = left.dy;
} else {
input_x = right.dx;
input_y = right.dy;
}
move_x = IN_CalcInput(left.dx, cl_sidespeed, deadZone, acceleration); cl_backspeed = cl_forwardspeed = cl_sidespeed = sv_player->v.maxspeed;
cl_sidespeed *= 0.8;
cl_backspeed *= 0.7;
if (left.dy > 0) move_x = IN_CalcInput(input_x, cl_sidespeed, deadZone, acceleration);
move_y = IN_CalcInput(left.dy, cl_forwardspeed, deadZone, acceleration);
else
move_y = IN_CalcInput(left.dy, cl_backspeed, deadZone, acceleration);
cmd->sidemove += move_x; if (input_y > 0)
cmd->forwardmove += move_y; move_y = IN_CalcInput(input_y, cl_forwardspeed, deadZone, acceleration);
else
move_y = IN_CalcInput(input_y, cl_backspeed, deadZone, acceleration);
// crosshair stuff cmd->sidemove += move_x;
if (left.dx < 50 && left.dx > -50 && left.dy < 50 && left.dy > -50) { cmd->forwardmove += move_y;
croshhairmoving = false;
crosshair_opacity += 22; // crosshair stuff
if (input_x < 50 && input_x > -50 && input_y < 50 && input_y > -50) {
croshhairmoving = false;
if (crosshair_opacity >= 255) crosshair_opacity += 22;
crosshair_opacity = 255;
} else { if (crosshair_opacity >= 255)
croshhairmoving = true; crosshair_opacity = 255;
crosshair_opacity -= 8; } else {
if (crosshair_opacity <= 128) croshhairmoving = true;
crosshair_opacity = 128; crosshair_opacity -= 8;
} if (crosshair_opacity <= 128)
crosshair_opacity = 128;
} }
} }

View file

@ -34,6 +34,7 @@ extern cvar_t crosshair;
extern cvar_t r_dithering; extern cvar_t r_dithering;
//extern cvar_t r_retro; //extern cvar_t r_retro;
extern cvar_t waypoint_mode; extern cvar_t waypoint_mode;
extern cvar_t in_anub_mode;
extern int loadingScreen; extern int loadingScreen;
extern char* loadname2; extern char* loadname2;
@ -1327,6 +1328,10 @@ void M_AdjustSliders (int dir)
case 11: // lookstrafe case 11: // lookstrafe
Cvar_SetValue ("lookstrafe", !lookstrafe.value); Cvar_SetValue ("lookstrafe", !lookstrafe.value);
break; break;
case 12: // anub swap
Cvar_SetValue ("in_anub_mode", !in_anub_mode.value);
break;
} }
} }
@ -1403,6 +1408,9 @@ void M_Options_Draw (void)
M_Print (16, 120, " Lookstrafe"); M_Print (16, 120, " Lookstrafe");
M_DrawCheckbox (220, 120, lookstrafe.value); M_DrawCheckbox (220, 120, lookstrafe.value);
M_Print (16, 128, "Swap C-Nub and C-Stick");
M_DrawCheckbox (220, 128, in_anub_mode.value);
if (vid_menudrawfn) if (vid_menudrawfn)
M_Print (16, 136, " Video Options"); M_Print (16, 136, " Video Options");