MantisBT - Zandronum
View Issue Details
0003152Zandronum[All Projects] Suggestionpublic2017-06-07 05:312020-05-11 12:05
Torr Samaho 
needs testingopen 
0003152: Backport RGF_NOSIGHT for A_RadiusGive
I want to give every monster on the map an inventory item.

With RGF_NOSIGHT, I just call A_RadiusGive from the center of map with huge radius, and know for sure that all monsters any relevant were covered.

Without RGF_NOSIGHT, I spawn thousands of actors in a grid in every 128x128 square that A_RadiusGive the item. Naturally, this is extremely slow, and still from 0 to 25% of monsters don't get covered.
1. Run rgf_nosight.wad, map01
2. On map01, there's a replaced blue torch.
3. Wait for 2 seconds until it becomes green.
4. Imp should die.
No tags attached.
? rgf_nosight.wad (3,344) 2017-06-07 05:31
? rgftest.pk3 (2,487) 2020-05-11 12:05
Issue History
2017-06-07 05:31MichaelisNew Issue
2017-06-07 05:31MichaelisFile Added: rgf_nosight.wad
2017-07-15 20:17KondaNote Added: 0018043
2017-07-16 14:04IvanNote Added: 0018049
2017-07-16 22:13KondaNote Added: 0018052
2017-10-04 13:13MichaelisNote Added: 0018431
2017-11-20 08:41PolygonNote Added: 0018899
2018-10-08 10:21MichaelisNote Added: 0020008
2020-04-27 17:36Torr SamahoNote Added: 0021284
2020-04-29 06:33Torr SamahoAssigned To => Torr Samaho
2020-04-29 06:33Torr SamahoStatusnew => needs testing
2020-05-11 12:05MichaelisFile Added: rgftest.pk3
2020-05-11 12:05MichaelisNote Added: 0021335

2017-07-15 20:17   
It would be nice if this was backported before 4.0. It's an essential tool for any kind of mod that wants to access all actors on the map and do something with them, like executing an ACS script that affects all weapons or monsters on the map.
2017-07-16 14:04   
For a workaround, give all monsters a TID within a previously known range and iterate through them. That's going to be way faster than using A_RadiusGive because there won't be distance checks involved.
2017-07-16 22:13   
Ivan's solution relies on replacing all actors that would be otherwise affected by A_RadiusGive. The advantage of A_RadiusGive is that it gives you access to any actor, which enables support for actors introduced by another mod, and you have no control over other mods' actor definitions unless you create a patch mod that specifically targets mods on which to enable support.
2017-10-04 13:13   
Konda has outlined precisely the use for it.
Currently there's no way to change behavior of monsters that you don't provide yourself -- be it vanilla monsters or those present in a different mod loaded with yours.

If RGF_NOSIGHT was a thing, it would be possible to at least give them all a CustomInventory-based item that could do something in Pickup state, for example, launch an ACS script, that could do something else.
As an application example, I would use it to make a general damnums-like mod, making all monsters show damage dealt using floating numbers -- in a way compatible with vanilla, and any mods.
2017-11-20 08:41   
I 100% STRONGLY Support backporting this in. Damage numbers is one thing but being able to do this can open up a whole world of new possibilities making modding even more dynamic!
2018-10-08 10:21   
RGF_NOSIGHT was originally introduced in [^] , and then fixed in [^] .
This extension alone would grant great amount of modability to Zandronum. Before anonymous functions and ZScript were introduced, A_RadiusGive was the GZDoom's solution for two years to many problems currently unsolvable in Zandronum v3.0.
Torr Samaho   
2020-04-27 17:36   
It turned out that this was easy to backport. I added this to the sanbox for testing: [^]
2020-05-11 12:05   
"Rgftest.pk3" can be used to test implementation of A_RadiusGive flags against GZDoom.

With 3.1 beta build 200501-1847, it works and correctly counts players, monsters and barrels.
Projectiles, pickups and corpses are not counted because these flags are not yet backported.