- Exhumed: wall stuff in AddFlash

This commit is contained in:
Christoph Oelckers 2021-11-18 00:52:32 +01:00
parent c31d8a93fd
commit 7b1345d3e5
2 changed files with 15 additions and 21 deletions

View file

@ -140,6 +140,7 @@ struct walltype
walltype* nextWall() const;
walltype* point2Wall() const;
vec2_t delta() const { return point2Wall()->pos - pos; }
vec2_t center() const { return(point2Wall()->pos + pos) / 2; }
int deltax() const { return point2Wall()->x - x; }
int deltay() const { return point2Wall()->y - y; }
bool twoSided() const { return nextsector >= 0; }

View file

@ -231,33 +231,26 @@ void AddFlash(int nSector, int x, int y, int z, int val)
int var_14 = 0;
int startwall = sectp->wallptr;
int endwall = sectp->wallptr + sectp->wallnum;
for (int i = startwall; i < endwall; i++)
for (auto& wal : wallsofsector(sectp))
{
short wall2 = wall[i].point2;
int xAverage = (wall[i].x + wall[wall2].x) / 2;
int yAverage = (wall[i].y + wall[wall2].y) / 2;
auto average = wal.center();
sectortype *pNextSector = NULL;
if (wall[i].nextsector > -1) {
pNextSector = &sector[wall[i].nextsector];
}
if (wal.nextsector > -1)
pNextSector = wal.nextSector();
int ebx = -255;
if (!var_18)
{
int x2 = x - xAverage;
int x2 = x - average.x;
if (x2 < 0) {
x2 = -x2;
}
ebx = x2;
int y2 = y - yAverage;
int y2 = y - average.y;
if (y2 < 0) {
y2 = -y2;
}
@ -270,7 +263,7 @@ void AddFlash(int nSector, int x, int y, int z, int val)
var_14++;
var_28 += ebx;
if (wall[i].pal < 5)
if (wal.pal < 5)
{
if (!pNextSector || pNextSector->floorz < sectp->floorz)
{
@ -280,23 +273,23 @@ void AddFlash(int nSector, int x, int y, int z, int val)
}
sFlash[nFlash].nType = var_20 | 2;
sFlash[nFlash].shade = wall[i].shade;
sFlash[nFlash].nIndex = i;
sFlash[nFlash].shade = wal.shade;
sFlash[nFlash].nIndex = wallnum(&wal);
wall[i].pal += 7;
wal.pal += 7;
ebx += wall[i].shade;
ebx += wal.shade;
int eax = ebx;
if (ebx < -127) {
eax = -127;
}
wall[i].shade = eax;
wal.shade = eax;
if (!var_1C && !wall[i].overpicnum && pNextSector)
if (!var_1C && !wal.overpicnum && pNextSector)
{
AddFlash(wall[i].nextsector, x, y, z, val);
AddFlash(wal.nextsector, x, y, z, val);
}
}
}