Finish trade_scene data

This commit is contained in:
PikalaxALT
2019-10-30 16:01:31 -04:00
parent 84e1b97eac
commit 4fae033d1a
6 changed files with 672 additions and 665 deletions
-174
View File
@@ -1,174 +0,0 @@
gInGameTrades:: @ 826CF8C
.string "MIMIEN$", 11
.align 1
.2byte SPECIES_MR_MIME @ species
.byte 20, 15, 17, 24, 23, 22 @ IVs
.byte FALSE @ has second ability
.align 2
.4byte 1985 @ OT ID
.byte 5, 5, 5, 30, 5 @ contest stats
.align 2
.4byte 0x00009cae @ personality
.2byte ITEM_NONE @ held item
.byte 255 @ mail index
.string "REYLEY$", 11
.byte MALE @ OT gender
.byte 10 @ sheen
.2byte SPECIES_ABRA @ species requested
.align 2
.string "ZYNX$", 11
.align 1
.2byte SPECIES_JYNX @ species
.byte 18, 17, 18, 22, 25, 21 @ IVs
.byte FALSE @ has second ability
.align 2
.4byte 36728 @ OT ID
.byte 5, 30, 5, 5, 5 @ contest stats
.align 2
.4byte 0x498a2e1d @ personality
.2byte ITEM_FAB_MAIL @ held item
.byte 0 @ mail index
.string "DONTAE$", 11
.byte MALE @ OT gender
.byte 10 @ sheen
.2byte SPECIES_POLIWHIRL @ species requested
.align 2
.string "MS. NIDO$", 11
.align 1
.2byte SPECIES_NIDORAN_F @ species
.byte 22, 18, 25, 19, 15, 22 @ IVs
.byte FALSE @ has second ability
.align 2
.4byte 63184 @ OT ID
.byte 5, 5, 5, 5, 30 @ contest stats
.align 2
.4byte 0x4c970b89 @ personality
.2byte ITEM_TINY_MUSHROOM @ held item
.byte 255 @ mail index
.string "SAIGE$", 11
.byte FEMALE @ OT gender
.byte 10 @ sheen
.2byte SPECIES_NIDORAN_M @ species requested
.align 2
.string "CH'DING$", 11
.align 1
.2byte SPECIES_FARFETCHD @ species
.byte 20, 25, 21, 24, 15, 20 @ IVs
.byte FALSE @ has second ability
.align 2
.4byte 8810 @ OT ID
.byte 30, 5, 5, 5, 5 @ contest stats
.align 2
.4byte 0x151943d7 @ personality
.2byte ITEM_STICK @ held item
.byte 255 @ mail index
.string "ELYSSA$", 11
.byte MALE @ OT gender
.byte 10 @ sheen
.2byte SPECIES_SPEAROW @ species requested
.align 2
.string "NINA$", 11
.align 1
.2byte SPECIES_NIDORINA @ species
.byte 22, 25, 18, 19, 22, 15 @ IVs
.byte FALSE @ has second ability
.align 2
.4byte 13637 @ OT ID
.byte 5, 5, 30, 5, 5 @ contest stats
.align 2
.4byte 0x00eeca15 @ personality
.2byte ITEM_NONE @ held item
.byte 255 @ mail index
.string "TURNER$", 11
.byte MALE @ OT gender
.byte 10 @ sheen
.2byte SPECIES_NIDORINO @ species requested
.align 2
.string "MARC$", 11
.align 1
.2byte SPECIES_LICKITUNG @ species
.byte 24, 19, 21, 15, 23, 21 @ IVs
.byte FALSE @ has second ability
.align 2
.4byte 1239 @ OT ID
.byte 5, 5, 5, 5, 30 @ contest stats
.align 2
.4byte 0x451308ab @ personality
.2byte ITEM_NONE @ held item
.byte 255 @ mail index
.string "HADEN$", 11
.byte MALE @ OT gender
.byte 10 @ sheen
.2byte SPECIES_GOLDUCK @ species requested
.align 2
.string "ESPHERE$", 11
.align 1
.2byte SPECIES_ELECTRODE @ species
.byte 19, 16, 18, 25, 25, 19 @ IVs
.byte TRUE @ has second ability
.align 2
.4byte 50298 @ OT ID
.byte 30, 5, 5, 5, 5 @ contest stats
.align 2
.4byte 0x06341016 @ personality
.2byte ITEM_NONE @ held item
.byte 255 @ mail index
.string "CLIFTON$", 11
.byte MALE @ OT gender
.byte 10 @ sheen
.2byte SPECIES_RAICHU @ species requested
.align 2
.string "TANGENY$", 11
.align 1
.2byte SPECIES_TANGELA @ species
.byte 22, 17, 25, 16, 23, 20 @ IVs
.byte FALSE @ has second ability
.align 2
.4byte 60042 @ OT ID
.byte 5, 5, 30, 5, 5 @ contest stats
.align 2
.4byte 0x5c77ecfa @ personality
.2byte ITEM_STARDUST @ held item
.byte 255 @ mail index
.string "NORMA$", 11
.byte FEMALE @ OT gender
.byte 10 @ sheen
.2byte SPECIES_VENONAT @ species requested
.align 2
.string "SEELOR$", 11
.align 1
.2byte SPECIES_SEEL @ species
.byte 24, 15, 22, 16, 23, 22 @ IVs
.byte FALSE @ has second ability
.align 2
.4byte 9853 @ OT ID
.byte 5, 5, 5, 5, 30 @ contest stats
.align 2
.4byte 0x482cac89 @ personality
.2byte ITEM_NONE @ held item
.byte 255 @ mail index
.string "GARETT$", 11
.byte MALE @ OT gender
.byte 10 @ sheen
.2byte SPECIES_PONYTA @ species requested
.align 2
sInGameTradeMailMessages:: @ 826D1A8
.2byte EC_WORD_THAT_S
.2byte EC_WORD_A
.2byte EC_WORD_HEALTHY
.2byte EC_POKEMON2(JYNX)
.2byte EC_WORD_EXCL
.2byte EC_WORD_BE
.2byte EC_WORD_KIND
.2byte EC_WORD_TO
.2byte EC_WORD_IT
.2byte 0
-372
View File
@@ -1,372 +0,0 @@
#include "constants/items.h"
#include "constants/species.h"
#include "constants/easy_chat.h"
#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10))
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2, 0
gOamData_826CD00::
.4byte 0x40000100, 0x00000000
gAnimCmd_826CD08::
obj_image_anim_frame 0x00, 3
obj_image_anim_frame 0x04, 3
obj_image_anim_frame 0x08, 3
obj_image_anim_frame 0x0c, 3
obj_image_anim_frame 0x10, 3
obj_image_anim_frame 0x14, 3
obj_image_anim_frame 0x18, 3
obj_image_anim_frame 0x1c, 3
obj_image_anim_frame 0x20, 3
obj_image_anim_frame 0x24, 3
obj_image_anim_frame 0x28, 3
obj_image_anim_frame 0x2c, 3
obj_image_anim_loop 1
obj_image_anim_frame 0x00, 3
obj_image_anim_end
gAnimCmd_826CD44::
obj_image_anim_frame 0x00, 3
obj_image_anim_frame 0x04, 3
obj_image_anim_frame 0x08, 3
obj_image_anim_frame 0x0c, 3
obj_image_anim_frame 0x10, 3
obj_image_anim_frame 0x14, 3
obj_image_anim_frame 0x18, 3
obj_image_anim_frame 0x1c, 3
obj_image_anim_frame 0x20, 3
obj_image_anim_frame 0x24, 3
obj_image_anim_frame 0x28, 3
obj_image_anim_frame 0x2c, 3
obj_image_anim_loop 2
obj_image_anim_frame 0x00, 3
obj_image_anim_end
gSpriteAnimTable_826CD80::
.4byte gAnimCmd_826CD08
.4byte gAnimCmd_826CD44
gAffineAnimCmd_826CD88::
obj_rot_scal_anim_frame 0x0000, 0x0000, 0x00, 0x01
obj_rot_scal_anim_end
gAffineAnimCmd_826CD98::
obj_rot_scal_anim_frame 0xfff8, 0x0000, 0x00, 0x14
obj_rot_scal_anim_end
gAffineAnimCmd_826CDA8::
obj_rot_scal_anim_frame 0x0060, 0x0100, 0x00, 0x00
obj_rot_scal_anim_frame 0x0000, 0x0000, 0x00, 0x05
obj_rot_scal_anim_frame 0x0008, 0x0000, 0x00, 0x14
obj_rot_scal_anim_end
gSpriteAffineAnimTable_826CDC8::
.4byte gAffineAnimCmd_826CD88
.4byte gAffineAnimCmd_826CD98
.4byte gAffineAnimCmd_826CDA8
gUnknown_826CDD4:: @ 826CDD4
obj_tiles gTradeBallTiles, 0x0600, 5557
gUnknown_826CDDC:: @ 826CDDC
obj_pal gTradeBallPalette, 5558
sTradePokeballSpriteTemplate:: @ 826CDE4
spr_template 5557, 5558, gOamData_826CD00, gSpriteAnimTable_826CD80, NULL, gSpriteAffineAnimTable_826CDC8, SpriteCB_TradePokeball_Default
gOamData_826CDFC::
.4byte 0x80000500, 0x00000400
gAnimCmd_826CE04::
obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP
obj_image_anim_end
gSpriteAnimTable_826CE0C::
.4byte gAnimCmd_826CE04
gAffineAnimCmd_826CE10::
obj_rot_scal_anim_frame -10, -10, 0, 5
obj_rot_scal_anim_frame 10, 10, 0, 5
obj_rot_scal_anim_jump 0
gSpriteAffineAnimTable_826CE28::
.4byte gAffineAnimCmd_826CE10
gUnknown_826CE2C:: @ 826CE2C
obj_tiles gTradeGlow1Tiles, 0x0200, 5550
gUnknown_826CE34:: @ 826CE34
obj_pal gUnknown_82649FC, 5551
gUnknown_826CE3C:: @ 826CE3C
obj_pal gUnknown_826499C, 5555
gUnknown_826CE44:: @ 826CE44
spr_template 5550, 5551, gOamData_826CDFC, gSpriteAnimTable_826CE0C, NULL, gSpriteAffineAnimTable_826CE28, SpriteCB_TradeGlowCable
gOamData_826CE5C::
.4byte 0x80008000, 0x00000400
gAnimCmd_826CE64::
obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP
obj_image_anim_end
gAnimCmd_826CE6C::
obj_image_anim_frame 8, 5, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP
obj_image_anim_end
gSpriteAnimTable_826CE74::
.4byte gAnimCmd_826CE64
.4byte gAnimCmd_826CE6C
gUnknown_826CE7C:: @ 826CE7C
obj_tiles gTradeGlow2Tiles, 0x0300, 5552
sGlowBallSpriteTemplate:: @ 826CE84
spr_template 5552, 5551, gOamData_826CE5C, gSpriteAnimTable_826CE74, NULL, gDummySpriteAffineAnimTable, SpriteCB_TradeGlowCore
gOamData_826CE9C::
.4byte 0x80008000, 0x00000400
gAnimCmd_826CEA4::
obj_image_anim_frame 0, 10
obj_image_anim_end
gSpriteAnimTable_826CEAC::
.4byte gAnimCmd_826CEA4
gUnknown_826CEB0:: @ 826CEB0
obj_tiles gTradeCableEndTiles, 0x0100, 5554
sGameLinkCableEndSpriteTemplate:: @ 826CEB8
spr_template 5554, 5555, gOamData_826CE9C, gSpriteAnimTable_826CEAC, NULL, gDummySpriteAffineAnimTable, SpriteCB_GameLinkCableEnd_Outbound
gOamData_826CED0::
.4byte 0xc0004000, 0x00000400
gAnimCmd_826CED8::
obj_image_anim_frame 0x00, 2, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP
obj_image_anim_frame 0x20, 2, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP
obj_image_anim_frame 0x40, 2, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP
obj_image_anim_frame 0x60, 2, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP
obj_image_anim_frame 0x40, 2, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP
obj_image_anim_frame 0x20, 2, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP
obj_image_anim_frame 0x00, 2, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP
obj_image_anim_loop 8
obj_image_anim_end
gAnimCmd_826CEFC::
obj_image_anim_frame 0x00, 2, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP
obj_image_anim_frame 0x20, 2, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP
obj_image_anim_frame 0x40, 2, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP
obj_image_anim_frame 0x60, 2, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP
obj_image_anim_frame 0x40, 2, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP
obj_image_anim_frame 0x20, 2, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP
obj_image_anim_frame 0x00, 2, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP
obj_image_anim_loop 2
obj_image_anim_end
gSpriteAnimTable_826CF20::
.4byte gAnimCmd_826CED8
gSpriteAnimTable_826CF24::
.4byte gAnimCmd_826CEFC
gUnknown_826CF28:: @ 826CF28
obj_tiles gTradeGBAScreenTiles, 0x1000, 5556
gUnknown_826CF30:: @ 826CF30
spr_template 5556, 5555, gOamData_826CED0, gSpriteAnimTable_826CF20, NULL, gDummySpriteAffineAnimTable, sub_804FE00
gUnknown_826CF48:: @ 826CF48
spr_template 5556, 5555, gOamData_826CED0, gSpriteAnimTable_826CF24, NULL, gDummySpriteAffineAnimTable, sub_804FE00
gTradeGlow2PaletteAnimTable:: @ 826CF60
.2byte RGB(18, 24, 31)
.2byte RGB(18, 24, 31)
.2byte RGB(18, 24, 31)
.2byte RGB(31, 31, 31)
.2byte RGB(31, 31, 31)
.2byte RGB(31, 31, 31)
.2byte RGB(18, 24, 31)
.2byte RGB(18, 24, 31)
.2byte RGB(18, 24, 31)
.2byte RGB(31, 31, 31)
.2byte RGB(31, 31, 31)
.2byte RGB(31, 31, 31)
gAffineAnimCmd_826CF78::
obj_rot_scal_anim_frame 0xFF00, 0x0100, 0x00, 0x00
obj_rot_scal_anim_jump 0
gUnknown_826CF88:: @ 826CF88
.4byte gAffineAnimCmd_826CF78
.include "data/ingame_trades.inc"
gUnknown_826D1BC:: @ 826D1BC
.byte 0, 2, 15, 26, 4, 0
.2byte 0x0040
@ {
@ .bg = 0,
@ .tilemapLeft = 2,
@ .tilemapTop = 15,
@ .width = 26,
@ .height = 4,
@ .paletteNum = 0,
@ .baseBlock = 0x0040
@ }
.byte 255, 0, 0, 0, 0, 0
.2byte 0x0000
@ {
@ .bg = 255,
@ .tilemapLeft = 0,
@ .tilemapTop = 0,
@ .width = 0,
@ .height = 0,
@ .paletteNum = 0,
@ .baseBlock = 0x0000
@ }
gUnknown_826D1CC:: @ 826D1CC
.byte 0, 21, 9, 6, 4, 15
.2byte 0x00bc
@ {
@ .bg = 0,
@ .tilemapLeft = 21,
@ .tilemapTop = 9,
@ .width = 6,
@ .height = 4,
@ .paletteNum = 15,
@ .baseBlock = 0x00bc
@ }
gUnknown_826D1D4:: @ 826D1D4
.4byte 0x000001fc
@ {
@ .bg = 0,
@ .charBaseIndex = 3,
@ .mapBaseIndex = 31,
@ .screenSize = 0,
@ .paletteMode = 0,
@ .priority = 0,
@ .baseTile = 0x0000
@ }
.4byte 0x00002051
@ {
@ .bg = 1,
@ .charBaseIndex = 0,
@ .mapBaseIndex = 5,
@ .screenSize = 0,
@ .paletteMode = 0,
@ .priority = 2,
@ .baseTile = 0x0000
@ }
.4byte 0x00002326
@ {
@ .bg = 2,
@ .charBaseIndex = 1,
@ .mapBaseIndex = 18,
@ .screenSize = 1,
@ .paletteMode = 0,
@ .priority = 2,
@ .baseTile = 0x0000
@ }
.4byte 0x00003063
@ {
@ .bg = 3,
@ .charBaseIndex = 0,
@ .mapBaseIndex = 6,
@ .screenSize = 0,
@ .paletteMode = 0,
@ .priority = 3,
@ .baseTile = 0x0000
@ }
gUnknown_826D1E4:: @ 826D1E4
.byte 0x00
.byte 0x00
.byte 0x01
.byte 0x00
.byte 0x01
.byte 0x00
.byte 0x01
.byte 0x01
.byte 0x01
.byte 0x01
.byte 0x02
.byte 0x02
.byte 0x02
.byte 0x02
.byte 0x03
.byte 0x03
.byte 0x03
.byte 0x03
.byte 0x04
.byte 0x04
.byte 0x04
.byte 0x04
.byte 0xfc
.byte 0xfc
.byte 0xfc
.byte 0xfd
.byte 0xfd
.byte 0xfd
.byte 0xfd
.byte 0xfe
.byte 0xfe
.byte 0xfe
.byte 0xfe
.byte 0xff
.byte 0xff
.byte 0xff
.byte 0xff
.byte 0x00
.byte 0xff
.byte 0x00
.byte 0xff
.byte 0x00
.byte 0x00
.byte 0x00
.incbin "baserom.gba", 0x26D210, 0x40
gUnknown_826D250:: @ 826D250
.byte 0x00, 0x01
.byte 0x01, 0x01
.byte 0x02, 0x01
.byte 0x03, 0x01
.byte 0x04, 0x01
.byte 0x05, 0x02
.byte 0x06, 0x02
.byte 0x07, 0x02
.byte 0x08, 0x02
.byte 0x09, 0x02
.byte 0x0a, 0x03
.byte 0x0b, 0x03
.byte 0x0c, 0x03
.byte 0x0d, 0x04
.byte 0x0e, 0x05
.byte 0x0f, 0x02
.byte 0x00, 0x01
.byte 0x01, 0x01
.byte 0x02, 0x01
.byte 0x03, 0x01
.byte 0x04, 0x01
.byte 0x05, 0x02
.byte 0x06, 0x02
.byte 0x07, 0x02
.byte 0x08, 0x02
.byte 0x09, 0x02
.byte 0x0a, 0x03
.byte 0x0b, 0x03
.byte 0x0c, 0x03
.byte 0x0d, 0x04
.byte 0x0e, 0x05
.byte 0x10, 0x01
.byte 0x10, 0xff
.align 2, 0
+11
View File
@@ -2,5 +2,16 @@
#define GUARD_TRADE_SCENE_H
void CB2_InitTradeAnim_LinkTrade(void);
void CreateInGameTradePokemon(void);
void DoInGameTradeScene(void);
void DrawTextOnTradeWindow(u8 windowId, const u8 *str, s8 speed);
u16 GetInGameTradeSpeciesInfo(void);
u16 GetTradeSpecies(void);
void sub_805049C(void);
void sub_80504B0(void);
void sub_80544FC(void);
extern const u16 gUnknown_826601C[];
extern const struct WindowTemplate gUnknown_826D1CC;
#endif //GUARD_TRADE_SCENE_H
-1
View File
@@ -402,7 +402,6 @@ SECTIONS {
data/pokeball.o(.rodata);
src/trade.o(.rodata);
src/trade_scene.o(.rodata);
data/trade.o(.rodata);
data/overworld.o(.rodata);
data/tilesets.o(.rodata);
data/maps.o(.rodata);
+144
View File
@@ -0,0 +1,144 @@
const struct InGameTrade gInGameTrades[] = {
{
.nickname = _("MIMIEN"),
.species = SPECIES_MR_MIME,
.ivs = {20, 15, 17, 24, 23, 22},
.abilityNum = FALSE,
.otId = 1985,
.conditions = {5, 5, 5, 30, 5},
.personality = 0x00009cae,
.heldItem = ITEM_NONE,
.mailNum = 255,
.otName = _("REYLEY"),
.otGender = MALE,
.sheen = 10,
.requestedSpecies = SPECIES_ABRA
}, {
.nickname = _("ZYNX"),
.species = SPECIES_JYNX,
.ivs = {18, 17, 18, 22, 25, 21},
.abilityNum = FALSE,
.otId = 36728,
.conditions = {5, 30, 5, 5, 5},
.personality = 0x498a2e1d,
.heldItem = ITEM_FAB_MAIL,
.mailNum = 0,
.otName = _("DONTAE"),
.otGender = MALE,
.sheen = 10,
.requestedSpecies = SPECIES_POLIWHIRL
}, {
.nickname = _("MS. NIDO"),
.species = SPECIES_NIDORAN_F,
.ivs = {22, 18, 25, 19, 15, 22},
.abilityNum = FALSE,
.otId = 63184,
.conditions = {5, 5, 5, 5, 30},
.personality = 0x4c970b89,
.heldItem = ITEM_TINY_MUSHROOM,
.mailNum = 255,
.otName = _("SAIGE"),
.otGender = FEMALE,
.sheen = 10,
.requestedSpecies = SPECIES_NIDORAN_M
}, {
.nickname = _("CH'DING"),
.species = SPECIES_FARFETCHD,
.ivs = {20, 25, 21, 24, 15, 20},
.abilityNum = FALSE,
.otId = 8810,
.conditions = {30, 5, 5, 5, 5},
.personality = 0x151943d7,
.heldItem = ITEM_STICK,
.mailNum = 255,
.otName = _("ELYSSA"),
.otGender = MALE,
.sheen = 10,
.requestedSpecies = SPECIES_SPEAROW
}, {
.nickname = _("NINA"),
.species = SPECIES_NIDORINA,
.ivs = {22, 25, 18, 19, 22, 15},
.abilityNum = FALSE,
.otId = 13637,
.conditions = {5, 5, 30, 5, 5},
.personality = 0x00eeca15,
.heldItem = ITEM_NONE,
.mailNum = 255,
.otName = _("TURNER"),
.otGender = MALE,
.sheen = 10,
.requestedSpecies = SPECIES_NIDORINO
}, {
.nickname = _("MARC"),
.species = SPECIES_LICKITUNG,
.ivs = {24, 19, 21, 15, 23, 21},
.abilityNum = FALSE,
.otId = 1239,
.conditions = {5, 5, 5, 5, 30},
.personality = 0x451308ab,
.heldItem = ITEM_NONE,
.mailNum = 255,
.otName = _("HADEN"),
.otGender = MALE,
.sheen = 10,
.requestedSpecies = SPECIES_GOLDUCK
}, {
.nickname = _("ESPHERE"),
.species = SPECIES_ELECTRODE,
.ivs = {19, 16, 18, 25, 25, 19},
.abilityNum = TRUE,
.otId = 50298,
.conditions = {30, 5, 5, 5, 5},
.personality = 0x06341016,
.heldItem = ITEM_NONE,
.mailNum = 255,
.otName = _("CLIFTON"),
.otGender = MALE,
.sheen = 10,
.requestedSpecies = SPECIES_RAICHU
}, {
.nickname = _("TANGENY"),
.species = SPECIES_TANGELA,
.ivs = {22, 17, 25, 16, 23, 20},
.abilityNum = FALSE,
.otId = 60042,
.conditions = {5, 5, 30, 5, 5},
.personality = 0x5c77ecfa,
.heldItem = ITEM_STARDUST,
.mailNum = 255,
.otName = _("NORMA"),
.otGender = FEMALE,
.sheen = 10,
.requestedSpecies = SPECIES_VENONAT
},
{
.nickname = _("SEELOR"),
.species = SPECIES_SEEL,
.ivs = {24, 15, 22, 16, 23, 22},
.abilityNum = FALSE,
.otId = 9853,
.conditions = {5, 5, 5, 5, 30},
.personality = 0x482cac89,
.heldItem = ITEM_NONE,
.mailNum = 255,
.otName = _("GARETT"),
.otGender = MALE,
.sheen = 10,
.requestedSpecies = SPECIES_PONYTA
}
};
const u16 sInGameTradeMailMessages[][10] = {
{
EC_WORD_THAT_S,
EC_WORD_A,
EC_WORD_HEALTHY,
EC_POKEMON2(JYNX),
EC_WORD_EXCL,
EC_WORD_BE,
EC_WORD_KIND,
EC_WORD_TO,
EC_WORD_IT
}
};
+517 -118
View File
@@ -35,6 +35,7 @@
#include "save.h"
#include "load_save.h"
#include "random.h"
#include "trade_scene.h"
#include "constants/species.h"
#include "constants/items.h"
#include "constants/easy_chat.h"
@@ -108,90 +109,488 @@ struct TradeAnimationResources {
/*0x10C*/ u8 win0bottom;
};
EWRAM_DATA struct TradeAnimationResources * sTradeData = NULL;
static EWRAM_DATA struct TradeAnimationResources * sTradeData = NULL;
void CB2_InitTradeAnim_LinkTrade(void);
void sub_805049C(void);
void sub_80504B0(void);
void TradeAnimInit_LoadGfx(void);
void CB2_RunTradeAnim_InGameTrade(void);
void SetTradeSequenceBgGpuRegs(u8 idx);
void sub_8050DE0(void);
void sub_8050E24(void);
u8 sub_8050F14(void);
u8 sub_8050F3C(void);
u8 sub_805232C(void);
void SpriteCB_TradePokeball_Outbound(struct Sprite * sprite);
void SpriteCB_TradePokeball_Outbound2(struct Sprite * sprite);
void SpriteCB_TradePokeball_Inbound(struct Sprite * sprite);
void BufferInGameTradeMonName(void);
static void SpriteCB_TradeGlowCable(struct Sprite * sprite);
static void SpriteCB_TradeGlowWireless(struct Sprite * sprite);
static void SpriteCB_TradeGlowCore(struct Sprite * sprite);
static void SpriteCB_GameLinkCableEnd_Outbound(struct Sprite * sprite);
static void SpriteCB_GameLinkCableEnd_Inbound(struct Sprite * sprite);
static void sub_804FE00(struct Sprite * sprite);
static void TradeAnimInit_LoadGfx(void);
static void CB2_RunTradeAnim_InGameTrade(void);
static void SetTradeSequenceBgGpuRegs(u8 idx);
static void sub_8050DE0(void);
static void sub_8050E24(void);
static u8 sub_8050F14(void);
static u8 sub_8050F3C(void);
static u8 sub_805232C(void);
static void SpriteCB_TradePokeball_Default(struct Sprite * sprite);
static void SpriteCB_TradePokeball_Outbound(struct Sprite * sprite);
static void SpriteCB_TradePokeball_Outbound2(struct Sprite * sprite);
static void SpriteCB_TradePokeball_Inbound(struct Sprite * sprite);
static void BufferInGameTradeMonName(void);
static void GetInGameTradeMail(struct MailStruct * mail, const struct InGameTrade * inGameTrade);
void CB2_RunTradeAnim_LinkTrade(void);
void sub_8053E1C(void);
void sub_8053E8C(void);
void sub_80543C4(void);
void sub_8054470(u8 taskId);
void CheckPartnersMonForRibbons(void);
void DrawTextOnTradeWindow(u8 windowId, const u8 *str, s8 speed);
void Task_AnimateWirelessSignal(u8 taskId);
void c3_0805465C(u8 taskId);
void sub_8054734(u8 taskId);
static void CB2_RunTradeAnim_LinkTrade(void);
static void sub_8053E1C(void);
static void sub_8053E8C(void);
static void sub_80543C4(void);
static void sub_8054470(u8 taskId);
static void CheckPartnersMonForRibbons(void);
static void Task_AnimateWirelessSignal(u8 taskId);
static void c3_0805465C(u8 taskId);
static void sub_8054734(u8 taskId);
const u16 gTradeBallPalette[] = INCBIN_U16("graphics/trade/ball.gbapal");
const u8 gTradeBallTiles[] = INCBIN_U8("graphics/trade/ball.4bpp");
const u8 gUnknown_826267C[] = INCBIN_U8("graphics/trade/pokeball_symbol.8bpp");
const u16 gUnknown_826407C[] = INCBIN_U16("graphics/trade/cable_closeup_map.bin");
const u16 gUnknown_083307C0[] = INCBIN_U16("graphics/trade/pokeball_symbol_map.bin");
const u16 sUnref_083308C0[] = INCBIN_U16("graphics/trade/unknown_3308C0.gbapal");
const u16 gUnknown_826499C[] = INCBIN_U16("graphics/trade/gba.gbapal");
const u16 gUnref_08330900[] = INCBIN_U16("graphics/trade/shadow.gbapal");
const u16 gUnref_08330920[] = INCBIN_U16("graphics/trade/black.gbapal");
const u16 gUnknown_82649FC[] = INCBIN_U16("graphics/trade/misc.gbapal");
const u8 gTradeGlow1Tiles[] = INCBIN_U8("graphics/trade/glow1.4bpp");
const u8 gTradeGlow2Tiles[] = INCBIN_U8("graphics/trade/glow2.4bpp");
const u8 gTradeCableEndTiles[] = INCBIN_U8("graphics/trade/cable_end.4bpp");
const u8 gTradeGBAScreenTiles[] = INCBIN_U8("graphics/trade/gba_screen.4bpp");
static const u16 gTradeBallPalette[] = INCBIN_U16("graphics/trade/ball.gbapal");
static const u8 gTradeBallTiles[] = INCBIN_U8("graphics/trade/ball.4bpp");
static const u8 gUnknown_826267C[] = INCBIN_U8("graphics/trade/pokeball_symbol.8bpp");
static const u16 gUnknown_826407C[] = INCBIN_U16("graphics/trade/cable_closeup_map.bin");
static const u16 gUnknown_083307C0[] = INCBIN_U16("graphics/trade/pokeball_symbol_map.bin");
static const u16 sUnref_083308C0[] = INCBIN_U16("graphics/trade/unknown_3308C0.gbapal");
static const u16 gUnknown_826499C[] = INCBIN_U16("graphics/trade/gba.gbapal");
static const u16 gUnref_08330900[] = INCBIN_U16("graphics/trade/shadow.gbapal");
static const u16 gUnref_08330920[] = INCBIN_U16("graphics/trade/black.gbapal");
static const u16 gUnknown_82649FC[] = INCBIN_U16("graphics/trade/misc.gbapal");
static const u8 gTradeGlow1Tiles[] = INCBIN_U8("graphics/trade/glow1.4bpp");
static const u8 gTradeGlow2Tiles[] = INCBIN_U8("graphics/trade/glow2.4bpp");
static const u8 gTradeCableEndTiles[] = INCBIN_U8("graphics/trade/cable_end.4bpp");
static const u8 gTradeGBAScreenTiles[] = INCBIN_U8("graphics/trade/gba_screen.4bpp");
const u16 gUnknown_826601C[] = INCBIN_U16("graphics/trade/shadow_map.bin");
const u8 gUnknown_826701C[] = INCBIN_U8("graphics/trade/gba_affine.8bpp");
const u8 sFiller_08335760[64] = {};
const u8 gUnknown_826985C[] = INCBIN_U8("graphics/trade/gba_affine_map_cable.bin");
const u8 gUnknown_826995C[] = INCBIN_U8("graphics/trade/gba_affine_map_wireless.bin");
const u16 gUnknown_8269A5C[] = INCBIN_U16("graphics/trade/gba_map_wireless.bin");
const u16 gUnknown_826AA5C[] = INCBIN_U16("graphics/trade/gba_map_cable.bin");
const u32 gUnknown_3379A0Bin[] = INCBIN_U32("graphics/trade/unknown_3379A0.bin.lz");
const u16 gUnknown_826BB5C[] = INCBIN_U16("graphics/trade/wireless_signal_send.gbapal");
const u16 gUnknown_826BD5C[] = INCBIN_U16("graphics/trade/wireless_signal_receive.gbapal");
const u16 gUnknown_826BF5C[] = INCBIN_U16("graphics/trade/black.gbapal");
const u32 gWirelessSignal4bpp[] = INCBIN_U32("graphics/trade/wireless_signal.4bpp.lz");
const u32 gUnknown_826C60C[] = INCBIN_U32("graphics/trade/wireless_signal.bin.lz");
static const u8 gUnknown_826701C[] = INCBIN_U8("graphics/trade/gba_affine.8bpp");
static const u8 sFiller_08335760[64] = {};
static const u8 gUnknown_826985C[] = INCBIN_U8("graphics/trade/gba_affine_map_cable.bin");
static const u8 gUnknown_826995C[] = INCBIN_U8("graphics/trade/gba_affine_map_wireless.bin");
static const u16 gUnknown_8269A5C[] = INCBIN_U16("graphics/trade/gba_map_wireless.bin");
static const u16 gUnknown_826AA5C[] = INCBIN_U16("graphics/trade/gba_map_cable.bin");
static const u32 gUnknown_3379A0Bin[] = INCBIN_U32("graphics/trade/unknown_3379A0.bin.lz");
static const u16 gUnknown_826BB5C[] = INCBIN_U16("graphics/trade/wireless_signal_send.gbapal");
static const u16 gUnknown_826BD5C[] = INCBIN_U16("graphics/trade/wireless_signal_receive.gbapal");
static const u16 gUnknown_826BF5C[] = INCBIN_U16("graphics/trade/black.gbapal");
static const u32 gWirelessSignal4bpp[] = INCBIN_U32("graphics/trade/wireless_signal.4bpp.lz");
static const u32 gUnknown_826C60C[] = INCBIN_U32("graphics/trade/wireless_signal.bin.lz");
extern const u8 gUnknown_8261EC7[];
extern const u8 *const sTradeErrorOrStatusMessagePtrs[];
extern const u16 gTradeGlow2PaletteAnimTable[];
extern const struct SpriteSheet gUnknown_826CDD4;
extern const struct SpritePalette gUnknown_826CDDC;
extern const struct BgTemplate gUnknown_826D1D4[4];
extern const struct WindowTemplate gUnknown_826D1BC[];
extern const struct SpriteSheet gUnknown_826CE2C;
extern const struct SpriteSheet gUnknown_826CE7C;
extern const struct SpriteSheet gUnknown_826CEB0;
extern const struct SpriteSheet gUnknown_826CF28;
extern const struct SpritePalette gUnknown_826CE34;
extern const struct SpritePalette gUnknown_826CE3C;
extern const struct InGameTrade gInGameTrades[];
extern const struct SpriteTemplate sTradePokeballSpriteTemplate;
extern const struct SpriteTemplate gUnknown_826CF30;
extern const struct SpriteTemplate sGameLinkCableEndSpriteTemplate;
extern const struct SpriteTemplate gUnknown_826CE44;
extern const struct SpriteTemplate sGlowBallSpriteTemplate;
extern const union AffineAnimCmd *const gUnknown_826CF88[];
extern const struct SpriteTemplate gUnknown_826CF48;
extern const s8 gUnknown_826D1E4[];
extern const u16 sInGameTradeMailMessages[][10];
extern const u8 gUnknown_826D250[][2];
static const struct OamData gOamData_826CD00 = {
.affineMode = ST_OAM_AFFINE_NORMAL,
.shape = SPRITE_SHAPE(16x16),
.size = SPRITE_SIZE(16x16)
};
static const union AnimCmd gAnimCmd_826CD08[] = {
ANIMCMD_FRAME(0x00, 3),
ANIMCMD_FRAME(0x04, 3),
ANIMCMD_FRAME(0x08, 3),
ANIMCMD_FRAME(0x0c, 3),
ANIMCMD_FRAME(0x10, 3),
ANIMCMD_FRAME(0x14, 3),
ANIMCMD_FRAME(0x18, 3),
ANIMCMD_FRAME(0x1c, 3),
ANIMCMD_FRAME(0x20, 3),
ANIMCMD_FRAME(0x24, 3),
ANIMCMD_FRAME(0x28, 3),
ANIMCMD_FRAME(0x2c, 3),
ANIMCMD_LOOP(1),
ANIMCMD_FRAME(0x00, 3),
ANIMCMD_END
};
static const union AnimCmd gAnimCmd_826CD44[] = {
ANIMCMD_FRAME(0x00, 3),
ANIMCMD_FRAME(0x04, 3),
ANIMCMD_FRAME(0x08, 3),
ANIMCMD_FRAME(0x0c, 3),
ANIMCMD_FRAME(0x10, 3),
ANIMCMD_FRAME(0x14, 3),
ANIMCMD_FRAME(0x18, 3),
ANIMCMD_FRAME(0x1c, 3),
ANIMCMD_FRAME(0x20, 3),
ANIMCMD_FRAME(0x24, 3),
ANIMCMD_FRAME(0x28, 3),
ANIMCMD_FRAME(0x2c, 3),
ANIMCMD_LOOP(2),
ANIMCMD_FRAME(0x00, 3),
ANIMCMD_END
};
static const union AnimCmd *const gSpriteAnimTable_826CD80[] = {
gAnimCmd_826CD08,
gAnimCmd_826CD44
};
static const union AffineAnimCmd gAffineAnimCmd_826CD88[] = {
AFFINEANIMCMD_FRAME(0, 0, 0, 1),
AFFINEANIMCMD_END
};
static const union AffineAnimCmd gAffineAnimCmd_826CD98[] = {
AFFINEANIMCMD_FRAME(-8, 0, 0, 20),
AFFINEANIMCMD_END
};
static const union AffineAnimCmd gAffineAnimCmd_826CDA8[] = {
AFFINEANIMCMD_FRAME(96, 256, 0, 0),
AFFINEANIMCMD_FRAME(0, 0, 0, 5),
AFFINEANIMCMD_FRAME(8, 0, 0, 20),
AFFINEANIMCMD_END
};
static const union AffineAnimCmd *const gSpriteAffineAnimTable_826CDC8[] = {
gAffineAnimCmd_826CD88,
gAffineAnimCmd_826CD98,
gAffineAnimCmd_826CDA8
};
static const struct SpriteSheet gUnknown_826CDD4 = {
gTradeBallTiles,
0x600,
5557
};
static const struct SpritePalette gUnknown_826CDDC = {
gTradeBallPalette,
5558
};
static const struct SpriteTemplate sTradePokeballSpriteTemplate = {
.tileTag = 5557,
.paletteTag = 5558,
.oam = &gOamData_826CD00,
.anims = gSpriteAnimTable_826CD80,
.affineAnims = gSpriteAffineAnimTable_826CDC8,
.callback = SpriteCB_TradePokeball_Default
};
static const struct OamData gOamData_826CDFC = {
.affineMode = ST_OAM_AFFINE_NORMAL,
.objMode = ST_OAM_OBJ_BLEND,
.shape = SPRITE_SHAPE(32x32),
.size = SPRITE_SIZE(32x32),
.priority = 1
};
static const union AnimCmd gAnimCmd_826CE04[] = {
ANIMCMD_FRAME(0, 5, .hFlip = TRUE, .vFlip = TRUE),
ANIMCMD_END
};
static const union AnimCmd *const gSpriteAnimTable_826CE0C[] = {
gAnimCmd_826CE04
};
static const union AffineAnimCmd gAffineAnimCmd_826CE10[] = {
AFFINEANIMCMD_FRAME(-10, -10, 0, 5),
AFFINEANIMCMD_FRAME( 10, 10, 0, 5),
AFFINEANIMCMD_JUMP(0)
};
static const union AffineAnimCmd *const gSpriteAffineAnimTable_826CE28[] = {
gAffineAnimCmd_826CE10
};
static const struct SpriteSheet gUnknown_826CE2C = {
gTradeGlow1Tiles,
0x200,
5550
};
static const struct SpritePalette gUnknown_826CE34 = {
gUnknown_82649FC,
5551
};
static const struct SpritePalette gUnknown_826CE3C = {
gUnknown_826499C,
5555
};
static const struct SpriteTemplate gUnknown_826CE44 = {
.tileTag = 5550,
.paletteTag = 5551,
.oam = &gOamData_826CDFC,
.anims = gSpriteAnimTable_826CE0C,
.affineAnims = gSpriteAffineAnimTable_826CE28,
.callback = SpriteCB_TradeGlowCable
};
static const struct OamData gOamData_826CE5C = {
.shape = SPRITE_SHAPE(16x32),
.size = SPRITE_SIZE(16x32),
.priority = 1
};
static const union AnimCmd gAnimCmd_826CE64[] = {
ANIMCMD_FRAME(0, 5, .hFlip = TRUE, .vFlip = TRUE),
ANIMCMD_END
};
static const union AnimCmd gAnimCmd_826CE6C[] = {
ANIMCMD_FRAME(8, 5, .hFlip = TRUE, .vFlip = TRUE),
ANIMCMD_END
};
static const union AnimCmd *const gSpriteAnimTable_826CE74[] = {
gAnimCmd_826CE64,
gAnimCmd_826CE6C
};
static const struct SpriteSheet gUnknown_826CE7C = {
gTradeGlow2Tiles,
0x300,
5552
};
static const struct SpriteTemplate sGlowBallSpriteTemplate = {
.tileTag = 5552,
.paletteTag = 5551,
.oam = &gOamData_826CE5C,
.anims = gSpriteAnimTable_826CE74,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCB_TradeGlowCore
};
static const struct OamData gOamData_826CE9C = {
.shape = SPRITE_SHAPE(16x32),
.size = SPRITE_SIZE(16x32),
.priority = 1
};
static const union AnimCmd gAnimCmd_826CEA4[] = {
ANIMCMD_FRAME(0, 10),
ANIMCMD_END
};
static const union AnimCmd *const gSpriteAnimTable_826CEAC[] = {
gAnimCmd_826CEA4
};
static const struct SpriteSheet gUnknown_826CEB0 = {
gTradeCableEndTiles,
0x100,
5554
};
static const struct SpriteTemplate sGameLinkCableEndSpriteTemplate = {
.tileTag = 5554,
.paletteTag = 5555,
.oam = &gOamData_826CE9C,
.anims = gSpriteAnimTable_826CEAC,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCB_GameLinkCableEnd_Outbound
};
static const struct OamData gOamData_826CED0 = {
.shape = SPRITE_SHAPE(64x32),
.size = SPRITE_SIZE(64x32),
.priority = 1
};
static const union AnimCmd gAnimCmd_826CED8[] = {
ANIMCMD_FRAME(0x00, 2, .hFlip = TRUE, .vFlip = TRUE),
ANIMCMD_FRAME(0x20, 2, .hFlip = TRUE, .vFlip = TRUE),
ANIMCMD_FRAME(0x40, 2, .hFlip = TRUE, .vFlip = TRUE),
ANIMCMD_FRAME(0x60, 2, .hFlip = TRUE, .vFlip = TRUE),
ANIMCMD_FRAME(0x40, 2, .hFlip = TRUE, .vFlip = TRUE),
ANIMCMD_FRAME(0x20, 2, .hFlip = TRUE, .vFlip = TRUE),
ANIMCMD_FRAME(0x00, 2, .hFlip = TRUE, .vFlip = TRUE),
ANIMCMD_LOOP(8),
ANIMCMD_END
};
static const union AnimCmd gAnimCmd_826CEFC[] = {
ANIMCMD_FRAME(0x00, 2, .hFlip = TRUE, .vFlip = TRUE),
ANIMCMD_FRAME(0x20, 2, .hFlip = TRUE, .vFlip = TRUE),
ANIMCMD_FRAME(0x40, 2, .hFlip = TRUE, .vFlip = TRUE),
ANIMCMD_FRAME(0x60, 2, .hFlip = TRUE, .vFlip = TRUE),
ANIMCMD_FRAME(0x40, 2, .hFlip = TRUE, .vFlip = TRUE),
ANIMCMD_FRAME(0x20, 2, .hFlip = TRUE, .vFlip = TRUE),
ANIMCMD_FRAME(0x00, 2, .hFlip = TRUE, .vFlip = TRUE),
ANIMCMD_LOOP(2),
ANIMCMD_END
};
static const union AnimCmd *const gSpriteAnimTable_826CF20[] = {
gAnimCmd_826CED8
};
static const union AnimCmd *const gSpriteAnimTable_826CF24[] = {
gAnimCmd_826CEFC
};
static const struct SpriteSheet gUnknown_826CF28 = {
gTradeGBAScreenTiles,
0x1000,
5556
};
static const struct SpriteTemplate gUnknown_826CF30 = {
.tileTag = 5556,
.paletteTag = 5555,
.oam = &gOamData_826CED0,
.anims = gSpriteAnimTable_826CF20,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_804FE00
};
static const struct SpriteTemplate gUnknown_826CF48 = {
.tileTag = 5556,
.paletteTag = 5555,
.oam = &gOamData_826CED0,
.anims = gSpriteAnimTable_826CF24,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_804FE00
};
static const u16 gTradeGlow2PaletteAnimTable[] = {
RGB(18, 24, 31),
RGB(18, 24, 31),
RGB(18, 24, 31),
RGB(31, 31, 31),
RGB(31, 31, 31),
RGB(31, 31, 31),
RGB(18, 24, 31),
RGB(18, 24, 31),
RGB(18, 24, 31),
RGB(31, 31, 31),
RGB(31, 31, 31),
RGB(31, 31, 31)
};
static const union AffineAnimCmd gAffineAnimCmd_826CF78[] = {
AFFINEANIMCMD_FRAME(-0x100, 0x100, 0, 0),
AFFINEANIMCMD_JUMP(0)
};
static const union AffineAnimCmd *const gUnknown_826CF88[] = {
gAffineAnimCmd_826CF78
};
#include "data/ingame_trades.h"
static const struct WindowTemplate gUnknown_826D1BC[] = {
{
.bg = 0,
.tilemapLeft = 2,
.tilemapTop = 15,
.width = 26,
.height = 4,
.paletteNum = 0,
.baseBlock = 0x040
}, DUMMY_WIN_TEMPLATE
};
const struct WindowTemplate gUnknown_826D1CC = {
.bg = 0,
.tilemapLeft = 21,
.tilemapTop = 9,
.width = 6,
.height = 4,
.paletteNum = 15,
.baseBlock = 0x0bc
};
static const struct BgTemplate gUnknown_826D1D4[] = {
{
.bg = 0,
.charBaseIndex = 3,
.mapBaseIndex = 31,
.screenSize = 0,
.paletteMode = 0,
.priority = 0,
.baseTile = 0x000
}, {
.bg = 1,
.charBaseIndex = 0,
.mapBaseIndex = 5,
.screenSize = 0,
.paletteMode = 0,
.priority = 2,
.baseTile = 0x000
}, {
.bg = 2,
.charBaseIndex = 1,
.mapBaseIndex = 18,
.screenSize = 1,
.paletteMode = 0,
.priority = 2,
.baseTile = 0x000
}, {
.bg = 3,
.charBaseIndex = 0,
.mapBaseIndex = 6,
.screenSize = 0,
.paletteMode = 0,
.priority = 3,
.baseTile = 0x000
}
};
static const s8 gTradeBallVerticalVelocityTable[] = {
0, 0, 1, 0,
1, 0, 1, 1,
1, 1, 2, 2,
2, 2, 3, 3,
3, 3, 4, 4,
4, 4, -4, -4,
-4, -3, -3, -3,
-3, -2, -2, -2,
-2, -1, -1, -1,
-1, 0, -1, 0,
-1, 0, 0, 0,
0, 0, 1, 0,
1, 0, 1, 1,
1, 1, 2, 2,
2, 2, 3, 3,
3, 3, 4, 4,
4, 4, -4, -3,
-3, -2, -2, -1,
-1, -1, 0, -1,
0, 0, 0, 0,
0, 0, 1, 0,
1, 1, 1, 2,
2, 3, 3, 4,
-4, -3, -2, -1,
-1, -1, 0, 0,
0, 0, 1, 0,
1, 1, 2, 3
};
static const u8 gUnknown_826D250[][2] = {
{0, 1},
{1, 1},
{2, 1},
{3, 1},
{4, 1},
{5, 2},
{6, 2},
{7, 2},
{8, 2},
{9, 2},
{10, 3},
{11, 3},
{12, 3},
{13, 4},
{14, 5},
{15, 2},
{0, 1},
{1, 1},
{2, 1},
{3, 1},
{4, 1},
{5, 2},
{6, 2},
{7, 2},
{8, 2},
{9, 2},
{10, 3},
{11, 3},
{12, 3},
{13, 4},
{14, 5},
{16, 1},
{16, -1}
};
// Sprite callback for link cable trade glow
void SpriteCB_TradeGlowCable(struct Sprite * sprite)
static void SpriteCB_TradeGlowCable(struct Sprite * sprite)
{
sprite->data[0]++;
if (sprite->data[0] == 10)
@@ -202,7 +601,7 @@ void SpriteCB_TradeGlowCable(struct Sprite * sprite)
}
// Sprite callback for wireless trade glow
void SpriteCB_TradeGlowWireless(struct Sprite * sprite)
static void SpriteCB_TradeGlowWireless(struct Sprite * sprite)
{
if (!sprite->invisible)
{
@@ -216,7 +615,7 @@ void SpriteCB_TradeGlowWireless(struct Sprite * sprite)
}
// Palette flash for trade glow core
void SpriteCB_TradeGlowCore(struct Sprite * sprite)
static void SpriteCB_TradeGlowCore(struct Sprite * sprite)
{
if (sprite->data[1] == 0)
{
@@ -227,7 +626,7 @@ void SpriteCB_TradeGlowCore(struct Sprite * sprite)
}
}
void SpriteCB_GameLinkCableEnd_Outbound(struct Sprite * sprite)
static void SpriteCB_GameLinkCableEnd_Outbound(struct Sprite * sprite)
{
sprite->data[0]++;
sprite->pos2.y++;
@@ -235,7 +634,7 @@ void SpriteCB_GameLinkCableEnd_Outbound(struct Sprite * sprite)
DestroySprite(sprite);
}
void SpriteCB_GameLinkCableEnd_Inbound(struct Sprite * sprite)
static void SpriteCB_GameLinkCableEnd_Inbound(struct Sprite * sprite)
{
sprite->data[0]++;
sprite->pos2.y--;
@@ -243,7 +642,7 @@ void SpriteCB_GameLinkCableEnd_Inbound(struct Sprite * sprite)
DestroySprite(sprite);
}
void sub_804FE00(struct Sprite * sprite)
static void sub_804FE00(struct Sprite * sprite)
{
sprite->data[0]++;
if (sprite->data[0] == 15)
@@ -253,7 +652,7 @@ void sub_804FE00(struct Sprite * sprite)
}
}
void SetTradeBGAffine(void)
static void SetTradeBGAffine(void)
{
struct BgAffineDstData affine;
DoBgAffineSet(&affine, sTradeData->bg2texX * 0x100, sTradeData->bg2texY * 0x100, sTradeData->bg2srcX, sTradeData->bg2srcY, sTradeData->sXY, sTradeData->sXY, sTradeData->bg2alpha);
@@ -292,14 +691,14 @@ static void VBlankCB_TradeAnim(void)
TransferPlttBuffer();
}
void sub_804FF24(void)
static void sub_804FF24(void)
{
sTradeData->unk_8A = 0;
sTradeData->unk_88 = 0;
sTradeData->unk_89 = 0;
}
void sub_804FF4C(void)
static void sub_804FF4C(void)
{
if (sTradeData->unk_88 == sTradeData->unk_89)
sTradeData->unk_8A++;
@@ -318,14 +717,14 @@ void sub_804FF4C(void)
sTradeData->unk_89 = sTradeData->unk_88;
}
u32 sub_804FFC4(void)
static u32 sub_804FFC4(void)
{
if (gReceivedRemoteLinkPlayers)
return GetMultiplayerId();
return 0;
}
void sub_804FFE4(u8 whichParty, u8 a1)
static void sub_804FFE4(u8 whichParty, u8 a1)
{
int pos = 0;
struct Pokemon *mon = NULL;
@@ -520,7 +919,7 @@ void sub_80504B0(void)
CopyWindowToVram(0, 3);
}
void TradeAnimInit_LoadGfx(void)
static void TradeAnimInit_LoadGfx(void)
{
SetGpuReg(REG_OFFSET_DISPCNT, 0);
ResetBgsAndClearDma3BusyFlags(FALSE);
@@ -544,7 +943,7 @@ void TradeAnimInit_LoadGfx(void)
LoadCompressedPalette(gBattleTextboxPalette, 0x000, 0x20);
}
void CB2_InitTradeAnim_InGameTrade(void)
static void CB2_InitTradeAnim_InGameTrade(void)
{
u8 otName[11];
@@ -647,7 +1046,7 @@ static void RS_TryEnableNationalPokedex(void)
EnableNationalPokedex();*/
}
void TradeMons(u8 playerPartyIdx, u8 partnerPartyIdx)
static void TradeMons(u8 playerPartyIdx, u8 partnerPartyIdx)
{
u8 friendship;
@@ -681,7 +1080,7 @@ void TradeMons(u8 playerPartyIdx, u8 partnerPartyIdx)
RS_TryEnableNationalPokedex();
}
void sub_80508F4(void)
static void sub_80508F4(void)
{
switch (sTradeData->unk_93)
{
@@ -697,7 +1096,7 @@ void sub_80508F4(void)
}
}
void CB2_RunTradeAnim_InGameTrade(void)
static void CB2_RunTradeAnim_InGameTrade(void)
{
sub_8050F14();
RunTasks();
@@ -707,7 +1106,7 @@ void CB2_RunTradeAnim_InGameTrade(void)
UpdatePaletteFade();
}
void SetTradeSequenceBgGpuRegs(u8 state)
static void SetTradeSequenceBgGpuRegs(u8 state)
{
switch (state)
{
@@ -814,7 +1213,7 @@ void SetTradeSequenceBgGpuRegs(u8 state)
}
}
void sub_8050DE0(void)
static void sub_8050DE0(void)
{
LoadSpriteSheet(&gUnknown_826CE2C);
LoadSpriteSheet(&gUnknown_826CE7C);
@@ -824,7 +1223,7 @@ void sub_8050DE0(void)
LoadSpritePalette(&gUnknown_826CE3C);
}
void sub_8050E24(void)
static void sub_8050E24(void)
{
u8 nickname[20];
u8 mpId;
@@ -848,7 +1247,7 @@ void sub_8050E24(void)
}
}
bool8 sub_8050F14(void)
static bool8 sub_8050F14(void)
{
if (sTradeData->isCableTrade)
return sub_8050F3C();
@@ -856,7 +1255,7 @@ bool8 sub_8050F14(void)
return sub_805232C();
}
bool8 sub_8050F3C(void)
static bool8 sub_8050F3C(void)
{
u16 evoTarget;
@@ -1353,7 +1752,7 @@ bool8 sub_8050F3C(void)
return FALSE;
}
bool8 sub_805232C(void)
static bool8 sub_805232C(void)
{
u16 evoTarget;
@@ -1874,7 +2273,7 @@ bool8 sub_805232C(void)
return FALSE;
}
void sub_8053788(void)
static void sub_8053788(void)
{
u16 evoSpecies;
switch (gMain.state)
@@ -1900,7 +2299,7 @@ void sub_8053788(void)
UpdatePaletteFade();
}
void sub_805383C(void)
static void sub_805383C(void)
{
u8 recvStatus;
sub_804FFC4();
@@ -1921,7 +2320,7 @@ void sub_805383C(void)
}
}
void SpriteCB_TradePokeball_Default(struct Sprite * sprite)
static void SpriteCB_TradePokeball_Default(struct Sprite * sprite)
{
sprite->pos1.y += sprite->data[0] / 10;
sprite->data[5] += sprite->data[1];
@@ -1942,9 +2341,9 @@ void SpriteCB_TradePokeball_Default(struct Sprite * sprite)
}
}
void SpriteCB_TradePokeball_Outbound(struct Sprite * sprite)
static void SpriteCB_TradePokeball_Outbound(struct Sprite * sprite)
{
sprite->pos2.y += gUnknown_826D1E4[sprite->data[0]];
sprite->pos2.y += gTradeBallVerticalVelocityTable[sprite->data[0]];
if (sprite->data[0] == 22)
PlaySE(SE_KON);
sprite->data[0]++;
@@ -1957,14 +2356,14 @@ void SpriteCB_TradePokeball_Outbound(struct Sprite * sprite)
}
}
void SpriteCB_TradePokeball_Outbound2(struct Sprite * sprite)
static void SpriteCB_TradePokeball_Outbound2(struct Sprite * sprite)
{
if (sprite->data[1] == 20)
StartSpriteAffineAnim(sprite, 1);
sprite->data[1]++;
if (sprite->data[1] > 20)
{
sprite->pos2.y -= gUnknown_826D1E4[sprite->data[0]];
sprite->pos2.y -= gTradeBallVerticalVelocityTable[sprite->data[0]];
sprite->data[0]++;
if (sprite->data[0] == 23)
{
@@ -1974,7 +2373,7 @@ void SpriteCB_TradePokeball_Outbound2(struct Sprite * sprite)
}
}
void SpriteCB_TradePokeball_Inbound(struct Sprite * sprite)
static void SpriteCB_TradePokeball_Inbound(struct Sprite * sprite)
{
if (sprite->data[2] == 0)
{
@@ -1994,7 +2393,7 @@ void SpriteCB_TradePokeball_Inbound(struct Sprite * sprite)
PlaySE(SE_KON3);
if (sprite->data[0] == 107)
PlaySE(SE_KON4);
sprite->pos2.y += gUnknown_826D1E4[sprite->data[0]];
sprite->pos2.y += gTradeBallVerticalVelocityTable[sprite->data[0]];
sprite->data[0]++;
if (sprite->data[0] == 108)
sprite->callback = SpriteCallbackDummy;
@@ -2012,7 +2411,7 @@ u16 GetInGameTradeSpeciesInfo(void)
return inGameTrade->requestedSpecies;
}
void BufferInGameTradeMonName(void)
static void BufferInGameTradeMonName(void)
{
// Populates gStringVar1 with the nickname of the sent Pokemon and
// gStringVar2 with the name of the offered species.
@@ -2023,7 +2422,7 @@ void BufferInGameTradeMonName(void)
StringCopy(gStringVar2, gSpeciesNames[inGameTrade->species]);
}
void CreateInGameTradePokemonInternal(u8 playerSlot, u8 inGameTradeIdx)
static void CreateInGameTradePokemonInternal(u8 playerSlot, u8 inGameTradeIdx)
{
const struct InGameTrade *inGameTrade = &gInGameTrades[inGameTradeIdx];
u8 level = GetMonData(&gPlayerParty[playerSlot], MON_DATA_LEVEL);
@@ -2094,7 +2493,7 @@ void CreateInGameTradePokemon(void)
CreateInGameTradePokemonInternal(gSpecialVar_0x8005, gSpecialVar_0x8004);
}
void CB2_RunTradeAnim_LinkTrade(void)
static void CB2_RunTradeAnim_LinkTrade(void)
{
if (sub_8050F14() == TRUE)
{
@@ -2114,7 +2513,7 @@ void CB2_RunTradeAnim_LinkTrade(void)
UpdatePaletteFade();
}
void sub_8053E1C(void)
static void sub_8053E1C(void)
{
u8 mpId = sub_804FFC4();
sub_805383C();
@@ -2131,7 +2530,7 @@ void sub_8053E1C(void)
UpdatePaletteFade();
}
void sub_8053E8C(void)
static void sub_8053E8C(void)
{
switch (gMain.state)
{
@@ -2301,7 +2700,7 @@ void sub_8053E8C(void)
UpdatePaletteFade();
}
void sub_80543C4(void)
static void sub_80543C4(void)
{
if (!gPaletteFade.active)
{
@@ -2329,7 +2728,7 @@ void DoInGameTradeScene(void)
HelpSystem_Disable();
}
void sub_8054470(u8 taskId)
static void sub_8054470(u8 taskId)
{
if (!gPaletteFade.active)
{
@@ -2339,7 +2738,7 @@ void sub_8054470(u8 taskId)
}
}
void CheckPartnersMonForRibbons(void)
static void CheckPartnersMonForRibbons(void)
{
u8 nRibbons = 0;
u8 i;
@@ -2366,7 +2765,7 @@ void DrawTextOnTradeWindow(u8 windowId, const u8 *str, s8 speed)
CopyWindowToVram(windowId, 3);
}
void Task_AnimateWirelessSignal(u8 taskId)
static void Task_AnimateWirelessSignal(u8 taskId)
{
s16 *data = gTasks[taskId].data;
u16 r2 = 16 * gUnknown_826D250[data[0]][0];
@@ -2397,7 +2796,7 @@ void Task_AnimateWirelessSignal(u8 taskId)
data[1]++;
}
void c3_0805465C(u8 taskId)
static void c3_0805465C(u8 taskId)
{
s16 *data = gTasks[taskId].data;
@@ -2426,7 +2825,7 @@ void c3_0805465C(u8 taskId)
}
}
void sub_8054734(u8 taskId)
static void sub_8054734(u8 taskId)
{
s16 *data = gTasks[taskId].data;