Page 1 of 1

[fixed]Floatbob items sometimes don't 0.9.21

Posted: Sun Dec 25, 2005 2:02
by Enjay
I've noticed this in Doom - where I have defined some floatbob items. One of my actors drops the item when they die and often the spawned item exhibits the problem. However, it wasn't just the spawned ones that were causing a problem. Items placed in a map could also behave strangely.

I thought it was just me and my DECORATE, however, I just played a bit of Hexen and experienced it there too. The following should recreate the problem.

Start a game (I did so as a cleric, but I suspect that's irrelevant)

type map map02 to go to the seven portals

type kill monsters to make things easier

go and look at all the floatbobbing vials (there are many of them) - they should be OK

use the switch to open the door and go to the guardian of ice

kill monsters again, flick the switch to start the crushing columns and walk onto the one with the illuminated sword pointing to it.

Back at the seven portals, go and look at the float bobbing vials. You should see a significant number of them now just vibrating slightly rather than floatbobbing.

Posted: Sun Dec 25, 2005 2:43
by Deathlike2
I can confirm this.. though I find it strange it doesn't happen to all of the items. It's like one of them in a row of the same item doesn't get affected.

Posted: Sun Dec 25, 2005 12:29
by Graf Zahl
I found the cause. At least now I know why Randy put an even nastier bug in the code... :?

Posted: Sun Dec 25, 2005 22:46
by Enjay
Was this related to an old Zdoom bug? Some time ago (years) floatbobbing items in Zdoom behaved strangely.

I think this was the explanation: If you saved a game, the point on the bob that the item was at when you saved became considered as the mid point of the bob, regardless of whether it was or not. Repeated, carefully timed saving and loading could therefore be used to make a floatbob item slowly rise up until it was way out of reach or alternatively sunk far into the floor.

Posted: Sun Dec 25, 2005 23:27
by Graf Zahl
It is related to this one: http://forum.drdteam.org/viewtopic.php?t=861

That fix exposed a design flaw in the float bobbing code which uses a timer that is not local to the current level but to the hub. So by changing levels and back the timer doesn't match anymore and the floatbobbing gets erratic. The code as it was was able to correct this behavior after a little stuttering but with the correct application of gravity the items were stuck in their erratic pattern and couldn't get out anymore.

I fixed this by changing the gravity handling back to the old version for floatbobbing items but that still didn't fix the stuttering when re-entering a level so I replaced the time counter with the one that only counts the level's time. Now it works perfectly. :)

The bug you mentioned was fixed a long time ago. Every value related to float bobbing is saved correctly now.

Posted: Mon Dec 26, 2005 2:11
by Enjay
OK, thanks for the info. Glad you have it sorted. :)