2018-06-24 07:09:41 -07:00
|
|
|
BattleStart_TrainerHuds:
|
2015-12-13 11:15:16 -08:00
|
|
|
ld a, $e4
|
2018-08-25 11:28:22 -07:00
|
|
|
ldh [rOBP0], a
|
2015-12-13 11:15:16 -08:00
|
|
|
call LoadBallIconGFX
|
|
|
|
call ShowPlayerMonsRemaining
|
|
|
|
ld a, [wBattleMode]
|
|
|
|
dec a
|
|
|
|
ret z
|
|
|
|
jp ShowOTTrainerMonsRemaining
|
|
|
|
|
2018-06-24 07:09:41 -07:00
|
|
|
EnemySwitch_TrainerHud:
|
2015-12-13 11:15:16 -08:00
|
|
|
ld a, $e4
|
2018-08-25 11:28:22 -07:00
|
|
|
ldh [rOBP0], a
|
2015-12-13 11:15:16 -08:00
|
|
|
call LoadBallIconGFX
|
|
|
|
jp ShowOTTrainerMonsRemaining
|
|
|
|
|
2018-06-24 07:09:41 -07:00
|
|
|
ShowPlayerMonsRemaining:
|
2015-12-13 11:15:16 -08:00
|
|
|
call DrawPlayerPartyIconHUDBorder
|
2018-01-23 14:39:09 -08:00
|
|
|
ld hl, wPartyMon1HP
|
|
|
|
ld de, wPartyCount
|
2015-12-13 11:15:16 -08:00
|
|
|
call StageBallTilesData
|
|
|
|
; ldpixel wPlaceBallsX, 12, 12
|
2023-07-26 17:50:16 -07:00
|
|
|
ld a, 12 * TILE_WIDTH
|
2015-12-13 11:15:16 -08:00
|
|
|
ld hl, wPlaceBallsX
|
|
|
|
ld [hli], a
|
|
|
|
ld [hl], a
|
2023-07-26 17:50:16 -07:00
|
|
|
ld a, TILE_WIDTH
|
2015-12-13 11:15:16 -08:00
|
|
|
ld [wPlaceBallsDirection], a
|
2022-07-09 14:18:22 -07:00
|
|
|
ld hl, wShadowOAMSprite00
|
2015-12-13 11:15:16 -08:00
|
|
|
jp LoadTrainerHudOAM
|
|
|
|
|
2018-06-24 07:09:41 -07:00
|
|
|
ShowOTTrainerMonsRemaining:
|
2015-12-13 11:15:16 -08:00
|
|
|
call DrawEnemyHUDBorder
|
2018-01-23 14:39:09 -08:00
|
|
|
ld hl, wOTPartyMon1HP
|
|
|
|
ld de, wOTPartyCount
|
2015-12-13 11:15:16 -08:00
|
|
|
call StageBallTilesData
|
|
|
|
; ldpixel wPlaceBallsX, 9, 4
|
|
|
|
ld hl, wPlaceBallsX
|
2023-07-26 17:50:16 -07:00
|
|
|
ld a, 9 * TILE_WIDTH
|
2015-12-13 11:15:16 -08:00
|
|
|
ld [hli], a
|
2023-07-26 17:50:16 -07:00
|
|
|
ld [hl], 4 * TILE_WIDTH
|
|
|
|
ld a, -TILE_WIDTH
|
2015-12-13 11:15:16 -08:00
|
|
|
ld [wPlaceBallsDirection], a
|
2022-07-09 14:18:22 -07:00
|
|
|
ld hl, wShadowOAMSprite00 + PARTY_LENGTH * SPRITEOAMSTRUCT_LENGTH
|
2015-12-13 11:15:16 -08:00
|
|
|
jp LoadTrainerHudOAM
|
|
|
|
|
2018-06-24 07:09:41 -07:00
|
|
|
StageBallTilesData:
|
2015-12-13 11:15:16 -08:00
|
|
|
ld a, [de]
|
|
|
|
push af
|
2020-11-03 16:53:07 -08:00
|
|
|
ld de, wBattleHUDTiles
|
2015-12-13 11:15:16 -08:00
|
|
|
ld c, PARTY_LENGTH
|
|
|
|
ld a, $34 ; empty slot
|
|
|
|
.loop1
|
|
|
|
ld [de], a
|
|
|
|
inc de
|
|
|
|
dec c
|
|
|
|
jr nz, .loop1
|
|
|
|
pop af
|
2020-11-03 16:53:07 -08:00
|
|
|
|
|
|
|
ld de, wBattleHUDTiles
|
2015-12-13 11:15:16 -08:00
|
|
|
.loop2
|
|
|
|
push af
|
|
|
|
call .GetHUDTile
|
|
|
|
inc de
|
|
|
|
pop af
|
|
|
|
dec a
|
|
|
|
jr nz, .loop2
|
|
|
|
ret
|
|
|
|
|
2018-06-24 07:09:41 -07:00
|
|
|
.GetHUDTile:
|
2015-12-13 11:15:16 -08:00
|
|
|
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
|
2016-05-10 09:31:49 -07:00
|
|
|
dec hl
|
|
|
|
dec hl
|
2015-12-13 11:15:16 -08:00
|
|
|
ld a, [hl]
|
|
|
|
and a
|
|
|
|
ld b, $32 ; statused
|
|
|
|
jr nz, .load
|
|
|
|
dec b ; normal
|
|
|
|
jr .load
|
|
|
|
|
|
|
|
.fainted
|
|
|
|
dec hl
|
2016-05-10 09:31:49 -07:00
|
|
|
dec hl
|
|
|
|
dec hl
|
2015-12-13 11:15:16 -08:00
|
|
|
|
|
|
|
.load
|
|
|
|
ld a, b
|
|
|
|
ld [de], a
|
|
|
|
ld bc, PARTYMON_STRUCT_LENGTH + MON_HP - MON_STATUS
|
|
|
|
add hl, bc
|
|
|
|
ret
|
|
|
|
|
2018-06-24 07:09:41 -07:00
|
|
|
DrawPlayerHUDBorder:
|
2015-12-13 11:15:16 -08:00
|
|
|
ld hl, .tiles
|
|
|
|
ld de, wTrainerHUDTiles
|
2018-07-28 22:09:12 -07:00
|
|
|
ld bc, .tiles_end - .tiles
|
2015-12-13 11:15:16 -08:00
|
|
|
call CopyBytes
|
|
|
|
hlcoord 18, 10
|
|
|
|
ld de, -1 ; start on right
|
|
|
|
jr PlaceHUDBorderTiles
|
|
|
|
|
|
|
|
.tiles
|
|
|
|
db $73 ; right side
|
|
|
|
db $77 ; bottom right
|
|
|
|
db $6f ; bottom left
|
|
|
|
db $76 ; bottom side
|
2018-07-28 22:09:12 -07:00
|
|
|
.tiles_end
|
2015-12-13 11:15:16 -08:00
|
|
|
|
2018-06-24 07:09:41 -07:00
|
|
|
DrawPlayerPartyIconHUDBorder:
|
2015-12-13 11:15:16 -08:00
|
|
|
ld hl, .tiles
|
|
|
|
ld de, wTrainerHUDTiles
|
2018-07-28 22:09:12 -07:00
|
|
|
ld bc, .tiles_end - .tiles
|
2015-12-13 11:15:16 -08:00
|
|
|
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
|
2018-07-28 22:09:12 -07:00
|
|
|
.tiles_end
|
2015-12-13 11:15:16 -08:00
|
|
|
|
2018-06-24 07:09:41 -07:00
|
|
|
DrawEnemyHUDBorder:
|
2015-12-13 11:15:16 -08:00
|
|
|
ld hl, .tiles
|
|
|
|
ld de, wTrainerHUDTiles
|
2018-07-28 22:09:12 -07:00
|
|
|
ld bc, .tiles_end - .tiles
|
2015-12-13 11:15:16 -08:00
|
|
|
call CopyBytes
|
|
|
|
hlcoord 1, 2
|
|
|
|
ld de, 1 ; start on left
|
|
|
|
call PlaceHUDBorderTiles
|
|
|
|
ld a, [wBattleMode]
|
|
|
|
dec a
|
|
|
|
ret nz
|
2018-01-23 14:39:09 -08:00
|
|
|
ld a, [wTempEnemyMonSpecies]
|
2015-12-13 11:15:16 -08:00
|
|
|
dec a
|
|
|
|
call CheckCaughtMon
|
|
|
|
ret z
|
|
|
|
hlcoord 1, 1
|
|
|
|
ld [hl], $5d
|
|
|
|
ret
|
|
|
|
|
|
|
|
.tiles
|
|
|
|
db $6d ; left side
|
|
|
|
db $74 ; bottom left
|
|
|
|
db $78 ; bottom right
|
|
|
|
db $76 ; bottom side
|
2018-07-28 22:09:12 -07:00
|
|
|
.tiles_end
|
2015-12-13 11:15:16 -08:00
|
|
|
|
2018-06-24 07:09:41 -07:00
|
|
|
PlaceHUDBorderTiles:
|
2018-07-28 22:40:23 -07:00
|
|
|
ld a, [wTrainerHUDTiles + 0]
|
2015-12-13 11:15:16 -08:00
|
|
|
ld [hl], a
|
|
|
|
ld bc, SCREEN_WIDTH
|
|
|
|
add hl, bc
|
2018-07-28 22:40:23 -07:00
|
|
|
ld a, [wTrainerHUDTiles + 1]
|
2015-12-13 11:15:16 -08:00
|
|
|
ld [hl], a
|
2018-07-28 22:09:12 -07:00
|
|
|
ld b, 8
|
2015-12-13 11:15:16 -08:00
|
|
|
.loop
|
|
|
|
add hl, de
|
2018-07-28 22:40:23 -07:00
|
|
|
ld a, [wTrainerHUDTiles + 3]
|
2015-12-13 11:15:16 -08:00
|
|
|
ld [hl], a
|
|
|
|
dec b
|
|
|
|
jr nz, .loop
|
|
|
|
add hl, de
|
2018-07-28 22:40:23 -07:00
|
|
|
ld a, [wTrainerHUDTiles + 2]
|
2015-12-13 11:15:16 -08:00
|
|
|
ld [hl], a
|
|
|
|
ret
|
|
|
|
|
2018-06-24 07:09:41 -07:00
|
|
|
LinkBattle_TrainerHuds:
|
2015-12-13 11:15:16 -08:00
|
|
|
call LoadBallIconGFX
|
2018-01-23 14:39:09 -08:00
|
|
|
ld hl, wPartyMon1HP
|
|
|
|
ld de, wPartyCount
|
2015-12-13 11:15:16 -08:00
|
|
|
call StageBallTilesData
|
|
|
|
ld hl, wPlaceBallsX
|
2023-07-26 17:50:16 -07:00
|
|
|
ld a, 10 * TILE_WIDTH
|
2015-12-13 11:15:16 -08:00
|
|
|
ld [hli], a
|
2023-07-26 17:50:16 -07:00
|
|
|
ld [hl], 8 * TILE_WIDTH
|
|
|
|
ld a, TILE_WIDTH
|
2015-12-13 11:15:16 -08:00
|
|
|
ld [wPlaceBallsDirection], a
|
2022-07-09 14:18:22 -07:00
|
|
|
ld hl, wShadowOAMSprite00
|
2015-12-13 11:15:16 -08:00
|
|
|
call LoadTrainerHudOAM
|
|
|
|
|
2018-01-23 14:39:09 -08:00
|
|
|
ld hl, wOTPartyMon1HP
|
|
|
|
ld de, wOTPartyCount
|
2015-12-13 11:15:16 -08:00
|
|
|
call StageBallTilesData
|
|
|
|
ld hl, wPlaceBallsX
|
2023-07-26 17:50:16 -07:00
|
|
|
ld a, 10 * TILE_WIDTH
|
2015-12-13 11:15:16 -08:00
|
|
|
ld [hli], a
|
2023-07-26 17:50:16 -07:00
|
|
|
ld [hl], 13 * TILE_WIDTH
|
2022-07-09 14:18:22 -07:00
|
|
|
ld hl, wShadowOAMSprite00 + PARTY_LENGTH * SPRITEOAMSTRUCT_LENGTH
|
2015-12-13 11:15:16 -08:00
|
|
|
jp LoadTrainerHudOAM
|
|
|
|
|
2018-06-24 07:09:41 -07:00
|
|
|
LoadTrainerHudOAM:
|
2020-11-03 16:53:07 -08:00
|
|
|
ld de, wBattleHUDTiles
|
2015-12-13 11:15:16 -08:00
|
|
|
ld c, PARTY_LENGTH
|
|
|
|
.loop
|
|
|
|
ld a, [wPlaceBallsY]
|
2018-01-10 10:47:57 -08:00
|
|
|
ld [hli], a ; y
|
2015-12-13 11:15:16 -08:00
|
|
|
ld a, [wPlaceBallsX]
|
2018-01-10 10:47:57 -08:00
|
|
|
ld [hli], a ; x
|
2015-12-13 11:15:16 -08:00
|
|
|
ld a, [de]
|
2018-01-10 10:47:57 -08:00
|
|
|
ld [hli], a ; tile id
|
|
|
|
ld a, PAL_BATTLE_OB_YELLOW
|
|
|
|
ld [hli], a ; attributes
|
2015-12-13 11:15:16 -08:00
|
|
|
ld a, [wPlaceBallsX]
|
|
|
|
ld b, a
|
|
|
|
ld a, [wPlaceBallsDirection]
|
|
|
|
add b
|
|
|
|
ld [wPlaceBallsX], a
|
|
|
|
inc de
|
|
|
|
dec c
|
|
|
|
jr nz, .loop
|
|
|
|
ret
|
|
|
|
|
2018-06-24 07:09:41 -07:00
|
|
|
LoadBallIconGFX:
|
2015-12-13 11:15:16 -08:00
|
|
|
ld de, .gfx
|
2017-12-28 04:32:33 -08:00
|
|
|
ld hl, vTiles0 tile $31
|
2015-12-13 11:15:16 -08:00
|
|
|
lb bc, BANK(LoadBallIconGFX), 4
|
2020-05-18 08:59:48 -07:00
|
|
|
call Get2bppViaHDMA
|
2015-12-13 11:15:16 -08:00
|
|
|
ret
|
|
|
|
|
2018-06-24 07:09:41 -07:00
|
|
|
.gfx
|
2015-12-13 11:15:16 -08:00
|
|
|
INCBIN "gfx/battle/balls.2bpp"
|
|
|
|
|
2018-06-24 07:09:41 -07:00
|
|
|
_ShowLinkBattleParticipants:
|
2015-12-13 11:15:16 -08:00
|
|
|
call ClearBGPalettes
|
2023-08-02 10:52:51 -07:00
|
|
|
call LoadFrame
|
2015-12-13 11:15:16 -08:00
|
|
|
hlcoord 2, 3
|
|
|
|
ld b, 9
|
|
|
|
ld c, 14
|
2023-08-11 03:28:14 -07:00
|
|
|
call Textbox1bpp
|
2015-12-13 11:15:16 -08:00
|
|
|
hlcoord 4, 5
|
2018-01-23 14:39:09 -08:00
|
|
|
ld de, wPlayerName
|
2015-12-13 11:15:16 -08:00
|
|
|
call PlaceString
|
|
|
|
hlcoord 4, 10
|
2018-01-23 14:39:09 -08:00
|
|
|
ld de, wOTPlayerName
|
2015-12-13 11:15:16 -08:00
|
|
|
call PlaceString
|
|
|
|
hlcoord 9, 8
|
2023-08-02 09:21:34 -07:00
|
|
|
ld a, "V"
|
2015-12-13 11:15:16 -08:00
|
|
|
ld [hli], a
|
2023-08-02 09:21:34 -07:00
|
|
|
ld [hl], "S"
|
2017-12-24 09:47:30 -08:00
|
|
|
farcall LinkBattle_TrainerHuds ; no need to farcall
|
2023-07-26 08:01:20 -07:00
|
|
|
ld b, CGB_DIPLOMA
|
|
|
|
call GetCGBLayout
|
2024-02-10 15:16:00 -08:00
|
|
|
call SetDefaultBGPAndOBP
|
2015-12-13 11:15:16 -08:00
|
|
|
ld a, $e4
|
2018-08-25 11:28:22 -07:00
|
|
|
ldh [rOBP0], a
|
2015-12-13 11:15:16 -08:00
|
|
|
ret
|