- The definition of FxGlobalFunctionCall_CheckClass was big and scary. I
would say this is a big improvement, since now it gets to leverage the
same framework that action functions use.
- The definition of FxGlobalFunctionCall_IsPointerEqual was not so big and
scary, so this can't be called so much of an improvement as
CheckClass was. (Which is not to say that it isn't better anyway.)
- This replaces the general extensibility that had existed formerly
in thingdef_function.cpp. Parameter parsing for function calls is
shared with state parameter parsing. Functions are defined exactly in
the same way as action functions, but without the 'action' keyword.
- Fixed: Integer constants passed to pick() need to manually generate load
instructions, since FxConstant::Emit() will just return a constant
register with its value.
- Fixed: VMFunctionBuilder::RegAvailability::Reuse() didn't actually
calculate a proper mask. Also added another assert to this function.
Conflicts:
src/CMakeLists.txt
src/b_think.cpp
src/g_doom/a_doomweaps.cpp
src/g_hexen/a_clericstaff.cpp
src/g_hexen/a_fighterplayer.cpp
src/namedef.h
src/p_enemy.cpp
src/p_local.h
src/p_mobj.cpp
src/p_teleport.cpp
src/sc_man_tokens.h
src/thingdef/thingdef_codeptr.cpp
src/thingdef/thingdef_function.cpp
src/thingdef/thingdef_parse.cpp
wadsrc/static/actors/actor.txt
wadsrc/static/actors/constants.txt
wadsrc/static/actors/shared/inventory.txt
- Added register reuse to VMFunctionBuilder for FxPick's code emitter.
- Note to self: Need to reimplement IsPointerEqual and CheckClass, which
were added to thingdef_function.cpp over the past year, as this file no
longer exists in this branch.
- TF_KEEPVELOCITY: Keep the velocity after teleporting.
- TF_KEEPANGLE: Don't use the special spot's angle.
- TF_USESPOTZ: Normally, this function
- TF_NOSRCFOG: Don't leave fog at the previous location.
- TF_NODESTFOG: Don't leave fog at the arriving location.
- TF_USEACTORFOG: Use the actor's TeleFogSourceType and TeleFogDestType properties.
- TF_NOJUMP: Don't require or cause a jump. In this case, put 0 (or "") in for the jump destination when using CustomInventory items to teleport actors around.
- Instead of reverting the teleport fog back to defaults, if there wasn't a class or if the class failed to be found, set it to NULL.
- P_SpawnTeleportFog will not spawn anything if it's NULL.
- Added "" so it can be used to mean 'don't change anything' for A_SetTeleFog.
- New properties include TeleFogSourceType and TeleFogDestType.
- TeleFogSourceType is the fog left behind where the actor teleported away from.
- TeleFogDestType is the fog the actor sees when it arrives at its destination.
- Added A_SetTeleFog(<oldpos>,<newpos>) -- oldpos sets TeleFogSourceType, newpos sets TeleFogDestType.
- CLOFF_SETTARGET | CLOFF_SETMASTER | CLOFF_SETTRACER
- An actor that causes A_CheckLOF (and only an actor) to succeed will set the intercepting actor as its target, master, and/or tracer, respectively.