Project

General

Profile

Bug #845

[Heretic] Secret levels fail to load

Added by arclore over 12 years ago. Updated almost 10 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
-
Target version:
Start date:
2010-01-05
% Done:

100%


Description

Let me start off by saying that this is almost certainly a duplicate of >2909713. I felt I should add a new bug report for two reasons:
1. I discovered the exact same problem applies to the first episode's secret level (E1M9, from E1M6) in addition to the second episode's (E2M9 from E2M4), as described in the earlier report.
2. The earlier poster didn't upload a doomsday.out.

When you take the secret exit, it displays your stats then takes you to the "episode over-map", displaying "Completed: The Cathedral", as normal.
Then it says, "Now Entering: " but the map name is blank. An arrow indicates a point above and to the right of The Docks. Then, instead of loading E1M9, it tries to load E1M10, which does not exist, produces a fatal error and crashes the game.

Labels: jHeretic

History

#1 Updated by arclore over 12 years ago

#2 Updated by arclore over 12 years ago

"Z_Free: Attempt to free pointer without ZONEID"

Attachments:

#3 Updated by arclore over 12 years ago

Another observation:

This might not be related, or even a bug at all, but if you use the ENGAGE cheat to go to the secret level and then complete it, it sends you to one map later in the sequence than it should. For example, E1M9 should return to E1M7, since it branched from E1M6. Instead it takes you to E1M8.

#4 Updated by arclore over 12 years ago

g_game.c, line 1821

  1. else /* JHERETIC */
    if(secretExit == true) {
    wmInfo.next = 9;
    }
    else if(gameMap == 9) { // Finished secret map.
    static int afterSecret5 = { 7, 5, 5, 5, 4 };

    wmInfo.next = afterSecret[gameEpisode - 1];
    }
    else
    wmInfo.next = gameMap; // Go to next map.

  2. endif

A comment a few lines above, in the equivalent branch for jDoom, says "wmInfo.next is 0 biased", I'm guessing that means it starts at zero (as opposed to starting at 1). Furthermore, the corresponding code for jDoom (line 1798):

wmInfo.next = 8; // Go to secret map.

#5 Updated by danij over 12 years ago

Fixed for 1.9.0-beta6.9

Also available in: Atom PDF