mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-05-09 09:11:05 +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 *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 FORWARD 0
|
||||||
#define SIDE 1
|
#define SIDE 1
|
||||||
|
@ -66,6 +70,9 @@ void CL_Input_Init (struct cbuf_s *cbuf);
|
||||||
void CL_Input_Init_Cvars (void);
|
void CL_Input_Init_Cvars (void);
|
||||||
void CL_Input_Activate (int in_game);
|
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_left, in_right, in_forward, in_back;
|
||||||
extern in_button_t in_lookup, in_lookdown, in_moveleft, in_moveright;
|
extern in_button_t in_lookup, in_lookdown, in_moveleft, in_moveright;
|
||||||
extern in_button_t in_use, in_jump, in_attack;
|
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
|
// mouse and joystick controllers add to movement
|
||||||
VectorSet (0, vs->player_angles[1] - cs->camera_angles[1], 0, dir);
|
VectorSet (0, vs->player_angles[1] - cs->camera_angles[1], 0, dir);
|
||||||
AngleVectors (&dir[0], &forward[0], &right[0], &up[0]); //FIXME
|
AngleVectors (&dir[0], &forward[0], &right[0], &up[0]); //FIXME
|
||||||
//forward *= viewdelta.position[2] * m_forward->value; FIXME
|
forward *= IN_UpdateAxis (&in_cam_forward) * m_forward->value;
|
||||||
//right *= viewdelta.position[0] * m_side->value; FIXME
|
right *= IN_UpdateAxis (&in_cam_side) * m_side->value;
|
||||||
dir = forward + right;
|
dir = forward + right;
|
||||||
move[FORWARD] += dir[0];
|
move[FORWARD] += dir[0];
|
||||||
move[SIDE] -= dir[1];
|
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>
|
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
|
static struct LISTENER_SET_TYPE(int) cl_on_focus_change
|
||||||
= LISTENER_SET_STATIC_INIT(4);
|
= LISTENER_SET_STATIC_INIT(4);
|
||||||
|
|
||||||
in_axis_t viewdelta_position_forward = {
|
in_axis_t in_move_forward = {
|
||||||
.mode = ina_set,
|
.mode = ina_set,
|
||||||
.name = "move.forward",
|
.name = "move.forward",
|
||||||
.description = "Move forward (negative) or backward (positive)",
|
.description = "Move forward (negative) or backward (positive)",
|
||||||
};
|
};
|
||||||
in_axis_t viewdelta_position_side = {
|
in_axis_t in_move_side = {
|
||||||
.mode = ina_set,
|
.mode = ina_set,
|
||||||
.name = "move.side",
|
.name = "move.side",
|
||||||
.description = "Move right (positive) or left (negative)",
|
.description = "Move right (positive) or left (negative)",
|
||||||
};
|
};
|
||||||
in_axis_t viewdelta_position_up = {
|
in_axis_t in_move_up = {
|
||||||
.mode = ina_set,
|
.mode = ina_set,
|
||||||
.name = "move.up",
|
.name = "move.up",
|
||||||
.description = "Move up (positive) or down (negative)",
|
.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,
|
.mode = ina_set,
|
||||||
.name = "move.pitch",
|
.name = "move.pitch",
|
||||||
.description = "Pitch axis",
|
.description = "Pitch axis",
|
||||||
};
|
};
|
||||||
in_axis_t viewdelta_angles_yaw = {
|
in_axis_t in_move_yaw = {
|
||||||
.mode = ina_set,
|
.mode = ina_set,
|
||||||
.name = "move.yaw",
|
.name = "move.yaw",
|
||||||
.description = "Yaw axis",
|
.description = "Yaw axis",
|
||||||
};
|
};
|
||||||
in_axis_t viewdelta_angles_roll = {
|
in_axis_t in_move_roll = {
|
||||||
.mode = ina_set,
|
.mode = ina_set,
|
||||||
.name = "move.roll",
|
.name = "move.roll",
|
||||||
.description = "Roll axis",
|
.description = "Roll axis",
|
||||||
|
@ -167,12 +183,12 @@ in_button_t in_mlook = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static in_axis_t *cl_in_axes[] = {
|
static in_axis_t *cl_in_axes[] = {
|
||||||
&viewdelta_position_forward,
|
&in_move_forward,
|
||||||
&viewdelta_position_side,
|
&in_move_side,
|
||||||
&viewdelta_position_up,
|
&in_move_up,
|
||||||
&viewdelta_angles_pitch,
|
&in_move_pitch,
|
||||||
&viewdelta_angles_yaw,
|
&in_move_yaw,
|
||||||
&viewdelta_angles_roll,
|
&in_move_roll,
|
||||||
0,
|
0,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -246,9 +262,9 @@ CL_AdjustAngles (float frametime, movestate_t *ms, viewstate_t *vs)
|
||||||
delta[PITCH] -= pitchspeed * up;
|
delta[PITCH] -= pitchspeed * up;
|
||||||
delta[PITCH] += pitchspeed * down;
|
delta[PITCH] += pitchspeed * down;
|
||||||
|
|
||||||
delta[PITCH] -= IN_UpdateAxis (&viewdelta_angles_pitch) * m_pitch->value;
|
delta[PITCH] -= IN_UpdateAxis (&in_move_pitch) * m_pitch->value;
|
||||||
delta[YAW] -= IN_UpdateAxis (&viewdelta_angles_yaw) * m_yaw->value;
|
delta[YAW] -= IN_UpdateAxis (&in_move_yaw) * m_yaw->value;
|
||||||
delta[ROLL] -= IN_UpdateAxis (&viewdelta_angles_roll) * m_pitch->value;
|
delta[ROLL] -= IN_UpdateAxis (&in_move_roll) * m_pitch->value;
|
||||||
|
|
||||||
ms->angles += delta;
|
ms->angles += delta;
|
||||||
|
|
||||||
|
@ -371,9 +387,9 @@ CL_Input_BuildMove (float frametime, movestate_t *state, viewstate_t *vs)
|
||||||
move *= cl_movespeedkey->value;
|
move *= cl_movespeedkey->value;
|
||||||
}
|
}
|
||||||
|
|
||||||
move[FORWARD] -= IN_UpdateAxis (&viewdelta_position_forward) * m_forward->value;
|
move[FORWARD] -= IN_UpdateAxis (&in_move_forward) * m_forward->value;
|
||||||
move[SIDE] += IN_UpdateAxis (&viewdelta_position_side) * m_side->value;
|
move[SIDE] += IN_UpdateAxis (&in_move_side) * m_side->value;
|
||||||
move[UP] -= IN_UpdateAxis (&viewdelta_position_up);
|
move[UP] -= IN_UpdateAxis (&in_move_up);
|
||||||
|
|
||||||
if (freelook)
|
if (freelook)
|
||||||
V_StopPitchDrift (vs);
|
V_StopPitchDrift (vs);
|
||||||
|
|
Loading…
Reference in a new issue