View Issue Details

IDProjectCategoryView StatusLast Update
0001094The Dark ModPhysicspublic29.06.2009 08:06
ReporterIshtvan Assigned Togreebo  
PriorityhighSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Fixed in VersionSVN 
Summary0001094: Grabber: Crash on Save/Restore When Rotating During Save
DescriptionWhen the player is rotating an object and hits save at the same time, then restores, a crash occurs. (I didn't notice if the crash was immediate, or happened when you tried again to rotate the object). Could also have to do with the button states not being saved/restored, since rotation requires holding down the zoom button.
TagsNo tags attached.

Activities

greebo

greebo

09.09.2008 18:58

administrator   ~0001548

The event EV_Grabber_CheckClipList is causing the crash. Maybe the grabber (which is a regular entity) is not registered in the savegame's object list?
greebo

greebo

09.09.2008 19:24

administrator   ~0001549

The grabber is registered fine, but there are problems when the checkcliplist event is processed after a restore.

Strangely, it doesn't happen if you trace through the code frame by frame after a restore, but in that case it crashes as soon as the attack button is pressed.
greebo

greebo

09.09.2008 19:47

administrator   ~0001550

Ok, there is a more general problem around here: the savegame is bogus after the game has been reloaded once. After a reload, the call to saveGame.WriteObject() fails, maybe the grabber is not registered correctly when the game is initialised from a save.
greebo

greebo

10.09.2008 05:12

administrator   ~0001551

I suspect there is a memory leak causing this problem. The grabber which is allocated at gamex86.dll instantiation is overwritten at the first map load (where objects are created by calling CreateInstance()). The "first" grabber which was there at DLL loading time will then be overwritten, so there are actually two grabber instances in memory (one of them is lost).

This is at least my theory, I'll do some restructuring to ensure that the grabber is not owned by a global static object, which is not good anyway.

Issue History

Date Modified Username Field Change
08.09.2008 08:35 Ishtvan New Issue
09.09.2008 18:58 greebo Note Added: 0001548
09.09.2008 19:24 greebo Note Added: 0001549
09.09.2008 19:47 greebo Note Added: 0001550
09.09.2008 20:08 greebo Status new => confirmed
10.09.2008 05:12 greebo Note Added: 0001551
10.09.2008 05:34 greebo Status confirmed => assigned
10.09.2008 05:34 greebo Assigned To => greebo
10.09.2008 05:36 greebo Status assigned => resolved
10.09.2008 05:36 greebo Fixed in Version => SVN
10.09.2008 05:36 greebo Resolution open => fixed
10.09.2008 05:36 greebo Projection none => minor fix
10.09.2008 05:36 greebo ETA none => < 1 day
10.09.2008 05:36 greebo Build => 2810
29.06.2009 08:06 greebo Status resolved => closed