The FishyPlatform class has its own custom arguments.
Platforms can be grouped together so that when one is activated the others will move with it and orbit around it as the mover rotates. This main platform will be referred to as the "origin" or "group origin".
"Group move" affects movement imposed by the group origin.
Flag 32768 is intended for very large, tightly packed platforms that have a lot of passengers.
Normally when a platform moves, all of its passengers will be moved at once without colliding with each other.
Flag 32768 changes this subtly by making sure all passengers from all platforms in the group won't collide with each other.
(This is not always desirable however. That's why it's optional.)
What's also included is a platform specific interpolation point class. (Though the old interpolation point class is still usable).
Features include: travel/hold time can be in seconds or tics. Travel/hold time can have independent time units.
Setting travel time to a negative value is interpreted as speed in map units per tic. (This also works on the old interpolation point class.)
If you want to set pitch, you have to do it from the "Properties" tab, just like angle and roll.
(Assuming you're using Ultimate Doom Builder as your map editor.)
Speaking of, you can have platforms that interpolate their roll, just like angle and pitch.
The platform interpolation point arguments are thus
Unlike PathFollower and its subclasses, platforms can intelligently use portals.
Though those are only static line portals and interactive sector portals.
There are several ACS utility functions that can be used with platforms.
Check out: https://github.com/FishyClock/3Dplatfor ... /fplat.acs
There's also a few test maps in addition to the demo map. Feel free to look at those too.
- New actor flag: +CARRIABLE. (Or FishyPlatform.CARRIABLE) - allows platform to be carried by other platforms.
- New property: AirFriction. (Or FishyPlatform.AirFriction) - for +NOGRAVITY & +PUSHABLE platforms. (So they don't fly until hitting a wall.)
- Three empty virtual functions for modders to ease up making special actors
work with platforms:
(Actor mo) - which is always called before attempting to move a passenger.
(Actor mo, bool moved) - which is always called after attempting to move a passenger.
(Actor mo) - which allows intercepting actors detected in the platform's BlockThingIterator searches.
Return "true" to skip processing this actor (mo) and go to the next blockmap result.
Return "false" to do the usual checks (Is it within range, is it carriable, etc).
- Option flag 32768.
- Platform argument 5 - allowing to give platforms thing specials+arguments. This was impossible before without ruining the platform's behavior.
- Setting a negative travel time is interpreted as speed in map units per tic. Meaning you can have platforms that go at a consistent speed regardless of travel distance.
- A generic platform subclass that makes use of A_ChangeModel
to give itself a basic/generic model. The parameters to call A_ChangeModel with are set via user variables. (Check the "Custom" tab when editing Thing.) The advantage of this is you don't need to define a class and a modeldef entry per model if all you want is to use exported map geometry. The drawback is you won't see the changes in UDB's Visual Mode in real time.
- One user variable for Platform Interpolation Points (check "Custom" tab) that tells platforms to not move to this point's position. Convenient if you just wanted to use the point for rotating the platform and nothing more.
- Added ACS functions: FishyPlat_HasPassenger, *_Interpolate, *_NextNode, *_PrevNode - see fplat.acs
for more info