diff --git a/source/games/blood/src/view.cpp b/source/games/blood/src/view.cpp index f507d7b45..3464a043f 100644 --- a/source/games/blood/src/view.cpp +++ b/source/games/blood/src/view.cpp @@ -558,7 +558,7 @@ void SetupView(int& cX, int& cY, int& cZ, binangle& cA, fixedhoriz& cH, sectorty { cZ += bobHeight; } - cZ += xs_CRoundToInt(cH.asq16() / 6553.6); + cZ += int(cH.asq16() * (1. / 6553.6)); cameradist = -1; cameraclock = PlayClock + MulScale(4, (int)gInterpolate, 16); } diff --git a/source/games/duke/src/gameexec.cpp b/source/games/duke/src/gameexec.cpp index 9aadd6665..b141a2b00 100644 --- a/source/games/duke/src/gameexec.cpp +++ b/source/games/duke/src/gameexec.cpp @@ -928,15 +928,8 @@ void DoPlayer(bool bSet, int lVar1, int lLabelID, int lVar2, DDukeActor* sActor, break; case PLAYER_RETURN_TO_CENTER: - if (bSet) - { - ps[iPlayer].sync.actions |= SB_CENTERVIEW; - } - else - { - auto center = ps[iPlayer].sync.actions & SB_CENTERVIEW ? abs(xs_CRoundToInt(ps[iPlayer].horizon.horiz.asq16() * (9. / gi->playerHorizMax()))) : 0; - SetGameVarID(lVar2, center, sActor, sPlayer); - } + if (bSet) ps[iPlayer].sync.actions |= SB_CENTERVIEW; + else SetGameVarID(lVar2, ps[iPlayer].sync.actions & SB_CENTERVIEW ? abs(int(ps[iPlayer].horizon.horiz.asq16() * (9. / gi->playerHorizMax()))) : 0, sActor, sPlayer); break; default: diff --git a/source/games/duke/src/hudweapon_d.cpp b/source/games/duke/src/hudweapon_d.cpp index af90307c8..a772a9dc6 100644 --- a/source/games/duke/src/hudweapon_d.cpp +++ b/source/games/duke/src/hudweapon_d.cpp @@ -930,7 +930,7 @@ void displayweapon_d(int snum, double smoothratio) hud_drawpal(weapon_xoffset + 184 - look_anghalf, looking_arc + 240 - gun_pos, SHRINKER + 2, - 16 - xs_CRoundToInt(bsinf(random_club_frame, -10)), + 16 - int(bsinf(random_club_frame, -10)), o, 0); hud_drawpal(weapon_xoffset + 188 - look_anghalf, @@ -1082,7 +1082,7 @@ void displayweapon_d(int snum, double smoothratio) { hud_drawpal(weapon_xoffset + 184 - look_anghalf, looking_arc + 240 - gun_pos, SHRINKER + 2, - 16 - xs_CRoundToInt(bsinf(random_club_frame, -10)), + 16 - int(bsinf(random_club_frame, -10)), o, 2); hud_drawpal(weapon_xoffset + 188 - look_anghalf, @@ -1092,7 +1092,7 @@ void displayweapon_d(int snum, double smoothratio) { hud_drawpal(weapon_xoffset + 184 - look_anghalf, looking_arc + 240 - gun_pos, SHRINKER + 2, - 16 - xs_CRoundToInt(bsinf(random_club_frame, -10)), + 16 - int(bsinf(random_club_frame, -10)), o, 0); hud_drawpal(weapon_xoffset + 188 - look_anghalf, diff --git a/source/games/duke/src/input.cpp b/source/games/duke/src/input.cpp index bb70cf2cc..65e1fd3bb 100644 --- a/source/games/duke/src/input.cpp +++ b/source/games/duke/src/input.cpp @@ -760,7 +760,7 @@ static void processVehicleInput(player_struct *p, ControlInfo* const hidInput, I input.avel = (float)boatApplyTurn(p, hidInput, kbdLeft, kbdRight, scaleAdjust); } - loc.fvel = clamp(xs_CRoundToInt(p->MotoSpeed), -(MAXVELMOTO >> 3), MAXVELMOTO); + loc.fvel = clamp(p->MotoSpeed, -(MAXVELMOTO >> 3), MAXVELMOTO); input.avel *= BAngToDegree; loc.avel += input.avel; } diff --git a/source/games/duke/src/player_r.cpp b/source/games/duke/src/player_r.cpp index eafe624d9..a4a299053 100644 --- a/source/games/duke/src/player_r.cpp +++ b/source/games/duke/src/player_r.cpp @@ -2132,7 +2132,7 @@ static void movement(int snum, ESyncBits actions, sectortype* psect, int fz, int { p->VBumpTarget = 80; p->moto_bump_fast = 1; - p->vel.Z -= xs_CRoundToInt(gs.gravity * (p->MotoSpeed / 16.)); + p->vel.Z -= int(gs.gravity * p->MotoSpeed * (1. / 16.)); p->MotoOnGround = 0; if (S_CheckActorSoundPlaying(pact, 188)) S_StopSound(188, pact); @@ -2374,39 +2374,39 @@ void onMotorcycleMove(int snum, walltype* wal) auto p = &ps[snum]; auto pact = p->GetActor(); int angleDelta = abs(p->angle.ang.asbuild() - getangle(wal->delta())); - int damageAmount; + double damageAmount = p->MotoSpeed * p->MotoSpeed; p->angle.addadjustment(buildfang(p->MotoSpeed / (krand() & 1 ? -2 : 2))); if (angleDelta >= 441 && angleDelta <= 581) { - damageAmount = xs_CRoundToInt((p->MotoSpeed * p->MotoSpeed) / 256.); + damageAmount *= (1. / 256.); p->MotoSpeed = 0; if (S_CheckActorSoundPlaying(pact, 238) == 0) S_PlayActorSound(238, pact); } else if (angleDelta >= 311 && angleDelta <= 711) { - damageAmount = xs_CRoundToInt((p->MotoSpeed * p->MotoSpeed) / 2048.); + damageAmount *= (1. / 2048.); p->MotoSpeed -= (p->MotoSpeed / 2.) + (p->MotoSpeed / 4.); if (S_CheckActorSoundPlaying(pact, 238) == 0) S_PlayActorSound(238, pact); } else if (angleDelta >= 111 && angleDelta <= 911) { - damageAmount = xs_CRoundToInt((p->MotoSpeed * p->MotoSpeed) / 16384.); + damageAmount *= (1. / 16384.); p->MotoSpeed -= p->MotoSpeed / 2.; if (S_CheckActorSoundPlaying(pact, 239) == 0) S_PlayActorSound(239, pact); } else { - damageAmount = xs_CRoundToInt((p->MotoSpeed * p->MotoSpeed) / 32768.); + damageAmount *= (1. / 32768.); p->MotoSpeed -= p->MotoSpeed / 8.; if (S_CheckActorSoundPlaying(pact, 240) == 0) S_PlayActorSound(240, pact); } - pact->spr.extra -= damageAmount; + pact->spr.extra -= int(damageAmount); if (pact->spr.extra <= 0) { S_PlayActorSound(SQUISHED, pact); @@ -2482,7 +2482,7 @@ void onMotorcycleHit(int snum, DDukeActor* victim) else victim->SetHitOwner(p->GetActor()); victim->attackertype = MOTOHIT; - victim->hitextra = xs_CRoundToInt(p->MotoSpeed / 2.); + victim->hitextra = int(p->MotoSpeed * 0.5); p->MotoSpeed -= p->MotoSpeed / 4.; p->TurbCount = 6; } @@ -2542,7 +2542,7 @@ void onBoatHit(int snum, DDukeActor* victim) else victim->SetHitOwner(p->GetActor()); victim->attackertype = MOTOHIT; - victim->hitextra = xs_CRoundToInt(p->MotoSpeed / 4.); + victim->hitextra = int(p->MotoSpeed * 0.25); p->MotoSpeed -= p->MotoSpeed / 4.; p->TurbCount = 6; } @@ -3455,6 +3455,16 @@ void processinput_r(int snum) if (clz.type == kHitSprite) { + auto doVehicleHit = [&]() + { + if (badguy(clz.actor())) + { + clz.actor()->attackertype = MOTOHIT; + clz.actor()->hitextra = int(2 + (p->MotoSpeed * 0.5)); + p->MotoSpeed -= p->MotoSpeed * (1. / 16.); + } + }; + if ((clz.actor()->spr.cstat & (CSTAT_SPRITE_ALIGNMENT_FLOOR| CSTAT_SPRITE_BLOCK)) == (CSTAT_SPRITE_ALIGNMENT_FLOOR | CSTAT_SPRITE_BLOCK)) { psectlotag = 0; @@ -3462,20 +3472,10 @@ void processinput_r(int snum) p->spritebridge = 1; } if (p->OnMotorcycle) - if (badguy(clz.actor())) - { - clz.actor()->attackertype = MOTOHIT; - clz.actor()->hitextra = xs_CRoundToInt(2 + (p->MotoSpeed / 2.)); - p->MotoSpeed -= p->MotoSpeed / 16.; - } + doVehicleHit(); if (p->OnBoat) { - if (badguy(clz.actor())) - { - clz.actor()->attackertype = MOTOHIT; - clz.actor()->hitextra = xs_CRoundToInt(2 + (p->MotoSpeed / 2.)); - p->MotoSpeed -= p->MotoSpeed / 16.; - } + doVehicleHit(); } else if (badguy(clz.actor()) && clz.actor()->spr.xrepeat > 24 && abs(pact->spr.pos.Z - clz.actor()->spr.pos.Z) < (84 << 8)) { diff --git a/source/games/sw/src/jweapon.cpp b/source/games/sw/src/jweapon.cpp index f73700e34..40f374691 100644 --- a/source/games/sw/src/jweapon.cpp +++ b/source/games/sw/src/jweapon.cpp @@ -2189,7 +2189,7 @@ int SpawnShell(DSWActor* actor, int ShellNum) if (actor->user.PlayerP) { - actorNew->spr.pos.Z += xs_CRoundToInt(-MulScaleF(actor->user.PlayerP->horizon.horiz.asq16(), HORIZ_MULT / 3., 16)); + actorNew->spr.pos.Z += int(-actor->user.PlayerP->horizon.horiz.asbuildf() * HORIZ_MULT * (1. / 3.)); } switch (actorNew->user.ID) diff --git a/source/games/sw/src/weapon.cpp b/source/games/sw/src/weapon.cpp index e7e720005..2729338f8 100644 --- a/source/games/sw/src/weapon.cpp +++ b/source/games/sw/src/weapon.cpp @@ -14922,7 +14922,7 @@ int InitTracerUzi(PLAYER* pp) return 0; } - actorNew->spr.zvel = xs_CRoundToInt(-MulScaleF(pp->horizon.horiz.asq16(), actorNew->spr.xvel / 8., 16)); + actorNew->spr.zvel = int(-pp->horizon.horiz.asbuildf() * actorNew->spr.xvel * (1. / 8.)); plActor->spr.clipdist = oclipdist; @@ -14971,7 +14971,7 @@ int InitTracerTurret(DSWActor* actor, DSWActor* Operator, fixed_t q16horiz) actorNew->spr.cstat |= (CSTAT_SPRITE_YCENTER); actorNew->spr.cstat |= (CSTAT_SPRITE_INVISIBLE); - actorNew->spr.zvel = xs_CRoundToInt(-MulScaleF(q16horiz, actorNew->spr.xvel / 8., 16)); + actorNew->spr.zvel = int(-MulScaleF(q16horiz, actorNew->spr.xvel * (1. / 8.), 16)); WeaponAutoAim(actor, actorNew, 32, false); @@ -15392,7 +15392,7 @@ int InitTankShell(DSWActor* actor, PLAYER* pp) actorNew->spr.cstat |= (CSTAT_SPRITE_YCENTER); actorNew->spr.cstat |= (CSTAT_SPRITE_INVISIBLE); - actorNew->spr.zvel = xs_CRoundToInt(-MulScaleF(pp->horizon.horiz.asq16(), actorNew->spr.xvel / 8., 16)); + actorNew->spr.zvel = int(-pp->horizon.horiz.asbuildf() * actorNew->spr.xvel * (1. / 8.)); WeaponAutoAim(actor, actorNew, 64, false); // a bit of randomness @@ -15530,7 +15530,7 @@ int InitTurretRocket(DSWActor* actor, PLAYER* pp) actorNew->user.Flags2 |= (SPR2_SO_MISSILE); actorNew->spr.cstat |= (CSTAT_SPRITE_YCENTER); - actorNew->spr.zvel = xs_CRoundToInt(-MulScaleF(pp->horizon.horiz.asq16(), actorNew->spr.xvel / 8., 16)); + actorNew->spr.zvel = int(-pp->horizon.horiz.asbuildf() * actorNew->spr.xvel * (1. / 8.)); WeaponAutoAim(actor, actorNew, 64, false); // a bit of randomness @@ -15567,7 +15567,7 @@ int InitTurretFireball(DSWActor* actor, PLAYER* pp) actorNew->user.Flags2 |= (SPR2_SO_MISSILE); actorNew->spr.cstat |= (CSTAT_SPRITE_YCENTER); - actorNew->spr.zvel = xs_CRoundToInt(-MulScaleF(pp->horizon.horiz.asq16(), actorNew->spr.xvel / 8., 16)); + actorNew->spr.zvel = int(-pp->horizon.horiz.asbuildf() * actorNew->spr.xvel * (1. / 8.)); WeaponAutoAim(actor, actorNew, 64, false); // a bit of randomness