Continuing this thread. Performing a diff using WinMerge on Vasily's script.cpp with the one from IVAN CVS, reveals that the changes required to "burst" the script files involve less than fifteen lines of code:
In script.cpp:
...
if (Word == "Include")
{
Word = SaveFile.ReadWord();
if (SaveFile.ReadWord() != ";")
ABORT("Invalid terminator in file %s at line %ld!", SaveFile.GetFileName().CStr(), SaveFile.TellLine());
inputfile incf(game::GetGameDir()+"Script/"+Word, &game::GetGlobalValueMap());
ReadFrom(incf);
continue;
}
if (Word == "Message")
{
Word = SaveFile.ReadWord();
if (SaveFile.ReadWord() != ";") ABORT("Invalid terminator in file %s at line %ld!", SaveFile.GetFileName().CStr(), SaveFile.TellLine());
fprintf(stderr, "MESSAGE: %sn", Word.CStr());
continue;
}
...
But then I think you'd have to add his LoadGlobalValueMap() function before InitGlobalValueMap() in game.cpp. And you might have to add a bunch of other stuff.