mirror of
https://github.com/DrBeef/Raze.git
synced 2024-11-15 00:41:55 +00:00
- got rid of most remaining references to wallpicnum and overpicnum.
What remains now needs changing the variables to texture IDs first.
This commit is contained in:
parent
90702ae2f5
commit
f5e9e7d981
13 changed files with 60 additions and 63 deletions
|
@ -465,7 +465,7 @@ static void shootweapon(DDukeActor *actor, int p, DVector3 pos, DAngle ang, int
|
||||||
goto SKIPBULLETHOLE;
|
goto SKIPBULLETHOLE;
|
||||||
|
|
||||||
if (hit.hitSector && hit.hitSector->lotag == 0)
|
if (hit.hitSector && hit.hitSector->lotag == 0)
|
||||||
if (hit.hitWall->overpicnum != DTILE_BIGFORCE)
|
if (!(tileflags(hit.hitWall->overtexture()) & TFLAG_FORCEFIELD))
|
||||||
if ((hit.hitWall->twoSided() && hit.hitWall->nextSector()->lotag == 0) ||
|
if ((hit.hitWall->twoSided() && hit.hitWall->nextSector()->lotag == 0) ||
|
||||||
(!hit.hitWall->twoSided() && hit.hitSector->lotag == 0))
|
(!hit.hitWall->twoSided() && hit.hitSector->lotag == 0))
|
||||||
if ((hit.hitWall->cstat & CSTAT_WALL_MASKED) == 0)
|
if ((hit.hitWall->cstat & CSTAT_WALL_MASKED) == 0)
|
||||||
|
@ -1987,7 +1987,7 @@ int operateTripbomb(int snum)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (hit.hitWall != nullptr)
|
if (hit.hitWall != nullptr)
|
||||||
if (hit.hitWall->overpicnum == DTILE_BIGFORCE)
|
if (tileflags(hit.hitWall->overtexture()) & TFLAG_FORCEFIELD)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
DDukeActor* act;
|
DDukeActor* act;
|
||||||
|
|
|
@ -358,7 +358,7 @@ static void shootweapon(DDukeActor* actor, int p, DVector3 pos, DAngle ang, int
|
||||||
goto SKIPBULLETHOLE;
|
goto SKIPBULLETHOLE;
|
||||||
|
|
||||||
if (hit.hitSector != nullptr && hit.hitSector->lotag == 0)
|
if (hit.hitSector != nullptr && hit.hitSector->lotag == 0)
|
||||||
if (hit.hitWall->overpicnum != RTILE_BIGFORCE)
|
if (!(tileflags(hit.hitWall->overtexture()) & TFLAG_FORCEFIELD))
|
||||||
if ((hit.hitWall->twoSided() && hit.hitWall->nextSector()->lotag == 0) ||
|
if ((hit.hitWall->twoSided() && hit.hitWall->nextSector()->lotag == 0) ||
|
||||||
(!hit.hitWall->twoSided() && hit.hitSector->lotag == 0))
|
(!hit.hitWall->twoSided() && hit.hitSector->lotag == 0))
|
||||||
if ((hit.hitWall->cstat & CSTAT_WALL_MASKED) == 0)
|
if ((hit.hitWall->cstat & CSTAT_WALL_MASKED) == 0)
|
||||||
|
|
|
@ -1248,7 +1248,7 @@ void operateforcefields(DDukeActor *effector, int low)
|
||||||
auto wal = animwall[p].wall;
|
auto wal = animwall[p].wall;
|
||||||
|
|
||||||
if (low == wal->lotag || low == -1)
|
if (low == wal->lotag || low == -1)
|
||||||
if (tileflags(wal->overtexture()) & TFLAG_FORCEFIELD)
|
if (tileflags(wal->overtexture()) & (TFLAG_FORCEFIELD | TFLAG_ANIMFORCEFIELD))
|
||||||
{
|
{
|
||||||
animwall[p].tag = 0;
|
animwall[p].tag = 0;
|
||||||
|
|
||||||
|
@ -1277,7 +1277,7 @@ void checkhitwall(DDukeActor* spr, walltype* wal, const DVector3& pos)
|
||||||
{
|
{
|
||||||
lotsofglass(spr, wal, 70);
|
lotsofglass(spr, wal, 70);
|
||||||
wal->cstat &= ~CSTAT_WALL_MASKED;
|
wal->cstat &= ~CSTAT_WALL_MASKED;
|
||||||
wal->overpicnum = TILE_MIRRORBROKE;
|
wal->setovertexture(TexMan.CheckForTexture("MIRRORBROKE", ETextureType::Any));
|
||||||
wal->portalflags = 0;
|
wal->portalflags = 0;
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, spr);
|
S_PlayActorSound(GLASS_HEAVYBREAK, spr);
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -130,27 +130,26 @@ void checkplayerhurt_d(player_struct* p, const Collision& coll)
|
||||||
auto wal = coll.hitWall;
|
auto wal = coll.hitWall;
|
||||||
|
|
||||||
if (p->hurt_delay > 0) p->hurt_delay--;
|
if (p->hurt_delay > 0) p->hurt_delay--;
|
||||||
else if (wal->cstat & (CSTAT_WALL_BLOCK | CSTAT_WALL_ALIGN_BOTTOM | CSTAT_WALL_MASKED | CSTAT_WALL_BLOCK_HITSCAN)) switch (wal->overpicnum)
|
else if (wal->cstat & (CSTAT_WALL_BLOCK | CSTAT_WALL_ALIGN_BOTTOM | CSTAT_WALL_MASKED | CSTAT_WALL_BLOCK_HITSCAN))
|
||||||
{
|
{
|
||||||
case DTILE_W_FORCEFIELD:
|
int tf = tileflags(wal->overtexture());
|
||||||
case DTILE_W_FORCEFIELD + 1:
|
if (tf & TFLAG_ANIMFORCEFIELD)
|
||||||
case DTILE_W_FORCEFIELD + 2:
|
{
|
||||||
p->GetActor()->spr.extra -= 5;
|
p->GetActor()->spr.extra -= 5;
|
||||||
|
|
||||||
p->hurt_delay = 16;
|
p->hurt_delay = 16;
|
||||||
SetPlayerPal(p, PalEntry(32, 32, 0, 0));
|
SetPlayerPal(p, PalEntry(32, 32, 0, 0));
|
||||||
|
|
||||||
p->vel.XY() = -p->GetActor()->spr.Angles.Yaw.ToVector() * 16;
|
p->vel.XY() = -p->GetActor()->spr.Angles.Yaw.ToVector() * 16;
|
||||||
S_PlayActorSound(DUKE_LONGTERM_PAIN, p->GetActor());
|
S_PlayActorSound(DUKE_LONGTERM_PAIN, p->GetActor());
|
||||||
|
|
||||||
checkhitwall(p->GetActor(), wal, p->GetActor()->getPosWithOffsetZ() + p->GetActor()->spr.Angles.Yaw.ToVector() * 2);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case DTILE_BIGFORCE:
|
|
||||||
p->hurt_delay = 26;
|
|
||||||
checkhitwall(p->GetActor(), wal, p->GetActor()->getPosWithOffsetZ() + p->GetActor()->spr.Angles.Yaw.ToVector() * 2);
|
|
||||||
break;
|
|
||||||
|
|
||||||
|
checkhitwall(p->GetActor(), wal, p->GetActor()->getPosWithOffsetZ() + p->GetActor()->spr.Angles.Yaw.ToVector() * 2);
|
||||||
|
}
|
||||||
|
else if (tf & TFLAG_FORCEFIELD)
|
||||||
|
{
|
||||||
|
p->hurt_delay = 26;
|
||||||
|
checkhitwall(p->GetActor(), wal, p->GetActor()->getPosWithOffsetZ() + p->GetActor()->spr.Angles.Yaw.ToVector() * 2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -141,13 +141,14 @@ void checkplayerhurt_r(player_struct* p, const Collision &coll)
|
||||||
auto wal = coll.hitWall;
|
auto wal = coll.hitWall;
|
||||||
|
|
||||||
if (p->hurt_delay > 0) p->hurt_delay--;
|
if (p->hurt_delay > 0) p->hurt_delay--;
|
||||||
else if (wal->cstat & (CSTAT_WALL_BLOCK | CSTAT_WALL_ALIGN_BOTTOM | CSTAT_WALL_MASKED | CSTAT_WALL_BLOCK_HITSCAN)) switch (wal->overpicnum)
|
else if (wal->cstat & (CSTAT_WALL_BLOCK | CSTAT_WALL_ALIGN_BOTTOM | CSTAT_WALL_MASKED | CSTAT_WALL_BLOCK_HITSCAN))
|
||||||
{
|
{
|
||||||
case RTILE_BIGFORCE:
|
int tf = tileflags(wal->overtexture());
|
||||||
p->hurt_delay = 26;
|
if (tf & TFLAG_FORCEFIELD)
|
||||||
checkhitwall(p->GetActor(), wal, p->GetActor()->getPosWithOffsetZ() + p->GetActor()->spr.Angles.Yaw.ToVector() * 2);
|
{
|
||||||
break;
|
p->hurt_delay = 26;
|
||||||
|
checkhitwall(p->GetActor(), wal, p->GetActor()->getPosWithOffsetZ() + p->GetActor()->spr.Angles.Yaw.ToVector() * 2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,6 +36,8 @@ Prepared for public release: 03/28/2005 - Charlie Wiederhold, 3D Realms
|
||||||
#include "weapon.h"
|
#include "weapon.h"
|
||||||
|
|
||||||
#include "break.h"
|
#include "break.h"
|
||||||
|
#include "buildtiles.h"
|
||||||
|
|
||||||
|
|
||||||
BEGIN_SW_NS
|
BEGIN_SW_NS
|
||||||
|
|
||||||
|
@ -435,8 +437,9 @@ int CompareSearchBreakInfo(int* picnum, BREAK_INFO* break_info)
|
||||||
return(*picnum - break_info->picnum);
|
return(*picnum - break_info->picnum);
|
||||||
}
|
}
|
||||||
|
|
||||||
BREAK_INFO* FindWallBreakInfo(int picnum)
|
BREAK_INFO* FindWallBreakInfo(FTextureID texid)
|
||||||
{
|
{
|
||||||
|
int picnum = legacyTileNum(texid);
|
||||||
return(BREAK_INFO*)(bsearch(&picnum, &WallBreakInfo, SIZ(WallBreakInfo), sizeof(BREAK_INFO), (int(*)(const void*, const void*))CompareSearchBreakInfo));
|
return(BREAK_INFO*)(bsearch(&picnum, &WallBreakInfo, SIZ(WallBreakInfo), sizeof(BREAK_INFO), (int(*)(const void*, const void*))CompareSearchBreakInfo));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -465,7 +468,7 @@ BREAK_INFO* SetupWallForBreak(walltype* wallp)
|
||||||
{
|
{
|
||||||
BREAK_INFO* break_info;
|
BREAK_INFO* break_info;
|
||||||
|
|
||||||
break_info = FindWallBreakInfo(wallp->wallpicnum);
|
break_info = FindWallBreakInfo(wallp->walltexture());
|
||||||
if (break_info)
|
if (break_info)
|
||||||
{
|
{
|
||||||
wallp->lotag = TAG_WALL_BREAK;
|
wallp->lotag = TAG_WALL_BREAK;
|
||||||
|
@ -474,7 +477,7 @@ BREAK_INFO* SetupWallForBreak(walltype* wallp)
|
||||||
|
|
||||||
if (wallp->overtexture().isValid() && (wallp->cstat & CSTAT_WALL_MASKED))
|
if (wallp->overtexture().isValid() && (wallp->cstat & CSTAT_WALL_MASKED))
|
||||||
{
|
{
|
||||||
break_info = FindWallBreakInfo(wallp->overpicnum);
|
break_info = FindWallBreakInfo(wallp->overtexture());
|
||||||
if (break_info)
|
if (break_info)
|
||||||
{
|
{
|
||||||
wallp->lotag = TAG_WALL_BREAK;
|
wallp->lotag = TAG_WALL_BREAK;
|
||||||
|
@ -565,7 +568,7 @@ int AutoBreakWall(walltype* wallp, const DVector3& hit_pos, DAngle ang, int type
|
||||||
// only break ONE of the walls
|
// only break ONE of the walls
|
||||||
|
|
||||||
if (nwp->lotag == TAG_WALL_BREAK &&
|
if (nwp->lotag == TAG_WALL_BREAK &&
|
||||||
nwp->overpicnum > 0 &&
|
nwp->overtexture().isValid() &&
|
||||||
(nwp->cstat & CSTAT_WALL_MASKED))
|
(nwp->cstat & CSTAT_WALL_MASKED))
|
||||||
{
|
{
|
||||||
nwp->lotag = 0;
|
nwp->lotag = 0;
|
||||||
|
@ -573,9 +576,9 @@ int AutoBreakWall(walltype* wallp, const DVector3& hit_pos, DAngle ang, int type
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wallp->overtexture().isValid() && (wallp->cstat & CSTAT_WALL_MASKED))
|
if (wallp->overtexture().isValid() && (wallp->cstat & CSTAT_WALL_MASKED))
|
||||||
break_info = FindWallBreakInfo(wallp->overpicnum);
|
break_info = FindWallBreakInfo(wallp->overtexture());
|
||||||
else
|
else
|
||||||
break_info = FindWallBreakInfo(wallp->wallpicnum);
|
break_info = FindWallBreakInfo(wallp->walltexture());
|
||||||
|
|
||||||
if (!break_info)
|
if (!break_info)
|
||||||
{
|
{
|
||||||
|
@ -616,12 +619,12 @@ int AutoBreakWall(walltype* wallp, const DVector3& hit_pos, DAngle ang, int type
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
wallp->cstat &= ~(CSTAT_WALL_BLOCK_HITSCAN|CSTAT_WALL_BLOCK);
|
wallp->cstat &= ~(CSTAT_WALL_BLOCK_HITSCAN|CSTAT_WALL_BLOCK);
|
||||||
wallp->overpicnum = break_info->breaknum;
|
wallp->setovertexture(tileGetTextureID(break_info->breaknum));
|
||||||
if (wallp->twoSided())
|
if (wallp->twoSided())
|
||||||
{
|
{
|
||||||
nwp = wallp->nextWall();
|
nwp = wallp->nextWall();
|
||||||
nwp->cstat &= ~(CSTAT_WALL_BLOCK_HITSCAN|CSTAT_WALL_BLOCK);
|
nwp->cstat &= ~(CSTAT_WALL_BLOCK_HITSCAN|CSTAT_WALL_BLOCK);
|
||||||
nwp->overpicnum = break_info->breaknum;
|
nwp->setovertexture(tileGetTextureID(break_info->breaknum));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -631,7 +634,7 @@ int AutoBreakWall(walltype* wallp, const DVector3& hit_pos, DAngle ang, int type
|
||||||
wallp->setwalltexture(FNullTextureID()); // temporary break pic
|
wallp->setwalltexture(FNullTextureID()); // temporary break pic
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
wallp->wallpicnum = break_info->breaknum;
|
wallp->setwalltexture(tileGetTextureID(break_info->breaknum));
|
||||||
if (wallp->hitag < 0)
|
if (wallp->hitag < 0)
|
||||||
DoWallBreakSpriteMatch(wallp->hitag);
|
DoWallBreakSpriteMatch(wallp->hitag);
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,7 +45,6 @@ struct BREAK_INFO
|
||||||
int16_t flags, shrap_amt;
|
int16_t flags, shrap_amt;
|
||||||
};
|
};
|
||||||
|
|
||||||
BREAK_INFO* FindWallBreakInfo(int picnum);
|
|
||||||
BREAK_INFO* FindSpriteBreakInfo(int picnum);
|
BREAK_INFO* FindSpriteBreakInfo(int picnum);
|
||||||
void SortBreakInfo(void);
|
void SortBreakInfo(void);
|
||||||
BREAK_INFO* SetupWallForBreak(walltype* wallp);
|
BREAK_INFO* SetupWallForBreak(walltype* wallp);
|
||||||
|
|
|
@ -1142,7 +1142,7 @@ void UpdateWallPortalState()
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
walltype* wal = mirror[i].mirrorWall;
|
walltype* wal = mirror[i].mirrorWall;
|
||||||
if (wal->wallpicnum != MIRRORLABEL)
|
if (wal->walltexture() != tileGetTextureID(MIRRORLABEL))
|
||||||
{
|
{
|
||||||
wal->portalflags = 0;
|
wal->portalflags = 0;
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -891,6 +891,7 @@ enum ESurfType
|
||||||
{
|
{
|
||||||
TSURF_WATER = 1,
|
TSURF_WATER = 1,
|
||||||
TSURF_LAVA = 2,
|
TSURF_LAVA = 2,
|
||||||
|
TSURF_SHALLOWWATER = 3,
|
||||||
};
|
};
|
||||||
|
|
||||||
// User->Flags flags
|
// User->Flags flags
|
||||||
|
|
|
@ -218,25 +218,9 @@ void JS_SpriteSetup(void)
|
||||||
// Check for certain walls to make sounds
|
// Check for certain walls to make sounds
|
||||||
for(auto& wal : wall)
|
for(auto& wal : wall)
|
||||||
{
|
{
|
||||||
int picnum = wal.wallpicnum;
|
int surf = tilesurface(wal.walltexture());
|
||||||
|
if (surf == TSURF_WATER || surf == TSURF_LAVA || surf == TSURF_SHALLOWWATER)
|
||||||
// Set the don't stick bit for liquid tiles
|
|
||||||
switch (picnum)
|
|
||||||
{
|
|
||||||
case 175:
|
|
||||||
case 179:
|
|
||||||
case 300:
|
|
||||||
case 320:
|
|
||||||
case 330:
|
|
||||||
case 352:
|
|
||||||
case 780:
|
|
||||||
case 890:
|
|
||||||
case 2608:
|
|
||||||
case 2616:
|
|
||||||
//case 3834:
|
|
||||||
wal.extra |= WALLFX_DONT_STICK;
|
wal.extra |= WALLFX_DONT_STICK;
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -269,9 +253,10 @@ void JS_InitMirrors(void)
|
||||||
mirror[i].ismagic = false;
|
mirror[i].ismagic = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auto mi = tileGetTextureID(MIRROR);
|
||||||
for(auto& wal : wall)
|
for(auto& wal : wall)
|
||||||
{
|
{
|
||||||
if (wal.twoSided() && (wal.overpicnum == MIRROR) && (wal.cstat & CSTAT_WALL_1WAY))
|
if (wal.twoSided() && (wal.overtexture() == mi) && (wal.cstat & CSTAT_WALL_1WAY))
|
||||||
{
|
{
|
||||||
auto sec = wal.nextSector();
|
auto sec = wal.nextSector();
|
||||||
if ((sec->floorstat & CSTAT_SECTOR_SKY) == 0)
|
if ((sec->floorstat & CSTAT_SECTOR_SKY) == 0)
|
||||||
|
@ -282,9 +267,9 @@ void JS_InitMirrors(void)
|
||||||
wal.setovertexture(sec->ceilingtexture);
|
wal.setovertexture(sec->ceilingtexture);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
auto ml = tileGetTextureID(MIRRORLABEL);
|
||||||
wal.overpicnum = MIRRORLABEL;
|
wal.setovertexture(ml);
|
||||||
wal.wallpicnum = MIRRORLABEL;
|
wal.setwalltexture(ml);
|
||||||
sec->floorstat |= CSTAT_SECTOR_SKY;
|
sec->floorstat |= CSTAT_SECTOR_SKY;
|
||||||
mirror[mirrorcnt].mirrorWall = &wal;
|
mirror[mirrorcnt].mirrorWall = &wal;
|
||||||
mirror[mirrorcnt].mirrorSector = sec;
|
mirror[mirrorcnt].mirrorSector = sec;
|
||||||
|
|
|
@ -459,3 +459,8 @@ x(DANGERSIGNBROKE, 4973)
|
||||||
x(LITEDISP22BROKE, 4980)
|
x(LITEDISP22BROKE, 4980)
|
||||||
x(TITSUBISHIBROKE, 4918)
|
x(TITSUBISHIBROKE, 4918)
|
||||||
x(ZILLACARSIDEBROKE, 4903)
|
x(ZILLACARSIDEBROKE, 4903)
|
||||||
|
|
||||||
|
x(SHALLOWWATER, 352)
|
||||||
|
x(AWATER, 780)
|
||||||
|
x(FLSLUDGE, 2608)
|
||||||
|
x(SLUDGE, 2616)
|
||||||
|
|
|
@ -6,7 +6,8 @@ constants
|
||||||
TFLAG_BUNNYFRIENDLY = 1
|
TFLAG_BUNNYFRIENDLY = 1
|
||||||
|
|
||||||
// surface types
|
// surface types
|
||||||
TSURF_WATER = 1
|
TSURF_WATER = 1
|
||||||
TSURF_LAVA = 2
|
TSURF_LAVA = 2
|
||||||
|
TSURF_SHALLOWWATER = 3
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -54,4 +54,7 @@ surfacetypes
|
||||||
LAVA7,
|
LAVA7,
|
||||||
LAVA8
|
LAVA8
|
||||||
|
|
||||||
|
TSURF_SHALLOWWATER =
|
||||||
|
SHALLOWWATER, AWATER, FLSLUDGE, SLUDGE
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in a new issue