Split overworld model up by screen

This commit is contained in:
codemann8
2023-06-12 14:50:33 -05:00
committed by aerinon
parent 2c3e47d2f6
commit 0b7b82d027
21 changed files with 1678 additions and 816 deletions

View File

@@ -743,6 +743,27 @@ def load_cached_yaml(path_list):
return data
class bidict(dict):
def __init__(self, *args, **kwargs):
super(bidict, self).__init__(*args, **kwargs)
self.inverse = {}
for key, value in self.items():
self.inverse.setdefault(value,[]).append(key)
def __setitem__(self, key, value):
if key in self:
self.inverse[self[key]].remove(key)
super(bidict, self).__setitem__(key, value)
self.inverse.setdefault(value,[]).append(key)
def __delitem__(self, key):
value = self[key]
self.inverse.setdefault(value,[]).remove(key)
if value in self.inverse and not self.inverse[value]:
del self.inverse[value]
super(bidict, self).__delitem__(key)
if __name__ == '__main__':
# make_new_base2current()
# read_entrance_data(old_rom=sys.argv[1])