mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2025-02-20 19:02:37 +00:00
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
6 changed files with 37 additions and 33 deletions
|
@ -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
|
||||
#ifdef DEVELOP
|
||||
#define VERSION 103 // Game version
|
||||
#define SUBVERSION 9 // more precise version number
|
||||
#define SUBVERSION 10 // more precise version number
|
||||
#define VERSIONSTRING "Development EXE"
|
||||
#define VERSIONSTRINGW "v1.3.09"
|
||||
#define VERSIONSTRINGW "v1.3.10"
|
||||
// most interface strings are ignored in development mode.
|
||||
// we use comprevision and compbranch instead.
|
||||
#else
|
||||
#define VERSION 103 // Game version
|
||||
#define SUBVERSION 9 // more precise version number
|
||||
#define VERSIONSTRING "DevEXE v1.3.09"
|
||||
#define VERSIONSTRINGW L"v1.3.09"
|
||||
#define SUBVERSION 10 // more precise version number
|
||||
#define VERSIONSTRING "DevEXE v1.3.10"
|
||||
#define VERSIONSTRINGW L"v1.3.10"
|
||||
// Hey! If you change this, add 1 to the MODVERSION below!
|
||||
// Otherwise we can't force updates!
|
||||
#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])
|
||||
{
|
||||
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;
|
||||
forward -= forwardmove[speed];
|
||||
forward -= forwardmove[0]; // 25 - Halved value so clutching is possible
|
||||
}
|
||||
// But forward/backward IS used for aiming.
|
||||
axis = JoyAxis(AXISMOVE);
|
||||
|
@ -1400,15 +1400,15 @@ void G_BuildTiccmd2(ticcmd_t *cmd, INT32 realtics)
|
|||
*/
|
||||
|
||||
// forward with key or button
|
||||
if (PLAYER2INPUTDOWN(gc_accelerate))
|
||||
if (PLAYER2INPUTDOWN(gc_accelerate) || player->kartstuff[k_mushroomtimer])
|
||||
{
|
||||
cmd->buttons |= BT_ACCELERATE;
|
||||
forward = forwardmove[speed];
|
||||
forward = forwardmove[1];
|
||||
}
|
||||
if (PLAYER2INPUTDOWN(gc_brake))
|
||||
{
|
||||
cmd->buttons |= BT_BRAKE;
|
||||
forward -= forwardmove[speed];
|
||||
forward -= forwardmove[0];
|
||||
}
|
||||
// forward/backward is used for aiming.
|
||||
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 m2w = 15 + mobj2->player->kartweight;
|
||||
|
||||
newx = FixedMul(mobj1->momy, FixedDiv(m1w*FRACUNIT, m2w*FRACUNIT));
|
||||
newy = FixedMul(mobj1->momx, FixedDiv(m1w*FRACUNIT, m2w*FRACUNIT));
|
||||
mobj1->momx = FixedMul(mobj2->momy, FixedDiv(m2w*FRACUNIT, m1w*FRACUNIT));
|
||||
mobj1->momy = FixedMul(mobj2->momx, FixedDiv(m2w*FRACUNIT, m1w*FRACUNIT));
|
||||
newx = FixedMul(mobj1->momx, FixedDiv(m1w*FRACUNIT, m2w*FRACUNIT));
|
||||
newy = FixedMul(mobj1->momy, FixedDiv(m1w*FRACUNIT, m2w*FRACUNIT));
|
||||
mobj1->momx = FixedMul(mobj2->momx, FixedDiv(m2w*FRACUNIT, m1w*FRACUNIT));
|
||||
mobj1->momy = FixedMul(mobj2->momy, FixedDiv(m2w*FRACUNIT, m1w*FRACUNIT));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1313,7 +1313,7 @@ static fixed_t K_GetKartAccel(player_t *player)
|
|||
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 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);
|
||||
finalspeed = newspeed - oldspeed;
|
||||
|
||||
if (!forwardmovement && finalspeed > FRACUNIT*2)
|
||||
return FRACUNIT/8;
|
||||
else if (!forwardmovement)
|
||||
return FRACUNIT/2;
|
||||
// forwardmove is:
|
||||
// 50 while accelerating,
|
||||
// 25 while clutching,
|
||||
// 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)
|
||||
finalspeed = 0;
|
||||
|
|
|
@ -26,7 +26,7 @@ void K_DoMushroom(player_t *player, boolean doPFlag);
|
|||
INT16 K_GetKartTurnValue(player_t *player, INT16 turnvalue);
|
||||
void K_MomentumToFacing(player_t *player);
|
||||
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_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->threshold = 44; // Special flag for crushing
|
||||
}
|
||||
if (thing->player)
|
||||
if (!thing->player)
|
||||
P_DamageMobj(thing, killer, killer, 10000);
|
||||
else
|
||||
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
|
||||
&& cmd->forwardmove != 0 && !(player->pflags & PF_GLIDING || player->exiting
|
||||
//&& cmd->forwardmove != 0
|
||||
&& !(player->pflags & PF_GLIDING || player->exiting
|
||||
|| (P_PlayerInPain(player) && !onground)))
|
||||
{
|
||||
//movepushforward = cmd->forwardmove * (thrustfactor * acceleration);
|
||||
if (cmd->forwardmove > 0)
|
||||
movepushforward = K_3dKartMovement(player, onground, true);
|
||||
else
|
||||
movepushforward = -(K_3dKartMovement(player, onground, false));
|
||||
movepushforward = K_3dKartMovement(player, onground, cmd->forwardmove);
|
||||
|
||||
// allow very small movement while in air for gameplay
|
||||
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;
|
||||
|
||||
//movepushforward = max(abs(cmd->sidemove), abs(cmd->forwardmove)) * (thrustfactor * acceleration);
|
||||
if (max(abs(cmd->sidemove), abs(cmd->forwardmove)) > 0)
|
||||
movepushforward = K_3dKartMovement(player, onground, true);
|
||||
else
|
||||
movepushforward = -(K_3dKartMovement(player, onground, false));
|
||||
movepushforward = K_3dKartMovement(player, onground, max(abs(cmd->sidemove), abs(cmd->forwardmove)));
|
||||
|
||||
// allow very small movement while in air for gameplay
|
||||
if (!onground)
|
||||
|
@ -4857,9 +4852,9 @@ static void P_3dMovement(player_t *player)
|
|||
{
|
||||
//movepushside = cmd->sidemove * (thrustfactor * acceleration);
|
||||
if (cmd->sidemove > 0)
|
||||
movepushside = K_3dKartMovement(player, onground, true);
|
||||
movepushside = K_3dKartMovement(player, onground, 50);
|
||||
else
|
||||
movepushside = -(K_3dKartMovement(player, onground, true));
|
||||
movepushside = -(K_3dKartMovement(player, onground, 50));
|
||||
|
||||
if (!onground)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue