Trainer card has state constants and WRAM labels

This commit is contained in:
Remy Oukaour 2018-01-11 14:43:18 -05:00
parent 94d6a32721
commit fd0a78d708
2 changed files with 70 additions and 53 deletions

View File

@ -1,3 +1,13 @@
; TrainerCard.Jumptable indexes
const_def
const TRAINERCARDSTATE_PAGE1_LOADGFX ; 0
const TRAINERCARDSTATE_PAGE1_JOYPAD ; 1
const TRAINERCARDSTATE_PAGE2_LOADGFX ; 2
const TRAINERCARDSTATE_PAGE2_JOYPAD ; 3
const TRAINERCARDSTATE_PAGE3_LOADGFX ; 4
const TRAINERCARDSTATE_PAGE3_JOYPAD ; 5
const TRAINERCARDSTATE_QUIT ; 6
TrainerCard: ; 25105 TrainerCard: ; 25105
ld a, [VramState] ld a, [VramState]
push af push af
@ -6,7 +16,7 @@ TrainerCard: ; 25105
ld hl, Options ld hl, Options
ld a, [hl] ld a, [hl]
push af push af
set 4, [hl] set NO_TEXT_SCROLL, [hl]
call .InitRAM call .InitRAM
.loop .loop
call UpdateTime call UpdateTime
@ -61,17 +71,18 @@ TrainerCard: ; 25105
call SetPalettes call SetPalettes
call WaitBGMap call WaitBGMap
ld hl, wJumptableIndex ld hl, wJumptableIndex
xor a xor a ; TRAINERCARDSTATE_PAGE1_LOADGFX
ld [hli], a ld [hli], a ; wJumptableIndex
ld [hli], a ld [hli], a ; wTrainerCardBadgeFrameCounter
ld [hli], a ld [hli], a ; wTrainerCardBadgeTileID
ld [hl], a ld [hl], a ; wTrainerCardBadgeAttributes
ret ret
.RunJumptable: ; 2518e (9:518e) .RunJumptable: ; 2518e (9:518e)
jumptable .Jumptable, wJumptableIndex jumptable .Jumptable, wJumptableIndex
.Jumptable: ; 2519d (9:519d) .Jumptable: ; 2519d (9:519d)
; entries correspond to TRAINERCARDSTATE_* constants
dw TrainerCard_Page1_LoadGFX dw TrainerCard_Page1_LoadGFX
dw TrainerCard_Page1_Joypad dw TrainerCard_Page1_Joypad
dw TrainerCard_Page2_LoadGFX dw TrainerCard_Page2_LoadGFX
@ -113,7 +124,7 @@ TrainerCard_Page1_Joypad: ; 251d7 (9:51d7)
ret ret
.pressed_right_a .pressed_right_a
ld a, $2 ld a, TRAINERCARDSTATE_PAGE2_LOADGFX
ld [wJumptableIndex], a ld [wJumptableIndex], a
ret ret
@ -122,7 +133,7 @@ TrainerCard_Page1_Joypad: ; 251d7 (9:51d7)
ld a, [wKantoBadges] ld a, [wKantoBadges]
and a and a
ret z ret z
ld a, $4 ld a, TRAINERCARDSTATE_PAGE3_LOADGFX
ld [wJumptableIndex], a ld [wJumptableIndex], a
ret ret
@ -159,7 +170,7 @@ TrainerCard_Page2_Joypad: ; 25221 (9:5221)
ret ret
.d_left .d_left
ld a, $0 ld a, TRAINERCARDSTATE_PAGE1_LOADGFX
ld [wJumptableIndex], a ld [wJumptableIndex], a
ret ret
@ -168,12 +179,12 @@ TrainerCard_Page2_Joypad: ; 25221 (9:5221)
ld a, [wKantoBadges] ld a, [wKantoBadges]
and a and a
ret z ret z
ld a, $4 ld a, TRAINERCARDSTATE_PAGE3_LOADGFX
ld [wJumptableIndex], a ld [wJumptableIndex], a
ret ret
.Quit: .Quit:
ld a, $6 ld a, TRAINERCARDSTATE_QUIT
ld [wJumptableIndex], a ld [wJumptableIndex], a
ret ret
@ -208,12 +219,12 @@ TrainerCard_Page3_Joypad: ; 25279 (9:5279)
ret ret
.left .left
ld a, $2 ld a, TRAINERCARDSTATE_PAGE2_LOADGFX
ld [wJumptableIndex], a ld [wJumptableIndex], a
ret ret
.right .right
ld a, $0 ld a, TRAINERCARDSTATE_PAGE1_LOADGFX
ld [wJumptableIndex], a ld [wJumptableIndex], a
ret ret
@ -256,10 +267,10 @@ TrainerCard_PrintTopHalfOfCard: ; 25299 (9:5299)
next "MONEY@" next "MONEY@"
.ID_No: ; 252f9 .ID_No: ; 252f9
db $27, $28, $ff ; ID NO db $27, $28, -1 ; ID NO
.HorizontalDivider: ; 252fc .HorizontalDivider: ; 252fc
db $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $26, $ff ; ____________> db $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $26, -1 ; ____________>
; 2530a ; 2530a
TrainerCard_Page1_PrintDexCaught_GameTime: ; 2530a (9:530a) TrainerCard_Page1_PrintDexCaught_GameTime: ; 2530a (9:530a)
@ -281,7 +292,7 @@ TrainerCard_Page1_PrintDexCaught_GameTime: ; 2530a (9:530a)
ld de, .StatusTilemap ld de, .StatusTilemap
call TrainerCardSetup_PlaceTilemapString call TrainerCardSetup_PlaceTilemapString
ld a, [wStatusFlags] ld a, [wStatusFlags]
bit 0, a bit 0, a ; ENGINE_POKEDEX
ret nz ret nz
hlcoord 1, 9 hlcoord 1, 9
lb bc, 2, 17 lb bc, 2, 17
@ -296,7 +307,7 @@ TrainerCard_Page1_PrintDexCaught_GameTime: ; 2530a (9:530a)
db " BADGES▶@" db " BADGES▶@"
.StatusTilemap: ; 25366 .StatusTilemap: ; 25366
db $29, $2a, $2b, $2c, $2d, $ff db $29, $2a, $2b, $2c, $2d, -1
; 2536c ; 2536c
TrainerCard_Page2_3_InitObjectsAndStrings: ; 2536c (9:536c) TrainerCard_Page2_3_InitObjectsAndStrings: ; 2536c (9:536c)
@ -324,7 +335,7 @@ endr
dec c dec c
jr nz, .loop2 jr nz, .loop2
xor a xor a
ld [wcf64], a ld [wTrainerCardBadgeFrameCounter], a
ld hl, TrainerCard_JohtoBadgesOAM ld hl, TrainerCard_JohtoBadgesOAM
call TrainerCard_Page2_3_OAMUpdate call TrainerCard_Page2_3_OAMUpdate
ret ret
@ -332,20 +343,20 @@ endr
; 253a2 (9:53a2) ; 253a2 (9:53a2)
.BadgesTilemap: ; 253a2 .BadgesTilemap: ; 253a2
db $79, $7a, $7b, $7c, $7d, $ff ; "BADGES" db $79, $7a, $7b, $7c, $7d, -1 ; "BADGES"
; 253a8 ; 253a8
TrainerCardSetup_PlaceTilemapString: ; 253a8 (9:53a8) TrainerCardSetup_PlaceTilemapString: ; 253a8 (9:53a8)
.loop .loop
ld a, [de] ld a, [de]
cp $ff cp -1
ret z ret z
ld [hli], a ld [hli], a
inc de inc de
jr .loop jr .loop
TrainerCard_InitBorder: ; 253b0 (9:53b0) TrainerCard_InitBorder: ; 253b0 (9:53b0)
ld e, 20 ld e, SCREEN_WIDTH
.loop1 .loop1
ld a, $23 ld a, $23
ld [hli], a ld [hli], a
@ -354,7 +365,7 @@ TrainerCard_InitBorder: ; 253b0 (9:53b0)
ld a, $23 ld a, $23
ld [hli], a ld [hli], a
ld e, 17 ld e, SCREEN_HEIGHT - 1
ld a, " " ld a, " "
.loop2 .loop2
ld [hli], a ld [hli], a
@ -369,7 +380,7 @@ TrainerCard_InitBorder: ; 253b0 (9:53b0)
ld a, $23 ld a, $23
ld [hli], a ld [hli], a
ld e, 18 ld e, SCREEN_HEIGHT
ld a, " " ld a, " "
.loop4 .loop4
ld [hli], a ld [hli], a
@ -386,7 +397,7 @@ TrainerCard_InitBorder: ; 253b0 (9:53b0)
ld a, $24 ld a, $24
ld [hli], a ld [hli], a
ld e, 17 ld e, SCREEN_HEIGHT - 1
ld a, " " ld a, " "
.loop5 .loop5
ld [hli], a ld [hli], a
@ -394,7 +405,7 @@ TrainerCard_InitBorder: ; 253b0 (9:53b0)
jr nz, .loop5 jr nz, .loop5
ld a, $23 ld a, $23
ld [hli], a ld [hli], a
ld e, 20 ld e, SCREEN_WIDTH
.loop6 .loop6
ld a, $23 ld a, $23
ld [hli], a ld [hli], a
@ -453,12 +464,12 @@ TrainerCard_Page1_PrintGameTime: ; 25415 (9:5415)
TrainerCard_Page2_3_AnimateBadges: ; 25438 (9:5438) TrainerCard_Page2_3_AnimateBadges: ; 25438 (9:5438)
ld a, [hVBlankCounter] ld a, [hVBlankCounter]
and $7 and %111
ret nz ret nz
ld a, [wcf64] ld a, [wTrainerCardBadgeFrameCounter]
inc a inc a
and $7 and %111
ld [wcf64], a ld [wTrainerCardBadgeFrameCounter], a
jr TrainerCard_Page2_3_OAMUpdate jr TrainerCard_Page2_3_OAMUpdate
TrainerCard_Page2_3_OAMUpdate: ; 25448 (9:5448) TrainerCard_Page2_3_OAMUpdate: ; 25448 (9:5448)
@ -482,15 +493,15 @@ TrainerCard_Page2_3_OAMUpdate: ; 25448 (9:5448)
ld a, [hli] ; x ld a, [hli] ; x
ld c, a ld c, a
ld a, [hli] ; pal ld a, [hli] ; pal
ld [wcf66], a ld [wTrainerCardBadgeAttributes], a
ld a, [wcf64] ld a, [wTrainerCardBadgeFrameCounter]
add l add l
ld l, a ld l, a
ld a, 0 ld a, 0
adc h adc h
ld h, a ld h, a
ld a, [hl] ld a, [hl]
ld [wcf65], a ld [wTrainerCardBadgeTileID], a
call .PrepOAM call .PrepOAM
pop hl pop hl
.skip_badge .skip_badge
@ -502,8 +513,8 @@ TrainerCard_Page2_3_OAMUpdate: ; 25448 (9:5448)
ret ret
.PrepOAM: ; 2547b (9:547b) .PrepOAM: ; 2547b (9:547b)
ld a, [wcf65] ld a, [wTrainerCardBadgeTileID]
and $80 and 1 << 7
jr nz, .xflip jr nz, .xflip
ld hl, .facing1 ld hl, .facing1
jr .loop2 jr .loop2
@ -523,14 +534,14 @@ TrainerCard_Page2_3_OAMUpdate: ; 25448 (9:5448)
ld [de], a ; x ld [de], a ; x
inc de inc de
ld a, [wcf65] ld a, [wTrainerCardBadgeTileID]
and $7f and $ff ^ (1 << 7)
add [hl] add [hl]
ld [de], a ; tile id ld [de], a ; tile id
inc hl inc hl
inc de inc de
ld a, [wcf66] ld a, [wTrainerCardBadgeAttributes]
add [hl] add [hl]
ld [de], a ; attributes ld [de], a ; attributes
inc hl inc hl
@ -564,44 +575,44 @@ TrainerCard_JohtoBadgesOAM: ; 254c9
; Zephyrbadge ; Zephyrbadge
db $68, $18, 0 db $68, $18, 0
db $00, $20, $24, $20 | $80 db $00, $20, $24, $20 | (1 << 7)
db $00, $20, $24, $20 | $80 db $00, $20, $24, $20 | (1 << 7)
; Hivebadge ; Hivebadge
db $68, $38, 0 db $68, $38, 0
db $04, $20, $24, $20 | $80 db $04, $20, $24, $20 | (1 << 7)
db $04, $20, $24, $20 | $80 db $04, $20, $24, $20 | (1 << 7)
; Plainbadge ; Plainbadge
db $68, $58, 0 db $68, $58, 0
db $08, $20, $24, $20 | $80 db $08, $20, $24, $20 | (1 << 7)
db $08, $20, $24, $20 | $80 db $08, $20, $24, $20 | (1 << 7)
; Fogbadge ; Fogbadge
db $68, $78, 0 db $68, $78, 0
db $0c, $20, $24, $20 | $80 db $0c, $20, $24, $20 | (1 << 7)
db $0c, $20, $24, $20 | $80 db $0c, $20, $24, $20 | (1 << 7)
; Mineralbadge ; Mineralbadge
db $80, $38, 0 db $80, $38, 0
db $10, $20, $24, $20 | $80 db $10, $20, $24, $20 | (1 << 7)
db $10, $20, $24, $20 | $80 db $10, $20, $24, $20 | (1 << 7)
; Stormbadge ; Stormbadge
db $80, $18, 0 db $80, $18, 0
db $14, $20, $24, $20 | $80 db $14, $20, $24, $20 | (1 << 7)
db $14, $20, $24, $20 | $80 db $14, $20, $24, $20 | (1 << 7)
; Glacierbadge ; Glacierbadge
db $80, $58, 0 db $80, $58, 0
db $18, $20, $24, $20 | $80 db $18, $20, $24, $20 | (1 << 7)
db $18, $20, $24, $20 | $80 db $18, $20, $24, $20 | (1 << 7)
; Risingbadge ; Risingbadge
; X-flips on alternate cycles. ; X-flips on alternate cycles.
db $80, $78, 0 db $80, $78, 0
db $1c, $20, $24, $20 | $80 db $1c, $20, $24, $20 | (1 << 7)
db $1c | $80, $20, $24, $20 | $80 db $1c | (1 << 7), $20, $24, $20 | (1 << 7)
; 25523 ; 25523
CardStatusGFX: INCBIN "gfx/trainer_card/card_status.2bpp" CardStatusGFX: INCBIN "gfx/trainer_card/card_status.2bpp"

View File

@ -1342,6 +1342,12 @@ if !DEF(_CRYSTAL11)
wPokedexStatus:: db wPokedexStatus:: db
endc endc
NEXTU ; cf64
; trainer card badges
wTrainerCardBadgeFrameCounter:: db
wTrainerCardBadgeTileID:: db
wTrainerCardBadgeAttributes:: db
NEXTU ; cf64 NEXTU ; cf64
; miscellaneous ; miscellaneous
wNrOfBeatenBattleTowerTrainers:: wNrOfBeatenBattleTowerTrainers::