diff --git a/multigame.cpp b/multigame.cpp index 7fa45841..84bc43c8 100644 --- a/multigame.cpp +++ b/multigame.cpp @@ -21,6 +21,7 @@ void gamedata_all(gamedata& gd) { gd.store(sightrange_bonus); gd.store(genrange_bonus); gd.store(gamerange_bonus); + gd.store(targets); if(GOLDBERG) gd.store(gp::param); callhooks(hooks_gamedata, &gd); } diff --git a/shmup.cpp b/shmup.cpp index 13803008..86732fd7 100644 --- a/shmup.cpp +++ b/shmup.cpp @@ -3767,6 +3767,23 @@ void clearMemory() { for(int i=0; istore(pc[i]); + gd->store(nextmove); + gd->store(curtime); + gd->store(nextdragon); + gd->store(visibleAt); + gd->store(traplist); + gd->store(monstersAt); + gd->store(active); + gd->store(mousetarget); + gd->store(lmousetarget); + gd->store(nonvirtual); + gd->store(additional); + } + } + cell *playerpos(int i) { if(!pc[i]) return NULL; return pc[i]->base; @@ -3798,6 +3815,7 @@ void addShmupHelp(string& out) { } auto hooks = addHook(clearmemory, 0, shmup::clearMemory) + + addHook(hooks_gamedata, 0, shmup::gamedata) + addHook(hooks_removecells, 0, [] () { for(mit it = monstersAt.begin(); it != monstersAt.end();) { if(is_cell_removed(it->first)) {