From 285ae41a6ea4c70978a88a8500cff5347955a159 Mon Sep 17 00:00:00 2001 From: toaster Date: Fri, 19 Oct 2018 21:32:29 +0100 Subject: [PATCH 1/2] Two scale things I noticed. * Change spacing of bustable FOF debris with scale (plus increase its default a bit for less lag). * Make a few instances of scalespeed take mapheader scaling into account. --- src/k_kart.c | 2 +- src/p_floor.c | 9 +++++---- src/p_inter.c | 4 ++-- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index fccb68674..f33d84a8b 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -4846,7 +4846,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground) && player->kartstuff[k_growshrinktimer] <= 0) // Grow holds the item box hostage { K_PlayPowerGloatSound(player->mo); - player->mo->scalespeed = FRACUNIT/TICRATE; + player->mo->scalespeed = mapheaderinfo[gamemap-1]->mobj_scale/TICRATE; player->mo->destscale = 3*(mapheaderinfo[gamemap-1]->mobj_scale)/2; if (cv_kartdebugshrink.value && !player->bot) player->mo->destscale = 6*player->mo->destscale/8; diff --git a/src/p_floor.c b/src/p_floor.c index 075ad1dac..3365b4b9e 100644 --- a/src/p_floor.c +++ b/src/p_floor.c @@ -3003,6 +3003,7 @@ void EV_CrumbleChain(sector_t *sec, ffloor_t *rover) fixed_t topz; fixed_t a, b, c; mobjtype_t type = MT_ROCKCRUMBLE1; + const fixed_t spacing = 48*mapheaderinfo[gamemap-1]->mobj_scale; // If the control sector has a special // of Section3:7-15, use the custom debris. @@ -3034,16 +3035,16 @@ void EV_CrumbleChain(sector_t *sec, ffloor_t *rover) rightx = sec->lines[rightmostvertex]->v1->x; topy = sec->lines[topmostvertex]->v1->y-(16<lines[bottommostvertex]->v1->y; - topz = *rover->topheight-(16<topheight-(spacing/2); - for (a = leftx; a < rightx; a += (32< bottomy; b -= (32< bottomy; b -= spacing) { if (R_PointInSubsector(a, b)->sector == sec) { mobj_t *spawned = NULL; - for (c = topz; c > *rover->bottomheight; c -= (32< *rover->bottomheight; c -= spacing) { spawned = P_SpawnMobj(a, b, c, type); spawned->fuse = 3*TICRATE; diff --git a/src/p_inter.c b/src/p_inter.c index cd0ed8938..05001ced7 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -395,7 +395,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck) P_SetTarget(&special->tracer, toucher); special->flags2 |= MF2_NIGHTSPULL; special->destscale = mapheaderinfo[gamemap-1]->mobj_scale>>4; - special->scalespeed <<= 1; + special->scalespeed = mapheaderinfo[gamemap-1]->mobj_scale/6; // (FRACUNIT/12)<<1 but mapheader-scale-considering special->flags &= ~MF_SPECIAL; return; @@ -3329,7 +3329,7 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da if (!player->kartstuff[k_invincibilitytimer] && player->kartstuff[k_growshrinktimer] <= 0) { // Start shrinking! - player->mo->scalespeed = FRACUNIT/TICRATE; + player->mo->scalespeed = mapheaderinfo[gamemap-1]->mobj_scale/TICRATE; player->mo->destscale = 6*(mapheaderinfo[gamemap-1]->mobj_scale)/8; if (cv_kartdebugshrink.value && !player->bot) player->mo->destscale = 6*player->mo->destscale/8; From df4e12ac15d9053a67394c941cef905f24adbc53 Mon Sep 17 00:00:00 2001 From: toaster Date: Fri, 19 Oct 2018 21:53:02 +0100 Subject: [PATCH 2/2] No more whack-a-mole (not 100% certain all of these are correct, please check the diff closely before reinstating plusone sal) --- src/k_kart.c | 10 +++++----- src/p_enemy.c | 2 +- src/p_inter.c | 2 +- src/p_mobj.c | 6 +++--- src/p_saveg.c | 4 ++-- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index f33d84a8b..17bf41d43 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -2198,7 +2198,7 @@ void K_SpawnMineExplosion(mobj_t *source, UINT8 color) dust->angle = (ANGLE_180/16) * i; P_SetScale(dust, source->scale); dust->destscale = source->scale*10; - dust->scalespeed = FixedMul(dust->scalespeed, source->scale); + dust->scalespeed = source->scale/12; P_InstaThrust(dust, dust->angle, FixedMul(20*FRACUNIT, source->scale)); truc = P_SpawnMobj(source->x + P_RandomRange(-radius, radius)*FRACUNIT, @@ -2206,7 +2206,7 @@ void K_SpawnMineExplosion(mobj_t *source, UINT8 color) source->z + P_RandomRange(0, height)*FRACUNIT, MT_BOOMEXPLODE); P_SetScale(truc, source->scale); truc->destscale = source->scale*6; - truc->scalespeed = FixedMul(truc->scalespeed, source->scale); + truc->scalespeed = source->scale/12; speed = FixedMul(10*FRACUNIT, source->scale)>>FRACBITS; truc->momx = P_RandomRange(-speed, speed)*FRACUNIT; truc->momy = P_RandomRange(-speed, speed)*FRACUNIT; @@ -2222,7 +2222,7 @@ void K_SpawnMineExplosion(mobj_t *source, UINT8 color) source->z + P_RandomRange(0, height)*FRACUNIT, MT_SMOKE); P_SetScale(dust, source->scale); dust->destscale = source->scale*10; - dust->scalespeed = FixedMul(dust->scalespeed, source->scale); + dust->scalespeed = source->scale/12; dust->tics = 30; dust->momz = P_RandomRange(FixedMul(3*FRACUNIT, source->scale)>>FRACBITS, FixedMul(7*FRACUNIT, source->scale)>>FRACBITS)*FRACUNIT; @@ -2231,7 +2231,7 @@ void K_SpawnMineExplosion(mobj_t *source, UINT8 color) source->z + P_RandomRange(0, height)*FRACUNIT, MT_BOOMPARTICLE); P_SetScale(truc, source->scale); truc->destscale = source->scale*5; - truc->scalespeed = FixedMul(truc->scalespeed, source->scale); + truc->scalespeed = source->scale/12; speed = FixedMul(20*FRACUNIT, source->scale)>>FRACBITS; truc->momx = P_RandomRange(-speed, speed)*FRACUNIT; truc->momy = P_RandomRange(-speed, speed)*FRACUNIT; @@ -2630,7 +2630,7 @@ void K_DriftDustHandling(mobj_t *spawner) dust->momz = P_MobjFlip(spawner) * (P_RandomRange(1, 4) * (spawner->scale)); P_SetScale(dust, spawner->scale/2); dust->destscale = spawner->scale * 3; - dust->scalespeed = FixedMul(dust->scalespeed, spawner->scale); + dust->scalespeed = spawner->scale/12; if (leveltime % 6 == 0) S_StartSound(spawner, sfx_screec); diff --git a/src/p_enemy.c b/src/p_enemy.c index 37dd58998..9f0ff4c19 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -3406,7 +3406,7 @@ void A_ParticleSpawn(mobj_t *actor) P_SetScale(spawn, actor->scale); spawn->momz = speed; spawn->destscale = FixedDiv(spawn->scale<scalespeed = FixedDiv(((actor->spawnpoint->angle >> 8) & 63) << FRACBITS, 100<scalespeed = FixedDiv(((actor->spawnpoint->angle >> 8) & 63) * actor->scale, 100<tics = actor->spawnpoint->extrainfo + 1; } diff --git a/src/p_inter.c b/src/p_inter.c index 05001ced7..df6a47b8f 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -395,7 +395,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck) P_SetTarget(&special->tracer, toucher); special->flags2 |= MF2_NIGHTSPULL; special->destscale = mapheaderinfo[gamemap-1]->mobj_scale>>4; - special->scalespeed = mapheaderinfo[gamemap-1]->mobj_scale/6; // (FRACUNIT/12)<<1 but mapheader-scale-considering + special->scalespeed <<= 1; special->flags &= ~MF_SPECIAL; return; diff --git a/src/p_mobj.c b/src/p_mobj.c index 32ac65502..63be6cce7 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -8269,7 +8269,7 @@ void P_MobjThinker(mobj_t *mobj) P_SetScale(smoke, mobj->target->scale/2); smoke->destscale = 3*mobj->target->scale/2; - smoke->scalespeed = FixedMul(smoke->scalespeed, mobj->target->scale); + smoke->scalespeed = mobj->target->scale/12; smoke->momx = mobj->target->momx/2; smoke->momy = mobj->target->momy/2; @@ -9089,7 +9089,7 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type) // All mobjs are created at 100% scale. mobj->scale = FRACUNIT; mobj->destscale = mobj->scale; - mobj->scalespeed = FRACUNIT/12; + mobj->scalespeed = mapheaderinfo[gamemap-1]->mobj_scale/12; if (mapheaderinfo[gamemap-1] && mapheaderinfo[gamemap-1]->mobj_scale != FRACUNIT) //&& !(mobj->type == MT_BLACKEGGMAN) mobj->destscale = mapheaderinfo[gamemap-1]->mobj_scale; @@ -9429,7 +9429,7 @@ mobj_t *P_SpawnShadowMobj(mobj_t * caster) // All mobjs are created at 100% scale. mobj->scale = FRACUNIT; mobj->destscale = mobj->scale; - mobj->scalespeed = FRACUNIT/12; + mobj->scalespeed = mapheaderinfo[gamemap-1]->mobj_scale/12; if (mapheaderinfo[gamemap-1] && mapheaderinfo[gamemap-1]->mobj_scale != FRACUNIT) //&& !(mobj->type == MT_BLACKEGGMAN) mobj->destscale = mapheaderinfo[gamemap-1]->mobj_scale; diff --git a/src/p_saveg.c b/src/p_saveg.c index df76497d9..b7b6cc17b 100644 --- a/src/p_saveg.c +++ b/src/p_saveg.c @@ -1116,7 +1116,7 @@ static void SaveMobjThinker(const thinker_t *th, const UINT8 type) diff |= MD_SCALE; if (mobj->destscale != mobj->scale) diff |= MD_DSCALE; - if (mobj->scalespeed != FRACUNIT/12) + if (mobj->scalespeed != mapheaderinfo[gamemap-1]->mobj_scale/12) diff2 |= MD2_SCALESPEED; if (mobj == redflag) @@ -2123,7 +2123,7 @@ static void LoadMobjThinker(actionf_p1 thinker) if (diff2 & MD2_SCALESPEED) mobj->scalespeed = READFIXED(save_p); else - mobj->scalespeed = FRACUNIT/12; + mobj->scalespeed = mapheaderinfo[gamemap-1]->mobj_scale/12; if (diff2 & MD2_CUSVAL) mobj->cusval = READINT32(save_p); if (diff2 & MD2_CVMEM)