dual:: added some missing gd->store's

This commit is contained in:
Zeno Rogue 2019-05-30 16:12:38 +02:00
parent 31bb896089
commit a49de4530f
7 changed files with 31 additions and 6 deletions

View File

@ -798,7 +798,9 @@ int readArgs() {
#if CAP_COMMANDLINE #if CAP_COMMANDLINE
auto hook = auto hook =
addHook(hooks_args, 100, readArgs); addHook(hooks_args, 100, readArgs)
+ addHook(hooks_gamedata, 0, [] (gamedata* gd) { gd->store(altmap); gd->store(archimedean_gmatrix); gd->store(current_altmap); });
#endif #endif
#if MAXMDIM >= 4 #if MAXMDIM >= 4

View File

@ -866,15 +866,17 @@ void setLandSphere(cell *c) {
} }
} }
eLand euland[max_vec]; vector<eLand> euland;
map<int, eLand> euland3; map<int, eLand> euland3;
map<int, eLand> euland3_hash; map<int, eLand> euland3_hash;
eLand& get_euland(int c) { eLand& get_euland(int c) {
euland.resize(max_vec);
return euland[c & (max_vec-1)]; return euland[c & (max_vec-1)];
} }
void clear_euland(eLand first) { void clear_euland(eLand first) {
euland.resize(max_vec);
for(int i=0; i<max_vec; i++) euland[i] = laNone; for(int i=0; i<max_vec; i++) euland[i] = laNone;
euland[0] = euland[1] = euland[max_vec-1] = first; euland[0] = euland[1] = euland[max_vec-1] = first;
euland3.clear(); euland3.clear();
@ -1617,4 +1619,10 @@ void pregen() {
currentlands.push_back(l); currentlands.push_back(l);
} }
auto ccm_bigstuff = addHook(hooks_gamedata, 0, [] (gamedata* gd) {
gd->store(euland);
gd->store(euland3);
gd->store(euland3_hash);
});
} }

View File

@ -244,7 +244,13 @@ auto ccm_blizzard = addHook(clearmemory, 0, [] () {
blizzardcells.clear(); blizzardcells.clear();
bcells.clear(); bcells.clear();
}) + }) +
addHook(hooks_removecells, 0, [] () { + addHook(hooks_gamedata, 0, [] (gamedata* gd) {
gd->store(arrowtraps);
gd->store(blizzardcells);
gd->store(bcells);
gd->store(blizzard_N);
})
+ addHook(hooks_removecells, 0, [] () {
eliminate_if(arrowtraps, is_cell_removed); eliminate_if(arrowtraps, is_cell_removed);
}); });

View File

@ -189,7 +189,8 @@ namespace brownian {
vector<cell*> to_remove; vector<cell*> to_remove;
for(auto p: futures) if(is_cell_removed(p.first)) to_remove.push_back(p.first); for(auto p: futures) if(is_cell_removed(p.first)) to_remove.push_back(p.first);
for(auto r: to_remove) futures.erase(r); for(auto r: to_remove) futures.erase(r);
}) + addHook(clearmemory, 0, [] () { futures.clear(); }); }) + addHook(clearmemory, 0, [] () { futures.clear(); })
+ addHook(hooks_gamedata, 0, [] (gamedata* gd) { gd->store(futures); });
} }

View File

@ -7476,8 +7476,9 @@ auto graphcm = addHook(clearmemory, 0, [] () {
gd->store(animations); gd->store(animations);
gd->store(flashes); gd->store(flashes);
gd->store(fallanims); gd->store(fallanims);
gd->store(radar_transform);
gd->store(actual_view_transform);
}); });
;
//=== animation //=== animation

View File

@ -3777,7 +3777,7 @@ void clearMemory() {
void gamedata(hr::gamedata* gd) { void gamedata(hr::gamedata* gd) {
if(shmup::on) { if(shmup::on) {
for(int i=0; i<MAXPLAYER; i++) gd->store(pc[i]); gd->store(pc[0]); // assuming 1 player!
gd->store(nextmove); gd->store(nextmove);
gd->store(curtime); gd->store(curtime);
gd->store(nextdragon); gd->store(nextdragon);
@ -3789,6 +3789,9 @@ void gamedata(hr::gamedata* gd) {
gd->store(lmousetarget); gd->store(lmousetarget);
gd->store(nonvirtual); gd->store(nonvirtual);
gd->store(additional); gd->store(additional);
if(WDIM == 3) gd->store(swordmatrix[0]); // assuming 1 player!
gd->store(traplist);
gd->store(firetraplist);
} }
} }

View File

@ -1386,11 +1386,15 @@ addHook(hooks_gamedata, 0, [] (gamedata* gd) {
gd->store(crush_now); gd->store(crush_now);
gd->store(crush_next); gd->store(crush_next);
gd->store(rosemap); gd->store(rosemap);
gd->store(airmap);
gd->store(adj_memo); gd->store(adj_memo);
gd->store(pd_from); gd->store(pd_from);
gd->store(pd_range); gd->store(pd_range);
gd->store(pathqm); gd->store(pathqm);
gd->store(reachedfrom); gd->store(reachedfrom);
gd->store(gravity_state);
gd->store(last_gravity_state);
gd->store(shpos);
}) + }) +
addHook(hooks_removecells, 0, [] () { addHook(hooks_removecells, 0, [] () {
eliminate_if(crush_next, is_cell_removed); eliminate_if(crush_next, is_cell_removed);