Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
    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)