mirror of
https://github.com/ZDoom/Raze.git
synced 2024-11-15 08:51:24 +00:00
- the rest for SW.
This commit is contained in:
parent
6eb6938bbe
commit
a8e7d1ef74
6 changed files with 29 additions and 39 deletions
|
@ -253,8 +253,6 @@ inline int32_t FIXED(int32_t msw, int32_t lsw)
|
|||
#define SectorIsDiveArea(sect) (TEST(sector[sect].extra, SECTFX_DIVE_AREA) ? true : false)
|
||||
#define SectorIsUnderwaterArea(sect) (TEST(sector[sect].extra, SECTFX_UNDERWATER|SECTFX_UNDERWATER2) ? true : false)
|
||||
|
||||
#define TRAVERSE_SPRITE_SECT(l, o, n) for ((o) = (l); (n) = (o) == -1 ? -1 : nextspritesect[o], (o) != -1; (o) = (n))
|
||||
#define TRAVERSE_SPRITE_STAT(l, o, n) for ((o) = (l); (n) = (o) == -1 ? -1 : nextspritestat[o], (o) != -1; (o) = (n))
|
||||
#define TRAVERSE_CONNECT(i) for (i = connecthead; i != -1; i = connectpoint2[i])
|
||||
|
||||
|
||||
|
|
|
@ -337,11 +337,13 @@ void JS_InitMirrors(void)
|
|||
mirror[mirrorcnt].ismagic = false;
|
||||
do if (wall[i].lotag == TAG_WALL_MAGIC_MIRROR)
|
||||
{
|
||||
short ii, nextii;
|
||||
int ii;
|
||||
SPRITEp sp;
|
||||
|
||||
Found_Cam = false;
|
||||
TRAVERSE_SPRITE_STAT(headspritestat[STAT_ST1], ii, nextii)
|
||||
|
||||
StatIterator it(STAT_ST1);
|
||||
while ((ii = it.NextIndex()) >= 0)
|
||||
{
|
||||
sp = &sprite[ii];
|
||||
// if correct type and matches
|
||||
|
@ -355,10 +357,9 @@ void JS_InitMirrors(void)
|
|||
}
|
||||
}
|
||||
|
||||
ii = nextii = 0;
|
||||
TRAVERSE_SPRITE_STAT(headspritestat[STAT_SPAWN_SPOT], ii, nextii)
|
||||
it.Reset(STAT_SPAWN_SPOT);
|
||||
while ((ii = it.NextIndex()) >= 0)
|
||||
{
|
||||
|
||||
sp = &sprite[ii];
|
||||
|
||||
// if correct type and matches
|
||||
|
|
|
@ -2740,7 +2740,7 @@ DriveCrush(PLAYERp pp, int *x, int *y)
|
|||
// all players
|
||||
for (stat = 0; stat < MAX_SW_PLAYERS; stat++)
|
||||
{
|
||||
i = headspritestat[STAT_PLAYER0 + stat];
|
||||
i = StatIterator::First(STAT_PLAYER0 + stat);
|
||||
|
||||
if (i < 0)
|
||||
continue;
|
||||
|
@ -4007,12 +4007,13 @@ DoPlayerFly(PLAYERp pp)
|
|||
SPRITEp
|
||||
FindNearSprite(SPRITEp sp, short stat)
|
||||
{
|
||||
short fs, next_fs;
|
||||
int fs;
|
||||
int dist, near_dist = 15000;
|
||||
SPRITEp fp, near_fp = NULL;
|
||||
|
||||
|
||||
TRAVERSE_SPRITE_STAT(headspritestat[stat], fs, next_fs)
|
||||
StatIterator it(stat);
|
||||
while ((fs = it.NextIndex()) >= 0)
|
||||
{
|
||||
fp = &sprite[fs];
|
||||
|
||||
|
@ -7423,7 +7424,7 @@ int SearchSpawnPosition(PLAYERp pp)
|
|||
{
|
||||
// get a spawn position
|
||||
pos_num = RANDOM_RANGE(MAX_SW_PLAYERS);
|
||||
spawn_sprite = headspritestat[STAT_MULTI_START + pos_num];
|
||||
spawn_sprite = StatIterator::First(STAT_MULTI_START + pos_num);
|
||||
if (spawn_sprite <= -1)
|
||||
return 0;
|
||||
|
||||
|
@ -7481,7 +7482,7 @@ PlayerSpawnPosition(PLAYERp pp)
|
|||
{
|
||||
case MULTI_GAME_NONE:
|
||||
// start from the beginning
|
||||
spawn_sprite = headspritestat[STAT_MULTI_START + 0];
|
||||
spawn_sprite = StatIterator::First(STAT_MULTI_START + 0);
|
||||
break;
|
||||
case MULTI_GAME_COMMBAT:
|
||||
case MULTI_GAME_AI_BOTS:
|
||||
|
@ -7491,11 +7492,11 @@ PlayerSpawnPosition(PLAYERp pp)
|
|||
pos_num = SearchSpawnPosition(pp);
|
||||
}
|
||||
|
||||
spawn_sprite = headspritestat[STAT_MULTI_START + pos_num];
|
||||
spawn_sprite = StatIterator::First(STAT_MULTI_START + pos_num);
|
||||
break;
|
||||
case MULTI_GAME_COOPERATIVE:
|
||||
// start your assigned spot
|
||||
spawn_sprite = headspritestat[STAT_CO_OP_START + pos_num];
|
||||
spawn_sprite = StatIterator::First(STAT_MULTI_START + pos_num);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -7503,7 +7504,7 @@ PlayerSpawnPosition(PLAYERp pp)
|
|||
|
||||
if (spawn_sprite < 0)
|
||||
{
|
||||
spawn_sprite = headspritestat[STAT_MULTI_START + 0];
|
||||
spawn_sprite = StatIterator::First(STAT_MULTI_START + 0);
|
||||
}
|
||||
|
||||
ASSERT(spawn_sprite >= 0);
|
||||
|
@ -7570,7 +7571,7 @@ InitMultiPlayerInfo(void)
|
|||
if (gNet.MultiGameType != MULTI_GAME_NONE)
|
||||
{
|
||||
// if start position is physically set then don't spawn a new one
|
||||
if (headspritestat[MultiStatList[stat] + 0] >= 0)
|
||||
if (StatIterator::First(MultiStatList[stat] + 0) >= 0)
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
@ -1067,14 +1067,15 @@ DoExplodeSector(short match)
|
|||
{
|
||||
short orig_ang;
|
||||
int zh;
|
||||
short cf,nextcf;
|
||||
int cf;
|
||||
|
||||
SPRITEp esp;
|
||||
SECTORp sectp;
|
||||
|
||||
orig_ang = 0; //sp->ang;
|
||||
|
||||
TRAVERSE_SPRITE_STAT(headspritestat[STAT_EXPLODING_CEIL_FLOOR], cf, nextcf)
|
||||
StatIterator it(STAT_EXPLODING_CEIL_FLOOR);
|
||||
while ((cf = it.NextIndex()) >= 0)
|
||||
{
|
||||
esp = &sprite[cf];
|
||||
|
||||
|
|
|
@ -4156,11 +4156,12 @@ int ActorCoughItem(short SpriteNum)
|
|||
|
||||
int SpawnItemsMatch(short match)
|
||||
{
|
||||
short SpriteNum;
|
||||
short si, nextsi;
|
||||
int SpriteNum;
|
||||
int si;
|
||||
SPRITEp sp,sip;
|
||||
|
||||
TRAVERSE_SPRITE_STAT(headspritestat[STAT_SPAWN_ITEMS],si,nextsi)
|
||||
StatIterator it(STAT_SPAWN_ITEMS);
|
||||
while ((si = it.NextIndex()) >= 0)
|
||||
{
|
||||
sip = &sprite[si];
|
||||
|
||||
|
|
|
@ -607,7 +607,7 @@ TrackSetup(void)
|
|||
// put points on track
|
||||
for (ndx = 0; ndx < MAX_TRACKS; ndx++)
|
||||
{
|
||||
if (headspritestat[STAT_TRACK + ndx] == -1)
|
||||
if (StatIterator::First(STAT_TRACK + ndx) == -1)
|
||||
{
|
||||
// for some reason I need at least one record allocated
|
||||
// can't remember why at this point
|
||||
|
@ -643,7 +643,7 @@ TrackSetup(void)
|
|||
if (t->NumPoints == 0)
|
||||
{
|
||||
int i;
|
||||
auto const sp = (uspritetype const *)&sprite[headspritestat[STAT_TRACK+ndx]];
|
||||
auto const sp = (uspritetype const *)&sprite[StatIterator::First(STAT_TRACK+ndx)];
|
||||
Printf("WARNING: Did not find first point of Track Number %d, x %d, y %d\n", ndx, sp->x, sp->y);
|
||||
StatIterator it(STAT_TRACK + ndx);
|
||||
while ((i = it.NextIndex()) >= 0)
|
||||
|
@ -659,7 +659,7 @@ TrackSetup(void)
|
|||
SET(t->ttflags, BIT(tp->tag_high));
|
||||
|
||||
// while there are still sprites on this status list
|
||||
while (headspritestat[STAT_TRACK + ndx] != -1)
|
||||
while (StatIterator::First(STAT_TRACK + ndx) != -1)
|
||||
{
|
||||
short next_sprite = -1;
|
||||
int dist, low_dist = 999999;
|
||||
|
@ -730,7 +730,7 @@ void
|
|||
SectorObjectSetupBounds(SECTOR_OBJECTp sop)
|
||||
{
|
||||
int xlow, ylow, xhigh, yhigh;
|
||||
short sp_num, next_sp_num, startwall, endwall;
|
||||
int sp_num, startwall, endwall;
|
||||
int i, k, j;
|
||||
SPRITEp BoundSprite;
|
||||
bool FoundOutsideLoop = false;
|
||||
|
@ -891,7 +891,8 @@ SectorObjectSetupBounds(SECTOR_OBJECTp sop)
|
|||
|
||||
for (i = 0; i < (int)SIZ(StatList); i++)
|
||||
{
|
||||
TRAVERSE_SPRITE_STAT(headspritestat[StatList[i]], sp_num, next_sp_num)
|
||||
StatIterator it(StatList[i]);
|
||||
while ((sp_num = it.NextIndex()) >= 0)
|
||||
{
|
||||
SPRITEp sp = &sprite[sp_num];
|
||||
USERp u;
|
||||
|
@ -1790,19 +1791,6 @@ PlayerPart:
|
|||
|
||||
if (TEST(sector[pp->lo_sectp - sector].extra, SECTFX_NO_RIDE))
|
||||
{
|
||||
#if 0
|
||||
short nr, nextnr;
|
||||
bool skip = true;
|
||||
TRAVERSE_SPRITE_STAT(headspritestat[STAT_NO_RIDE], nr, nextnr)
|
||||
{
|
||||
if (sprite[nr].lotag == sop - SectorObject)
|
||||
skip = true;
|
||||
else
|
||||
skip = false;
|
||||
}
|
||||
|
||||
if (skip)
|
||||
#endif
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue