mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
e6ea1889fb
The former is arguably misleading (as you don’t access the memory location in hl to retrieve the jump location), and is consequently deprecated in newer versions of rgbds. This fix silences these deprecation warnings.
1628 lines
27 KiB
NASM
Executable File
1628 lines
27 KiB
NASM
Executable File
TradeAnimation: ; 28f24
|
|
xor a
|
|
ld [wcf66], a
|
|
ld hl, wPlayerTrademonSenderName
|
|
ld de, wOTTrademonSenderName
|
|
call LinkTradeAnim_LoadTradePlayerNames
|
|
ld hl, wPlayerTrademonSpecies
|
|
ld de, wOTTrademonSpecies
|
|
call LinkTradeAnim_LoadTradeMonSpecies
|
|
ld de, .script
|
|
jr RunTradeAnimScript
|
|
|
|
.script
|
|
tradeanim_setup_givemon_scroll
|
|
tradeanim_show_givemon_data
|
|
tradeanim_do_givemon_scroll
|
|
tradeanim_wait_80
|
|
tradeanim_wait_96
|
|
tradeanim_poof
|
|
tradeanim_rocking_ball
|
|
tradeanim_enter_link_tube
|
|
tradeanim_wait_anim
|
|
tradeanim_bulge_through_tube
|
|
tradeanim_wait_anim
|
|
tradeanim_textbox_scroll
|
|
tradeanim_give_trademon_sfx
|
|
tradeanim_tube_to_ot
|
|
tradeanim_sent_to_ot_text
|
|
tradeanim_scroll_out_right
|
|
|
|
tradeanim_ot_sends_text_1
|
|
tradeanim_ot_bids_farewell
|
|
tradeanim_wait_40
|
|
tradeanim_scroll_out_right
|
|
tradeanim_get_trademon_sfx
|
|
tradeanim_tube_to_player
|
|
tradeanim_enter_link_tube
|
|
tradeanim_drop_ball
|
|
tradeanim_exit_link_tube
|
|
tradeanim_wait_anim
|
|
tradeanim_show_getmon_data
|
|
tradeanim_poof
|
|
tradeanim_wait_anim
|
|
tradeanim_frontpic_scroll
|
|
tradeanim_animate_frontpic
|
|
tradeanim_wait_80_if_ot_egg
|
|
tradeanim_textbox_scroll
|
|
tradeanim_take_care_of_text
|
|
tradeanim_scroll_out_right
|
|
tradeanim_end
|
|
|
|
TradeAnimationPlayer2: ; 28f63
|
|
xor a
|
|
ld [wcf66], a
|
|
ld hl, wOTTrademonSenderName
|
|
ld de, wPlayerTrademonSenderName
|
|
call LinkTradeAnim_LoadTradePlayerNames
|
|
ld hl, wOTTrademonSpecies
|
|
ld de, wPlayerTrademonSpecies
|
|
call LinkTradeAnim_LoadTradeMonSpecies
|
|
ld de, .script
|
|
jr RunTradeAnimScript
|
|
|
|
.script
|
|
tradeanim_ot_sends_text_2
|
|
tradeanim_ot_bids_farewell
|
|
tradeanim_wait_40
|
|
tradeanim_scroll_out_right
|
|
tradeanim_get_trademon_sfx
|
|
tradeanim_tube_to_ot
|
|
tradeanim_enter_link_tube
|
|
tradeanim_drop_ball
|
|
tradeanim_exit_link_tube
|
|
tradeanim_wait_anim
|
|
tradeanim_show_getmon_data
|
|
tradeanim_poof
|
|
tradeanim_wait_anim
|
|
tradeanim_frontpic_scroll
|
|
tradeanim_animate_frontpic
|
|
tradeanim_wait_180_if_ot_egg
|
|
tradeanim_textbox_scroll
|
|
tradeanim_take_care_of_text
|
|
tradeanim_scroll_out_right
|
|
|
|
tradeanim_setup_givemon_scroll
|
|
tradeanim_show_givemon_data
|
|
tradeanim_do_givemon_scroll
|
|
tradeanim_wait_40
|
|
tradeanim_poof
|
|
tradeanim_rocking_ball
|
|
tradeanim_enter_link_tube
|
|
tradeanim_wait_anim
|
|
tradeanim_bulge_through_tube
|
|
tradeanim_wait_anim
|
|
tradeanim_textbox_scroll
|
|
tradeanim_give_trademon_sfx
|
|
tradeanim_tube_to_player
|
|
tradeanim_sent_to_ot_text
|
|
tradeanim_scroll_out_right
|
|
tradeanim_end
|
|
|
|
RunTradeAnimScript: ; 28fa1
|
|
ld hl, wTradeAnimPointer
|
|
ld [hl], e
|
|
inc hl
|
|
ld [hl], d
|
|
ld a, [hMapAnims]
|
|
push af
|
|
xor a
|
|
ld [hMapAnims], a
|
|
ld hl, VramState
|
|
ld a, [hl]
|
|
push af
|
|
res 0, [hl]
|
|
ld hl, Options
|
|
ld a, [hl]
|
|
push af
|
|
set 4, [hl]
|
|
call .TradeAnimLayout
|
|
ld a, [wcf66]
|
|
and a
|
|
jr nz, .anim_loop
|
|
ld de, MUSIC_EVOLUTION
|
|
call PlayMusic2
|
|
.anim_loop
|
|
call DoTradeAnimation
|
|
jr nc, .anim_loop
|
|
pop af
|
|
ld [Options], a
|
|
pop af
|
|
ld [VramState], a
|
|
pop af
|
|
ld [hMapAnims], a
|
|
ret
|
|
|
|
; 28fdb
|
|
|
|
.TradeAnimLayout: ; 28fdb
|
|
xor a
|
|
ld [wJumptableIndex], a
|
|
call ClearBGPalettes
|
|
call ClearSprites
|
|
call ClearTileMap
|
|
call DisableLCD
|
|
call LoadFontsBattleExtra
|
|
callab ClearSpriteAnims
|
|
ld a, [hCGB]
|
|
and a
|
|
jr z, .NotCGB
|
|
ld a, $1
|
|
ld [rVBK], a
|
|
ld hl, VTiles0
|
|
ld bc, sScratch - VTiles0
|
|
xor a
|
|
call ByteFill
|
|
ld a, $0
|
|
ld [rVBK], a
|
|
|
|
.NotCGB:
|
|
hlbgcoord 0, 0
|
|
ld bc, sScratch - VBGMap0
|
|
ld a, " "
|
|
call ByteFill
|
|
ld hl, TradeGameBoyLZ
|
|
ld de, VTiles2 tile $31
|
|
call Decompress
|
|
ld hl, TradeArrowGFX
|
|
ld de, VTiles1 tile $6d
|
|
ld bc, $10
|
|
ld a, BANK(TradeArrowGFX)
|
|
call FarCopyBytes
|
|
ld hl, TradeArrowGFX + $10
|
|
ld de, VTiles1 tile $6e
|
|
ld bc, $10
|
|
ld a, BANK(TradeArrowGFX)
|
|
call FarCopyBytes
|
|
xor a
|
|
ld [hSCX], a
|
|
ld [hSCY], a
|
|
ld a, $7
|
|
ld [hWX], a
|
|
ld a, $90
|
|
ld [hWY], a
|
|
callba GetTrademonFrontpic
|
|
call EnableLCD
|
|
call LoadTradeBallAndCableGFX
|
|
ld a, [wPlayerTrademonSpecies]
|
|
ld hl, wPlayerTrademonDVs
|
|
ld de, VTiles0
|
|
call TradeAnim_GetFrontpic
|
|
ld a, [wOTTrademonSpecies]
|
|
ld hl, wOTTrademonDVs
|
|
ld de, VTiles0 tile $31
|
|
call TradeAnim_GetFrontpic
|
|
ld a, [wPlayerTrademonSpecies]
|
|
ld de, wPlayerTrademonSpeciesName
|
|
call TradeAnim_GetNickname
|
|
ld a, [wOTTrademonSpecies]
|
|
ld de, wOTTrademonSpeciesName
|
|
call TradeAnim_GetNickname
|
|
call TradeAnim_NormalPals
|
|
ret
|
|
|
|
; 29082
|
|
|
|
DoTradeAnimation: ; 29082
|
|
ld a, [wJumptableIndex]
|
|
bit 7, a
|
|
jr nz, .finished
|
|
call .DoTradeAnimCommand
|
|
callab PlaySpriteAnimations
|
|
ld hl, wcf65
|
|
inc [hl]
|
|
call DelayFrame
|
|
and a
|
|
ret
|
|
|
|
.finished
|
|
call LoadStandardFont
|
|
scf
|
|
ret
|
|
|
|
; 290a0
|
|
|
|
.DoTradeAnimCommand: ; 290a0
|
|
ld a, [wJumptableIndex]
|
|
ld e, a
|
|
ld d, 0
|
|
ld hl, .JumpTable
|
|
add hl, de
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
jp hl
|
|
; 290af
|
|
|
|
.JumpTable: ; 290af
|
|
dw TradeAnim_AdvanceScriptPointer ; 00
|
|
dw TradeAnim_ShowGivemonData ; 01
|
|
dw TradeAnim_ShowGetmonData ; 02
|
|
dw TradeAnim_EnterLinkTube1 ; 03
|
|
dw TradeAnim_EnterLinkTube2 ; 04
|
|
dw TradeAnim_ExitLinkTube ; 05
|
|
dw TradeAnim_TubeToOT1 ; 06
|
|
dw TradeAnim_TubeToOT2 ; 07
|
|
dw TradeAnim_TubeToOT3 ; 08
|
|
dw TradeAnim_TubeToOT4 ; 09
|
|
dw TradeAnim_TubeToOT5 ; 0a
|
|
dw TradeAnim_TubeToOT6 ; 0b
|
|
dw TradeAnim_TubeToOT7 ; 0c
|
|
dw TradeAnim_TubeToOT8 ; 0d
|
|
dw TradeAnim_TubeToPlayer1 ; 0e
|
|
dw TradeAnim_TubeToPlayer2 ; 0f
|
|
dw TradeAnim_TubeToPlayer3 ; 10
|
|
dw TradeAnim_TubeToPlayer4 ; 11
|
|
dw TradeAnim_TubeToPlayer5 ; 12
|
|
dw TradeAnim_TubeToPlayer6 ; 13
|
|
dw TradeAnim_TubeToPlayer7 ; 14
|
|
dw TradeAnim_TubeToPlayer8 ; 15
|
|
dw TradeAnim_SentToOTText ; 16
|
|
dw TradeAnim_OTBidsFarewell ; 17
|
|
dw TradeAnim_TakeCareOfText ; 18
|
|
dw TradeAnim_OTSendsText1 ; 19
|
|
dw TradeAnim_OTSendsText2 ; 1a
|
|
dw TradeAnim_SetupGivemonScroll ; 1b
|
|
dw TradeAnim_DoGivemonScroll ; 1c
|
|
dw TradeAnim_FrontpicScrollStart ; 1d
|
|
dw TradeAnim_TextboxScrollStart ; 1e
|
|
dw TradeAnim_ScrollOutRight ; 1f
|
|
dw TradeAnim_ScrollOutRight2 ; 20
|
|
dw TraideAnim_Wait80 ; 21
|
|
dw TraideAnim_Wait40 ; 22
|
|
dw TradeAnim_RockingBall ; 23
|
|
dw TradeAnim_DropBall ; 24
|
|
dw TradeAnim_WaitAnim ; 25
|
|
dw TradeAnim_WaitAnim2 ; 26
|
|
dw TradeAnim_Poof ; 27
|
|
dw TradeAnim_BulgeThroughTube ; 28
|
|
dw TradeAnim_GiveTrademonSFX ; 29
|
|
dw TradeAnim_GetTrademonSFX ; 2a
|
|
dw TradeAnim_End ; 2b
|
|
dw TradeAnim_AnimateFrontpic ; 2c
|
|
dw TraideAnim_Wait96 ; 2d
|
|
dw TraideAnim_Wait80IfOTEgg ; 2e
|
|
dw TraideAnim_Wait180IfOTEgg ; 2f
|
|
; 2910f
|
|
|
|
TradeAnim_IncrementJumptableIndex: ; 2910f
|
|
ld hl, wJumptableIndex
|
|
inc [hl]
|
|
ret
|
|
|
|
; 29114
|
|
|
|
TradeAnim_AdvanceScriptPointer: ; 29114
|
|
ld hl, wTradeAnimPointer
|
|
ld e, [hl]
|
|
inc hl
|
|
ld d, [hl]
|
|
ld a, [de]
|
|
ld [wJumptableIndex], a
|
|
inc de
|
|
ld [hl], d
|
|
dec hl
|
|
ld [hl], e
|
|
ret
|
|
|
|
; 29123
|
|
|
|
TradeAnim_End: ; 29123
|
|
ld hl, wJumptableIndex
|
|
set 7, [hl]
|
|
ret
|
|
|
|
; 29129
|
|
|
|
TradeAnim_TubeToOT1: ; 29129
|
|
ld a, $ed ; >>>>>>>>
|
|
call TradeAnim_PlaceTrademonStatsOnTubeAnim
|
|
ld a, [wLinkTradeSendmonSpecies]
|
|
ld [wd265], a
|
|
xor a
|
|
depixel 5, 11, 4, 0
|
|
ld b, $0
|
|
jr TradeAnim_InitTubeAnim
|
|
|
|
TradeAnim_TubeToPlayer1: ; 2913c
|
|
ld a, $ee ; <<<<<<<<
|
|
call TradeAnim_PlaceTrademonStatsOnTubeAnim
|
|
ld a, [wLinkTradeGetmonSpecies]
|
|
ld [wd265], a
|
|
ld a, $2
|
|
depixel 9, 18, 4, 4
|
|
ld b, $4
|
|
TradeAnim_InitTubeAnim: ; 2914e
|
|
push bc
|
|
push de
|
|
push bc
|
|
push de
|
|
|
|
push af
|
|
call DisableLCD
|
|
callab ClearSpriteAnims
|
|
hlbgcoord 20, 3
|
|
ld bc, 12
|
|
ld a, $60
|
|
call ByteFill
|
|
pop af
|
|
|
|
call TradeAnim_TubeAnimJumptable
|
|
|
|
xor a
|
|
ld [hSCX], a
|
|
ld a, $7
|
|
ld [hWX], a
|
|
ld a, $70
|
|
ld [hWY], a
|
|
call EnableLCD
|
|
call LoadTradeBubbleGFX
|
|
|
|
pop de
|
|
ld a, SPRITE_ANIM_INDEX_TRADEMON_ICON
|
|
call _InitSpriteAnimStruct
|
|
|
|
ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
|
|
add hl, bc
|
|
pop bc
|
|
ld [hl], b
|
|
|
|
pop de
|
|
ld a, SPRITE_ANIM_INDEX_TRADEMON_BUBBLE
|
|
call _InitSpriteAnimStruct
|
|
|
|
ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
|
|
add hl, bc
|
|
pop bc
|
|
ld [hl], b
|
|
|
|
call WaitBGMap
|
|
ld b, SCGB_TRADE_TUBE
|
|
call GetSGBLayout
|
|
ld a, %11100100 ; 3,2,1,0
|
|
call DmgToCgbBGPals
|
|
ld a, %11010000
|
|
call DmgToCgbObjPal0
|
|
|
|
call TradeAnim_IncrementJumptableIndex
|
|
ld a, $5c
|
|
ld [wcf64], a
|
|
ret
|
|
|
|
; 291af
|
|
|
|
TradeAnim_TubeToOT2: ; 291af
|
|
call TradeAnim_FlashBGPals
|
|
ld a, [hSCX]
|
|
add $2
|
|
ld [hSCX], a
|
|
cp $50
|
|
ret nz
|
|
ld a, $1
|
|
call TradeAnim_TubeAnimJumptable
|
|
call TradeAnim_IncrementJumptableIndex
|
|
ret
|
|
|
|
; 291c4
|
|
|
|
TradeAnim_TubeToOT3: ; 291c4
|
|
call TradeAnim_FlashBGPals
|
|
ld a, [hSCX]
|
|
add $2
|
|
ld [hSCX], a
|
|
cp $a0
|
|
ret nz
|
|
ld a, $2
|
|
call TradeAnim_TubeAnimJumptable
|
|
call TradeAnim_IncrementJumptableIndex
|
|
ret
|
|
|
|
; 291d9
|
|
|
|
TradeAnim_TubeToOT4: ; 291d9
|
|
call TradeAnim_FlashBGPals
|
|
ld a, [hSCX]
|
|
add $2
|
|
ld [hSCX], a
|
|
and a
|
|
ret nz
|
|
call TradeAnim_IncrementJumptableIndex
|
|
ret
|
|
|
|
; 291e8
|
|
|
|
TradeAnim_TubeToPlayer3: ; 291e8
|
|
call TradeAnim_FlashBGPals
|
|
ld a, [hSCX]
|
|
sub $2
|
|
ld [hSCX], a
|
|
cp $b0
|
|
ret nz
|
|
ld a, $1
|
|
call TradeAnim_TubeAnimJumptable
|
|
call TradeAnim_IncrementJumptableIndex
|
|
ret
|
|
|
|
; 291fd
|
|
|
|
TradeAnim_TubeToPlayer4: ; 291fd
|
|
call TradeAnim_FlashBGPals
|
|
ld a, [hSCX]
|
|
sub $2
|
|
ld [hSCX], a
|
|
cp $60
|
|
ret nz
|
|
xor a
|
|
call TradeAnim_TubeAnimJumptable
|
|
call TradeAnim_IncrementJumptableIndex
|
|
ret
|
|
|
|
; 29211
|
|
|
|
TradeAnim_TubeToPlayer5: ; 29211
|
|
call TradeAnim_FlashBGPals
|
|
ld a, [hSCX]
|
|
sub $2
|
|
ld [hSCX], a
|
|
and a
|
|
ret nz
|
|
call TradeAnim_IncrementJumptableIndex
|
|
ret
|
|
|
|
; 29220
|
|
|
|
TradeAnim_TubeToOT6:
|
|
TradeAnim_TubeToPlayer6: ; 29220
|
|
ld a, $80
|
|
ld [wcf64], a
|
|
call TradeAnim_IncrementJumptableIndex
|
|
ret
|
|
|
|
; 29229
|
|
|
|
TradeAnim_TubeToOT8:
|
|
TradeAnim_TubeToPlayer8: ; 29229
|
|
call ClearBGPalettes
|
|
call ClearTileMap
|
|
call ClearSprites
|
|
call DisableLCD
|
|
callab ClearSpriteAnims
|
|
hlbgcoord 0, 0
|
|
ld bc, sScratch - VBGMap0
|
|
ld a, " "
|
|
call ByteFill
|
|
xor a
|
|
ld [hSCX], a
|
|
ld a, $90
|
|
ld [hWY], a
|
|
call EnableLCD
|
|
call LoadTradeBallAndCableGFX
|
|
call WaitBGMap
|
|
call TradeAnim_NormalPals
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ret
|
|
|
|
; 2925d
|
|
|
|
TradeAnim_TubeToOT5:
|
|
TradeAnim_TubeToOT7:
|
|
TradeAnim_TubeToPlayer2:
|
|
TradeAnim_TubeToPlayer7: ; 2925d
|
|
call TradeAnim_FlashBGPals
|
|
ld hl, wcf64
|
|
ld a, [hl]
|
|
and a
|
|
jr z, .done
|
|
dec [hl]
|
|
ret
|
|
|
|
.done
|
|
call TradeAnim_IncrementJumptableIndex
|
|
ret
|
|
|
|
; 2926d
|
|
|
|
TradeAnim_GiveTrademonSFX: ; 2926d
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ld de, SFX_GIVE_TRADEMON
|
|
call PlaySFX
|
|
ret
|
|
|
|
; 29277
|
|
|
|
TradeAnim_GetTrademonSFX: ; 29277
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ld de, SFX_GET_TRADEMON
|
|
call PlaySFX
|
|
ret
|
|
|
|
; 29281
|
|
|
|
TradeAnim_TubeAnimJumptable: ; 29281
|
|
and 3
|
|
ld e, a
|
|
ld d, 0
|
|
ld hl, .Jumptable
|
|
add hl, de
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
jp hl
|
|
; 2928f
|
|
|
|
.Jumptable: ; 2928f
|
|
dw .Zero
|
|
dw .One
|
|
dw .Two
|
|
dw .Three
|
|
; 29297
|
|
|
|
.Zero: ; 29297
|
|
.Three: ; 29297
|
|
call TradeAnim_BlankTileMap
|
|
hlcoord 9, 3
|
|
ld [hl], $5b
|
|
inc hl
|
|
ld bc, 10
|
|
ld a, $60
|
|
call ByteFill
|
|
hlcoord 3, 2
|
|
call TradeAnim_CopyTradeGameBoyTilemap
|
|
ret
|
|
|
|
; 292af
|
|
|
|
.One: ; 292af
|
|
call TradeAnim_BlankTileMap
|
|
hlcoord 0, 3
|
|
ld bc, SCREEN_WIDTH
|
|
ld a, $60
|
|
call ByteFill
|
|
ret
|
|
|
|
; 292be
|
|
|
|
.Two: ; 292be
|
|
call TradeAnim_BlankTileMap
|
|
hlcoord 0, 3
|
|
ld bc, $11
|
|
ld a, $60
|
|
call ByteFill
|
|
hlcoord 17, 3
|
|
ld a, $5d
|
|
ld [hl], a
|
|
|
|
ld a, $61
|
|
ld de, SCREEN_WIDTH
|
|
ld c, $3
|
|
.loop
|
|
add hl, de
|
|
ld [hl], a
|
|
dec c
|
|
jr nz, .loop
|
|
|
|
add hl, de
|
|
ld a, $5f
|
|
ld [hld], a
|
|
ld a, $5b
|
|
ld [hl], a
|
|
hlcoord 10, 6
|
|
call TradeAnim_CopyTradeGameBoyTilemap
|
|
ret
|
|
|
|
; 292ec
|
|
|
|
TradeAnim_CopyTradeGameBoyTilemap: ; 292ec
|
|
ld de, TradeGameBoyTilemap
|
|
lb bc, 8, 6
|
|
call TradeAnim_CopyBoxFromDEtoHL
|
|
ret
|
|
|
|
; 292f6
|
|
|
|
TradeAnim_PlaceTrademonStatsOnTubeAnim: ; 292f6
|
|
push af
|
|
call ClearBGPalettes
|
|
call WaitTop
|
|
ld a, VBGMap1 / $100
|
|
ld [hBGMapAddress + 1], a
|
|
call ClearTileMap
|
|
hlcoord 0, 0
|
|
ld bc, SCREEN_WIDTH
|
|
ld a, "─"
|
|
call ByteFill
|
|
hlcoord 0, 1
|
|
ld de, wLinkPlayer1Name
|
|
call PlaceString
|
|
ld hl, wLinkPlayer2Name
|
|
ld de, 0
|
|
.find_name_end_loop
|
|
ld a, [hli]
|
|
cp "@"
|
|
jr z, .done
|
|
dec de
|
|
jr .find_name_end_loop
|
|
|
|
.done
|
|
hlcoord 0, 4
|
|
add hl, de
|
|
ld de, wLinkPlayer2Name
|
|
call PlaceString
|
|
hlcoord 7, 2
|
|
ld bc, 6
|
|
pop af
|
|
call ByteFill
|
|
call WaitBGMap
|
|
call WaitTop
|
|
ld a, VBGMap0 / $100
|
|
ld [hBGMapAddress + 1], a
|
|
call ClearTileMap
|
|
ret
|
|
|
|
; 29348
|
|
|
|
TradeAnim_EnterLinkTube1: ; 29348
|
|
call ClearTileMap
|
|
call WaitTop
|
|
ld a, $a0
|
|
ld [hSCX], a
|
|
call DelayFrame
|
|
hlcoord 8, 2
|
|
ld de, TradeLinkTubeTilemap
|
|
lb bc, 3, 12
|
|
call TradeAnim_CopyBoxFromDEtoHL
|
|
call WaitBGMap
|
|
ld b, SCGB_TRADE_TUBE
|
|
call GetSGBLayout
|
|
ld a, %11100100 ; 3,2,1,0
|
|
call DmgToCgbBGPals
|
|
lb de, %11100100, %11100100 ; 3,2,1,0, 3,2,1,0
|
|
call DmgToCgbObjPals
|
|
ld de, SFX_POTION
|
|
call PlaySFX
|
|
call TradeAnim_IncrementJumptableIndex
|
|
ret
|
|
|
|
; 2937e
|
|
|
|
TradeAnim_EnterLinkTube2: ; 2937e
|
|
ld a, [hSCX]
|
|
and a
|
|
jr z, .done
|
|
add $4
|
|
ld [hSCX], a
|
|
ret
|
|
|
|
.done
|
|
ld c, 80
|
|
call DelayFrames
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ret
|
|
|
|
; 29391
|
|
|
|
TradeAnim_ExitLinkTube: ; 29391
|
|
ld a, [hSCX]
|
|
cp $a0
|
|
jr z, .done
|
|
sub $4
|
|
ld [hSCX], a
|
|
ret
|
|
|
|
.done
|
|
call ClearTileMap
|
|
xor a
|
|
ld [hSCX], a
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ret
|
|
|
|
; 293a6
|
|
|
|
TradeAnim_SetupGivemonScroll: ; 293a6
|
|
ld a, $8f
|
|
ld [hWX], a
|
|
ld a, $88
|
|
ld [hSCX], a
|
|
ld a, $50
|
|
ld [hWY], a
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ret
|
|
|
|
; 293b6
|
|
|
|
TradeAnim_DoGivemonScroll: ; 293b6
|
|
ld a, [hWX]
|
|
cp $7
|
|
jr z, .done
|
|
sub $4
|
|
ld [hWX], a
|
|
ld a, [hSCX]
|
|
sub $4
|
|
ld [hSCX], a
|
|
ret
|
|
|
|
.done
|
|
ld a, $7
|
|
ld [hWX], a
|
|
xor a
|
|
ld [hSCX], a
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ret
|
|
|
|
; 293d2
|
|
|
|
TradeAnim_FrontpicScrollStart: ; 293d2
|
|
ld a, $7
|
|
ld [hWX], a
|
|
ld a, $50
|
|
ld [hWY], a
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ret
|
|
|
|
; 293de
|
|
|
|
TradeAnim_TextboxScrollStart: ; 293de
|
|
ld a, $7
|
|
ld [hWX], a
|
|
ld a, $90
|
|
ld [hWY], a
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ret
|
|
|
|
; 293ea
|
|
|
|
TradeAnim_ScrollOutRight: ; 293ea
|
|
call WaitTop
|
|
ld a, VBGMap1 / $100
|
|
ld [hBGMapAddress + 1], a
|
|
call WaitBGMap
|
|
ld a, $7
|
|
ld [hWX], a
|
|
xor a
|
|
ld [hWY], a
|
|
call DelayFrame
|
|
call WaitTop
|
|
ld a, VBGMap0 / $100
|
|
ld [hBGMapAddress + 1], a
|
|
call ClearTileMap
|
|
call TradeAnim_IncrementJumptableIndex
|
|
ret
|
|
|
|
; 2940c
|
|
|
|
TradeAnim_ScrollOutRight2: ; 2940c
|
|
ld a, [hWX]
|
|
cp $a1
|
|
jr nc, .done
|
|
add $4
|
|
ld [hWX], a
|
|
ret
|
|
|
|
.done
|
|
ld a, VBGMap1 / $100
|
|
ld [hBGMapAddress + 1], a
|
|
call WaitBGMap
|
|
ld a, $7
|
|
ld [hWX], a
|
|
ld a, $90
|
|
ld [hWY], a
|
|
ld a, VBGMap0 / $100
|
|
ld [hBGMapAddress + 1], a
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ret
|
|
|
|
; 2942e
|
|
|
|
TradeAnim_ShowGivemonData: ; 2942e
|
|
call ShowPlayerTrademonStats
|
|
ld a, [wPlayerTrademonSpecies]
|
|
ld [CurPartySpecies], a
|
|
ld a, [wPlayerTrademonDVs]
|
|
ld [TempMonDVs], a
|
|
ld a, [wPlayerTrademonDVs + 1]
|
|
ld [TempMonDVs + 1], a
|
|
ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
|
|
call GetSGBLayout
|
|
ld a, %11100100 ; 3,2,1,0
|
|
call DmgToCgbBGPals
|
|
call TradeAnim_ShowGivemonFrontpic
|
|
|
|
ld a, [wPlayerTrademonSpecies]
|
|
call GetCryIndex
|
|
jr c, .skip_cry
|
|
ld e, c
|
|
ld d, b
|
|
call PlayCryHeader
|
|
.skip_cry
|
|
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ret
|
|
|
|
; 29461
|
|
|
|
TradeAnim_ShowGetmonData: ; 29461
|
|
call ShowOTTrademonStats
|
|
ld a, [wOTTrademonSpecies]
|
|
ld [CurPartySpecies], a
|
|
ld a, [wOTTrademonDVs]
|
|
ld [TempMonDVs], a
|
|
ld a, [wOTTrademonDVs + 1]
|
|
ld [TempMonDVs + 1], a
|
|
ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
|
|
call GetSGBLayout
|
|
ld a, %11100100 ; 3,2,1,0
|
|
call DmgToCgbBGPals
|
|
call TradeAnim_ShowGetmonFrontpic
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ret
|
|
|
|
; 29487
|
|
|
|
TradeAnim_AnimateFrontpic: ; 29487
|
|
callba AnimateTrademonFrontpic
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ret
|
|
|
|
; 29491
|
|
|
|
TradeAnim_GetFrontpic: ; 29491
|
|
push de
|
|
push af
|
|
predef GetUnownLetter
|
|
pop af
|
|
ld [CurPartySpecies], a
|
|
ld [CurSpecies], a
|
|
call GetBaseData
|
|
pop de
|
|
predef GetFrontpic
|
|
ret
|
|
|
|
; 294a9
|
|
|
|
TradeAnim_GetNickname: ; 294a9
|
|
push de
|
|
ld [wd265], a
|
|
call GetPokemonName
|
|
ld hl, StringBuffer1
|
|
pop de
|
|
ld bc, NAME_LENGTH
|
|
call CopyBytes
|
|
ret
|
|
|
|
; 294bb
|
|
|
|
TradeAnim_ShowGivemonFrontpic: ; 294bb
|
|
ld de, VTiles0
|
|
jr TradeAnim_ShowFrontpic
|
|
|
|
TradeAnim_ShowGetmonFrontpic: ; 294c0
|
|
ld de, VTiles0 tile $31
|
|
TradeAnim_ShowFrontpic: ; 294c3
|
|
call DelayFrame
|
|
ld hl, VTiles2
|
|
lb bc, 10, $31
|
|
call Request2bpp
|
|
call WaitTop
|
|
call TradeAnim_BlankTileMap
|
|
hlcoord 7, 2
|
|
xor a
|
|
ld [hGraphicStartTile], a
|
|
lb bc, 7, 7
|
|
predef PlaceGraphic
|
|
call WaitBGMap
|
|
ret
|
|
|
|
; 294e7
|
|
|
|
TraideAnim_Wait80: ; 294e7
|
|
ld c, 80
|
|
call DelayFrames
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ret
|
|
|
|
; 294f0
|
|
|
|
TraideAnim_Wait40: ; 294f0
|
|
ld c, 40
|
|
call DelayFrames
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ret
|
|
|
|
; 294f9
|
|
|
|
TraideAnim_Wait96: ; 294f9
|
|
ld c, 96
|
|
call DelayFrames
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ret
|
|
|
|
; 29502
|
|
|
|
TraideAnim_Wait80IfOTEgg: ; 29502
|
|
call IsOTTrademonEgg
|
|
ret nz
|
|
ld c, 80
|
|
call DelayFrames
|
|
ret
|
|
|
|
; 2950c
|
|
|
|
TraideAnim_Wait180IfOTEgg: ; 2950c
|
|
call IsOTTrademonEgg
|
|
ret nz
|
|
ld c, 180
|
|
call DelayFrames
|
|
ret
|
|
|
|
; 29516
|
|
|
|
IsOTTrademonEgg: ; 29516
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ld a, [wOTTrademonSpecies]
|
|
cp EGG
|
|
ret
|
|
|
|
; 2951f
|
|
ShowPlayerTrademonStats: ; 2951f
|
|
ld de, wPlayerTrademonSpecies
|
|
ld a, [de]
|
|
cp EGG
|
|
jr z, TrademonStats_Egg
|
|
call TrademonStats_MonTemplate
|
|
ld de, wPlayerTrademonSpecies
|
|
call TrademonStats_PrintSpeciesNumber
|
|
ld de, wPlayerTrademonSpeciesName
|
|
call TrademonStats_PrintSpeciesName
|
|
ld a, [wPlayerTrademonCaughtData]
|
|
ld de, wPlayerTrademonOTName
|
|
call TrademonStats_PrintOTName
|
|
ld de, wPlayerTrademonID
|
|
call TrademonStats_PrintTrademonID
|
|
call TrademonStats_WaitBGMap
|
|
ret
|
|
|
|
; 29549
|
|
|
|
ShowOTTrademonStats: ; 29549
|
|
ld de, wOTTrademonSpecies
|
|
ld a, [de]
|
|
cp EGG
|
|
jr z, TrademonStats_Egg
|
|
call TrademonStats_MonTemplate
|
|
ld de, wOTTrademonSpecies
|
|
call TrademonStats_PrintSpeciesNumber
|
|
ld de, wOTTrademonSpeciesName
|
|
call TrademonStats_PrintSpeciesName
|
|
ld a, [wOTTrademonCaughtData]
|
|
ld de, wOTTrademonOTName
|
|
call TrademonStats_PrintOTName
|
|
ld de, wOTTrademonID
|
|
call TrademonStats_PrintTrademonID
|
|
call TrademonStats_WaitBGMap
|
|
ret
|
|
|
|
; 29573
|
|
|
|
TrademonStats_MonTemplate: ; 29573
|
|
call WaitTop
|
|
call TradeAnim_BlankTileMap
|
|
ld a, VBGMap1 / $100
|
|
ld [hBGMapAddress + 1], a
|
|
hlcoord 3, 0
|
|
ld b, $6
|
|
ld c, $d
|
|
call TextBox
|
|
hlcoord 4, 0
|
|
ld de, .OTMonData
|
|
call PlaceString
|
|
ret
|
|
|
|
; 29591
|
|
|
|
.OTMonData: ; 29591
|
|
db "─── №."
|
|
next ""
|
|
next "OT/"
|
|
next "<ID>№.@"
|
|
; 295a1
|
|
|
|
TrademonStats_Egg: ; 295a1
|
|
call WaitTop
|
|
call TradeAnim_BlankTileMap
|
|
ld a, VBGMap1 / $100
|
|
ld [hBGMapAddress + 1], a
|
|
hlcoord 3, 0
|
|
ld b, 6
|
|
ld c, 13
|
|
call TextBox
|
|
hlcoord 4, 2
|
|
ld de, .EggData
|
|
call PlaceString
|
|
call TrademonStats_WaitBGMap
|
|
ret
|
|
|
|
; 295c2
|
|
|
|
.EggData: ; 295c2
|
|
db "EGG"
|
|
next "OT/?????"
|
|
next "<ID>№.?????@"
|
|
; 295d8
|
|
|
|
TrademonStats_WaitBGMap: ; 295d8
|
|
call WaitBGMap
|
|
call WaitTop
|
|
ld a, VBGMap0 / $100
|
|
ld [hBGMapAddress + 1], a
|
|
ret
|
|
|
|
; 295e3
|
|
|
|
TrademonStats_PrintSpeciesNumber: ; 295e3
|
|
hlcoord 10, 0
|
|
lb bc, PRINTNUM_LEADINGZEROS | 1, 3
|
|
call PrintNum
|
|
ld [hl], " "
|
|
ret
|
|
|
|
; 295ef
|
|
|
|
TrademonStats_PrintSpeciesName: ; 295ef
|
|
hlcoord 4, 2
|
|
call PlaceString
|
|
ret
|
|
|
|
; 295f6
|
|
|
|
TrademonStats_PrintOTName: ; 295f6
|
|
cp 3
|
|
jr c, .caught_gender_okay
|
|
xor a
|
|
.caught_gender_okay
|
|
push af
|
|
hlcoord 7, 4
|
|
call PlaceString
|
|
inc bc
|
|
pop af
|
|
ld hl, .Gender
|
|
ld d, 0
|
|
ld e, a
|
|
add hl, de
|
|
ld a, [hl]
|
|
ld [bc], a
|
|
ret
|
|
|
|
; 2960e
|
|
|
|
.Gender: ; 2960e
|
|
db " ", "♂", "♀"
|
|
; 29611
|
|
|
|
TrademonStats_PrintTrademonID: ; 29611
|
|
hlcoord 7, 6
|
|
lb bc, PRINTNUM_LEADINGZEROS | 2, 5
|
|
call PrintNum
|
|
ret
|
|
|
|
; 2961b
|
|
|
|
TradeAnim_RockingBall: ; 2961b
|
|
depixel 10, 11, 4, 0
|
|
ld a, SPRITE_ANIM_INDEX_0E
|
|
call _InitSpriteAnimStruct
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ld a, $20
|
|
ld [wcf64], a
|
|
ret
|
|
|
|
; 2962c
|
|
|
|
TradeAnim_DropBall: ; 2962c
|
|
depixel 10, 11, 4, 0
|
|
ld a, SPRITE_ANIM_INDEX_0E
|
|
call _InitSpriteAnimStruct
|
|
ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
|
|
add hl, bc
|
|
ld [hl], $1
|
|
ld hl, SPRITEANIMSTRUCT_YOFFSET
|
|
add hl, bc
|
|
ld [hl], $dc
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ld a, $38
|
|
ld [wcf64], a
|
|
ret
|
|
|
|
; 29649
|
|
|
|
TradeAnim_Poof: ; 29649
|
|
depixel 10, 11, 4, 0
|
|
ld a, SPRITE_ANIM_INDEX_0F
|
|
call _InitSpriteAnimStruct
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ld a, $10
|
|
ld [wcf64], a
|
|
ld de, SFX_BALL_POOF
|
|
call PlaySFX
|
|
ret
|
|
|
|
; 29660
|
|
|
|
TradeAnim_BulgeThroughTube: ; 29660
|
|
ld a, %11100100 ; 3,2,1,0
|
|
call DmgToCgbObjPal0
|
|
depixel 5, 11
|
|
ld a, SPRITE_ANIM_INDEX_10
|
|
call _InitSpriteAnimStruct
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ld a, $40
|
|
ld [wcf64], a
|
|
ret
|
|
|
|
; 29676
|
|
|
|
TradeAnim_AnimateTrademonInTube: ; 29676 (a:5676)
|
|
ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
|
|
add hl, bc
|
|
ld e, [hl]
|
|
ld d, 0
|
|
ld hl, .Jumptable
|
|
add hl, de
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
jp hl
|
|
; 29686
|
|
|
|
.Jumptable: ; 29686 (a:5686)
|
|
dw .InitTimer
|
|
dw .WaitTimer1
|
|
dw .MoveRight
|
|
dw .MoveDown
|
|
dw .MoveUp
|
|
dw .MoveLeft
|
|
dw .WaitTimer2
|
|
; 2969a
|
|
|
|
.JumptableNext: ; 29694 (a:5694)
|
|
ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
|
|
add hl, bc
|
|
inc [hl]
|
|
ret
|
|
|
|
.InitTimer: ; 2969a (a:569a)
|
|
call .JumptableNext
|
|
ld hl, SPRITEANIMSTRUCT_0C
|
|
add hl, bc
|
|
ld [hl], $80
|
|
ret
|
|
|
|
.WaitTimer1: ; 296a4 (a:56a4)
|
|
ld hl, SPRITEANIMSTRUCT_0C
|
|
add hl, bc
|
|
ld a, [hl]
|
|
dec [hl]
|
|
and a
|
|
ret nz
|
|
call .JumptableNext
|
|
|
|
.MoveRight: ; 296af (a:56af)
|
|
ld hl, SPRITEANIMSTRUCT_XCOORD
|
|
add hl, bc
|
|
ld a, [hl]
|
|
cp $94
|
|
jr nc, .done_move_right
|
|
inc [hl]
|
|
ret
|
|
|
|
.done_move_right
|
|
call .JumptableNext
|
|
|
|
.MoveDown: ; 296bd (a:56bd)
|
|
ld hl, SPRITEANIMSTRUCT_YCOORD
|
|
add hl, bc
|
|
ld a, [hl]
|
|
cp $4c
|
|
jr nc, .done_move_down
|
|
inc [hl]
|
|
ret
|
|
|
|
.done_move_down
|
|
ld hl, SPRITEANIMSTRUCT_INDEX
|
|
add hl, bc
|
|
ld [hl], $0
|
|
ret
|
|
|
|
.MoveUp: ; 296cf (a:56cf)
|
|
ld hl, SPRITEANIMSTRUCT_YCOORD
|
|
add hl, bc
|
|
ld a, [hl]
|
|
cp $2c
|
|
jr z, .done_move_up
|
|
dec [hl]
|
|
ret
|
|
|
|
.done_move_up
|
|
call .JumptableNext
|
|
|
|
.MoveLeft: ; 296dd (a:56dd)
|
|
ld hl, SPRITEANIMSTRUCT_XCOORD
|
|
add hl, bc
|
|
ld a, [hl]
|
|
cp $58
|
|
jr z, .done_move_left
|
|
dec [hl]
|
|
ret
|
|
|
|
.done_move_left
|
|
call .JumptableNext
|
|
ld hl, SPRITEANIMSTRUCT_0C
|
|
add hl, bc
|
|
ld [hl], $80
|
|
ret
|
|
|
|
.WaitTimer2: ; 296f2 (a:56f2)
|
|
ld hl, SPRITEANIMSTRUCT_0C
|
|
add hl, bc
|
|
ld a, [hl]
|
|
dec [hl]
|
|
and a
|
|
ret nz
|
|
ld hl, SPRITEANIMSTRUCT_INDEX
|
|
add hl, bc
|
|
ld [hl], $0
|
|
ret
|
|
|
|
; 29701 (a:5701)
|
|
|
|
TradeAnim_SentToOTText: ; 29701
|
|
ld a, [wLinkMode]
|
|
cp LINK_TIMECAPSULE
|
|
jr z, .time_capsule
|
|
ld hl, .Text_MonName
|
|
call PrintText
|
|
ld c, 189
|
|
call DelayFrames
|
|
ld hl, .Text_WasSentTo
|
|
call PrintText
|
|
call TradeAnim_Wait80Frames
|
|
ld c, 128
|
|
call DelayFrames
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ret
|
|
|
|
.time_capsule
|
|
ld hl, .Text_WasSentTo
|
|
call PrintText
|
|
call TradeAnim_Wait80Frames
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ret
|
|
|
|
; 29732
|
|
|
|
.Text_WasSentTo: ; 0x29732
|
|
; was sent to @ .
|
|
text_jump UnknownText_0x1bc6e9
|
|
db "@"
|
|
; 0x29737
|
|
|
|
.Text_MonName: ; 0x29737
|
|
;
|
|
text_jump UnknownText_0x1bc701
|
|
db "@"
|
|
; 0x2973c
|
|
|
|
TradeAnim_OTBidsFarewell: ; 2973c
|
|
ld hl, .Text_BidsFarewellToMon
|
|
call PrintText
|
|
call TradeAnim_Wait80Frames
|
|
ld hl, .Text_MonName
|
|
call PrintText
|
|
call TradeAnim_Wait80Frames
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ret
|
|
|
|
; 29752
|
|
|
|
.Text_BidsFarewellToMon: ; 0x29752
|
|
; bids farewell to
|
|
text_jump UnknownText_0x1bc703
|
|
db "@"
|
|
; 0x29757
|
|
|
|
.Text_MonName: ; 0x29757
|
|
; .
|
|
text_jump UnknownText_0x1bc719
|
|
db "@"
|
|
; 0x2975c
|
|
|
|
TradeAnim_TakeCareOfText: ; 2975c
|
|
call WaitTop
|
|
hlcoord 0, 10
|
|
ld bc, 8 * SCREEN_WIDTH
|
|
ld a, " "
|
|
call ByteFill
|
|
call WaitBGMap
|
|
ld hl, .Text_TakeGoodCareOfMon
|
|
call PrintText
|
|
call TradeAnim_Wait80Frames
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ret
|
|
|
|
; 2977a
|
|
|
|
.Text_TakeGoodCareOfMon: ; 0x2977a
|
|
; Take good care of @ .
|
|
text_jump UnknownText_0x1bc71f
|
|
db "@"
|
|
; 0x2977f
|
|
|
|
TradeAnim_OTSendsText1: ; 2977f
|
|
ld hl, .Text_ForYourMon
|
|
call PrintText
|
|
call TradeAnim_Wait80Frames
|
|
ld hl, .Text_OTSends
|
|
call PrintText
|
|
call TradeAnim_Wait80Frames
|
|
ld c, 14
|
|
call DelayFrames
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ret
|
|
|
|
; 2979a
|
|
|
|
.Text_ForYourMon: ; 0x2979a
|
|
; For @ 's @ ,
|
|
text_jump UnknownText_0x1bc739
|
|
db "@"
|
|
; 0x2979f
|
|
|
|
.Text_OTSends: ; 0x2979f
|
|
; sends @ .
|
|
text_jump UnknownText_0x1bc74c
|
|
db "@"
|
|
; 0x297a4
|
|
|
|
TradeAnim_OTSendsText2: ; 297a4
|
|
ld hl, .Text_WillTrade
|
|
call PrintText
|
|
call TradeAnim_Wait80Frames
|
|
ld hl, .Text_ForYourMon
|
|
call PrintText
|
|
call TradeAnim_Wait80Frames
|
|
ld c, 14
|
|
call DelayFrames
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ret
|
|
|
|
; 297bf
|
|
|
|
.Text_WillTrade: ; 0x297bf
|
|
; will trade @ @
|
|
text_jump UnknownText_0x1bc75e
|
|
db "@"
|
|
; 0x297c4
|
|
|
|
.Text_ForYourMon: ; 0x297c4
|
|
; for @ 's @ .
|
|
text_jump UnknownText_0x1bc774
|
|
db "@"
|
|
; 0x297c9
|
|
|
|
TradeAnim_Wait80Frames: ; 297c9
|
|
ld c, 80
|
|
call DelayFrames
|
|
ret
|
|
|
|
; 297cf
|
|
|
|
TradeAnim_BlankTileMap: ; 297cf
|
|
hlcoord 0, 0
|
|
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
|
|
ld a, " "
|
|
call ByteFill
|
|
ret
|
|
|
|
; 297db
|
|
|
|
TradeAnim_CopyBoxFromDEtoHL: ; 297db
|
|
.row
|
|
push bc
|
|
push hl
|
|
.col
|
|
ld a, [de]
|
|
inc de
|
|
ld [hli], a
|
|
dec c
|
|
jr nz, .col
|
|
pop hl
|
|
ld bc, SCREEN_WIDTH
|
|
add hl, bc
|
|
pop bc
|
|
dec b
|
|
jr nz, .row
|
|
ret
|
|
|
|
; 297ed
|
|
|
|
TradeAnim_NormalPals: ; 297ed
|
|
ld a, [hSGB]
|
|
and a
|
|
ld a, %11100100 ; 3,2,1,0
|
|
jr z, .not_sgb
|
|
ld a, $f0
|
|
|
|
.not_sgb
|
|
call DmgToCgbObjPal0
|
|
ld a, %11100100 ; 3,2,1,0
|
|
call DmgToCgbBGPals
|
|
ret
|
|
|
|
; 297ff
|
|
|
|
LinkTradeAnim_LoadTradePlayerNames: ; 297ff
|
|
push de
|
|
ld de, wLinkPlayer1Name
|
|
ld bc, NAME_LENGTH
|
|
call CopyBytes
|
|
pop hl
|
|
ld de, wLinkPlayer2Name
|
|
ld bc, NAME_LENGTH
|
|
call CopyBytes
|
|
ret
|
|
|
|
; 29814
|
|
|
|
LinkTradeAnim_LoadTradeMonSpecies: ; 29814
|
|
ld a, [hl]
|
|
ld [wLinkTradeSendmonSpecies], a
|
|
ld a, [de]
|
|
ld [wLinkTradeGetmonSpecies], a
|
|
ret
|
|
|
|
; 2981d
|
|
|
|
TradeAnim_FlashBGPals: ; 2981d
|
|
ld a, [wcf65]
|
|
and $7
|
|
ret nz
|
|
ld a, [rBGP]
|
|
xor %00111100
|
|
call DmgToCgbBGPals
|
|
ret
|
|
|
|
; 2982b
|
|
|
|
LoadTradeBallAndCableGFX: ; 2982b
|
|
call DelayFrame
|
|
ld de, TradeBallGFX
|
|
ld hl, VTiles0 tile $62
|
|
lb bc, BANK(TradeBallGFX), $6
|
|
call Request2bpp
|
|
ld de, TradePoofGFX
|
|
ld hl, VTiles0 tile $68
|
|
lb bc, BANK(TradePoofGFX), $c
|
|
call Request2bpp
|
|
ld de, TradeCableGFX
|
|
ld hl, VTiles0 tile $74
|
|
lb bc, BANK(TradeCableGFX), $4
|
|
call Request2bpp
|
|
xor a
|
|
ld hl, wSpriteAnimDict
|
|
ld [hli], a
|
|
ld [hl], $62
|
|
ret
|
|
|
|
; 2985a
|
|
|
|
LoadTradeBubbleGFX: ; 2985a
|
|
call DelayFrame
|
|
ld e, $3
|
|
callab LoadMenuMonIcon
|
|
ld de, TradeBubbleGFX
|
|
ld hl, VTiles0 tile $72
|
|
lb bc, BANK(TradeBubbleGFX), $4
|
|
call Request2bpp
|
|
xor a
|
|
ld hl, wSpriteAnimDict
|
|
ld [hli], a
|
|
ld [hl], $62
|
|
ret
|
|
|
|
; 29879
|
|
|
|
TradeAnim_WaitAnim: ; 29879
|
|
ld hl, wcf64
|
|
ld a, [hl]
|
|
and a
|
|
jr z, .done
|
|
dec [hl]
|
|
ret
|
|
|
|
.done
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ret
|
|
|
|
; 29886
|
|
|
|
TradeAnim_WaitAnim2: ; 29886
|
|
ld hl, wcf64
|
|
ld a, [hl]
|
|
and a
|
|
jr z, .done
|
|
dec [hl]
|
|
ret
|
|
|
|
.done
|
|
call TradeAnim_AdvanceScriptPointer
|
|
ret
|
|
|
|
; 29893
|
|
|
|
|
|
DebugTrade: ; 29893
|
|
; This function is unreferenced.
|
|
; It was meant for use in Japanese versions, so the
|
|
; constant used for copy length was changed by accident.
|
|
|
|
ld hl, .DebugTradeData
|
|
|
|
ld a, [hli]
|
|
ld [wPlayerTrademonSpecies], a
|
|
ld de, wPlayerTrademonSenderName
|
|
ld c, 11 + 2 ; jp: 6 + 2
|
|
.loop1
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
dec c
|
|
jr nz, .loop1
|
|
|
|
ld a, [hli]
|
|
ld [wOTTrademonSpecies], a
|
|
ld de, wOTTrademonSenderName
|
|
ld c, 11 + 2 ; jp: 6 + 2
|
|
.loop2
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
dec c
|
|
jr nz, .loop2
|
|
ret
|
|
|
|
; 298b5
|
|
|
|
.DebugTradeData: ; 298b5
|
|
db VENUSAUR, "ゲーフり@@", $23, $01 ; GAME FREAK
|
|
db CHARIZARD, "クりーチャ@", $56, $04 ; Creatures Inc.
|
|
; 298c7
|
|
|
|
|
|
TradeGameBoyTilemap: ; 298c7
|
|
; 6x8
|
|
db $31, $32, $32, $32, $32, $33
|
|
db $34, $35, $36, $36, $37, $38
|
|
db $34, $39, $3a, $3a, $3b, $38
|
|
db $3c, $3d, $3e, $3e, $3f, $40
|
|
db $41, $42, $43, $43, $44, $45
|
|
db $46, $47, $43, $48, $49, $4a
|
|
db $41, $43, $4b, $4c, $4d, $4e
|
|
db $4f, $50, $50, $50, $51, $52
|
|
; 297f7
|
|
|
|
TradeLinkTubeTilemap: ; 297f7
|
|
; 12x3
|
|
db $43, $55, $56, $53, $53, $53, $53, $53, $53, $53, $53, $53
|
|
db $43, $57, $58, $54, $54, $54, $54, $54, $54, $54, $54, $54
|
|
db $43, $59, $5a, $43, $43, $43, $43, $43, $43, $43, $43, $43
|
|
; 2991b
|
|
|
|
TradeArrowGFX: INCBIN "gfx/trade/arrow.2bpp"
|
|
TradeCableGFX: INCBIN "gfx/trade/cable.2bpp"
|
|
TradeBubbleGFX: INCBIN "gfx/trade/bubble.2bpp"
|
|
TradeGameBoyLZ: INCBIN "gfx/trade/game_boy.2bpp.lz"
|
|
TradeBallGFX: INCBIN "gfx/trade/ball.2bpp"
|
|
TradePoofGFX: INCBIN "gfx/trade/poof.2bpp"
|