MantisBT - Zandronum
View Issue Details
0000782Zandronum[All Projects] Bugpublic2012-04-16 03:062018-09-30 22:35
TIHan 
 
normalminoralways
closedfixed 
98d 
1.0 
0000782: Rotating poly objects desync when traversing through hubs.
Noticed this while playing Hexen. Go to map31, when you spawn, turn exactly 180 degrees with noclip, enter the room, turn off noclip and activate the spinning pillars. Then go through the portal of which you first saw when you spawn. Getting back to map31 might be a little tricky.'http://imgur.com/0I27E [^]' The one I have circled in black will get you back to map31. When you re-enter, you can hear the pillars, but you notice they are not spinning.

No tags attached.
related to 0000682closed  Poly object doors break online 
Issue History
2012-04-16 03:06TIHanNew Issue
2012-04-16 03:06TIHanStatusnew => assigned
2012-04-16 03:06TIHanAssigned To => TIHan
2012-04-16 03:08TIHanDescription Updatedbug_revision_view_page.php?rev_id=1762#r1762
2012-04-16 03:23TIHanNote Added: 0003318
2012-04-16 03:52TIHanNote Edited: 0003318bug_revision_view_page.php?bugnote_id=3318#r1764
2012-04-16 05:17TIHanNote Edited: 0003318bug_revision_view_page.php?bugnote_id=3318#r1765
2012-04-16 05:53TIHanNote Edited: 0003318bug_revision_view_page.php?bugnote_id=3318#r1766
2012-04-16 08:12TIHanRelationship addedrelated to 0000682
2012-04-17 04:03TIHanNote Added: 0003333
2012-04-17 04:03TIHanStatusassigned => feedback
2012-04-17 06:37TIHanNote Added: 0003334
2012-04-17 06:37TIHanStatusfeedback => assigned
2012-04-17 06:37TIHanStatusassigned => needs review
2012-04-21 15:28Torr SamahoNote Added: 0003355
2012-04-29 01:17Torr SamahoNote Added: 0003485
2012-04-29 01:17Torr SamahoNote Edited: 0003485bug_revision_view_page.php?bugnote_id=3485#r1881
2012-04-29 01:18Torr SamahoNote Revision Dropped: 3485: 0001880
2012-04-29 01:20Torr SamahoStatusneeds review => feedback
2012-06-09 13:22Torr SamahoCategoryGeneral => Bug
2016-05-12 02:20Ru5tK1ngNote Added: 0014874
2016-05-12 02:20Ru5tK1ngAssigned ToTIHan =>
2016-05-12 02:20Ru5tK1ngStatusfeedback => resolved
2016-05-12 02:20Ru5tK1ngResolutionopen => fixed
2018-09-30 22:35Blzut3Statusresolved => closed

Notes
(0003318)
TIHan   
2012-04-16 03:23   
(edited on: 2012-04-16 05:53)
I'm going to use my poly object fix branch as we have cleanly fixed most of the issues.

Debugging this, it seems as though when the map traverses, on the server side, it sees that there are no thinkers on the poly objects. Reconnecting, the client, the server seems to show the thinkers and updates them to the client, but we get an even stranger bug as we do not see anything going on with the poly objects, no sound + no movement. When the player runs into them, it seems the poly objects update their rotation.

Edit:
Seems we may have problems with the server stopping all thinkers when there are no players in the game. Also, the type of poly object movement and rotations are being called by the ACS commands Polyobj_OR_Move , Polyobj_OR_RotateRight , and Polyobj_RotateRight. We may have to handle this specially.

Edit2:
Apparently my branch actually breaks something here. My branch assumes a poly object can only have one thinker. I found out it can have two, so the old way of handling poly objects on full update was correct.

Edit3:
Both handling on poly object thinkers on full update were wrong, my way and the old way. Both break something in a different area. I'll look into this further.

(0003333)
TIHan   
2012-04-17 04:03   
By testing this I fixed a few issues regarding my poly object final fix branch.

As for this issue, under testing I notice when I activate the rotating poly objects and wait till they have reached their maximum speed and start to move - I go spectator, and the poly objects stop moving, but are still rotating. It's like the thinker got NULLed out for some reason. Will look into this further.
(0003334)
TIHan   
2012-04-17 06:37   
My latest poly object fix branch fixes the original issue. I'm assuming the issue was because of how the poly objects were handled on fullupdate.

All that's left is when the player who activated the spinning/moving poly objects goes spectator or disconnects, the poly objects stop moving. The cause is this:

// [BB] Stop all scripts of the player that are still running.
FBehavior::StaticStopMyScripts ( );

Unfortunately, there is nothing we can do here. The only way I can think of is another compatflag that doesn't stop the scripts, and it is very possible that could screw up other stuff. In the meantime, let's not worry about it as it is doing what it is intended to do.

Marking this as "needs review" as it coincides with the other poly object issues that fixes the original one stated here as well.
(0003355)
Torr Samaho   
2012-04-21 15:28   
> // [BB] Stop all scripts of the player that are still running.
> FBehavior::StaticStopMyScripts ( );

FYI, ZDoom intentionally stops all scripts of a player when that player leaves the game. Skulltag didn't do this in older versions, but I had to add this behavior in order to be consistent with ZDoom. Nevertheless, many old mods rely on the old behavior and I will most likely add a compat flag for this as requested here:'http://www.skulltag.com/forum/viewtopic.php?f=155&t=26657 [^]'
(0003485)
Torr Samaho   
2012-04-29 01:17   
0000682:0003484

(0014874)
Ru5tK1ng   
2016-05-12 02:20   
Could not reproduce this bug with 2.1.2. Eventual fix.