View Issue Details

IDProjectCategoryView StatusLast Update
0004670The Dark ModMappingpublic20.12.2017 14:22
ReporterSpooks Assigned Tostgatilov  
PrioritynormalSeveritynormalReproducibilityalways
Status resolvedResolutionfixed 
OSWindowsOS Version7 
Product VersionSVN 
Target VersionTDM 2.06Fixed in VersionTDM 2.06 
Summary0004670: Crash when dmap/testmapping while in-game.
DescriptionUsing dmap [mapname] or testmap [mapname] while you're in-game will crash TDM. Testmap does it immediately, dmap appears to progress for a bit before crashing.

Important! If you press escape to go to the menu, the commands work just fine. It is being in-game that causes the commands to cause a crash.

This affects both the 32 and 64-bit executables.
TagsNo tags attached.

Activities

grayman

grayman

13.12.2017 15:02

viewer   ~0009773

What happens if you try this in 2.05?

One of my requests for beta testing was to be sure whatever you're reporting doesn't also fail in 2.05.
grayman

grayman

17.12.2017 14:31

viewer   ~0009814

bump
Springheel

Springheel

18.12.2017 03:40

administrator   ~0009835

I've dmapped from the console before in 2.05. It exits you from the mission but doesn't crash.
Spooks

Spooks

19.12.2017 09:26

reporter   ~0009838

I have also regularly done the same with no issues. I have tested it just now on the latest package (testmapping the current map) and it is a direct crash.

user81

20.12.2017 09:37

  ~0009848

Goldwell has had the issue also -

- http://forums.thedarkmod.com/topic/19162-beta-testing-206/page-17#entry416486
Judith

Judith

20.12.2017 12:32

reporter   ~0009852

Same here, the same behavior as Spooks.
stgatilov

stgatilov

20.12.2017 14:22

administrator   ~0009853

Committed fix in svn rev 7353.

During dmapping process, each console message triggers screen draw, so that user can see messages in realtime.
This screen draw calls idRenderSystemLocal::EndFrame, which in turn runs game tics.

Here is the full sequence of events:
1. Game shutdown is started (during dmapping process).
2. Entities are deleted one by one, the player is deleted first.
3. During one of the entities being deleted, console message is printed.
4. The idCommonLocal::VPrintf calls UpdateScreen because com_refreshOnPrint is enabled by dmap.
5. UpdateScreen calls EndFrame, ActivateFrontent, RunGameTics, game.RunFrame.
6. Something inside game.RunFrame tries to get player's location, so it crashes because player is NULL.

This change fixes the problem on step 6:
if player is null at the beginning of game.RunFrame, then function returns immediately.

Issue History

Date Modified Username Field Change
16.11.2017 10:53 Spooks New Issue
06.12.2017 14:25 grayman Target Version => TDM 2.06
13.12.2017 15:02 grayman Note Added: 0009773
17.12.2017 14:31 grayman Note Added: 0009814
18.12.2017 03:40 Springheel Note Added: 0009835
19.12.2017 09:26 Spooks Note Added: 0009838
20.12.2017 09:37 user81 Note Added: 0009848
20.12.2017 12:32 Judith Note Added: 0009852
20.12.2017 14:02 stgatilov Assigned To => stgatilov
20.12.2017 14:02 stgatilov Status new => assigned
20.12.2017 14:22 stgatilov Note Added: 0009853
20.12.2017 14:22 stgatilov Status assigned => resolved
20.12.2017 14:22 stgatilov Fixed in Version => TDM 2.06
20.12.2017 14:22 stgatilov Resolution open => fixed