Skip to content

Commit

Permalink
TLOZ: APworld support (ArchipelagoMW#1884)
Browse files Browse the repository at this point in the history
- 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 "/"
  • Loading branch information
t3hf1gm3nt authored Jun 24, 2023
1 parent f1ccf1b commit 7a4e903
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 10 deletions.
2 changes: 1 addition & 1 deletion worlds/tloz/Rules.py
Original file line number Diff line number Diff line change
@@ -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
Expand Down
18 changes: 9 additions & 9 deletions worlds/tloz/__init__.py
Original file line number Diff line number Diff line change
@@ -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

Expand Down Expand Up @@ -168,9 +167,8 @@ def apply_base_patch(self, rom):
# 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.
Expand Down Expand Up @@ -275,8 +273,10 @@ def generate_output(self, output_directory: str):
def modify_multidata(self, multidata: dict):
import base64
self.rom_name_available_event.wait()
new_name = base64.b64encode(bytes(self.rom_name)).decode()
multidata["connect_names"][new_name] = multidata["connect_names"][self.multiworld.player_name[self.player]]
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]]

def get_filler_item_name(self) -> str:
if self.filler_items is None:
Expand Down Expand Up @@ -320,4 +320,4 @@ class TLoZItem(Item):


class TLoZLocation(Location):
game = 'The Legend of Zelda'
game = 'The Legend of Zelda'

0 comments on commit 7a4e903

Please sign in to comment.