mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2025-03-11 03:42:34 +00:00
General fixes
- Flame trails don't spawn if you're not on the ground - Mobjscale: Shells are now the correct speed - Mobjscale: Explosion's wipeout hit height scales
This commit is contained in:
parent
f985401ca4
commit
1e1867fe42
2 changed files with 15 additions and 13 deletions
10
src/k_kart.c
10
src/k_kart.c
|
@ -1487,7 +1487,7 @@ void K_ExplodePlayer(player_t *player, mobj_t *source) // A bit of a hack, we ju
|
|||
|| (gametype != GT_RACE && ((player->kartstuff[k_balloon] <= 0 && player->kartstuff[k_comebacktimer]) || player->kartstuff[k_comebackmode] == 1)))
|
||||
return;
|
||||
|
||||
player->mo->momz = 18*FRACUNIT;
|
||||
player->mo->momz = 18*(mapheaderinfo[gamemap-1]->mobj_scale);
|
||||
player->mo->momx = player->mo->momy = 0;
|
||||
|
||||
player->kartstuff[k_mushroomtimer] = 0;
|
||||
|
@ -1847,6 +1847,11 @@ void K_SpawnDriftTrail(player_t *player)
|
|||
I_Assert(player->mo != NULL);
|
||||
I_Assert(!P_MobjWasRemoved(player->mo));
|
||||
|
||||
if (!P_IsObjectOnGround(player->mo)
|
||||
|| player->kartstuff[k_bootimer] != 0
|
||||
|| (gametype != GT_RACE && player->kartstuff[k_balloon] <= 0 && player->kartstuff[k_comebacktimer])))
|
||||
return;
|
||||
|
||||
if (player->mo->eflags & MFE_VERTICALFLIP)
|
||||
ground = player->mo->ceilingz - FixedMul(mobjinfo[MT_MUSHROOMTRAIL].height, player->mo->scale);
|
||||
else
|
||||
|
@ -1859,9 +1864,6 @@ void K_SpawnDriftTrail(player_t *player)
|
|||
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
if (player->kartstuff[k_bootimer] != 0 || (gametype != GT_RACE && player->kartstuff[k_balloon] <= 0 && player->kartstuff[k_comebacktimer]))
|
||||
continue;
|
||||
|
||||
newx = player->mo->x + P_ReturnThrustX(player->mo, travelangle + ((i&1) ? -1 : 1)*ANGLE_135, FixedMul(24*FRACUNIT, player->mo->scale));
|
||||
newy = player->mo->y + P_ReturnThrustY(player->mo, travelangle + ((i&1) ? -1 : 1)*ANGLE_135, FixedMul(24*FRACUNIT, player->mo->scale));
|
||||
#ifdef ESLOPE
|
||||
|
|
18
src/p_mobj.c
18
src/p_mobj.c
|
@ -7787,9 +7787,9 @@ void P_MobjThinker(mobj_t *mobj)
|
|||
P_SpawnGhostMobj(mobj);
|
||||
|
||||
if (gamespeed == 0)
|
||||
finalspeed = FixedMul(finalspeed, FRACUNIT-FRACUNIT/4);
|
||||
finalspeed = FixedMul(finalspeed, (mapheaderinfo[gamemap-1]->mobj_scale)-(mapheaderinfo[gamemap-1]->mobj_scale/4));
|
||||
else if (gamespeed == 2)
|
||||
finalspeed = FixedMul(finalspeed, FRACUNIT+FRACUNIT/4);
|
||||
finalspeed = FixedMul(finalspeed, (mapheaderinfo[gamemap-1]->mobj_scale)+(mapheaderinfo[gamemap-1]->mobj_scale/4));
|
||||
|
||||
mobj->angle = R_PointToAngle2(mobj->x, mobj->y, mobj->x+mobj->momx, mobj->y+mobj->momy);
|
||||
if (mobj->health <= 5)
|
||||
|
@ -7797,7 +7797,7 @@ void P_MobjThinker(mobj_t *mobj)
|
|||
INT32 i;
|
||||
for (i = 5; i >= mobj->health; i--)
|
||||
{
|
||||
finalspeed = FixedMul(finalspeed, FRACUNIT-FRACUNIT/4);
|
||||
finalspeed = FixedMul(finalspeed, (mapheaderinfo[gamemap-1]->mobj_scale)-(mapheaderinfo[gamemap-1]->mobj_scale/4));
|
||||
}
|
||||
P_InstaThrust(mobj, mobj->angle, finalspeed);
|
||||
}
|
||||
|
@ -7822,8 +7822,8 @@ void P_MobjThinker(mobj_t *mobj)
|
|||
case MT_REDITEM:
|
||||
{
|
||||
sector_t *sec2;
|
||||
fixed_t topspeed = 64*FRACUNIT;
|
||||
fixed_t distbarrier = 512*FRACUNIT;
|
||||
fixed_t topspeed = 64*(mapheaderinfo[gamemap-1]->mobj_scale);
|
||||
fixed_t distbarrier = 512*(mapheaderinfo[gamemap-1]->mobj_scale);
|
||||
fixed_t distaway;
|
||||
|
||||
P_SpawnGhostMobj(mobj);
|
||||
|
@ -7835,13 +7835,13 @@ void P_MobjThinker(mobj_t *mobj)
|
|||
|
||||
if (gamespeed == 0)
|
||||
{
|
||||
topspeed = FixedMul(topspeed, FRACUNIT-FRACUNIT/4);
|
||||
distbarrier = FixedMul(distbarrier, FRACUNIT-FRACUNIT/4);
|
||||
topspeed = FixedMul(topspeed, (mapheaderinfo[gamemap-1]->mobj_scale)-(mapheaderinfo[gamemap-1]->mobj_scale/4));
|
||||
distbarrier = FixedMul(distbarrier, (mapheaderinfo[gamemap-1]->mobj_scale)-(mapheaderinfo[gamemap-1]->mobj_scale/4));
|
||||
}
|
||||
else if (gamespeed == 2)
|
||||
{
|
||||
topspeed = FixedMul(topspeed, FRACUNIT+FRACUNIT/4);
|
||||
distbarrier = FixedMul(distbarrier, FRACUNIT+FRACUNIT/4);
|
||||
topspeed = FixedMul(topspeed, (mapheaderinfo[gamemap-1]->mobj_scale)+(mapheaderinfo[gamemap-1]->mobj_scale/4));
|
||||
distbarrier = FixedMul(distbarrier, (mapheaderinfo[gamemap-1]->mobj_scale)+(mapheaderinfo[gamemap-1]->mobj_scale/4);
|
||||
}
|
||||
|
||||
if (gametype == GT_RACE && mobj->tracer)
|
||||
|
|
Loading…
Reference in a new issue