Upcoming support for unknown gettable things - 1.10.20

2021-12-31 • AF-Domains • (Blogs - AF-Domains)           

In the next ZDaemon release - 1.10.20 - support will be added when it comes to the touching of unknown or unusual gettable things.

This to be quite blunt is down to two major bits of madness that go back to the days of Vanilla DeHackEd as a result of item effects being linked to their originating sprites within the engine, and being able to apply said behaviour based on the sprite to states on a given thing that isn't normally used for pickup purposes.

An unusual gettable thing is a non-inventory actor with an Initial frame set to a state from an actor that is part of the Inventory hierarchy within the engine. In versions prior to 1.10.20 if you attempt to interact with such an item then the following will occur:

1. Nothing (No pickup)
2. The message Unknown gettable thing will display on the server console (or in single-player mode on the client console)
3. Internally it will unset the Special flag on the target item.

In order to avoid breaking existing behaviour, support has been introduced by way of the addition of the following two DMFLAGS3:

a. Unusual Pickups (DeH) / sv_unusualgettable
DF3_UNUSUAL_GETTABLE (32)
b. Mismatch Correction (DeH) / sv_mismatchgettable
DF3_MISMATCH_GETTABLE (64)

** Mismatch Correction (DeH) requires Unusual Pickups (DeH) to be enabled. **

The Unusual Pickups (DeH) flag will allow for the unusual items to be picked up.

The Mismatch Correction (DeH) flag will properly account for the odd.. hellish.. case whereas a given sprite that is set will determine the actor action that will then be executed.

The following wads for instance require both of the above to be enabled in order for correct functionality to be achieved:
1k3v1rc1a
REKKR

With (b) this ONLY applies to Doom (and the railgun) sprites. If an attempt is made to apply the mismatch behaviour to Heretic or Hexen sprites, it will not work.

Both of the DMFLAGS3 will only work if a Doom-type game is used (Doom, Doom2, etc); if an attempt is made to use them in Heretic or Hexen (or any other future hypothetical introductions), they will by design have no effect.