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
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)))
|
|| (gametype != GT_RACE && ((player->kartstuff[k_balloon] <= 0 && player->kartstuff[k_comebacktimer]) || player->kartstuff[k_comebackmode] == 1)))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
player->mo->momz = 18*FRACUNIT;
|
player->mo->momz = 18*(mapheaderinfo[gamemap-1]->mobj_scale);
|
||||||
player->mo->momx = player->mo->momy = 0;
|
player->mo->momx = player->mo->momy = 0;
|
||||||
|
|
||||||
player->kartstuff[k_mushroomtimer] = 0;
|
player->kartstuff[k_mushroomtimer] = 0;
|
||||||
|
@ -1847,6 +1847,11 @@ void K_SpawnDriftTrail(player_t *player)
|
||||||
I_Assert(player->mo != NULL);
|
I_Assert(player->mo != NULL);
|
||||||
I_Assert(!P_MobjWasRemoved(player->mo));
|
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)
|
if (player->mo->eflags & MFE_VERTICALFLIP)
|
||||||
ground = player->mo->ceilingz - FixedMul(mobjinfo[MT_MUSHROOMTRAIL].height, player->mo->scale);
|
ground = player->mo->ceilingz - FixedMul(mobjinfo[MT_MUSHROOMTRAIL].height, player->mo->scale);
|
||||||
else
|
else
|
||||||
|
@ -1859,9 +1864,6 @@ void K_SpawnDriftTrail(player_t *player)
|
||||||
|
|
||||||
for (i = 0; i < 2; i++)
|
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));
|
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));
|
newy = player->mo->y + P_ReturnThrustY(player->mo, travelangle + ((i&1) ? -1 : 1)*ANGLE_135, FixedMul(24*FRACUNIT, player->mo->scale));
|
||||||
#ifdef ESLOPE
|
#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);
|
P_SpawnGhostMobj(mobj);
|
||||||
|
|
||||||
if (gamespeed == 0)
|
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)
|
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);
|
mobj->angle = R_PointToAngle2(mobj->x, mobj->y, mobj->x+mobj->momx, mobj->y+mobj->momy);
|
||||||
if (mobj->health <= 5)
|
if (mobj->health <= 5)
|
||||||
|
@ -7797,7 +7797,7 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
INT32 i;
|
INT32 i;
|
||||||
for (i = 5; i >= mobj->health; 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);
|
P_InstaThrust(mobj, mobj->angle, finalspeed);
|
||||||
}
|
}
|
||||||
|
@ -7822,8 +7822,8 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
case MT_REDITEM:
|
case MT_REDITEM:
|
||||||
{
|
{
|
||||||
sector_t *sec2;
|
sector_t *sec2;
|
||||||
fixed_t topspeed = 64*FRACUNIT;
|
fixed_t topspeed = 64*(mapheaderinfo[gamemap-1]->mobj_scale);
|
||||||
fixed_t distbarrier = 512*FRACUNIT;
|
fixed_t distbarrier = 512*(mapheaderinfo[gamemap-1]->mobj_scale);
|
||||||
fixed_t distaway;
|
fixed_t distaway;
|
||||||
|
|
||||||
P_SpawnGhostMobj(mobj);
|
P_SpawnGhostMobj(mobj);
|
||||||
|
@ -7835,13 +7835,13 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
|
|
||||||
if (gamespeed == 0)
|
if (gamespeed == 0)
|
||||||
{
|
{
|
||||||
topspeed = FixedMul(topspeed, FRACUNIT-FRACUNIT/4);
|
topspeed = FixedMul(topspeed, (mapheaderinfo[gamemap-1]->mobj_scale)-(mapheaderinfo[gamemap-1]->mobj_scale/4));
|
||||||
distbarrier = FixedMul(distbarrier, FRACUNIT-FRACUNIT/4);
|
distbarrier = FixedMul(distbarrier, (mapheaderinfo[gamemap-1]->mobj_scale)-(mapheaderinfo[gamemap-1]->mobj_scale/4));
|
||||||
}
|
}
|
||||||
else if (gamespeed == 2)
|
else if (gamespeed == 2)
|
||||||
{
|
{
|
||||||
topspeed = FixedMul(topspeed, FRACUNIT+FRACUNIT/4);
|
topspeed = FixedMul(topspeed, (mapheaderinfo[gamemap-1]->mobj_scale)+(mapheaderinfo[gamemap-1]->mobj_scale/4));
|
||||||
distbarrier = FixedMul(distbarrier, FRACUNIT+FRACUNIT/4);
|
distbarrier = FixedMul(distbarrier, (mapheaderinfo[gamemap-1]->mobj_scale)+(mapheaderinfo[gamemap-1]->mobj_scale/4);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gametype == GT_RACE && mobj->tracer)
|
if (gametype == GT_RACE && mobj->tracer)
|
||||||
|
|
Loading…
Reference in New Issue