Here's how it works: When a player walks off the
moving platform, it applies their pmomz once, and
then _keeps pmomz set_ so that the camera still
adds pmomz to its movements until they hit another
floor. This way, the camera doesn't jerk around.
Also gain velocity from walking off an "up" elevator normally?
This _looks_ incorrect because the camera stops matching
the platform movement the moment you step off, but I
assure you it is a correct and accurate movement.
(Try it with chasecam off.)
Now players will apply platform movement when jumping,
but only if the platform is moving the same direction
as their jump is, and all other objects will have an
appropriate pmomz in reverse gravity FOF situations.
Since PA_JUMP is used to determine when
springing upwards now and the nextstate
isn't used for falling, the jump state
can now be properly animated. :)
Added drowning to all players, and several new
Super animations for Sonic.
Removed A_Fall from S_PLAY_DEAD and moved its
effect into P_KillMobj for player avatars.
No longer turns you super, instead emeralds steal points
from enemy players and give you (and relevant teammates)
an invincibility + super sneakers monitor.
P_PlayerWeaponPanelOrAmmoBurst will go through all of the
player's weapon rings and either drop the weapon panel itself
(with no ammo attached, and no ammo taken away!) OR if the
player has ammo but no weapon, it drops the ammo instead
(and you lose it).
These functions were already here before, and I /swear/ the slope
physics became slightly less glitchy after switching to them...
Only issue is the slope plane mapping code hasn't been properly
converted yet, so they don't render properly for now.
tmthing must not be set outside of P_MapStart and P_MapEnd
or the game will fail a sanity check which ensures that
mobj references are not persistent across frames and crash.
Angles now go from 0 to 0xFFFF (360 degrees == FRACUNIT) instead
of using a full UINT32. Lua only has one number type, so signedness
gets in the way of using angle_t directly. This handling of angles
matches up with how ZDoom ACS scripting and the like does it.
I also changed all the integer casts and pushes of fixed_t to
their own macro in preperation for possible future seperation.
EvalMath is for SOC only.
It spawns an entirely seperate instance of Lua and requires
uppercase-only strings, and it's ability to parse strings to
enums is redundant to Lua's _G table (try using
_G["MT_BLUECRAWLA"] for instance)