Skip to content

Heretic: mace spawning spots limit handling #1166

Open
@JNechaevsky

Description

@JNechaevsky

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".

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions