void GameInstSet::serialize(GameState* gs, SerializeBuffer& serializer) { serializer.write_int(grid_w); serializer.write_int(grid_h); serializer.write_int(size()); serializer.write_int(next_id); DepthMap::const_iterator it = depthlist_map.end(); for (int ind = 0; it != depthlist_map.begin();) { --it; InstanceState* state = it->second.start_of_list; while (state) { GameInst* inst = state->inst; serializer.write_int(get_inst_type(inst)); serializer.write_int(inst->id); inst->serialize(gs, serializer); serializer.write_int(inst->integrity_hash()); state = state->next_same_depth; } } }