- store game vars in the new config file.

This commit is contained in:
Christoph Oelckers 2019-10-27 00:29:46 +02:00
parent 249f6e9d62
commit 7023e1e992

View file

@ -33,6 +33,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#include "savegame.h" #include "savegame.h"
#include "scriplib.h" #include "scriplib.h"
#include "gamecvars.h" #include "gamecvars.h"
#include "gameconfigfile.h"
#include "vfs.h" #include "vfs.h"
@ -4258,16 +4259,25 @@ badindex:
insptr++; insptr++;
dispatch(); dispatch();
} }
extern FString currentGame;
FString section = currentGame + ".Gamevars";
GameConfig->SetSection(section);
switch (VM_DECODE_INST(tw)) switch (VM_DECODE_INST(tw))
{ {
case CON_SAVEGAMEVAR: case CON_SAVEGAMEVAR:
nValue = Gv_GetVar(*insptr); {
SCRIPT_PutNumber(ud.config.scripthandle, "Gamevars", aGameVars[*insptr++].szLabel, nValue, FALSE, FALSE); nValue = Gv_GetVar(*insptr);
break; FStringf vs("%d", nValue);
GameConfig->SetValueForKey(aGameVars[*insptr++].szLabel, vs);
break;
}
case CON_READGAMEVAR: case CON_READGAMEVAR:
SCRIPT_GetNumber(ud.config.scripthandle, "Gamevars", aGameVars[*insptr].szLabel, &nValue); {
Gv_SetVar(*insptr++, nValue); auto str = GameConfig->GetValueForKey(aGameVars[*insptr].szLabel);
break; if (str) nValue = (int)strtoll(str, nullptr, 0);
Gv_SetVar(*insptr++, nValue);
break;
}
} }
dispatch(); dispatch();
} }