Restructured some ticcmd stuff, temporary keyboard defaults, commented out mouse options menu

No more weapon number buttons, button constants reordered, and BT_JUMP
renamed to BT_DRIFT, and removed a lot of commented out stuff or stuff
we didn't need. Spectator-only support for looking up/down soon.
Keyboard defaults are just what I use, plan on adjusting it further
after more feedback
This commit is contained in:
TehRealSalt 2018-01-24 02:45:06 -05:00
parent 6f1dda7b7a
commit f6cfcd4f89
11 changed files with 141 additions and 497 deletions

View File

@ -44,8 +44,8 @@ static inline void B_BuildTailsTiccmd(mobj_t *sonic, mobj_t *tails, ticcmd_t *cm
if (tails->player->pflags & (PF_MACESPIN|PF_ITEMHANG))
{
dist = P_AproxDistance(tails->x-sonic->x, tails->y-sonic->y);
if (sonic->player->cmd.buttons & BT_JUMP && sonic->player->pflags & (PF_JUMPED|PF_MACESPIN|PF_ITEMHANG))
cmd->buttons |= BT_JUMP;
if (sonic->player->cmd.buttons & BT_DRIFT && sonic->player->pflags & (PF_JUMPED|PF_MACESPIN|PF_ITEMHANG))
cmd->buttons |= BT_DRIFT;
if (sonic->player->pflags & (PF_MACESPIN|PF_ITEMHANG))
{
cmd->forwardmove = sonic->player->cmd.forwardmove;
@ -53,7 +53,7 @@ static inline void B_BuildTailsTiccmd(mobj_t *sonic, mobj_t *tails, ticcmd_t *cm
if (sonic->angle < tails->angle)
cmd->angleturn = -cmd->angleturn;
} else if (dist > FixedMul(512*FRACUNIT, tails->scale))
cmd->buttons |= BT_JUMP;
cmd->buttons |= BT_DRIFT;
return;
}
@ -116,7 +116,7 @@ void B_BuildTiccmd(player_t *player, ticcmd_t *cmd)
if (player->playerstate == PST_DEAD)
{
if (B_CheckRespawn(player))
cmd->buttons |= BT_JUMP;
cmd->buttons |= BT_DRIFT;
return;
}
@ -189,7 +189,7 @@ void B_KeysToTiccmd(mobj_t *mo, ticcmd_t *cmd, boolean forward, boolean backward
cmd->sidemove += MAXPLMOVE<<FRACBITS>>16;
}
if (jump)
cmd->buttons |= BT_JUMP;
cmd->buttons |= BT_DRIFT;
if (spin)
cmd->buttons |= BT_BRAKE;
}

View File

@ -259,7 +259,7 @@ consvar_t cv_skipmapcheck = {"skipmapcheck", "Off", CV_SAVE, CV_OnOff, NULL, 0,
INT32 cv_debug;
consvar_t cv_usemouse = {"use_mouse", "On", CV_SAVE|CV_CALL,usemouse_cons_t, I_StartupMouse, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_usemouse = {"use_mouse", "Off", CV_SAVE|CV_CALL,usemouse_cons_t, I_StartupMouse, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_usemouse2 = {"use_mouse2", "Off", CV_SAVE|CV_CALL,usemouse_cons_t, I_StartupMouse2, 0, NULL, NULL, 0, 0, NULL};
#if defined (DC) || defined (_XBOX) || defined (WMINPUT) || defined (_WII) //joystick 1 and 2
@ -770,8 +770,8 @@ void D_RegisterClientCommands(void)
CV_RegisterVar(&cv_crosshair2);
CV_RegisterVar(&cv_crosshair3);
CV_RegisterVar(&cv_crosshair4);
CV_RegisterVar(&cv_alwaysfreelook);
CV_RegisterVar(&cv_alwaysfreelook2);
//CV_RegisterVar(&cv_alwaysfreelook);
//CV_RegisterVar(&cv_alwaysfreelook2);
// g_input.c
CV_RegisterVar(&cv_sideaxis);
@ -815,8 +815,8 @@ void D_RegisterClientCommands(void)
CV_RegisterVar(&cv_mousesens2);
CV_RegisterVar(&cv_mouseysens);
CV_RegisterVar(&cv_mouseysens2);
CV_RegisterVar(&cv_mousemove);
CV_RegisterVar(&cv_mousemove2);
//CV_RegisterVar(&cv_mousemove);
//CV_RegisterVar(&cv_mousemove2);
CV_RegisterVar(&cv_usejoystick);
CV_RegisterVar(&cv_usejoystick2);

View File

@ -24,23 +24,24 @@
// Button/action code definitions.
typedef enum
{
// First 4 bits are weapon change info, DO NOT USE!
BT_WEAPONMASK = 0x0F, //our first four bits.
BT_ACCELERATE = 1, // Accelerate
BT_DRIFT = 1<<2, // Drift (direction is cmd->angleturn)
BT_BRAKE = 1<<3, // Brake
BT_ATTACK = 1<<4, // Use Item
BT_FORWARD = 1<<5, // Aim Item Forward
BT_BACKWARD = 1<<6, // Aim Item Backward
BT_SPECTATE = 1<<7, // Toggle Spectate
BT_DRIFTLEFT = 1<<4, // Drift Left // BT_WEAPONNEXT
BT_DRIFTRIGHT = 1<<5, // Drift Right // BT_WEAPONPREV
// Want more button space? Help get rid of this hack :V
BT_DRIFTLEFT = 1<<8, // Drift left hack
BT_DRIFTRIGHT = 1<<9, // Drift right hack
BT_ATTACK = 1<<6, // use kart item // SRB2kart
BT_BRAKE = 1<<7, // brake // BT_USE
BT_FORWARD = 1<<8, // toss item forward // BT_CAMLEFT
BT_BACKWARD = 1<<9, // drop item behind // BT_CAMRIGHT
BT_SPECTATE = 1<<10, // toggle spectate // BT_TOSSFLAG
BT_JUMP = 1<<11,
BT_ACCELERATE = 1<<12, // Accelerate // BT_FIRENORMAL
// free: 1<<10 to 1<<12
BT_CUSTOM1 = 1<<13,
BT_CUSTOM2 = 1<<14,
BT_CUSTOM3 = 1<<15,
// Lua garbage
BT_CUSTOM1 = 1<<13,
BT_CUSTOM2 = 1<<14,
BT_CUSTOM3 = 1<<15,
} buttoncode_t;
// The data sampled per tick (single player)

View File

@ -7815,16 +7815,15 @@ struct {
{"NUMDIRS",NUMDIRS},
// Buttons (ticcmd_t) // SRB2kart
{"BT_WEAPONMASK",BT_WEAPONMASK}, //our first four bits.
{"BT_ACCELERATE",BT_ACCELERATE},
{"BT_DRIFT",BT_DRIFT},
{"BT_BRAKE",BT_BRAKE},
{"BT_ATTACK",BT_ATTACK},
{"BT_FORWARD",BT_FORWARD},
{"BT_BACKWARD",BT_BACKWARD},
{"BT_SPECTATE",BT_SPECTATE},
{"BT_DRIFTLEFT",BT_DRIFTLEFT},
{"BT_DRIFTRIGHT",BT_DRIFTRIGHT},
{"BT_ATTACK",BT_ATTACK}, // shoot rings
{"BT_BRAKE",BT_BRAKE}, // brake
{"BT_FORWARD",BT_FORWARD}, // turn camera left
{"BT_BACKWARD",BT_BACKWARD}, // turn camera right
{"BT_SPECTATE",BT_SPECTATE},
{"BT_JUMP",BT_JUMP},
{"BT_ACCELERATE",BT_ACCELERATE}, // Fire a normal ring no matter what
{"BT_CUSTOM1",BT_CUSTOM1}, // Lua customizable
{"BT_CUSTOM2",BT_CUSTOM2}, // Lua customizable
{"BT_CUSTOM3",BT_CUSTOM3}, // Lua customizable

View File

@ -385,11 +385,11 @@ consvar_t cv_crosshair2 = {"crosshair2", "Cross", CV_SAVE, crosshair_cons_t, NUL
consvar_t cv_crosshair3 = {"crosshair3", "Cross", CV_SAVE, crosshair_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_crosshair4 = {"crosshair4", "Cross", CV_SAVE, crosshair_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_invertmouse = {"invertmouse", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_alwaysfreelook = {"alwaysmlook", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_alwaysfreelook = {"alwaysmlook", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_invertmouse2 = {"invertmouse2", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_alwaysfreelook2 = {"alwaysmlook2", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_mousemove = {"mousemove", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_mousemove2 = {"mousemove2", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_mousemove = {"mousemove", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_mousemove2 = {"mousemove2", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_analog = {"analog", "Off", CV_CALL, CV_OnOff, Analog_OnChange, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_analog2 = {"analog2", "Off", CV_CALL, CV_OnOff, Analog2_OnChange, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_analog3 = {"analog3", "Off", CV_CALL, CV_OnOff, Analog3_OnChange, 0, NULL, NULL, 0, 0, NULL};
@ -1181,16 +1181,16 @@ INT32 localaiming, localaiming2, localaiming3, localaiming4;
angle_t localangle, localangle2, localangle3, localangle4;
static fixed_t forwardmove[2] = {25<<FRACBITS>>16, 50<<FRACBITS>>16};
static fixed_t sidemove[2] = {25<<FRACBITS>>16, 50<<FRACBITS>>16}; // faster!
//static fixed_t sidemove[2] = {25<<FRACBITS>>16, 50<<FRACBITS>>16}; // faster!
static fixed_t angleturn[3] = {400, 800, 200}; // + slow turn
void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
{
boolean forcestrafe = false;
INT32 laim, th, tspeed, forward, side, axis, i;
INT32 laim, th, tspeed, forward, side, axis; //i
const INT32 speed = 1;
// these ones used for multiple conditions
boolean turnleft, turnright, invertmouse, mouseaiming, lookaxis, analog, analogjoystickmove, gamepadjoystickmove, kbl;
boolean turnleft, turnright, invertmouse, mouseaiming, lookaxis, analogjoystickmove, gamepadjoystickmove, kbl; //analog
player_t *player;
camera_t *thiscam;
angle_t lang;
@ -1250,12 +1250,12 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
if (ssplayer == 2)
{
mouseaiming = (PLAYER2INPUTDOWN(gc_mouseaiming)) ^ cv_alwaysfreelook2.value;
mouseaiming = player->spectator; //mouseaiming = (PLAYER2INPUTDOWN(gc_mouseaiming)) ^ cv_alwaysfreelook2.value;
invertmouse = cv_invertmouse2.value;
lookaxis = cv_lookaxis2.value;
analogjoystickmove = cv_usejoystick2.value && !Joystick2.bGamepadStyle;
gamepadjoystickmove = cv_usejoystick2.value && Joystick2.bGamepadStyle;
analog = cv_analog2.value;
//analog = cv_analog2.value;
}
else if (ssplayer == 3)
{
@ -1264,7 +1264,7 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
lookaxis = cv_lookaxis3.value;
analogjoystickmove = cv_usejoystick3.value && !Joystick3.bGamepadStyle;
gamepadjoystickmove = cv_usejoystick3.value && Joystick3.bGamepadStyle;
analog = cv_analog3.value;
//analog = cv_analog3.value;
}
else if (ssplayer == 4)
{
@ -1273,16 +1273,16 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
lookaxis = cv_lookaxis4.value;
analogjoystickmove = cv_usejoystick4.value && !Joystick4.bGamepadStyle;
gamepadjoystickmove = cv_usejoystick4.value && Joystick4.bGamepadStyle;
analog = cv_analog4.value;
//analog = cv_analog4.value;
}
else
{
mouseaiming = (PLAYER1INPUTDOWN(gc_mouseaiming)) ^ cv_alwaysfreelook.value;
mouseaiming = player->spectator; //mouseaiming = (PLAYER1INPUTDOWN(gc_mouseaiming)) ^ cv_alwaysfreelook.value;
invertmouse = cv_invertmouse.value;
lookaxis = cv_lookaxis.value;
analogjoystickmove = cv_usejoystick.value && !Joystick.bGamepadStyle;
gamepadjoystickmove = cv_usejoystick.value && Joystick.bGamepadStyle;
analog = cv_analog.value;
//analog = cv_analog.value;
}
turnright = InputDown(gc_turnright, ssplayer);
@ -1318,64 +1318,16 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
tspeed = speed;
// let movement keys cancel each other out
if (analog) // Analog
{
if (turnright)
cmd->angleturn = (INT16)(cmd->angleturn - angleturn[tspeed]);
if (turnleft)
cmd->angleturn = (INT16)(cmd->angleturn + angleturn[tspeed]);
}
if (turnright && !(turnleft))
cmd->angleturn = (INT16)(cmd->angleturn - angleturn[tspeed]);
else if (turnleft && !(turnright))
cmd->angleturn = (INT16)(cmd->angleturn + angleturn[tspeed]);
if (analog || twodlevel
|| (player->mo && (player->mo->flags2 & MF2_TWOD))
|| (!demoplayback && (player->climbing
|| (player->pflags & PF_NIGHTSMODE)
|| (player->pflags & PF_SLIDING)
|| (player->pflags & PF_FORCESTRAFE)))) // Analog
forcestrafe = true;
if (forcestrafe) // Analog
if (analogjoystickmove && axis != 0)
{
if (turnright)
side += sidemove[speed];
if (turnleft)
side -= sidemove[speed];
if (analogjoystickmove && axis != 0)
{
// JOYAXISRANGE is supposed to be 1023 (divide by 1024)
side += ((axis * sidemove[1]) >> 10);
}
// JOYAXISRANGE should be 1023 (divide by 1024)
cmd->angleturn = (INT16)(cmd->angleturn - ((axis * angleturn[1]) >> 10)); // ANALOG!
}
else
{
if (turnright && !(turnleft))
cmd->angleturn = (INT16)(cmd->angleturn - angleturn[tspeed]);
else if (turnleft && !(turnright))
cmd->angleturn = (INT16)(cmd->angleturn + angleturn[tspeed]);
if (analogjoystickmove && axis != 0)
{
// JOYAXISRANGE should be 1023 (divide by 1024)
cmd->angleturn = (INT16)(cmd->angleturn - ((axis * angleturn[1]) >> 10)); // ANALOG!
}
}
/*
axis = JoyAxis(AXISSTRAFE, ssplayer);
if (gamepadjoystickmove && axis != 0)
{
if (axis < 0)
side += sidemove[speed];
else if (axis > 0)
side -= sidemove[speed];
}
else if (analogjoystickmove && axis != 0)
{
// JOYAXISRANGE is supposed to be 1023 (divide by 1024)
side += ((axis * sidemove[1]) >> 10);
}
*/
// forward with key or button // SRB2kart - we use an accel/brake instead of forward/backward.
if (InputDown(gc_accelerate, ssplayer) || player->kartstuff[k_mushroomtimer])
@ -1383,68 +1335,29 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
cmd->buttons |= BT_ACCELERATE;
forward = forwardmove[1]; // 50
}
if (InputDown(gc_brake, ssplayer))
{
cmd->buttons |= BT_BRAKE;
forward -= forwardmove[0]; // 25 - Halved value so clutching is possible
}
// But forward/backward IS used for aiming.
// drift button
if (InputDown(gc_drift, ssplayer))
cmd->buttons |= BT_DRIFT;
// forward/backward is used for aiming
axis = JoyAxis(AXISMOVE, ssplayer);
if (InputDown(gc_aimforward, ssplayer) || (gamepadjoystickmove && axis < 0) || (analogjoystickmove && axis < 0))
cmd->buttons |= BT_FORWARD;
if (InputDown(gc_aimbackward, ssplayer) || (gamepadjoystickmove && axis > 0) || (analogjoystickmove && axis > 0))
cmd->buttons |= BT_BACKWARD;
/*
if (InputDown(gc_forward, ssplayer) || (gamepadjoystickmove && axis < 0))
forward = forwardmove[speed];
if (InputDown(gc_backward, ssplayer) || (gamepadjoystickmove && axis > 0))
forward -= forwardmove[speed];
*/
/*
if (analogjoystickmove && axis != 0)
forward -= ((axis * forwardmove[1]) >> 10); // ANALOG!
*/
// some people strafe left & right with mouse buttons
// those people are weird
/* // SRB2kart - these aren't used in kart
if (InputDown(gc_straferight, ssplayer))
side += sidemove[speed];
if (InputDown(gc_strafeleft, ssplayer))
side -= sidemove[speed];
if (InputDown(gc_driftleft, ssplayer))
cmd->buttons |= BT_WEAPONNEXT; // Next Weapon
if (InputDown(gc_driftright, ssplayer))
cmd->buttons |= BT_WEAPONPREV; // Previous Weapon
*/
#if NUM_WEAPONS > 10
"Add extra inputs to g_input.h/gamecontrols_e"
#endif
//use the four avaliable bits to determine the weapon.
cmd->buttons &= ~BT_WEAPONMASK;
for (i = 0; i < NUM_WEAPONS; ++i)
if (InputDown(gc_wepslot1 + i, ssplayer))
{
cmd->buttons |= (UINT16)(i + 1);
break;
}
// fire with any button/key
axis = JoyAxis(AXISFIRE, ssplayer);
if (InputDown(gc_fire, ssplayer) || (cv_usejoystick.value && axis > 0))
cmd->buttons |= BT_ATTACK;
// fire normal with any button/key
/*
axis = JoyAxis(ssplayer, AXISFIRENORMAL);
if (InputDown(gc_accelerate, ssplayer) || (cv_usejoystick.value && axis > 0))
cmd->buttons |= BT_ACCELERATE;
*/
if (InputDown(gc_spectate, ssplayer))
cmd->buttons |= BT_SPECTATE;
@ -1456,37 +1369,6 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
if (InputDown(gc_custom3, ssplayer))
cmd->buttons |= BT_CUSTOM3;
// use with any button/key
/*
if (InputDown(gc_brake, ssplayer))
cmd->buttons |= BT_BRAKE;
*/
// Camera Controls
/*
if (cv_debug || cv_analog.value || demoplayback || objectplacing || player->pflags & PF_NIGHTSMODE)
{
if (InputDown(gc_aimforward, ssplayer))
cmd->buttons |= BT_FORWARD;
if (InputDown(gc_aimbackward, ssplayer))
cmd->buttons |= BT_BACKWARD;
}
*/
/*
if (InputDown(gc_lookback, ssplayer))
{
if (thiscam->chase && !player->kartstuff[k_camspin])
player->kartstuff[k_camspin] = 1;
}
else if (player->kartstuff[k_camspin] > 0)
player->kartstuff[k_camspin] = -1;
*/
// jump button
if (InputDown(gc_jump, ssplayer))
cmd->buttons |= BT_JUMP;
// player aiming shit, ahhhh...
{
INT32 player_invert = invertmouse ? -1 : 1;
@ -1532,18 +1414,41 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
cmd->aiming = G_ClipAimingPitch(&laim);
}
if (!mouseaiming && cv_mousemove.value)
forward += mousey;
if (analog ||
(!demoplayback && (player->climbing
|| (player->pflags & PF_SLIDING)))) // Analog for mouse
side += mousex*2;
else
cmd->angleturn = (INT16)(cmd->angleturn - (mousex*8));
cmd->angleturn = (INT16)(cmd->angleturn - (mousex*8));
mousex = mousey = mlooky = 0;
//{ SRB2kart - Drift support
axis = JoyAxis(AXISTURN, ssplayer);
if (mirrormode)
axis = -axis;
// TODO: we really need to figure out a better way of doing this, two extra buttons used for this is stupid
if (cmd->angleturn > 0) // Drifting to the left
cmd->buttons |= BT_DRIFTLEFT;
else
cmd->buttons &= ~BT_DRIFTLEFT;
if (cmd->angleturn < 0) // Drifting to the right
cmd->buttons |= BT_DRIFTRIGHT;
else
cmd->buttons &= ~BT_DRIFTRIGHT;
//}
// limit turning to angleturn[1] to stop mouselook letting you look too fast
if (cmd->angleturn > angleturn[1])
cmd->angleturn = angleturn[1];
else if (cmd->angleturn < -angleturn[1])
cmd->angleturn = -angleturn[1];
if (player->mo)
cmd->angleturn = K_GetKartTurnValue(player, cmd->angleturn);
// SRB2kart - no additional angle if not moving
if ((player->mo && player->speed > 0) || (leveltime > 140 && (cmd->buttons & BT_ACCELERATE) && (cmd->buttons & BT_BRAKE)))
lang += (cmd->angleturn<<16);
cmd->angleturn = (INT16)(lang >> 16);
if (forward > MAXPLMOVE)
forward = MAXPLMOVE;
else if (forward < -MAXPLMOVE)
@ -1571,27 +1476,10 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
cmd->forwardmove = (SINT8)(cmd->forwardmove + forward);
cmd->sidemove = (SINT8)(cmd->sidemove + side);
if (mirrormode)
cmd->sidemove = -cmd->sidemove;
//{ SRB2kart - Drift support
axis = JoyAxis(AXISTURN, ssplayer);
if (mirrormode)
axis = -axis;
if (cmd->angleturn > 0) // Drifting to the left
cmd->buttons |= BT_DRIFTLEFT;
else
cmd->buttons &= ~BT_DRIFTLEFT;
if (cmd->angleturn < 0) // Drifting to the right
cmd->buttons |= BT_DRIFTRIGHT;
else
cmd->buttons &= ~BT_DRIFTRIGHT;
//}
if (ssplayer == 2 && player->bot == 1) {
/*if (ssplayer == 2 && player->bot == 1) {
if (!player->powers[pw_tailsfly] && (cmd->forwardmove || cmd->sidemove || cmd->buttons))
{
player->bot = 2; // A player-controlled bot. Returns to AI when it respawns.
@ -1602,30 +1490,7 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
G_CopyTiccmd(cmd, I_BaseTiccmd2(), 1); // empty, or external driver
B_BuildTiccmd(player, cmd);
}
}
if (analog) {
cmd->angleturn = (INT16)(thiscam->angle >> 16);
if (player->awayviewtics)
cmd->angleturn = (INT16)(player->awayviewmobj->angle >> 16);
}
else
{
// limit turning to angleturn[1] to stop mouselook letting you look too fast
if (cmd->angleturn > angleturn[1])
cmd->angleturn = angleturn[1];
else if (cmd->angleturn < -angleturn[1])
cmd->angleturn = -angleturn[1];
if (player->mo)
cmd->angleturn = K_GetKartTurnValue(player, cmd->angleturn);
// SRB2kart - no additional angle if not moving
if ((player->mo && player->speed > 0) || (leveltime > 140 && (cmd->buttons & BT_ACCELERATE) && (cmd->buttons & BT_BRAKE)))
lang += (cmd->angleturn<<16);
cmd->angleturn = (INT16)(lang >> 16);
}
}*/
if (ssplayer == 2)
{

View File

@ -1188,40 +1188,23 @@ static keyname_t keynames[] =
static const char *gamecontrolname[num_gamecontrols] =
{
"nothing", // a key/button mapped to gc_null has no effect
"forward",
"backward",
"strafeleft",
"straferight",
"turnleft",
"turnright",
"driftleft",
"driftright",
"weapon1",
"weapon2",
"weapon3",
"weapon4",
"weapon5",
"weapon6",
"weapon7",
"weapon8",
"weapon9",
"weapon10",
"fire",
"accelerate",
"spectate",
"brake",
"camtoggle",
"aimforward",
"aimbackward",
"turnleft",
"turnright",
"accelerate",
"drift",
"brake",
"fire",
"lookback",
"camtoggle",
"spectate",
"lookup",
"lookdown",
"centerview",
"mouseaiming",
"talkkey",
"teamtalkkey",
"scores",
"jump",
"console",
"pause",
"custom1",
@ -1285,222 +1268,35 @@ INT32 G_KeyStringtoNum(const char *keystr)
return 0;
}
#ifdef DC
// SRB2Kart
void G_Controldefault(void)
{
gamecontrol[gc_forward ][0] = KEY_HAT1+0; //Up
gamecontrol[gc_forward ][1] = KEY_UPARROW;
gamecontrol[gc_backward ][0] = KEY_HAT1+1; //Down
gamecontrol[gc_backward ][1] = KEY_DOWNARROW;
//gamecontrol[gc_straferight][0] = '[';
//gamecontrol[gc_strafeleft ][0] = ']';
gamecontrol[gc_turnleft ][0] = KEY_HAT1+2; //Left
gamecontrol[gc_turnleft ][1] = KEY_LEFTARROW;
gamecontrol[gc_turnright ][0] = KEY_HAT1+3; //Right
gamecontrol[gc_turnright ][1] = KEY_RIGHTARROW;
gamecontrol[gc_driftleft ][0] = ']';
gamecontrol[gc_driftright ][0] = '[';
gamecontrol[gc_fire ][0] = KEY_JOY1+6; //X
gamecontrol[gc_fire ][1] = KEY_RCTRL;
gamecontrol[gc_accelerate ][0] = KEY_JOY1+5; //Y
gamecontrol[gc_accelerate ][1] = ';';
gamecontrol[gc_spectate ][0] = '\'';
gamecontrol[gc_brake ][0] = KEY_JOY1+1; //B
gamecontrol[gc_brake ][1] = '.';
gamecontrol[gc_camtoggle ][1] = ',';
gamecontrol[gc_aimforward ][0] = 'o';
gamecontrol[gc_aimbackward][0] = 'p';
gamecontrol[gc_lookback ][0] = 'c';
gamecontrol[gc_lookup ][0] = KEY_PGUP;
gamecontrol[gc_lookdown ][0] = KEY_PGDN;
gamecontrol[gc_centerview ][0] = KEY_END;
gamecontrol[gc_mouseaiming][0] = 's';
gamecontrol[gc_talkkey ][0] = 't';
gamecontrol[gc_teamkey ][0] = 'y';
gamecontrol[gc_scores ][0] = KEY_TAB;
gamecontrol[gc_jump ][0] = KEY_JOY1+2; //A
gamecontrol[gc_jump ][1] = '/';
gamecontrol[gc_console ][0] = KEY_CONSOLE;
gamecontrol[gc_console ][1] = KEY_F5;
//gamecontrolbis
gamecontrolbis[gc_forward ][0] = KEY_2HAT1+0;
gamecontrolbis[gc_forward ][1] = 'w';
gamecontrolbis[gc_backward ][0] = KEY_2HAT1+1;
gamecontrolbis[gc_backward ][1] = 's';
gamecontrolbis[gc_turnleft ][0] = KEY_2HAT1+2;
gamecontrolbis[gc_turnleft ][1] = 'a';
gamecontrolbis[gc_turnright ][0] = KEY_2HAT1+3;
gamecontrolbis[gc_turnright ][1] = 'd';
gamecontrolbis[gc_driftleft ][0] = 't';
gamecontrolbis[gc_driftright][0] = 'r';
gamecontrolbis[gc_fire ][0] = KEY_2JOY1+6; //X
gamecontrolbis[gc_accelerate][0] = KEY_2JOY1+5; //Y
gamecontrolbis[gc_brake ][0] = KEY_2JOY1+1; //B
gamecontrolbis[gc_jump ][0] = KEY_2JOY1+2; //A
//gamecontrolbis[gc_straferight][0] = 'x';
//gamecontrolbis[gc_strafeleft ][0] = 'z';
}
#elif defined (_PSP)
void G_Controldefault(void)
{
gamecontrol[gc_forward ][0] = KEY_HAT1+0; // Up
gamecontrol[gc_backward ][0] = KEY_HAT1+1; // Down
gamecontrol[gc_turnleft ][0] = KEY_HAT1+2; // Left
gamecontrol[gc_turnright ][0] = KEY_HAT1+3; // Right
gamecontrol[gc_strafeleft ][0] = KEY_JOY1+4; // L
gamecontrol[gc_straferight][0] = KEY_JOY1+5; // R
gamecontrol[gc_spectate ][0] = KEY_JOY1+0; // Triangle
gamecontrol[gc_brake ][0] = KEY_JOY1+1; // Circle
gamecontrol[gc_camtoggle ][0] = KEY_JOY1+6; // Select
gamecontrol[gc_lookback ][0] = KEY_JOY1+3; // Square
gamecontrol[gc_centerview ][0] = KEY_JOY1+9; // Hold
gamecontrol[gc_pause ][0] = KEY_JOY1+8; // Start
gamecontrol[gc_jump ][0] = KEY_JOY1+2; // Cross
}
#elif defined (GP2X)
void G_Controldefault(void)
{
gamecontrol[gc_fire ][0] = KEY_JOY1+0; //A
gamecontrol[gc_forward ][0] = KEY_JOY1+1; //Y
gamecontrol[gc_jump ][0] = KEY_JOY1+2; //B
gamecontrol[gc_brake ][0] = KEY_JOY1+3; //X
gamecontrol[gc_strafeleft ][0] = KEY_JOY1+4; //L
gamecontrol[gc_straferight][0] = KEY_JOY1+5; //R
gamecontrol[gc_lookup ][0] = KEY_JOY1+6; //U
gamecontrol[gc_lookdown ][0] = KEY_JOY1+7; //D
gamecontrol[gc_pause ][0] = KEY_JOY1+8; //S
}
#elif defined (_NDS)
void G_Controldefault(void)
{
gamecontrol[gc_fire ][0] = KEY_JOY1+2; //X
gamecontrol[gc_forward ][0] = KEY_UPARROW;
gamecontrol[gc_backward ][0] = KEY_DOWNARROW;
gamecontrol[gc_jump ][0] = KEY_JOY1+0; //A
gamecontrol[gc_brake ][0] = KEY_JOY1+3; //Y
gamecontrol[gc_strafeleft ][0] = KEY_JOY1+4; //L
gamecontrol[gc_straferight][0] = KEY_JOY1+5; //R
// Main controls
gamecontrol[gc_aimforward ][0] = KEY_UPARROW;
gamecontrol[gc_aimbackward][0] = KEY_DOWNARROW;
gamecontrol[gc_turnleft ][0] = KEY_LEFTARROW;
gamecontrol[gc_turnright ][0] = KEY_RIGHTARROW;
gamecontrol[gc_pause ][0] = KEY_JOY1+6; //Start
gamecontrol[gc_driftleft ][0] = KEY_JOY1+7; //Select
}
#else
void G_Controldefault(void)
{
gamecontrol[gc_forward ][0] = KEY_UPARROW;
gamecontrol[gc_forward ][1] = 'w';
gamecontrol[gc_backward ][0] = KEY_DOWNARROW;
gamecontrol[gc_backward ][1] = 's';
gamecontrol[gc_strafeleft ][0] = 'a';
gamecontrol[gc_straferight][0] = 'd';
gamecontrol[gc_turnleft ][0] = KEY_LEFTARROW;
gamecontrol[gc_turnright ][0] = KEY_RIGHTARROW;
gamecontrol[gc_driftleft ][0] = 'e';
gamecontrol[gc_driftright ][0] = 'q';
gamecontrol[gc_wepslot1 ][0] = '1';
gamecontrol[gc_wepslot2 ][0] = '2';
gamecontrol[gc_wepslot3 ][0] = '3';
gamecontrol[gc_wepslot4 ][0] = '4';
gamecontrol[gc_wepslot5 ][0] = '5';
gamecontrol[gc_wepslot6 ][0] = '6';
gamecontrol[gc_wepslot7 ][0] = '7';
gamecontrol[gc_wepslot8 ][0] = '8';
gamecontrol[gc_wepslot9 ][0] = '9';
gamecontrol[gc_wepslot10 ][0] = '0';
gamecontrol[gc_fire ][0] = KEY_RCTRL;
gamecontrol[gc_fire ][1] = KEY_MOUSE1+0;
gamecontrol[gc_accelerate ][0] = 'c';
gamecontrol[gc_spectate ][0] = '\'';
gamecontrol[gc_brake ][0] = 'x';
gamecontrol[gc_camtoggle ][0] = 'v';
gamecontrol[gc_aimforward ][0] = '[';
gamecontrol[gc_aimbackward][0] = ']';
gamecontrol[gc_lookback ][0] = 'r';
gamecontrol[gc_lookup ][0] = KEY_PGUP;
gamecontrol[gc_lookdown ][0] = KEY_PGDN;
gamecontrol[gc_centerview ][0] = KEY_END;
gamecontrol[gc_talkkey ][0] = 't';
gamecontrol[gc_teamkey ][0] = 'y';
gamecontrol[gc_scores ][0] = KEY_TAB;
gamecontrol[gc_jump ][0] = 'z';
gamecontrol[gc_jump ][1] = KEY_MOUSE1+1;
gamecontrol[gc_console ][0] = KEY_CONSOLE;
gamecontrol[gc_accelerate ][0] = 'a';
gamecontrol[gc_drift ][0] = 's';
gamecontrol[gc_brake ][0] = 'd';
gamecontrol[gc_fire ][0] = KEY_SPACE;
gamecontrol[gc_lookback ][0] = KEY_LSHIFT;
// Extra controls
gamecontrol[gc_camtoggle ][0] = KEY_BACKSPACE;
gamecontrol[gc_pause ][0] = KEY_PAUSE;
#ifdef WMINPUT
gamecontrol[gc_forward ][0] = KEY_JOY1+02; //UP
gamecontrol[gc_backward ][0] = KEY_JOY1+03; //DOWN
gamecontrol[gc_turnleft ][0] = KEY_JOY1+04; //LEFT
gamecontrol[gc_turnright ][0] = KEY_JOY1+05; //RIGHT
gamecontrol[gc_driftleft ][0] = KEY_JOY1+10; //y
gamecontrol[gc_driftright ][0] = KEY_JOY1+9; //x
gamecontrol[gc_fire ][0] = KEY_JOY1+12; //L
gamecontrol[gc_accelerate ][0] = KEY_JOY1+13; //R
gamecontrol[gc_brake ][0] = KEY_JOY1+00; //B
gamecontrol[gc_brake ][1] = KEY_JOY1+07; //b
gamecontrol[gc_jump ][0] = KEY_JOY1+01; //A
gamecontrol[gc_jump ][1] = KEY_JOY1+06; //a
gamecontrol[gc_pause ][0] = KEY_JOY1+18; //Home
gamecontrolbis[gc_forward ][0] = KEY_2JOY1+02; //UP
gamecontrolbis[gc_backward ][0] = KEY_2JOY1+03; //DOWN
gamecontrolbis[gc_turnleft ][0] = KEY_2JOY1+04; //LEFT
gamecontrolbis[gc_turnright ][0] = KEY_2JOY1+05; //RIGHT
gamecontrolbis[gc_driftleft ][0] = KEY_2JOY1+10; //y
gamecontrolbis[gc_driftright ][0] = KEY_2JOY1+9; //x
gamecontrolbis[gc_fire ][0] = KEY_2JOY1+12; //L
gamecontrolbis[gc_accelerate ][0] = KEY_2JOY1+13; //R
gamecontrolbis[gc_brake ][0] = KEY_2JOY1+00; //B
gamecontrolbis[gc_brake ][1] = KEY_2JOY1+07; //b
gamecontrolbis[gc_jump ][0] = KEY_2JOY1+01; //A
gamecontrolbis[gc_jump ][1] = KEY_2JOY1+06; //a
gamecontrolbis[gc_pause ][0] = KEY_2JOY1+18; //Home
#endif
#ifdef _WII
gamecontrol[gc_forward ][1] = KEY_HAT1+00; //UP
gamecontrol[gc_backward ][1] = KEY_HAT1+01; //DOWN
gamecontrol[gc_straferight][1] = KEY_JOY1+16; //ZR
gamecontrol[gc_strafeleft ][1] = KEY_JOY1+15; //ZL
gamecontrol[gc_turnleft ][1] = KEY_HAT1+02; //LEFT
gamecontrol[gc_turnright ][1] = KEY_HAT1+03; //RIGHT
gamecontrol[gc_driftleft ][1] = KEY_JOY1+11; //x
gamecontrol[gc_fire ][0] = KEY_JOY1+12; //y
gamecontrol[gc_fire ][1] = KEY_JOY1+01; //B
gamecontrol[gc_accelerate ][0] = KEY_JOY1+13; //L
gamecontrol[gc_accelerate ][1] = KEY_JOY1+00; //A
gamecontrol[gc_spectate ][1] = KEY_JOY1+17; //Plus CC
gamecontrol[gc_brake ][0] = KEY_JOY1+9; //a
gamecontrol[gc_brake ][1] = KEY_JOY1+02; //1
gamecontrol[gc_centerview ][1] = KEY_JOY1+14; //R
gamecontrol[gc_scores ][0] = KEY_JOY1+04; //Minus
gamecontrol[gc_scores ][1] = KEY_JOY1+18; //Minus
gamecontrol[gc_jump ][0] = KEY_JOY1+10; //b
gamecontrol[gc_jump ][1] = KEY_JOY1+3; //2
gamecontrol[gc_pause ][0] = KEY_JOY1+06; //Home
gamecontrol[gc_pause ][1] = KEY_JOY1+19; //Home
gamecontrolbis[gc_forward ][1] = KEY_2HAT1+00; //UP
gamecontrolbis[gc_backward ][1] = KEY_2HAT1+01; //DOWN
gamecontrolbis[gc_straferight][1] = KEY_2JOY1+16; //ZR
gamecontrolbis[gc_strafeleft ][1] = KEY_2JOY1+15; //ZL
gamecontrolbis[gc_turnleft ][1] = KEY_2HAT1+02; //LEFT
gamecontrolbis[gc_turnright ][1] = KEY_2HAT1+03; //RIGHT
gamecontrolbis[gc_driftleft ][1] = KEY_2JOY1+11; //x
gamecontrolbis[gc_fire ][0] = KEY_2JOY1+12; //y
gamecontrolbis[gc_fire ][1] = KEY_2JOY1+01; //B
gamecontrolbis[gc_accelerate ][0] = KEY_2JOY1+13; //L
gamecontrolbis[gc_accelerate ][1] = KEY_2JOY1+00; //A
gamecontrolbis[gc_spectate ][1] = KEY_2JOY1+17; //Plus CC
gamecontrolbis[gc_brake ][0] = KEY_2JOY1+9; //a
gamecontrolbis[gc_brake ][1] = KEY_2JOY1+02; //1
gamecontrolbis[gc_centerview ][1] = KEY_2JOY1+14; //R
gamecontrolbis[gc_scores ][0] = KEY_2JOY1+04; //Minus
gamecontrolbis[gc_scores ][1] = KEY_2JOY1+18; //Minus
gamecontrolbis[gc_jump ][0] = KEY_2JOY1+10; //b
gamecontrolbis[gc_jump ][1] = KEY_2JOY1+3; //2
gamecontrolbis[gc_pause ][0] = KEY_2JOY1+06; //Home
gamecontrolbis[gc_pause ][1] = KEY_2JOY1+19; //Home
#endif
gamecontrol[gc_console ][0] = KEY_CONSOLE;
gamecontrol[gc_talkkey ][0] = 't';
gamecontrol[gc_teamkey ][0] = 'y';
gamecontrol[gc_scores ][0] = KEY_TAB;
gamecontrol[gc_spectate ][0] = '\'';
// Spectator controls
gamecontrol[gc_lookup ][0] = KEY_PGUP;
gamecontrol[gc_lookdown ][0] = KEY_PGDN;
gamecontrol[gc_centerview ][0] = KEY_END;
}
#endif
//#endif
void G_SaveKeySetting(FILE *f)
{

View File

@ -94,40 +94,23 @@ typedef enum
typedef enum
{
gc_null = 0, // a key/button mapped to gc_null has no effect
gc_forward,
gc_backward,
gc_strafeleft,
gc_straferight,
gc_aimforward,
gc_aimbackward,
gc_turnleft,
gc_turnright,
gc_driftleft, // gc_weaponnext
gc_driftright, // gc_weaponprev
gc_wepslot1,
gc_wepslot2,
gc_wepslot3,
gc_wepslot4,
gc_wepslot5,
gc_wepslot6,
gc_wepslot7,
gc_wepslot8,
gc_wepslot9,
gc_wepslot10,
gc_accelerate,
gc_drift,
gc_brake,
gc_fire,
gc_accelerate, // gc_firenormal
gc_spectate, // gc_tossflag
gc_brake, // gc_use
gc_lookback,
gc_camtoggle,
gc_aimforward, // gc_camleft
gc_aimbackward, // gc_camright
gc_lookback, // gc_camreset
gc_spectate,
gc_lookup,
gc_lookdown,
gc_centerview,
gc_mouseaiming, // mouse aiming is momentary (toggleable in the menu)
gc_talkkey,
gc_teamkey,
gc_scores,
gc_jump,
gc_console,
gc_pause,
gc_custom1, // Lua scriptable

View File

@ -1575,7 +1575,7 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
&& player->kartstuff[k_feather] & 2)
player->kartstuff[k_feather] &= ~2;
if (cmd->buttons & BT_JUMP)
if (cmd->buttons & BT_DRIFT)
player->kartstuff[k_jmp] = 1;
else
player->kartstuff[k_jmp] = 0;

View File

@ -1101,7 +1101,7 @@ void OP_ObjectplaceMovement(player_t *player)
if (!(cmd->angleturn & TICCMD_RECEIVED))
ticmiss++;
if (cmd->buttons & BT_JUMP)
if (cmd->buttons & BT_DRIFT)
player->mo->z += FRACUNIT*cv_speed.value;
else if (cmd->buttons & BT_BRAKE)
player->mo->z -= FRACUNIT*cv_speed.value;

View File

@ -1120,7 +1120,7 @@ static menuitem_t OP_MoveControlsMenu[] =
{IT_CALL | IT_STRING2, NULL, "Turn Left", M_ChangeControl, gc_turnleft },
{IT_CALL | IT_STRING2, NULL, "Turn Right", M_ChangeControl, gc_turnright },
{IT_CALL | IT_STRING2, NULL, "Accelerate", M_ChangeControl, gc_accelerate },
{IT_CALL | IT_STRING2, NULL, "Drift", M_ChangeControl, gc_jump },
{IT_CALL | IT_STRING2, NULL, "Drift", M_ChangeControl, gc_drift },
{IT_CALL | IT_STRING2, NULL, "Brake", M_ChangeControl, gc_brake },
{IT_CALL | IT_STRING2, NULL, "Use/Throw Item", M_ChangeControl, gc_fire },
{IT_CALL | IT_STRING2, NULL, "Look Backward", M_ChangeControl, gc_lookback },

View File

@ -4108,7 +4108,7 @@ static void P_DoJumpStuff(player_t *player, ticcmd_t *cmd)
}
}
if (cmd->buttons & BT_JUMP && !player->exiting && !P_PlayerInPain(player))
if (cmd->buttons & BT_DRIFT && !player->exiting && !P_PlayerInPain(player))
{
#ifdef HAVE_BLUA
if (LUAh_JumpSpecial(player))
@ -4321,7 +4321,7 @@ static void P_DoJumpStuff(player_t *player, ticcmd_t *cmd)
*/
}
if (cmd->buttons & BT_JUMP)
if (cmd->buttons & BT_DRIFT)
{
player->pflags |= PF_JUMPDOWN;
@ -5068,7 +5068,7 @@ static void P_SpectatorMovement(player_t *player)
if (player->mo->z < player->mo->floorz)
player->mo->z = player->mo->floorz;
if (cmd->buttons & BT_JUMP)
if (cmd->buttons & BT_DRIFT)
player->mo->z += FRACUNIT*16;
else if (cmd->buttons & BT_BRAKE)
player->mo->z -= FRACUNIT*16;
@ -5759,7 +5759,7 @@ static void P_NiGHTSMovement(player_t *player)
if (player->drilldelay)
player->drilldelay--;
if (!(cmd->buttons & BT_JUMP))
if (!(cmd->buttons & BT_DRIFT))
{
// Always have just a TINY bit of drill power.
if (player->drillmeter <= 0)
@ -5996,7 +5996,7 @@ static void P_NiGHTSMovement(player_t *player)
player->pflags |= PF_DRILLING;
newangle = (INT16)player->flyangle;
}
else if (cmd->buttons & BT_JUMP && player->drillmeter && player->drilldelay == 0)
else if (cmd->buttons & BT_DRIFT && player->drillmeter && player->drilldelay == 0)
{
if (!player->jumping)
firstdrill = true;
@ -7003,7 +7003,7 @@ static void P_MovePlayer(player_t *player)
if (player->charability2 == CA2_MULTIABILITY)
{
// Adventure-style flying by just holding the button down
if (cmd->buttons & BT_JUMP && !(player->pflags & PF_STASIS) && !player->exiting)
if (cmd->buttons & BT_DRIFT && !(player->pflags & PF_STASIS) && !player->exiting)
P_SetObjectMomZ(player->mo, actionspd/4, true);
}
else
@ -8001,7 +8001,7 @@ static void P_DeathThink(player_t *player)
// continue logic
if (!(netgame || multiplayer) && player->lives <= 0)
{
if (player->deadtimer > TICRATE && (cmd->buttons & BT_BRAKE || cmd->buttons & BT_ACCELERATE || cmd->buttons & BT_JUMP) && player->continues > 0)
if (player->deadtimer > TICRATE && (cmd->buttons & BT_BRAKE || cmd->buttons & BT_ACCELERATE || cmd->buttons & BT_DRIFT) && player->continues > 0)
G_UseContinue();
else if (player->deadtimer >= gameovertics)
G_UseContinue(); // Even if we don't have one this handles ending the game