- cleaned out tileHeight calls in SW's panel.cpp.

Direct access to tile numbers has been significantly reduced.
This commit is contained in:
Christoph Oelckers 2022-12-06 21:17:14 +01:00
parent f479f995a1
commit 1258ddc551

View file

@ -107,6 +107,12 @@ void pNullAnimator(PANEL_SPRITE*)
return; return;
} }
inline int pspheight(PANEL_SPRITE* psp)
{
auto tex = tileGetTexture(psp->picndx);
return (int)tex->GetDisplayHeight();
}
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// //
// //
@ -805,9 +811,9 @@ inline double pspCosVel(PANEL_SPRITE* const psp, int const ang = INT_MAX)
return psp->vel * synctics * BobVal((ang == INT_MAX ? psp->ang : ang) + 512) / 256.; return psp->vel * synctics * BobVal((ang == INT_MAX ? psp->ang : ang) + 512) / 256.;
} }
inline double pspPresentRetractScale(int const picnum, double const defaultheight) inline double pspPresentRetractScale(PANEL_SPRITE* psp, double const defaultheight)
{ {
double const picheight = tileHeight(picnum); double const picheight = pspheight(psp);
return picheight == defaultheight ? 1 : picheight / defaultheight; return picheight == defaultheight ? 1 : picheight / defaultheight;
} }
@ -981,7 +987,8 @@ void SpecialUziRetractFunc(PANEL_SPRITE* psp)
psp->backupy(); psp->backupy();
psp->pos.Y += 4 * synctics; psp->pos.Y += 4 * synctics;
if (psp->pos.Y >= 200 + tileHeight(psp->picnum)) auto tex = tileGetTexture(psp->picnum);
if (psp->pos.Y >= 200 + (int)tex->GetDisplayHeight())
{ {
pKillSprite(psp); pKillSprite(psp);
} }
@ -1062,7 +1069,7 @@ void InitWeaponSword(PLAYER* pp)
if (!pp->Wpn[WPN_SWORD]) if (!pp->Wpn[WPN_SWORD])
{ {
psp = pp->Wpn[WPN_SWORD] = pSpawnSprite(pp, ps_PresentSword, PRI_MID, SWORD_XOFF, SWORD_YOFF); psp = pp->Wpn[WPN_SWORD] = pSpawnSprite(pp, ps_PresentSword, PRI_MID, SWORD_XOFF, SWORD_YOFF);
psp->pos.Y += tileHeight(psp->picndx); psp->pos.Y += pspheight(psp);
psp->backupy(); psp->backupy();
} }
@ -1116,7 +1123,7 @@ void pSwordPresent(PANEL_SPRITE* psp)
return; return;
psp->backupy(); psp->backupy();
psp->pos.Y -= 3 * synctics * pspPresentRetractScale(psp->picndx, 136); psp->pos.Y -= 3 * synctics * pspPresentRetractScale(psp, 136);
if (psp->pos.Y < SWORD_YOFF) if (psp->pos.Y < SWORD_YOFF)
{ {
@ -1187,7 +1194,7 @@ void pSwordSlideDown(PANEL_SPRITE* psp)
// NOT still holding down the fire key - stop swinging // NOT still holding down the fire key - stop swinging
pSetState(psp, psp->PresentState); pSetState(psp, psp->PresentState);
psp->opos.X = psp->pos.X = SWORD_XOFF; psp->opos.X = psp->pos.X = SWORD_XOFF;
psp->opos.Y = psp->pos.Y = SWORD_YOFF + tileHeight(psp->picndx); psp->opos.Y = psp->pos.Y = SWORD_YOFF + pspheight(psp);
psp->backupboby(); psp->backupboby();
} }
} }
@ -1253,7 +1260,7 @@ void pSwordSlideDownR(PANEL_SPRITE* psp)
// NOT still holding down the fire key - stop swinging // NOT still holding down the fire key - stop swinging
pSetState(psp, psp->PresentState); pSetState(psp, psp->PresentState);
psp->opos.X = psp->pos.X = SWORD_XOFF; psp->opos.X = psp->pos.X = SWORD_XOFF;
psp->opos.Y = psp->pos.Y = SWORD_YOFF + tileHeight(psp->picndx); psp->opos.Y = psp->pos.Y = SWORD_YOFF + pspheight(psp);
psp->backupboby(); psp->backupboby();
} }
} }
@ -1284,14 +1291,12 @@ void pSwordBobSetup(PANEL_SPRITE* psp)
void pSwordHide(PANEL_SPRITE* psp) void pSwordHide(PANEL_SPRITE* psp)
{ {
int picnum = psp->picndx;
psp->backupy(); psp->backupy();
psp->pos.Y += 3 * synctics; psp->pos.Y += 3 * synctics;
if (psp->pos.Y >= SWORD_YOFF + tileHeight(picnum)) if (psp->pos.Y >= SWORD_YOFF + pspheight(psp))
{ {
psp->opos.Y = psp->pos.Y = SWORD_YOFF + tileHeight(picnum); psp->opos.Y = psp->pos.Y = SWORD_YOFF + pspheight(psp);
psp->opos.X = psp->pos.X = SWORD_XOFF; psp->opos.X = psp->pos.X = SWORD_XOFF;
pWeaponUnHideKeys(psp, psp->PresentState); pWeaponUnHideKeys(psp, psp->PresentState);
@ -1365,12 +1370,10 @@ void pSwordAttack(PANEL_SPRITE* psp)
void pSwordRetract(PANEL_SPRITE* psp) void pSwordRetract(PANEL_SPRITE* psp)
{ {
int picnum = psp->picndx;
psp->backupy(); psp->backupy();
psp->pos.Y += 3 * synctics * pspPresentRetractScale(picnum, 136); psp->pos.Y += 3 * synctics * pspPresentRetractScale(psp, 136);
if (psp->pos.Y >= SWORD_YOFF + tileHeight(picnum)) if (psp->pos.Y >= SWORD_YOFF + pspheight(psp))
{ {
psp->PlayerP->Flags &= ~(PF_WEAPON_RETRACT); psp->PlayerP->Flags &= ~(PF_WEAPON_RETRACT);
psp->PlayerP->Wpn[WPN_SWORD] = nullptr; psp->PlayerP->Wpn[WPN_SWORD] = nullptr;
@ -1520,7 +1523,7 @@ void InitWeaponStar(PLAYER* pp)
if (!pp->Wpn[WPN_STAR]) if (!pp->Wpn[WPN_STAR])
{ {
psp = pp->Wpn[WPN_STAR] = pSpawnSprite(pp, ps_PresentStar, PRI_MID, STAR_XOFF, STAR_YOFF); psp = pp->Wpn[WPN_STAR] = pSpawnSprite(pp, ps_PresentStar, PRI_MID, STAR_XOFF, STAR_YOFF);
psp->pos.Y += tileHeight(psp->picndx); psp->pos.Y += pspheight(psp);
psp->backupy(); psp->backupy();
} }
@ -1618,14 +1621,12 @@ void pLStarBobSetup(PANEL_SPRITE* psp)
void pStarHide(PANEL_SPRITE* psp) void pStarHide(PANEL_SPRITE* psp)
{ {
int picnum = psp->picndx;
psp->backupy(); psp->backupy();
psp->pos.Y += 3 * synctics; psp->pos.Y += 3 * synctics;
if (psp->pos.Y >= STAR_YOFF + tileHeight(picnum)) if (psp->pos.Y >= STAR_YOFF + pspheight(psp))
{ {
psp->opos.Y = psp->pos.Y = STAR_YOFF + tileHeight(picnum); psp->opos.Y = psp->pos.Y = STAR_YOFF + pspheight(psp);
pWeaponUnHideKeys(psp, psp->PresentState); pWeaponUnHideKeys(psp, psp->PresentState);
} }
@ -1692,12 +1693,10 @@ void pStarThrow(PANEL_SPRITE* psp)
void pStarRetract(PANEL_SPRITE* psp) void pStarRetract(PANEL_SPRITE* psp)
{ {
int picnum = psp->picndx;
psp->backupy(); psp->backupy();
psp->pos.Y += 3 * synctics; psp->pos.Y += 3 * synctics;
if (psp->pos.Y >= STAR_YOFF + tileHeight(picnum)) if (psp->pos.Y >= STAR_YOFF + pspheight(psp))
{ {
psp->PlayerP->Flags &= ~(PF_WEAPON_RETRACT); psp->PlayerP->Flags &= ~(PF_WEAPON_RETRACT);
@ -2089,7 +2088,7 @@ void pUziReloadRetract(PANEL_SPRITE* nclip)
gun->pos.X -= xadj; gun->pos.X -= xadj;
gun->pos.Y += yadj; gun->pos.Y += yadj;
if (gun->pos.Y > UZI_RELOAD_YOFF + tileHeight(gun->picndx)) if (gun->pos.Y > UZI_RELOAD_YOFF + pspheight(gun))
{ {
pSetState(gun, ps_UziDoneReload); pSetState(gun, ps_UziDoneReload);
pKillSprite(nclip); pKillSprite(nclip);
@ -2211,7 +2210,7 @@ void InitWeaponUzi(PLAYER* pp)
if (!pp->Wpn[WPN_UZI]) if (!pp->Wpn[WPN_UZI])
{ {
psp = pp->Wpn[WPN_UZI] = pSpawnSprite(pp, ps_PresentUzi, PRI_MID, 160 + UZI_XOFF, UZI_YOFF); psp = pp->Wpn[WPN_UZI] = pSpawnSprite(pp, ps_PresentUzi, PRI_MID, 160 + UZI_XOFF, UZI_YOFF);
psp->pos.Y += tileHeight(psp->picndx); psp->pos.Y += pspheight(psp);
psp->backupy(); psp->backupy();
} }
@ -2293,7 +2292,7 @@ PANEL_SPRITE* InitWeaponUzi2(PANEL_SPRITE* uzi_orig)
pp->WpnUziType = 0; // 0 is up, 1 is retract pp->WpnUziType = 0; // 0 is up, 1 is retract
New = pSpawnSprite(pp, ps_PresentUzi2, PRI_MID, 160 - UZI_XOFF, UZI_YOFF); New = pSpawnSprite(pp, ps_PresentUzi2, PRI_MID, 160 - UZI_XOFF, UZI_YOFF);
New->pos.Y += tileHeight(New->picndx); New->pos.Y += pspheight(New);
New->opos.Y = New->pos.Y; New->opos.Y = New->pos.Y;
uzi_orig->sibling = New; uzi_orig->sibling = New;
@ -2324,7 +2323,7 @@ PANEL_SPRITE* InitWeaponUziSecondaryReload(PANEL_SPRITE* uzi_orig)
PLAYER* pp = uzi_orig->PlayerP; PLAYER* pp = uzi_orig->PlayerP;
New = pSpawnSprite(pp, ps_PresentUzi, PRI_MID, 160 - UZI_XOFF, UZI_YOFF); New = pSpawnSprite(pp, ps_PresentUzi, PRI_MID, 160 - UZI_XOFF, UZI_YOFF);
New->pos.Y += tileHeight(New->picndx); New->pos.Y += pspheight(New);
New->opos.Y = New->pos.Y; New->opos.Y = New->pos.Y;
New->flags |= (PANF_XFLIP); New->flags |= (PANF_XFLIP);
@ -2453,14 +2452,12 @@ void pUziStartReload(PANEL_SPRITE* psp)
void pUziHide(PANEL_SPRITE* psp) void pUziHide(PANEL_SPRITE* psp)
{ {
int picnum = psp->picndx;
psp->backupy(); psp->backupy();
psp->pos.Y += 3 * synctics; psp->pos.Y += 3 * synctics;
if (psp->pos.Y >= 200 + tileHeight(picnum)) if (psp->pos.Y >= 200 + pspheight(psp))
{ {
psp->opos.Y = psp->pos.Y = 200 + tileHeight(picnum); psp->opos.Y = psp->pos.Y = 200 + pspheight(psp);
if (psp->flags & (PANF_PRIMARY) && psp->PlayerP->WpnUziType != 1) if (psp->flags & (PANF_PRIMARY) && psp->PlayerP->WpnUziType != 1)
{ {
@ -2631,12 +2628,10 @@ void pUziFire(PANEL_SPRITE* psp)
void pUziRetract(PANEL_SPRITE* psp) void pUziRetract(PANEL_SPRITE* psp)
{ {
// PANEL_SPRITE* sib = psp->sibling; // PANEL_SPRITE* sib = psp->sibling;
int picnum = psp->picndx;
psp->backupy(); psp->backupy();
psp->pos.Y += 3 * synctics; psp->pos.Y += 3 * synctics;
if (psp->pos.Y >= 200 + tileHeight(picnum)) if (psp->pos.Y >= 200 + pspheight(psp))
{ {
// if in the reload phase and its retracting then get rid of uzi // if in the reload phase and its retracting then get rid of uzi
// no matter whether it is PRIMARY/SECONDARY/neither. // no matter whether it is PRIMARY/SECONDARY/neither.
@ -2952,7 +2947,7 @@ void InitWeaponShotgun(PLAYER* pp)
if (!pp->Wpn[pp->WeaponType]) if (!pp->Wpn[pp->WeaponType])
{ {
psp = pp->Wpn[pp->WeaponType] = pSpawnSprite(pp, ps_PresentShotgun, PRI_MID, SHOTGUN_XOFF, SHOTGUN_YOFF); psp = pp->Wpn[pp->WeaponType] = pSpawnSprite(pp, ps_PresentShotgun, PRI_MID, SHOTGUN_XOFF, SHOTGUN_YOFF);
psp->pos.Y += tileHeight(psp->picndx); psp->pos.Y += pspheight(psp);
psp->backupy(); psp->backupy();
} }
@ -3056,16 +3051,14 @@ void pShotgunRecoilUp(PANEL_SPRITE* psp)
#if 1 #if 1
void pShotgunReloadDown(PANEL_SPRITE* psp) void pShotgunReloadDown(PANEL_SPRITE* psp)
{ {
int picnum = psp->picndx;
psp->backupy(); psp->backupy();
psp->pos.Y += 3 * synctics; psp->pos.Y += 3 * synctics;
if (psp->pos.Y >= SHOTGUN_YOFF + (tileHeight(picnum)/2)) if (psp->pos.Y >= SHOTGUN_YOFF + (pspheight(psp)/2))
{ {
PlaySound(DIGI_ROCKET_UP, psp->PlayerP,v3df_follow|v3df_dontpan|v3df_doppler); PlaySound(DIGI_ROCKET_UP, psp->PlayerP,v3df_follow|v3df_dontpan|v3df_doppler);
psp->opos.Y = psp->pos.Y = SHOTGUN_YOFF + (tileHeight(picnum)/2); psp->opos.Y = psp->pos.Y = SHOTGUN_YOFF + (pspheight(psp)/2);
pStatePlusOne(psp); pStatePlusOne(psp);
} }
@ -3193,14 +3186,12 @@ PANEL_STATE ps_ShotgunFlash[] =
void pShotgunHide(PANEL_SPRITE* psp) void pShotgunHide(PANEL_SPRITE* psp)
{ {
int picnum = psp->picndx;
psp->backupy(); psp->backupy();
psp->pos.Y += 3 * synctics; psp->pos.Y += 3 * synctics;
if (psp->pos.Y >= SHOTGUN_YOFF + tileHeight(picnum)) if (psp->pos.Y >= SHOTGUN_YOFF + pspheight(psp))
{ {
psp->opos.Y = psp->pos.Y = SHOTGUN_YOFF + tileHeight(picnum); psp->opos.Y = psp->pos.Y = SHOTGUN_YOFF + pspheight(psp);
pWeaponUnHideKeys(psp, psp->PresentState); pWeaponUnHideKeys(psp, psp->PresentState);
} }
@ -3352,12 +3343,10 @@ void pShotgunFire(PANEL_SPRITE* psp)
void pShotgunRetract(PANEL_SPRITE* psp) void pShotgunRetract(PANEL_SPRITE* psp)
{ {
int picnum = psp->picndx;
psp->backupy(); psp->backupy();
psp->pos.Y += 3 * synctics; psp->pos.Y += 3 * synctics;
if (psp->pos.Y >= SHOTGUN_YOFF + tileHeight(picnum) + 50) if (psp->pos.Y >= SHOTGUN_YOFF + pspheight(psp) + 50)
{ {
psp->PlayerP->Flags &= ~(PF_WEAPON_RETRACT); psp->PlayerP->Flags &= ~(PF_WEAPON_RETRACT);
psp->PlayerP->Wpn[psp->WeaponType] = nullptr; psp->PlayerP->Wpn[psp->WeaponType] = nullptr;
@ -3508,7 +3497,7 @@ void InitWeaponRail(PLAYER* pp)
if (!pp->Wpn[pp->WeaponType]) if (!pp->Wpn[pp->WeaponType])
{ {
psp = pp->Wpn[pp->WeaponType] = pSpawnSprite(pp, ps_PresentRail, PRI_MID, RAIL_XOFF, RAIL_YOFF); psp = pp->Wpn[pp->WeaponType] = pSpawnSprite(pp, ps_PresentRail, PRI_MID, RAIL_XOFF, RAIL_YOFF);
psp->pos.Y += tileHeight(psp->picndx); psp->pos.Y += pspheight(psp);
psp->backupy(); psp->backupy();
} }
@ -3654,14 +3643,12 @@ void pRailBobSetup(PANEL_SPRITE* psp)
void pRailHide(PANEL_SPRITE* psp) void pRailHide(PANEL_SPRITE* psp)
{ {
int picnum = psp->picndx;
psp->backupy(); psp->backupy();
psp->pos.Y += 3 * synctics; psp->pos.Y += 3 * synctics;
if (psp->pos.Y >= RAIL_YOFF + tileHeight(picnum)) if (psp->pos.Y >= RAIL_YOFF + pspheight(psp))
{ {
psp->opos.Y = psp->pos.Y = RAIL_YOFF + tileHeight(picnum); psp->opos.Y = psp->pos.Y = RAIL_YOFF + pspheight(psp);
pWeaponUnHideKeys(psp, psp->PresentState); pWeaponUnHideKeys(psp, psp->PresentState);
} }
@ -3787,12 +3774,10 @@ void pRailFire(PANEL_SPRITE* psp)
void pRailRetract(PANEL_SPRITE* psp) void pRailRetract(PANEL_SPRITE* psp)
{ {
int picnum = psp->picndx;
psp->backupy(); psp->backupy();
psp->pos.Y += 3 * synctics; psp->pos.Y += 3 * synctics;
if (psp->pos.Y >= RAIL_YOFF + tileHeight(picnum) + 50) if (psp->pos.Y >= RAIL_YOFF + pspheight(psp) + 50)
{ {
psp->PlayerP->Flags &= ~(PF_WEAPON_RETRACT); psp->PlayerP->Flags &= ~(PF_WEAPON_RETRACT);
psp->PlayerP->Wpn[psp->WeaponType] = nullptr; psp->PlayerP->Wpn[psp->WeaponType] = nullptr;
@ -4013,7 +3998,7 @@ void InitWeaponHothead(PLAYER* pp)
if (!pp->Wpn[WPN_HOTHEAD]) if (!pp->Wpn[WPN_HOTHEAD])
{ {
psp = pp->Wpn[WPN_HOTHEAD] = pSpawnSprite(pp, ps_PresentHothead, PRI_MID, HOTHEAD_XOFF, HOTHEAD_YOFF); psp = pp->Wpn[WPN_HOTHEAD] = pSpawnSprite(pp, ps_PresentHothead, PRI_MID, HOTHEAD_XOFF, HOTHEAD_YOFF);
psp->pos.Y += tileHeight(psp->picndx); psp->pos.Y += pspheight(psp);
psp->backupy(); psp->backupy();
} }
@ -4132,15 +4117,15 @@ void pHotheadBobSetup(PANEL_SPRITE* psp)
void pHotheadHide(PANEL_SPRITE* psp) void pHotheadHide(PANEL_SPRITE* psp)
{ {
int picnum = psp->picndx; auto tex = tileGetTexture(psp->picndx);
psp->backupx(); psp->backupx();
psp->pos.X += 3 * synctics; psp->pos.X += 3 * synctics;
if (psp->pos.X >= HOTHEAD_XOFF + tileWidth(picnum) || psp->pos.Y >= HOTHEAD_YOFF + tileHeight(picnum)) if (psp->pos.X >= HOTHEAD_XOFF + tex->GetDisplayWidth() || psp->pos.Y >= HOTHEAD_YOFF + tex->GetDisplayHeight())
{ {
psp->opos.X = psp->pos.X = HOTHEAD_XOFF; psp->opos.X = psp->pos.X = HOTHEAD_XOFF;
psp->opos.Y = psp->pos.Y = HOTHEAD_YOFF + tileHeight(picnum); psp->opos.Y = psp->pos.Y = HOTHEAD_YOFF + tex->GetDisplayHeight();
pWeaponUnHideKeys(psp, psp->PresentState); pWeaponUnHideKeys(psp, psp->PresentState);
} }
@ -4250,12 +4235,10 @@ void pHotheadAttack(PANEL_SPRITE* psp)
void pHotheadRetract(PANEL_SPRITE* psp) void pHotheadRetract(PANEL_SPRITE* psp)
{ {
int picnum = psp->picndx;
psp->backupy(); psp->backupy();
psp->pos.Y += 3 * synctics; psp->pos.Y += 3 * synctics;
if (psp->pos.Y >= HOTHEAD_YOFF + tileHeight(picnum)) if (psp->pos.Y >= HOTHEAD_YOFF + pspheight(psp))
{ {
psp->PlayerP->Flags &= ~(PF_WEAPON_RETRACT); psp->PlayerP->Flags &= ~(PF_WEAPON_RETRACT);
psp->PlayerP->Wpn[WPN_HOTHEAD] = nullptr; psp->PlayerP->Wpn[WPN_HOTHEAD] = nullptr;
@ -4302,13 +4285,14 @@ PANEL_STATE ps_OnFire[] =
void SpawnOnFire(PLAYER* pp) void SpawnOnFire(PLAYER* pp)
{ {
PANEL_SPRITE* fire; PANEL_SPRITE* fire;
short x = 50; int x = 50;
while (x < 320) while (x < 320)
{ {
fire = pSpawnSprite(pp, &ps_OnFire[RANDOM_P2(8<<8)>>8], PRI_FRONT, x, ON_FIRE_Y_BOT); fire = pSpawnSprite(pp, &ps_OnFire[RANDOM_P2(8<<8)>>8], PRI_FRONT, x, ON_FIRE_Y_BOT);
fire->flags |= PANF_WEAPON_SPRITE; fire->flags |= PANF_WEAPON_SPRITE;
x += tileWidth(fire->picndx); auto tex = tileGetTexture(fire->picndx);
x += (int)tex->GetDisplayWidth();
} }
} }
@ -4492,7 +4476,7 @@ void InitWeaponMicro(PLAYER* pp)
if (!pp->Wpn[WPN_MICRO]) if (!pp->Wpn[WPN_MICRO])
{ {
psp = pp->Wpn[WPN_MICRO] = pSpawnSprite(pp, ps_PresentMicro, PRI_MID, MICRO_XOFF, MICRO_YOFF); psp = pp->Wpn[WPN_MICRO] = pSpawnSprite(pp, ps_PresentMicro, PRI_MID, MICRO_XOFF, MICRO_YOFF);
psp->pos.Y += tileHeight(psp->picndx); psp->pos.Y += pspheight(psp);
psp->backupy(); psp->backupy();
} }
@ -4644,14 +4628,12 @@ void pMicroBobSetup(PANEL_SPRITE* psp)
void pMicroHide(PANEL_SPRITE* psp) void pMicroHide(PANEL_SPRITE* psp)
{ {
int picnum = psp->picndx;
psp->backupy(); psp->backupy();
psp->pos.Y += 3 * synctics; psp->pos.Y += 3 * synctics;
if (psp->pos.Y >= MICRO_YOFF + tileHeight(picnum) + 20) if (psp->pos.Y >= MICRO_YOFF + pspheight(psp) + 20)
{ {
psp->opos.Y = psp->pos.Y = MICRO_YOFF + tileHeight(picnum) + 20; psp->opos.Y = psp->pos.Y = MICRO_YOFF + pspheight(psp) + 20;
psp->opos.X = psp->pos.X = MICRO_XOFF; psp->opos.X = psp->pos.X = MICRO_XOFF;
pWeaponUnHideKeys(psp, psp->PresentState); pWeaponUnHideKeys(psp, psp->PresentState);
@ -4886,12 +4868,10 @@ void pMicroFire(PANEL_SPRITE* psp)
void pMicroRetract(PANEL_SPRITE* psp) void pMicroRetract(PANEL_SPRITE* psp)
{ {
int picnum = psp->picndx;
psp->backupy(); psp->backupy();
psp->pos.Y += 3 * synctics; psp->pos.Y += 3 * synctics;
if (psp->pos.Y >= MICRO_YOFF + tileHeight(picnum)) if (psp->pos.Y >= MICRO_YOFF + pspheight(psp))
{ {
psp->PlayerP->Flags &= ~(PF_WEAPON_RETRACT); psp->PlayerP->Flags &= ~(PF_WEAPON_RETRACT);
psp->PlayerP->Wpn[WPN_MICRO] = nullptr; psp->PlayerP->Wpn[WPN_MICRO] = nullptr;
@ -5044,7 +5024,7 @@ void InitWeaponHeart(PLAYER* pp)
if (!pp->Wpn[WPN_HEART]) if (!pp->Wpn[WPN_HEART])
{ {
psp = pp->Wpn[WPN_HEART] = pSpawnSprite(pp, ps_PresentHeart, PRI_MID, 160 + 10, HEART_YOFF); psp = pp->Wpn[WPN_HEART] = pSpawnSprite(pp, ps_PresentHeart, PRI_MID, 160 + 10, HEART_YOFF);
psp->pos.Y += tileHeight(psp->picndx); psp->pos.Y += pspheight(psp);
psp->backupy(); psp->backupy();
} }
@ -5120,14 +5100,12 @@ void pHeartBobSetup(PANEL_SPRITE* psp)
void pHeartHide(PANEL_SPRITE* psp) void pHeartHide(PANEL_SPRITE* psp)
{ {
int picnum = psp->picndx;
psp->backupy(); psp->backupy();
psp->pos.Y += 3 * synctics; psp->pos.Y += 3 * synctics;
if (psp->pos.Y >= HEART_YOFF + tileHeight(picnum)) if (psp->pos.Y >= HEART_YOFF + pspheight(psp))
{ {
psp->opos.Y = psp->pos.Y = HEART_YOFF + tileHeight(picnum); psp->opos.Y = psp->pos.Y = HEART_YOFF + pspheight(psp);
pWeaponUnHideKeys(psp, psp->PresentState); pWeaponUnHideKeys(psp, psp->PresentState);
} }
@ -5249,12 +5227,10 @@ void pHeartAttack(PANEL_SPRITE* psp)
void pHeartRetract(PANEL_SPRITE* psp) void pHeartRetract(PANEL_SPRITE* psp)
{ {
int picnum = psp->picndx;
psp->backupy(); psp->backupy();
psp->pos.Y += 3 * synctics; psp->pos.Y += 3 * synctics;
if (psp->pos.Y >= HEART_YOFF + tileHeight(picnum)) if (psp->pos.Y >= HEART_YOFF + pspheight(psp))
{ {
psp->PlayerP->Flags &= ~(PF_WEAPON_RETRACT); psp->PlayerP->Flags &= ~(PF_WEAPON_RETRACT);
psp->PlayerP->Wpn[WPN_HEART] = nullptr; psp->PlayerP->Wpn[WPN_HEART] = nullptr;
@ -5602,7 +5578,7 @@ void InitWeaponGrenade(PLAYER* pp)
if (!pp->Wpn[WPN_GRENADE]) if (!pp->Wpn[WPN_GRENADE])
{ {
psp = pp->Wpn[WPN_GRENADE] = pSpawnSprite(pp, ps_PresentGrenade, PRI_MID, GRENADE_XOFF, GRENADE_YOFF); psp = pp->Wpn[WPN_GRENADE] = pSpawnSprite(pp, ps_PresentGrenade, PRI_MID, GRENADE_XOFF, GRENADE_YOFF);
psp->pos.Y += tileHeight(psp->picndx); psp->pos.Y += pspheight(psp);
psp->backupy(); psp->backupy();
} }
@ -5641,8 +5617,6 @@ void InitWeaponGrenade(PLAYER* pp)
void pGrenadeRecoilDown(PANEL_SPRITE* psp) void pGrenadeRecoilDown(PANEL_SPRITE* psp)
{ {
// int picnum = psp->picndx;
psp->backupcoords(); psp->backupcoords();
psp->pos.X += pspCosVel(psp); psp->pos.X += pspCosVel(psp);
@ -5650,11 +5624,8 @@ void pGrenadeRecoilDown(PANEL_SPRITE* psp)
psp->vel -= 24 * synctics; psp->vel -= 24 * synctics;
// if (psp->y >= GRENADE_YOFF + tileHeight(picnum))
if (psp->vel < 400) if (psp->vel < 400)
{ {
// psp->ox = psp->y = GRENADE_YOFF + tileHeight(picnum);
psp->vel = 400; psp->vel = 400;
psp->ang = NORM_ANGLE(psp->ang + 1024); psp->ang = NORM_ANGLE(psp->ang + 1024);
@ -5747,14 +5718,12 @@ void pGrenadeBobSetup(PANEL_SPRITE* psp)
void pGrenadeHide(PANEL_SPRITE* psp) void pGrenadeHide(PANEL_SPRITE* psp)
{ {
int picnum = psp->picndx;
psp->backupy(); psp->backupy();
psp->pos.Y += 3 * synctics; psp->pos.Y += 3 * synctics;
if (psp->pos.Y >= GRENADE_YOFF + tileHeight(picnum)) if (psp->pos.Y >= GRENADE_YOFF + pspheight(psp))
{ {
psp->opos.Y = psp->pos.Y = GRENADE_YOFF + tileHeight(picnum); psp->opos.Y = psp->pos.Y = GRENADE_YOFF + pspheight(psp);
psp->opos.X = psp->pos.X = GRENADE_XOFF; psp->opos.X = psp->pos.X = GRENADE_XOFF;
pGrenadePresentSetup(psp); pGrenadePresentSetup(psp);
@ -5823,12 +5792,10 @@ void pGrenadeFire(PANEL_SPRITE* psp)
void pGrenadeRetract(PANEL_SPRITE* psp) void pGrenadeRetract(PANEL_SPRITE* psp)
{ {
int picnum = psp->picndx;
psp->backupy(); psp->backupy();
psp->pos.Y += 3 * synctics; psp->pos.Y += 3 * synctics;
if (psp->pos.Y >= GRENADE_YOFF + tileHeight(picnum)) if (psp->pos.Y >= GRENADE_YOFF + pspheight(psp))
{ {
psp->PlayerP->Flags &= ~(PF_WEAPON_RETRACT); psp->PlayerP->Flags &= ~(PF_WEAPON_RETRACT);
psp->PlayerP->Wpn[WPN_GRENADE] = nullptr; psp->PlayerP->Wpn[WPN_GRENADE] = nullptr;
@ -5918,7 +5885,7 @@ void InitWeaponMine(PLAYER* pp)
if (!pp->Wpn[WPN_MINE]) if (!pp->Wpn[WPN_MINE])
{ {
psp = pp->Wpn[WPN_MINE] = pSpawnSprite(pp, ps_PresentMine, PRI_MID, MINE_XOFF, MINE_YOFF); psp = pp->Wpn[WPN_MINE] = pSpawnSprite(pp, ps_PresentMine, PRI_MID, MINE_XOFF, MINE_YOFF);
psp->pos.Y += tileHeight(psp->picndx); psp->pos.Y += pspheight(psp);
psp->backupy(); psp->backupy();
} }
@ -5970,11 +5937,11 @@ void pMineLower(PANEL_SPRITE* psp)
psp->backupy(); psp->backupy();
psp->pos.Y += 4 * synctics; psp->pos.Y += 4 * synctics;
if (psp->pos.Y > MINE_YOFF + tileHeight(psp->picndx)) if (psp->pos.Y > MINE_YOFF + pspheight(psp))
{ {
if (!WeaponOK(psp->PlayerP)) if (!WeaponOK(psp->PlayerP))
return; return;
psp->opos.Y = psp->pos.Y = MINE_YOFF + tileHeight(psp->picndx); psp->opos.Y = psp->pos.Y = MINE_YOFF + pspheight(psp);
pStatePlusOne(psp); pStatePlusOne(psp);
} }
} }
@ -6046,14 +6013,12 @@ void pMineBobSetup(PANEL_SPRITE* psp)
void pMineHide(PANEL_SPRITE* psp) void pMineHide(PANEL_SPRITE* psp)
{ {
int picnum = psp->picndx;
psp->backupy(); psp->backupy();
psp->pos.Y += 3 * synctics; psp->pos.Y += 3 * synctics;
if (psp->pos.Y >= MINE_YOFF + tileHeight(picnum)) if (psp->pos.Y >= MINE_YOFF + pspheight(psp))
{ {
psp->opos.Y = psp->pos.Y = MINE_YOFF + tileHeight(picnum); psp->opos.Y = psp->pos.Y = MINE_YOFF + pspheight(psp);
psp->opos.X = psp->pos.X = MINE_XOFF; psp->opos.X = psp->pos.X = MINE_XOFF;
pWeaponUnHideKeys(psp, psp->PresentState); pWeaponUnHideKeys(psp, psp->PresentState);
@ -6125,12 +6090,10 @@ void pMineThrow(PANEL_SPRITE* psp)
void pMineRetract(PANEL_SPRITE* psp) void pMineRetract(PANEL_SPRITE* psp)
{ {
int picnum = psp->picndx;
psp->backupy(); psp->backupy();
psp->pos.Y += 3 * synctics; psp->pos.Y += 3 * synctics;
if (psp->pos.Y >= MINE_YOFF + tileHeight(picnum)) if (psp->pos.Y >= MINE_YOFF + pspheight(psp))
{ {
psp->PlayerP->Flags &= ~(PF_WEAPON_RETRACT); psp->PlayerP->Flags &= ~(PF_WEAPON_RETRACT);
psp->PlayerP->Wpn[WPN_MINE] = nullptr; psp->PlayerP->Wpn[WPN_MINE] = nullptr;
@ -6244,7 +6207,7 @@ void InitChops(PLAYER* pp)
if (!pp->Chops) if (!pp->Chops)
{ {
psp = pp->Chops = pSpawnSprite(pp, ps_ChopsAttack1, PRI_MID, CHOPS_XOFF, CHOPS_YOFF); psp = pp->Chops = pSpawnSprite(pp, ps_ChopsAttack1, PRI_MID, CHOPS_XOFF, CHOPS_YOFF);
psp->pos.Y += tileHeight(psp->picndx); psp->pos.Y += pspheight(psp);
psp->backupy(); psp->backupy();
} }
@ -6402,12 +6365,10 @@ void ChopsSetRetract(PLAYER* pp)
void pChopsRetract(PANEL_SPRITE* psp) void pChopsRetract(PANEL_SPRITE* psp)
{ {
int picnum = psp->picndx;
psp->backupy(); psp->backupy();
psp->pos.Y += 6 * synctics; psp->pos.Y += 6 * synctics;
if (psp->pos.Y >= CHOPS_YOFF + tileHeight(picnum)) if (psp->pos.Y >= CHOPS_YOFF + pspheight(psp))
{ {
if (RandomRange(1000) > 800) if (RandomRange(1000) > 800)
PlayerSound(DIGI_GETTINGSTIFF,v3df_follow|v3df_dontpan,psp->PlayerP); PlayerSound(DIGI_GETTINGSTIFF,v3df_follow|v3df_dontpan,psp->PlayerP);
@ -6685,7 +6646,7 @@ void InitWeaponFist(PLAYER* pp)
if (!pp->Wpn[WPN_FIST]) if (!pp->Wpn[WPN_FIST])
{ {
psp = pp->Wpn[WPN_FIST] = pSpawnSprite(pp, ps_PresentFist, PRI_MID, FIST_XOFF, FIST_YOFF); psp = pp->Wpn[WPN_FIST] = pSpawnSprite(pp, ps_PresentFist, PRI_MID, FIST_XOFF, FIST_YOFF);
psp->pos.Y += tileHeight(psp->picndx); psp->pos.Y += pspheight(psp);
psp->backupy(); psp->backupy();
} }
@ -6856,7 +6817,7 @@ void pFistSlideDown(PANEL_SPRITE* psp)
// NOT still holding down the fire key - stop swinging // NOT still holding down the fire key - stop swinging
pSetState(psp, psp->PresentState); pSetState(psp, psp->PresentState);
psp->opos.X = psp->pos.X = FIST_XOFF; psp->opos.X = psp->pos.X = FIST_XOFF;
psp->opos.Y = psp->pos.Y = FIST_YOFF + tileHeight(psp->picndx); psp->opos.Y = psp->pos.Y = FIST_YOFF + pspheight(psp);
psp->backupboby(); psp->backupboby();
} }
} }
@ -6952,7 +6913,7 @@ void pFistSlideDownR(PANEL_SPRITE* psp)
// NOT still holding down the fire key - stop swinging // NOT still holding down the fire key - stop swinging
pSetState(psp, psp->PresentState); pSetState(psp, psp->PresentState);
psp->opos.X = psp->pos.X = FIST_XOFF; psp->opos.X = psp->pos.X = FIST_XOFF;
psp->opos.Y = psp->pos.Y = FIST_YOFF + tileHeight(psp->picndx); psp->opos.Y = psp->pos.Y = FIST_YOFF + pspheight(psp);
psp->backupboby(); psp->backupboby();
} }
} }
@ -6983,14 +6944,12 @@ void pFistBobSetup(PANEL_SPRITE* psp)
void pFistHide(PANEL_SPRITE* psp) void pFistHide(PANEL_SPRITE* psp)
{ {
int picnum = psp->picndx;
psp->backupy(); psp->backupy();
psp->pos.Y += 3 * synctics; psp->pos.Y += 3 * synctics;
if (psp->pos.Y >= FIST_YOFF + tileHeight(picnum)) if (psp->pos.Y >= FIST_YOFF + pspheight(psp))
{ {
psp->opos.Y = psp->pos.Y = FIST_YOFF + tileHeight(picnum); psp->opos.Y = psp->pos.Y = FIST_YOFF + pspheight(psp);
pWeaponUnHideKeys(psp, psp->PresentState); pWeaponUnHideKeys(psp, psp->PresentState);
} }
@ -7073,12 +7032,10 @@ void pFistAttack(PANEL_SPRITE* psp)
void pFistRetract(PANEL_SPRITE* psp) void pFistRetract(PANEL_SPRITE* psp)
{ {
int picnum = psp->picndx;
psp->backupy(); psp->backupy();
psp->pos.Y += 3 * synctics; psp->pos.Y += 3 * synctics;
if (psp->pos.Y >= FIST_YOFF + tileHeight(picnum)) if (psp->pos.Y >= FIST_YOFF + pspheight(psp))
{ {
psp->PlayerP->Flags &= ~(PF_WEAPON_RETRACT); psp->PlayerP->Flags &= ~(PF_WEAPON_RETRACT);
psp->PlayerP->Wpn[WPN_FIST] = nullptr; psp->PlayerP->Wpn[WPN_FIST] = nullptr;