- My ActorMover fix from earlier today was causing problems with moving sectors
because it exposed a design flaw in the thinker system: Having every single actor default to the highest available statnum means that nothing can be placed in a slot where it is guaranteed to be run after all actors have ticked. But this is required for any thinker that moves an actor (i.e. AActorMover and DSectorEffect.) With DSectorEffect it just went unnoticed because they were added at the end of the list so almost nothing they moved was behind them in a thinker list. However, when an actor was spawned on a moving floor it did not move smoothly. The default statnum is now 100 so that there's sufficient slots above where such thinkers can be placed. SVN r2060 (trunk)
This commit is contained in:
parent
26c33afafb
commit
fa452ffd41
11 changed files with 53 additions and 48 deletions
|
|
@ -142,9 +142,9 @@ bool P_MoveThing(AActor *source, fixed_t x, fixed_t y, fixed_t z, bool fog)
|
|||
Spawn<ATeleportFog> (x, y, z + TELEFOGHEIGHT, ALLOW_REPLACE);
|
||||
Spawn<ATeleportFog> (oldx, oldy, oldz + TELEFOGHEIGHT, ALLOW_REPLACE);
|
||||
}
|
||||
source->LastX = source->PrevX = x;
|
||||
source->LastY = source->PrevY = y;
|
||||
source->LastZ = source->PrevZ = z;
|
||||
source->PrevX = x;
|
||||
source->PrevY = y;
|
||||
source->PrevZ = z;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue