diff options
author | Diegoisawesome <diego@domoreaweso.me> | 2018-12-31 01:23:27 -0600 |
---|---|---|
committer | Diegoisawesome <diego@domoreaweso.me> | 2018-12-31 01:23:27 -0600 |
commit | c5c6e437ec77138505cd236c572f8d9956a4c4b4 (patch) | |
tree | 90de4b4c9fa48322a7e2866192a93365aece5922 /src | |
parent | c22a12d8d68fa22941e3b945ca3f9037d3f1a5fb (diff) |
Document, cleanup, extract data from trade
Diffstat (limited to 'src')
-rw-r--r-- | src/evolution_scene.c | 47 | ||||
-rw-r--r-- | src/scrcmd.c | 3 | ||||
-rw-r--r-- | src/trade.c | 2060 |
3 files changed, 1565 insertions, 545 deletions
diff --git a/src/evolution_scene.c b/src/evolution_scene.c index 1070c69e9..1dc0f11e4 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -1,33 +1,34 @@ #include "global.h" -#include "evolution_scene.h" -#include "evolution_graphics.h" -#include "sprite.h" #include "alloc.h" -#include "task.h" -#include "palette.h" -#include "main.h" -#include "text.h" -#include "text_window.h" -#include "pokemon.h" -#include "string_util.h" #include "battle.h" -#include "scanline_effect.h" +#include "battle_message.h" +#include "bg.h" +#include "data2.h" #include "decompress.h" +#include "evolution_scene.h" +#include "evolution_graphics.h" +#include "gpu_regs.h" +#include "link.h" #include "m4a.h" +#include "main.h" #include "menu.h" +#include "overworld.h" +#include "palette.h" #include "pokedex.h" -#include "constants/species.h" +#include "pokemon.h" +#include "scanline_effect.h" #include "sound.h" -#include "constants/songs.h" -#include "overworld.h" -#include "battle_message.h" -#include "constants/battle_string_ids.h" -#include "gpu_regs.h" -#include "bg.h" -#include "link.h" -#include "util.h" +#include "sprite.h" +#include "string_util.h" +#include "task.h" +#include "text.h" +#include "text_window.h" #include "trig.h" -#include "data2.h" +#include "trade.h" +#include "util.h" +#include "constants/battle_string_ids.h" +#include "constants/species.h" +#include "constants/songs.h" struct EvoInfo { @@ -50,12 +51,8 @@ extern const struct CompressedSpriteSheet gMonFrontPicTable[]; // strings extern const u8 gText_CommunicationStandby5[]; -extern void sub_807B154(void); -extern void sub_807F19C(void); -extern void sub_807B140(void); extern void ShowSelectMovePokemonSummaryScreen(struct Pokemon *party, u8 monId, u8 partyCount, void *CB2_ptr, u16 move); extern u8 sub_81C1B94(void); -extern void sub_807F1A8(u8 arg0, const u8 *arg1, u8 arg2); extern void sub_800E084(void); // this file's functions diff --git a/src/scrcmd.c b/src/scrcmd.c index ab3af019d..c00cc68d1 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -53,8 +53,7 @@ typedef u16 (*SpecialFunc)(void); typedef void (*NativeFunc)(void); -extern const u8 *gUnknown_020375C0; - +EWRAM_DATA const u8 *gUnknown_020375C0 = NULL; static EWRAM_DATA u32 gUnknown_020375C4 = 0; static EWRAM_DATA u16 sPauseCounter = 0; static EWRAM_DATA u16 sMovingNpcId = 0; diff --git a/src/trade.c b/src/trade.c index 49d8b49b4..3b0d0c468 100644 --- a/src/trade.c +++ b/src/trade.c @@ -40,6 +40,7 @@ #include "trade.h" #include "util.h" #include "window.h" +#include "constants/easy_chat.h" #include "constants/items.h" #include "constants/moves.h" #include "constants/species.h" @@ -64,14 +65,17 @@ struct InGameTrade { /*0x38*/ u16 playerSpecies; }; -extern u8 gUnknown_02022C2C; -extern struct { +static EWRAM_DATA u8 *gUnknown_02032184 = NULL; +static EWRAM_DATA u8 *gUnknown_02032188[14] = {NULL}; +EWRAM_DATA struct MailStruct gUnknown_020321C0[PARTY_SIZE] = {0}; +EWRAM_DATA u8 gUnknown_02032298[2] = {0}; +static EWRAM_DATA struct { /*0x0000*/ u8 unk_0; /*0x0001*/ u8 unk_1; /*0x0002*/ u8 filler_2[0x28 - 2]; - /*0x0028*/ u8 unk_28[2][PARTY_SIZE]; - /*0x0034*/ u8 unk_34; - /*0x0035*/ u8 unk_35; + /*0x0028*/ u8 partyIcons[2][PARTY_SIZE]; + /*0x0034*/ u8 tradeMenuCursorSpriteIdx; + /*0x0035*/ u8 tradeMenuCursorPosition; /*0x0036*/ u8 partyCounts[2]; /*0x0038*/ u8 unk_38[12]; /*0x0044*/ u8 unk_44; @@ -104,13 +108,10 @@ extern struct { u8 unk_4; } unk_8D0[4]; /*0x08F0*/ u16 tilemapBuffer[0x400]; -} *gUnknown_0203229C; -extern u8 *gUnknown_02032184; -extern u8 *gUnknown_02032188[14]; -extern u8 gUnknown_02032298[2]; -extern struct { +} *gUnknown_0203229C = {NULL}; +static EWRAM_DATA struct { /*0x00*/ struct Pokemon mon; - /*0x64*/ u32 unk_64; + /*0x64*/ u32 timer; /*0x68*/ u32 unk_68[2]; /*0x70*/ u8 filler_70[2]; /*0x72*/ u8 unk_72; @@ -125,7 +126,7 @@ extern struct { /*0x91*/ u8 unk_91; /*0x92*/ u8 unk_92; /*0x93*/ u8 unk_93; - /*0x94*/ u16 unk_94; + /*0x94*/ u16 state; /*0x96*/ u8 filler_96[0xD2 - 0x96]; /*0xD2*/ u8 unk_D2; /*0xD3*/ u8 unk_D3; @@ -133,19 +134,18 @@ extern struct { /*0xD6*/ u16 unk_D6; /*0xD8*/ u16 unk_D8; /*0xDA*/ u16 unk_DA; - /*0xDC*/ s16 unk_DC; - /*0xDE*/ s16 unk_DE; + /*0xDC*/ u16 unk_DC; + /*0xDE*/ u16 unk_DE; /*0xE0*/ s16 bg1vofs; /*0xE2*/ s16 bg1hofs; /*0xE4*/ s16 bg2vofs; /*0xE6*/ s16 bg2hofs; - /*0xE8*/ s16 unk_E8; + /*0xE8*/ u16 unk_E8; /*0xEA*/ u16 unk_EA; /*0xEC*/ u16 unk_EC; /*0xEE*/ bool8 isLinkTrade; - /*0xEF*/ u8 filler_EF; /*0xF0*/ u16 tradeSpecies[2]; - /*0xF4*/ u16 unk_F4; + /*0xF4*/ u16 cachedMapMusic; /*0xF6*/ u8 unk_F6[3]; /*0xF9*/ u8 filler_F9; /*0xFA*/ u8 unk_FA; @@ -153,134 +153,1159 @@ extern struct { /*0xFC*/ u8 unk_FC; /*0xFD*/ u8 unk_FD; /*0xFE*/ u8 unk_FE; -} *gUnknown_020322A0; - -extern u8 gUnknown_0203CF20; - -extern const struct BgTemplate gUnknown_0832DEE4[4]; -extern const struct WindowTemplate gUnknown_0832DEF4[]; -extern const u8 gUnknown_0832DE24[][2]; -extern const u8 *gUnknown_0832DE94[]; -extern const struct SpriteTemplate gSpriteTemplate_832DC94; -extern const struct SpriteTemplate gSpriteTemplate_832DCAC; -extern const u8 gTradeStripesBG2Tilemap[]; -extern const u8 gTradeStripesBG3Tilemap[]; -extern struct MailStruct gUnknown_020321C0[PARTY_SIZE]; -extern const u8 gJPText_Shedinja[]; -extern const u8 gText_IsThisTradeOkay[]; -extern const u8 gUnknown_0832DCEC[][4][6]; -extern const struct MenuAction gUnknown_0832DEAC[]; -extern const struct WindowTemplate gUnknown_0832DF8C; -extern const u16 gTradePartyBoxTilemap[]; -extern const u16 gTradeMovesBoxTilemap[]; -extern const u8 gUnknown_0832DEE0[]; -extern const u8 gUnknown_0832DF99[][2]; -extern const u8 gText_EmptyString7[]; -extern const u8 gText_NewLine3[]; -extern const u8 gText_FourQuestionMarks[]; -extern const u8 *gUnknown_0832DEBC[]; -extern const struct SpritePalette gSpritePalette_TradeScreenText; -extern const struct SpritePalette gUnknown_0832DC44; -extern const struct SpriteSheet gUnknown_0832DC3C; -extern const u16 gUnknown_08338EA4[]; -extern const struct SpriteSheet gUnknown_08338D18; -extern const struct SpritePalette gUnknown_08338D20; -extern const struct BgTemplate gUnknown_08339014[4]; -extern const struct WindowTemplate gUnknown_08338FFC[]; -extern const u16 gUnknown_08331F60[]; -extern const u16 gUnknown_083359A0[]; -extern const u16 gUnknown_083369A0[]; -extern const u32 gUnknown_083379A0[]; -extern const u16 gUnknown_0832FFC0[]; -extern const u16 gUnknown_08337EA0[]; -extern const u32 gUnknown_08337EC0[]; -extern const u32 gUnknown_08338550[]; -extern const u8 gUnknown_08332F60[]; -extern const u8 gUnknown_083357A0[]; -extern const u8 gUnknown_083358A0[]; -extern const struct SpriteSheet gUnknown_08338D70; -extern const struct SpriteSheet gUnknown_08338DC0; -extern const struct SpriteSheet gUnknown_08338DF4; -extern const struct SpriteSheet gUnknown_08338E6C; -extern const struct SpritePalette gUnknown_08338D78; -extern const struct SpritePalette gUnknown_08338D80; -extern const struct InGameTrade gIngameTrades[]; -extern const struct SpriteTemplate gSpriteTemplate_8338D28; -extern const struct SpriteTemplate gSpriteTemplate_8338E74; -extern const struct SpriteTemplate gSpriteTemplate_8338DFC; -extern const struct SpriteTemplate gUnknown_08338D88; -extern const struct SpriteTemplate gSpriteTemplate_8338DC8; -extern const union AffineAnimCmd *const gSpriteAffineAnimTable_8338ECC[]; -extern const struct SpriteTemplate gSpriteTemplate_8338E74; -extern const struct SpriteTemplate gSpriteTemplate_8338E8C; -extern const s8 gTradeBallVerticalVelocityTable[]; -extern const u16 gIngameTradeMail[][10]; -extern const u8 gUnknown_08339090[][2]; -extern const u16 gUnknown_08337AA0[]; -extern const u16 gUnknown_08337CA0[]; +} *gUnknown_020322A0 = {NULL}; + +static bool32 sub_8077260(void); +static void sub_80773D0(void); +static void sub_807811C(void); +static void sub_807825C(void); +static void sub_80782B8(u8); +static void sub_8078388(void); +static bool8 shedinja_maker_maybe(void); +static void sub_8078C34(void); +static void sub_80795AC(void); +static void sub_807967C(u8); +static void sub_80796B4(u8); +static u8 sub_8079A3C(u8 *, bool8, u8); +static void sub_8079AA4(u8 *, u8, u8); +static void sub_8079BE0(u8); +static void sub_8079C4C(u8, u8, u8, u8, u8, u8); +static void sub_8079E44(u8); +static void sub_8079F74(void); +static void sub_8079F88(u8); +static void sub_807A000(u8 taskId); +static void sub_807A024(u8 taskId); +static void sub_807A048(u16, u8); +static u32 sub_807A09C(void); +static void sub_807A0C4(void); +static void sub_807A19C(u8); +static bool8 sub_807A1F0(void); +static void sub_807A308(const u8 *, u8 *, u8); +static void sub_807A320(u8); +static void sub_807A468(u8); +static void sub_807A53C(void); +static void sub_807A5B0(void); +static u32 sub_807A5F4(struct Pokemon *, int, int); +static void sub_807AA28(struct Sprite *sprite); +static void sub_807AA7C(struct Sprite *sprite); +static void sub_807AABC(struct Sprite *sprite); +static void sub_807AAE0(struct Sprite *sprite); +static void sub_807AB04(struct Sprite *sprite); +static void sub_807B170(void); +static void sub_807B60C(void); +static void sub_807B62C(u8); +static void sub_807BA94(void); +static void sub_807BAD8(void); +static u8 sub_807BBC8(void); +static u8 sub_807BBEC(void); +static u8 sub_807CFC8(void); +static void sub_807E55C(struct Sprite *sprite); +static void sub_807E5D8(struct Sprite *sprite); +static void sub_807E64C(struct Sprite *sprite); +static void sub_807E6AC(struct Sprite *sprite); +static void sub_807E784(void); +static void sub_807E974(struct MailStruct *mail, const struct InGameTrade *trade); +static void sub_807EA2C(void); +static void sub_807EACC(void); +static void sub_807EB50(void); +static void c2_080543C4(void); +static void sub_807F110(u8); +static void sub_807F14C(void); +static void c3_08054588(u8); +static void c3_0805465C(u8); +static void sub_807F39C(u8); +static void sub_807F464(void); + +static const u32 sUnref_0832C6A8[] = +{ + 0x00000F2C, + 0x00003D88, + 0x0000001C, + 0x00000024, + 0x00000064, + 0x00000528 +}; +static const u16 gTradeMovesBoxTilemap[] = INCBIN_U16("graphics/trade/moves_box_map.bin"); +static const u16 gTradePartyBoxTilemap[] = INCBIN_U16("graphics/trade/party_box_map.bin"); +static const u8 gTradeStripesBG2Tilemap[] = INCBIN_U8("graphics/trade/stripes_bg2_map.bin"); +static const u8 gTradeStripesBG3Tilemap[] = INCBIN_U8("graphics/trade/stripes_bg3_map.bin"); +static const u8 gText_EmptyString7[] = _(""); +static const u8 gText_ClrWhtHltTrspntShdwDrkGry[] = _("{COLOR WHITE}{HIGHLIGHT TRANSPARENT}{SHADOW DARK_GREY}"); +const u8 gText_MaleSymbol4[] = _("♂"); +const u8 gText_FemaleSymbol4[] = _("♀"); +const u8 gText_GenderlessSymbol[] = _(""); +static const u8 gText_SpaceMove[] = _(" MOVE"); +static const u8 gText_NewLine3[] = _("\n"); +static const u8 gText_Slash2[] = _("/"); +static const u8 gText_Lv2[] = _("Lv. "); +static const u8 gText_ThreeDashes2[] = _("---"); +static const u8 gText_FourQuestionMarks[] = _("????"); +static const u8 gText_832DAE4[] = _(""); +static const u8 gText_IsThisTradeOkay[] = _("Is this trade okay?"); +static const u8 gText_Cancel6[] = _("CANCEL"); +static const u8 gText_ChooseAPkmn[] = _("Choose a POKéMON."); +static const u8 gText_Summary3[] = _("SUMMARY"); +static const u8 gText_Trade2[] = _("TRADE"); +static const u8 gText_CancelTrade[] = _("Cancel trade?"); +static const u8 gJPText_832DB2E[] = _("Bボタン で もどります"); +static const u8 gText_Summary4[] = _("SUMMARY"); +static const u8 gText_Trade3[] = _("TRADE"); +static const u8 gText_CommunicationStandby6[] = _("{COLOR DARK_GREY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GREY}Communication standby…\nPlease wait."); +static const u8 gText_TheTradeHasBeenCanceled[] = _("{COLOR DARK_GREY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GREY}The trade has\nbeen canceled."); +static const u8 gText_YourOnlyPkmnForBattle[] = _("That's your only\nPOKéMON for battle."); +static const u8 gText_WaitingForYourFriend[] = _("{COLOR DARK_GREY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GREY}Waiting for your friend\nto finish…"); +static const u8 gText_YourFriendWantsToTrade[] = _("Your friend wants\nto trade POKéMON."); + +static const struct OamData gOamData_832DC14 = { + .shape = ST_OAM_H_RECTANGLE, + .size = 2, + .priority = 1 +}; + +static const struct OamData gOamData_832DC1C = { + .shape = ST_OAM_H_RECTANGLE, + .size = 3, + .priority = 1 +}; + +static const union AnimCmd gSpriteAnim_832DC24[] = { + ANIMCMD_FRAME(0, 5), + ANIMCMD_END +}; + +static const union AnimCmd gSpriteAnim_832DC2C[] = { + ANIMCMD_FRAME(32, 5), + ANIMCMD_END +}; + +static const union AnimCmd *const gSpriteAnimTable_832DC34[] = { + gSpriteAnim_832DC24, + gSpriteAnim_832DC2C +}; + +static const struct SpriteSheet gUnknown_0832DC3C = { + gUnknown_08DDC6E4, 0x800, 300 +}; + +static const struct SpritePalette gUnknown_0832DC44 = { + gUnknown_08DDB444, 2345 +}; + +static const union AnimCmd gSpriteAnim_832DC4C[] = { + ANIMCMD_FRAME(0, 5), + ANIMCMD_END +}; + +static const union AnimCmd gSpriteAnim_832DC54[] = { + ANIMCMD_FRAME(8, 5), + ANIMCMD_END +}; + +static const union AnimCmd gSpriteAnim_832DC5C[] = { + ANIMCMD_FRAME(16, 5), + ANIMCMD_END +}; + +static const union AnimCmd gSpriteAnim_832DC64[] = { + ANIMCMD_FRAME(24, 5), + ANIMCMD_END +}; + +static const union AnimCmd gSpriteAnim_832DC6C[] = { + ANIMCMD_FRAME(32, 5), + ANIMCMD_END +}; + +static const union AnimCmd gSpriteAnim_832DC74[] = { + ANIMCMD_FRAME(40, 5), + ANIMCMD_END +}; + +static const union AnimCmd *const gSpriteAnimTable_832DC7C[] = { + gSpriteAnim_832DC4C, + gSpriteAnim_832DC54, + gSpriteAnim_832DC5C, + gSpriteAnim_832DC64, + gSpriteAnim_832DC6C, + gSpriteAnim_832DC74 +}; + +static const struct SpriteTemplate gSpriteTemplate_832DC94 = +{ + .tileTag = 300, + .paletteTag = 2345, + .oam = &gOamData_832DC1C, + .anims = gSpriteAnimTable_832DC34, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +static const struct SpriteTemplate gSpriteTemplate_832DCAC = +{ + .tileTag = 200, + .paletteTag = 4925, + .oam = &gOamData_832DC14, + .anims = gSpriteAnimTable_832DC7C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +static const u16 TradeScreenTextPalette[] = INCBIN_U16("graphics/trade/text.gbapal"); +static const struct SpritePalette gSpritePalette_TradeScreenText = +{ + TradeScreenTextPalette, 4925 +}; + +// 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 + +static const u8 gTradeNextSelectedMonTable[][4][6] = +{ + { + {4, 2, 12, 12, 0, 0}, + {2, 4, 12, 12, 0, 0}, + {7, 6, 1, 0, 0, 0}, + {1, 6, 7, 0, 0, 0} + }, + { + {5, 3, 12, 12, 0, 0}, + {3, 5, 12, 12, 0, 0}, + {0, 7, 6, 1, 0, 0}, + {6, 7, 0, 1, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0}, + {4, 0, 0, 0, 0, 0}, + {9, 8, 7, 6, 0, 0}, + {3, 1, 0, 0, 0, 0} + }, + { + {1, 1, 1, 1, 0, 0}, + {5, 1, 1, 1, 0, 0}, + {2, 9, 8, 7, 0, 0}, + {8, 9, 6, 6, 0, 0} + }, + { + {2, 2, 2, 2, 0, 0}, + {0, 0, 0, 0, 0, 0}, + {11, 10, 9, 8, 7, 6}, + {5, 3, 1, 0, 0, 0} + }, + { + {3, 3, 3, 3, 0, 0}, + {1, 1, 1, 1, 0, 0}, + {4, 4, 4, 4, 0, 0}, + {10, 8, 6, 0, 0, 0} + }, + { + {10, 8, 12, 0, 0, 0}, + {8, 10, 12, 0, 0, 0}, + {1, 0, 0, 0, 0, 0}, + {7, 0, 1, 0, 0, 0} + }, + { + {12, 0, 0, 0, 0, 0}, + {9, 12, 0, 0, 0, 0}, + {6, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0} + }, + { + {6, 0, 0, 0, 0, 0}, + {10, 6, 0, 0, 0, 0}, + {3, 2, 1, 0, 0, 0}, + {9, 7, 0, 0, 0, 0} + }, + { + {7, 0, 0, 0, 0, 0}, + {11, 12, 0, 0, 0, 0}, + {8, 0, 0, 0, 0, 0}, + {2, 1, 0, 0, 0, 0} + }, + { + {8, 0, 0, 0, 0, 0}, + {6, 0, 0, 0, 0, 0}, + {5, 4, 3, 2, 1, 0}, + {11, 9, 7, 0, 0, 0} + }, + { + {9, 0, 0, 0, 0, 0}, + {12, 0, 0, 0, 0, 0}, + {10, 0, 0, 0, 0, 0}, + {4, 2, 0, 0, 0, 0} + }, + { + {11, 9, 7, 6, 0, 0}, + {7, 6, 0, 0, 0, 0}, + {12, 0, 0, 0, 0, 0}, + {12, 0, 0, 0, 0, 0} + } +}; + +static const u8 gTradeMonSpriteCoords[][2] = +{ + // Your party + {1, 5 }, + {8, 5 }, + {1, 10}, + {8, 10}, + {1, 15}, + {8, 15}, + + // Friend's party + {16, 5 }, + {23, 5 }, + {16, 10}, + {23, 10}, + {16, 15}, + {23, 15}, + + {23, 18} // CANCEL +}; + +static const u8 gTradeLevelDisplayCoords[][6][2] = { + { + // Your party + {5, 4}, + {12, 4}, + {5, 9}, + {12, 9}, + {5, 14}, + {12, 14}, + }, + { + // Friend's party + {20, 4}, + {27, 4}, + {20, 9}, + {27, 9}, + {20, 14}, + {27, 14} + } +}; + +static const u8 gTradeMonBoxCoords[][6][2] = { + { + // Your party + {1, 3}, + {8, 3}, + {1, 8}, + {8, 8}, + {1, 13}, + {8, 13}, + }, + { + // Friend's party + {16, 3}, + {23, 3}, + {16, 8}, + {23, 8}, + {16, 13}, + {23, 13} + } +}; + +static const u8 sUnref_0832DE6E[] = { + 0x00, 0x0e, + 0x0f, 0x1d, + 0x03, 0x05, + 0x03, 0x07, + 0x12, 0x05, + 0x12, 0x07, + 0x08, 0x07, + 0x16, 0x0c, + 0x08, 0x07, + 0x16, 0x0c, + 0x06, 0x07, + 0x18, 0x0c, + 0x06, 0x07, + 0x18, 0x0c, + 0x08, 0x07, + 0x16, 0x0c, + 0x07, 0x07, + 0x17, 0x0c +}; + +static const u8 *const gUnknown_0832DE94[] = +{ + gText_Cancel6, + gText_ChooseAPkmn, + gText_Summary3, + gText_Trade2, + gText_CancelTrade, + gJPText_832DB2E +}; + +static const struct MenuAction gUnknown_0832DEAC[] = { + {gText_Summary4, sub_807A000}, + {gText_Trade3, sub_807A024} +}; + +static const u8 *const gUnknown_0832DEBC[] = { + gText_CommunicationStandby6, + gText_TheTradeHasBeenCanceled, + gText_YourOnlyPkmnForBattle, + gText_OnlyPkmnForBattle, + gText_WaitingForYourFriend, + gText_YourFriendWantsToTrade, + gText_PkmnCantBeTradedNow, + gText_EggCantBeTradedNow, + gText_OtherTrainersPkmnCantBeTraded +}; + +static const u8 gUnknown_0832DEE0[] = { 0, 1, 2 }; + +static const struct BgTemplate gUnknown_0832DEE4[] = +{ + { + .bg = 0, + .charBaseIndex = 2, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 5, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 0, + .mapBaseIndex = 6, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, + { + .bg = 3, + .charBaseIndex = 0, + .mapBaseIndex = 7, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 + }, +}; + +static const struct WindowTemplate gUnknown_0832DEF4[] = +{ + { + .bg = 0, + .tilemapLeft = 4, + .tilemapTop = 7, + .width = 22, + .height = 4, + .paletteNum = 15, + .baseBlock = 30 + }, + { + .bg = 0, + .tilemapLeft = 19, + .tilemapTop = 15, + .width = 10, + .height = 4, + .paletteNum = 15, + .baseBlock = 118 + }, + { + .bg = 0, + .tilemapLeft = 0, + .tilemapTop = 5, + .width = 8, + .height = 2, + .paletteNum = 13, + .baseBlock = 158 + }, + { + .bg = 0, + .tilemapLeft = 7, + .tilemapTop = 5, + .width = 8, + .height = 2, + .paletteNum = 13, + .baseBlock = 174 + }, + { + .bg = 0, + .tilemapLeft = 0, + .tilemapTop = 10, + .width = 8, + .height = 2, + .paletteNum = 13, + .baseBlock = 190 + }, + { + .bg = 0, + .tilemapLeft = 7, + .tilemapTop = 10, + .width = 8, + .height = 2, + .paletteNum = 13, + .baseBlock = 206 + }, + { + .bg = 0, + .tilemapLeft = 0, + .tilemapTop = 15, + .width = 8, + .height = 2, + .paletteNum = 13, + .baseBlock = 222 + }, + { + .bg = 0, + .tilemapLeft = 7, + .tilemapTop = 15, + .width = 8, + .height = 2, + .paletteNum = 13, + .baseBlock = 238 + }, + { + .bg = 0, + .tilemapLeft = 15, + .tilemapTop = 5, + .width = 8, + .height = 2, + .paletteNum = 13, + .baseBlock = 254 + }, + { + .bg = 0, + .tilemapLeft = 22, + .tilemapTop = 5, + .width = 8, + .height = 2, + .paletteNum = 13, + .baseBlock = 270 + }, + { + .bg = 0, + .tilemapLeft = 15, + .tilemapTop = 10, + .width = 8, + .height = 2, + .paletteNum = 13, + .baseBlock = 286 + }, + { + .bg = 0, + .tilemapLeft = 22, + .tilemapTop = 10, + .width = 8, + .height = 2, + .paletteNum = 13, + .baseBlock = 302 + }, + { + .bg = 0, + .tilemapLeft = 15, + .tilemapTop = 15, + .width = 8, + .height = 2, + .paletteNum = 13, + .baseBlock = 318 + }, + { + .bg = 0, + .tilemapLeft = 22, + .tilemapTop = 15, + .width = 8, + .height = 2, + .paletteNum = 13, + .baseBlock = 334 + }, + { + .bg = 0, + .tilemapLeft = 2, + .tilemapTop = 5, + .width = 14, + .height = 2, + .paletteNum = 13, + .baseBlock = 350 + }, + { + .bg = 0, + .tilemapLeft = 3, + .tilemapTop = 8, + .width = 11, + .height = 8, + .paletteNum = 15, + .baseBlock = 378 + }, + { + .bg = 0, + .tilemapLeft = 17, + .tilemapTop = 5, + .width = 14, + .height = 2, + .paletteNum = 15, + .baseBlock = 466 + }, + { + .bg = 0, + .tilemapLeft = 18, + .tilemapTop = 8, + .width = 11, + .height = 8, + .paletteNum = 15, + .baseBlock = 494 + }, + DUMMY_WIN_TEMPLATE, +}; + +static const struct WindowTemplate gUnknown_0832DF8C = +{ + .bg = 0, + .tilemapLeft = 23, + .tilemapTop = 13, + .width = 5, + .height = 4, + .paletteNum = 15, + .baseBlock = 582 +}; + +static const u8 gJPText_Shedinja[] = _("ヌケニン"); +static const u8 gUnknown_0832DF99[][2] = +{ + {4, 3}, + {19, 3}, + {0, 0} +}; + +static const u16 gTradeBallPalette[] = INCBIN_U16("graphics/trade/ball.gbapal"); +static const u8 gTradeBallTiles[] = INCBIN_U8("graphics/trade/ball.4bpp"); +static const u8 gUnknown_832E5C0[] = INCBIN_U8("graphics/trade/pokeball_symbol.8bpp"); +static const u16 gUnknown_0832FFC0[] = 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_083308E0[] = 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_08330940[] = 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_08331F60[] = INCBIN_U16("graphics/trade/shadow_map.bin"); +static const u8 gUnknown_08332F60[] = INCBIN_U8("graphics/trade/gba_affine.8bpp"); +static const u8 sFiller_08335760[64] = {}; +static const u8 gUnknown_083357A0[] = INCBIN_U8("graphics/trade/gba_affine_map_cable.bin"); +static const u8 gUnknown_083358A0[] = INCBIN_U8("graphics/trade/gba_affine_map_wireless.bin"); +static const u16 gUnknown_083359A0[] = INCBIN_U16("graphics/trade/gba_map_wireless.bin"); +static const u16 gUnknown_083369A0[] = INCBIN_U16("graphics/trade/gba_map_cable.bin"); +static const u32 gUnknown_083379A0[] = INCBIN_U32("graphics/trade/unknown_3379A0.bin.lz"); +static const u16 gUnknown_08337AA0[] = INCBIN_U16("graphics/trade/wireless_signal_send.gbapal"); +static const u16 gUnknown_08337CA0[] = INCBIN_U16("graphics/trade/wireless_signal_receive.gbapal"); +static const u16 gUnknown_08337EA0[] = INCBIN_U16("graphics/trade/black.gbapal"); +static const u32 gUnknown_08337EC0[] = INCBIN_U32("graphics/trade/wireless_signal.4bpp.lz"); +static const u32 gUnknown_08338550[] = INCBIN_U32("graphics/trade/wireless_signal.bin.lz"); + +static const struct OamData gOamData_8338C44 = { + .affineMode = 1, + .size = 1 +}; + +static const union AnimCmd gSpriteAnim_8338C4C[] = { + ANIMCMD_FRAME( 0, 3), + ANIMCMD_FRAME( 4, 3), + ANIMCMD_FRAME( 8, 3), + ANIMCMD_FRAME(12, 3), + ANIMCMD_FRAME(16, 3), + ANIMCMD_FRAME(20, 3), + ANIMCMD_FRAME(24, 3), + ANIMCMD_FRAME(28, 3), + ANIMCMD_FRAME(32, 3), + ANIMCMD_FRAME(36, 3), + ANIMCMD_FRAME(40, 3), + ANIMCMD_FRAME(44, 3), + ANIMCMD_LOOP(1), + ANIMCMD_FRAME( 0, 3), + ANIMCMD_END +}; + +static const union AnimCmd gSpriteAnim_8338C88[] = { + ANIMCMD_FRAME( 0, 3), + ANIMCMD_FRAME( 4, 3), + ANIMCMD_FRAME( 8, 3), + ANIMCMD_FRAME(12, 3), + ANIMCMD_FRAME(16, 3), + ANIMCMD_FRAME(20, 3), + ANIMCMD_FRAME(24, 3), + ANIMCMD_FRAME(28, 3), + ANIMCMD_FRAME(32, 3), + ANIMCMD_FRAME(36, 3), + ANIMCMD_FRAME(40, 3), + ANIMCMD_FRAME(44, 3), + ANIMCMD_LOOP(2), + ANIMCMD_FRAME( 0, 3), + ANIMCMD_END +}; + +static const union AnimCmd *const gSpriteAnimTable_8338C88[] = { + gSpriteAnim_8338C4C, + gSpriteAnim_8338C88 +}; + +static const union AffineAnimCmd gSpriteAffineAnim_8338CCC[] = { + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_END +}; + +static const union AffineAnimCmd gSpriteAffineAnim_8338CDC[] = { + AFFINEANIMCMD_FRAME(-8, 0, 0, 20), + AFFINEANIMCMD_END +}; + +static const union AffineAnimCmd gSpriteAffineAnim_8338CEC[] = { + AFFINEANIMCMD_FRAME(0x60, 0x100, 0, 0), + AFFINEANIMCMD_FRAME( 0, 0, 0, 5), + AFFINEANIMCMD_FRAME( 8, 0, 0, 20), + AFFINEANIMCMD_END +}; + +static const union AffineAnimCmd *const gSpriteAffineAnimTable_8338D0C[] = { + gSpriteAffineAnim_8338CCC, + gSpriteAffineAnim_8338CDC, + gSpriteAffineAnim_8338CEC +}; + +static const struct SpriteSheet gUnknown_08338D18 = { + gTradeBallTiles, 0x600, 5557 +}; + +static const struct SpritePalette gUnknown_08338D20 = { + gTradeBallPalette, 5558 +}; + +static const struct SpriteTemplate gSpriteTemplate_8338D28 = { + 5557, + 5558, + &gOamData_8338C44, + gSpriteAnimTable_8338C88, + NULL, + gSpriteAffineAnimTable_8338D0C, + sub_807E55C +}; + +static const struct OamData gOamData_8338D40 = { + .affineMode = 1, + .objMode = 1, + .size = 2, + .priority = 1 +}; + +static const union AnimCmd gSpriteAnim_8338D48[] = { + ANIMCMD_FRAME(0, 5, .hFlip = TRUE, .vFlip = TRUE), + ANIMCMD_END +}; + +static const union AnimCmd *const gSpriteAnimTable_8338D50[] = { + gSpriteAnim_8338D48 +}; + +static const union AffineAnimCmd gSpriteAffineAnim_8338D54[] = { + AFFINEANIMCMD_FRAME(-10, -10, 0, 5), + AFFINEANIMCMD_FRAME(10, 10, 0, 5), + AFFINEANIMCMD_JUMP(0) +}; + +static const union AffineAnimCmd *const gSpriteAffineAnimTable_8338D6C[] = { + gSpriteAffineAnim_8338D54 +}; + +static const struct SpriteSheet gUnknown_08338D70 = { + gTradeGlow1Tiles, 0x200, 5550 +}; + +static const struct SpritePalette gUnknown_08338D78 = { + gUnknown_08330940, 5551 +}; + +static const struct SpritePalette gUnknown_08338D80 = { + gUnknown_083308E0, 5555 +}; + +static const struct SpriteTemplate gUnknown_08338D88 = { + 5550, + 5551, + &gOamData_8338D40, + gSpriteAnimTable_8338D50, + NULL, + gSpriteAffineAnimTable_8338D6C, + sub_807AA28 +}; + +static const struct OamData gOamData_8338DA0 = { + .shape = ST_OAM_V_RECTANGLE, + .size = 2, + .priority = 1 +}; + +static const union AnimCmd gSpriteAnim_8338DA8[] = { + ANIMCMD_FRAME(0, 5, .vFlip = TRUE, .hFlip = TRUE), + ANIMCMD_END +}; + +static const union AnimCmd gSpriteAnim_8338DB0[] = { + ANIMCMD_FRAME(8, 5, .vFlip = TRUE, .hFlip = TRUE), + ANIMCMD_END +}; + +static const union AnimCmd *const gSpriteAnimTable_8338DB8[] = { + gSpriteAnim_8338DA8, + gSpriteAnim_8338DB0 +}; + +static const struct SpriteSheet gUnknown_08338DC0 = { + gTradeGlow2Tiles, 0x300, 5552 +}; + +static const struct SpriteTemplate gSpriteTemplate_8338DC8 = { + 5552, + 5551, + &gOamData_8338DA0, + gSpriteAnimTable_8338DB8, + NULL, + gDummySpriteAffineAnimTable, + sub_807AA7C +}; + +static const struct OamData gOamData_8338DE0 = { + .shape = ST_OAM_V_RECTANGLE, + .size = 2, + .priority = 1 +}; + +static const union AnimCmd gSpriteAnim_8338DE8[] = { + ANIMCMD_FRAME(0, 10), + ANIMCMD_END +}; + +static const union AnimCmd *const gSpriteAnimTable_8338DF0[] = { + gSpriteAnim_8338DE8 +}; + +static const struct SpriteSheet gUnknown_08338DF4 = { + gTradeCableEndTiles, 0x100, 5554 +}; + +static const struct SpriteTemplate gSpriteTemplate_8338DFC = { + 5554, + 5555, + &gOamData_8338DE0, + gSpriteAnimTable_8338DF0, + NULL, + gDummySpriteAffineAnimTable, + sub_807AABC +}; + +static const struct OamData gOamData_8338E14 = { + .shape = ST_OAM_H_RECTANGLE, + .size = 3, + .priority = 1 +}; + +static const union AnimCmd gSpriteAnim_8338E1C[] = { + ANIMCMD_FRAME( 0, 2, .vFlip = TRUE, .hFlip = TRUE), + ANIMCMD_FRAME(32, 2, .vFlip = TRUE, .hFlip = TRUE), + ANIMCMD_FRAME(64, 2, .vFlip = TRUE, .hFlip = TRUE), + ANIMCMD_FRAME(96, 2, .vFlip = TRUE, .hFlip = TRUE), + ANIMCMD_FRAME(64, 2, .vFlip = TRUE, .hFlip = TRUE), + ANIMCMD_FRAME(32, 2, .vFlip = TRUE, .hFlip = TRUE), + ANIMCMD_FRAME( 0, 2, .vFlip = TRUE, .hFlip = TRUE), + ANIMCMD_LOOP(8), + ANIMCMD_END +}; + +static const union AnimCmd gSpriteAnim_8338E40[] = { + ANIMCMD_FRAME( 0, 2, .vFlip = TRUE, .hFlip = TRUE), + ANIMCMD_FRAME(32, 2, .vFlip = TRUE, .hFlip = TRUE), + ANIMCMD_FRAME(64, 2, .vFlip = TRUE, .hFlip = TRUE), + ANIMCMD_FRAME(96, 2, .vFlip = TRUE, .hFlip = TRUE), + ANIMCMD_FRAME(64, 2, .vFlip = TRUE, .hFlip = TRUE), + ANIMCMD_FRAME(32, 2, .vFlip = TRUE, .hFlip = TRUE), + ANIMCMD_FRAME( 0, 2, .vFlip = TRUE, .hFlip = TRUE), + ANIMCMD_LOOP(2), + ANIMCMD_END +}; + +static const union AnimCmd *const gSpriteAnimTable_8338E64[] = { + gSpriteAnim_8338E1C +}; + +static const union AnimCmd *const gSpriteAnimTable_8338E68[] = { + gSpriteAnim_8338E40 +}; + +static const struct SpriteSheet gUnknown_08338E6C = { + gTradeGBAScreenTiles, 0x1000, 5556 +}; + +static const struct SpriteTemplate gSpriteTemplate_8338E74 = { + 5556, + 5555, + &gOamData_8338E14, + gSpriteAnimTable_8338E64, + NULL, + gDummySpriteAffineAnimTable, + sub_807AB04 +}; + +static const struct SpriteTemplate gSpriteTemplate_8338E8C = { + 5556, + 5555, + &gOamData_8338E14, + gSpriteAnimTable_8338E68, + NULL, + gDummySpriteAffineAnimTable, + sub_807AB04 +}; + +static const u16 gUnknown_08338EA4[] = INCBIN_U16("graphics/trade/unknown_338EA4.gbapal"); + +static const union AffineAnimCmd gSpriteAffineAnim_8338EBC[] = { + AFFINEANIMCMD_FRAME(-0x100, 0x100, 0, 0), + AFFINEANIMCMD_JUMP(0) +}; + +static const union AffineAnimCmd *const gSpriteAffineAnimTable_8338ECC[] = { + gSpriteAffineAnim_8338EBC +}; + +static const struct InGameTrade gIngameTrades[] = { + { + _("DOTS"), SPECIES_SEEDOT, + 5, 4, 5, 4, 4, 4, + TRUE, 38726, + 30, 5, 5, 5, 5, + 0x84, + ITEM_CHESTO_BERRY, -1, + _("KOBE"), MALE, 10, + SPECIES_RALTS + }, { + _("PLUSES"), SPECIES_PLUSLE, + 4, 4, 4, 5, 5, 4, + FALSE, 73996, + 5, 5, 30, 5, 5, + 0x6F, + ITEM_WOOD_MAIL, 0, + _("ROMAN"), MALE, 10, + SPECIES_VOLBEAT + }, { + _("SEASOR"), + SPECIES_HORSEA, + 5, 4, 4, 4, 5, 4, + FALSE, 46285, + 5, 5, 5, 5, 30, + 0x7F, + ITEM_WAVE_MAIL, 1, + _("SKYLAR"), MALE, 10, + SPECIES_BAGON + }, { + _("MEOWOW"), + SPECIES_MEOWTH, + 4, 5, 4, 5, 4, 4, + FALSE, 91481, + 5, 5, 5, 30, 5, + 0x8B, + ITEM_RETRO_MAIL, 2, + _("ISIS"), FEMALE, 10, + SPECIES_SKITTY + } +}; + +static const u16 gIngameTradeMail[][10] = { + { + EC_WORD_BE, + EC_WORD_NICE, + EC_WORD_TO, + EC_POKEMON(PLUSLE), + EC_WORD_EXCL, + EC_POKEMON(VOLBEAT), + EC_WORD_WILL, + EC_WORD_BE, + EC_WORD_FANTASTIC, + 0 + }, { + EC_WORD_I, + EC_WORD_WILL, + EC_WORD_MAKE, + EC_POKEMON(BAGON), + EC_WORD_TOUGH, + EC_WORD_PLEASE, + EC_WORD_TRAIN, + EC_POKEMON(HORSEA), + EC_WORD_WELL, + 0 + }, { + EC_WORD_THANK_YOU, + EC_WORD_FOR, + EC_POKEMON(SKITTY), + EC_POKEMON2(MEOWTH), + EC_WORD_CRIES, + EC_WORD_IN, + EC_WORD_A, + EC_WORD_CUTE, + EC_WORD_WAY, + 0 + } +}; + +static const struct WindowTemplate gUnknown_08338FFC[] = +{ + { + .bg = 0, + .tilemapLeft = 2, + .tilemapTop = 15, + .width = 26, + .height = 4, + .paletteNum = 0, + .baseBlock = 64 + }, + DUMMY_WIN_TEMPLATE +}; + +const struct WindowTemplate gUnknown_0833900C = +{ + .bg = 0, + .tilemapLeft = 21, + .tilemapTop = 9, + .width = 5, + .height = 4, + .paletteNum = 15, + .baseBlock = 188 +}; + +static const struct BgTemplate gUnknown_08339014[] = +{ + { + .bg = 0, + .charBaseIndex = 3, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 5, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 1, + .mapBaseIndex = 18, + .screenSize = 1, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, + { + .bg = 3, + .charBaseIndex = 0, + .mapBaseIndex = 6, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 + }, +}; + +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_08339090[][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}, + {0, 0} +}; // external to this file extern const struct CompressedSpriteSheet gMonFrontPicTable[]; extern const struct MonCoords gMonFrontPicCoords[]; -bool32 sub_8077260(void); -void sub_80773D0(void); -void sub_807811C(void); -void sub_807A19C(u8); -bool8 shedinja_maker_maybe(void); -void sub_807A308(const u8 *, u8 *, u8); -bool8 sub_807A1F0(void); -void sub_807A320(u8); -void sub_8079BE0(u8); -void sub_8078388(void); -void sub_80782B8(u8); -void sub_807A468(u8); -void sub_807A53C(void); -void sub_8078C34(void); -void sub_807825C(void); -void sub_807A5B0(void); -void sub_80795AC(void); -void sub_807A0C4(void); -void sub_80796B4(u8); -void sub_8079E44(u8); -void sub_807967C(u8); -void sub_807A048(u16, u8); -void sub_8079F74(void); -u32 sub_807A5F4(struct Pokemon *, int, int); -void sub_8079F88(u8); -u32 sub_807A09C(void); -u8 sub_8079A3C(u8 *, bool8, u8); -void sub_8079AA4(u8 *, u8, u8); -void sub_8079C4C(u8, u8, u8, u8, u8, u8); -void sub_807B170(void); -void sub_807B154(void); -void sub_807BA94(void); -void sub_807B140(void); -void sub_807BAD8(void); -void sub_807EA2C(void); -void sub_807B62C(u8); -void sub_807B60C(void); -u8 sub_807BBC8(void); -u8 sub_807CFC8(void); -u8 sub_807BBEC(void); -void sub_807F1A8(u8, const u8 *, u8); -void sub_807E5D8(struct Sprite *); -void sub_807AAE0(struct Sprite *); -void sub_807E6AC(struct Sprite *); -void sub_807F14C(void); -void sub_807E784(void); -void c3_08054588(u8); -void c3_0805465C(u8); -void sub_807F39C(u8); -void sub_807EB50(void); -void sub_807F464(void); -void sub_807E64C(struct Sprite *); -void sub_807E974(struct MailStruct *mail, const struct InGameTrade *trade); -void sub_807EACC(void); -void c2_080543C4(void); -void sub_807F110(u8); - -bool8 sub_8077170(const void *a0, u32 a1) +static bool8 sub_8077170(const void *a0, u32 a1) { if (gUnknown_02022C2C == 29) { @@ -293,12 +1318,12 @@ bool8 sub_8077170(const void *a0, u32 a1) } } -void sub_80771AC(u8 a0) +static void sub_80771AC(u8 a0) { sub_800A4D8(a0); } -bool32 sub_80771BC(void) +static bool32 sub_80771BC(void) { if (gUnknown_02022C2C == 29) { @@ -317,12 +1342,12 @@ bool32 sub_80771BC(void) } } -u32 sub_8077200(void) +static u32 sub_8077200(void) { return GetBlockReceivedStatus(); } -void sub_8077210(void) +static void sub_8077210(void) { if (sub_8077260()) { @@ -334,7 +1359,7 @@ void sub_8077210(void) } } -void sub_8077234(u32 a0) +static void sub_8077234(u32 a0) { if (sub_8077260()) { @@ -346,7 +1371,7 @@ void sub_8077234(u32 a0) } } -bool32 sub_8077260(void) +static bool32 sub_8077260(void) { if (gWirelessCommType != 0 && gUnknown_02022C2C == 29) { @@ -358,17 +1383,17 @@ bool32 sub_8077260(void) } } -void sub_8077288(u8 unused) +static void sub_8077288(u8 unused) { sub_800ADF8(); } -bool32 IsLinkTaskFinished(void) +static bool32 IsLinkTaskFinished(void) { return sub_800A520(); } -void sub_80772A4(void) +static void sub_80772A4(void) { ResetSpriteData(); FreeAllSpritePalettes(); @@ -418,7 +1443,7 @@ void sub_80773AC(void) gEnemyPartyCount = 0; } -void sub_80773D0(void) +static void sub_80773D0(void) { int i; struct SpriteTemplate temp; @@ -544,10 +1569,10 @@ void sub_80773D0(void) for (i = 0; i < gUnknown_0203229C->partyCounts[0]; i++) { struct Pokemon *mon = &gPlayerParty[i]; - gUnknown_0203229C->unk_28[0][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2), + gUnknown_0203229C->partyIcons[0][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2), sub_80D3014, - (gUnknown_0832DE24[i][0] * 8) + 14, - (gUnknown_0832DE24[i][1] * 8) - 12, + (gTradeMonSpriteCoords[i][0] * 8) + 14, + (gTradeMonSpriteCoords[i][1] * 8) - 12, 1, GetMonData(mon, MON_DATA_PERSONALITY), TRUE); @@ -556,10 +1581,10 @@ void sub_80773D0(void) for (i = 0; i < gUnknown_0203229C->partyCounts[1]; i++) { struct Pokemon *mon = &gEnemyParty[i]; - gUnknown_0203229C->unk_28[1][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2, NULL), + gUnknown_0203229C->partyIcons[1][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2, NULL), sub_80D3014, - (gUnknown_0832DE24[i + PARTY_SIZE][0] * 8) + 14, - (gUnknown_0832DE24[i + PARTY_SIZE][1] * 8) - 12, + (gTradeMonSpriteCoords[i + PARTY_SIZE][0] * 8) + 14, + (gTradeMonSpriteCoords[i + PARTY_SIZE][1] * 8) - 12, 1, GetMonData(mon, MON_DATA_PERSONALITY), FALSE); @@ -568,11 +1593,11 @@ void sub_80773D0(void) break; case 8: LoadHeldItemIcons(); - sub_81B5D4C(&gUnknown_0203229C->partyCounts[0], gUnknown_0203229C->unk_28[0], 0); + sub_81B5D4C(&gUnknown_0203229C->partyCounts[0], gUnknown_0203229C->partyIcons[0], 0); gMain.state++; break; case 9: - sub_81B5D4C(&gUnknown_0203229C->partyCounts[0], gUnknown_0203229C->unk_28[0], 1); + sub_81B5D4C(&gUnknown_0203229C->partyCounts[0], gUnknown_0203229C->partyIcons[0], 1); gMain.state++; break; case 10: @@ -621,8 +1646,8 @@ void sub_80773D0(void) CreateSprite(&temp, (i * 32) + 24, 150, 1); } - gUnknown_0203229C->unk_34 = CreateSprite(&gSpriteTemplate_832DC94, gUnknown_0832DE24[0][0] * 8 + 32, gUnknown_0832DE24[0][1] * 8, 2); - gUnknown_0203229C->unk_35 = 0; + gUnknown_0203229C->tradeMenuCursorSpriteIdx = CreateSprite(&gSpriteTemplate_832DC94, gTradeMonSpriteCoords[0][0] * 8 + 32, gTradeMonSpriteCoords[0][1] * 8, 2); + gUnknown_0203229C->tradeMenuCursorPosition = 0; gMain.state++; rbox_fill_rectangle(0); break; @@ -639,7 +1664,8 @@ void sub_80773D0(void) sub_807A320(1); sub_8079BE0(1); gMain.state++; - case 16: // fallthrough + // fallthrough + case 16: sub_80782B8(0); gMain.state++; break; @@ -681,7 +1707,7 @@ void sub_80773D0(void) UpdatePaletteFade(); } -void sub_8077B74(void) +static void sub_8077B74(void) { int i; struct SpriteTemplate temp; @@ -730,10 +1756,10 @@ void sub_8077B74(void) for (i = 0; i < gUnknown_0203229C->partyCounts[0]; i++) { struct Pokemon *mon = &gPlayerParty[i]; - gUnknown_0203229C->unk_28[0][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2, NULL), + gUnknown_0203229C->partyIcons[0][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2, NULL), sub_80D3014, - (gUnknown_0832DE24[i][0] * 8) + 14, - (gUnknown_0832DE24[i][1] * 8) - 12, + (gTradeMonSpriteCoords[i][0] * 8) + 14, + (gTradeMonSpriteCoords[i][1] * 8) - 12, 1, GetMonData(mon, MON_DATA_PERSONALITY), TRUE); @@ -742,10 +1768,10 @@ void sub_8077B74(void) for (i = 0; i < gUnknown_0203229C->partyCounts[1]; i++) { struct Pokemon *mon = &gEnemyParty[i]; - gUnknown_0203229C->unk_28[1][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2, NULL), + gUnknown_0203229C->partyIcons[1][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2, NULL), sub_80D3014, - (gUnknown_0832DE24[i + PARTY_SIZE][0] * 8) + 14, - (gUnknown_0832DE24[i + PARTY_SIZE][1] * 8) - 12, + (gTradeMonSpriteCoords[i + PARTY_SIZE][0] * 8) + 14, + (gTradeMonSpriteCoords[i + PARTY_SIZE][1] * 8) - 12, 1, GetMonData(mon, MON_DATA_PERSONALITY), FALSE); @@ -754,11 +1780,11 @@ void sub_8077B74(void) break; case 8: LoadHeldItemIcons(); - sub_81B5D4C(&gUnknown_0203229C->partyCounts[0], gUnknown_0203229C->unk_28[0], 0); + sub_81B5D4C(&gUnknown_0203229C->partyCounts[0], gUnknown_0203229C->partyIcons[0], 0); gMain.state++; break; case 9: - sub_81B5D4C(&gUnknown_0203229C->partyCounts[0], gUnknown_0203229C->unk_28[0], 1); + sub_81B5D4C(&gUnknown_0203229C->partyCounts[0], gUnknown_0203229C->partyIcons[0], 1); gMain.state++; break; case 10: @@ -807,16 +1833,16 @@ void sub_8077B74(void) CreateSprite(&temp, (i * 32) + 24, 150, 1); } - if (gUnknown_0203229C->unk_35 < PARTY_SIZE) + if (gUnknown_0203229C->tradeMenuCursorPosition < PARTY_SIZE) { - gUnknown_0203229C->unk_35 = gUnknown_0203CF20; + gUnknown_0203229C->tradeMenuCursorPosition = gUnknown_0203CF20; } else { - gUnknown_0203229C->unk_35 = gUnknown_0203CF20 + PARTY_SIZE; + gUnknown_0203229C->tradeMenuCursorPosition = gUnknown_0203CF20 + PARTY_SIZE; } - gUnknown_0203229C->unk_34 = CreateSprite(&gSpriteTemplate_832DC94, gUnknown_0832DE24[gUnknown_0203229C->unk_35][0] * 8 + 32, gUnknown_0832DE24[gUnknown_0203229C->unk_35][1] * 8, 2); + gUnknown_0203229C->tradeMenuCursorSpriteIdx = CreateSprite(&gSpriteTemplate_832DC94, gTradeMonSpriteCoords[gUnknown_0203229C->tradeMenuCursorPosition][0] * 8 + 32, gTradeMonSpriteCoords[gUnknown_0203229C->tradeMenuCursorPosition][1] * 8, 2); gMain.state = 16; break; case 16: @@ -862,14 +1888,14 @@ void sub_8077B74(void) UpdatePaletteFade(); } -void sub_807811C(void) +static void sub_807811C(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); } -void sub_8078130(void) +static void sub_8078130(void) { if (++gUnknown_0203229C->unk_A8 > 15) { @@ -878,11 +1904,11 @@ void sub_8078130(void) } } -void sub_807816C(void) +static void sub_807816C(void) { if (!gPaletteFade.active) { - gUnknown_02032298[0] = gUnknown_0203229C->unk_35; + gUnknown_02032298[0] = gUnknown_0203229C->tradeMenuCursorPosition; gUnknown_02032298[1] = gUnknown_0203229C->unk_7E; if (gWirelessCommType != 0) @@ -897,7 +1923,7 @@ void sub_807816C(void) } } -void sub_80781C8(void) +static void sub_80781C8(void) { gMain.savedCallback = sub_80773AC; @@ -926,7 +1952,7 @@ void sub_80781C8(void) } } -void sub_807825C(void) +static void sub_807825C(void) { u8 temp; @@ -945,7 +1971,7 @@ void sub_807825C(void) UpdatePaletteFade(); } -void sub_80782B8(u8 a0) +static void sub_80782B8(u8 a0) { int i; @@ -976,7 +2002,7 @@ void sub_80782B8(u8 a0) } } -void sub_8078388(void) +static void sub_8078388(void) { int i; @@ -984,7 +2010,7 @@ void sub_8078388(void) { if (i < gUnknown_0203229C->partyCounts[0]) { - gSprites[gUnknown_0203229C->unk_28[0][i]].invisible = FALSE; + gSprites[gUnknown_0203229C->partyIcons[0][i]].invisible = FALSE; gUnknown_0203229C->unk_38[i] = TRUE; } else @@ -994,7 +2020,7 @@ void sub_8078388(void) if (i < gUnknown_0203229C->partyCounts[1]) { - gSprites[gUnknown_0203229C->unk_28[1][i]].invisible = FALSE; + gSprites[gUnknown_0203229C->partyIcons[1][i]].invisible = FALSE; gUnknown_0203229C->unk_38[i + PARTY_SIZE] = TRUE; } else @@ -1006,7 +2032,7 @@ void sub_8078388(void) gUnknown_0203229C->unk_44 = 1; } -void sub_8078438(u8 *dest, const u8 *src, u32 count) +static void sub_8078438(u8 *dest, const u8 *src, u32 count) { u32 i; @@ -1016,7 +2042,7 @@ void sub_8078438(u8 *dest, const u8 *src, u32 count) } } -bool8 shedinja_maker_maybe(void) +static bool8 shedinja_maker_maybe(void) { u8 id = GetMultiplayerId(); int i; @@ -1170,12 +2196,12 @@ bool8 shedinja_maker_maybe(void) return FALSE; } -void sub_80787B8(void) +static void sub_80787B8(void) { sub_807A308(gText_IsThisTradeOkay, (void *)(OBJ_VRAM0 + (gUnknown_0203229C->unk_72 * 32)), 24); } -void sub_80787E0(u8 a0, u8 a1) +static void sub_80787E0(u8 a0, u8 a1) { if (a1 & 1) { @@ -1219,7 +2245,7 @@ void sub_80787E0(u8 a0, u8 a1) } } -void sub_8078900(u8 a0, u8 a1) +static void sub_8078900(u8 a0, u8 a1) { if (a1 & 1) { @@ -1237,7 +2263,7 @@ void sub_8078900(u8 a0, u8 a1) case 0xDDDD: gUnknown_0203229C->unk_7E = gBlockRecvBuffer[0][1] + 6; rbox_fill_rectangle(0); - sub_807967C(gUnknown_0203229C->unk_35); + sub_807967C(gUnknown_0203229C->tradeMenuCursorPosition); sub_807967C(gUnknown_0203229C->unk_7E); gUnknown_0203229C->unk_6F = 7; break; @@ -1258,7 +2284,7 @@ void sub_8078900(u8 a0, u8 a1) } } -void sub_80789FC(void) +static void sub_80789FC(void) { if (gUnknown_0203229C->unk_78 && gUnknown_0203229C->unk_79) { @@ -1266,7 +2292,7 @@ void sub_80789FC(void) { gUnknown_0203229C->unk_6F = 6; gUnknown_0203229C->unk_80[0] = 0xDDDD; - gUnknown_0203229C->unk_80[1] = gUnknown_0203229C->unk_35; + gUnknown_0203229C->unk_80[1] = gUnknown_0203229C->tradeMenuCursorPosition; sub_807A048(5, 0); gUnknown_0203229C->unk_78 = gUnknown_0203229C->unk_79 = 0; } @@ -1326,19 +2352,19 @@ void sub_80789FC(void) } } -void sub_8078BFC(u16 *a0, u16 a1, u16 a2) +static void sub_8078BFC(u16 *a0, u16 a1, u16 a2) { a0[0] = a1; a0[1] = a2; sub_807A048(5, 0); } -void sub_8078C10(u16 a0, u16 a1) +static void sub_8078C10(u16 a0, u16 a1) { sub_8078BFC(gUnknown_0203229C->unk_80, a0, a1); } -void sub_8078C34(void) +static void sub_8078C34(void) { u8 id = GetMultiplayerId(); u8 unk; @@ -1361,16 +2387,16 @@ void sub_8078C34(void) } } -u8 sub_8078C6C(u8 a0, u8 a1) +static u8 sub_8078C6C(u8 a0, u8 a1) { int i; u8 ret = 0; for (i = 0; i < PARTY_SIZE; i++) { - if (gUnknown_0203229C->unk_38[gUnknown_0832DCEC[a0][a1][i]] == 1) + if (gUnknown_0203229C->unk_38[gTradeNextSelectedMonTable[a0][a1][i]] == 1) { - ret = gUnknown_0832DCEC[a0][a1][i]; + ret = gTradeNextSelectedMonTable[a0][a1][i]; break; } } @@ -1378,21 +2404,21 @@ u8 sub_8078C6C(u8 a0, u8 a1) return ret; } -void sub_8078CB8(u8 *a0, u8 a1) +static void sub_8078CB8(u8 *a0, u8 a1) { u8 unk = sub_8078C6C(*a0, a1); if (unk == 12) { - StartSpriteAnim(&gSprites[gUnknown_0203229C->unk_34], 1); - gSprites[gUnknown_0203229C->unk_34].pos1.x = 224; - gSprites[gUnknown_0203229C->unk_34].pos1.y = 160; + StartSpriteAnim(&gSprites[gUnknown_0203229C->tradeMenuCursorSpriteIdx], 1); + gSprites[gUnknown_0203229C->tradeMenuCursorSpriteIdx].pos1.x = 224; + gSprites[gUnknown_0203229C->tradeMenuCursorSpriteIdx].pos1.y = 160; } else { - StartSpriteAnim(&gSprites[gUnknown_0203229C->unk_34], 0); - gSprites[gUnknown_0203229C->unk_34].pos1.x = gUnknown_0832DE24[unk][0] * 8 + 32; - gSprites[gUnknown_0203229C->unk_34].pos1.y = gUnknown_0832DE24[unk][1] * 8; + StartSpriteAnim(&gSprites[gUnknown_0203229C->tradeMenuCursorSpriteIdx], 0); + gSprites[gUnknown_0203229C->tradeMenuCursorSpriteIdx].pos1.x = gTradeMonSpriteCoords[unk][0] * 8 + 32; + gSprites[gUnknown_0203229C->tradeMenuCursorSpriteIdx].pos1.y = gTradeMonSpriteCoords[unk][1] * 8; } if (*a0 != unk) @@ -1403,14 +2429,14 @@ void sub_8078CB8(u8 *a0, u8 a1) *a0 = unk; } -void sub_8078D78(void) +static void sub_8078D78(void) { sub_807A19C(0); gUnknown_0203229C->unk_6F = 100; if (GetMultiplayerId() == 1) { - sub_8078C10(0xAABB, gUnknown_0203229C->unk_35); + sub_8078C10(0xAABB, gUnknown_0203229C->tradeMenuCursorPosition); } else { @@ -1418,30 +2444,30 @@ void sub_8078D78(void) } } -void sub_8078DBC(void) +static void sub_8078DBC(void) { if (gMain.newAndRepeatedKeys & DPAD_UP) { - sub_8078CB8(&gUnknown_0203229C->unk_35, 0); + sub_8078CB8(&gUnknown_0203229C->tradeMenuCursorPosition, 0); } else if (gMain.newAndRepeatedKeys & DPAD_DOWN) { - sub_8078CB8(&gUnknown_0203229C->unk_35, 1); + sub_8078CB8(&gUnknown_0203229C->tradeMenuCursorPosition, 1); } else if (gMain.newAndRepeatedKeys & DPAD_LEFT) { - sub_8078CB8(&gUnknown_0203229C->unk_35, 2); + sub_8078CB8(&gUnknown_0203229C->tradeMenuCursorPosition, 2); } else if (gMain.newAndRepeatedKeys & DPAD_RIGHT) { - sub_8078CB8(&gUnknown_0203229C->unk_35, 3); + sub_8078CB8(&gUnknown_0203229C->tradeMenuCursorPosition, 3); } if (gMain.newKeys & A_BUTTON) { PlaySE(SE_SELECT); - if (gUnknown_0203229C->unk_35 < 6) + if (gUnknown_0203229C->tradeMenuCursorPosition < 6) { sub_8098858(1, 1, 14); FillWindowPixelBuffer(1, 0x11); @@ -1451,12 +2477,12 @@ void sub_8078DBC(void) CopyWindowToVram(1, 3); gUnknown_0203229C->unk_6F = 1; } - else if (gUnknown_0203229C->unk_35 < 12) + else if (gUnknown_0203229C->tradeMenuCursorPosition < 12) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); gUnknown_0203229C->unk_6F = 2; } - else if (gUnknown_0203229C->unk_35 == 12) + else if (gUnknown_0203229C->tradeMenuCursorPosition == 12) { CreateYesNoMenu(&gUnknown_0832DF8C, 1, 14, 0); gUnknown_0203229C->unk_6F = 4; @@ -1465,15 +2491,15 @@ void sub_8078DBC(void) } } -void sub_8078EF8(void) +static void sub_8078EF8(void) { sub_8079F74(); gUnknown_0203229C->unk_6F = 0; - gSprites[gUnknown_0203229C->unk_34].invisible = FALSE; + gSprites[gUnknown_0203229C->tradeMenuCursorSpriteIdx].invisible = FALSE; sub_807A308(gUnknown_0832DE94[1], (void *)(OBJ_VRAM0 + gUnknown_0203229C->unk_72 * 32), 24); } -void sub_8078F50(void) +static void sub_8078F50(void) { switch (Menu_ProcessInputNoWrap()) { @@ -1488,11 +2514,11 @@ void sub_8078F50(void) gUnknown_0203229C->unk_6F = 2; break; case 1: - switch (sub_807A5F4(gPlayerParty, gPlayerPartyCount, gUnknown_0203229C->unk_35)) + switch (sub_807A5F4(gPlayerParty, gPlayerPartyCount, gUnknown_0203229C->tradeMenuCursorPosition)) { case 0: sub_8078D78(); - gSprites[gUnknown_0203229C->unk_34].invisible = TRUE; + gSprites[gUnknown_0203229C->tradeMenuCursorSpriteIdx].invisible = TRUE; break; case 1: sub_807A048(3, 3); @@ -1513,7 +2539,7 @@ void sub_8078F50(void) } } -void sub_8079034(void) +static void sub_8079034(void) { if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & B_BUTTON)) { @@ -1522,23 +2548,23 @@ void sub_8079034(void) } } -void sub_807905C(void) +static void sub_807905C(void) { if (!gPaletteFade.active) { - if (gUnknown_0203229C->unk_35 < PARTY_SIZE) + if (gUnknown_0203229C->tradeMenuCursorPosition < PARTY_SIZE) { - ShowPokemonSummaryScreen(PSS_MODE_UNK1, gPlayerParty, gUnknown_0203229C->unk_35, gUnknown_0203229C->partyCounts[0] - 1, sub_8077B74); + ShowPokemonSummaryScreen(PSS_MODE_UNK1, gPlayerParty, gUnknown_0203229C->tradeMenuCursorPosition, gUnknown_0203229C->partyCounts[0] - 1, sub_8077B74); } else { - ShowPokemonSummaryScreen(PSS_MODE_UNK1, gEnemyParty, gUnknown_0203229C->unk_35 - PARTY_SIZE, gUnknown_0203229C->partyCounts[1] - 1, sub_8077B74); + ShowPokemonSummaryScreen(PSS_MODE_UNK1, gEnemyParty, gUnknown_0203229C->tradeMenuCursorPosition - PARTY_SIZE, gUnknown_0203229C->partyCounts[1] - 1, sub_8077B74); } FreeAllWindowBuffers(); } } -u8 sub_80790D4(u8 *a0, u8 a1, u8 a2, u8 a3) +static u8 sub_80790D4(u8 *a0, u8 a1, u8 a2, u8 a3) { int i; u16 species; @@ -1579,7 +2605,7 @@ u8 sub_80790D4(u8 *a0, u8 a1, u8 a2, u8 a3) return res; } -bool32 sub_8079174(void) +static bool32 sub_8079174(void) { int i; u8 arr[12]; @@ -1589,7 +2615,7 @@ bool32 sub_8079174(void) arr[i] = gUnknown_0203229C->unk_45[0][i]; } - switch (sub_80790D4(arr, gUnknown_0203229C->partyCounts[0], gUnknown_0203229C->unk_35, gUnknown_0203229C->unk_7E)) + switch (sub_80790D4(arr, gUnknown_0203229C->partyCounts[0], gUnknown_0203229C->tradeMenuCursorPosition, gUnknown_0203229C->unk_7E)) { case 0: sub_807A048(3, 3); @@ -1607,7 +2633,7 @@ bool32 sub_8079174(void) return FALSE; } -void sub_8079218(void) +static void sub_8079218(void) { switch (Menu_ProcessInputNoWrapClearOnChoose()) { @@ -1635,7 +2661,7 @@ void sub_8079218(void) } } -void sub_807929C(void) +static void sub_807929C(void) { int i; @@ -1646,14 +2672,14 @@ void sub_807929C(void) } } -void sub_80792E4(void) +static void sub_80792E4(void) { switch (Menu_ProcessInputNoWrapClearOnChoose()) { case 0: sub_807A19C(4); sub_8078C10(0xEEAA, 0); - gSprites[gUnknown_0203229C->unk_34].invisible = TRUE; + gSprites[gUnknown_0203229C->tradeMenuCursorSpriteIdx].invisible = TRUE; gUnknown_0203229C->unk_6F = 100; sub_807929C(); break; @@ -1665,18 +2691,18 @@ void sub_80792E4(void) } } -void sub_807935C(void) +static void sub_807935C(void) { if (GetMultiplayerId() == 0) { rbox_fill_rectangle(0); - sub_807967C(gUnknown_0203229C->unk_35); + sub_807967C(gUnknown_0203229C->tradeMenuCursorPosition); sub_807967C(gUnknown_0203229C->unk_7E); } gUnknown_0203229C->unk_6F = 7; } -void sub_8079398(void) +static void sub_8079398(void) { if (gUnknown_0203229C->unk_74[0] == 5 && gUnknown_0203229C->unk_74[1] == 5) { @@ -1685,7 +2711,7 @@ void sub_8079398(void) } } -void sub_80793C4(void) +static void sub_80793C4(void) { gUnknown_0203229C->unk_A8++; @@ -1697,7 +2723,7 @@ void sub_80793C4(void) } } -void sub_8079408(void) +static void sub_8079408(void) { int i; @@ -1716,11 +2742,11 @@ void sub_8079408(void) sub_8079F88(0); sub_8079F88(1); gUnknown_0203229C->unk_6F = 0; - gSprites[gUnknown_0203229C->unk_34].invisible = FALSE; + gSprites[gUnknown_0203229C->tradeMenuCursorSpriteIdx].invisible = FALSE; } } -void sub_8079490(void) +static void sub_8079490(void) { if (!gPaletteFade.active) { @@ -1737,7 +2763,7 @@ void sub_8079490(void) } } -void sub_80794CC(void) +static void sub_80794CC(void) { if (gWirelessCommType) { @@ -1762,7 +2788,7 @@ void sub_80794CC(void) } } -void sub_8079550(void) +static void sub_8079550(void) { if (!sub_801048C(FALSE) && sub_807A09C() == 0) { @@ -1771,7 +2797,7 @@ void sub_8079550(void) } } -void sub_807957C(void) +static void sub_807957C(void) { if (gMain.newKeys & A_BUTTON) { @@ -1780,7 +2806,7 @@ void sub_807957C(void) } } -void sub_80795AC(void) +static void sub_80795AC(void) { switch (gUnknown_0203229C->unk_6F) { @@ -1838,7 +2864,7 @@ void sub_80795AC(void) } } -void sub_807967C(u8 a0) +static void sub_807967C(u8 a0) { u8 whichTeam = a0 / PARTY_SIZE; @@ -1849,7 +2875,7 @@ void sub_807967C(u8 a0) } } -void sub_80796B4(u8 a0) +static void sub_80796B4(u8 a0) { s8 test; u8 sp14[20]; @@ -1871,7 +2897,7 @@ void sub_80796B4(u8 a0) case 1: for (i = 0; i < gUnknown_0203229C->partyCounts[a0]; i++) { - gSprites[gUnknown_0203229C->unk_28[0][i + (sp60 * 6)]].invisible = TRUE; + gSprites[gUnknown_0203229C->partyIcons[0][i + (sp60 * 6)]].invisible = TRUE; } for (i = 0; i < 6; i++) @@ -1879,13 +2905,13 @@ void sub_80796B4(u8 a0) ClearWindowTilemap(i + (a0 * 6 + 2)); } - gSprites[gUnknown_0203229C->unk_28[0][r10 + (sp60 * 6)]].invisible = FALSE; - gSprites[gUnknown_0203229C->unk_28[0][r10 + (sp60 * 6)]].data[0] = 20; - gSprites[gUnknown_0203229C->unk_28[0][r10 + (sp60 * 6)]].data[2] = (gUnknown_0832DE24[sp60 * 6][0] + gUnknown_0832DE24[sp60 * 6 + 1][0]) / 2 * 8 + 14; - gSprites[gUnknown_0203229C->unk_28[0][r10 + (sp60 * 6)]].data[4] = (gUnknown_0832DE24[sp60 * 6][1] * 8) - 12; - StoreSpriteCallbackInData6(&gSprites[gUnknown_0203229C->unk_28[0][r10 + (sp60 * 6)]], sub_80D3014); + gSprites[gUnknown_0203229C->partyIcons[0][r10 + (sp60 * 6)]].invisible = FALSE; + gSprites[gUnknown_0203229C->partyIcons[0][r10 + (sp60 * 6)]].data[0] = 20; + gSprites[gUnknown_0203229C->partyIcons[0][r10 + (sp60 * 6)]].data[2] = (gTradeMonSpriteCoords[sp60 * 6][0] + gTradeMonSpriteCoords[sp60 * 6 + 1][0]) / 2 * 8 + 14; + gSprites[gUnknown_0203229C->partyIcons[0][r10 + (sp60 * 6)]].data[4] = (gTradeMonSpriteCoords[sp60 * 6][1] * 8) - 12; + StoreSpriteCallbackInData6(&gSprites[gUnknown_0203229C->partyIcons[0][r10 + (sp60 * 6)]], sub_80D3014); gUnknown_0203229C->unk_74[a0]++; - sub_80A6DEC(&gSprites[gUnknown_0203229C->unk_28[0][r10 + (sp60 * 6)]]); + sub_80A6DEC(&gSprites[gUnknown_0203229C->partyIcons[0][r10 + (sp60 * 6)]]); CopyToBgTilemapBufferRect_ChangePalette(1, gTradePartyBoxTilemap, a0 * 15, 0, 15, 17, 0); CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(0); @@ -1896,7 +2922,7 @@ void sub_80796B4(u8 a0) } break; case 2: - if (gSprites[gUnknown_0203229C->unk_28[0][r10 + (sp60 * 6)]].callback == sub_80D3014) + if (gSprites[gUnknown_0203229C->partyIcons[0][r10 + (sp60 * 6)]].callback == sub_80D3014) { gUnknown_0203229C->unk_74[a0] = 3; } @@ -1904,10 +2930,10 @@ void sub_80796B4(u8 a0) case 3: CopyToBgTilemapBufferRect_ChangePalette(1, gTradeMovesBoxTilemap, sp60 * 15, 0, 15, 17, 0); CopyBgTilemapBufferToVram(1); - gSprites[gUnknown_0203229C->unk_28[0][r10 + (sp60 * 6)]].pos1.x = (gUnknown_0832DE24[sp60 * 6][0] + gUnknown_0832DE24[sp60 * 6 + 1][0]) / 2 * 8 + 14; - gSprites[gUnknown_0203229C->unk_28[0][r10 + (sp60 * 6)]].pos1.y = (gUnknown_0832DE24[sp60 * 6][1] * 8) - 12; - gSprites[gUnknown_0203229C->unk_28[0][r10 + (sp60 * 6)]].pos2.x = 0; - gSprites[gUnknown_0203229C->unk_28[0][r10 + (sp60 * 6)]].pos2.y = 0; + gSprites[gUnknown_0203229C->partyIcons[0][r10 + (sp60 * 6)]].pos1.x = (gTradeMonSpriteCoords[sp60 * 6][0] + gTradeMonSpriteCoords[sp60 * 6 + 1][0]) / 2 * 8 + 14; + gSprites[gUnknown_0203229C->partyIcons[0][r10 + (sp60 * 6)]].pos1.y = (gTradeMonSpriteCoords[sp60 * 6][1] * 8) - 12; + gSprites[gUnknown_0203229C->partyIcons[0][r10 + (sp60 * 6)]].pos2.x = 0; + gSprites[gUnknown_0203229C->partyIcons[0][r10 + (sp60 * 6)]].pos2.y = 0; test = sub_8079A3C(sp14, sp60, r10); AddTextPrinterParameterized3((a0 * 2) + 14, 0, (80 - test) / 2, 4, gUnknown_0832DEE0, 0, sp14); sub_8079AA4(sp28, sp60, r10); @@ -1925,7 +2951,7 @@ void sub_80796B4(u8 a0) } } -u8 sub_8079A3C(u8 *a0, bool8 a1, u8 a2) +static u8 sub_8079A3C(u8 *a0, bool8 a1, u8 a2) { u8 name[12]; @@ -1942,7 +2968,7 @@ u8 sub_8079A3C(u8 *a0, bool8 a1, u8 a2) return GetStringWidth(0, a0, GetFontAttribute(0, FONTATTR_LETTER_SPACING)); } -void sub_8079AA4(u8 *a0, u8 a1, u8 a2) +static void sub_8079AA4(u8 *a0, u8 a1, u8 a2) { u16 arr[4]; u16 i; @@ -1980,7 +3006,7 @@ void sub_8079AA4(u8 *a0, u8 a1, u8 a2) } } -void sub_8079B84(u8 a0, u8 a1, u8 *a2) +static void sub_8079B84(u8 a0, u8 a1, u8 *a2) { u8 xPos; a1 += (a0 * 6) + 2; @@ -1990,7 +3016,7 @@ void sub_8079B84(u8 a0, u8 a1, u8 *a2) CopyWindowToVram(a1, 3); } -void sub_8079BE0(u8 a0) +static void sub_8079BE0(u8 a0) { u8 i; u8 sp[20]; @@ -2005,7 +3031,7 @@ void sub_8079BE0(u8 a0) } } -void sub_8079C4C(u8 a0, u8 a1, u8 a2, u8 a3, u8 a4, u8 a5) +static void sub_8079C4C(u8 a0, u8 a1, u8 a2, u8 a3, u8 a4, u8 a5) { u8 r6; u32 r2; @@ -2071,22 +3097,20 @@ void sub_8079C4C(u8 a0, u8 a1, u8 a2, u8 a3, u8 a4, u8 a5) gUnknown_0203229C->tilemapBuffer[(a3 - 1) * 32 + a2 + 1] = r2; } -extern const u8 gUnknown_0832DE3E[][6][2]; -extern const u8 gUnknown_0832DE56[][6][2]; // Very close but loop preamble not working. #ifdef NONMATCHING -void sub_8079E44(u8 whichParty) +static void sub_8079E44(u8 whichParty) { int i; for (i = 0; i < gUnknown_0203229C->partyCounts[whichParty]; i++) { - sub_8079C4C(whichParty, i, gUnknown_0832DE3E[whichParty][i][0], gUnknown_0832DE3E[whichParty][i][1], gUnknown_0832DE56[whichParty][i][0], gUnknown_0832DE56[whichParty][i][1]); + sub_8079C4C(whichParty, i, gTradeLevelDisplayCoords[whichParty][i][0], gTradeLevelDisplayCoords[whichParty][i][1], gTradeMonBoxCoords[whichParty][i][0], gTradeMonBoxCoords[whichParty][i][1]); } } #else NAKED -void sub_8079E44(u8 whichParty) +static void sub_8079E44(u8 whichParty) { asm_unified("push {r4-r7,lr}\n\ sub sp, 0x8\n\ @@ -2102,10 +3126,10 @@ void sub_8079E44(u8 whichParty) bge _08079E94\n\ lsls r0, r6, 1\n\ adds r0, r6\n\ - ldr r1, =gUnknown_0832DE3E\n\ + ldr r1, =gTradeLevelDisplayCoords\n\ lsls r0, 2\n\ adds r5, r0, r1\n\ - ldr r1, =gUnknown_0832DE56\n\ + ldr r1, =gTradeMonBoxCoords\n\ adds r4, r0, r1\n\ _08079E6A:\n\ lsls r1, r7, 24\n\ @@ -2137,27 +3161,27 @@ _08079E94:\n\ } #endif // NONMATCHING -void sub_8079EA8(u8 a0) +static void sub_8079EA8(u8 a0) { int i; for (i = 0; i < gUnknown_0203229C->partyCounts[a0]; i++) { - gSprites[gUnknown_0203229C->unk_28[a0][i]].invisible = FALSE; - gSprites[gUnknown_0203229C->unk_28[a0][i]].pos1.x = gUnknown_0832DE24[(a0 * 6) + i][0] * 8 + 14; - gSprites[gUnknown_0203229C->unk_28[a0][i]].pos1.y = gUnknown_0832DE24[(a0 * 6) + i][1] * 8 - 12; - gSprites[gUnknown_0203229C->unk_28[a0][i]].pos2.x = 0; - gSprites[gUnknown_0203229C->unk_28[a0][i]].pos2.y = 0; + gSprites[gUnknown_0203229C->partyIcons[a0][i]].invisible = FALSE; + gSprites[gUnknown_0203229C->partyIcons[a0][i]].pos1.x = gTradeMonSpriteCoords[(a0 * 6) + i][0] * 8 + 14; + gSprites[gUnknown_0203229C->partyIcons[a0][i]].pos1.y = gTradeMonSpriteCoords[(a0 * 6) + i][1] * 8 - 12; + gSprites[gUnknown_0203229C->partyIcons[a0][i]].pos2.x = 0; + gSprites[gUnknown_0203229C->partyIcons[a0][i]].pos2.y = 0; } } -void sub_8079F74(void) +static void sub_8079F74(void) { rbox_fill_rectangle(1); sub_8079BE0(1); } -void sub_8079F88(u8 a0) +static void sub_8079F88(u8 a0) { CopyToBgTilemapBufferRect_ChangePalette(1, gTradePartyBoxTilemap, a0 * 15, 0, 15, 17, 0); CopyBgTilemapBufferToVram(1); @@ -2168,19 +3192,19 @@ void sub_8079F88(u8 a0) gUnknown_0203229C->unk_74[a0] = 0; } -void sub_807A000(void) +static void sub_807A000(u8 taskId) { FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); CopyBgTilemapBufferToVram(0); } -void sub_807A024(void) +static void sub_807A024(u8 taskId) { FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); CopyBgTilemapBufferToVram(0); } -void sub_807A048(u16 a0, u8 a1) +static void sub_807A048(u16 a0, u8 a1) { int i; @@ -2196,7 +3220,7 @@ void sub_807A048(u16 a0, u8 a1) } } -u32 sub_807A09C(void) +static u32 sub_807A09C(void) { u32 acc = 0; int i; @@ -2209,7 +3233,7 @@ u32 sub_807A09C(void) return acc; } -void sub_807A0C4(void) +static void sub_807A0C4(void) { int i; @@ -2255,7 +3279,7 @@ void sub_807A0C4(void) } } -void sub_807A19C(u8 a0) +static void sub_807A19C(u8 a0) { FillWindowPixelBuffer(0, 0x11); AddTextPrinterParameterized(0, 1, gUnknown_0832DEBC[a0], 0, 1, TEXT_SPEED_FF, NULL); @@ -2264,7 +3288,7 @@ void sub_807A19C(u8 a0) CopyWindowToVram(0, 3); } -bool8 sub_807A1F0(void) +static bool8 sub_807A1F0(void) { struct SpriteSheet sheet; @@ -2309,12 +3333,12 @@ bool8 sub_807A1F0(void) return FALSE; } -void sub_807A308(const u8 *a0, u8 *a1, u8 unused) +static void sub_807A308(const u8 *a0, u8 *a1, u8 unused) { sub_80C6D80(a0, a1, 0, 0, 6); } -void sub_807A320(u8 who) +static void sub_807A320(u8 who) { int i; @@ -2363,7 +3387,7 @@ void sub_807A320(u8 who) } } -void sub_807A468(u8 who) +static void sub_807A468(u8 who) { u16 i, curHp, maxHp; @@ -2388,7 +3412,7 @@ void sub_807A468(u8 who) } } -void sub_807A53C(void) +static void sub_807A53C(void) { int i, j; @@ -2396,12 +3420,12 @@ void sub_807A53C(void) { for (j = 0; j < gUnknown_0203229C->partyCounts[i]; j++) { - sub_80D32C8(&gSprites[gUnknown_0203229C->unk_28[i][j]], 4 - gUnknown_0203229C->unk_5D[i][j]); + sub_80D32C8(&gSprites[gUnknown_0203229C->partyIcons[i][j]], 4 - gUnknown_0203229C->unk_5D[i][j]); } } } -void sub_807A5B0(void) +static void sub_807A5B0(void) { int i; @@ -2417,7 +3441,7 @@ void sub_807A5B0(void) } } -u32 sub_807A5F4(struct Pokemon *a0, int a1, int a2) +static u32 sub_807A5F4(struct Pokemon *a0, int a1, int a2) { int i, sum; struct LinkPlayer *player; @@ -2618,7 +3642,7 @@ _0807A7B6:\n\ } #endif // NONMATCHING -bool32 sub_807A7BC(u16 a0, u8 a1) +static bool32 sub_807A7BC(u16 a0, u8 a1) { if (a0 == SPECIES_DEOXYS || a0 == SPECIES_MEW) { @@ -2954,7 +3978,7 @@ _0807AA1A:\n\ } #endif // NONMATCHING -void sub_807AA28(struct Sprite *sprite) +static void sub_807AA28(struct Sprite *sprite) { if (++sprite->data[0] == 10) { @@ -2963,7 +3987,7 @@ void sub_807AA28(struct Sprite *sprite) } } -void sub_807AA4C(struct Sprite *sprite) +static void sub_807AA4C(struct Sprite *sprite) { if (!sprite->invisible && ++sprite->data[0] == 10) { @@ -2972,7 +3996,7 @@ void sub_807AA4C(struct Sprite *sprite) } } -void sub_807AA7C(struct Sprite *sprite) +static void sub_807AA7C(struct Sprite *sprite) { if (!sprite->data[1]) { @@ -2985,7 +4009,7 @@ void sub_807AA7C(struct Sprite *sprite) } } -void sub_807AABC(struct Sprite *sprite) +static void sub_807AABC(struct Sprite *sprite) { sprite->data[0]++; sprite->pos2.y++; @@ -2996,7 +4020,7 @@ void sub_807AABC(struct Sprite *sprite) } } -void sub_807AAE0(struct Sprite *sprite) +static void sub_807AAE0(struct Sprite *sprite) { sprite->data[0]++; sprite->pos2.y--; @@ -3007,7 +4031,7 @@ void sub_807AAE0(struct Sprite *sprite) } } -void sub_807AB04(struct Sprite *sprite) +static void sub_807AB04(struct Sprite *sprite) { if (++sprite->data[0] == 15) { @@ -3016,7 +4040,7 @@ void sub_807AB04(struct Sprite *sprite) } } -void sub_807AB28(void) +static void sub_807AB28(void) { struct BgAffineDstData affine; @@ -3031,7 +4055,7 @@ void sub_807AB28(void) SetGpuReg(REG_OFFSET_BG2Y_H, affine.dy >> 16); } -void sub_807ABCC(void) +static void sub_807ABCC(void) { u16 dispcnt; @@ -3050,7 +4074,7 @@ void sub_807ABCC(void) } } -void sub_807AC24(void) +static void sub_807AC24(void) { sub_807ABCC(); LoadOam(); @@ -3058,14 +4082,14 @@ void sub_807AC24(void) TransferPlttBuffer(); } -void sub_807AC3C(void) +static void sub_807AC3C(void) { gUnknown_020322A0->unk_8A = 0; gUnknown_020322A0->unk_88 = 0; gUnknown_020322A0->unk_89 = 0; } -void sub_807AC64(void) +static void sub_807AC64(void) { if (gUnknown_020322A0->unk_88 == gUnknown_020322A0->unk_89) { @@ -3088,7 +4112,7 @@ void sub_807AC64(void) gUnknown_020322A0->unk_89 = gUnknown_020322A0->unk_88; } -u32 sub_807ACDC(void) +static u32 sub_807ACDC(void) { if (gReceivedRemoteLinkPlayers != 0) { @@ -3098,7 +4122,7 @@ u32 sub_807ACDC(void) return 0; } -void sub_807ACFC(u8 a0, u8 a1) +static void sub_807ACFC(u8 a0, u8 a1) { int unk = 0; struct Pokemon *mon = NULL; @@ -3165,7 +4189,7 @@ void sub_807AE50(void) sub_807AC3C(); gMain.state++; gUnknown_020322A0->unk_8C = 0; - gUnknown_020322A0->unk_94 = 0; + gUnknown_020322A0->state = 0; gUnknown_020322A0->isLinkTrade = TRUE; gUnknown_020322A0->unk_D4 = 64; gUnknown_020322A0->unk_D6 = 64; @@ -3182,7 +4206,7 @@ void sub_807AE50(void) gUnknown_020322A0->unk_FA = 1; OpenLink(); gMain.state++; - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->timer = 0; } else { @@ -3190,9 +4214,9 @@ void sub_807AE50(void) } break; case 2: - if (++gUnknown_020322A0->unk_64 > 60) + if (++gUnknown_020322A0->timer > 60) { - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->timer = 0; gMain.state++; } break; @@ -3201,7 +4225,7 @@ void sub_807AE50(void) { if (GetLinkPlayerCount_2() >= sub_800AA48()) { - if (++gUnknown_020322A0->unk_64 > 30) + if (++gUnknown_020322A0->timer > 30) { sub_800A620(); gMain.state++; @@ -3292,7 +4316,7 @@ void sub_807B154(void) CopyWindowToVram(0, 3); } -void sub_807B170(void) +static void sub_807B170(void) { SetGpuReg(REG_OFFSET_DISPCNT, 0); ResetBgsAndClearDma3BusyFlags(0); @@ -3315,7 +4339,7 @@ void sub_807B170(void) } // In-game trade init -void sub_807B270(void) +static void sub_807B270(void) { u8 name[11]; @@ -3338,7 +4362,7 @@ void sub_807B270(void) sub_807B170(); gUnknown_020322A0->isLinkTrade = FALSE; gUnknown_020322A0->unk_8C = 0; - gUnknown_020322A0->unk_94 = 0; + gUnknown_020322A0->state = 0; gUnknown_020322A0->unk_D4 = 64; gUnknown_020322A0->unk_D6 = 64; gUnknown_020322A0->unk_D8 = 0; @@ -3347,7 +4371,7 @@ void sub_807B270(void) gUnknown_020322A0->unk_DE = 80; gUnknown_020322A0->unk_E8 = 256; gUnknown_020322A0->unk_EC = 0; - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->timer = 0; gMain.state = 5; break; case 5: @@ -3398,7 +4422,7 @@ void sub_807B270(void) UpdatePaletteFade(); } -void sub_807B464(u8 a0) +static void sub_807B464(u8 a0) { struct Pokemon *mon = &gPlayerParty[a0]; @@ -3412,7 +4436,7 @@ void sub_807B464(u8 a0) } } -void sub_807B4C4(void) +static void sub_807B4C4(void) { u8 mpId = GetMultiplayerId(); // Originally in Ruby but commented out @@ -3420,7 +4444,7 @@ void sub_807B4C4(void) EnableNationalPokedex();*/ } -void sub_807B4D0(u8 a0, u8 a1) +static void sub_807B4D0(u8 a0, u8 a1) { u8 friendship; u16 mailId1; @@ -3460,7 +4484,7 @@ void sub_807B4D0(u8 a0, u8 a1) } } -void sub_807B5B8(void) +static void sub_807B5B8(void) { switch (gUnknown_020322A0->unk_93) { @@ -3476,7 +4500,7 @@ void sub_807B5B8(void) } } -void sub_807B60C(void) +static void sub_807B60C(void) { sub_807BBC8(); RunTasks(); @@ -3486,7 +4510,7 @@ void sub_807B60C(void) UpdatePaletteFade(); } -void sub_807B62C(u8 a0) +static void sub_807B62C(u8 a0) { switch (a0) { @@ -3646,7 +4670,7 @@ void sub_807B62C(u8 a0) } } -void sub_807BA94(void) +static void sub_807BA94(void) { LoadSpriteSheet(&gUnknown_08338D70); LoadSpriteSheet(&gUnknown_08338DC0); @@ -3656,7 +4680,7 @@ void sub_807BA94(void) LoadSpritePalette(&gUnknown_08338D80); } -void sub_807BAD8(void) +static void sub_807BAD8(void) { /*Sets the variable strings printed on the *actual trading screen. For use in strings @@ -3685,7 +4709,7 @@ void sub_807BAD8(void) } } -u8 sub_807BBC8(void) +static u8 sub_807BBC8(void) { if (gUnknown_020322A0->unk_FA) { @@ -3697,18 +4721,18 @@ u8 sub_807BBC8(void) } } -bool8 sub_807BBEC(void) +static bool8 sub_807BBEC(void) { u16 evoTarget; - switch (gUnknown_020322A0->unk_94) + switch (gUnknown_020322A0->state) { case 0: gSprites[gUnknown_020322A0->pokePicSpriteIdxs[0]].invisible = FALSE; gSprites[gUnknown_020322A0->pokePicSpriteIdxs[0]].pos2.x = -180; gSprites[gUnknown_020322A0->pokePicSpriteIdxs[0]].pos2.y = gMonFrontPicCoords[gUnknown_020322A0->tradeSpecies[0]].y_offset; - gUnknown_020322A0->unk_94++; - gUnknown_020322A0->unk_F4 = GetCurrentMapMusic(); + gUnknown_020322A0->state++; + gUnknown_020322A0->cachedMapMusic = GetCurrentMapMusic(); PlayNewMapMusic(MUS_SHINKA); break; case 1: @@ -3721,7 +4745,7 @@ bool8 sub_807BBEC(void) { gSprites[gUnknown_020322A0->pokePicSpriteIdxs[0]].pos2.x = 0; gUnknown_020322A0->bg2hofs = 0; - gUnknown_020322A0->unk_94 = 10; + gUnknown_020322A0->state = 10; } break; case 10: @@ -3733,14 +4757,14 @@ bool8 sub_807BBEC(void) PlayCry1(gUnknown_020322A0->tradeSpecies[0], 0); } - gUnknown_020322A0->unk_94 = 11; - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->state = 11; + gUnknown_020322A0->timer = 0; break; case 11: - if (++gUnknown_020322A0->unk_64 == 80) + if (++gUnknown_020322A0->timer == 80) { gUnknown_020322A0->unk_D2 = sub_807671C(gUnknown_020322A0->pokePicSpriteIdxs[0], gSprites[gUnknown_020322A0->pokePicSpriteIdxs[0]].oam.paletteNum, 120, 32, 2, 1, 0x14, 0xfffff); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; StringExpandPlaceholders(gStringVar4, gText_ByeByeVar1); sub_807F1A8(0, gStringVar4, 0); } @@ -3751,7 +4775,7 @@ bool8 sub_807BBEC(void) gUnknown_020322A0->unk_D3 = CreateSprite(&gSpriteTemplate_8338D28, 120, 32, 0); gSprites[gUnknown_020322A0->unk_D3].callback = sub_807E5D8; DestroySprite(&gSprites[gUnknown_020322A0->unk_D2]); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 13: @@ -3759,7 +4783,7 @@ bool8 sub_807BBEC(void) break; case 14: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - gUnknown_020322A0->unk_94 = 20; + gUnknown_020322A0->state = 20; break; case 20: if (!gPaletteFade.active) @@ -3767,17 +4791,17 @@ bool8 sub_807BBEC(void) sub_807B62C(4); FillWindowPixelBuffer(0, 0xFF); CopyWindowToVram(0, 3); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 21: BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; break; case 22: if (!gPaletteFade.active) { - gUnknown_020322A0->unk_94 = 23; + gUnknown_020322A0->state = 23; } break; case 23: @@ -3789,17 +4813,17 @@ bool8 sub_807BBEC(void) { sub_807B62C(1); gUnknown_020322A0->unk_EA = 0x80; - gUnknown_020322A0->unk_94++; - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->state++; + gUnknown_020322A0->timer = 0; } gUnknown_020322A0->unk_E8 = 0x8000 / gUnknown_020322A0->unk_EA; break; case 24: - if (++gUnknown_020322A0->unk_64 > 20) + if (++gUnknown_020322A0->timer > 20) { sub_807AB28(); gUnknown_020322A0->unk_91 = CreateSprite(&gSpriteTemplate_8338E74, 120, 80, 0); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 25: @@ -3810,13 +4834,13 @@ bool8 sub_807BBEC(void) BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(12, 4)); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 26: if (--gUnknown_020322A0->bg1vofs == 316) { - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } if (gUnknown_020322A0->bg1vofs == 328) { @@ -3827,12 +4851,12 @@ bool8 sub_807BBEC(void) gUnknown_020322A0->unk_90 = CreateSprite(&gUnknown_08338D88, 128, 80, 3); gUnknown_020322A0->unk_91 = CreateSprite(&gSpriteTemplate_8338DC8, 128, 80, 0); StartSpriteAnim(&gSprites[gUnknown_020322A0->unk_91], 1); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; break; case 28: if ((gUnknown_020322A0->bg1vofs -= 2) == 166) { - gUnknown_020322A0->unk_94 = 200; + gUnknown_020322A0->state = 200; } SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | @@ -3844,12 +4868,12 @@ bool8 sub_807BBEC(void) gSprites[gUnknown_020322A0->unk_91].pos1.y -= 2; if (gSprites[gUnknown_020322A0->unk_90].pos1.y < -8) { - gUnknown_020322A0->unk_94 = 29; + gUnknown_020322A0->state = 29; } break; case 29: BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK); - gUnknown_020322A0->unk_94 = 30; + gUnknown_020322A0->state = 30; break; case 30: if (!gPaletteFade.active) @@ -3857,20 +4881,20 @@ bool8 sub_807BBEC(void) DestroySprite(&gSprites[gUnknown_020322A0->unk_90]); DestroySprite(&gSprites[gUnknown_020322A0->unk_91]); sub_807B62C(2); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 31: BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK); gUnknown_020322A0->unk_90 = CreateSprite(&gSpriteTemplate_8338DC8, 111, 170, 0); gUnknown_020322A0->unk_91 = CreateSprite(&gSpriteTemplate_8338DC8, 129, -10, 0); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; break; case 32: if (!gPaletteFade.active) { PlaySE(SE_TK_WARPOUT); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } gSprites[gUnknown_020322A0->unk_90].pos2.y -= 3; gSprites[gUnknown_020322A0->unk_91].pos2.y += 3; @@ -3882,20 +4906,20 @@ bool8 sub_807BBEC(void) { gSprites[gUnknown_020322A0->unk_90].data[1] = 1; gSprites[gUnknown_020322A0->unk_91].data[1] = 1; - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 34: BlendPalettes(0x1, 16, RGB_WHITEALPHA); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; break; case 35: BlendPalettes(0x1, 0, RGB_WHITEALPHA); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; break; case 36: BlendPalettes(0x1, 16, RGB_WHITEALPHA); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; break; case 37: if (!IsMonSpriteNotFlipped(gUnknown_020322A0->tradeSpecies[0])) @@ -3916,7 +4940,7 @@ bool8 sub_807BBEC(void) gSprites[gUnknown_020322A0->pokePicSpriteIdxs[1]].pos1.y = -32; gSprites[gUnknown_020322A0->pokePicSpriteIdxs[0]].invisible = FALSE; gSprites[gUnknown_020322A0->pokePicSpriteIdxs[1]].invisible = FALSE; - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; break; case 38: gSprites[gUnknown_020322A0->pokePicSpriteIdxs[0]].pos2.y -= 3; @@ -3929,7 +4953,7 @@ bool8 sub_807BBEC(void) { gSprites[gUnknown_020322A0->unk_90].data[1] = 0; gSprites[gUnknown_020322A0->unk_91].data[1] = 0; - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; gSprites[gUnknown_020322A0->pokePicSpriteIdxs[0]].invisible = TRUE; gSprites[gUnknown_020322A0->pokePicSpriteIdxs[1]].invisible = TRUE; BlendPalettes(0x1, 0, RGB_WHITEALPHA); @@ -3941,7 +4965,7 @@ bool8 sub_807BBEC(void) if (gSprites[gUnknown_020322A0->unk_90].pos2.y <= -222) { BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; DestroySprite(&gSprites[gUnknown_020322A0->unk_90]); DestroySprite(&gSprites[gUnknown_020322A0->unk_91]); } @@ -3949,7 +4973,7 @@ bool8 sub_807BBEC(void) case 40: if (!gPaletteFade.active) { - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; sub_807B62C(1); gUnknown_020322A0->bg1vofs = 166; gUnknown_020322A0->unk_90 = CreateSprite(&gUnknown_08338D88, 128, -20, 3); @@ -3959,7 +4983,7 @@ bool8 sub_807BBEC(void) break; case 41: BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; break; case 42: SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | @@ -3968,7 +4992,7 @@ bool8 sub_807BBEC(void) DISPCNT_OBJ_ON); if (!gPaletteFade.active) { - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 43: @@ -3976,33 +5000,33 @@ bool8 sub_807BBEC(void) gSprites[gUnknown_020322A0->unk_91].pos2.y += 3; if (gSprites[gUnknown_020322A0->unk_90].pos2.y + gSprites[gUnknown_020322A0->unk_90].pos1.y == 64) { - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 44: if ((gUnknown_020322A0->bg1vofs += 2) > 316) { gUnknown_020322A0->bg1vofs = 316; - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 45: DestroySprite(&gSprites[gUnknown_020322A0->unk_90]); DestroySprite(&gSprites[gUnknown_020322A0->unk_91]); - gUnknown_020322A0->unk_94++; - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->state++; + gUnknown_020322A0->timer = 0; break; case 46: - if (++gUnknown_020322A0->unk_64 == 10) + if (++gUnknown_020322A0->timer == 10) { - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 47: if (++gUnknown_020322A0->bg1vofs > 348) { gUnknown_020322A0->bg1vofs = 348; - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } if (gUnknown_020322A0->bg1vofs == 328 && gUnknown_020322A0->unk_FA) { @@ -4012,14 +5036,14 @@ bool8 sub_807BBEC(void) break; case 48: gUnknown_020322A0->unk_91 = CreateSprite(&gSpriteTemplate_8338E74, 120, 80, 0); - gUnknown_020322A0->unk_94 = 50; + gUnknown_020322A0->state = 50; break; case 50: if (gSprites[gUnknown_020322A0->unk_91].animEnded) { DestroySprite(&gSprites[gUnknown_020322A0->unk_91]); sub_807B62C(6); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; PlaySE(SE_W028); } break; @@ -4031,13 +5055,13 @@ bool8 sub_807BBEC(void) else { gUnknown_020322A0->unk_EA = 0x400; - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } gUnknown_020322A0->unk_E8 = 0x8000 / gUnknown_020322A0->unk_EA; break; case 52: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - gUnknown_020322A0->unk_94 = 60; + gUnknown_020322A0->state = 60; break; case 60: @@ -4046,13 +5070,13 @@ bool8 sub_807BBEC(void) sub_807B62C(5); sub_807B62C(7); gPaletteFade.bufferTransferDisabled = TRUE; - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 61: gPaletteFade.bufferTransferDisabled = FALSE; BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; break; case 62: SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | @@ -4061,7 +5085,7 @@ bool8 sub_807BBEC(void) DISPCNT_OBJ_ON); if (!gPaletteFade.active) { - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 63: @@ -4071,18 +5095,18 @@ bool8 sub_807BBEC(void) StartSpriteAnim(&gSprites[gUnknown_020322A0->unk_D3], 1); StartSpriteAffineAnim(&gSprites[gUnknown_020322A0->unk_D3], 2); BlendPalettes(1 << (16 + gSprites[gUnknown_020322A0->unk_D3].oam.paletteNum), 16, RGB_WHITEALPHA); - gUnknown_020322A0->unk_94++; - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->state++; + gUnknown_020322A0->timer = 0; break; case 64: BeginNormalPaletteFade(1 << (16 + gSprites[gUnknown_020322A0->unk_D3].oam.paletteNum), 1, 16, 0, RGB_WHITEALPHA); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; break; case 65: if (gSprites[gUnknown_020322A0->unk_D3].callback == SpriteCallbackDummy) { HandleLoadSpecialPokePic_2(&gMonFrontPicTable[gUnknown_020322A0->tradeSpecies[1]], gMonSpritesGfxPtr->sprites[3], gUnknown_020322A0->tradeSpecies[1], gUnknown_020322A0->unk_68[1]); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 66: @@ -4094,7 +5118,7 @@ bool8 sub_807BBEC(void) CreatePokeballSpriteToReleaseMon(gUnknown_020322A0->pokePicSpriteIdxs[1], gSprites[gUnknown_020322A0->pokePicSpriteIdxs[1]].oam.paletteNum, 120, 84, 2, 1, 20, 0xFFFFF, gUnknown_020322A0->tradeSpecies[1]); FreeSpriteOamMatrix(&gSprites[gUnknown_020322A0->unk_D3]); DestroySprite(&gSprites[gUnknown_020322A0->unk_D3]); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; break; case 67: SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | @@ -4104,45 +5128,45 @@ bool8 sub_807BBEC(void) DISPCNT_OBJ_ON); StringExpandPlaceholders(gStringVar4, gText_XSentOverY); sub_807F1A8(0, gStringVar4, 0); - gUnknown_020322A0->unk_94 = 167; - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->state = 167; + gUnknown_020322A0->timer = 0; break; // 167 and 267 are extra cases added in for animations case 167: - if (++gUnknown_020322A0->unk_64 > 60) + if (++gUnknown_020322A0->timer > 60) { - gUnknown_020322A0->unk_94 = 267; - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->state = 267; + gUnknown_020322A0->timer = 0; } break; case 267: if (IsCryFinished()) { - gUnknown_020322A0->unk_94 = 68; + gUnknown_020322A0->state = 68; } break; case 68: - if (++gUnknown_020322A0->unk_64 == 10) + if (++gUnknown_020322A0->timer == 10) { PlayFanfare(MUS_FANFA5); } - if (gUnknown_020322A0->unk_64 == 250) + if (gUnknown_020322A0->timer == 250) { - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; StringExpandPlaceholders(gStringVar4, gText_TakeGoodCareOfX); sub_807F1A8(0, gStringVar4, 0); - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->timer = 0; } break; case 69: - if (++gUnknown_020322A0->unk_64 == 60) + if (++gUnknown_020322A0->timer == 60) { - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 70: sub_807F14C(); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; break; case 71: if (gUnknown_020322A0->isLinkTrade) @@ -4151,7 +5175,7 @@ bool8 sub_807BBEC(void) } else if (gMain.newKeys & A_BUTTON) { - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 72: // Only if in-game trade @@ -4162,16 +5186,16 @@ bool8 sub_807BBEC(void) { TradeEvolutionScene(&gPlayerParty[gUnknown_02032298[0]], evoTarget, gUnknown_020322A0->pokePicSpriteIdxs[1], gUnknown_02032298[0]); } - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; break; case 73: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; break; case 74: if (!gPaletteFade.active) { - PlayNewMapMusic(gUnknown_020322A0->unk_F4); + PlayNewMapMusic(gUnknown_020322A0->cachedMapMusic); if (gUnknown_020322A0) { FreeAllWindowBuffers(); @@ -4189,18 +5213,18 @@ bool8 sub_807BBEC(void) return FALSE; } -bool8 sub_807CFC8(void) +static bool8 sub_807CFC8(void) { u16 evoTarget; - switch (gUnknown_020322A0->unk_94) + switch (gUnknown_020322A0->state) { case 0: gSprites[gUnknown_020322A0->pokePicSpriteIdxs[0]].invisible = FALSE; gSprites[gUnknown_020322A0->pokePicSpriteIdxs[0]].pos2.x = -180; gSprites[gUnknown_020322A0->pokePicSpriteIdxs[0]].pos2.y = gMonFrontPicCoords[gUnknown_020322A0->tradeSpecies[0]].y_offset; - gUnknown_020322A0->unk_94++; - gUnknown_020322A0->unk_F4 = GetCurrentMapMusic(); + gUnknown_020322A0->state++; + gUnknown_020322A0->cachedMapMusic = GetCurrentMapMusic(); PlayNewMapMusic(MUS_SHINKA); break; case 1: @@ -4213,7 +5237,7 @@ bool8 sub_807CFC8(void) { gSprites[gUnknown_020322A0->pokePicSpriteIdxs[0]].pos2.x = 0; gUnknown_020322A0->bg2hofs = 0; - gUnknown_020322A0->unk_94 = 10; + gUnknown_020322A0->state = 10; } break; case 10: @@ -4225,14 +5249,14 @@ bool8 sub_807CFC8(void) PlayCry1(gUnknown_020322A0->tradeSpecies[0], 0); } - gUnknown_020322A0->unk_94 = 11; - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->state = 11; + gUnknown_020322A0->timer = 0; break; case 11: - if (++gUnknown_020322A0->unk_64 == 80) + if (++gUnknown_020322A0->timer == 80) { gUnknown_020322A0->unk_D2 = sub_807671C(gUnknown_020322A0->pokePicSpriteIdxs[0], gSprites[gUnknown_020322A0->pokePicSpriteIdxs[0]].oam.paletteNum, 120, 32, 2, 1, 0x14, 0xfffff); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; StringExpandPlaceholders(gStringVar4, gText_ByeByeVar1); sub_807F1A8(0, gStringVar4, 0); } @@ -4243,7 +5267,7 @@ bool8 sub_807CFC8(void) gUnknown_020322A0->unk_D3 = CreateSprite(&gSpriteTemplate_8338D28, 120, 32, 0); gSprites[gUnknown_020322A0->unk_D3].callback = sub_807E5D8; DestroySprite(&gSprites[gUnknown_020322A0->unk_D2]); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 13: @@ -4251,7 +5275,7 @@ bool8 sub_807CFC8(void) break; case 14: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - gUnknown_020322A0->unk_94 = 20; + gUnknown_020322A0->state = 20; break; case 20: if (!gPaletteFade.active) @@ -4259,17 +5283,17 @@ bool8 sub_807CFC8(void) sub_807B62C(4); FillWindowPixelBuffer(0, 0xFF); CopyWindowToVram(0, 3); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 21: BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; break; case 22: if (!gPaletteFade.active) { - gUnknown_020322A0->unk_94 = 23; + gUnknown_020322A0->state = 23; } break; case 23: @@ -4281,17 +5305,17 @@ bool8 sub_807CFC8(void) { sub_807B62C(1); gUnknown_020322A0->unk_EA = 0x80; - gUnknown_020322A0->unk_94 = 124; - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->state = 124; + gUnknown_020322A0->timer = 0; } gUnknown_020322A0->unk_E8 = 0x8000 / gUnknown_020322A0->unk_EA; break; case 124: - if (++gUnknown_020322A0->unk_64 > 20) + if (++gUnknown_020322A0->timer > 20) { sub_807B62C(3); gUnknown_020322A0->unk_91 = CreateSprite(&gSpriteTemplate_8338E8C, 120, 80, 0); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 125: @@ -4304,19 +5328,19 @@ bool8 sub_807CFC8(void) BLDCNT_TGT2_BG2); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 4)); CreateTask(c3_08054588, 5); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 126: if (!FuncIsActiveTask(c3_08054588)) { - gUnknown_020322A0->unk_94 = 26; + gUnknown_020322A0->state = 26; } break; case 26: if (--gUnknown_020322A0->bg1vofs == 316) { - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 27: @@ -4324,12 +5348,12 @@ bool8 sub_807CFC8(void) gSprites[gUnknown_020322A0->unk_90].callback = sub_807AA4C; gUnknown_020322A0->unk_91 = CreateSprite(&gSpriteTemplate_8338DC8, 120, 80, 0); StartSpriteAnim(&gSprites[gUnknown_020322A0->unk_91], 1); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; break; case 28: if ((gUnknown_020322A0->bg1vofs -= 3) == 166) { - gUnknown_020322A0->unk_94 = 200; + gUnknown_020322A0->state = 200; } SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | @@ -4341,12 +5365,12 @@ bool8 sub_807CFC8(void) gSprites[gUnknown_020322A0->unk_91].pos1.y -= 2; if (gSprites[gUnknown_020322A0->unk_90].pos1.y < -8) { - gUnknown_020322A0->unk_94 = 29; + gUnknown_020322A0->state = 29; } break; case 29: BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK); - gUnknown_020322A0->unk_94 = 30; + gUnknown_020322A0->state = 30; break; case 30: if (!gPaletteFade.active) @@ -4354,20 +5378,20 @@ bool8 sub_807CFC8(void) DestroySprite(&gSprites[gUnknown_020322A0->unk_90]); DestroySprite(&gSprites[gUnknown_020322A0->unk_91]); sub_807B62C(2); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 31: BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK); gUnknown_020322A0->unk_90 = CreateSprite(&gSpriteTemplate_8338DC8, 111, 170, 0); gUnknown_020322A0->unk_91 = CreateSprite(&gSpriteTemplate_8338DC8, 129, -10, 0); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; break; case 32: if (!gPaletteFade.active) { PlaySE(SE_TK_WARPOUT); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } gSprites[gUnknown_020322A0->unk_90].pos2.y -= 3; gSprites[gUnknown_020322A0->unk_91].pos2.y += 3; @@ -4379,21 +5403,21 @@ bool8 sub_807CFC8(void) { gSprites[gUnknown_020322A0->unk_90].data[1] = 1; gSprites[gUnknown_020322A0->unk_91].data[1] = 1; - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; CreateTask(c3_0805465C, 5); } break; case 34: BlendPalettes(0x8, 16, RGB_WHITEALPHA); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; break; case 35: BlendPalettes(0x8, 16, RGB_WHITEALPHA); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; break; case 36: BlendPalettes(0x8, 16, RGB_WHITEALPHA); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; break; case 37: if (!IsMonSpriteNotFlipped(gUnknown_020322A0->tradeSpecies[0])) @@ -4414,7 +5438,7 @@ bool8 sub_807CFC8(void) gSprites[gUnknown_020322A0->pokePicSpriteIdxs[1]].pos1.y = -32; gSprites[gUnknown_020322A0->pokePicSpriteIdxs[0]].invisible = FALSE; gSprites[gUnknown_020322A0->pokePicSpriteIdxs[1]].invisible = FALSE; - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; break; case 38: gSprites[gUnknown_020322A0->pokePicSpriteIdxs[0]].pos2.y -= 3; @@ -4427,7 +5451,7 @@ bool8 sub_807CFC8(void) { gSprites[gUnknown_020322A0->unk_90].data[1] = 0; gSprites[gUnknown_020322A0->unk_91].data[1] = 0; - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; gSprites[gUnknown_020322A0->pokePicSpriteIdxs[0]].invisible = TRUE; gSprites[gUnknown_020322A0->pokePicSpriteIdxs[1]].invisible = TRUE; CreateTask(sub_807F39C, 5); @@ -4439,7 +5463,7 @@ bool8 sub_807CFC8(void) if (gSprites[gUnknown_020322A0->unk_90].pos2.y <= -222) { BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; DestroySprite(&gSprites[gUnknown_020322A0->unk_90]); DestroySprite(&gSprites[gUnknown_020322A0->unk_91]); } @@ -4447,7 +5471,7 @@ bool8 sub_807CFC8(void) case 40: if (!gPaletteFade.active) { - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; sub_807B62C(1); gUnknown_020322A0->bg1vofs = 166; sub_807B62C(3); @@ -4460,7 +5484,7 @@ bool8 sub_807CFC8(void) break; case 41: BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; break; case 42: SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | @@ -4469,7 +5493,7 @@ bool8 sub_807CFC8(void) DISPCNT_OBJ_ON); if (!gPaletteFade.active) { - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 43: @@ -4477,8 +5501,8 @@ bool8 sub_807CFC8(void) gSprites[gUnknown_020322A0->unk_91].pos2.y += 4; if (gSprites[gUnknown_020322A0->unk_90].pos2.y + gSprites[gUnknown_020322A0->unk_90].pos1.y == 64) { - gUnknown_020322A0->unk_94 = 144; - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->state = 144; + gUnknown_020322A0->timer = 0; } break; case 144: @@ -4489,7 +5513,7 @@ bool8 sub_807CFC8(void) DISPCNT_OBJ_ON); gUnknown_020322A0->bg1vofs += 3; gUnknown_020322A0->bg2vofs += 3; - if (++gUnknown_020322A0->unk_64 == 10) + if (++gUnknown_020322A0->timer == 10) { u8 taskId = CreateTask(c3_08054588, 5); gTasks[taskId].data[2] = 1; @@ -4497,45 +5521,45 @@ bool8 sub_807CFC8(void) if (gUnknown_020322A0->bg1vofs > 316) { gUnknown_020322A0->bg1vofs = 316; - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 145: DestroySprite(&gSprites[gUnknown_020322A0->unk_90]); DestroySprite(&gSprites[gUnknown_020322A0->unk_91]); - gUnknown_020322A0->unk_94++; - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->state++; + gUnknown_020322A0->timer = 0; break; case 146: if (!FuncIsActiveTask(c3_08054588)) { - gUnknown_020322A0->unk_94 = 46; - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->state = 46; + gUnknown_020322A0->timer = 0; } break; case 46: - if (++gUnknown_020322A0->unk_64 == 10) + if (++gUnknown_020322A0->timer == 10) { - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 47: if (++gUnknown_020322A0->bg1vofs > 348) { gUnknown_020322A0->bg1vofs = 348; - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 48: gUnknown_020322A0->unk_91 = CreateSprite(&gSpriteTemplate_8338E74, 120, 80, 0); - gUnknown_020322A0->unk_94 = 50; + gUnknown_020322A0->state = 50; break; case 50: if (gSprites[gUnknown_020322A0->unk_91].animEnded) { DestroySprite(&gSprites[gUnknown_020322A0->unk_91]); sub_807B62C(6); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; PlaySE(SE_W028); } break; @@ -4547,13 +5571,13 @@ bool8 sub_807CFC8(void) else { gUnknown_020322A0->unk_EA = 0x400; - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } gUnknown_020322A0->unk_E8 = 0x8000 / gUnknown_020322A0->unk_EA; break; case 52: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - gUnknown_020322A0->unk_94 = 60; + gUnknown_020322A0->state = 60; break; case 60: if (!gPaletteFade.active) @@ -4561,13 +5585,13 @@ bool8 sub_807CFC8(void) sub_807B62C(5); sub_807B62C(7); gPaletteFade.bufferTransferDisabled = TRUE; - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 61: gPaletteFade.bufferTransferDisabled = FALSE; BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; break; case 62: SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | @@ -4576,7 +5600,7 @@ bool8 sub_807CFC8(void) DISPCNT_OBJ_ON); if (!gPaletteFade.active) { - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 63: @@ -4586,18 +5610,18 @@ bool8 sub_807CFC8(void) StartSpriteAnim(&gSprites[gUnknown_020322A0->unk_D3], 1); StartSpriteAffineAnim(&gSprites[gUnknown_020322A0->unk_D3], 2); BlendPalettes(1 << (16 + gSprites[gUnknown_020322A0->unk_D3].oam.paletteNum), 16, RGB_WHITEALPHA); - gUnknown_020322A0->unk_94++; - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->state++; + gUnknown_020322A0->timer = 0; break; case 64: BeginNormalPaletteFade(1 << (16 + gSprites[gUnknown_020322A0->unk_D3].oam.paletteNum), 1, 16, 0, RGB_WHITEALPHA); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; break; case 65: if (gSprites[gUnknown_020322A0->unk_D3].callback == SpriteCallbackDummy) { HandleLoadSpecialPokePic_2(&gMonFrontPicTable[gUnknown_020322A0->tradeSpecies[1]], gMonSpritesGfxPtr->sprites[3], gUnknown_020322A0->tradeSpecies[1], gUnknown_020322A0->unk_68[1]); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 66: @@ -4609,7 +5633,7 @@ bool8 sub_807CFC8(void) CreatePokeballSpriteToReleaseMon(gUnknown_020322A0->pokePicSpriteIdxs[1], gSprites[gUnknown_020322A0->pokePicSpriteIdxs[1]].oam.paletteNum, 120, 84, 2, 1, 20, 0xFFFFF, gUnknown_020322A0->tradeSpecies[1]); FreeSpriteOamMatrix(&gSprites[gUnknown_020322A0->unk_D3]); DestroySprite(&gSprites[gUnknown_020322A0->unk_D3]); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; break; case 67: SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | @@ -4619,45 +5643,45 @@ bool8 sub_807CFC8(void) DISPCNT_OBJ_ON); StringExpandPlaceholders(gStringVar4, gText_XSentOverY); sub_807F1A8(0, gStringVar4, 0); - gUnknown_020322A0->unk_94 = 167; - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->state = 167; + gUnknown_020322A0->timer = 0; break; // 167 and 267 are extra cases added in for animations case 167: - if (++gUnknown_020322A0->unk_64 > 60) + if (++gUnknown_020322A0->timer > 60) { - gUnknown_020322A0->unk_94 = 267; - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->state = 267; + gUnknown_020322A0->timer = 0; } break; case 267: if (IsCryFinished()) { - gUnknown_020322A0->unk_94 = 68; + gUnknown_020322A0->state = 68; } break; case 68: - if (++gUnknown_020322A0->unk_64 == 10) + if (++gUnknown_020322A0->timer == 10) { PlayFanfare(MUS_FANFA5); } - if (gUnknown_020322A0->unk_64 == 250) + if (gUnknown_020322A0->timer == 250) { - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; StringExpandPlaceholders(gStringVar4, gText_TakeGoodCareOfX); sub_807F1A8(0, gStringVar4, 0); - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->timer = 0; } break; case 69: - if (++gUnknown_020322A0->unk_64 == 60) + if (++gUnknown_020322A0->timer == 60) { - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 70: sub_807F14C(); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; break; case 71: if (gUnknown_020322A0->isLinkTrade) @@ -4666,7 +5690,7 @@ bool8 sub_807CFC8(void) } else if (gMain.newKeys & A_BUTTON) { - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; } break; case 72: // Only if in-game trade @@ -4677,16 +5701,16 @@ bool8 sub_807CFC8(void) { TradeEvolutionScene(&gPlayerParty[gUnknown_02032298[0]], evoTarget, gUnknown_020322A0->pokePicSpriteIdxs[1], gUnknown_02032298[0]); } - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; break; case 73: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - gUnknown_020322A0->unk_94++; + gUnknown_020322A0->state++; break; case 74: if (!gPaletteFade.active) { - PlayNewMapMusic(gUnknown_020322A0->unk_F4); + PlayNewMapMusic(gUnknown_020322A0->cachedMapMusic); if (gUnknown_020322A0) { FreeAllWindowBuffers(); @@ -4704,7 +5728,7 @@ bool8 sub_807CFC8(void) return FALSE; } -void c2_08053788(void) +static void c2_08053788(void) { u16 evoTarget; switch (gMain.state) @@ -4732,7 +5756,7 @@ void c2_08053788(void) UpdatePaletteFade(); } -void sub_807E4DC(void) +static void sub_807E4DC(void) { u8 blockReceivedStatus; sub_807ACDC(); @@ -4759,7 +5783,7 @@ void sub_807E4DC(void) } } -void sub_807E55C(struct Sprite *sprite) +static void sub_807E55C(struct Sprite *sprite) { sprite->pos1.y += sprite->data[0] / 10; sprite->data[5] += sprite->data[1]; @@ -4780,7 +5804,7 @@ void sub_807E55C(struct Sprite *sprite) } } -void sub_807E5D8(struct Sprite *sprite) +static void sub_807E5D8(struct Sprite *sprite) { sprite->pos2.y += gTradeBallVerticalVelocityTable[sprite->data[0]]; if (sprite->data[0] == 22) @@ -4794,7 +5818,7 @@ void sub_807E5D8(struct Sprite *sprite) } } -void sub_807E64C(struct Sprite *sprite) +static void sub_807E64C(struct Sprite *sprite) { if (sprite->data[1] == 20) StartSpriteAffineAnim(sprite, 1); @@ -4804,12 +5828,12 @@ void sub_807E64C(struct Sprite *sprite) if (++ sprite->data[0] == 23) { DestroySprite(sprite); - gUnknown_020322A0->unk_94 = 14; // Resume the master trade animation + gUnknown_020322A0->state = 14; // Resume the master trade animation } } } -void sub_807E6AC(struct Sprite *sprite) +static void sub_807E6AC(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4842,7 +5866,7 @@ u16 GetInGameTradeSpeciesInfo(void) return inGameTrade->playerSpecies; } -void sub_807E784(void) +static void sub_807E784(void) { u8 nickname[32]; const struct InGameTrade *inGameTrade = &gIngameTrades[gSpecialVar_0x8004]; @@ -4851,7 +5875,7 @@ void sub_807E784(void) StringCopy(gStringVar2, gSpeciesNames[inGameTrade->species]); } -void _CreateInGameTradePokemon(u8 whichPlayerMon, u8 whichInGameTrade) +static void _CreateInGameTradePokemon(u8 whichPlayerMon, u8 whichInGameTrade) { const struct InGameTrade *inGameTrade = &gIngameTrades[whichInGameTrade]; u8 level = GetMonData(&gPlayerParty[whichPlayerMon], MON_DATA_LEVEL); @@ -4899,7 +5923,7 @@ void _CreateInGameTradePokemon(u8 whichPlayerMon, u8 whichInGameTrade) CalculateMonStats(&gEnemyParty[0]); } -void sub_807E974(struct MailStruct *mail, const struct InGameTrade *trade) { +static void sub_807E974(struct MailStruct *mail, const struct InGameTrade *trade) { s32 i; for (i = 0; i < 9; i++) @@ -4930,7 +5954,7 @@ void CreateInGameTradePokemon(void) _CreateInGameTradePokemon(gSpecialVar_0x8005, gSpecialVar_0x8004); } -void sub_807EA2C(void) +static void sub_807EA2C(void) { if (sub_807BBC8() == TRUE) { @@ -4953,7 +5977,7 @@ void sub_807EA2C(void) UpdatePaletteFade(); } -void sub_807EACC(void) +static void sub_807EACC(void) { u8 mpId = sub_807ACDC(); if (sub_8077260()) @@ -4977,7 +6001,7 @@ void sub_807EACC(void) UpdatePaletteFade(); } -void sub_807EB50(void) +static void sub_807EB50(void) { switch (gMain.state) { @@ -4989,13 +6013,13 @@ void sub_807EB50(void) case 1: sub_8077288(0); gMain.state = 100; - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->timer = 0; break; case 100: - if (++gUnknown_020322A0->unk_64 > 180) + if (++gUnknown_020322A0->timer > 180) { gMain.state = 101; - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->timer = 0; } if (IsLinkTaskFinished()) { @@ -5023,10 +6047,10 @@ void sub_807EB50(void) sub_8076D5C(); sub_8153380(); gMain.state++; - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->timer = 0; break; case 51: - if (++gUnknown_020322A0->unk_64 == 5) + if (++gUnknown_020322A0->timer == 5) { gMain.state++; } @@ -5039,38 +6063,38 @@ void sub_807EB50(void) } else { - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->timer = 0; gMain.state = 51; } break; case 4: sub_81533E0(); gMain.state = 40; - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->timer = 0; break; case 40: - if (++gUnknown_020322A0->unk_64 > 50) + if (++gUnknown_020322A0->timer > 50) { if (GetMultiplayerId() == 0) { - gUnknown_020322A0->unk_64 = Random() % 30; + gUnknown_020322A0->timer = Random() % 30; } else { - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->timer = 0; } gMain.state = 41; } break; case 41: - if (gUnknown_020322A0->unk_64 == 0) + if (gUnknown_020322A0->timer == 0) { sub_8077288(1); gMain.state = 42; } else { - gUnknown_020322A0->unk_64--; + gUnknown_020322A0->timer--; } break; case 42: @@ -5081,7 +6105,7 @@ void sub_807EB50(void) } break; case 5: - if (++gUnknown_020322A0->unk_64 > 60) + if (++gUnknown_020322A0->timer > 60) { gMain.state++; sub_8077288(2); @@ -5140,7 +6164,7 @@ void sub_807EB50(void) UpdatePaletteFade(); } -void c2_080543C4(void) +static void c2_080543C4(void) { if (!gPaletteFade.active) { @@ -5167,7 +6191,7 @@ void DoInGameTradeScene(void) BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); } -void sub_807F110(u8 taskId) +static void sub_807F110(u8 taskId) { if (!gPaletteFade.active) { @@ -5177,7 +6201,7 @@ void sub_807F110(u8 taskId) } } -void sub_807F14C(void) +static void sub_807F14C(void) { u8 i; u8 numRibbons = 0; @@ -5204,7 +6228,7 @@ void sub_807F1A8(u8 windowId, const u8 *str, u8 speed) CopyWindowToVram(windowId, 3); } -void c3_08054588(u8 taskId) +static void c3_08054588(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -5243,7 +6267,7 @@ void c3_08054588(u8 taskId) } } -void c3_0805465C(u8 taskId) +static void c3_0805465C(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -5272,7 +6296,7 @@ void c3_0805465C(u8 taskId) } } -void sub_807F39C(u8 taskId) +static void sub_807F39C(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -5305,7 +6329,7 @@ void sub_807F39C(u8 taskId) } } -void sub_807F464(void) +static void sub_807F464(void) { switch (gMain.state) { @@ -5317,7 +6341,7 @@ void sub_807F464(void) case 1: sub_8077288(0); gMain.state = 2; - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->timer = 0; break; case 2: if (IsLinkTaskFinished()) @@ -5327,11 +6351,11 @@ void sub_807F464(void) sub_807F1A8(0, gStringVar4, 0); IncrementGameStat(GAME_STAT_POKEMON_TRADES); sub_8153380(); - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->timer = 0; } break; case 3: - if (++gUnknown_020322A0->unk_64 == 5) + if (++gUnknown_020322A0->timer == 5) { gMain.state = 4; } @@ -5343,38 +6367,38 @@ void sub_807F464(void) } else { - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->timer = 0; gMain.state = 3; } break; case 5: sub_81533E0(); gMain.state = 6; - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->timer = 0; break; case 6: - if (++gUnknown_020322A0->unk_64 > 10) + if (++gUnknown_020322A0->timer > 10) { if (GetMultiplayerId() == 0) { - gUnknown_020322A0->unk_64 = Random() % 30; + gUnknown_020322A0->timer = Random() % 30; } else { - gUnknown_020322A0->unk_64 = 0; + gUnknown_020322A0->timer = 0; } gMain.state = 7; } break; case 7: - if (gUnknown_020322A0->unk_64 == 0) + if (gUnknown_020322A0->timer == 0) { sub_8077288(1); gMain.state = 8; } else { - gUnknown_020322A0->unk_64--; + gUnknown_020322A0->timer--; } break; case 8: @@ -5385,7 +6409,7 @@ void sub_807F464(void) } break; case 9: - if (++gUnknown_020322A0->unk_64 > 60) + if (++gUnknown_020322A0->timer > 60) { gMain.state++; sub_8077288(2); |