LttP: make xxtea only required for race generation

This commit is contained in:
Fabian Dill 2022-11-17 23:44:59 +01:00 committed by Fabian Dill
parent 8aed24151f
commit 67128ece38
2 changed files with 12 additions and 3 deletions

View File

@ -1,7 +1,6 @@
from __future__ import annotations
import Utils
import worlds.AutoWorld
import worlds.Files
LTTPJPN10HASH: str = "03a63945398191337e896e5771f77173"
@ -17,7 +16,6 @@ import random
import struct
import subprocess
import threading
import xxtea
import concurrent.futures
import bsdiff4
from typing import Optional, List
@ -39,7 +37,6 @@ from Utils import local_path, user_path, int16_as_bytes, int32_as_bytes, snes_to
from worlds.alttp.Items import ItemFactory, item_table, item_name_groups, progression_items
from worlds.alttp.EntranceShuffle import door_addresses
from worlds.alttp.Options import smallkey_shuffle
import Patch
try:
from maseya import z3pr
@ -47,6 +44,11 @@ try:
except:
z3pr = None
try:
import xxtea
except:
xxtea = None
enemizer_logger = logging.getLogger("Enemizer")
@ -85,6 +87,11 @@ class LocalRom(object):
self.write_bytes(startaddress + i, bytearray(data))
def encrypt(self, world, player):
global xxtea
if xxtea is None:
# cause crash to provide traceback
import xxtea
local_random = world.slot_seeds[player]
key = bytes(local_random.getrandbits(8 * 16).to_bytes(16, 'big'))
self.write_bytes(0x1800B0, bytearray(key))

View File

@ -157,6 +157,8 @@ class ALTTPWorld(World):
rom_file = get_base_rom_path()
if not os.path.exists(rom_file):
raise FileNotFoundError(rom_file)
if world.is_race:
import xxtea
def generate_early(self):
if self.use_enemizer():