From 9ed66acd443f85fc992cf5c3cabf601ec90977fa Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 21 Aug 2022 09:49:25 +0200 Subject: [PATCH] - renamed 2 integer functions to add float variants --- source/games/sw/src/actor.cpp | 2 +- source/games/sw/src/ai.cpp | 4 +-- source/games/sw/src/bunny.cpp | 6 ++-- source/games/sw/src/eel.cpp | 2 +- source/games/sw/src/game.h | 24 ++++++++++----- source/games/sw/src/jweapon.cpp | 2 +- source/games/sw/src/player.cpp | 22 +++++++------- source/games/sw/src/ripper.cpp | 2 +- source/games/sw/src/sector.cpp | 2 +- source/games/sw/src/skull.cpp | 4 +-- source/games/sw/src/sprite.cpp | 18 +++++------ source/games/sw/src/sumo.cpp | 2 +- source/games/sw/src/track.cpp | 6 ++-- source/games/sw/src/weapon.cpp | 54 ++++++++++++++++----------------- 14 files changed, 80 insertions(+), 70 deletions(-) diff --git a/source/games/sw/src/actor.cpp b/source/games/sw/src/actor.cpp index 59c8bd66e..4f144ebfa 100644 --- a/source/games/sw/src/actor.cpp +++ b/source/games/sw/src/actor.cpp @@ -331,7 +331,7 @@ int DoActorSectorDamage(DSWActor* actor) } } } - else if (ActorZOfBottom(actor) >= sectp->int_floorz()) + else if (int_ActorZOfBottom(actor) >= sectp->int_floorz()) { if ((actor->user.DamageTics -= synctics) < 0) { diff --git a/source/games/sw/src/ai.cpp b/source/games/sw/src/ai.cpp index 835a223d3..2b01216b2 100644 --- a/source/games/sw/src/ai.cpp +++ b/source/games/sw/src/ai.cpp @@ -217,7 +217,7 @@ int DoActorNoise(ANIMATOR* Action, DSWActor* actor) bool CanSeePlayer(DSWActor* actor) { // if actor can still see the player - int look_height = ActorZOfTop(actor); + int look_height = int_ActorZOfTop(actor); if (actor->user.targetActor && FAFcansee(actor->int_pos().X, actor->int_pos().Y, look_height, actor->sector(), actor->user.targetActor->int_pos().X, actor->user.targetActor->int_pos().Y, ActorUpperZ(actor->user.targetActor), actor->user.targetActor->sector())) return true; @@ -279,7 +279,7 @@ int DoActorPickClosePlayer(DSWActor* actor) int pnum; PLAYER* pp; // if actor can still see the player - int look_height = ActorZOfTop(actor); + int look_height = int_ActorZOfTop(actor); bool found = false; int i; diff --git a/source/games/sw/src/bunny.cpp b/source/games/sw/src/bunny.cpp index 8a217efa5..1e28f8bd7 100644 --- a/source/games/sw/src/bunny.cpp +++ b/source/games/sw/src/bunny.cpp @@ -894,7 +894,7 @@ void DoPickCloseBunny(DSWActor* actor) int dist, near_dist = 1000, a,b,c; // if actor can still see the player - int look_height = ActorZOfTop(actor); + int look_height = int_ActorZOfTop(actor); bool ICanSee = false; SWStatIterator it(STAT_ENEMY); @@ -1003,7 +1003,7 @@ int DoBunnyQuickJump(DSWActor* actor) if (pp == Player+myconnectindex) { choose_snd = StdRandomRange(2<<8)>>8; - if (FAFcansee(actor->int_pos().X,actor->int_pos().Y,ActorZOfTop(actor),actor->sector(),pp->int_ppos().X, pp->int_ppos().Y, pp->int_ppos().Z, pp->cursector) && Facing(actor, actor->user.targetActor)) + if (FAFcansee(actor->int_pos().X,actor->int_pos().Y,int_ActorZOfTop(actor),actor->sector(),pp->int_ppos().X, pp->int_ppos().Y, pp->int_ppos().Z, pp->cursector) && Facing(actor, actor->user.targetActor)) PlayerSound(fagsnds[choose_snd], v3df_doppler|v3df_follow|v3df_dontpan,pp); } } @@ -1018,7 +1018,7 @@ int DoBunnyQuickJump(DSWActor* actor) if (pp == Player+myconnectindex) { choose_snd = StdRandomRange(3<<8)>>8; - if (FAFcansee(actor->int_pos().X,actor->int_pos().Y,ActorZOfTop(actor),actor->sector(),pp->int_ppos().X, pp->int_ppos().Y, pp->int_ppos().Z, pp->cursector) && Facing(actor, actor->user.targetActor)) + if (FAFcansee(actor->int_pos().X,actor->int_pos().Y,int_ActorZOfTop(actor),actor->sector(),pp->int_ppos().X, pp->int_ppos().Y, pp->int_ppos().Z, pp->cursector) && Facing(actor, actor->user.targetActor)) PlayerSound(straightsnds[choose_snd], v3df_doppler|v3df_follow|v3df_dontpan,pp); } } diff --git a/source/games/sw/src/eel.cpp b/source/games/sw/src/eel.cpp index 0961a68d0..993e8d233 100644 --- a/source/games/sw/src/eel.cpp +++ b/source/games/sw/src/eel.cpp @@ -436,7 +436,7 @@ int DoEelMatchPlayerZ(DSWActor* actor) // actor does a sine wave about actor->user.sz - this is the z mid point - zdiff = (ActorZOfBottom(actor->user.targetActor) - Z(8)) - actor->user.int_upos().Z; + zdiff = (int_ActorZOfBottom(actor->user.targetActor) - Z(8)) - actor->user.int_upos().Z; // check z diff of the player and the sprite zdist = Z(20 + RandomRange(64)); // put a random amount diff --git a/source/games/sw/src/game.h b/source/games/sw/src/game.h index 8d6af1d5c..d8110fa0b 100644 --- a/source/games/sw/src/game.h +++ b/source/games/sw/src/game.h @@ -2104,24 +2104,34 @@ inline int16_t SP_TAG13(DSWActor* actor) { return int16_t(uint8_t(actor->spr.xof inline void SET_SP_TAG13(DSWActor* actor, int val) { actor->spr.xoffset = uint8_t(val); actor->spr.yoffset = uint8_t(val >> 8); } // actual Z for TOS and BOS - handles both WYSIWYG and old style -inline int ActorZOfTop(DSWActor* actor) +inline int int_ActorZOfTop(DSWActor* actor) { return GetSpriteZOfTop(&actor->spr); } -inline int ActorZOfBottom(DSWActor* actor) +inline double ActorZOfTop(DSWActor* actor) +{ + return GetSpriteZOfTop(&actor->spr) * zinttoworld; +} + +inline int int_ActorZOfBottom(DSWActor* actor) { return GetSpriteZOfBottom(&actor->spr); } +inline double ActorZOfBottom(DSWActor* actor) +{ + return GetSpriteZOfBottom(&actor->spr) * zinttoworld; +} + inline int int_ActorZOfMiddle(DSWActor* actor) { - return (ActorZOfTop(actor) + ActorZOfBottom(actor)) >> 1; + return (int_ActorZOfTop(actor) + int_ActorZOfBottom(actor)) >> 1; } inline double ActorZOfMiddle(DSWActor* actor) { - return (ActorZOfTop(actor) + ActorZOfBottom(actor)) * zinttoworld * 0.5; + return (int_ActorZOfTop(actor) + int_ActorZOfBottom(actor)) * zinttoworld * 0.5; } inline int ActorSizeZ(DSWActor* actor) @@ -2131,17 +2141,17 @@ inline int ActorSizeZ(DSWActor* actor) inline int ActorUpperZ(DSWActor* actor) { - return (ActorZOfTop(actor) + (ActorSizeZ(actor) >> 2)); + return (int_ActorZOfTop(actor) + (ActorSizeZ(actor) >> 2)); } inline int int_ActorLowerZ(DSWActor* actor) { - return (ActorZOfBottom(actor) - (ActorSizeZ(actor) >> 2)); + return (int_ActorZOfBottom(actor) - (ActorSizeZ(actor) >> 2)); } inline double ActorLowerZ(DSWActor* actor) { - return (ActorZOfBottom(actor) - (ActorSizeZ(actor) * 0.25)) * zinttoworld; + return (int_ActorZOfBottom(actor) - (ActorSizeZ(actor) * 0.25)) * zinttoworld; } // Z size of top (TOS) and bottom (BOS) part of sprite diff --git a/source/games/sw/src/jweapon.cpp b/source/games/sw/src/jweapon.cpp index bc559425a..c8eba1d82 100644 --- a/source/games/sw/src/jweapon.cpp +++ b/source/games/sw/src/jweapon.cpp @@ -1799,7 +1799,7 @@ int InitBloodSpray(DSWActor* actor, bool dogib, short velocity) nx = actor->int_pos().X; ny = actor->int_pos().Y; - nz = ActorZOfTop(actor)-20; + nz = int_ActorZOfTop(actor)-20; // Spawn a shot auto actorNew = SpawnActor(STAT_MISSILE, GOREDrip, s_BloodSprayChunk, actor->sector(), diff --git a/source/games/sw/src/player.cpp b/source/games/sw/src/player.cpp index 11b57f318..da3d2fcba 100644 --- a/source/games/sw/src/player.cpp +++ b/source/games/sw/src/player.cpp @@ -1188,11 +1188,11 @@ DSWActor* DoPickTarget(DSWActor* actor, uint32_t max_delta_ang, int skip_targets if (actor->hasU() && actor->user.PlayerP) zh = actor->user.PlayerP->int_ppos().Z; else - zh = ActorZOfTop(actor) + (ActorSizeZ(actor) >> 2); + zh = int_ActorZOfTop(actor) + (ActorSizeZ(actor) >> 2); - ezh = ActorZOfTop(itActor) + (ActorSizeZ(itActor) >> 2); - ezhm = ActorZOfTop(itActor) + (ActorSizeZ(itActor) >> 1); - ezhl = ActorZOfBottom(itActor) - (ActorSizeZ(itActor) >> 2); + ezh = int_ActorZOfTop(itActor) + (ActorSizeZ(itActor) >> 2); + ezhm = int_ActorZOfTop(itActor) + (ActorSizeZ(itActor) >> 1); + ezhl = int_ActorZOfBottom(itActor) - (ActorSizeZ(itActor) >> 2); // If you can't see 'em you can't shoot 'em if (!FAFcansee(actor->int_pos().X, actor->int_pos().Y, zh, actor->sector(), itActor->int_pos().X, itActor->int_pos().Y, ezh, itActor->sector()) && @@ -1307,7 +1307,7 @@ void DoSpawnTeleporterEffect(DSWActor* actor) ny += actor->int_pos().Y; auto effectActor = SpawnActor(STAT_MISSILE, 0, s_TeleportEffect, actor->sector(), - nx, ny, ActorZOfTop(actor) + Z(16), + nx, ny, int_ActorZOfTop(actor) + Z(16), actor->int_ang(), 0); SetActorZ(effectActor, effectActor->int_pos()); @@ -1325,7 +1325,7 @@ void DoSpawnTeleporterEffectPlace(DSWActor* actor) extern STATE s_TeleportEffect[]; auto effectActor = SpawnActor(STAT_MISSILE, 0, s_TeleportEffect, actor->sector(), - actor->int_pos().X, actor->int_pos().Y, ActorZOfTop(actor) + Z(16), + actor->int_pos().X, actor->int_pos().Y, int_ActorZOfTop(actor) + Z(16), actor->int_ang(), 0); SetActorZ(effectActor, effectActor->int_pos()); @@ -1693,7 +1693,7 @@ void UpdatePlayerUnderSprite(PLAYER* pp) water_level_z = act_over->sector()->int_floorz(); // - Z(pp->WadeDepth); // if not below water - above_water = (ActorZOfBottom(act_over) <= water_level_z); + above_water = (int_ActorZOfBottom(act_over) <= water_level_z); in_dive_area = SpriteInDiveArea(act_over); // if not in dive area OR (in dive area AND above the water) - Kill it @@ -1726,7 +1726,7 @@ void UpdatePlayerUnderSprite(PLAYER* pp) // find z water level of the top sector // diff between the bottom of the upper sprite and the water level - zdiff = ActorZOfBottom(act_over) - water_level_z; + zdiff = int_ActorZOfBottom(act_over) - water_level_z; // add diff to ceiling act_under->set_int_z(act_under->sector()->int_ceilingz() + zdiff); @@ -2932,7 +2932,7 @@ void StackedWaterSplash(PLAYER* pp) { auto sect = pp->cursector; - updatesectorz(pp->int_ppos().X, pp->int_ppos().Y, ActorZOfBottom(pp->actor), §); + updatesectorz(pp->int_ppos().X, pp->int_ppos().Y, int_ActorZOfBottom(pp->actor), §); if (SectorIsUnderwaterArea(sect)) { @@ -3795,7 +3795,7 @@ int PlayerCanDiveNoWarp(PLAYER* pp) { auto sect = pp->cursector; - updatesectorz(pp->int_ppos().X, pp->int_ppos().Y, ActorZOfBottom(pp->actor), §); + updatesectorz(pp->int_ppos().X, pp->int_ppos().Y, int_ActorZOfBottom(pp->actor), §); if (SectorIsUnderwaterArea(sect)) { @@ -5688,7 +5688,7 @@ void DoPlayerDeathFollowKiller(PLAYER* pp) DSWActor* killer = pp->KillerActor; if (killer) { - if (FAFcansee(killer->int_pos().X, killer->int_pos().Y, ActorZOfTop(killer), killer->sector(), pp->int_ppos().X, pp->int_ppos().Y, pp->int_ppos().Z, pp->cursector)) + if (FAFcansee(killer->int_pos().X, killer->int_pos().Y, int_ActorZOfTop(killer), killer->sector(), pp->int_ppos().X, pp->int_ppos().Y, pp->int_ppos().Z, pp->cursector)) { pp->angle.addadjustment(deltaangle(pp->angle.ang, VecToAngle(killer->int_pos().X - pp->int_ppos().X, killer->int_pos().Y - pp->int_ppos().Y)) * (1. / 16.)); } diff --git a/source/games/sw/src/ripper.cpp b/source/games/sw/src/ripper.cpp index a114c070a..d438987fc 100644 --- a/source/games/sw/src/ripper.cpp +++ b/source/games/sw/src/ripper.cpp @@ -895,7 +895,7 @@ int PickJumpMaxSpeed(DSWActor* actor, short max_speed) actor->user.jump_speed = max_speed; actor->user.jump_grav = 8; - zh = ActorZOfTop(actor); + zh = int_ActorZOfTop(actor); while (true) { diff --git a/source/games/sw/src/sector.cpp b/source/games/sw/src/sector.cpp index 5f06b3241..c30726015 100644 --- a/source/games/sw/src/sector.cpp +++ b/source/games/sw/src/sector.cpp @@ -2298,7 +2298,7 @@ void PlayerOperateEnv(PLAYER* pp) { PlayerTakeSectorDamage(pp); } - else if ((ActorZOfBottom(pp->actor) >= sectp->int_floorz()) && !(pp->Flags & PF_DIVING)) + else if ((int_ActorZOfBottom(pp->actor) >= sectp->int_floorz()) && !(pp->Flags & PF_DIVING)) { PlayerTakeSectorDamage(pp); } diff --git a/source/games/sw/src/skull.cpp b/source/games/sw/src/skull.cpp index 99868829e..12dca9952 100644 --- a/source/games/sw/src/skull.cpp +++ b/source/games/sw/src/skull.cpp @@ -232,7 +232,7 @@ int SetupSkull(DSWActor* actor) actor->user.Radius = 400; - if (ActorZOfBottom(actor) > actor->user.int_loz() - Z(16)) + if (int_ActorZOfBottom(actor) > actor->user.int_loz() - Z(16)) { actor->spr.pos.Z = actor->user.loz + tileTopOffset(actor->spr.picnum); @@ -617,7 +617,7 @@ int SetupBetty(DSWActor* actor) actor->user.Radius = 400; - if (ActorZOfBottom(actor) > actor->user.int_loz() - Z(16)) + if (int_ActorZOfBottom(actor) > actor->user.int_loz() - Z(16)) { actor->spr.pos.Z = actor->user.loz + tileTopOffset(actor->spr.picnum); diff --git a/source/games/sw/src/sprite.cpp b/source/games/sw/src/sprite.cpp index 732e3f88a..e6a85623f 100644 --- a/source/games/sw/src/sprite.cpp +++ b/source/games/sw/src/sprite.cpp @@ -4266,11 +4266,11 @@ bool SpriteOverlap(DSWActor* actor_a, DSWActor* actor_b) return false; } - spa_tos = ActorZOfTop(actor_a); - spa_bos = ActorZOfBottom(actor_a); + spa_tos = int_ActorZOfTop(actor_a); + spa_bos = int_ActorZOfBottom(actor_a); - spb_tos = ActorZOfTop(actor_b); - spb_bos = ActorZOfBottom(actor_b); + spb_tos = int_ActorZOfTop(actor_b); + spb_bos = int_ActorZOfBottom(actor_b); overlap_z = actor_a->user.OverlapZ + actor_b->user.OverlapZ; @@ -4295,11 +4295,11 @@ bool SpriteOverlapZ(DSWActor* actor_a, DSWActor* actor_b, int z_overlap) { int spa_tos, spa_bos, spb_tos, spb_bos; - spa_tos = ActorZOfTop(actor_a); - spa_bos = ActorZOfBottom(actor_a); + spa_tos = int_ActorZOfTop(actor_a); + spa_bos = int_ActorZOfBottom(actor_a); - spb_tos = ActorZOfTop(actor_b); - spb_bos = ActorZOfBottom(actor_b); + spb_tos = int_ActorZOfTop(actor_b); + spb_bos = int_ActorZOfBottom(actor_b); // if the top of sprite a is below the bottom of b @@ -5900,7 +5900,7 @@ void AdjustActiveRange(PLAYER* pp, DSWActor* actor, int dist) // // if actor can still see the player - look_height = ActorZOfTop(actor); + look_height = int_ActorZOfTop(actor); if (FAFcansee(actor->int_pos().X, actor->int_pos().Y, look_height, actor->sector(), plActor->int_pos().X, plActor->int_pos().Y, ActorUpperZ(plActor), plActor->sector())) { // Player is visible diff --git a/source/games/sw/src/sumo.cpp b/source/games/sw/src/sumo.cpp index c4e16a001..484da215c 100644 --- a/source/games/sw/src/sumo.cpp +++ b/source/games/sw/src/sumo.cpp @@ -765,7 +765,7 @@ void BossHealthMeter(void) DSWActor* actor = BossSpriteNum[i]; if (actor != nullptr && !bosswasseen[i]) { - if (cansee(actor->int_pos().X, actor->int_pos().Y, ActorZOfTop(actor), actor->sector(), pp->int_ppos().X, pp->int_ppos().Y, pp->int_ppos().Z - Z(40), pp->cursector)) + if (cansee(actor->int_pos().X, actor->int_pos().Y, int_ActorZOfTop(actor), actor->sector(), pp->int_ppos().X, pp->int_ppos().Y, pp->int_ppos().Z - Z(40), pp->cursector)) { if (i == 0 && !bosswasseen[0]) { diff --git a/source/games/sw/src/track.cpp b/source/games/sw/src/track.cpp index 0ae1716ad..6376f6730 100644 --- a/source/games/sw/src/track.cpp +++ b/source/games/sw/src/track.cpp @@ -3314,7 +3314,7 @@ bool ActorTrackDecide(TRACK_POINT* tpoint, DSWActor* actor) // Get the z height to climb // - neartag({ actor->int_pos().X, actor->int_pos().Y, ActorZOfTop(actor) - (ActorSizeZ(actor) >> 1) }, actor->sector(), actor->int_ang(), near, 600, NTAG_SEARCH_LO_HI); + neartag({ actor->int_pos().X, actor->int_pos().Y, int_ActorZOfTop(actor) - (ActorSizeZ(actor) >> 1) }, actor->sector(), actor->int_ang(), near, 600, NTAG_SEARCH_LO_HI); if (near.hitWall == nullptr) { @@ -3343,7 +3343,7 @@ bool ActorTrackDecide(TRACK_POINT* tpoint, DSWActor* actor) // actor->spr.cstat |= (CSTAT_SPRITE_YCENTER); - double bos_z = ActorZOfBottom(actor) * zinttoworld; + double bos_z = ActorZOfBottom(actor); if (bos_z > actor->user.loz) { actor->user.pos.Y = (bos_z - actor->spr.pos.Z); @@ -3496,7 +3496,7 @@ int ActorFollowTrack(DSWActor* actor, short locktics) if (actor->user.Flags & (SPR_CLIMBING)) { - if (ActorZOfTop(actor) + (ActorSizeZ(actor) >> 2) < actor->user.int_upos().Z) + if (int_ActorZOfTop(actor) + (ActorSizeZ(actor) >> 2) < actor->user.int_upos().Z) { actor->user.Flags &= ~(SPR_CLIMBING); diff --git a/source/games/sw/src/weapon.cpp b/source/games/sw/src/weapon.cpp index 8247adc3d..d6d0fd962 100644 --- a/source/games/sw/src/weapon.cpp +++ b/source/games/sw/src/weapon.cpp @@ -3661,8 +3661,8 @@ AutoShrap: } } - hz[Z_TOP] = ActorZOfTop(parentActor); // top - hz[Z_BOT] = ActorZOfBottom(parentActor); // bottom + hz[Z_TOP] = int_ActorZOfTop(parentActor); // top + hz[Z_BOT] = int_ActorZOfBottom(parentActor); // bottom hz[Z_MID] = (hz[0] + hz[2]) >> 1; // mid for (; p->id; p++) @@ -4025,7 +4025,7 @@ int SpawnBlood(DSWActor* actor, DSWActor* weapActor, short hit_ang, int hit_x, i hit_ang = actor->int_ang(); hit_x = actor->int_pos().X; hit_y = actor->int_pos().Y; - hit_z = ActorZOfTop(weapActor) + (ActorSizeZ(weapActor) >> 4); + hit_z = int_ActorZOfTop(weapActor) + (ActorSizeZ(weapActor) >> 4); } else { @@ -4033,7 +4033,7 @@ int SpawnBlood(DSWActor* actor, DSWActor* weapActor, short hit_ang, int hit_x, i hit_ang = NORM_ANGLE(weapActor->int_ang() + 1024); hit_x = actor->int_pos().X; hit_y = actor->int_pos().Y; - hit_z = ActorZOfTop(weapActor) + (ActorSizeZ(weapActor) >> 2); + hit_z = int_ActorZOfTop(weapActor) + (ActorSizeZ(weapActor) >> 2); } break; case SERP_RUN_R0: @@ -4041,7 +4041,7 @@ int SpawnBlood(DSWActor* actor, DSWActor* weapActor, short hit_ang, int hit_x, i hit_ang = NORM_ANGLE(weapActor->int_ang() + 1024); hit_x = actor->int_pos().X; hit_y = actor->int_pos().Y; - hit_z = ActorZOfTop(actor) + (ActorSizeZ(actor) >> 2); + hit_z = int_ActorZOfTop(actor) + (ActorSizeZ(actor) >> 2); break; case BLADE1: case BLADE2: @@ -4066,14 +4066,14 @@ int SpawnBlood(DSWActor* actor, DSWActor* weapActor, short hit_ang, int hit_x, i hit_ang = weapActor->int_ang(); hit_x = actor->int_pos().X; hit_y = actor->int_pos().Y; - hit_z = ActorZOfTop(actor) + (ActorSizeZ(actor) >> 2); + hit_z = int_ActorZOfTop(actor) + (ActorSizeZ(actor) >> 2); break; default: p = SomeBlood; hit_ang = NORM_ANGLE(weapActor->int_ang() + 1024); hit_x = actor->int_pos().X; hit_y = actor->int_pos().Y; - hit_z = ActorZOfTop(weapActor) + (ActorSizeZ(weapActor) >> 2); + hit_z = int_ActorZOfTop(weapActor) + (ActorSizeZ(weapActor) >> 2); break; } } @@ -7701,7 +7701,7 @@ int MissileSeek(DSWActor* actor, int16_t delay_tics, int16_t aware_range/*, int1 actor->add_int_ang(-delta_ang); - zh = ActorZOfTop(actor) + (ActorSizeZ(actor) >> 2); + zh = int_ActorZOfTop(actor) + (ActorSizeZ(actor) >> 2); delta_ang = (zh - actor->int_pos().Z)>>1; @@ -7770,7 +7770,7 @@ int ComboMissileSeek(DSWActor* actor, int16_t delay_tics, int16_t aware_range/*, actor->user.change.X = MOVEx(actor->spr.xvel, actor->int_ang()); actor->user.change.Y = MOVEy(actor->spr.xvel, actor->int_ang()); - zh = ActorZOfTop(actor) + (ActorSizeZ(actor) >> 2); + zh = int_ActorZOfTop(actor) + (ActorSizeZ(actor) >> 2); dist = ksqrt(SQ(actor->int_pos().X - goal->int_pos().X) + SQ(actor->int_pos().Y - goal->int_pos().Y) + (SQ(actor->int_pos().Z - zh)>>8)); @@ -7835,7 +7835,7 @@ int VectorMissileSeek(DSWActor* actor, int16_t delay_tics, int16_t turn_speed, i { int ox,oy,oz; - zh = ActorZOfTop(actor) + (ActorSizeZ(actor) >> 2); + zh = int_ActorZOfTop(actor) + (ActorSizeZ(actor) >> 2); dist = ksqrt(SQ(actor->int_pos().X - goal->int_pos().X) + SQ(actor->int_pos().Y - goal->int_pos().Y) + (SQ(actor->int_pos().Z - zh)>>8)); @@ -7893,7 +7893,7 @@ int VectorWormSeek(DSWActor* actor, int16_t delay_tics, int16_t aware_range1, in { int ox,oy,oz; - zh = ActorZOfTop(actor) + (ActorSizeZ(actor) >> 2); + zh = int_ActorZOfTop(actor) + (ActorSizeZ(actor) >> 2); dist = ksqrt(SQ(actor->int_pos().X - goal->int_pos().X) + SQ(actor->int_pos().Y - goal->int_pos().Y) + (SQ(actor->int_pos().Z - zh)>>8)); @@ -7937,7 +7937,7 @@ int DoBlurExtend(DSWActor* actor, int16_t interval, int16_t blur_num) int InitPlasmaFountain(DSWActor* wActor, DSWActor* sActor) { auto actorNew = SpawnActor(STAT_MISSILE, PLASMA_FOUNTAIN, s_PlasmaFountain, sActor->sector(), - sActor->int_pos().X, sActor->int_pos().Y, ActorZOfBottom(sActor), sActor->int_ang(), 0); + sActor->int_pos().X, sActor->int_pos().Y, int_ActorZOfBottom(sActor), sActor->int_ang(), 0); actorNew->spr.shade = -40; if (wActor) @@ -11385,7 +11385,7 @@ int InitLavaThrow(DSWActor* actor) nx = actor->int_pos().X; ny = actor->int_pos().Y; - nz = ActorZOfTop(actor) + (ActorSizeZ(actor) >> 2); + nz = int_ActorZOfTop(actor) + (ActorSizeZ(actor) >> 2); // Spawn a shot auto actorNew = SpawnActor(STAT_MISSILE, LAVA_BOULDER, s_LavaBoulder, actor->sector(), @@ -11525,7 +11525,7 @@ int InitSerpRing(DSWActor* actor) actorNew->spr.zvel = Z(3); actorNew->spr.pal = 0; - actorNew->set_int_z(ActorZOfTop(actor) - Z(20)); + actorNew->set_int_z(int_ActorZOfTop(actor) - Z(20)); actorNew->user.pos.Z = 50; // ang around the serp is now slide_ang @@ -11657,7 +11657,7 @@ int InitEnemyNapalm(DSWActor* actor) for (i = 0; i < SIZ(mp); i++) { auto actorNew = SpawnActor(STAT_MISSILE, FIREBALL1, s_Napalm, actor->sector(), - actor->int_pos().X, actor->int_pos().Y, ActorZOfTop(actor) + (ActorSizeZ(actor) >> 2), actor->int_ang(), NAPALM_VELOCITY); + actor->int_pos().X, actor->int_pos().Y, int_ActorZOfTop(actor) + (ActorSizeZ(actor) >> 2), actor->int_ang(), NAPALM_VELOCITY); actorNew->spr.hitag = LUMINOUS; //Always full brightness if (i==0) // Only attach sound to first projectile @@ -11759,7 +11759,7 @@ int InitEnemyMirv(DSWActor* actor) PlaySound(DIGI_MIRVFIRE, actor, v3df_none); auto actorNew = SpawnActor(STAT_MISSILE, MIRV_METEOR, s_Mirv, actor->sector(), - actor->int_pos().X, actor->int_pos().Y, ActorZOfTop(actor) + (ActorSizeZ(actor) >> 2), actor->int_ang(), MIRV_VELOCITY); + actor->int_pos().X, actor->int_pos().Y, int_ActorZOfTop(actor) + (ActorSizeZ(actor) >> 2), actor->int_ang(), MIRV_VELOCITY); PlaySound(DIGI_MIRVWIZ, actorNew, v3df_follow); @@ -12181,7 +12181,7 @@ int InitSumoNapalm(DSWActor* actor) for (size_t i = 0; i < countof(mp); i++) { auto actorNew = SpawnActor(STAT_MISSILE, FIREBALL1, s_Napalm, actor->sector(), - actor->int_pos().X, actor->int_pos().Y, ActorZOfTop(actor), ang, NAPALM_VELOCITY); + actor->int_pos().X, actor->int_pos().Y, int_ActorZOfTop(actor), ang, NAPALM_VELOCITY); actorNew->spr.hitag = LUMINOUS; //Always full brightness if (i == 0) // Only attach sound to first projectile @@ -12379,7 +12379,7 @@ int WeaponAutoAim(DSWActor* actor, DSWActor* mislActor, short ang, bool test) { int tos, diff, siz; - tos = ActorZOfTop(hitActor); + tos = int_ActorZOfTop(hitActor); diff = mislActor->int_pos().Z - tos; siz = ActorSizeZ(hitActor); @@ -12435,7 +12435,7 @@ int WeaponAutoAimZvel(DSWActor* actor, DSWActor* missileActor, int *zvel, short { int tos, diff, siz; - tos = ActorZOfTop(hitActor); + tos = int_ActorZOfTop(hitActor); diff = missileActor->int_pos().Z - tos; siz = ActorSizeZ(hitActor); @@ -12533,7 +12533,7 @@ DSWActor* WeaponAutoAimHitscan(DSWActor* actor, int *z, short *ang, bool test) if (dist != 0) { - zh = ActorZOfTop(picked) + (ActorSizeZ(picked) >> 2); + zh = int_ActorZOfTop(picked) + (ActorSizeZ(picked) >> 2); xvect = bcos(*ang); yvect = bsin(*ang); @@ -12566,7 +12566,7 @@ void WeaponHitscanShootFeet(DSWActor* actor, DSWActor* hitActor, int *zvect) if (dist != 0) { - zh = ActorZOfBottom(hitActor) + Z(20); + zh = int_ActorZOfBottom(hitActor) + Z(20); z = actor->int_pos().Z; xvect = bcos(ang); @@ -13183,7 +13183,7 @@ int InitZillaRail(DSWActor* actor) nx = actor->int_pos().X; ny = actor->int_pos().Y; - nz = ActorZOfTop(actor); + nz = int_ActorZOfTop(actor); // Spawn a shot // Inserting and setting up variables @@ -13732,7 +13732,7 @@ int InitMicro(PLAYER* pp) if (dist != 0) { int zh; - zh = ActorZOfTop(picked) + (ActorSizeZ(picked) >> 2); + zh = int_ActorZOfTop(picked) + (ActorSizeZ(picked) >> 2); actorNew->spr.zvel = (actorNew->spr.xvel * (zh - actorNew->int_pos().Z)) / dist; } @@ -14044,7 +14044,7 @@ int InitSerpSpell(DSWActor* actor) auto actorNew = SpawnActor(STAT_MISSILE, SERP_METEOR, &sg_SerpMeteor[0][0], actor->sector(), actor->int_pos().X, actor->int_pos().Y, actor->int_pos().Z, actor->int_ang(), 1500); - actorNew->set_int_z(ActorZOfTop(actor)); + actorNew->set_int_z(int_ActorZOfTop(actor)); actorNew->user.RotNum = 5; NewStateGroup(actorNew, &sg_SerpMeteor[0]); @@ -14143,7 +14143,7 @@ int InitSerpMonstSpell(DSWActor* actor) actor->int_pos().X, actor->int_pos().Y, actor->int_pos().Z, actor->int_ang(), 500); actorNew->user.spal = actorNew->spr.pal = 25; // Bright Red - actorNew->set_int_z(ActorZOfTop(actor)); + actorNew->set_int_z(int_ActorZOfTop(actor)); actorNew->user.RotNum = 5; NewStateGroup(actorNew, &sg_SerpMeteor[0]); @@ -15412,7 +15412,7 @@ int InitTurretMicro(DSWActor* actor, PLAYER* pp) if (dist != 0) { int zh; - zh = ActorZOfTop(picked) + (ActorSizeZ(picked) >> 2); + zh = int_ActorZOfTop(picked) + (ActorSizeZ(picked) >> 2); actorNew->spr.zvel = (actorNew->spr.xvel * (zh - actorNew->int_pos().Z)) / dist; } @@ -16129,7 +16129,7 @@ int InitEnemyUzi(DSWActor* actor) if (actor->user.ID == ZILLA_RUN_R0) { - zh = ActorZOfTop(actor); + zh = int_ActorZOfTop(actor); zh += Z(20); } else