Description
Dear @fabiangreffrath, @kraflab, @rfomin, @kitchen-ace, @NightFright2k19, and anyone who interested.
I'm suggesting a small discussion regarding Heretic's vanilla mace spawning spot limit. The problem is - it's a play state, not a rendering limit, and must be handled carefully.
Situation: if map have 8 or more mace spawning spots, the game will bomb out with "Too many mace spots" error message. The only known map with this limit is, presumably, is The Realm of Parthoris E1M8, but just in case providing proper limit-removing, probably it is worth to handle this case?
There are three possible ways:
1. Perform a full limit-removing approach by array doubling. Like this one, nothing extra special. This way mace spots will be working as mod author intended.
2. Do not use extra spawning spots and don't bomb out with error message. This way should preserve vanilla mechanics at some point. Something like this:
void P_AddMaceSpot(mapthing_t * mthing)
{
--- if (MaceSpotCount == MAX_MACE_SPOTS)
+++ if (MaceSpotCount >= MAX_MACE_SPOTS)
{
--- I_Error("Too many mace spots.");
+++ return;
}
3. Do nothing. I.e. leave possible bombing out, despite of limit-removing declaration.
Please note than neither 1st, nor 2nd approach will fix demo handling, as vanilla heretic.exe still will be bombing out on such maps. Guarding mace spot counter with "single player only" condition is even worse, imagine The Realm of Parthoris was practices w/o demo recording, and when recording is on, player will reach E1M8 and puff! "No more mace spots, have a nice day".