pokeruby/data/trade.s
2016-12-20 02:59:46 -08:00

775 lines
16 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
.byte 0x90, 0x08, 0x00, 0x00
.byte 0xC0, 0x3A, 0x00, 0x00
.byte 0x1C, 0x00, 0x00, 0x00
.byte 0x30, 0x05, 0x00, 0x00
.byte 0x24, 0x00, 0x00, 0x00
.byte 0x64, 0x00, 0x00, 0x00
.byte 0xD8, 0x04, 0x00, 0x00
.align 1
gTradeMovesBoxTilemap:: @ 820ABF0
.incbin "graphics/trade/moves_box_map.bin"
.align 1
gTradePartyBoxTilemap:: @ 820ADEE
.incbin "graphics/trade/party_box_map.bin"
.align 2
gTradeStripesBG2Tilemap:: @ 820AFEC
.incbin "graphics/trade/stripes_bg2_map.bin"
.align 2
gTradeStripesBG3Tilemap:: @ 820B7EC
.incbin "graphics/trade/stripes_bg3_map.bin"
.align 2
gOamData_820BFEC:: @ 820BFEC
.2byte 0x4000
.2byte 0x8000
.2byte 0x0400
.align 2
gSpriteAnim_820BFF4:: @ 820BFF4
obj_image_anim_frame 0, 5
obj_image_anim_end
.align 2
gSpriteAnim_820BFFC:: @ 820BFFC
obj_image_anim_frame 8, 5
obj_image_anim_end
.align 2
gSpriteAnim_820C004:: @ 820C004
obj_image_anim_frame 16, 5
obj_image_anim_end
.align 2
gSpriteAnim_820C00C:: @ 820C00C
obj_image_anim_frame 24, 5
obj_image_anim_end
.align 2
gSpriteAnim_820C014:: @ 820C014
obj_image_anim_frame 32, 5
obj_image_anim_end
.align 2
gSpriteAnim_820C01C:: @ 820C01C
obj_image_anim_frame 40, 5
obj_image_anim_end
.align 2
gSpriteAnimTable_820C024:: @ 820C024
.4byte gSpriteAnim_820BFF4
.4byte gSpriteAnim_820BFFC
.4byte gSpriteAnim_820C004
.4byte gSpriteAnim_820C00C
.4byte gSpriteAnim_820C014
.4byte gSpriteAnim_820C01C
.align 2
TradeScreenTextPalette: @ 820C03C
.incbin "graphics/trade/text1.gbapal"
.incbin "graphics/trade/text2.gbapal" @ unused?
.align 2
gUnknown_0820C07C:: @ 820C07C
obj_tiles 0x0201d000, 256, 0x00c8
obj_tiles 0x0201d100, 256, 0x00c9
obj_tiles 0x0201d200, 256, 0x00ca
obj_tiles 0x0201d300, 256, 0x00cb
obj_tiles 0x0201d400, 256, 0x00cc
obj_tiles 0x0201d500, 256, 0x00cd
obj_tiles 0x0201d600, 256, 0x00ce
obj_tiles 0x0201d700, 256, 0x00cf
obj_tiles 0x0201d800, 256, 0x00d0
obj_tiles 0x0201d900, 256, 0x00d1
obj_tiles 0x0201da00, 256, 0x00d2
obj_tiles 0x0201db00, 256, 0x00d3
obj_tiles 0x0201dc00, 256, 0x00d4
.align 2
gSpritePalette_TradeScreenText:: @ 820C0E4
obj_pal TradeScreenTextPalette, 4925
.align 2
gSpriteTemplate_820C0EC:: @ 820C0EC
spr_template 200, 4925, gOamData_820BFEC, gSpriteAnimTable_820C024, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
.align 2
gOamData_820C104:: @ 820C104
.2byte 0x4000
.2byte 0xC000
.2byte 0x0400
.align 2
gSpriteAnim_820C10C:: @ 820C10C
obj_image_anim_frame 0, 5
obj_image_anim_end
.align 2
gSpriteAnim_820C114:: @ 820C114
obj_image_anim_frame 32, 5
obj_image_anim_end
.align 2
gSpriteAnimTable_820C11C:: @ 820C11C
.4byte gSpriteAnim_820C10C
.4byte gSpriteAnim_820C114
.align 2
gUnknown_0820C124:: @ 820C124
obj_tiles gUnknown_08EA1DEC, 0x800, 300
.align 2
gUnknown_0820C12C:: @ 820C12C
obj_pal gUnknown_08EA0328, 2345
.align 2
gSpriteTemplate_820C134:: @ 820C134
spr_template 300, 2345, gOamData_820C104, gSpriteAnimTable_820C11C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
.align 2
gUnknown_0820C14C:: @ 820C14C
.4byte TradeText_Cancel
.4byte TradeText_ChoosePoke
.4byte TradeText_Summary1
.4byte TradeText_Trade1
.4byte TradeText_CancelTradePrompt
.4byte TradeText_PressBToExit
@ This is used to determine the next mon to select when the D-Pad is
@ pressed in a given direction.
@ Note that the mons are laid out like this.
@ 0-5 are the player's party and 6-11 are the trading partner's party.
@ 12 is the cancel button.
@ 0 1 6 7
@ 2 3 8 9
@ 4 5 10 11
@ 12
gTradeNextSelectedMonTable:: @ 820C164
@ 0
.byte 4, 2, 12, 12, 0, 0 @ up
.byte 2, 4, 12, 12, 0, 0 @ down
.byte 7, 6, 1, 0, 0, 0 @ left
.byte 1, 6, 7, 0, 0, 0 @ right
@ 1
.byte 5, 3, 12, 12, 0, 0 @ up
.byte 3, 5, 12, 12, 0, 0 @ down
.byte 0, 7, 6, 1, 0, 0 @ left
.byte 6, 7, 0, 1, 0, 0 @ right
@ 2
.byte 0, 0, 0, 0, 0, 0 @ up
.byte 4, 0, 0, 0, 0, 0 @ down
.byte 9, 8, 7, 6, 0, 0 @ left
.byte 3, 1, 0, 0, 0, 0 @ right
@ 3
.byte 1, 1, 1, 1, 0, 0 @ up
.byte 5, 1, 1, 1, 0, 0 @ down
.byte 2, 9, 8, 7, 0, 0 @ left
.byte 8, 9, 6, 6, 0, 0 @ right
@ 4
.byte 2, 2, 2, 2, 0, 0 @ up
.byte 0, 0, 0, 0, 0, 0 @ down
.byte 11, 10, 9, 8, 7, 6 @ left
.byte 5, 3, 1, 0, 0, 0 @ right
@ 5
.byte 3, 3, 3, 3, 0, 0 @ up
.byte 1, 1, 1, 1, 0, 0 @ down
.byte 4, 4, 4, 4, 0, 0 @ left
.byte 10, 8, 6, 0, 0, 0 @ right
@ 6
.byte 10, 8, 12, 0, 0, 0 @ up
.byte 8, 10, 12, 0, 0, 0 @ down
.byte 1, 0, 0, 0, 0, 0 @ left
.byte 7, 0, 1, 0, 0, 0 @ right
@ 7
.byte 12, 0, 0, 0, 0, 0 @ up
.byte 9, 12, 0, 0, 0, 0 @ down
.byte 6, 0, 0, 0, 0, 0 @ left
.byte 0, 0, 0, 0, 0, 0 @ right
@ 8
.byte 6, 0, 0, 0, 0, 0 @ up
.byte 10, 6, 0, 0, 0, 0 @ down
.byte 3, 2, 1, 0, 0, 0 @ left
.byte 9, 7, 0, 0, 0, 0 @ right
@ 9
.byte 7, 0, 0, 0, 0, 0 @ up
.byte 11, 12, 0, 0, 0, 0 @ down
.byte 8, 0, 0, 0, 0, 0 @ left
.byte 2, 1, 0, 0, 0, 0 @ right
@ 10
.byte 8, 0, 0, 0, 0, 0 @ up
.byte 6, 0, 0, 0, 0, 0 @ down
.byte 5, 4, 3, 2, 1, 0 @ left
.byte 11, 9, 7, 0, 0, 0 @ right
@ 11
.byte 9, 0, 0, 0, 0, 0 @ up
.byte 12, 0, 0, 0, 0, 0 @ down
.byte 10, 0, 0, 0, 0, 0 @ left
.byte 4, 2, 0, 0, 0, 0 @ right
@ 12
.byte 11, 9, 7, 6, 0, 0 @ up
.byte 7, 6, 0, 0, 0, 0 @ down
.byte 12, 0, 0, 0, 0, 0 @ left
.byte 12, 0, 0, 0, 0, 0 @ right
@ The coordinates are in units of tiles.
@ These are used for both mon icons and the selected mon cursor,
@ but the origins of the coordinates differ.
gTradeMonSpriteCoords:: @ 820C29C
@ left-side party
.byte 1, 5
.byte 8, 5
.byte 1, 10
.byte 8, 10
.byte 1, 15
.byte 8, 15
@ right-side party
.byte 16, 5
.byte 23, 5
.byte 16, 10
.byte 23, 10
.byte 16, 15
.byte 23, 15
@ cancel button
.byte 23, 18
gTradeLevelDisplayCoords:: @ 820C2B6
@ left-side party
.byte 5, 4
.byte 12, 4
.byte 5, 9
.byte 12, 9
.byte 5, 14
.byte 12, 14
@ right-side party
.byte 20, 4
.byte 27, 4
.byte 20, 9
.byte 27, 9
.byte 20, 14
.byte 27, 14
gTradeMonBoxCoords:: @ 820C2CE
@ left-side party
.byte 1, 3
.byte 8, 3
.byte 1, 8
.byte 8, 8
.byte 1, 13
.byte 8, 13
@ right-side party
.byte 16, 3
.byte 23, 3
.byte 16, 8
.byte 23, 8
.byte 16, 13
.byte 23, 13
gTradeUnknownSpriteCoords:: @ 820C2E6
.byte 59, 10
.byte 179, 10
.byte 59, 10
.byte 179, 10
.align 2
gUnknown_0820C2F0:: @ 820C2F0
.4byte TradeText_LinkStandby
.4byte TradeText_TradeCancelled
.4byte TradeText_OnlyPoke
.4byte TradeText_NonTradablePoke
.4byte TradeText_WaitingForFriend
.4byte TradeText_WantToTrade
gTradeMessageWindowRects:: @ 820C308
.byte 8, 7, 22, 12
.byte 8, 7, 22, 12
.byte 6, 7, 24, 12
.byte 6, 7, 24, 12
.byte 8, 7, 22, 12
.byte 7, 7, 23, 12
.align 2
gUnknown_0820C320:: @ 820C320
.4byte TradeText_Summary2, sub_804A9F4 @unknown
.4byte TradeText_Trade2, sub_804AA00
gUnknown_0820C330:: @ 820C330
.byte 0, 14
.byte 15, 29
gUnknown_0820C334:: @ 820C334
.byte 3, 5
.byte 3, 7
.byte 18, 5
.byte 18, 7
gOtherText_Terminator::
.string "$"
gOtherText_MaleSymbol3:: @ 820C33D
.string "$"
gOtherText_FemaleSymbol3:: @ 820C33F
.string "$"
gOtherText_GenderlessSymbol:: @ 820C341
.string "$$"
.align 2
.4byte gTileBuffer
@ Unused debug strings?
.string " $", 13
.string " $", 13
.string "$", 13
.string "OBJ$", 13
.string "$", 13
.string "OBJADD$", 13
.string "ADD$", 13
.string "$", 13
@ Shedinja's Japanese name
@ sub_8048D44 compares a pokemon name with this string
gUnknown_0820C3B0:: @ 820C3B0
.string "$"
.string " $" @ trade completed
.string " $" @ it's no good (trade failed maybe?)
gUnknown_0820C3D1:: @ 820C3D1
.byte 4, 3
.byte 19, 3
.align 2
gTradeBallPalette:: @ 820C3D8
.incbin "graphics/trade/ball.gbapal"
.align 2
gTradeBallTiles:: @ 820C3F8
.incbin "graphics/trade/ball.4bpp"
.align 2
gUnknown_0820C9F8:: @ 820C9F8
.incbin "graphics/trade/unknown.gbapal"
.incbin "graphics/trade/gba.gbapal"
.incbin "graphics/trade/shadow.gbapal"
.space 32
.incbin "graphics/trade/misc.gbapal"
.align 2
gUnknown_0820CA98:: @ 820CA98
.incbin "graphics/trade/gba.4bpp"
.incbin "graphics/trade/shadow.4bpp"
.align 2
gUnknown_0820DD98:: @ 820DD98
.incbin "graphics/trade/pokeball_symbol.8bpp"
.align 2
gUnknown_0820F798:: @ 820F798
.incbin "graphics/trade/shadow_map.bin"
.align 2
gUnknown_08210798:: @ 8210798
.incbin "graphics/trade/gba_map.bin"
.align 2
gUnknown_08211798:: @ 8211798
.incbin "graphics/trade/cable_closeup_map.bin"
.align 2
gUnknown_08211F98:: @ 8211F98
.incbin "graphics/trade/pokeball_symbol_map.bin"
.incbin "graphics/unused/unknown/8212098.gbapal"
.align 2
gTradeCableEndPalette:: @ 82120B8
.incbin "graphics/trade/cable_end.gbapal"
.incbin "graphics/unused/unknown/82120D8.gbapal"
.space 32
.align 2
gTradeGlowPalette:: @ 8212118
.incbin "graphics/trade/glow.gbapal"
.align 2
gTradeGlow1Tiles:: @ 8212138
.incbin "graphics/trade/glow1.4bpp"
.align 2
gTradeGlow2Tiles:: @ 8212338
.incbin "graphics/trade/glow2.4bpp"
.align 2
gTradeCableEndTiles:: @ 8212538
.incbin "graphics/trade/cable_end.4bpp"
.align 2
gTradeGBAScreenTiles:: @ 8212738
.incbin "graphics/trade/gba_screen.4bpp"
.align 2
gUnknown_08213738:: @ 8213738
.incbin "graphics/trade/gba_affine.8bpp"
.align 2
gUnknown_08215778:: @ 8215778
.incbin "graphics/trade/gba_affine_map.bin"
.align 2
gOamData_8215878:: @ 8215878
.2byte 0x0100
.2byte 0x4000
.2byte 0x0000
.align 2
gSpriteAnim_8215880:: @ 8215880
obj_image_anim_frame 0, 3
obj_image_anim_frame 4, 3
obj_image_anim_frame 8, 3
obj_image_anim_frame 12, 3
obj_image_anim_frame 16, 3
obj_image_anim_frame 20, 3
obj_image_anim_frame 24, 3
obj_image_anim_frame 28, 3
obj_image_anim_frame 32, 3
obj_image_anim_frame 36, 3
obj_image_anim_frame 40, 3
obj_image_anim_frame 44, 3
obj_image_anim_loop 1
obj_image_anim_frame 0, 3
obj_image_anim_end
.align 2
gSpriteAnim_82158BC:: @ 82158BC
obj_image_anim_frame 0, 3
obj_image_anim_frame 4, 3
obj_image_anim_frame 8, 3
obj_image_anim_frame 12, 3
obj_image_anim_frame 16, 3
obj_image_anim_frame 20, 3
obj_image_anim_frame 24, 3
obj_image_anim_frame 28, 3
obj_image_anim_frame 32, 3
obj_image_anim_frame 36, 3
obj_image_anim_frame 40, 3
obj_image_anim_frame 44, 3
obj_image_anim_loop 2
obj_image_anim_frame 0, 3
obj_image_anim_end
.align 2
gSpriteAnimTable_82158F8:: @ 82158F8
.4byte gSpriteAnim_8215880
.4byte gSpriteAnim_82158BC
.align 2
gSpriteAffineAnim_8215900:: @ 8215900
obj_rot_scal_anim_frame 0x0, 0x0, 0, 1
obj_rot_scal_anim_end
.align 2
gSpriteAffineAnim_8215910:: @ 8215910
obj_rot_scal_anim_frame 0xFFF8, 0x0, 0, 20
obj_rot_scal_anim_end
.align 2
gSpriteAffineAnim_8215920:: @ 8215920
obj_rot_scal_anim_frame 0x60, 0x100, 0, 0
obj_rot_scal_anim_frame 0x0, 0x0, 0, 5
obj_rot_scal_anim_frame 0x8, 0x0, 0, 20
obj_rot_scal_anim_end
.align 2
gSpriteAffineAnimTable_8215940:: @ 8215940
.4byte gSpriteAffineAnim_8215900
.4byte gSpriteAffineAnim_8215910
.4byte gSpriteAffineAnim_8215920
.align 2
gUnknown_0821594C:: @ 821594C
obj_tiles gTradeBallTiles, 0x600, 5557
.align 2
gUnknown_08215954:: @ 8215954
obj_pal gTradeBallPalette, 5558
.align 2
gSpriteTemplate_821595C:: @ 821595C
spr_template 5557, 5558, gOamData_8215878, gSpriteAnimTable_82158F8, NULL, gSpriteAffineAnimTable_8215940, sub_804D6BC
.align 2
gOamData_8215974:: @ 8215974
.2byte 0x0500
.2byte 0x8000
.2byte 0x0400
.align 2
gSpriteAnim_821597C:: @ 821597C
obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
obj_image_anim_end
.align 2
gSpriteAnimTable_8215984:: @ 8215984
.4byte gSpriteAnim_821597C
.align 2
gSpriteAffineAnim_8215988:: @ 8215988
obj_rot_scal_anim_frame 0xFFF6, 0xFFF6, 0, 5
obj_rot_scal_anim_frame 0xA, 0xA, 0, 5
obj_rot_scal_anim_jump 0
.align 2
gSpriteAffineAnimTable_82159A0:: @ 82159A0
.4byte gSpriteAffineAnim_8215988
.align 2
gUnknown_082159A4:: @ 82159A4
obj_tiles gTradeGlow1Tiles, 0x200, 5550
.align 2
gUnknown_082159AC:: @ 82159AC
obj_pal gTradeGlowPalette, 5551
.align 2
gUnknown_082159B4:: @ 82159B4
obj_pal gTradeCableEndPalette, 5555
.align 2
gSpriteTemplate_82159BC:: @ 82159BC
spr_template 5550, 5551, gOamData_8215974, gSpriteAnimTable_8215984, NULL, gSpriteAffineAnimTable_82159A0, sub_804B058
.align 2
gOamData_82159D4:: @ 82159D4
.2byte 0x8000
.2byte 0x8000
.2byte 0x0400
.align 2
gSpriteAnim_82159DC:: @ 82159DC
obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
obj_image_anim_end
.align 2
gSpriteAnim_82159E4:: @ 82159E4
obj_image_anim_frame 8, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
obj_image_anim_end
.align 2
gSpriteAnimTable_82159EC:: @ 82159EC
.4byte gSpriteAnim_82159DC
.4byte gSpriteAnim_82159E4
.align 2
gUnknown_082159F4:: @ 82159F4
obj_tiles gTradeGlow2Tiles, 0x300, 5552
.align 2
gSpriteTemplate_82159FC:: @ 82159FC
spr_template 5552, 5551, gOamData_82159D4, gSpriteAnimTable_82159EC, NULL, gDummySpriteAffineAnimTable, sub_804B07C
.align 2
gOamData_8215A14:: @ 8215A14
.2byte 0x8000
.2byte 0x8000
.2byte 0x0400
.align 2
gSpriteAnim_8215A1C:: @ 8215A1C
obj_image_anim_frame 0, 10
obj_image_anim_end
.align 2
gSpriteAnimTable_8215A24:: @ 8215A24
.4byte gSpriteAnim_8215A1C
.align 2
gUnknown_08215A28:: @ 8215A28
obj_tiles gTradeCableEndTiles, 0x100, 5554
.align 2
gSpriteTemplate_8215A30:: @ 8215A30
spr_template 5554, 5555, gOamData_8215A14, gSpriteAnimTable_8215A24, NULL, gDummySpriteAffineAnimTable, sub_804B0BC
.align 2
gOamData_8215A48:: @ 8215A48
.2byte 0x4000
.2byte 0xC000
.2byte 0x0400
.align 2
gSpriteAnim_8215A50:: @ 8215A50
obj_image_anim_frame 0, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
obj_image_anim_frame 32, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
obj_image_anim_frame 64, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
obj_image_anim_frame 96, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
obj_image_anim_frame 64, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
obj_image_anim_frame 32, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
obj_image_anim_frame 0, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
obj_image_anim_loop 8
obj_image_anim_end
.align 2
gSpriteAnimTable_8215A74:: @ 8215A74
.4byte gSpriteAnim_8215A50
.align 2
gUnknown_08215A78:: @ 8215A78
obj_tiles gTradeGBAScreenTiles, 0x1000, 5556
.align 2
gSpriteTemplate_8215A80:: @ 8215A80
spr_template 5556, 5555, gOamData_8215A48, gSpriteAnimTable_8215A74, NULL, gDummySpriteAffineAnimTable, sub_804B104
.align 1
gTradeGlow2PaletteAnimTable:: @ 8215A98
.2byte 0x7F12
.2byte 0x7F12
.2byte 0x7F12
.2byte 0x7FFF
.2byte 0x7FFF
.2byte 0x7FFF
.2byte 0x7F12
.2byte 0x7F12
.2byte 0x7F12
.2byte 0x7FFF
.2byte 0x7FFF
.2byte 0x7FFF
.align 2
gSpriteAffineAnim_8215AB0:: @ 8215AB0
obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
obj_rot_scal_anim_jump 0
.align 2
gSpriteAffineAnimTable_8215AC0:: @ 8215AC0
.4byte gSpriteAffineAnim_8215AB0
@ 8215AC4
.include "data/ingame_trades.inc"
gTradeBallVerticalVelocityTable:: @ 8215BA0
.byte 0
.byte 0
.byte 1
.byte 0
.byte 1
.byte 0
.byte 1
.byte 1
.byte 1
.byte 1
.byte 2
.byte 2
.byte 2
.byte 2
.byte 3
.byte 3
.byte 3
.byte 3
.byte 4
.byte 4
.byte 4
.byte 4
.byte -4
.byte -4
.byte -4
.byte -3
.byte -3
.byte -3
.byte -3
.byte -2
.byte -2
.byte -2
.byte -2
.byte -1
.byte -1
.byte -1
.byte -1
.byte 0
.byte -1
.byte 0
.byte -1
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 1
.byte 0
.byte 1
.byte 0
.byte 1
.byte 1
.byte 1
.byte 1
.byte 2
.byte 2
.byte 2
.byte 2
.byte 3
.byte 3
.byte 3
.byte 3
.byte 4
.byte 4
.byte 4
.byte 4
.byte -4
.byte -3
.byte -3
.byte -2
.byte -2
.byte -1
.byte -1
.byte -1
.byte 0
.byte -1
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 1
.byte 0
.byte 1
.byte 1
.byte 1
.byte 2
.byte 2
.byte 3
.byte 3
.byte 4
.byte -4
.byte -3
.byte -2
.byte -1
.byte -1
.byte -1
.byte 0
.byte 0
.byte 0
.byte 0
.byte 1
.byte 0
.byte 1
.byte 1
.byte 2
.byte 3