mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2024-11-22 04:21:23 +00:00
You know that problem where you bumped on the edges of Mario blocks and Bustable blocks and Bouncy FOFs sometimes? Wham. Bam. In the van.
Issue was caused by attempting to traverse the sector's thing-touching-list across all the things in the sector (which would inevitably have the same sector as the first node in mobj->touching_sectorlist) instead of traversing the thing's sector-touching-list (which has the same thing but different sector references). I wonder how many times AJ copypasted this code with absolutely no idea why it wasn't working properly. I'll figure that out tomorrow, maybe set up some compiler macros so this mistake is never made again. For now, I must sleeb.
This commit is contained in:
parent
742353d0ab
commit
0b920ee249
2 changed files with 4 additions and 4 deletions
|
@ -1530,7 +1530,7 @@ static void P_PushableCheckBustables(mobj_t *mo)
|
||||||
mo->y += mo->momy;
|
mo->y += mo->momy;
|
||||||
P_SetThingPosition(mo);
|
P_SetThingPosition(mo);
|
||||||
|
|
||||||
for (node = mo->touching_sectorlist; node; node = node->m_snext)
|
for (node = mo->touching_sectorlist; node; node = node->m_tnext)
|
||||||
{
|
{
|
||||||
if (!node->m_sector)
|
if (!node->m_sector)
|
||||||
break;
|
break;
|
||||||
|
@ -2880,7 +2880,7 @@ nightsdone:
|
||||||
if (CheckForMarioBlocks && !(netgame && mo->player->spectator)) // Only let the player punch
|
if (CheckForMarioBlocks && !(netgame && mo->player->spectator)) // Only let the player punch
|
||||||
{
|
{
|
||||||
// Search the touching sectors, from side-to-side...
|
// Search the touching sectors, from side-to-side...
|
||||||
for (node = mo->touching_sectorlist; node; node = node->m_snext)
|
for (node = mo->touching_sectorlist; node; node = node->m_tnext)
|
||||||
{
|
{
|
||||||
ffloor_t *rover;
|
ffloor_t *rover;
|
||||||
if (!node->m_sector->ffloors)
|
if (!node->m_sector->ffloors)
|
||||||
|
|
|
@ -1684,7 +1684,7 @@ static void P_CheckBustableBlocks(player_t *player)
|
||||||
player->mo->y += player->mo->momy;
|
player->mo->y += player->mo->momy;
|
||||||
P_SetThingPosition(player->mo);
|
P_SetThingPosition(player->mo);
|
||||||
|
|
||||||
for (node = player->mo->touching_sectorlist; node; node = node->m_snext)
|
for (node = player->mo->touching_sectorlist; node; node = node->m_tnext)
|
||||||
{
|
{
|
||||||
if (!node->m_sector)
|
if (!node->m_sector)
|
||||||
break;
|
break;
|
||||||
|
@ -1801,7 +1801,7 @@ static void P_CheckBouncySectors(player_t *player)
|
||||||
player->mo->z += player->mo->momz;
|
player->mo->z += player->mo->momz;
|
||||||
P_SetThingPosition(player->mo);
|
P_SetThingPosition(player->mo);
|
||||||
|
|
||||||
for (node = player->mo->touching_sectorlist; node; node = node->m_snext)
|
for (node = player->mo->touching_sectorlist; node; node = node->m_tnext)
|
||||||
{
|
{
|
||||||
if (!node->m_sector)
|
if (!node->m_sector)
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue