- use texture names for the panel overlays.

This commit is contained in:
Christoph Oelckers 2023-05-29 12:23:16 +02:00
parent bf8cdad155
commit 7bf3c57d5d
5 changed files with 34 additions and 30 deletions

View file

@ -58,7 +58,6 @@ struct FSpriteDef
uint8_t numframes; uint8_t numframes;
uint16_t spriteframes; uint16_t spriteframes;
FTextureID GetSpriteFrame(int frame, int rot, DAngle ang, bool* mirror, bool flipagain = false);
}; };
extern TArray<FSpriteFrame> SpriteFrames; extern TArray<FSpriteFrame> SpriteFrames;

View file

@ -136,6 +136,11 @@ Prepared for public release: 03/28/2005 - Charlie Wiederhold, 3D Realms
#define SHOTGUN_RELOAD1 2211 #define SHOTGUN_RELOAD1 2211
#define SHOTGUN_RELOAD2 2212 #define SHOTGUN_RELOAD2 2212
#define SHOTGUN2_REST 2227
#define SHOTGUN2_RELOAD0 2227
#define SHOTGUN2_RELOAD1 2226
#define SHOTGUN2_RELOAD2 2225
#define SHOTGUN_SHELL0 2180 #define SHOTGUN_SHELL0 2180
#define SHOTGUN_SHELL1 2181 #define SHOTGUN_SHELL1 2181
#define SHOTGUN_SHELL2 2182 #define SHOTGUN_SHELL2 2182

View file

@ -1883,13 +1883,13 @@ void pUziOverlays(DPanelSprite* psp, short mode)
switch (mode) switch (mode)
{ {
case 0: // At rest case 0: // At rest
psp->over[0].pic = UZI_COPEN; psp->over[0].pic = TexMan.CheckForTexture("UZI_COPEN", ETextureType::Any);
break; break;
case 1: // Firing case 1: // Firing
psp->over[0].pic = UZI_CLIT; psp->over[0].pic = TexMan.CheckForTexture("UZI_CLIT", ETextureType::Any);
break; break;
case 2: // Reloading case 2: // Reloading
psp->over[0].pic = UZI_CRELOAD; psp->over[0].pic = TexMan.CheckForTexture("UZI_CRELOAD", ETextureType::Any);
psp->over[0].xoff = UZI_CHAMBERRELOAD_XOFF; psp->over[0].xoff = UZI_CHAMBERRELOAD_XOFF;
psp->over[0].yoff = UZI_CHAMBERRELOAD_YOFF; psp->over[0].yoff = UZI_CHAMBERRELOAD_YOFF;
break; break;
@ -3146,11 +3146,11 @@ bool pShotgunOverlays(DPanelSprite* psp)
switch (psp->PlayerP->WpnShotgunType) switch (psp->PlayerP->WpnShotgunType)
{ {
case 0: case 0:
psp->over[SHOTGUN_AUTO_NUM].pic = -1; psp->over[SHOTGUN_AUTO_NUM].pic = FNullTextureID();
psp->over[SHOTGUN_AUTO_NUM].flags |= (psf_ShadeNone); psp->over[SHOTGUN_AUTO_NUM].flags |= (psf_ShadeNone);
return false; return false;
case 1: case 1:
psp->over[SHOTGUN_AUTO_NUM].pic = SHOTGUN_AUTO; psp->over[SHOTGUN_AUTO_NUM].pic = TexMan.CheckForTexture("SHOTGUN_AUTO", ETextureType::Any);
psp->over[SHOTGUN_AUTO_NUM].flags |= (psf_ShadeNone); psp->over[SHOTGUN_AUTO_NUM].flags |= (psf_ShadeNone);
return false; return false;
} }
@ -3953,13 +3953,13 @@ void pHotHeadOverlays(DPanelSprite* psp, short mode)
switch (mode) switch (mode)
{ {
case 0: // Great balls o' fire case 0: // Great balls o' fire
psp->over[0].pic = HEAD_MODE1; psp->over[0].pic = TexMan.CheckForTexture("HEAD_MODE1", ETextureType::Any);
break; break;
case 1: // Ring of fire case 1: // Ring of fire
psp->over[0].pic = HEAD_MODE2; psp->over[0].pic = TexMan.CheckForTexture("HEAD_MODE2", ETextureType::Any);
break; break;
case 2: // I love the smell of napalm in the morning case 2: // I love the smell of napalm in the morning
psp->over[0].pic = HEAD_MODE3; psp->over[0].pic = TexMan.CheckForTexture("HEAD_MODE3", ETextureType::Any);
break; break;
} }
} }
@ -4668,36 +4668,38 @@ bool pMicroOverlays(DPanelSprite* psp)
switch (psp->PlayerP->WpnRocketType) switch (psp->PlayerP->WpnRocketType)
{ {
case 0: case 0:
psp->over[MICRO_SIGHT_NUM].pic = MICRO_SIGHT; psp->over[MICRO_SIGHT_NUM].pic = TexMan.CheckForTexture("MICRO_SIGHT", ETextureType::Any);
psp->over[MICRO_SHOT_NUM].pic = MICRO_SHOT_1; psp->over[MICRO_SHOT_NUM].pic = TexMan.CheckForTexture("MICRO_SHOT_1", ETextureType::Any);
psp->over[MICRO_SHOT_NUM].flags |= (psf_ShadeNone); psp->over[MICRO_SHOT_NUM].flags |= (psf_ShadeNone);
psp->over[MICRO_HEAT_NUM].pic = -1; psp->over[MICRO_HEAT_NUM].pic = FNullTextureID();
return false; return false;
case 1: case 1:
if (psp->PlayerP->WpnRocketHeat) if (psp->PlayerP->WpnRocketHeat)
{ {
psp->over[MICRO_SIGHT_NUM].pic = MICRO_SIGHT; psp->over[MICRO_SIGHT_NUM].pic = TexMan.CheckForTexture("MICRO_SIGHT", ETextureType::Any);
psp->over[MICRO_SHOT_NUM].pic = MICRO_SHOT_1; psp->over[MICRO_SHOT_NUM].pic = TexMan.CheckForTexture("MICRO_SHOT_1", ETextureType::Any);
psp->over[MICRO_SHOT_NUM].flags |= (psf_ShadeNone); psp->over[MICRO_SHOT_NUM].flags |= (psf_ShadeNone);
ASSERT(psp->PlayerP->WpnRocketHeat < 6); if (psp->PlayerP->WpnRocketHeat < 6)
{
psp->over[MICRO_HEAT_NUM].pic = MICRO_HEAT + (5 - psp->PlayerP->WpnRocketHeat); static const char* heats[] = { "MICRO_HEAT0", "MICRO_HEAT1", "MICRO_HEAT2", "MICRO_HEAT3", "MICRO_HEAT4", "MICRO_HEAT5" };
psp->over[MICRO_HEAT_NUM].pic = TexMan.CheckForTexture(heats[5 - psp->PlayerP->WpnRocketHeat], ETextureType::Any);
}
} }
else else
{ {
psp->over[MICRO_SIGHT_NUM].pic = MICRO_SIGHT; psp->over[MICRO_SIGHT_NUM].pic = TexMan.CheckForTexture("MICRO_SIGHT", ETextureType::Any);
psp->over[MICRO_SHOT_NUM].pic = MICRO_SHOT_1; psp->over[MICRO_SHOT_NUM].pic = TexMan.CheckForTexture("MICRO_SHOT_1", ETextureType::Any);
psp->over[MICRO_SHOT_NUM].flags |= (psf_ShadeNone); psp->over[MICRO_SHOT_NUM].flags |= (psf_ShadeNone);
psp->over[MICRO_HEAT_NUM].pic = -1; psp->over[MICRO_HEAT_NUM].pic = FNullTextureID();
} }
return false; return false;
case 2: case 2:
psp->over[MICRO_SIGHT_NUM].pic = -1; psp->over[MICRO_SIGHT_NUM].pic = FNullTextureID();
psp->over[MICRO_HEAT_NUM].pic = -1; psp->over[MICRO_HEAT_NUM].pic = FNullTextureID();
psp->over[MICRO_SHOT_NUM].pic = MICRO_SHOT_20; psp->over[MICRO_SHOT_NUM].pic = TexMan.CheckForTexture("MICRO_SHOT_20", ETextureType::Any);
psp->over[MICRO_SHOT_NUM].flags |= (psf_ShadeNone); psp->over[MICRO_SHOT_NUM].flags |= (psf_ShadeNone);
psp->over[MICRO_HEAT_NUM].flags |= (psf_ShadeNone); psp->over[MICRO_HEAT_NUM].flags |= (psf_ShadeNone);
return true; return true;
@ -7254,7 +7256,7 @@ DPanelSprite* pSpawnSprite(DSWPlayer* pp, PANEL_STATE* state, uint8_t priority,
for (i = 0; i < SIZ(psp->over); i++) for (i = 0; i < SIZ(psp->over); i++)
{ {
psp->over[i].State = nullptr; psp->over[i].State = nullptr;
psp->over[i].pic = -1; psp->over[i].pic = FNullTextureID();
psp->over[i].xoff = -1; psp->over[i].xoff = -1;
psp->over[i].yoff = -1; psp->over[i].yoff = -1;
} }
@ -7532,13 +7534,14 @@ void pDisplaySprites(DSWPlayer* pp, double interpfrac)
// do overlays (if any) // do overlays (if any)
for (i = 0; i < SIZ(psp->over); i++) for (i = 0; i < SIZ(psp->over); i++)
{ {
FTextureID tex;
// get pic from state // get pic from state
if (psp->over[i].State) if (psp->over[i].State)
texnum = GetTextureFromSprite(psp->over[i].State->Sprite, 0); texnum = GetTextureFromSprite(psp->over[i].State->Sprite, 0);
else else
// get pic from over variable // get pic from over variable
if (psp->over[i].pic >= 0) if (psp->over[i].pic.Exists())
texnum = tileGetTextureID(psp->over[i].pic); texnum = psp->over[i].pic;
else else
continue; continue;

View file

@ -99,8 +99,8 @@ struct PANEL_SPRITE_OVERLAY
{ {
PANEL_STATE* State; PANEL_STATE* State;
int flags; int flags;
FTextureID pic;
short tics; short tics;
short pic;
short xoff; // from panel sprite center x short xoff; // from panel sprite center x
short yoff; // from panel sprite center y short yoff; // from panel sprite center y
}; };

View file

@ -436,9 +436,6 @@ x(BLOODYFIST_SWING0)
x(BLOODYFIST_SWING1) x(BLOODYFIST_SWING1)
x(BLOODYFIST_SWING2) x(BLOODYFIST_SWING2)
x(FIST2_REST) x(FIST2_REST)
x(FIST2_SWING0)
x(FIST2_SWING1)
x(FIST2_SWING2)
x(FIST2_SWING_ALT) x(FIST2_SWING_ALT)
x(FIST3_REST) x(FIST3_REST)
x(FIST3_SWING0) x(FIST3_SWING0)