summaryrefslogtreecommitdiff
path: root/engine/trainer_card.asm
diff options
context:
space:
mode:
authormid-kid <esteve.varela@gmail.com>2018-03-13 13:07:16 +0100
committermid-kid <esteve.varela@gmail.com>2018-03-13 13:21:40 +0100
commitbaa0dc5a963a79843b37888bcfe1d2dfe833ade9 (patch)
tree968c86105bd67a3121d8f3f20018bfc59191f4c9 /engine/trainer_card.asm
parent12070ca50067d3abe36a730190f88ee43f2cace9 (diff)
Organize the engine/ directory
This is an informed attempt at reorganizing the engine/ directory by creating categorized subdirectories, in order to make it easier to navigate and find things. The directories created are as follows: * engine/game: Contains all "minigames", things like the unown puzzle and slot machine. * engine/gfx: Contains all handling of graphics. From loading palettes to playing animations. * engine/link: Contains all multiplayer functionality. * engine/menu: Contains all generic/misc. menus and menu code. Other, more specialized menus are in their own subdirectories (pokedex, pokegear, party menu, etc). * engine/overworld: Contains all handling of the overworld. From loading and connecting maps to wild encounters and the scripting engine. * engine/pokegear: In the same vein as engine/pokedex, except it could use some more splitting up. * engine/pokemon: Contains everything related to manipulating pokemon data. From the pokemon storage system to evolution and mail. * engine/printer: Contains everything related to printing things as well as the printer communication. * engine/title: Contains intro sequences, title screens and credits.
Diffstat (limited to 'engine/trainer_card.asm')
-rwxr-xr-xengine/trainer_card.asm623
1 files changed, 0 insertions, 623 deletions
diff --git a/engine/trainer_card.asm b/engine/trainer_card.asm
deleted file mode 100755
index e84c1c9f3..000000000
--- a/engine/trainer_card.asm
+++ /dev/null
@@ -1,623 +0,0 @@
-; 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
- ld a, [wVramState]
- push af
- xor a
- ld [wVramState], a
- ld hl, wOptions
- ld a, [hl]
- push af
- set NO_TEXT_SCROLL, [hl]
- call .InitRAM
-.loop
- call UpdateTime
- call JoyTextDelay
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .quit
- ld a, [hJoyLast]
- and B_BUTTON
- jr nz, .quit
- call .RunJumptable
- call DelayFrame
- jr .loop
-
-.quit
- pop af
- ld [wOptions], a
- pop af
- ld [wVramState], a
- ret
-
-.InitRAM: ; 2513b (9:513b)
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- call DisableLCD
-
- farcall GetCardPic
-
- ld hl, CardRightCornerGFX
- ld de, vTiles2 tile $1c
- ld bc, 1 tiles
- ld a, BANK(CardRightCornerGFX)
- call FarCopyBytes
-
- ld hl, CardStatusGFX
- ld de, vTiles2 tile $29
- ld bc, 86 tiles
- ld a, BANK(CardStatusGFX)
- call FarCopyBytes
-
- call TrainerCard_PrintTopHalfOfCard
-
- hlcoord 0, 8
- ld d, 6
- call TrainerCard_InitBorder
-
- call EnableLCD
- call WaitBGMap
- ld b, SCGB_TRAINER_CARD
- call GetSGBLayout
- call SetPalettes
- call WaitBGMap
- ld hl, wJumptableIndex
- xor a ; TRAINERCARDSTATE_PAGE1_LOADGFX
- ld [hli], a ; wJumptableIndex
- ld [hli], a ; wTrainerCardBadgeFrameCounter
- ld [hli], a ; wTrainerCardBadgeTileID
- ld [hl], a ; wTrainerCardBadgeAttributes
- ret
-
-.RunJumptable: ; 2518e (9:518e)
- jumptable .Jumptable, wJumptableIndex
-
-.Jumptable: ; 2519d (9:519d)
-; entries correspond to TRAINERCARDSTATE_* constants
- dw TrainerCard_Page1_LoadGFX
- dw TrainerCard_Page1_Joypad
- dw TrainerCard_Page2_LoadGFX
- dw TrainerCard_Page2_Joypad
- dw TrainerCard_Page3_LoadGFX
- dw TrainerCard_Page3_Joypad
- dw TrainerCard_Quit
-
-TrainerCard_IncrementJumptable: ; 251ab (9:51ab)
- ld hl, wJumptableIndex
- inc [hl]
- ret
-
-TrainerCard_Quit: ; 251b0 (9:51b0)
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-TrainerCard_Page1_LoadGFX: ; 251b6 (9:51b6)
- call ClearSprites
- hlcoord 0, 8
- ld d, 6
- call TrainerCard_InitBorder
- call WaitBGMap
- ld de, CardStatusGFX
- ld hl, vTiles2 tile $29
- lb bc, BANK(CardStatusGFX), 86
- call Request2bpp
- call TrainerCard_Page1_PrintDexCaught_GameTime
- call TrainerCard_IncrementJumptable
- ret
-
-TrainerCard_Page1_Joypad: ; 251d7 (9:51d7)
- call TrainerCard_Page1_PrintGameTime
- ld hl, hJoyLast
- ld a, [hl]
- and D_RIGHT | A_BUTTON
- jr nz, .pressed_right_a
- ret
-
-.pressed_right_a
- ld a, TRAINERCARDSTATE_PAGE2_LOADGFX
- ld [wJumptableIndex], a
- ret
-
-.Unreferenced_KantoCheck:
- ld a, [wKantoBadges]
- and a
- ret z
- ld a, TRAINERCARDSTATE_PAGE3_LOADGFX
- ld [wJumptableIndex], a
- ret
-
-; 251f4
-
-TrainerCard_Page2_LoadGFX: ; 251f4 (9:51f4)
- call ClearSprites
- hlcoord 0, 8
- ld d, 6
- call TrainerCard_InitBorder
- call WaitBGMap
- ld de, LeaderGFX
- ld hl, vTiles2 tile $29
- lb bc, BANK(LeaderGFX), 86
- call Request2bpp
- ld de, BadgeGFX
- ld hl, vTiles0 tile $00
- lb bc, BANK(BadgeGFX), 44
- call Request2bpp
- call TrainerCard_Page2_3_InitObjectsAndStrings
- call TrainerCard_IncrementJumptable
- ret
-
-TrainerCard_Page2_Joypad: ; 25221 (9:5221)
- ld hl, TrainerCard_JohtoBadgesOAM
- call TrainerCard_Page2_3_AnimateBadges
- ld hl, hJoyLast
- ld a, [hl]
- and A_BUTTON
- jr nz, .Quit
- ld a, [hl]
- and D_LEFT
- jr nz, .d_left
- ret
-
-.d_left
- ld a, TRAINERCARDSTATE_PAGE1_LOADGFX
- ld [wJumptableIndex], a
- ret
-
-.Unreferenced_KantoCheck:
- ld a, [wKantoBadges]
- and a
- ret z
- ld a, TRAINERCARDSTATE_PAGE3_LOADGFX
- ld [wJumptableIndex], a
- ret
-
-.Quit:
- ld a, TRAINERCARDSTATE_QUIT
- ld [wJumptableIndex], a
- ret
-
-TrainerCard_Page3_LoadGFX: ; 2524c (9:524c)
- call ClearSprites
- hlcoord 0, 8
- ld d, 6
- call TrainerCard_InitBorder
- call WaitBGMap
- ld de, LeaderGFX2
- ld hl, vTiles2 tile $29
- lb bc, BANK(LeaderGFX2), 86
- call Request2bpp
- ld de, BadgeGFX2
- ld hl, vTiles0 tile $00
- lb bc, BANK(BadgeGFX2), 44
- call Request2bpp
- call TrainerCard_Page2_3_InitObjectsAndStrings
- call TrainerCard_IncrementJumptable
- ret
-
-TrainerCard_Page3_Joypad: ; 25279 (9:5279)
- ld hl, TrainerCard_JohtoBadgesOAM
- call TrainerCard_Page2_3_AnimateBadges
- ld hl, hJoyLast
- ld a, [hl]
- and D_LEFT
- jr nz, .left
- ld a, [hl]
- and D_RIGHT
- jr nz, .right
- ret
-
-.left
- ld a, TRAINERCARDSTATE_PAGE2_LOADGFX
- ld [wJumptableIndex], a
- ret
-
-.right
- ld a, TRAINERCARDSTATE_PAGE1_LOADGFX
- ld [wJumptableIndex], a
- ret
-
-TrainerCard_PrintTopHalfOfCard: ; 25299 (9:5299)
- hlcoord 0, 0
- ld d, 5
- call TrainerCard_InitBorder
- hlcoord 2, 2
- ld de, .Name_Money
- call PlaceString
- hlcoord 2, 4
- ld de, .ID_No
- call TrainerCardSetup_PlaceTilemapString
- hlcoord 7, 2
- ld de, wPlayerName
- call PlaceString
- hlcoord 5, 4
- ld de, wPlayerID
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- hlcoord 7, 6
- ld de, wMoney
- lb bc, PRINTNUM_MONEY | 3, 6
- call PrintNum
- hlcoord 1, 3
- ld de, .HorizontalDivider
- call TrainerCardSetup_PlaceTilemapString
- hlcoord 14, 1
- lb bc, 5, 7
- xor a
- ld [hGraphicStartTile], a
- predef PlaceGraphic
- ret
-
-; 252ec (9:52ec)
-
-.Name_Money: ; 252ec
- db "NAME/"
- next ""
- next "MONEY@"
-
-.ID_No: ; 252f9
- db $27, $28, -1 ; ID NO
-
-.HorizontalDivider: ; 252fc
- db $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $26, -1 ; ____________>
-; 2530a
-
-TrainerCard_Page1_PrintDexCaught_GameTime: ; 2530a (9:530a)
- hlcoord 2, 10
- ld de, .Dex_PlayTime
- call PlaceString
- hlcoord 10, 15
- ld de, .Badges
- call PlaceString
- ld hl, wPokedexCaught
- ld b, wEndPokedexCaught - wPokedexCaught
- call CountSetBits
- ld de, wd265
- hlcoord 15, 10
- lb bc, 1, 3
- call PrintNum
- call TrainerCard_Page1_PrintGameTime
- hlcoord 2, 8
- ld de, .StatusTilemap
- call TrainerCardSetup_PlaceTilemapString
- ld a, [wStatusFlags]
- bit STATUSFLAGS_POKEDEX_F, a
- ret nz
- hlcoord 1, 9
- lb bc, 2, 17
- call ClearBox
- ret
-
-.Dex_PlayTime:
- db "#DEX"
- next "PLAY TIME@@"
-
-.Badges:
- db " BADGES▶@"
-
-.StatusTilemap: ; 25366
- db $29, $2a, $2b, $2c, $2d, -1
-; 2536c
-
-TrainerCard_Page2_3_InitObjectsAndStrings: ; 2536c (9:536c)
- hlcoord 2, 8
- ld de, .BadgesTilemap
- call TrainerCardSetup_PlaceTilemapString
- hlcoord 2, 10
- ld a, $29
- ld c, 4
-.loop
- call TrainerCard_Page2_3_PlaceLeadersFaces
-rept 4
- inc hl
-endr
- dec c
- jr nz, .loop
- hlcoord 2, 13
- ld a, $51
- ld c, 4
-.loop2
- call TrainerCard_Page2_3_PlaceLeadersFaces
-rept 4
- inc hl
-endr
- dec c
- jr nz, .loop2
- xor a
- ld [wTrainerCardBadgeFrameCounter], a
- ld hl, TrainerCard_JohtoBadgesOAM
- call TrainerCard_Page2_3_OAMUpdate
- ret
-
-; 253a2 (9:53a2)
-
-.BadgesTilemap: ; 253a2
- db $79, $7a, $7b, $7c, $7d, -1 ; "BADGES"
-; 253a8
-
-TrainerCardSetup_PlaceTilemapString: ; 253a8 (9:53a8)
-.loop
- ld a, [de]
- cp -1
- ret z
- ld [hli], a
- inc de
- jr .loop
-
-TrainerCard_InitBorder: ; 253b0 (9:53b0)
- ld e, SCREEN_WIDTH
-.loop1
- ld a, $23
- ld [hli], a
- dec e
- jr nz, .loop1
-
- ld a, $23
- ld [hli], a
- ld e, SCREEN_HEIGHT - 1
- ld a, " "
-.loop2
- ld [hli], a
- dec e
- jr nz, .loop2
-
- ld a, $1c
- ld [hli], a
- ld a, $23
- ld [hli], a
-.loop3
- ld a, $23
- ld [hli], a
-
- ld e, SCREEN_HEIGHT
- ld a, " "
-.loop4
- ld [hli], a
- dec e
- jr nz, .loop4
-
- ld a, $23
- ld [hli], a
- dec d
- jr nz, .loop3
-
- ld a, $23
- ld [hli], a
- ld a, $24
- ld [hli], a
-
- ld e, SCREEN_HEIGHT - 1
- ld a, " "
-.loop5
- ld [hli], a
- dec e
- jr nz, .loop5
- ld a, $23
- ld [hli], a
- ld e, SCREEN_WIDTH
-.loop6
- ld a, $23
- ld [hli], a
- dec e
- jr nz, .loop6
- ret
-
-TrainerCard_Page2_3_PlaceLeadersFaces: ; 253f4 (9:53f4)
- push de
- push hl
- ld [hli], a
- inc a
- ld [hli], a
- inc a
- ld [hli], a
- inc a
- ld [hli], a
- inc a
- ld de, SCREEN_WIDTH - 3
- add hl, de
- ld [hli], a
- inc a
- ld [hli], a
- inc a
- ld [hli], a
- inc a
- ld de, SCREEN_WIDTH - 3
- add hl, de
- ld [hli], a
- inc a
- ld [hli], a
- inc a
- ld [hli], a
- inc a
- pop hl
- pop de
- ret
-
-TrainerCard_Page1_PrintGameTime: ; 25415 (9:5415)
- hlcoord 11, 12
- ld de, wGameTimeHours
- lb bc, 2, 4
- call PrintNum
- inc hl
- ld de, wGameTimeMinutes
- lb bc, PRINTNUM_LEADINGZEROS | 1, 2
- call PrintNum
- ld a, [hVBlankCounter]
- and $1f
- ret nz
- hlcoord 15, 12
- ld a, [hl]
- xor " " ^ $2e ; alternate between space and small colon ($2e) tiles
- ld [hl], a
- ret
-
-TrainerCard_Page2_3_AnimateBadges: ; 25438 (9:5438)
- ld a, [hVBlankCounter]
- and %111
- ret nz
- ld a, [wTrainerCardBadgeFrameCounter]
- inc a
- and %111
- ld [wTrainerCardBadgeFrameCounter], a
- jr TrainerCard_Page2_3_OAMUpdate
-
-TrainerCard_Page2_3_OAMUpdate: ; 25448 (9:5448)
-; copy flag array pointer
- ld a, [hli]
- ld e, a
- ld a, [hli]
-; get flag array
- ld d, a
- ld a, [de]
- ld c, a
- ld de, wVirtualOAMSprite00
- ld b, NUM_JOHTO_BADGES
-.loop
- srl c
- push bc
- jr nc, .skip_badge
- push hl
- ld a, [hli] ; y
- ld b, a
- ld a, [hli] ; x
- ld c, a
- ld a, [hli] ; pal
- ld [wTrainerCardBadgeAttributes], a
- ld a, [wTrainerCardBadgeFrameCounter]
- add l
- ld l, a
- ld a, 0
- adc h
- ld h, a
- ld a, [hl]
- ld [wTrainerCardBadgeTileID], a
- call .PrepOAM
- pop hl
-.skip_badge
- ld bc, $b ; 3 + 2 * 4
- add hl, bc
- pop bc
- dec b
- jr nz, .loop
- ret
-
-.PrepOAM: ; 2547b (9:547b)
- ld a, [wTrainerCardBadgeTileID]
- and 1 << 7
- jr nz, .xflip
- ld hl, .facing1
- jr .loop2
-
-.xflip
- ld hl, .facing2
-.loop2
- ld a, [hli]
- cp -1
- ret z
- add b
- ld [de], a ; y
- inc de
-
- ld a, [hli]
- add c
- ld [de], a ; x
- inc de
-
- ld a, [wTrainerCardBadgeTileID]
- and $ff ^ (1 << 7)
- add [hl]
- ld [de], a ; tile id
- inc hl
- inc de
-
- ld a, [wTrainerCardBadgeAttributes]
- add [hl]
- ld [de], a ; attributes
- inc hl
- inc de
- jr .loop2
-
-; 254a7 (9:54a7)
-
-.facing1 ; 254a7
- dsprite 0, 0, 0, 0, $00, 0
- dsprite 0, 0, 1, 0, $01, 0
- dsprite 1, 0, 0, 0, $02, 0
- dsprite 1, 0, 1, 0, $03, 0
- db -1
-
-.facing2 ; 254b8
- dsprite 0, 0, 0, 0, $01, 0 | X_FLIP
- dsprite 0, 0, 1, 0, $00, 0 | X_FLIP
- dsprite 1, 0, 0, 0, $03, 0 | X_FLIP
- dsprite 1, 0, 1, 0, $02, 0 | X_FLIP
- db -1
-
-TrainerCard_JohtoBadgesOAM: ; 254c9
-; Template OAM data for each badge on the trainer card.
-; Format:
- ; y, x, palette
- ; cycle 1: face tile, in1 tile, in2 tile, in3 tile
- ; cycle 2: face tile, in1 tile, in2 tile, in3 tile
-
- dw wJohtoBadges
-
- ; Zephyrbadge
- db $68, $18, 0
- db $00, $20, $24, $20 | (1 << 7)
- db $00, $20, $24, $20 | (1 << 7)
-
- ; Hivebadge
- db $68, $38, 0
- db $04, $20, $24, $20 | (1 << 7)
- db $04, $20, $24, $20 | (1 << 7)
-
- ; Plainbadge
- db $68, $58, 0
- db $08, $20, $24, $20 | (1 << 7)
- db $08, $20, $24, $20 | (1 << 7)
-
- ; Fogbadge
- db $68, $78, 0
- db $0c, $20, $24, $20 | (1 << 7)
- db $0c, $20, $24, $20 | (1 << 7)
-
- ; Mineralbadge
- db $80, $38, 0
- db $10, $20, $24, $20 | (1 << 7)
- db $10, $20, $24, $20 | (1 << 7)
-
- ; Stormbadge
- db $80, $18, 0
- db $14, $20, $24, $20 | (1 << 7)
- db $14, $20, $24, $20 | (1 << 7)
-
- ; Glacierbadge
- db $80, $58, 0
- db $18, $20, $24, $20 | (1 << 7)
- db $18, $20, $24, $20 | (1 << 7)
-
- ; Risingbadge
- ; X-flips on alternate cycles.
- db $80, $78, 0
- db $1c, $20, $24, $20 | (1 << 7)
- db $1c | (1 << 7), $20, $24, $20 | (1 << 7)
-; 25523
-
-CardStatusGFX: INCBIN "gfx/trainer_card/card_status.2bpp"
-
-LeaderGFX: INCBIN "gfx/trainer_card/leaders.2bpp"
-LeaderGFX2: INCBIN "gfx/trainer_card/leaders.2bpp"
-BadgeGFX: INCBIN "gfx/trainer_card/badges.2bpp"
-BadgeGFX2: INCBIN "gfx/trainer_card/badges.2bpp"
-
-CardRightCornerGFX: INCBIN "gfx/trainer_card/card_right_corner.2bpp"