KAZIK/tools/generators/copy_hell_tower_assets.ps1
Игорь Федосеев eef2039c7e feat(hell_tower): integrate custom hell sprites, redesign tower menu, and fix entrance crash
- Add ResolveHellAssetPath to automatically load *-hell variants during tournamentMode with fallback to vanilla assets
- Rebuild Hell Tower briefing menu using HellTower_menu background with smooth floor cursor and sliding callout info card
- Fix buffer overrun in RenderHellTower3D by packing helltower-menu at native 640x480 resolution with bounds-checked blit
- Temporarily disable tower background music per user request
- Add asset packing pipeline, verification tools, and automated 10-floor run-through smoke test
2026-10-26 19:44:06 +03:00

105 lines
3.5 KiB
PowerShell

# Copy all assets used by Hell Tower and its 10 games into assets\hell_tower
$ErrorActionPreference = "Stop"
$srcRoot = "assets"
$dstRoot = "assets\hell_tower"
if (-not (Test-Path $dstRoot)) {
New-Item -ItemType Directory -Path $dstRoot -Force | Out-Null
}
function Copy-AssetDir($relSrc, $relDst) {
$src = Join-Path $srcRoot $relSrc
$dst = Join-Path $dstRoot $relDst
if (-not (Test-Path $dst)) {
New-Item -ItemType Directory -Path $dst -Force | Out-Null
}
Write-Host "Copying directory $relSrc -> $relDst..."
Get-ChildItem -Path $src | ForEach-Object {
$destFile = Join-Path $dst $_.Name
Copy-Item -Path $_.FullName -Destination $destFile -Force
}
}
function Copy-AssetFile($relSrc, $relDst) {
$src = Join-Path $srcRoot $relSrc
$dst = Join-Path $dstRoot $relDst
$dstDir = Split-Path $dst -Parent
if (-not (Test-Path $dstDir)) {
New-Item -ItemType Directory -Path $dstDir -Force | Out-Null
}
Write-Host "Copying file $relSrc -> $relDst..."
Copy-Item -Path $src -Destination $dst -Force
}
# 1. Animations
Copy-AssetDir "animations\buckshot" "animations\buckshot"
Copy-AssetDir "animations\coin" "animations\coin"
Copy-AssetDir "animations\dice" "animations\dice"
Copy-AssetDir "animations\roulette" "animations\roulette"
Copy-AssetDir "animations\tables" "animations\tables"
Copy-AssetDir "animations\wheel" "animations\wheel"
Copy-AssetFile "animations\dbd_hook.ans" "animations\dbd_hook.ans"
# 2. Sprites
Copy-AssetDir "sprites\buckshot" "sprites\buckshot"
Copy-AssetDir "sprites\coin" "sprites\coin"
Copy-AssetDir "sprites\dice" "sprites\dice"
Copy-AssetDir "sprites\roulette" "sprites\roulette"
Copy-AssetDir "sprites\tables" "sprites\tables"
Copy-AssetDir "sprites\wheel" "sprites\wheel"
# 3. Music (Tower OST)
Copy-AssetDir "music\tower" "music\tower"
Copy-AssetDir "music\tower" "music"
# 4. Textures
Copy-AssetFile "textures\card-table.bin" "textures\card-table.bin"
Copy-AssetFile "textures\sprite_blackjack_table.png" "textures\sprite_blackjack_table.png"
Copy-AssetFile "textures\sprite_roulette_table.png" "textures\sprite_roulette_table.png"
Copy-AssetFile "textures\tex_wall_hell.png" "textures\tex_wall_hell.png"
# 5. Data
Copy-AssetFile "data\dealer_phrases.txt" "data\dealer_phrases.txt"
Copy-AssetFile "data\poker-ranks.bin" "data\poker-ranks.bin"
# 6. Audio
# Generated SFX
$genSfx = @(
"buckshot-pump.wav",
"dice-roll.wav",
"round-loss.wav",
"round-win.wav",
"skill-hit.wav",
"skill-miss.wav",
"skill-perfect.wav",
"ui-tick.wav"
)
foreach ($sfx in $genSfx) {
Copy-AssetFile "audio\generated\$sfx" "audio\generated\$sfx"
}
# ASCII root audio
$rootAudio = @(
"b05e1ac8be34248.wav",
"hKhoJArfEGAxxMewx0UQiddakTdBjFc.wav",
"moving-stone.wav",
"playing_cards_deck_flick_through_001_20485.wav",
"revolverdryfirec.wav",
"roulette-wheel-throw-2.wav",
"toy-gun-revolver-close-chamber-spin_f1ruc5nd.wav",
"victory-tf2.wav"
)
foreach ($aud in $rootAudio) {
Copy-AssetFile "audio\$aud" "audio\$aud"
}
# Russian audio files matching tower/game sound effects by exact size to avoid codepage issues
$dstAudioDir = Join-Path $dstRoot "audio"
$targetSizes = @(1466446, 228342, 212174, 757838)
Get-ChildItem "assets\audio\*.wav" | Where-Object { $targetSizes -contains $_.Length } | ForEach-Object {
Write-Host "Copying audio file $($_.Name) -> audio\$($_.Name)..."
Copy-Item -Path $_.FullName -Destination (Join-Path $dstAudioDir $_.Name) -Force
}
Write-Host "All Hell Tower assets successfully copied!"