loading scen headers, skip parts of legacy load that may error
This commit is contained in:
@@ -293,8 +293,11 @@ bool load_scenario_v1(fs::path file_to_load, cScenario& scenario, eLoadScenario
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
port_item_list(&item_data);
|
port_item_list(&item_data);
|
||||||
scenario.import_legacy(temp_scenario);
|
scenario.import_legacy(temp_scenario, load_type == eLoadScenario::ONLY_HEADER);
|
||||||
|
if(load_type == eLoadScenario::FULL){
|
||||||
|
scenario.ter_types[23].fly_over = false;
|
||||||
scenario.import_legacy(item_data);
|
scenario.import_legacy(item_data);
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: Consider skipping the fread and assignment when len is 0
|
// TODO: Consider skipping the fread and assignment when len is 0
|
||||||
scenario.special_items.resize(50);
|
scenario.special_items.resize(50);
|
||||||
@@ -322,8 +325,6 @@ bool load_scenario_v1(fs::path file_to_load, cScenario& scenario, eLoadScenario
|
|||||||
|
|
||||||
fclose(file_id);
|
fclose(file_id);
|
||||||
|
|
||||||
scenario.ter_types[23].fly_over = false;
|
|
||||||
|
|
||||||
scenario.scen_file = file_to_load;
|
scenario.scen_file = file_to_load;
|
||||||
if(load_type == eLoadScenario::ONLY_HEADER) return true;
|
if(load_type == eLoadScenario::ONLY_HEADER) return true;
|
||||||
load_spec_graphics_v1(scenario.scen_file);
|
load_spec_graphics_v1(scenario.scen_file);
|
||||||
|
@@ -231,7 +231,7 @@ cScenario::cItemStorage::cItemStorage() : ter_type(-1), property(0) {
|
|||||||
item_odds[i] = 0;
|
item_odds[i] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void cScenario::import_legacy(legacy::scenario_data_type& old){
|
void cScenario::import_legacy(legacy::scenario_data_type& old, bool header_only){
|
||||||
is_legacy = true;
|
is_legacy = true;
|
||||||
// TODO eventually the absence of feature flags here will replace is_legacy altogether
|
// TODO eventually the absence of feature flags here will replace is_legacy altogether
|
||||||
feature_flags = {};
|
feature_flags = {};
|
||||||
@@ -267,6 +267,9 @@ void cScenario::import_legacy(legacy::scenario_data_type& old){
|
|||||||
rating = eContentRating(old.rating);
|
rating = eContentRating(old.rating);
|
||||||
// TODO: Is this used anywhere?
|
// TODO: Is this used anywhere?
|
||||||
uses_custom_graphics = old.uses_custom_graphics;
|
uses_custom_graphics = old.uses_custom_graphics;
|
||||||
|
|
||||||
|
if(header_only) return;
|
||||||
|
|
||||||
boats.resize(30);
|
boats.resize(30);
|
||||||
horses.resize(30);
|
horses.resize(30);
|
||||||
for(short i = 0; i < 30; i++) {
|
for(short i = 0; i < 30; i++) {
|
||||||
|
@@ -148,7 +148,7 @@ public:
|
|||||||
towns.back()->init_start();
|
towns.back()->init_start();
|
||||||
}
|
}
|
||||||
|
|
||||||
void import_legacy(legacy::scenario_data_type& old);
|
void import_legacy(legacy::scenario_data_type& old, bool header_only = false);
|
||||||
void import_legacy(legacy::scen_item_data_type& old);
|
void import_legacy(legacy::scen_item_data_type& old);
|
||||||
void writeTo(cTagFile& file) const;
|
void writeTo(cTagFile& file) const;
|
||||||
void readFrom(const cTagFile& file);
|
void readFrom(const cTagFile& file);
|
||||||
|
Reference in New Issue
Block a user