Various Q3 and QL map entity features and fixes
Clean up droptofloor() macro hacks and clarify naming
It wasn't clear at call sites that this had been changed to a delayed function (in SVQC only), and that the return value was no longer available. We can just use different names for the QC implementation, with different names for delayed and direct calls, and leave the original name for calling the builtin if required. The builtin's wrapper macro for changing the self global to a parameter is retained and it now works the same in SVQC and CSQC.
Removes another case of cc83c39c
target_speaker
: silence a legacy warning on Q3 maps
fullspawndata
Add engine extension check: This one isn't supported by checkextension().
q3compat: reduce entity field allocation
These fields are only read during worldspawn on Q3 maps, we don't need them on every entity.
I retained .gametype and .not_gametype as I expect we'll want to implement these for Xonotic mappers, and we're already using the .gametype field elsewhere.
Will now support edge cases where the mapper used \ as the .music path separator instead of the canonical /
Support Domination control points on QL maps
gametype
and not_gametype
fields on QL maps
Support Documents all Q3A and QL gametypes including the inconsistencies between entity fields and .arena files.
Includes minor corrections.
Support Mine Layer on Q3TA/QL maps
In !849 (merged) I changed weapon_prox_launcher to spawn the Mortar, in hindsight this was a mistake. Some maps have both weapons, and although the Mortar is more popular, some players really like the Mine Layer, so let's just go with what the mapper chose. Server admins can easily change items with .ent files if they want.
target_push
: implement Q3 wind tunnel and angles+speed modes
Test maps:
- 13zone has a wind tunnel, plus all the jump pads are actually target_push
- 13dream_xt the fancy base->powerup teleporters
Reset door locking when the match is reset
Test map: jamdm1 unlock the door, then do resetmatch
in console
Refactor default key model selection
Remove key-specific BIT macro
Support door keys on QL maps
Also adds a MASTER key for Xonotic mapping (useful for secrets...)
Removes blind nudging of keys as was done for normal items in cc83c39c
Test map: jamdm1 is ported to Q3 from QL and retains QL entity features that Q3 ignores
Support custom door sounds on QL maps
For reference: QL entities.def