mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-12-03 06:33:14 +00:00
Polyobjects: add po_movecount member to mobj_t instead of using lastlook
- Polyobject carrying set lastlook on mobjs for internal tracking - lastlook is used by some objects to track their own state - Ring Shooter uses lastlook to remember which player summoned it - A Ring Shooter spawned right next to a polyobject would become buggy; If its owner player pressed the respawn button again before the Ring Shooter despawned, that player would be teleported back to the Ring Shooter instead of spawning a new Ring Shooter (which would be the correct behavior)
This commit is contained in:
parent
4ccb9b22c8
commit
3402c3af64
2 changed files with 6 additions and 12 deletions
|
|
@ -447,6 +447,8 @@ struct mobj_t
|
|||
|
||||
mobj_t *owner;
|
||||
|
||||
INT32 po_movecount; // Polyobject carrying (NOT savegame, NOT Lua)
|
||||
|
||||
// WARNING: New fields must be added separately to savegame and Lua.
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -879,14 +879,10 @@ static void Polyobj_carryThings(polyobj_t *po, fixed_t dx, fixed_t dy)
|
|||
|
||||
for (; mo; mo = mo->bnext)
|
||||
{
|
||||
// lastlook is used by the SPB to determine targets, do not let it affect it
|
||||
if (mo->type == MT_SPB)
|
||||
if (mo->po_movecount == pomovecount)
|
||||
continue;
|
||||
|
||||
if (mo->lastlook == pomovecount)
|
||||
continue;
|
||||
|
||||
mo->lastlook = pomovecount;
|
||||
mo->po_movecount = pomovecount;
|
||||
|
||||
// Don't scroll objects that aren't affected by gravity
|
||||
if (mo->flags & MF_NOGRAVITY)
|
||||
|
|
@ -1115,14 +1111,10 @@ static void Polyobj_rotateThings(polyobj_t *po, vector2_t origin, angle_t delta,
|
|||
|
||||
for (; mo; mo = mo->bnext)
|
||||
{
|
||||
// lastlook is used by the SPB to determine targets, do not let it affect it
|
||||
if (mo->type == MT_SPB)
|
||||
if (mo->po_movecount == pomovecount)
|
||||
continue;
|
||||
|
||||
if (mo->lastlook == pomovecount)
|
||||
continue;
|
||||
|
||||
mo->lastlook = pomovecount;
|
||||
mo->po_movecount = pomovecount;
|
||||
|
||||
// Don't scroll objects that aren't affected by gravity
|
||||
if (mo->flags & MF_NOGRAVITY)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue