Close, very close. But not entirely right yet.
This seems to be the code you want:
Code:
// Levis: To prevent save errors -->
if (CheckAttribute(PostInitQueue, "active") && sti(PostInitQueue.active) == true)
{
TraceAndLog("Pause PostInitQueue!");
PostInitQueue.active = false;
PostInitQueue.paused = true;
}
// Levis: To prevent save errors <--
Code:
// Levis: To prevent save errors -->
if (CheckAttribute(PostInitQueue, "paused") && sti(PostInitQueue.paused) == true)
{
TraceAndLog("Restore PostInitQueue");
DeleteAttribute(&PostInitQueue,"paused");
PostInitQueue.active = true;
PostEvent("PostInitChars",0);
}
// Levis: To prevent save errors <--
That
almost works. But pausing the queue when you get into the Save Menu (or even the Main Menu) does not seem to be early enough.
You have to pause the queue first and THEN open the Save menu and
then it works.
I confirmed that with that code so you have to open the save menu, go back to the game, then open the save menu again and
then I can save.
Those were the times that the PostInitQueue didn't get properly reactivated.
I had to add an extra line
PostInitQueue.active = true to the reactivation or it would never actually restart.
PostEvent("PostInitChars",0); by itself does not take care of that and therefore remains aborting.
Of course that doesn't exactly help us. To make that work, we'd need to do the pausing
before you press the menu button.
Which either requires time travel or reading the player's mind.
