info_node on func_wall Created 2 years ago2022-01-20 12:49:10 UTC by UbOh UbOh

Created 2 years ago2022-01-20 12:49:10 UTC by UbOh UbOh

Posted 2 years ago2022-01-20 12:49:10 UTC Post #346208
Why func_wall allows info_node placement on it? Does the engine specifically check for "func_wall" classname while generating the paths, or is there a hidden flag or an entity keyvalue applied to it? Can a mapper replicate this behaviour with other entities without touching code?
Posted 2 years ago2022-01-21 10:02:55 UTC Post #346213
func_walls have an internal `FL_WORLDBRUSH` flag set, so they're treated as world brushes when the node-graph is generated. The only other entity that also has this flag set is func_breakable, but only when its Material Type is set to 'Unbreakable glass' and when its Render Mode is not set to 'Normal'.

I don't know if these internal flags can be written to, but if so then you could try adding a flags property to an entity and setting it to 33554432 (that'll set the 26th bit, which is the FL_WORLDBRUSH flag).

If that doesn't work then the next thing I would try is to generate the node-graph using a custom version of the map (one with additional func_walls). Apparently HL will only rebuild a .nod file if the .bsp file is newer, so it should be possible to trick HL by first creating a normal .bsp, backing it up, then creating a custom .bsp (extra func_walls), using that to generate the .nod file, and then restoring the normal .bsp file. It might even be possible to strip the info_nodes from the normal .bsp if you need to save space for other entities. Fully automating this process might be a bit tricky because HL must be launched to build the node-graph...
Posted 2 years ago2022-01-22 09:56:15 UTC Post #346216
I tried setting the flag with func_breakable, func_door and func_illusionary. All of them got deleted with "SUB_Remove called on entity with health > 0", without generating paths.

But, building two versions of maps with nodes and without nodes is a great idea and I didn't notice any problems while trying it (only tested with info_node though). This could save me some entities in the future since I tend to use a lot of nodes :). Maybe using ripent to create the two versions (saving the untouched, node version later) can save from the trouble of compiling the map twice.
You must be logged in to post a response.