Jump to content
Sign in to follow this  
bn880

Hunting the big savegame bug progress

Recommended Posts

Hopefully manually reformating with those HTLM/ASCII codes in mind is leading to good enough results to repair the old post breaking forum transition :

Okay, I think everyone now knows how missions with a large Gamestate Variable space can cause a savegame to fail with a message like "error no entry at 'continue.bin/GameState/Variables/Item11/data.value'"

Along with Dinger I think I have isolated one of the issues with the save/load game Variable state:

Attempting to load this GameState from a continue.fps will cause the error

savepath Error no entry at 'continue.bin/GameState/Variables/Item11/data.value'.

or

savepath Error no entry at 'continue.bin/GameState/Variables/Item12/data.value'.

depending on the names of the Variables

class GameState
{
class Variables
{
items=30;
class Item0
{

name="a";
class data
{
type=2;
class value
{
items=1;
class Item0
{
class data
{
type=1;
value=1.0;
};

};

};

};
readOnly=0;
};

class Item1
{
name="b";
class data
{
type=1;
value=1.0;
};

readOnly=0;
};

class Item2
{
name="c";
class data
{
type=1;
value=1.0;
};

readOnly=0;
};

class Item3
{
name="d";
class data
{
type=1;
value=30.0;
};

readOnly=0;
};

class Item4
{
name="e";
class data
{
type=1;
value=1.0;
};

readOnly=0;
};

class Item5
{
name="f";
class data
{
type=1;
value=42.0;
};

readOnly=0;
};

class Item6
{
name="g";
class data
{
type=1;
value=-1.0;
};

readOnly=0;
};

class Item7
{
name="h";
class data
{
type=1;
value=1.0;
};

readOnly=0;
};

class Item8
{
name="i";
class data
{
type=1;
value=0.0;
};

readOnly=0;
};

class Item9
{
name="j";
class data
{
type=1;
value=945.247131;
};

readOnly=0;
};

class Item10
{
name="k";
class data
{
type=1;
value=-1.0;
};

readOnly=0;
};

class Item11
{

name="l";
class data
{
type=1;
value=36.0;
};

readOnly=0;
};

class Item12
{
name="m";
class data
{
type=1;
value=3.0;
};

readOnly=0;
};

class Item13
{
name="n";
class data
{
type=1;
value=0.0;
};

readOnly=0;
};

class Item14
{
name="o";
class data
{
type=1;
value=1.0;
};

readOnly=0;
};

class Item15
{
name="p";
class data
{
type=1;
value=0.3;
};

readOnly=0;
};

class Item16
{
name="q";
class data
{
type=1;
value=0.0;
};

readOnly=0;
};

class Item17
{
name="r";
class data
{
type=1;
value=1.0;
};

readOnly=0;
};

class Item18
{
name="s";
class data
{
type=1;
value=1.0;
};

readOnly=0;
};

class Item19
{
name="t";
class data
{
type=1;
value=1.0;
};

readOnly=0;
};

class Item20
{
name="u";
class data
{
type=1;
value=0.0;
};

readOnly=0;
};

class Item21
{
name="v";
class data
{
type=1;
value=-1.0;
};

readOnly=0;
};

class Item22
{
name="w";
class data
{
type=1;
value=1.0;
};

readOnly=0;
};

class Item23
{
name="x";
class data
{
type=1;
value=-1.0;
};

readOnly=0;
};

class Item24
{
name="this";
class data
{
type=256;
class value
{
id=0;
};

};

readOnly=1;
};

class Item25
{
name="y";
class data
{
type=4;
value=1;
};

readOnly=0;
};

class Item26
{
name="z";
class data
{
type=1;
value=1.0;
};

readOnly=0;
};

class Item27
{
name="aa";
class data
{
type=1;
value=-1.0;
};

readOnly=0;
};

class Item28
{
name="bb";
class data
{
type=1;
value=0.0;
};

readOnly=0;
};

class Item29
{
name="cc";
class data
{
type=1;
value=30.0;
};

readOnly=0;
};

};

};

However, renaming the array at entry Item0 to 'za' makes the problem go away. Similarly swaping the array at Item0 with Item11 or Item12 fixes the problem. It depends on the naming of the variables.

class GameState
{
class Variables
{
items=30;
class Item0
{

name="za";
class data
{
type=2;
class value
{
items=1;
class Item0
{
class data
{
type=1;
value=1.0;
};

};

};

};
readOnly=0;
};

class Item1
{
name="b";
class data
{
type=1;
value=1.0;
};

readOnly=0;
};

class Item2
{
name="c";
class data
{
type=1;
value=1.0;
};

readOnly=0;
};

class Item3
{
name="d";
class data
{
type=1;
value=30.0;
};

readOnly=0;
};

class Item4
{
name="e";
class data
{
type=1;
value=1.0;
};

readOnly=0;
};

class Item5
{
name="f";
class data
{
type=1;
value=42.0;
};

readOnly=0;
};

class Item6
{
name="g";
class data
{
type=1;
value=-1.0;
};

readOnly=0;
};

class Item7
{
name="h";
class data
{
type=1;
value=1.0;
};

readOnly=0;
};

class Item8
{
name="i";
class data
{
type=1;
value=0.0;
};

readOnly=0;
};

class Item9
{
name="j";
class data
{
type=1;
value=945.247131;
};

readOnly=0;
};

class Item10
{
name="k";
class data
{
type=1;
value=-1.0;
};

readOnly=0;
};

class Item11
{

name="l";
class data
{
type=1;
value=36.0;
};

readOnly=0;
};

class Item12
{
name="m";
class data
{
type=1;
value=3.0;
};

readOnly=0;
};

class Item13
{
name="n";
class data
{
type=1;
value=0.0;
};

readOnly=0;
};

class Item14
{
name="o";
class data
{
type=1;
value=1.0;
};

readOnly=0;
};

class Item15
{
name="p";
class data
{
type=1;
value=0.3;
};

readOnly=0;
};

class Item16
{
name="q";
class data
{
type=1;
value=0.0;
};

readOnly=0;
};

class Item17
{
name="r";
class data
{
type=1;
value=1.0;
};

readOnly=0;
};

class Item18
{
name="s";
class data
{
type=1;
value=1.0;
};

readOnly=0;
};

class Item19
{
name="t";
class data
{
type=1;
value=1.0;
};

readOnly=0;
};

class Item20
{
name="u";
class data
{
type=1;
value=0.0;
};

readOnly=0;
};

class Item21
{
name="v";
class data
{
type=1;
value=-1.0;
};

readOnly=0;
};

class Item22
{
name="w";
class data
{
type=1;
value=1.0;
};

readOnly=0;
};

class Item23
{
name="x";
class data
{
type=1;
value=-1.0;
};

readOnly=0;
};

class Item24
{
name="this";
class data
{
type=256;
class value
{
id=0;
};

};

readOnly=1;
};

class Item25
{
name="y";
class data
{
type=4;
value=1;
};

readOnly=0;
};

class Item26
{
name="z";
class data
{
type=1;
value=1.0;
};

readOnly=0;
};

class Item27
{
name="aa";
class data
{
type=1;
value=-1.0;
};

readOnly=0;
};

class Item28
{
name="bb";
class data
{
type=1;
value=0.0;
};

readOnly=0;
};

class Item29
{
name="cc";
class data
{
type=1;
value=30.0;
};

readOnly=0;
};

};

};

Obviously in a small mission such as this you will not get this improper GameState ordering, but I extracted the first 30 entries from a huge savegame what was failing. And this is one of the causes, it appears that saving and loading must have a specific order of arrays or variable names which is not adhered to during save of huge missions GameState.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×