def upgrade_project(self, old_version, new_version, rom, resource_open_r, resource_open_w, resource_delete): if old_version == new_version: return elif old_version == 4: with resource_open_r("TownMaps/icon_positions", "yml", True) as f: data = yml_load(f) for i in range(6): old_key = TownMapEnum.tostring(i).lower() data[i] = data[old_key] del data[old_key] with resource_open_w("TownMaps/icon_positions", "yml", True) as f: yml_dump(data, f, default_flow_style=False) convert_values_to_hex_repr_in_yml_file("TownMaps/icon_positions", resource_open_r, resource_open_w, ["Event Flag"]) self.upgrade_project(5, new_version, rom, resource_open_r, resource_open_w, resource_delete) elif old_version <= 2: self.read_from_rom(rom) self.write_to_project(resource_open_w) self.upgrade_project(new_version, new_version, rom, resource_open_r, resource_open_w, resource_delete) else: self.upgrade_project(old_version + 1, new_version, rom, resource_open_r, resource_open_w, resource_delete)
def upgrade_project(self, old_version, new_version, rom, resource_open_r, resource_open_w, resource_delete): if old_version == new_version: return elif old_version < 5: with resource_open_r("map_changes", "yml", True) as f: data = yml_load(f) for i in data: if data[i] is None: data[i] = [] else: for entry in data[i]: entry["Tile Changes"] = entry["Changes"] del entry["Changes"] for j, change in enumerate(entry["Tile Changes"]): entry["Tile Changes"][ j] = MapEventSubTableEntry.to_yml_rep(change) with resource_open_w("map_changes", "yml", True) as f: yml_dump(data, f) convert_values_to_hex_repr_in_yml_file("map_changes", resource_open_r, resource_open_w, ["Event Flag"], default_flow_style=None) self.upgrade_project(5, new_version, rom, resource_open_r, resource_open_w, resource_delete) else: self.upgrade_project(old_version + 1, new_version, rom, resource_open_r, resource_open_w, resource_delete)
def upgrade_project(self, old_version, new_version, rom, resource_open_r, resource_open_w, resource_delete): if old_version == new_version: return elif old_version < 5: with resource_open_r("map_changes", "yml") as f: data = yml_load(f) for i in data: if data[i] is None: data[i] = [] else: for entry in data[i]: entry["Tile Changes"] = entry["Changes"] del entry["Changes"] for j, change in enumerate(entry["Tile Changes"]): entry["Tile Changes"][j] = MapEventSubTableEntry.to_yml_rep(change) with resource_open_w("map_changes", "yml") as f: yml_dump(data, f) convert_values_to_hex_repr_in_yml_file("map_changes", resource_open_r, resource_open_w, ["Event Flag"], default_flow_style=None) self.upgrade_project(5, new_version, rom, resource_open_r, resource_open_w, resource_delete) else: self.upgrade_project(old_version + 1, new_version, rom, resource_open_r, resource_open_w, resource_delete)
def upgrade_project(self, old_version, new_version, rom, resource_open_r, resource_open_w, resource_delete): if old_version == new_version: return elif old_version == 4: with resource_open_r("TownMaps/icon_positions", "yml") as f: data = yml_load(f) for i in range(6): old_key = TownMapEnum.tostring(i).lower() data[i] = data[old_key] del data[old_key] with resource_open_w("TownMaps/icon_positions", "yml") as f: yml_dump(data, f, default_flow_style=False) convert_values_to_hex_repr_in_yml_file("TownMaps/icon_positions", resource_open_r, resource_open_w, ["Event Flag"]) self.upgrade_project(5, new_version, rom, resource_open_r, resource_open_w, resource_delete) elif old_version <= 2: self.read_from_rom(rom) self.write_to_project(resource_open_w) self.upgrade_project(new_version, new_version, rom, resource_open_r, resource_open_w, resource_delete) else: self.upgrade_project(old_version + 1, new_version, rom, resource_open_r, resource_open_w, resource_delete)