diff options
Diffstat (limited to 'ModSlots')
| -rw-r--r-- | ModSlots/ArmorIDS.py | 1 | ||||
| -rwxr-xr-x | ModSlots/ModSlots.py | 24 |
2 files changed, 22 insertions, 3 deletions
diff --git a/ModSlots/ArmorIDS.py b/ModSlots/ArmorIDS.py index 8526ab6..bc21eca 100644 --- a/ModSlots/ArmorIDS.py +++ b/ModSlots/ArmorIDS.py @@ -82,6 +82,7 @@ ''' ArmorIDS = { + 'pl000_0000': 'Invalid', 'pl001_0000': 'Leather', 'pl002_0000': 'Hunter\'s', 'pl002_0010': 'Hunter\'s', diff --git a/ModSlots/ModSlots.py b/ModSlots/ModSlots.py index 164fb0e..5cea62b 100755 --- a/ModSlots/ModSlots.py +++ b/ModSlots/ModSlots.py @@ -77,12 +77,15 @@ class Mod(): search = sub.find(armor_id) if search >= 0: return sub[search:search + 8] + return None def substitute_override_name(self, name): if name[0] == '[': name = name[1:-1] if name in ArmorIDS_Inverted.keys(): name = ArmorIDS_Inverted[name][2:] + else: + return None return name def file_sort_key(self, x): @@ -115,14 +118,29 @@ class Mod(): targets = [file] for i in range(0, len(targets)): target = targets[i] + invalid = False # Substitute armor names with their IDs. for key in self.overrides.keys(): if target.startswith(key): - name = self.substitute_override_name(self.overrides[key][0]) # Sub has to be first element. - target = target.replace(self.get_id_from_subpath(target), name) - if target in all_files: + override = self.overrides[key][0] # Sub has to be first element. + mapped_name = self.substitute_override_name(override) + if not mapped_name: + print(f'INVALID SUBSTITUTE: {override}.') + invalid = True + break + target_id = self.get_id_from_subpath(target) + if not target_id: + print(f'INVALID TARGET: {target}.') + invalid = True + break + target = target.replace(target_id, mapped_name) + break + if not invalid and target in all_files: print(f'DUPLICATE MAPPING: {target}.') + invalid = True + if invalid: del targets[i] + i -= 1 continue targets[i] = target all_files.extend(targets) |