QUOTE(Tyrthyllanos @ Jul 22 2008, 05:23 PM)

But, isn't the difference between a quicksave and a normal save simply the fact that you have to open the menu first? Presuming the game waits for scripts to end before opening the game option menu, this could be the only saving grace of a standard save game, and thus scripted saving that doesn't open the menu may be doomed to the same problems as a quicksave?
The only other thing that would seem to make sense is that 'normal' saves are saving all scripted variables and the point where each running script stopped processing, which seems unlikely.
Assuming input isn't run on a seperate thread, everything is processed in a linear fashion. (Apart from backgound loading).
This means, for example, that every frame, first scripts are processed, then collision, then input etc, you can't process scripts and input at the same time from the same thread.
Even if input is processed in another thread, you would just set a flag to save the game at the next appropriate point in the main thread. Saving the game from another thread would have to freeze execution of the main thread, which would be totally stupid, as you don't know if it is doing something where data shouldn't be written to the disk. It would lead to bugs everywhere
example:
CODE
void moveSomeObject(float angle1, float angle2, Entity* obj){
obj->yaw(angle1);
//saving the game here would cause the next instruction not to be executed,
// so even though the save may think this has been done, it hasn't
obj->pitch(angle2);
}
Even if it the script state is paused mid script, scripters would notice, trust me. Hell, the guys who developed the game would notice. You would get random bugs everywhere.
For example, this script:
CODE
begin xyz
short doOnce
if ( doOnce == 0 )
set doOnce to 1
doLots of complex things here
endif
end
If the execution of the script stopped after the doOnce is set to 1, all the stuff would fail to happen. Very noticeable
Of course, I may be totally wrong

Someone clever like Timeslip, Tp21 ect could probably explain it better, as they know the MW game engine better than me. That is just my experience from writing games.
QUOTE
in theory, yes
but that would mean i have to hook the function, and isn't as easy as it sounds.
Yeah, I know, when I hacked arround with d2, I just stole other peoples code for hooking functions

I really should learn asm.
QUOTE
so that would be for later.
It would be useful, even more useful would be to know what save is loaded, I never managed to find if its name was stored anywhere. If needed I could probably find if a game is saved using the Win32 directory watcher or whatever it is called. It has some callback thing for that IIRC