Back to the Vavoom Forum Archives


Forum

Non-solid thing mess

Thu, 06 Nov 2008 11:26:30

Crimson Wizard

Well, my problem is following, I have a non-solid thing, some sort of sign floating above the ground. I clearly remember that in previous version(s) of Vavoom when I put this thing on a rasing platform, the thing raised and lowered with that platform normally, but now something changed and it does not lower; more, when raised it becomes clipped in platform, i.e. something prevents it from maintaining strict height above the ground. Thing is a simple Actor, two extra flag changes are bSolid = false and bFloatBob = true, nothing else. I looked into inventory actors that DO maintain the height and tried to set bSpecial flag to my actor; it worked but then every time player approaches this thing, he bumps into it and stuck for a moment like it's something solid (he may then continue passing through). What can be a workaround here?
Fri, 14 Nov 2008 11:09:34

Karnizero

Try using the "bFloorClip = true" and/or the "bNoGravity = false" flags. Tell us if this works for you <!-- s:-) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":-)" title="Smile" /><!-- s:-) -->
Fri, 14 Nov 2008 13:41:08

Crimson Wizard

Nope, nothing helps. At the moment only way to fix that is to give up the FloatBob property.
Fri, 14 Nov 2008 17:27:51

Karnizero

Can you post your code, please?
Fri, 14 Nov 2008 19:52:23

Crimson Wizard

Which code? It was an actor with bFloatBob set to true and bSolid set to false, that's all.
Sat, 15 Nov 2008 18:49:14

Crimson Wizard

Well, I solved this by implementing new flag, called it bFixedFloatZ, and overriding EntityEx::OnMapSpawn and EntityEx::Physics methods: fully duplicating them but adding couple of sections, here, if someone is ever interested - OnMapSpawn:
       ...
       if (mthing)
       {
              ...
      if (bFloatBob || bFixedFloatZ /* [CW] */)
	      {
			// Seed random starting index for bobbing motion
			FloatBobPhase = Random() * 256.0 / 35.0;
			Special1f = mthing->height;
	      }
       }
Physics:
       ...
	if (!bFloatBob && !bFixedFloatZ)
	{
		UpdateVelocity();
	}
	...
	
	if (bFloatBob && bSpecial)
	{
	....
	}
	else if (bFixedFloatZ /* [CW] here it goes */)
	{
		if (Sector->bHasExtrafloors)
		{
			//	Make sure FloorZ is from bottom region.
			Origin.z = ONFLOORZ;
			LinkToWorld();
		}
		Origin.z = FloorZ + Special1f;
	}
Sun, 16 Nov 2008 00:25:15

Karnizero

What version has this issue? Because i try this on 1.26 and dont have this problem.
Sun, 16 Nov 2008 12:16:05

Crimson Wizard

1.29

Back to the Vavoom Forum Archives