Hmm. I suspect it's a bit more complex than that.
For example, restoring soundfx. If you have looping soundfx/music that had been triggered previously, you'd need to make sure it was 're-triggered' and also set to where it was when you saved.
Particle effects - often 3rd party libs. Again you'd need to make sure any emitters were restored, preferably to the emitter age they were when saved.
You'd also need to save Global variable values etc... If any of your vars are pointers, you'd need to match them up with the new pointer values as you recreated entities, sound channels or images you may have created in-programme.
What a pity Mark didn't include Save_state/restore_state commands...
For example, restoring soundfx. If you have looping soundfx/music that had been triggered previously, you'd need to make sure it was 're-triggered' and also set to where it was when you saved.
Particle effects - often 3rd party libs. Again you'd need to make sure any emitters were restored, preferably to the emitter age they were when saved.
You'd also need to save Global variable values etc... If any of your vars are pointers, you'd need to match them up with the new pointer values as you recreated entities, sound channels or images you may have created in-programme.
What a pity Mark didn't include Save_state/restore_state commands...