tools: download GM assets too

This commit is contained in:
Marcin Kurczewski 2025-04-26 11:28:40 +02:00
parent 2536ff55c1
commit eec8f16d5f
2 changed files with 21 additions and 22 deletions

7
.gitignore vendored
View file

@ -38,4 +38,11 @@ src/tr2/subprojects/dwarfstack.wrap
data/tr1/ship/data/images/ data/tr1/ship/data/images/
data/tr2/ship/data/images/ data/tr2/ship/data/images/
data/tr2/ship/data/level1.tr2
data/tr2/ship/data/level2.tr2
data/tr2/ship/data/level3.tr2
data/tr2/ship/data/level4.tr2
data/tr2/ship/data/level5.tr2
data/tr2/ship/data/main_gm.sfx
data/tr2/ship/data/title_gm.tr2
data/tr2/ship/music/ data/tr2/ship/music/

View file

@ -42,41 +42,33 @@ def extract_zip(zip_path: Path, dest_dir: Path) -> None:
z.extractall(dest_dir) z.extractall(dest_dir)
def download_assets(assets: list[tuple[str, Path]]) -> None: def download_assets(asset_urls: list[str], target_dir: Path) -> None:
with tempfile.TemporaryDirectory() as tmpdir_str: with tempfile.TemporaryDirectory() as tmpdir_str:
tmpdir = Path(tmpdir_str) tmpdir = Path(tmpdir_str)
for url, dest in assets: for url in asset_urls:
filename = Path(url).name filename = Path(url).name
local_zip = tmpdir / filename local_zip = tmpdir / filename
download_to_file(url, local_zip) download_to_file(url, local_zip)
extract_zip(local_zip, dest) extract_zip(local_zip, target_dir)
print("Asset download and extraction complete.") print("Asset download and extraction complete.")
def main() -> None: def main() -> None:
args = parse_args() args = parse_args()
assets: dict[int, list[tuple[str, Path]]] = { asset_urls_map: dict[int, list[str]] = {
1: [ 1: ["https://lostartefacts.dev/aux/tr1x/main.zip"],
(
"https://lostartefacts.dev/aux/tr1x/main.zip",
Path("data/tr1/ship"),
)
],
2: [ 2: [
( "https://lostartefacts.dev/aux/tr2x/main.zip",
"https://lostartefacts.dev/aux/tr2x/main.zip", "https://lostartefacts.dev/aux/tr2x/trgm.zip",
Path("data/tr2/ship"),
)
], ],
} }
match str(args.game_version):
case "1": versions = {"1": [1], "2": [2], "all": [1, 2]}[args.game_version]
download_assets(assets[1]) for version in versions:
case "2": download_assets(
download_assets(assets[2]) asset_urls_map[version],
case "all": target_dir=PROJECT_PATHS[version].shipped_data_dir,
download_assets(assets[1]) )
download_assets(assets[2])
if __name__ == "__main__": if __name__ == "__main__":