From 9c671107221407772ee1fa8409fd9e0ade931870 Mon Sep 17 00:00:00 2001 From: Mitchell Richters Date: Sun, 18 Sep 2022 22:43:32 +1000 Subject: [PATCH] - Blood: Floatify `GetSpriteExtents()`. --- source/games/blood/src/animatesprite.cpp | 2 +- source/games/blood/src/bloodactor.h | 10 +++++----- source/games/blood/src/db.h | 16 ++++------------ 3 files changed, 10 insertions(+), 18 deletions(-) diff --git a/source/games/blood/src/animatesprite.cpp b/source/games/blood/src/animatesprite.cpp index d87b2ce2b..515c5108e 100644 --- a/source/games/blood/src/animatesprite.cpp +++ b/source/games/blood/src/animatesprite.cpp @@ -618,7 +618,7 @@ void viewProcessSprites(tspriteArray& tsprites, const DVector3& cPos, DAngle cA, } else { - int top, bottom; + double top, bottom; GetSpriteExtents(pTSprite, &top, &bottom); if (getflorzofslopeptr(pTSprite->sectp, pTSprite->pos) > bottom) nAnim = 1; diff --git a/source/games/blood/src/bloodactor.h b/source/games/blood/src/bloodactor.h index 1b93614ed..cbffb7d9d 100644 --- a/source/games/blood/src/bloodactor.h +++ b/source/games/blood/src/bloodactor.h @@ -150,15 +150,15 @@ using BloodSpriteIterator = TSpriteIterator; inline void GetActorExtents(DBloodActor* actor, int* top, int* bottom) { - GetSpriteExtents(&actor->spr, top, bottom); + double t, b; + GetSpriteExtents(&actor->spr, &t, &b); + *top = t * zworldtoint; + *bottom = b * zworldtoint; } inline void GetActorExtents(DBloodActor* actor, double* top, double* bottom) { - int t, b; - GetSpriteExtents(&actor->spr, &t, &b); - *top = t * zinttoworld; - *bottom = b * zinttoworld; + GetSpriteExtents(&actor->spr, top, bottom); } inline bool CheckSector(const BitArray& bits, DBloodActor* act) diff --git a/source/games/blood/src/db.h b/source/games/blood/src/db.h index 48e52256d..8856871dd 100644 --- a/source/games/blood/src/db.h +++ b/source/games/blood/src/db.h @@ -80,26 +80,18 @@ extern const char* gAmmoText[]; extern const char* gWeaponText[]; extern int gSkyCount; -void GetSpriteExtents(spritetypebase const* const pSprite, int* top, int* bottom) +void GetSpriteExtents(spritetypebase const* const pSprite, double* top, double* bottom) { - *top = *bottom = pSprite->int_pos().Z; + *top = *bottom = pSprite->pos.Z; if ((pSprite->cstat & CSTAT_SPRITE_ALIGNMENT_MASK) != CSTAT_SPRITE_ALIGNMENT_FLOOR) { int height = tileHeight(pSprite->picnum); int center = height / 2 + tileTopOffset(pSprite->picnum); - *top -= (pSprite->yrepeat << 2) * center; - *bottom += (pSprite->yrepeat << 2) * (height - center); + *top -= pSprite->yrepeat * REPEAT_SCALE * center; + *bottom += pSprite->yrepeat * REPEAT_SCALE * (height - center); } } -inline void GetSpriteExtents(spritetypebase const* const actor, double* top, double* bottom) -{ - int t, b; - GetSpriteExtents(actor, &t, &b); - *top = t * zinttoworld; - *bottom = b * zinttoworld; -} - struct BloodSpawnSpriteDef : public SpawnSpriteDef { TArray xspr;