View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003734 | The Dark Mod | Def / Setup | public | 24.05.2014 12:06 | 25.05.2014 15:09 |
Reporter | SteveL | Assigned To | grayman | ||
Priority | normal | Severity | normal | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Platform | pc | OS | windows | OS Version | 7.1 |
Product Version | TDM 2.01 | ||||
Target Version | TDM 2.02 | Fixed in Version | TDM 2.02 | ||
Summary | 0003734: Giving player a slow match at map start causes TDM shop handling code to crash | ||||
Description | If you try to load a map containing a slow match with spawnarg inv_map_start set to 1, TDM will crash on loading the map after you leave the shop page. This happens only if you use the menus to load the map, not when you launch the map from the console. The problem is that the shop handling code is not finding the entity def for some reason. The unhandled exception comes from line 1636 in Player.cpp, when the code first tries to set a spawnarg on the newly spawned entity. In this case, the entity has been spawned using a default entity def, not the one from player_tools.def, and it doesn't work. I have no idea why it's not finding the entity def. Those have been loaded at some point previous to the crash. | ||||
Steps To Reproduce | Add a slow match to a map with inv_map_start --> 1 and try to load the map using the "New Mission" menu. Test map attached containing an empty room with a light and a slow match only. The map will load ok using the console MAP command (and the player will get a slow match as expected). It'll load ok if you remove the inv_map_start spawnarg too. | ||||
Tags | No tags attached. | ||||
Attached Files | slowmatch.map (5,438 bytes)
Version 2 // entity 0 { "classname" "worldspawn" "editor_drLastCameraPos" "258 59 64" "editor_drLastCameraAngle" "0 90 0" // primitive 0 { brushDef3 { ( 0 0 1 -208 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 1 0 -192 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 1 0 0 -320 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 -1 0 -192 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( -1 0 0 -64 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 0 -1 192 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 } } // primitive 1 { brushDef3 { ( 0 0 1 -192 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 1 0 -208 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 1 0 0 -320 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 0 -1 0 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( -1 0 0 -64 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 -1 0 192 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 } } // primitive 2 { brushDef3 { ( 0 0 1 -192 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 1 0 -192 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 1 0 0 -336 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 0 -1 0 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 -1 0 -192 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( -1 0 0 320 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 } } // primitive 3 { brushDef3 { ( 0 1 0 -192 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 1 0 0 -320 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 0 -1 -16 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 -1 0 -192 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( -1 0 0 -64 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 0 1 0 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 } } // primitive 4 { brushDef3 { ( 0 0 1 -192 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 1 0 0 -320 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 0 -1 0 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 -1 0 -208 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( -1 0 0 -64 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 1 0 192 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 } } // primitive 5 { brushDef3 { ( 0 0 1 -192 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 1 0 -192 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 0 -1 0 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 -1 0 -192 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( -1 0 0 -80 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 1 0 0 64 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 } } } // entity 1 { "classname" "atdm:ambient_world" "name" "ambient_world" "_color" "0.22 0.22 0.22" "light_center" "0 0 0" "light_radius" "832 624 320" "nodiffuse" "0" "noshadows" "0" "nospecular" "0" "origin" "-32 0 160" "parallel" "0" "texture" "lights/ambientlightnfo" } // entity 2 { "classname" "info_player_start" "name" "info_player_start_1" "angle" "90" "origin" "258 59 0" } // entity 3 { "classname" "atdm:playertools_slow_match" "name" "atdm_playertools_slow_match_2" "origin" "180 44 36" "inv_map_start" "1" } | ||||
NB This turned out to be the reason why that dynamic moonlight demo I did in March could only be launched from the console. grayman confirmed it too: crash from menu, ok from console. | |
It also works if there's no shop. "In the North" gives the player a slowmatch, but there's no shop to mess things up. | |
This is important enough to fix in 2.02. Please bring it up on the 2.02 beta test thread and see if others agree. |
|
Shop items require an entry in tdm_shopitems.def. For the slow match, this entry existed, but included this line: "itemClassname" "slow_match" //MUST BE SAME AS MAP ENTITY DEF NAME Note the comment. Since "slow_match" is NOT the entityDef name (which is "atdm:playertools_slow_match"), the code crashed. Corrected the line to be: "itemClassname" "atdm:playertools_slow_match" //MUST BE SAME AS MAP ENTITY DEF NAME |
|
Confirmed fix works this end after picking up your new .def | |
Date Modified | Username | Field | Change |
---|---|---|---|
24.05.2014 12:06 | SteveL | New Issue | |
24.05.2014 12:06 | SteveL | File Added: slowmatch.map | |
24.05.2014 12:11 | SteveL | Note Added: 0006621 | |
25.05.2014 00:51 | grayman | Note Added: 0006630 | |
25.05.2014 00:52 | grayman | Note Added: 0006631 | |
25.05.2014 12:49 | grayman | Assigned To | => grayman |
25.05.2014 12:49 | grayman | Status | new => assigned |
25.05.2014 13:29 | grayman | Note Added: 0006636 | |
25.05.2014 13:29 | grayman | Status | assigned => resolved |
25.05.2014 13:29 | grayman | Resolution | open => fixed |
25.05.2014 13:29 | grayman | Fixed in Version | => TDM 2.02 |
25.05.2014 13:29 | grayman | Target Version | => TDM 2.02 |
25.05.2014 15:09 | SteveL | Note Added: 0006637 | |
25.05.2014 15:09 | SteveL | Status | resolved => closed |