v1.3.10
------- Accelcode now factors in forwardmove value rather than a boolean. This is used to enable clutching (or whatever you call it; accel+brake) to give its own result. Fixed Thwomps killing players rather than crushing them. Reverted buggy collision experiment from previous version.
This commit is contained in:
parent
74589aaea8
commit
04432f7789
|
@ -143,16 +143,16 @@ extern FILE *logstream;
|
||||||
#define DEVELOP // Disable this for release builds to remove excessive cheat commands and enable MD5 checking and stuff, all in one go. :3
|
#define DEVELOP // Disable this for release builds to remove excessive cheat commands and enable MD5 checking and stuff, all in one go. :3
|
||||||
#ifdef DEVELOP
|
#ifdef DEVELOP
|
||||||
#define VERSION 103 // Game version
|
#define VERSION 103 // Game version
|
||||||
#define SUBVERSION 9 // more precise version number
|
#define SUBVERSION 10 // more precise version number
|
||||||
#define VERSIONSTRING "Development EXE"
|
#define VERSIONSTRING "Development EXE"
|
||||||
#define VERSIONSTRINGW "v1.3.09"
|
#define VERSIONSTRINGW "v1.3.10"
|
||||||
// most interface strings are ignored in development mode.
|
// most interface strings are ignored in development mode.
|
||||||
// we use comprevision and compbranch instead.
|
// we use comprevision and compbranch instead.
|
||||||
#else
|
#else
|
||||||
#define VERSION 103 // Game version
|
#define VERSION 103 // Game version
|
||||||
#define SUBVERSION 9 // more precise version number
|
#define SUBVERSION 10 // more precise version number
|
||||||
#define VERSIONSTRING "DevEXE v1.3.09"
|
#define VERSIONSTRING "DevEXE v1.3.10"
|
||||||
#define VERSIONSTRINGW L"v1.3.09"
|
#define VERSIONSTRINGW L"v1.3.10"
|
||||||
// Hey! If you change this, add 1 to the MODVERSION below!
|
// Hey! If you change this, add 1 to the MODVERSION below!
|
||||||
// Otherwise we can't force updates!
|
// Otherwise we can't force updates!
|
||||||
#endif
|
#endif
|
||||||
|
|
12
src/g_game.c
12
src/g_game.c
|
@ -1055,12 +1055,12 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics)
|
||||||
if (PLAYER1INPUTDOWN(gc_accelerate) || player->kartstuff[k_mushroomtimer])
|
if (PLAYER1INPUTDOWN(gc_accelerate) || player->kartstuff[k_mushroomtimer])
|
||||||
{
|
{
|
||||||
cmd->buttons |= BT_ACCELERATE;
|
cmd->buttons |= BT_ACCELERATE;
|
||||||
forward = forwardmove[speed];
|
forward = forwardmove[1]; // 50
|
||||||
}
|
}
|
||||||
if (PLAYER1INPUTDOWN(gc_brake) && !player->kartstuff[k_mushroomtimer])
|
if (PLAYER1INPUTDOWN(gc_brake))
|
||||||
{
|
{
|
||||||
cmd->buttons |= BT_BRAKE;
|
cmd->buttons |= BT_BRAKE;
|
||||||
forward -= forwardmove[speed];
|
forward -= forwardmove[0]; // 25 - Halved value so clutching is possible
|
||||||
}
|
}
|
||||||
// But forward/backward IS used for aiming.
|
// But forward/backward IS used for aiming.
|
||||||
axis = JoyAxis(AXISMOVE);
|
axis = JoyAxis(AXISMOVE);
|
||||||
|
@ -1400,15 +1400,15 @@ void G_BuildTiccmd2(ticcmd_t *cmd, INT32 realtics)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// forward with key or button
|
// forward with key or button
|
||||||
if (PLAYER2INPUTDOWN(gc_accelerate))
|
if (PLAYER2INPUTDOWN(gc_accelerate) || player->kartstuff[k_mushroomtimer])
|
||||||
{
|
{
|
||||||
cmd->buttons |= BT_ACCELERATE;
|
cmd->buttons |= BT_ACCELERATE;
|
||||||
forward = forwardmove[speed];
|
forward = forwardmove[1];
|
||||||
}
|
}
|
||||||
if (PLAYER2INPUTDOWN(gc_brake))
|
if (PLAYER2INPUTDOWN(gc_brake))
|
||||||
{
|
{
|
||||||
cmd->buttons |= BT_BRAKE;
|
cmd->buttons |= BT_BRAKE;
|
||||||
forward -= forwardmove[speed];
|
forward -= forwardmove[0];
|
||||||
}
|
}
|
||||||
// forward/backward is used for aiming.
|
// forward/backward is used for aiming.
|
||||||
axis = Joy2Axis(AXISMOVE);
|
axis = Joy2Axis(AXISMOVE);
|
||||||
|
|
27
src/k_kart.c
27
src/k_kart.c
|
@ -939,10 +939,10 @@ void K_SwapMomentum(mobj_t *mobj1, mobj_t *mobj2, boolean bounce)
|
||||||
fixed_t m1w = 15 + mobj1->player->kartweight;
|
fixed_t m1w = 15 + mobj1->player->kartweight;
|
||||||
fixed_t m2w = 15 + mobj2->player->kartweight;
|
fixed_t m2w = 15 + mobj2->player->kartweight;
|
||||||
|
|
||||||
newx = FixedMul(mobj1->momy, FixedDiv(m1w*FRACUNIT, m2w*FRACUNIT));
|
newx = FixedMul(mobj1->momx, FixedDiv(m1w*FRACUNIT, m2w*FRACUNIT));
|
||||||
newy = FixedMul(mobj1->momx, FixedDiv(m1w*FRACUNIT, m2w*FRACUNIT));
|
newy = FixedMul(mobj1->momy, FixedDiv(m1w*FRACUNIT, m2w*FRACUNIT));
|
||||||
mobj1->momx = FixedMul(mobj2->momy, FixedDiv(m2w*FRACUNIT, m1w*FRACUNIT));
|
mobj1->momx = FixedMul(mobj2->momx, FixedDiv(m2w*FRACUNIT, m1w*FRACUNIT));
|
||||||
mobj1->momy = FixedMul(mobj2->momx, FixedDiv(m2w*FRACUNIT, m1w*FRACUNIT));
|
mobj1->momy = FixedMul(mobj2->momy, FixedDiv(m2w*FRACUNIT, m1w*FRACUNIT));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1313,7 +1313,7 @@ static fixed_t K_GetKartAccel(player_t *player)
|
||||||
return FixedMul(k_accel, K_GetKartBoostPower(player, false));
|
return FixedMul(k_accel, K_GetKartBoostPower(player, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
fixed_t K_3dKartMovement(player_t *player, boolean onground, boolean forwardmovement)
|
fixed_t K_3dKartMovement(player_t *player, boolean onground, fixed_t forwardmove)
|
||||||
{
|
{
|
||||||
fixed_t accelmax = 4000;
|
fixed_t accelmax = 4000;
|
||||||
fixed_t newspeed, oldspeed, finalspeed;
|
fixed_t newspeed, oldspeed, finalspeed;
|
||||||
|
@ -1327,10 +1327,19 @@ fixed_t K_3dKartMovement(player_t *player, boolean onground, boolean forwardmove
|
||||||
newspeed = FixedDiv(FixedDiv(FixedMul(oldspeed, accelmax - p_accel) + FixedMul(p_speed, p_accel), accelmax), ORIG_FRICTION);
|
newspeed = FixedDiv(FixedDiv(FixedMul(oldspeed, accelmax - p_accel) + FixedMul(p_speed, p_accel), accelmax), ORIG_FRICTION);
|
||||||
finalspeed = newspeed - oldspeed;
|
finalspeed = newspeed - oldspeed;
|
||||||
|
|
||||||
if (!forwardmovement && finalspeed > FRACUNIT*2)
|
// forwardmove is:
|
||||||
return FRACUNIT/8;
|
// 50 while accelerating,
|
||||||
else if (!forwardmovement)
|
// 25 while clutching,
|
||||||
return FRACUNIT/2;
|
// 0 with no gas, and
|
||||||
|
// -25 when only braking.
|
||||||
|
|
||||||
|
finalspeed *= forwardmove/25;
|
||||||
|
finalspeed /= 2;
|
||||||
|
|
||||||
|
if (forwardmove < 0 && finalspeed > FRACUNIT*2)
|
||||||
|
return finalspeed/2;
|
||||||
|
else if (forwardmove < 0)
|
||||||
|
return -FRACUNIT/2;
|
||||||
|
|
||||||
if (finalspeed < 0)
|
if (finalspeed < 0)
|
||||||
finalspeed = 0;
|
finalspeed = 0;
|
||||||
|
|
|
@ -26,7 +26,7 @@ void K_DoMushroom(player_t *player, boolean doPFlag);
|
||||||
INT16 K_GetKartTurnValue(player_t *player, INT16 turnvalue);
|
INT16 K_GetKartTurnValue(player_t *player, INT16 turnvalue);
|
||||||
void K_MomentumToFacing(player_t *player);
|
void K_MomentumToFacing(player_t *player);
|
||||||
fixed_t K_GetKartSpeed(player_t *player, boolean doboostpower);
|
fixed_t K_GetKartSpeed(player_t *player, boolean doboostpower);
|
||||||
fixed_t K_3dKartMovement(player_t *player, boolean onground, boolean forwardmovement);
|
fixed_t K_3dKartMovement(player_t *player, boolean onground, fixed_t forwardmove);
|
||||||
void K_MoveKartPlayer(player_t *player, boolean onground);
|
void K_MoveKartPlayer(player_t *player, boolean onground);
|
||||||
|
|
||||||
void K_LoadKartHUDGraphics(void);
|
void K_LoadKartHUDGraphics(void);
|
||||||
|
|
|
@ -3938,7 +3938,7 @@ static boolean PIT_ChangeSector(mobj_t *thing, boolean realcrush)
|
||||||
killer = P_SpawnMobj(thing->x, thing->y, thing->z, MT_NULL);
|
killer = P_SpawnMobj(thing->x, thing->y, thing->z, MT_NULL);
|
||||||
killer->threshold = 44; // Special flag for crushing
|
killer->threshold = 44; // Special flag for crushing
|
||||||
}
|
}
|
||||||
if (thing->player)
|
if (!thing->player)
|
||||||
P_DamageMobj(thing, killer, killer, 10000);
|
P_DamageMobj(thing, killer, killer, 10000);
|
||||||
else
|
else
|
||||||
K_SquishPlayer(thing->player, killer); // SRB2kart - Squish instead of kill
|
K_SquishPlayer(thing->player, killer); // SRB2kart - Squish instead of kill
|
||||||
|
|
17
src/p_user.c
17
src/p_user.c
|
@ -4750,14 +4750,12 @@ static void P_3dMovement(player_t *player)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (!analogmove
|
else if (!analogmove
|
||||||
&& cmd->forwardmove != 0 && !(player->pflags & PF_GLIDING || player->exiting
|
//&& cmd->forwardmove != 0
|
||||||
|
&& !(player->pflags & PF_GLIDING || player->exiting
|
||||||
|| (P_PlayerInPain(player) && !onground)))
|
|| (P_PlayerInPain(player) && !onground)))
|
||||||
{
|
{
|
||||||
//movepushforward = cmd->forwardmove * (thrustfactor * acceleration);
|
//movepushforward = cmd->forwardmove * (thrustfactor * acceleration);
|
||||||
if (cmd->forwardmove > 0)
|
movepushforward = K_3dKartMovement(player, onground, cmd->forwardmove);
|
||||||
movepushforward = K_3dKartMovement(player, onground, true);
|
|
||||||
else
|
|
||||||
movepushforward = -(K_3dKartMovement(player, onground, false));
|
|
||||||
|
|
||||||
// allow very small movement while in air for gameplay
|
// allow very small movement while in air for gameplay
|
||||||
if (!onground)
|
if (!onground)
|
||||||
|
@ -4815,10 +4813,7 @@ static void P_3dMovement(player_t *player)
|
||||||
controldirection = R_PointToAngle2(0, 0, cmd->forwardmove*FRACUNIT, -cmd->sidemove*FRACUNIT)+movepushangle;
|
controldirection = R_PointToAngle2(0, 0, cmd->forwardmove*FRACUNIT, -cmd->sidemove*FRACUNIT)+movepushangle;
|
||||||
|
|
||||||
//movepushforward = max(abs(cmd->sidemove), abs(cmd->forwardmove)) * (thrustfactor * acceleration);
|
//movepushforward = max(abs(cmd->sidemove), abs(cmd->forwardmove)) * (thrustfactor * acceleration);
|
||||||
if (max(abs(cmd->sidemove), abs(cmd->forwardmove)) > 0)
|
movepushforward = K_3dKartMovement(player, onground, max(abs(cmd->sidemove), abs(cmd->forwardmove)));
|
||||||
movepushforward = K_3dKartMovement(player, onground, true);
|
|
||||||
else
|
|
||||||
movepushforward = -(K_3dKartMovement(player, onground, false));
|
|
||||||
|
|
||||||
// allow very small movement while in air for gameplay
|
// allow very small movement while in air for gameplay
|
||||||
if (!onground)
|
if (!onground)
|
||||||
|
@ -4857,9 +4852,9 @@ static void P_3dMovement(player_t *player)
|
||||||
{
|
{
|
||||||
//movepushside = cmd->sidemove * (thrustfactor * acceleration);
|
//movepushside = cmd->sidemove * (thrustfactor * acceleration);
|
||||||
if (cmd->sidemove > 0)
|
if (cmd->sidemove > 0)
|
||||||
movepushside = K_3dKartMovement(player, onground, true);
|
movepushside = K_3dKartMovement(player, onground, 50);
|
||||||
else
|
else
|
||||||
movepushside = -(K_3dKartMovement(player, onground, true));
|
movepushside = -(K_3dKartMovement(player, onground, 50));
|
||||||
|
|
||||||
if (!onground)
|
if (!onground)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue