mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-01-18 23:42:11 +00:00
Fix more code that uses block->mnext
This commit is contained in:
parent
fcb4948e48
commit
ebc29ef0c8
3 changed files with 14 additions and 12 deletions
|
@ -4385,15 +4385,15 @@ static boolean P_CheckSectorPolyObjects(sector_t *sector, boolean realcrush, boo
|
|||
{
|
||||
mobj_t *mo;
|
||||
blocknode_t *block;
|
||||
blocknode_t *next = NULL;
|
||||
|
||||
if (x < 0 || y < 0 || x >= bmapwidth || y >= bmapheight)
|
||||
continue;
|
||||
|
||||
block = blocklinks[y * bmapwidth + x];
|
||||
|
||||
for (; block; block = block->mnext)
|
||||
for (block = blocklinks[y * bmapwidth + x]; block != NULL; block = next)
|
||||
{
|
||||
mo = block->mobj;
|
||||
next = block->mnext;
|
||||
|
||||
// Monster Iestyn: do we need to check if a mobj has already been checked? ...probably not I suspect
|
||||
if (!P_MobjInsidePolyobj(po, mo))
|
||||
|
|
|
@ -1058,9 +1058,9 @@ boolean P_BlockThingsIterator(INT32 x, INT32 y, boolean (*func)(mobj_t *))
|
|||
return true;
|
||||
|
||||
// Check interaction with the objects in the blockmap.
|
||||
for (block = blocklinks[y*bmapwidth + x]; block; block = next)
|
||||
for (block = blocklinks[y*bmapwidth + x]; block != NULL; block = next)
|
||||
{
|
||||
next = block->mnext; // We want to note our reference to mnext here in case the object gets removed!
|
||||
next = block->mnext; // We want to note our reference to mnext here!
|
||||
|
||||
if (!func(block->mobj))
|
||||
return false;
|
||||
|
|
|
@ -878,15 +878,15 @@ static void Polyobj_carryThings(polyobj_t *po, fixed_t dx, fixed_t dy)
|
|||
{
|
||||
mobj_t *mo;
|
||||
blocknode_t *block;
|
||||
blocknode_t *next = NULL;
|
||||
|
||||
if (x < 0 || y < 0 || x >= bmapwidth || y >= bmapheight)
|
||||
continue;
|
||||
|
||||
block = blocklinks[y * bmapwidth + x];
|
||||
|
||||
for (; block; block = block->mnext)
|
||||
for (block = blocklinks[y * bmapwidth + x]; block != NULL; block = next)
|
||||
{
|
||||
mo = block->mobj;
|
||||
next = block->mnext;
|
||||
|
||||
if (mo->lastlook == pomovecount)
|
||||
continue;
|
||||
|
@ -942,9 +942,11 @@ static INT32 Polyobj_clipThings(polyobj_t *po, line_t *line)
|
|||
{
|
||||
mobj_t *mo = NULL;
|
||||
blocknode_t *block = blocklinks[y * bmapwidth + x];
|
||||
blocknode_t *next = NULL;
|
||||
|
||||
for (; block; block = block->mnext)
|
||||
for (; block != NULL; block = next)
|
||||
{
|
||||
next = block->mnext;
|
||||
mo = block->mobj;
|
||||
|
||||
// Don't scroll objects that aren't affected by gravity
|
||||
|
@ -1115,15 +1117,15 @@ static void Polyobj_rotateThings(polyobj_t *po, vector2_t origin, angle_t delta,
|
|||
{
|
||||
mobj_t *mo;
|
||||
blocknode_t *block;
|
||||
blocknode_t *next = NULL;
|
||||
|
||||
if (x < 0 || y < 0 || x >= bmapwidth || y >= bmapheight)
|
||||
continue;
|
||||
|
||||
block = blocklinks[y * bmapwidth + x];
|
||||
|
||||
for (; block; block = block->mnext)
|
||||
for (block = blocklinks[y * bmapwidth + x]; block != NULL; block = next)
|
||||
{
|
||||
mo = block->mobj;
|
||||
next = block->mnext;
|
||||
|
||||
if (mo->lastlook == pomovecount)
|
||||
continue;
|
||||
|
|
Loading…
Reference in a new issue