mirror of
https://github.com/ZDoom/Raze.git
synced 2025-02-20 18:42:26 +00:00
- eliminated all remaining uses of picnum in Exhumed.
This commit is contained in:
parent
44e9a66319
commit
01b6d9f27f
11 changed files with 98 additions and 22 deletions
|
@ -76,7 +76,7 @@ bool GameInterface::DrawAutomapPlayer(const DVector2& mxy, const DVector2& cpos,
|
|||
auto pPlayerActor = PlayerList[i].pActor;
|
||||
auto vect = OutAutomapVector(mxy - cpos, cangvect, czoom, xydim);
|
||||
|
||||
DrawTexture(twod, tileGetTexture(pPlayerActor->spr.picnum /*+ ((PlayClock >> 4) & 3)*/, true), vect.X, vect.Y, DTA_ClipLeft, viewport3d.Left(), DTA_ClipTop, viewport3d.Top(), DTA_ScaleX, czoom * (2. / 3.), DTA_ScaleY, czoom * (2. / 3.), DTA_CenterOffset, true,
|
||||
DrawTexture(twod, pPlayerActor->spr.spritetexture(), true, vect.X, vect.Y, DTA_ClipLeft, viewport3d.Left(), DTA_ClipTop, viewport3d.Top(), DTA_ScaleX, czoom * (2. / 3.), DTA_ScaleY, czoom * (2. / 3.), DTA_CenterOffset, true,
|
||||
DTA_ClipRight, viewport3d.Right(), DTA_ClipBottom, viewport3d.Bottom(), DTA_Alpha, (pPlayerActor->spr.cstat & CSTAT_SPRITE_TRANSLUCENT ? 0.5 : 1.), TAG_DONE);
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -146,3 +146,21 @@ x(TileCinema11, 3454)
|
|||
x(TileCinema15, 3446)
|
||||
x(TileCinemaLose, 3445)
|
||||
x(TileCinema20, 3448)
|
||||
x(QueenChunk, 3117)
|
||||
x(QueenChunk2, 3118)
|
||||
x(QueenChunk3, 3119)
|
||||
x(AltQueenChunk, 3126)
|
||||
|
||||
x(Spark1, 985)
|
||||
x(Spark2, 986)
|
||||
x(Playermarker1, 3571)
|
||||
x(Playermarker2, 3572)
|
||||
x(Playermarker3, 3573)
|
||||
x(Playermarker4, 3574)
|
||||
x(Playermarker5, 3575)
|
||||
x(Playermarker6, 3576)
|
||||
x(Playermarker7, 3577)
|
||||
x(Playermarker8, 3578)
|
||||
|
||||
x(WeaponSpriteSword, 57)
|
||||
x(WeaponSpriteMummy, 3455)
|
||||
|
|
|
@ -20,13 +20,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|||
|
||||
enum
|
||||
{
|
||||
kTile985 = 985,
|
||||
kTile986 = 986,
|
||||
kTile3000 = 3000,
|
||||
kQueenChunk = 3117,
|
||||
kTile3126 = 3126,
|
||||
kTile3512 = 3512,
|
||||
kTile3571 = 3571,
|
||||
kTile3593 = 3593,
|
||||
kTile3603 = 3603,
|
||||
kTile4092 = 4092,
|
||||
|
|
|
@ -26,6 +26,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|||
#include "player.h"
|
||||
#include "interpolate.h"
|
||||
#include "mapinfo.h"
|
||||
#include "texids.h"
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
|
||||
|
@ -1398,7 +1399,7 @@ DExhumedActor* BuildSpark(DExhumedActor* pActor, int nVal)
|
|||
|
||||
if (nVal >= 2)
|
||||
{
|
||||
pSpark->spr.picnum = kEnergy2;
|
||||
pSpark->spr.setspritetexture(aTexIds[kTexENERGY2]);
|
||||
nSmokeSparks++;
|
||||
|
||||
if (nVal == 3)
|
||||
|
@ -1424,7 +1425,7 @@ DExhumedActor* BuildSpark(DExhumedActor* pActor, int nVal)
|
|||
}
|
||||
|
||||
pSpark->vel.Z = -RandomSize(4) * 0.5;
|
||||
pSpark->spr.picnum = kTile985 + nVal;
|
||||
pSpark->spr.setspritetexture(aTexIds[kTexSpark1 + nVal]);
|
||||
}
|
||||
|
||||
pSpark->spr.pos.Z = pActor->spr.pos.Z;
|
||||
|
@ -1461,12 +1462,12 @@ void AISpark::Tick(RunListEvent* ev)
|
|||
pActor->spr.scale.Y += (-0.03125);
|
||||
|
||||
// calling BuildSpark() with 2nd parameter as '1' will set kTile986
|
||||
if (pActor->spr.picnum == kTile986 && int((pActor->spr.scale.X * INV_REPEAT_SCALE)) & 2) // hack alert
|
||||
if (pActor->spr.spritetexture() == aTexIds[kTexSpark2] && int((pActor->spr.scale.X * INV_REPEAT_SCALE)) & 2) // hack alert
|
||||
{
|
||||
BuildSpark(pActor, 2);
|
||||
}
|
||||
|
||||
if (pActor->spr.picnum >= kTile3000) {
|
||||
if (pActor->spr.spritetexture() == aTexIds[kTexENERGY2]) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1486,7 +1487,7 @@ void AISpark::Tick(RunListEvent* ev)
|
|||
pActor->vel.Y = 0;
|
||||
pActor->vel.Z = 0;
|
||||
|
||||
if (pActor->spr.picnum > kTile3000) {
|
||||
if (pActor->spr.spritetexture() == aTexIds[kTexENERGY2]) {
|
||||
nSmokeSparks--;
|
||||
}
|
||||
|
||||
|
|
|
@ -58,8 +58,8 @@ static constexpr double nActionEyeLevel[] = {
|
|||
-55.0, -55.0, -55.0, -55.0, -55.0, -55.0, -55.0
|
||||
};
|
||||
|
||||
static constexpr uint16_t nGunLotag[] = { 52, 53, 54, 55, 56, 57 };
|
||||
static constexpr uint16_t nGunPicnum[] = { 57, 488, 490, 491, 878, 899, 3455 };
|
||||
static const uint16_t nGunLotag[] = { 52, 53, 54, 55, 56, 57 };
|
||||
static const uint16_t nGunPicnum[] = { kTexWeaponSpriteSword, kTexWeaponSpriteMagnum, kTexWeaponSpriteM60, kTexWeaponSpriteFlamethrower, kTexAmmoSpriteGrenade, kTexWeaponSpriteCobra, kTexWeaponSpriteMummy };
|
||||
|
||||
static constexpr int16_t nItemText[] = {
|
||||
-1, -1, -1, -1, -1, -1, 18, 20, 19, 13, -1, 10, 1, 0, 2, -1, 3,
|
||||
|
@ -162,8 +162,12 @@ void InitPlayerInventory(int nPlayer)
|
|||
if (nPlayer == nLocalPlayer)
|
||||
automapMode = am_off;
|
||||
|
||||
const auto pixels = GetRawPixels(tileGetTextureID(kTile3571 + nPlayer));
|
||||
PlayerList[nPlayer].nPlayerColor = pixels[tileWidth(nPlayer + kTile3571) * tileHeight(nPlayer + kTile3571) / 2];
|
||||
|
||||
auto tex = aTexIds[kTexPlayermarker1 + nPlayer];
|
||||
auto texp = TexMan.GetGameTexture(tex);
|
||||
auto pixels = GetRawPixels(tex);
|
||||
|
||||
PlayerList[nPlayer].nPlayerColor = pixels[texp->GetTexelWidth() * texp->GetTexelHeight() / 2];
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
@ -250,7 +254,8 @@ void RestartPlayer(int nPlayer)
|
|||
pFloorSprite->spr.pos = pPlayerActor->spr.pos;
|
||||
pFloorSprite->spr.scale = DVector2(1, 1);
|
||||
pFloorSprite->spr.cstat = CSTAT_SPRITE_ALIGNMENT_FLOOR;
|
||||
pFloorSprite->spr.picnum = nPlayer + kTile3571;
|
||||
pFloorSprite->spr.setspritetexture(aTexIds[kTexPlayermarker1 + nPlayer]);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -388,7 +393,7 @@ void StartDeathSeq(int nPlayer, int nVal)
|
|||
ChangeActorSect(pGunActor, pSector);
|
||||
ChangeActorStat(pGunActor, nGunLotag[nWeapon] + 900);
|
||||
pGunActor->spr.pos = DVector3(pPlayerActor->spr.pos.XY(), pSector->floorz - 2);
|
||||
pGunActor->spr.picnum = nGunPicnum[nWeapon];
|
||||
pGunActor->spr.setspritetexture(aTexIds[nGunPicnum[nWeapon]]);
|
||||
BuildItemAnim(pGunActor);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1450,13 +1450,13 @@ void AIQueen::Tick(RunListEvent* ev)
|
|||
{
|
||||
auto pChunkActor = BuildCreatureChunk(pActor, queenPicnum);
|
||||
|
||||
pChunkActor->spr.picnum = kQueenChunk + (i % 3);
|
||||
pChunkActor->spr.setspritetexture(aTexIds[kTexQueenChunk + (i % 3)]);
|
||||
pChunkActor->spr.scale = DVector2(1.5625, 1.5625);
|
||||
}
|
||||
|
||||
auto pChunkActor = BuildCreatureChunk(pActor, queenPicnum);
|
||||
|
||||
pChunkActor->spr.picnum = kTile3126;
|
||||
pChunkActor->spr.setspritetexture(aTexIds[kTexAltQueenChunk]);
|
||||
pChunkActor->spr.scale = DVector2(1.5625, 1.5625);
|
||||
|
||||
PlayFXAtXYZ(
|
||||
|
|
|
@ -112,7 +112,7 @@ void InitSpiritHead()
|
|||
|
||||
|
||||
pSpiritSpr->spr.scale = DVector2(2.1875, 2.1875);
|
||||
pSpiritSpr->spr.picnum = kTileRamsesWorkTile;
|
||||
pSpiritSpr->spr.setspritetexture(aTexIds[kTexTileRamsesWorkTile]);
|
||||
|
||||
nHeadStage = 0;
|
||||
|
||||
|
|
|
@ -348,11 +348,11 @@ void seq_LoadSequences()
|
|||
nPilotLightFrame = 0;
|
||||
|
||||
const auto fontSeq = getSequence("font2");
|
||||
const int nFontFirstChar = legacyTileNum(fontSeq->getFirstFrameTexture());
|
||||
const auto nFontFirstChar = fontSeq->getFirstFrameTexture();
|
||||
|
||||
for (unsigned i = 0; i < fontSeq->frames.Size(); i++)
|
||||
{
|
||||
auto tex = tileGetTexture(nFontFirstChar + i);
|
||||
auto tex = TexMan.GetGameTexture(nFontFirstChar + i);
|
||||
tex->SetOffsets(0, 0);
|
||||
}
|
||||
}
|
||||
|
|
0
source/games/exhumed/src/texids.cpp
Normal file
0
source/games/exhumed/src/texids.cpp
Normal file
30
source/games/exhumed/src/texids.h
Normal file
30
source/games/exhumed/src/texids.h
Normal file
|
@ -0,0 +1,30 @@
|
|||
#pragma once
|
||||
#include "textureid.h"
|
||||
|
||||
#define x(a) kTex##a,
|
||||
|
||||
enum ETextureIDs
|
||||
{
|
||||
#include "texidsdef.h"
|
||||
TEXID_COUNT
|
||||
};
|
||||
#undef x
|
||||
|
||||
inline FTextureID aTexIds[TEXID_COUNT];
|
||||
|
||||
#define x(a) #a,
|
||||
|
||||
inline const char* const texlistnames[] =
|
||||
{
|
||||
#include "texidsdef.h"
|
||||
};
|
||||
#undef x
|
||||
|
||||
|
||||
inline void InitTextureIDs()
|
||||
{
|
||||
for(int i = 0; i < TEXID_COUNT; i++)
|
||||
{
|
||||
aTexIds[i] = TexMan.CheckForTexture(texlistnames[i], ETextureType::Any);
|
||||
}
|
||||
}
|
27
source/games/exhumed/src/texidsdef.h
Normal file
27
source/games/exhumed/src/texidsdef.h
Normal file
|
@ -0,0 +1,27 @@
|
|||
// list of textures that get referenced directly in game code.
|
||||
x(ENERGY2)
|
||||
x(Spark1)
|
||||
x(Spark2)
|
||||
x(Playermarker1)
|
||||
x(Playermarker2)
|
||||
x(Playermarker3)
|
||||
x(Playermarker4)
|
||||
x(Playermarker5)
|
||||
x(Playermarker6)
|
||||
x(Playermarker7)
|
||||
x(Playermarker8)
|
||||
x(QueenChunk)
|
||||
x(QueenChunk2)
|
||||
x(QueenChunk3)
|
||||
x(AltQueenChunk)
|
||||
x(TileRamsesWorkTile)
|
||||
x(Torch1)
|
||||
x(Torch2)
|
||||
x(WeaponSpriteSword)
|
||||
x(WeaponSpriteMummy)
|
||||
x(WeaponSpriteMagnum)
|
||||
x(WeaponSpriteM60)
|
||||
x(WeaponSpriteFlamethrower)
|
||||
x(AmmoSpriteGrenade)
|
||||
x(WeaponSpriteCobra)
|
||||
|
Loading…
Reference in a new issue