Port pokered's more local system for trade animation scripts

Also factor out trade tilemaps
This commit is contained in:
Rangi
2020-07-17 16:43:41 -04:00
parent 59d9932255
commit de073374a6
6 changed files with 203 additions and 453 deletions

View File

@@ -9,6 +9,15 @@ TRADEANIM_LEFT_ARROW EQU "▼" ; $ee
const TRADEANIMSTATE_3 ; 3
TRADEANIMJUMPTABLE_LENGTH EQU const_value
add_tradeanim: MACRO
\1_TradeCmd:
dw \1
ENDM
tradeanim: MACRO
db (\1_TradeCmd - DoTradeAnimation.JumpTable) / 2
ENDM
TradeAnimation:
xor a
ld [wcf66], a
@@ -22,43 +31,43 @@ TradeAnimation:
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 TradeAnim_SetupGivemonScroll
tradeanim TradeAnim_ShowGivemonData
tradeanim TradeAnim_DoGivemonScroll
tradeanim TradeAnim_Wait80
tradeanim TradeAnim_Wait96
tradeanim TradeAnim_Poof
tradeanim TradeAnim_RockingBall
tradeanim TradeAnim_EnterLinkTube1
tradeanim TradeAnim_WaitAnim
tradeanim TradeAnim_BulgeThroughTube
tradeanim TradeAnim_WaitAnim
tradeanim TradeAnim_TextboxScrollStart
tradeanim TradeAnim_GiveTrademonSFX
tradeanim TradeAnim_TubeToOT1
tradeanim TradeAnim_SentToOTText
tradeanim TradeAnim_ScrollOutRight
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
tradeanim TradeAnim_OTSendsText1
tradeanim TradeAnim_OTBidsFarewell
tradeanim TradeAnim_Wait40
tradeanim TradeAnim_ScrollOutRight
tradeanim TradeAnim_GetTrademonSFX
tradeanim TradeAnim_TubeToPlayer1
tradeanim TradeAnim_EnterLinkTube1
tradeanim TradeAnim_DropBall
tradeanim TradeAnim_ExitLinkTube
tradeanim TradeAnim_WaitAnim
tradeanim TradeAnim_ShowGetmonData
tradeanim TradeAnim_Poof
tradeanim TradeAnim_WaitAnim
tradeanim TradeAnim_FrontpicScrollStart
tradeanim TradeAnim_AnimateFrontpic
tradeanim TradeAnim_Wait80IfOTEgg
tradeanim TradeAnim_TextboxScrollStart
tradeanim TradeAnim_TakeCareOfText
tradeanim TradeAnim_ScrollOutRight
tradeanim TradeAnim_End
TradeAnimationPlayer2:
xor a
@@ -73,42 +82,42 @@ TradeAnimationPlayer2:
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 TradeAnim_OTSendsText2
tradeanim TradeAnim_OTBidsFarewell
tradeanim TradeAnim_Wait40
tradeanim TradeAnim_ScrollOutRight
tradeanim TradeAnim_GetTrademonSFX
tradeanim TradeAnim_TubeToOT1
tradeanim TradeAnim_EnterLinkTube1
tradeanim TradeAnim_DropBall
tradeanim TradeAnim_ExitLinkTube
tradeanim TradeAnim_WaitAnim
tradeanim TradeAnim_ShowGetmonData
tradeanim TradeAnim_Poof
tradeanim TradeAnim_WaitAnim
tradeanim TradeAnim_FrontpicScrollStart
tradeanim TradeAnim_AnimateFrontpic
tradeanim TradeAnim_Wait180IfOTEgg
tradeanim TradeAnim_TextboxScrollStart
tradeanim TradeAnim_TakeCareOfText
tradeanim TradeAnim_ScrollOutRight
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
tradeanim TradeAnim_SetupGivemonScroll
tradeanim TradeAnim_ShowGivemonData
tradeanim TradeAnim_DoGivemonScroll
tradeanim TradeAnim_Wait40
tradeanim TradeAnim_Poof
tradeanim TradeAnim_RockingBall
tradeanim TradeAnim_EnterLinkTube1
tradeanim TradeAnim_WaitAnim
tradeanim TradeAnim_BulgeThroughTube
tradeanim TradeAnim_WaitAnim
tradeanim TradeAnim_TextboxScrollStart
tradeanim TradeAnim_GiveTrademonSFX
tradeanim TradeAnim_TubeToPlayer1
tradeanim TradeAnim_SentToOTText
tradeanim TradeAnim_ScrollOutRight
tradeanim TradeAnim_End
RunTradeAnimScript:
ld hl, wTradeAnimAddress
@@ -231,55 +240,54 @@ DoTradeAnimation:
jumptable .JumpTable, wJumptableIndex
.JumpTable:
; entries correspond to tradeanim_* constants (see macros/scripts/trade_anims.asm)
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
add_tradeanim TradeAnim_AdvanceScriptPointer ; 00
add_tradeanim TradeAnim_ShowGivemonData ; 01
add_tradeanim TradeAnim_ShowGetmonData ; 02
add_tradeanim TradeAnim_EnterLinkTube1 ; 03
add_tradeanim TradeAnim_EnterLinkTube2 ; 04
add_tradeanim TradeAnim_ExitLinkTube ; 05
add_tradeanim TradeAnim_TubeToOT1 ; 06
add_tradeanim TradeAnim_TubeToOT2 ; 07
add_tradeanim TradeAnim_TubeToOT3 ; 08
add_tradeanim TradeAnim_TubeToOT4 ; 09
add_tradeanim TradeAnim_TubeToOT5 ; 0a
add_tradeanim TradeAnim_TubeToOT6 ; 0b
add_tradeanim TradeAnim_TubeToOT7 ; 0c
add_tradeanim TradeAnim_TubeToOT8 ; 0d
add_tradeanim TradeAnim_TubeToPlayer1 ; 0e
add_tradeanim TradeAnim_TubeToPlayer2 ; 0f
add_tradeanim TradeAnim_TubeToPlayer3 ; 10
add_tradeanim TradeAnim_TubeToPlayer4 ; 11
add_tradeanim TradeAnim_TubeToPlayer5 ; 12
add_tradeanim TradeAnim_TubeToPlayer6 ; 13
add_tradeanim TradeAnim_TubeToPlayer7 ; 14
add_tradeanim TradeAnim_TubeToPlayer8 ; 15
add_tradeanim TradeAnim_SentToOTText ; 16
add_tradeanim TradeAnim_OTBidsFarewell ; 17
add_tradeanim TradeAnim_TakeCareOfText ; 18
add_tradeanim TradeAnim_OTSendsText1 ; 19
add_tradeanim TradeAnim_OTSendsText2 ; 1a
add_tradeanim TradeAnim_SetupGivemonScroll ; 1b
add_tradeanim TradeAnim_DoGivemonScroll ; 1c
add_tradeanim TradeAnim_FrontpicScrollStart ; 1d
add_tradeanim TradeAnim_TextboxScrollStart ; 1e
add_tradeanim TradeAnim_ScrollOutRight ; 1f
add_tradeanim TradeAnim_ScrollOutRight2 ; 20
add_tradeanim TradeAnim_Wait80 ; 21
add_tradeanim TradeAnim_Wait40 ; 22
add_tradeanim TradeAnim_RockingBall ; 23
add_tradeanim TradeAnim_DropBall ; 24
add_tradeanim TradeAnim_WaitAnim ; 25
add_tradeanim TradeAnim_WaitAnim2 ; 26
add_tradeanim TradeAnim_Poof ; 27
add_tradeanim TradeAnim_BulgeThroughTube ; 28
add_tradeanim TradeAnim_GiveTrademonSFX ; 29
add_tradeanim TradeAnim_GetTrademonSFX ; 2a
add_tradeanim TradeAnim_End ; 2b
add_tradeanim TradeAnim_AnimateFrontpic ; 2c
add_tradeanim TradeAnim_Wait96 ; 2d
add_tradeanim TradeAnim_Wait80IfOTEgg ; 2e
add_tradeanim TradeAnim_Wait180IfOTEgg ; 2f
TradeAnim_IncrementJumptableIndex:
ld hl, wJumptableIndex
@@ -840,32 +848,32 @@ TradeAnim_ShowFrontpic:
call WaitBGMap
ret
TraideAnim_Wait80:
TradeAnim_Wait80:
ld c, 80
call DelayFrames
call TradeAnim_AdvanceScriptPointer
ret
TraideAnim_Wait40:
TradeAnim_Wait40:
ld c, 40
call DelayFrames
call TradeAnim_AdvanceScriptPointer
ret
TraideAnim_Wait96:
TradeAnim_Wait96:
ld c, 96
call DelayFrames
call TradeAnim_AdvanceScriptPointer
ret
TraideAnim_Wait80IfOTEgg:
TradeAnim_Wait80IfOTEgg:
call IsOTTrademonEgg
ret nz
ld c, 80
call DelayFrames
ret
TraideAnim_Wait180IfOTEgg:
TradeAnim_Wait180IfOTEgg:
call IsOTTrademonEgg
ret nz
ld c, 180
@@ -1421,36 +1429,22 @@ DebugTrade: ; unreferenced
ret
debugtrade: MACRO
; species, ot name, ot id (?)
; species, ot name, ot id
db \1, \2
dw \3
ENDM
.DebugTradeData:
debugtrade VENUSAUR, "ゲーフり@@", $0123 ; GAME FREAK
debugtrade VENUSAUR, "ゲーフり@@", $0123 ; GAME FREAK
debugtrade CHARIZARD, "クりーチャ@", $0456 ; Creatures Inc.
TradeGameBoyTilemap:
; 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
TradeGameBoyTilemap: INCBIN "gfx/trade/game_boy.tilemap" ; 6x8
TradeLinkTubeTilemap: INCBIN "gfx/trade/link_cable.tilemap" ; 12x3
TradeLinkTubeTilemap:
; 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
TradeArrowRightGFX: INCBIN "gfx/trade/arrow_right.2bpp"
TradeArrowLeftGFX: INCBIN "gfx/trade/arrow_left.2bpp"
TradeCableGFX: INCBIN "gfx/trade/cable.2bpp"
TradeBubbleGFX: INCBIN "gfx/trade/bubble.2bpp"
TradeGameBoyLZ: INCBIN "gfx/trade/game_boy_cable.2bpp.lz"
TradeBallGFX: INCBIN "gfx/trade/ball.2bpp"
TradePoofGFX: INCBIN "gfx/trade/poof.2bpp"
TradeArrowRightGFX: INCBIN "gfx/trade/arrow_right.2bpp"
TradeArrowLeftGFX: INCBIN "gfx/trade/arrow_left.2bpp"
TradeCableGFX: INCBIN "gfx/trade/cable.2bpp"
TradeBubbleGFX: INCBIN "gfx/trade/bubble.2bpp"
TradeGameBoyLZ: INCBIN "gfx/trade/game_boy_cable.2bpp.lz"
TradeBallGFX: INCBIN "gfx/trade/ball.2bpp"
TradePoofGFX: INCBIN "gfx/trade/poof.2bpp"