TLOZ: APworld support ()

- Remove a relative import in Rules.py
- Clean up a few unused imports in __init__.py
- Use pkgutil instead of open when applying base patch
- make sure rom_name is initialized correctly in modify_multidata

* use os.path.join() instead of explicit "/"
This commit is contained in:
t3hf1gm3nt 2023-06-24 19:58:54 -04:00 committed by GitHub
parent f1ccf1b663
commit 7a4e903906
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 10 deletions

View File

@ -1,6 +1,6 @@
from typing import TYPE_CHECKING
from ..generic.Rules import add_rule
from worlds.generic.Rules import add_rule
from .Locations import food_locations, shop_locations
from .ItemPool import dangerous_weapon_locations
from .Options import StartingPosition

View File

@ -1,8 +1,7 @@
import logging
import os
import threading
import pkgutil
from typing import NamedTuple, Union, Dict, Any
from pkgutil import get_data
from typing import Dict, Any
import bsdiff4
@ -168,9 +167,8 @@ class TLoZWorld(World):
# Remove map/compass check so they're always on
# Removing a bit from the boss roars flags, so we can have more dungeon items. This allows us to
# go past 0x1F items for dungeon items.
base_patch_location = os.path.dirname(__file__) + "/z1_base_patch.bsdiff4"
with open(base_patch_location, "rb") as base_patch:
rom_data = bsdiff4.patch(rom.read(), base_patch.read())
base_patch = get_data(__name__, os.path.join(os.path.dirname(__file__), "z1_base_patch.bsdiff4"))
rom_data = bsdiff4.patch(rom.read(), base_patch)
rom_data = bytearray(rom_data)
# Set every item to the new nothing value, but keep room flags. Type 2 boss roars should
# become type 1 boss roars, so we at least keep the sound of roaring where it should be.
@ -275,6 +273,8 @@ class TLoZWorld(World):
def modify_multidata(self, multidata: dict):
import base64
self.rom_name_available_event.wait()
rom_name = getattr(self, "rom_name", None)
if rom_name:
new_name = base64.b64encode(bytes(self.rom_name)).decode()
multidata["connect_names"][new_name] = multidata["connect_names"][self.multiworld.player_name[self.player]]