Editing Spawn spots not preserved in saved games

From DoomWiki.org

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 not recomputed unless the boss brain is properly woken up.
+
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==

All contributions to DoomWiki.org are considered to be released under the CC BY-SA 4.0 International (see Doom Wiki:Copyrights for details). By contributing, you agree to be bound by the Terms of Use.
Your changes will be visible immediately. Please enter a summary of your changes above.

Do not submit copyrighted images or text without permission! This includes text taken from in-game codices or logbooks, or from official instruction manuals, strategy guides, and other such books.

This project is not affiliated with id Software, Raven Software, ZeniMax Media, Bethesda SoftWorks, or any other commercial software developer or publisher. Use of trademarked logos and other protected intellectual property is solely for the purpose of analysis and critical commentary on the identified products and associated fan community activity, and does not imply any endorsement by any of these organizations or their employees, past or present.

Cancel | Editing help (opens in new window)

Template used on this page: