Editing Spawn spots not preserved in saved games
From DoomWiki.org
Your changes will be displayed to readers once an authorized user accepts them. (help) |
Warning: You are not logged in. Your IP address will be recorded in this page's edit history.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
Doom automatically generates a list of all [[spawn spot]]s for any [[final boss]]es present at the beginning of each map, but it neglects to do this again when loading a saved game. This means that any such bosses on the map will become inoperative. In addition, if there are any [[ Spawn cube |spawn cubes]] currently in flight, the game will crash due to the fact that the cube's target field is used to track the spot at which it will spawn a monster, and [[Targets not preserved in saved games|targets are not recorded in saved games]]. The {{c|[[A_SpawnFly]]}} [[code pointer]] neglects to check that the cube's target is valid before using it, causing it to access a {{c|NULL}} pointer. | Doom automatically generates a list of all [[spawn spot]]s for any [[final boss]]es present at the beginning of each map, but it neglects to do this again when loading a saved game. This means that any such bosses on the map will become inoperative. In addition, if there are any [[ Spawn cube |spawn cubes]] currently in flight, the game will crash due to the fact that the cube's target field is used to track the spot at which it will spawn a monster, and [[Targets not preserved in saved games|targets are not recorded in saved games]]. The {{c|[[A_SpawnFly]]}} [[code pointer]] neglects to check that the cube's target is valid before using it, causing it to access a {{c|NULL}} pointer. | ||
− | In addition, it's possible to induce a [[venetian blind crash]] due to a division by zero. When normally awakened, the [[Monster spawner|cube spitter]] counts and stores the number of spawn spots in a variable called numtargets. When loading a saved game, this variable is not checked for consistency, and will just keep whatever value it had. On a freshly started Doom, this value is zero, otherwise it's the last calculated value. This causes saved games with activated [[Icon of Sin]]s to work, but exiting and restarting Doom and reloading such a game will result in a division by zero, because numtargets is initialized to a value of zero, and is | + | In addition, it's possible to induce a [[venetian blind crash]] due to a division by zero. When normally awakened, the [[Monster spawner|cube spitter]] counts and stores the number of spawn spots in a variable called numtargets. When loading a saved game, this variable is not checked for consistency, and will just keep whatever value it had. On a freshly started Doom, this value is zero, otherwise it's the last calculated value. This causes saved games with activated [[Icon of Sin]]s to work, but exiting and restarting Doom and reloading such a game will result in a division by zero, because numtargets is initialized to a value of zero, and is NOT recomputed unless the boss brain is properly woken up. |
==See also== | ==See also== |