summaryrefslogtreecommitdiff
path: root/ModSlots
diff options
context:
space:
mode:
Diffstat (limited to 'ModSlots')
-rw-r--r--ModSlots/ArmorIDS.py1
-rwxr-xr-xModSlots/ModSlots.py24
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)