mirror of
https://github.com/ZDoom/Raze.git
synced 2025-03-13 20:42:11 +00:00
- SW: got rid of MAXWALLS.
Only places left are declarations of global arrays.
This commit is contained in:
parent
b6579809ad
commit
25a6774540
10 changed files with 45 additions and 35 deletions
|
@ -67,10 +67,10 @@ void CopySectorWalls(short dest_sectnum, short src_sectnum)
|
|||
wall[dest_wall_num].lotag = wall[src_wall_num].lotag;
|
||||
wall[dest_wall_num].extra = wall[src_wall_num].extra;
|
||||
|
||||
uint16_t const dest_nextwall = wall[dest_wall_num].nextwall;
|
||||
uint16_t const src_nextwall = wall[src_wall_num].nextwall;
|
||||
uint32_t const dest_nextwall = wall[dest_wall_num].nextwall;
|
||||
uint32_t const src_nextwall = wall[src_wall_num].nextwall;
|
||||
|
||||
if (dest_nextwall < MAXWALLS && src_nextwall < MAXWALLS)
|
||||
if (validWallIndex(dest_nextwall) && validWallIndex(src_nextwall))
|
||||
{
|
||||
wall[dest_nextwall].picnum = wall[src_nextwall].picnum;
|
||||
wall[dest_nextwall].xrepeat = wall[src_nextwall].xrepeat;
|
||||
|
|
|
@ -330,9 +330,9 @@ inline int SPRITEp_SIZE_BOS(const spritetype* sp)
|
|||
#define HIT_SECTOR BIT(14)
|
||||
#define HIT_PLAX_WALL BIT(16)
|
||||
|
||||
#define NORM_SPRITE(val) ((val) & (MAXSPRITES - 1))
|
||||
#define NORM_WALL(val) ((val) & (MAXWALLS - 1))
|
||||
#define NORM_SECTOR(val) ((val) & (MAXSECTORS - 1))
|
||||
#define NORM_SPRITE(val) ((val) & (kHitIndexMask - 1))
|
||||
#define NORM_WALL(val) ((val) & (kHitIndexMask - 1))
|
||||
#define NORM_SECTOR(val) ((val) & (kHitIndexMask - 1))
|
||||
|
||||
// overwritesprite flags
|
||||
#define OVER_SPRITE_MIDDLE (BIT(0))
|
||||
|
|
|
@ -95,7 +95,7 @@ void SectorLightShade(SPRITEp sp, short intensity)
|
|||
if (TEST(sp->extra, SPRX_BOOL5))
|
||||
{
|
||||
uint16_t const nextwall = wall[w].nextwall;
|
||||
if (nextwall < MAXWALLS)
|
||||
if (validWallIndex(nextwall))
|
||||
{
|
||||
base_shade = wall_shade[wallcount];
|
||||
wall[nextwall].shade = base_shade + intensity;
|
||||
|
|
|
@ -118,7 +118,7 @@ void SetWallWarpHitscan(short sectnum)
|
|||
// Travel all the way around loop setting wall bits
|
||||
do
|
||||
{
|
||||
if ((uint16_t)wall[wall_num].nextwall < MAXWALLS)
|
||||
if (validWallIndex(wall[wall_num].nextwall))
|
||||
SET(wall[wall_num].cstat, CSTAT_WALL_WARP_HITSCAN);
|
||||
wall_num = wall[wall_num].point2;
|
||||
}
|
||||
|
|
|
@ -277,7 +277,7 @@ void DoRotatorSetInterp(short SpriteNum)
|
|||
StartInterpolation(w, Interp_Wall_Y);
|
||||
|
||||
uint16_t const nextwall = wall[w].nextwall;
|
||||
if (nextwall < MAXWALLS)
|
||||
if (validWallIndex(nextwall))
|
||||
{
|
||||
StartInterpolation(wall[nextwall].point2, Interp_Wall_X);
|
||||
StartInterpolation(wall[nextwall].point2, Interp_Wall_Y);
|
||||
|
@ -300,7 +300,7 @@ void DoRotatorStopInterp(short SpriteNum)
|
|||
StopInterpolation(w, Interp_Wall_Y);
|
||||
|
||||
uint16_t const nextwall = wall[w].nextwall;
|
||||
if (nextwall < MAXWALLS)
|
||||
if (validWallIndex(nextwall))
|
||||
{
|
||||
StopInterpolation(wall[nextwall].point2, Interp_Wall_X);
|
||||
StopInterpolation(wall[nextwall].point2, Interp_Wall_Y);
|
||||
|
|
|
@ -106,7 +106,7 @@ void SetSectorWallBits(short sectnum, int bit_mask, bool set_sectwall, bool set_
|
|||
if (set_nextwall)
|
||||
{
|
||||
uint16_t const nextwall = wall[wall_num].nextwall;
|
||||
if (nextwall < MAXWALLS)
|
||||
if (validWallIndex(nextwall))
|
||||
SET(wall[nextwall].extra, bit_mask);
|
||||
}
|
||||
|
||||
|
@ -151,7 +151,7 @@ static void WallSetupLoop(WALLp wp, int16_t lotag, int16_t extra)
|
|||
{
|
||||
SET(wp->extra, extra);
|
||||
uint16_t const nextwall = wp->nextwall;
|
||||
if (nextwall < MAXWALLS)
|
||||
if (validWallIndex(nextwall))
|
||||
SET(wall[nextwall].extra, extra);
|
||||
}
|
||||
|
||||
|
@ -162,7 +162,7 @@ static void WallSetupLoop(WALLp wp, int16_t lotag, int16_t extra)
|
|||
{
|
||||
SET(wall[wall_num].extra, extra);
|
||||
uint16_t const nextwall = wall[wall_num].nextwall;
|
||||
if (nextwall < MAXWALLS)
|
||||
if (validWallIndex(nextwall))
|
||||
SET(wall[nextwall].extra, extra);
|
||||
}
|
||||
}
|
||||
|
@ -180,7 +180,7 @@ WallSetup(void)
|
|||
|
||||
extern int x_min_bound, y_min_bound, x_max_bound, y_max_bound;
|
||||
|
||||
for (wp = wall, i = 0; wp < &wall[numwalls]; i++, wp++)
|
||||
for (wp = wall, i = 0; i < numwalls; i++, wp++)
|
||||
{
|
||||
if (wp->picnum == FAF_PLACE_MIRROR_PIC)
|
||||
wp->picnum = FAF_MIRROR_PIC;
|
||||
|
@ -209,18 +209,28 @@ WallSetup(void)
|
|||
case TAG_WALL_LOOP_OUTER_SECONDARY:
|
||||
{
|
||||
// make sure it's a red wall
|
||||
ASSERT((uint16_t)wp->nextwall < MAXWALLS);
|
||||
|
||||
WallSetupLoop(wp, TAG_WALL_LOOP_OUTER_SECONDARY, WALLFX_LOOP_OUTER|WALLFX_LOOP_OUTER_SECONDARY);
|
||||
if (validWallIndex(wp->nextwall))
|
||||
{
|
||||
WallSetupLoop(wp, TAG_WALL_LOOP_OUTER_SECONDARY, WALLFX_LOOP_OUTER | WALLFX_LOOP_OUTER_SECONDARY);
|
||||
}
|
||||
else
|
||||
{
|
||||
Printf(PRINT_HIGH, "one-sided wall %d in loop setup\n", i);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case TAG_WALL_LOOP_OUTER:
|
||||
{
|
||||
// make sure it's a red wall
|
||||
ASSERT((uint16_t)wp->nextwall < MAXWALLS);
|
||||
|
||||
WallSetupLoop(wp, TAG_WALL_LOOP_OUTER, WALLFX_LOOP_OUTER);
|
||||
if (validWallIndex(wp->nextwall))
|
||||
{
|
||||
WallSetupLoop(wp, TAG_WALL_LOOP_OUTER, WALLFX_LOOP_OUTER);
|
||||
}
|
||||
else
|
||||
{
|
||||
Printf(PRINT_HIGH, "one-sided wall %d in loop setup\n", i);
|
||||
}
|
||||
wp->lotag = 0;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -276,7 +276,7 @@ void DoSlidorInterp(short SpriteNum, INTERP_FUNC interp_func)
|
|||
pw = endwall;
|
||||
|
||||
uint16_t const nextwall = wall[w].nextwall;
|
||||
if (nextwall >= MAXWALLS)
|
||||
if (!validWallIndex(nextwall))
|
||||
{
|
||||
// white wall - move 4 points
|
||||
interp_func(w, Interp_Wall_X);
|
||||
|
@ -304,7 +304,7 @@ void DoSlidorInterp(short SpriteNum, INTERP_FUNC interp_func)
|
|||
pw = endwall;
|
||||
|
||||
uint16_t const nextwall = wall[w].nextwall;
|
||||
if (nextwall >= MAXWALLS)
|
||||
if (!validWallIndex(nextwall))
|
||||
{
|
||||
// white wall - move 4 points
|
||||
interp_func(w, Interp_Wall_X);
|
||||
|
@ -332,7 +332,7 @@ void DoSlidorInterp(short SpriteNum, INTERP_FUNC interp_func)
|
|||
pw = endwall;
|
||||
|
||||
uint16_t const nextwall = wall[w].nextwall;
|
||||
if (nextwall >= MAXWALLS)
|
||||
if (!validWallIndex(nextwall))
|
||||
{
|
||||
interp_func(w, Interp_Wall_Y);
|
||||
interp_func(pw, Interp_Wall_Y);
|
||||
|
@ -358,7 +358,7 @@ void DoSlidorInterp(short SpriteNum, INTERP_FUNC interp_func)
|
|||
pw = endwall;
|
||||
|
||||
uint16_t const nextwall = wall[w].nextwall;
|
||||
if (nextwall >= MAXWALLS)
|
||||
if (!validWallIndex(nextwall))
|
||||
{
|
||||
interp_func(w, Interp_Wall_Y);
|
||||
interp_func(pw, Interp_Wall_Y);
|
||||
|
@ -400,7 +400,7 @@ int DoSlidorMoveWalls(short SpriteNum, int amt)
|
|||
if (w < startwall)
|
||||
pw = endwall;
|
||||
|
||||
if ((uint16_t)wall[w].nextwall >= MAXWALLS)
|
||||
if (!validWallIndex(wall[w].nextwall))
|
||||
{
|
||||
// white wall - move 4 points
|
||||
wall[w].x -= amt;
|
||||
|
@ -424,7 +424,7 @@ int DoSlidorMoveWalls(short SpriteNum, int amt)
|
|||
if (w < startwall)
|
||||
pw = endwall;
|
||||
|
||||
if ((uint16_t)wall[w].nextwall >= MAXWALLS)
|
||||
if (!validWallIndex(wall[w].nextwall))
|
||||
{
|
||||
// white wall - move 4 points
|
||||
wall[w].x += amt;
|
||||
|
@ -448,7 +448,7 @@ int DoSlidorMoveWalls(short SpriteNum, int amt)
|
|||
if (w < startwall)
|
||||
pw = endwall;
|
||||
|
||||
if ((uint16_t)wall[w].nextwall >= MAXWALLS)
|
||||
if (!validWallIndex(wall[w].nextwall))
|
||||
{
|
||||
wall[w].y -= amt;
|
||||
wall[pw].y -= amt;
|
||||
|
@ -470,7 +470,7 @@ int DoSlidorMoveWalls(short SpriteNum, int amt)
|
|||
if (w < startwall)
|
||||
pw = endwall;
|
||||
|
||||
if ((uint16_t)wall[w].nextwall >= MAXWALLS)
|
||||
if (!validWallIndex(wall[w].nextwall))
|
||||
{
|
||||
wall[w].y += amt;
|
||||
wall[pw].y += amt;
|
||||
|
|
|
@ -2644,7 +2644,7 @@ SpriteSetup(void)
|
|||
if (TEST_BOOL5(sp))
|
||||
{
|
||||
uint16_t const nextwall = wall[w].nextwall;
|
||||
if (nextwall < MAXWALLS)
|
||||
if (validWallIndex(nextwall))
|
||||
{
|
||||
wall_shade[wallcount] = wall[wall[w].nextwall].shade;
|
||||
wallcount++;
|
||||
|
@ -2700,7 +2700,7 @@ SpriteSetup(void)
|
|||
if (TEST_BOOL5(sp))
|
||||
{
|
||||
uint16_t const nextwall = wall[w].nextwall;
|
||||
if (nextwall < MAXWALLS)
|
||||
if (validWallIndex(nextwall))
|
||||
{
|
||||
wall_shade[wallcount] = wall[wall[w].nextwall].shade;
|
||||
wallcount++;
|
||||
|
@ -2980,7 +2980,7 @@ SpriteSetup(void)
|
|||
do
|
||||
{
|
||||
// DO NOT TAG WHITE WALLS!
|
||||
if ((uint16_t)wall[wall_num].nextwall < MAXWALLS)
|
||||
if (validWallIndex(wall[wall_num].nextwall))
|
||||
{
|
||||
SET(wall[wall_num].cstat, CSTAT_WALL_WARP_HITSCAN);
|
||||
}
|
||||
|
@ -3096,7 +3096,7 @@ SpriteSetup(void)
|
|||
{
|
||||
SET(wall[wall_num].cstat, CSTAT_WALL_BLOCK_ACTOR);
|
||||
uint16_t const nextwall = wall[wall_num].nextwall;
|
||||
if (nextwall < MAXWALLS)
|
||||
if (validWallIndex(nextwall))
|
||||
SET(wall[nextwall].cstat, CSTAT_WALL_BLOCK_ACTOR);
|
||||
wall_num = wall[wall_num].point2;
|
||||
}
|
||||
|
|
|
@ -866,7 +866,7 @@ SectorObjectSetupBounds(SECTOR_OBJECTp sop)
|
|||
// each wall has this set - for collision detection
|
||||
SET(wall[k].extra, WALLFX_SECTOR_OBJECT|WALLFX_DONT_STICK);
|
||||
uint16_t const nextwall = wall[k].nextwall;
|
||||
if (nextwall < MAXWALLS)
|
||||
if (validWallIndex(nextwall))
|
||||
SET(wall[nextwall].extra, WALLFX_SECTOR_OBJECT|WALLFX_DONT_STICK);
|
||||
}
|
||||
}
|
||||
|
@ -2108,7 +2108,7 @@ DetectSectorObjectByWall(WALLp wph)
|
|||
if (TEST(wp->extra, WALLFX_LOOP_OUTER))
|
||||
{
|
||||
uint16_t const nextwall = wp->nextwall;
|
||||
if (nextwall < MAXWALLS && wph == &wall[nextwall])
|
||||
if (validWallIndex(nextwall) && wph == &wall[nextwall])
|
||||
return sop;
|
||||
}
|
||||
|
||||
|
|
|
@ -20207,7 +20207,7 @@ bool TestDontStick(short SpriteNum, short hit_wall)
|
|||
return true;
|
||||
|
||||
// if blocking red wallo
|
||||
if (TEST(wp->cstat, CSTAT_WALL_BLOCK) && (uint16_t)wp->nextwall < MAXWALLS)
|
||||
if (TEST(wp->cstat, CSTAT_WALL_BLOCK) && validWallIndex(wp->nextwall))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
|
|
Loading…
Reference in a new issue