diff --git a/src/classes/universe.cpp b/src/classes/universe.cpp index d9ba5704..85580099 100644 --- a/src/classes/universe.cpp +++ b/src/classes/universe.cpp @@ -1326,6 +1326,8 @@ void cUniverse::enter_scenario(const std::string& name) { party.i_w_c = {0, 0}; party.loc_in_sec = scenario.out_start; party.out_loc = scenario.out_start; + party.boats.clear(); + party.horses.clear(); std::copy_if(scenario.boats.begin(), scenario.boats.end(), std::back_inserter(party.boats), std::bind(&cVehicle::exists, _1)); std::copy_if(scenario.horses.begin(), scenario.horses.end(), std::back_inserter(party.horses), std::bind(&cVehicle::exists, _1)); for(auto& pc : party) { diff --git a/src/tools/fileio_scen.cpp b/src/tools/fileio_scen.cpp index 71833b47..5b7ea336 100644 --- a/src/tools/fileio_scen.cpp +++ b/src/tools/fileio_scen.cpp @@ -1942,6 +1942,7 @@ void loadOutMapData(map_data&& data, location which, cScenario& scen) { what->sector = which; what->loc = loc(x,y); what->property = feat.second < 0; + what->exists = true; break; case eMapFeature::FIELD: if(feat.second == SPECIAL_SPOT) @@ -1989,6 +1990,7 @@ void loadTownMapData(map_data&& data, int which, cScenario& scen) { what->which_town = which; what->loc = loc(x,y); what->property = feat.second < 0; + what->exists = true; break; case eMapFeature::SIGN: if(feat.second >= town.sign_locs.size())