# HG changeset patch # User Thibaut Girka # Date 1325269075 -3600 # Node ID c417bb6c98bfab3c114712c414c971d2d3cdd506 # Parent 1c24a6d93c1b5a5b733b2af60a289eb244d7993c Search for 102h.exe in the game directory instead of the current directory. diff --git a/eosd b/eosd --- a/eosd +++ b/eosd @@ -40,9 +40,8 @@ def main(path, stage_num, rank, characte else: prng = None - resource_loader = Loader() - resource_loader.scan_archives(os.path.join(path, name) - for name in data) + resource_loader = Loader(path) + resource_loader.scan_archives(data) game = EoSDGame(resource_loader, [PlayerState(character=character)], stage_num, rank, 16, prng=prng) diff --git a/pcb b/pcb --- a/pcb +++ b/pcb @@ -27,9 +27,8 @@ from pytouhou.game.player import PlayerS def main(path, stage_num, rank, character, data): - resource_loader = Loader() - resource_loader.scan_archives(os.path.join(path, name) - for name in data) + resource_loader = Loader(path) + resource_loader.scan_archives(data) game = PCBGame(resource_loader, [PlayerState(character=character)], stage_num, rank, 16) # Load stage data diff --git a/pytouhou/games/eosd.py b/pytouhou/games/eosd.py --- a/pytouhou/games/eosd.py +++ b/pytouhou/games/eosd.py @@ -52,10 +52,8 @@ class EoSDGame(Game): characters = resource_loader.get_eosd_characters('102h.exe') - #eosd_characters = [ReimuA, ReimuB, MarisaA, MarisaB] players = [] for player in player_states: - #players.append(eosd_characters[player.character](player, self, resource_loader)) players.append(EoSDPlayer(player, self, resource_loader, sht=characters[player.character])) Game.__init__(self, resource_loader, players, stage, rank, difficulty, diff --git a/pytouhou/resource/loader.py b/pytouhou/resource/loader.py --- a/pytouhou/resource/loader.py +++ b/pytouhou/resource/loader.py @@ -1,3 +1,4 @@ +import os from io import BytesIO from pytouhou.formats.pbg3 import PBG3 @@ -40,7 +41,8 @@ class ArchiveDescription(object): class Loader(object): - def __init__(self): + def __init__(self, game_dir=None): + self.game_dir = game_dir self.known_files = {} self.instanced_ecls = {} self.instanced_anms = {} @@ -51,6 +53,8 @@ class Loader(object): def scan_archives(self, paths): for path in paths: + if self.game_dir and not os.path.isabs(path): + path = os.path.join(self.game_dir, path) archive_description = ArchiveDescription.get_from_path(path) for name in archive_description.file_list: self.known_files[name] = archive_description @@ -103,8 +107,11 @@ class Loader(object): return self.instanced_shts[name] - def get_eosd_characters(self, name): - with open(name, 'rb') as file: + def get_eosd_characters(self, path): + #TODO: Move to pytouhou.games.eosd? + if self.game_dir and not os.path.isabs(path): + path = os.path.join(self.game_dir, path) + with open(path, 'rb') as file: characters = EoSDSHT.read(file) #TODO: modular return characters