pokegold-spaceworld/engine/dumps/bank0e.asm
DrippingYellow 05a77ef010
Some checks failed
CI / build (push) Has been cancelled
Decompiling Pokedex and Sprite Animation objects (#114)
* Partially decompiled banks $10 and $23

* Couple minor tweaks

* Decompiled mon menu icon-related functions

---------

Co-authored-by: vulcandth <vulcandth@gmail.com>
2025-03-27 23:38:42 -05:00

177 lines
2.7 KiB
NASM

INCLUDE "constants.asm"
SECTION "engine/dumps/bank0e.asm", ROMX
StageBallTilesData:
ld a, [de]
push af
ld de, wBattleHUDTiles
ld c, PARTY_LENGTH
ld a, $34 ; empty slot
.loop1
ld [de], a
inc de
dec c
jr nz, .loop1
pop af
ld de, wBattleHUDTiles
.loop2
push af
call .GetHUDTile
inc de
pop af
dec a
jr nz, .loop2
ret
.GetHUDTile:
ld a, [hli]
and a
jr nz, .got_hp
ld a, [hl]
and a
ld b, $33 ; fainted
jr z, .fainted
.got_hp
dec hl
dec hl
dec hl
ld a, [hl]
and a
ld b, $32 ; statused
jr nz, .load
dec b
jr .load
.fainted
dec hl
dec hl
dec hl
.load
ld a, b
ld [de], a
ld bc, PARTYMON_STRUCT_LENGTH + MON_HP - MON_STATUS
add hl, bc
ret
DrawPlayerHUDBorder::
ld hl, .tiles
ld de, wTrainerHUDTiles
ld bc, .tiles_end - .tiles
call CopyBytes
hlcoord 18, 10
ld de, -1
jr PlaceHUDBorderTiles
.tiles
db $73 ; right side
db $77 ; bottom right
db $6f ; bottom left
db $76 ; bottom side
.tiles_end
DrawPlayerPartyIconHUDBorder:
ld hl, .tiles
ld de, wTrainerHUDTiles
ld bc, .tiles_end - .tiles
call CopyBytes
hlcoord 18, 10
ld de, -1 ; start on right
jr PlaceHUDBorderTiles
.tiles
db $73 ; right side
db $5c ; bottom right
db $6f ; bottom left
db $76 ; bottom side
.tiles_end
DrawEnemyHUDBorder:
ld hl, .tiles
ld de, wTrainerHUDTiles
ld bc, .tiles_end - .tiles
call CopyBytes
hlcoord 1, 2
ld de, 1 ; start on left
jr PlaceHUDBorderTiles
.tiles
db $6d ; left side
db $74 ; bottom left
db $78 ; bottom right
db $76 ; bottom side
.tiles_end
PlaceHUDBorderTiles::
ld a, [wTrainerHUDTiles]
ld [hl], a
ld bc, SCREEN_WIDTH
add hl, bc
ld a, [wTrainerHUDTiles + 1]
ld [hl], a
ld b, 8
.loop
add hl, de
ld a, [wTrainerHUDTiles + 3]
ld [hl], a
dec b
jr nz, .loop
add hl, de
ld a, [wTrainerHUDTiles + 2]
ld [hl], a
ret
LinkBattle_TrainerHuds::
call LoadBallIconGFX
ld hl, wPartyMon1HP
ld de, wPartyCount
call StageBallTilesData
ld hl, wPlaceBallsX
ld a, 10 * TILE_WIDTH
ld [hli], a
ld [hl], 8 * TILE_WIDTH
ld a, TILE_WIDTH
ld [wPlaceBallsDirection], a
ld hl, wShadowOAMSprite00
call LoadTrainerHudOAM
ld hl, wOTPartyMon1HP
ld de, wOTPartyCount
call StageBallTilesData
ld hl, wPlaceBallsX
ld a, 10 * TILE_WIDTH
ld [hli], a
ld [hl], 12 * TILE_WIDTH
ld hl, wShadowOAMSprite00 + PARTY_LENGTH * SPRITEOAMSTRUCT_LENGTH
jp LoadTrainerHudOAM
LoadTrainerHudOAM:
ld de, wBattleHUDTiles
ld c, PARTY_LENGTH
.loop
ld a, [wPlaceBallsY]
ld [hli], a ; y
ld a, [wPlaceBallsX]
ld [hli], a ; x
ld a, [de]
ld [hli], a ; tile id
xor a
ld [hli], a ; tile attributes
ld a, [wPlaceBallsX]
ld b, a
ld a, [wPlaceBallsDirection]
add b
ld [wPlaceBallsX], a
inc de
dec c
jr nz, .loop
ret
LoadBallIconGFX:
ld de, PokeBallsGFX
ld hl, vChars0 + 49 tiles
lb bc, 14, 4
jp Request2bpp