mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-03-23 02:41:30 +00:00
[client] Make input axes accessible and add camera axes
And clean up the names (viewdelta_position_forward -> in_move_forward).
This commit is contained in:
parent
7c07118541
commit
8407e3acd1
3 changed files with 45 additions and 22 deletions
|
@ -45,6 +45,10 @@ extern struct cvar_s *cl_pitchspeed;
|
|||
|
||||
extern struct cvar_s *cl_anglespeedkey;
|
||||
|
||||
extern struct cvar_s *m_pitch;
|
||||
extern struct cvar_s *m_yaw;
|
||||
extern struct cvar_s *m_forward;
|
||||
extern struct cvar_s *m_side;
|
||||
|
||||
#define FORWARD 0
|
||||
#define SIDE 1
|
||||
|
@ -66,6 +70,9 @@ void CL_Input_Init (struct cbuf_s *cbuf);
|
|||
void CL_Input_Init_Cvars (void);
|
||||
void CL_Input_Activate (int in_game);
|
||||
|
||||
extern in_axis_t in_move_forward, in_move_side, in_move_up;
|
||||
extern in_axis_t in_move_pitch, in_move_yaw, in_move_roll;
|
||||
extern in_axis_t in_cam_forward, in_cam_side, in_cam_up;
|
||||
extern in_button_t in_left, in_right, in_forward, in_back;
|
||||
extern in_button_t in_lookup, in_lookdown, in_moveleft, in_moveright;
|
||||
extern in_button_t in_use, in_jump, in_attack;
|
||||
|
|
|
@ -147,8 +147,8 @@ cam_controls (chasestate_t *cs, viewstate_t *vs)
|
|||
// mouse and joystick controllers add to movement
|
||||
VectorSet (0, vs->player_angles[1] - cs->camera_angles[1], 0, dir);
|
||||
AngleVectors (&dir[0], &forward[0], &right[0], &up[0]); //FIXME
|
||||
//forward *= viewdelta.position[2] * m_forward->value; FIXME
|
||||
//right *= viewdelta.position[0] * m_side->value; FIXME
|
||||
forward *= IN_UpdateAxis (&in_cam_forward) * m_forward->value;
|
||||
right *= IN_UpdateAxis (&in_cam_side) * m_side->value;
|
||||
dir = forward + right;
|
||||
move[FORWARD] += dir[0];
|
||||
move[SIDE] -= dir[1];
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
cl_legacy.c
|
||||
cl_input.c
|
||||
|
||||
Client legacy commands
|
||||
Client input commands
|
||||
|
||||
Copyright (C) 2021 Bill Currie <bill@taniwha.org>
|
||||
|
||||
|
@ -60,33 +60,49 @@ static int cl_event_id;
|
|||
static struct LISTENER_SET_TYPE(int) cl_on_focus_change
|
||||
= LISTENER_SET_STATIC_INIT(4);
|
||||
|
||||
in_axis_t viewdelta_position_forward = {
|
||||
in_axis_t in_move_forward = {
|
||||
.mode = ina_set,
|
||||
.name = "move.forward",
|
||||
.description = "Move forward (negative) or backward (positive)",
|
||||
};
|
||||
in_axis_t viewdelta_position_side = {
|
||||
in_axis_t in_move_side = {
|
||||
.mode = ina_set,
|
||||
.name = "move.side",
|
||||
.description = "Move right (positive) or left (negative)",
|
||||
};
|
||||
in_axis_t viewdelta_position_up = {
|
||||
in_axis_t in_move_up = {
|
||||
.mode = ina_set,
|
||||
.name = "move.up",
|
||||
.description = "Move up (positive) or down (negative)",
|
||||
};
|
||||
|
||||
in_axis_t viewdelta_angles_pitch = {
|
||||
in_axis_t in_cam_forward = {
|
||||
.mode = ina_set,
|
||||
.name = "cam.forward",
|
||||
.description = "Move camera forward (negative) or backward (positive)",
|
||||
};
|
||||
in_axis_t in_cam_side = {
|
||||
.mode = ina_set,
|
||||
.name = "cam.side",
|
||||
.description = "Move camera right (positive) or left (negative)",
|
||||
};
|
||||
in_axis_t in_cam_up = {
|
||||
.mode = ina_set,
|
||||
.name = "cam.up",
|
||||
.description = "Move camera up (positive) or down (negative)",
|
||||
};
|
||||
|
||||
in_axis_t in_move_pitch = {
|
||||
.mode = ina_set,
|
||||
.name = "move.pitch",
|
||||
.description = "Pitch axis",
|
||||
};
|
||||
in_axis_t viewdelta_angles_yaw = {
|
||||
in_axis_t in_move_yaw = {
|
||||
.mode = ina_set,
|
||||
.name = "move.yaw",
|
||||
.description = "Yaw axis",
|
||||
};
|
||||
in_axis_t viewdelta_angles_roll = {
|
||||
in_axis_t in_move_roll = {
|
||||
.mode = ina_set,
|
||||
.name = "move.roll",
|
||||
.description = "Roll axis",
|
||||
|
@ -167,12 +183,12 @@ in_button_t in_mlook = {
|
|||
};
|
||||
|
||||
static in_axis_t *cl_in_axes[] = {
|
||||
&viewdelta_position_forward,
|
||||
&viewdelta_position_side,
|
||||
&viewdelta_position_up,
|
||||
&viewdelta_angles_pitch,
|
||||
&viewdelta_angles_yaw,
|
||||
&viewdelta_angles_roll,
|
||||
&in_move_forward,
|
||||
&in_move_side,
|
||||
&in_move_up,
|
||||
&in_move_pitch,
|
||||
&in_move_yaw,
|
||||
&in_move_roll,
|
||||
0,
|
||||
};
|
||||
|
||||
|
@ -246,9 +262,9 @@ CL_AdjustAngles (float frametime, movestate_t *ms, viewstate_t *vs)
|
|||
delta[PITCH] -= pitchspeed * up;
|
||||
delta[PITCH] += pitchspeed * down;
|
||||
|
||||
delta[PITCH] -= IN_UpdateAxis (&viewdelta_angles_pitch) * m_pitch->value;
|
||||
delta[YAW] -= IN_UpdateAxis (&viewdelta_angles_yaw) * m_yaw->value;
|
||||
delta[ROLL] -= IN_UpdateAxis (&viewdelta_angles_roll) * m_pitch->value;
|
||||
delta[PITCH] -= IN_UpdateAxis (&in_move_pitch) * m_pitch->value;
|
||||
delta[YAW] -= IN_UpdateAxis (&in_move_yaw) * m_yaw->value;
|
||||
delta[ROLL] -= IN_UpdateAxis (&in_move_roll) * m_pitch->value;
|
||||
|
||||
ms->angles += delta;
|
||||
|
||||
|
@ -371,9 +387,9 @@ CL_Input_BuildMove (float frametime, movestate_t *state, viewstate_t *vs)
|
|||
move *= cl_movespeedkey->value;
|
||||
}
|
||||
|
||||
move[FORWARD] -= IN_UpdateAxis (&viewdelta_position_forward) * m_forward->value;
|
||||
move[SIDE] += IN_UpdateAxis (&viewdelta_position_side) * m_side->value;
|
||||
move[UP] -= IN_UpdateAxis (&viewdelta_position_up);
|
||||
move[FORWARD] -= IN_UpdateAxis (&in_move_forward) * m_forward->value;
|
||||
move[SIDE] += IN_UpdateAxis (&in_move_side) * m_side->value;
|
||||
move[UP] -= IN_UpdateAxis (&in_move_up);
|
||||
|
||||
if (freelook)
|
||||
V_StopPitchDrift (vs);
|
||||
|
|
Loading…
Reference in a new issue