diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-10-30 16:51:43 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-10-30 16:51:43 -0400 |
commit | 1ba6cb22450b729cc2ac1b7fd72b2b27e5ec38c7 (patch) | |
tree | 393534ca239bb65f679941d79648cd7d17ffd9d8 | |
parent | 4fae033d1a6ba2520baca924c544a8d7195ff024 (diff) |
Some renaming; resolve trade bss
-rw-r--r-- | asm/pokemon_storage_system.s | 10 | ||||
-rw-r--r-- | data/strings.s | 12 | ||||
-rw-r--r-- | include/pokemon_storage_system.h | 2 | ||||
-rw-r--r-- | include/strings.h | 12 | ||||
-rw-r--r-- | src/trade.c | 201 | ||||
-rw-r--r-- | src/trade_scene.c | 4 | ||||
-rw-r--r-- | sym_bss.txt | 7 |
7 files changed, 128 insertions, 120 deletions
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 3a6f541b0..df7c4fbce 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -719,8 +719,8 @@ _0808BEA8: bx r1 thumb_func_end sub_808BDE8 - thumb_func_start sub_808BEB4 -sub_808BEB4: @ 808BEB4 + thumb_func_start PSS_RenderTextToVramViaBuffer +PSS_RenderTextToVramViaBuffer: @ 808BEB4 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -868,7 +868,7 @@ _0808BFC4: bx r0 .align 2, 0 _0808BFDC: .4byte 0x001fffff - thumb_func_end sub_808BEB4 + thumb_func_end PSS_RenderTextToVramViaBuffer thumb_func_start sub_808BFE0 sub_808BFE0: @ 808BFE0 @@ -12353,7 +12353,7 @@ sub_8091A94: @ 8091A94 adds r0, r5, 0 movs r2, 0 movs r3, 0 - bl sub_808BEB4 + bl PSS_RenderTextToVramViaBuffer ldr r0, [sp, 0x30] bl LoadSpriteSheet mov r0, r8 @@ -12539,7 +12539,7 @@ _08091CFC: adds r0, r5, 0 movs r2, 0 movs r3, 0 - bl sub_808BEB4 + bl PSS_RenderTextToVramViaBuffer adds r0, r6, 0 bl LoadSpriteSheet ldr r0, [sp, 0x2C] diff --git a/data/strings.s b/data/strings.s index 5ebdc7afa..d81f72bac 100644 --- a/data/strings.s +++ b/data/strings.s @@ -4364,22 +4364,22 @@ gUnknown_841E09F:: @ 841E09F gUnknown_841E0A5:: @ 841E0A5 .string "Is this trade okay?$" -gUnknown_841E0B9:: +gTradeText_Cancel:: .string "CANCEL$" -gUnknown_841E0C0:: +gTradeText_ChooseAPokemon:: .string "Choose a POKéMON.$" -gUnknown_841E0D2:: +gTradeText_Summary:: .string "SUMMARY$" -gUnknown_841E0DA:: +gTradeText_Trade:: .string "TRADE$" -gUnknown_841E0E0:: +gTradeText_CancelTrade:: .string "Cancel trade?$" -gUnknown_841E0EE:: +gTradeText_PressBButtonToExit:: .string "Press the B Button to exit.$" gUnknown_841E10A:: diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 2d881878f..81f50e1e9 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -16,6 +16,6 @@ u8 * GetBoxNamePtr(u8 boxId); void sub_808CE60(void); void ResetPokemonStorageSystem(void); u8 StorageGetCurrentBox(void); -void sub_808BEB4(const u8 *name, u8 *a1, u8 a2, u8 a3, u8 *buffer, u8 a5); +void PSS_RenderTextToVramViaBuffer(const u8 *name, u8 *a1, u8 a2, u8 a3, u8 *buffer, u8 a5); #endif // GUARD_POKEMON_STORAGE_SYSTEM_H diff --git a/include/strings.h b/include/strings.h index 301bfb9c6..7231755c5 100644 --- a/include/strings.h +++ b/include/strings.h @@ -667,12 +667,12 @@ extern const u8 gText_ByeByeVar1[]; extern const u8 gText_XSentOverY[]; extern const u8 gText_TakeGoodCareOfX[]; extern const u8 gUnknown_841E325[]; -extern const u8 gUnknown_841E0B9[]; -extern const u8 gUnknown_841E0C0[]; -extern const u8 gUnknown_841E0D2[]; -extern const u8 gUnknown_841E0DA[]; -extern const u8 gUnknown_841E0E0[]; -extern const u8 gUnknown_841E0EE[]; +extern const u8 gTradeText_Cancel[]; +extern const u8 gTradeText_ChooseAPokemon[]; +extern const u8 gTradeText_Summary[]; +extern const u8 gTradeText_Trade[]; +extern const u8 gTradeText_CancelTrade[]; +extern const u8 gTradeText_PressBButtonToExit[]; extern const u8 gUnknown_841E10A[]; extern const u8 gUnknown_841E112[]; extern const u8 gUnknown_841E118[]; diff --git a/src/trade.c b/src/trade.c index 66c44a010..817182efe 100644 --- a/src/trade.c +++ b/src/trade.c @@ -83,10 +83,10 @@ struct TradeMenuResources /*0x00A9*/ u8 unk_A9[11]; /*0x00B4*/ u8 filler_B4[0x8D0-0xB4]; /*0x08D0*/ struct { - bool8 unk_0; - u16 unk_2; - u8 unk_4; - } unk_8D0[4]; + bool8 active; + u16 delay; + u8 kind; + } cron[4]; /*0x08F0*/ u16 tilemapBuffer[BG_SCREEN_SIZE / 2]; }; @@ -103,10 +103,8 @@ enum TradeStatusMsg TRADESTATMSG_PARTNERMONCANTBETRADED }; -IWRAM_DATA vu16 gUnknown_3000E78; - -static EWRAM_DATA u8 *gUnknown_2031C90 = NULL; -static EWRAM_DATA u8 *gUnknown_2031C94[14] = {}; +static EWRAM_DATA u8 *sSpriteTextTileBuffer = NULL; +static EWRAM_DATA u8 *sSpriteTextTilePtrs[14] = {}; EWRAM_DATA struct MailStruct gLinkPartnerMail[6] = {}; EWRAM_DATA u8 gSelectedTradeMonPositions[2] = {0}; static EWRAM_DATA struct TradeMenuResources * sTradeMenuResourcesPtr = NULL; @@ -130,11 +128,11 @@ static void sub_804F3B4(void); static void sub_804F3C8(u8 a0); static void TradeMenuAction_Summary(u8 taskId); static void TradeMenuAction_Trade(u8 taskId); -static void sub_804F488(u16 a0, u8 a1); -static void sub_804F4DC(void); +static void ScheduleLinkTaskWithDelay(u16 delay, u8 kind); +static void RunScheduledLinkTasks(void); static void PrintTradeErrorOrStatusMessage(u8 str_idx); static bool8 sub_804F610(void); -static void sub_804F728(const u8 *name, u8 *a1, u8 unused); +static void RenderTextToVramViaBuffer(const u8 *name, u8 *a1, u8 unused); static void sub_804F748(u8 side); static void sub_804F890(u8 side); static void sub_804F964(void); @@ -429,13 +427,23 @@ const u8 gUnknown_8261EC6[] = _(""); const u8 gUnknown_8261EC7[] = _("\n"); const u8 gUnknown_8261EC9[] = _("/"); -static const u8 *const gUnknown_8261ECC[] = { - gUnknown_841E0B9, - gUnknown_841E0C0, - gUnknown_841E0D2, - gUnknown_841E0DA, - gUnknown_841E0E0, - gUnknown_841E0EE +enum TradeUIText +{ + TRADEUITEXT_CANCEL = 0, + TRADEUITEXT_CHOOSE, + TRADEUITEXT_SUMMARY, + TRADEUITEXT_TRADE, + TRADEUITEXT_ASKCANCEL, + TRADEUITEXT_PRESSBTOEXIT +}; + +static const u8 *const sTradeUITextPtrs[] = { + gTradeText_Cancel, + gTradeText_ChooseAPokemon, + gTradeText_Summary, + gTradeText_Trade, + gTradeText_CancelTrade, + gTradeText_PressBButtonToExit }; static const struct MenuAction gUnknown_8261EE4[] = { @@ -674,6 +682,7 @@ static const u8 gUnknown_8262055[][2] = { static void sub_804C600(void) { int i; + static vu16 dummy; ResetSpriteData(); FreeAllSpritePalettes(); @@ -689,7 +698,7 @@ static void sub_804C600(void) if (InitWindows(gUnknown_8261F2C)) { DeactivateAllTextPrinters(); - gUnknown_3000E78 = 590; // ? + dummy = 590; // ? for (i = 0; i < NELEMS(gUnknown_8261F2C) - 1; i++) { ClearWindowTilemap(i); @@ -730,11 +739,11 @@ static void sub_804C728(void) case 0: sTradeMenuResourcesPtr = AllocZeroed(sizeof(*sTradeMenuResourcesPtr)); sub_804C600(); - gUnknown_2031C90 = AllocZeroed(0xE00); + sSpriteTextTileBuffer = AllocZeroed(0xE00); for (i = 0; i < 14; i++) { - gUnknown_2031C94[i] = &gUnknown_2031C90[i * 256]; + sSpriteTextTilePtrs[i] = &sSpriteTextTileBuffer[i * 256]; } gMain.state++; @@ -877,11 +886,11 @@ static void sub_804C728(void) gMain.state++; break; case 10: - sub_808BEB4(gSaveBlock2Ptr->playerName, gUnknown_2031C94[0], 0, 0, gDecompressionBuffer, 3); + PSS_RenderTextToVramViaBuffer(gSaveBlock2Ptr->playerName, sSpriteTextTilePtrs[0], 0, 0, gDecompressionBuffer, 3); id = GetMultiplayerId(); - sub_808BEB4(gLinkPlayers[id ^ 1].name, gUnknown_2031C94[3], 0, 0, gDecompressionBuffer, 3); - sub_808BEB4(gUnknown_8261ECC[0], gUnknown_2031C94[6], 0, 0, gDecompressionBuffer, 2); - sub_804F728(gUnknown_8261ECC[1], gUnknown_2031C94[8], 24); + PSS_RenderTextToVramViaBuffer(gLinkPlayers[id ^ 1].name, sSpriteTextTilePtrs[3], 0, 0, gDecompressionBuffer, 3); + PSS_RenderTextToVramViaBuffer(sTradeUITextPtrs[TRADEUITEXT_CANCEL], sSpriteTextTilePtrs[6], 0, 0, gDecompressionBuffer, 2); + RenderTextToVramViaBuffer(sTradeUITextPtrs[TRADEUITEXT_CHOOSE], sSpriteTextTilePtrs[8], 24); gMain.state++; sTradeMenuResourcesPtr->unk_A8 = 0; break; @@ -1047,13 +1056,13 @@ static void sub_804C728(void) "\tbl AllocZeroed\n" "\tstr r0, [r4]\n" "\tbl sub_804C600\n" - "\tldr r4, _0804C7F0 @ =gUnknown_2031C90\n" + "\tldr r4, _0804C7F0 @ =sSpriteTextTileBuffer\n" "\tmovs r0, 0xE0\n" "\tlsls r0, 4\n" "\tbl AllocZeroed\n" "\tstr r0, [r4]\n" "\tmovs r6, 0\n" - "\tldr r2, _0804C7F4 @ =gUnknown_2031C94\n" + "\tldr r2, _0804C7F4 @ =sSpriteTextTilePtrs\n" "_0804C7CE:\n" "\tlsls r1, r6, 8\n" "\tldr r0, [r4]\n" @@ -1070,8 +1079,8 @@ static void sub_804C728(void) "\t.align 2, 0\n" "_0804C7E8: .4byte sTradeMenuResourcesPtr\n" "_0804C7EC: .4byte 0x000010f0\n" - "_0804C7F0: .4byte gUnknown_2031C90\n" - "_0804C7F4: .4byte gUnknown_2031C94\n" + "_0804C7F0: .4byte sSpriteTextTileBuffer\n" + "_0804C7F4: .4byte sSpriteTextTilePtrs\n" "_0804C7F8: .4byte gMain\n" "_0804C7FC:\n" "\tldr r2, _0804C864 @ =gPaletteFade\n" @@ -1501,7 +1510,7 @@ static void sub_804C728(void) "_0804CB9C:\n" "\tldr r0, _0804CC14 @ =gSaveBlock2Ptr\n" "\tldr r0, [r0]\n" - "\tldr r6, _0804CC18 @ =gUnknown_2031C94\n" + "\tldr r6, _0804CC18 @ =sSpriteTextTilePtrs\n" "\tldr r1, [r6]\n" "\tldr r5, _0804CC1C @ =gDecompressionBuffer\n" "\tstr r5, [sp]\n" @@ -1509,7 +1518,7 @@ static void sub_804C728(void) "\tstr r4, [sp, 0x4]\n" "\tmovs r2, 0\n" "\tmovs r3, 0\n" - "\tbl sub_808BEB4\n" + "\tbl PSS_RenderTextToVramViaBuffer\n" "\tbl GetMultiplayerId\n" "\tlsls r0, 24\n" "\tmovs r1, 0x80\n" @@ -1526,8 +1535,8 @@ static void sub_804C728(void) "\tstr r4, [sp, 0x4]\n" "\tmovs r2, 0\n" "\tmovs r3, 0\n" - "\tbl sub_808BEB4\n" - "\tldr r4, _0804CC24 @ =gUnknown_8261ECC\n" + "\tbl PSS_RenderTextToVramViaBuffer\n" + "\tldr r4, _0804CC24 @ =sTradeUITextPtrs\n" "\tldr r0, [r4]\n" "\tldr r1, [r6, 0x18]\n" "\tstr r5, [sp]\n" @@ -1535,11 +1544,11 @@ static void sub_804C728(void) "\tstr r2, [sp, 0x4]\n" "\tmovs r2, 0\n" "\tmovs r3, 0\n" - "\tbl sub_808BEB4\n" + "\tbl PSS_RenderTextToVramViaBuffer\n" "\tldr r0, [r4, 0x4]\n" "\tldr r1, [r6, 0x20]\n" "\tmovs r2, 0x18\n" - "\tbl sub_804F728\n" + "\tbl RenderTextToVramViaBuffer\n" "\tldr r1, _0804CC28 @ =gMain\n" "\tmovs r0, 0x87\n" "\tlsls r0, 3\n" @@ -1555,10 +1564,10 @@ static void sub_804C728(void) "\tb _0804CEE6\n" "\t.align 2, 0\n" "_0804CC14: .4byte gSaveBlock2Ptr\n" - "_0804CC18: .4byte gUnknown_2031C94\n" + "_0804CC18: .4byte sSpriteTextTilePtrs\n" "_0804CC1C: .4byte gDecompressionBuffer\n" "_0804CC20: .4byte gLinkPlayers + 8\n" - "_0804CC24: .4byte gUnknown_8261ECC\n" + "_0804CC24: .4byte sTradeUITextPtrs\n" "_0804CC28: .4byte gMain\n" "_0804CC2C: .4byte sTradeMenuResourcesPtr\n" "_0804CC30:\n" @@ -1987,11 +1996,11 @@ void sub_804CF14(void) gMain.state++; break; case 10: - sub_808BEB4(gSaveBlock2Ptr->playerName, gUnknown_2031C94[0], 0, 0, gDecompressionBuffer, 3); + PSS_RenderTextToVramViaBuffer(gSaveBlock2Ptr->playerName, sSpriteTextTilePtrs[0], 0, 0, gDecompressionBuffer, 3); id = GetMultiplayerId(); - sub_808BEB4(gLinkPlayers[id ^ 1].name, gUnknown_2031C94[3], 0, 0, gDecompressionBuffer, 3); - sub_808BEB4(gUnknown_8261ECC[0], gUnknown_2031C94[6], 0, 0, gDecompressionBuffer, 2); - sub_804F728(gUnknown_8261ECC[1], gUnknown_2031C94[8], 24); + PSS_RenderTextToVramViaBuffer(gLinkPlayers[id ^ 1].name, sSpriteTextTilePtrs[3], 0, 0, gDecompressionBuffer, 3); + PSS_RenderTextToVramViaBuffer(sTradeUITextPtrs[TRADEUITEXT_CANCEL], sSpriteTextTilePtrs[6], 0, 0, gDecompressionBuffer, 2); + RenderTextToVramViaBuffer(sTradeUITextPtrs[TRADEUITEXT_CHOOSE], sSpriteTextTilePtrs[8], 24); gMain.state++; sTradeMenuResourcesPtr->unk_A8 = 0; break; @@ -2383,7 +2392,7 @@ void sub_804CF14(void) "_0804D19C:\n" "\tldr r0, _0804D214 @ =gSaveBlock2Ptr\n" "\tldr r0, [r0]\n" - "\tldr r6, _0804D218 @ =gUnknown_2031C94\n" + "\tldr r6, _0804D218 @ =sSpriteTextTilePtrs\n" "\tldr r1, [r6]\n" "\tldr r5, _0804D21C @ =gDecompressionBuffer\n" "\tstr r5, [sp]\n" @@ -2391,7 +2400,7 @@ void sub_804CF14(void) "\tstr r4, [sp, 0x4]\n" "\tmovs r2, 0\n" "\tmovs r3, 0\n" - "\tbl sub_808BEB4\n" + "\tbl PSS_RenderTextToVramViaBuffer\n" "\tbl GetMultiplayerId\n" "\tlsls r0, 24\n" "\tmovs r1, 0x80\n" @@ -2408,8 +2417,8 @@ void sub_804CF14(void) "\tstr r4, [sp, 0x4]\n" "\tmovs r2, 0\n" "\tmovs r3, 0\n" - "\tbl sub_808BEB4\n" - "\tldr r4, _0804D224 @ =gUnknown_8261ECC\n" + "\tbl PSS_RenderTextToVramViaBuffer\n" + "\tldr r4, _0804D224 @ =sTradeUITextPtrs\n" "\tldr r0, [r4]\n" "\tldr r1, [r6, 0x18]\n" "\tstr r5, [sp]\n" @@ -2417,11 +2426,11 @@ void sub_804CF14(void) "\tstr r2, [sp, 0x4]\n" "\tmovs r2, 0\n" "\tmovs r3, 0\n" - "\tbl sub_808BEB4\n" + "\tbl PSS_RenderTextToVramViaBuffer\n" "\tldr r0, [r4, 0x4]\n" "\tldr r1, [r6, 0x20]\n" "\tmovs r2, 0x18\n" - "\tbl sub_804F728\n" + "\tbl RenderTextToVramViaBuffer\n" "\tldr r1, _0804D228 @ =gMain\n" "\tmovs r0, 0x87\n" "\tlsls r0, 3\n" @@ -2438,10 +2447,10 @@ void sub_804CF14(void) "\tb _0804D4D2\n" "\t.align 2, 0\n" "_0804D214: .4byte gSaveBlock2Ptr\n" - "_0804D218: .4byte gUnknown_2031C94\n" + "_0804D218: .4byte sSpriteTextTilePtrs\n" "_0804D21C: .4byte gDecompressionBuffer\n" "_0804D220: .4byte gLinkPlayers + 8\n" - "_0804D224: .4byte gUnknown_8261ECC\n" + "_0804D224: .4byte sTradeUITextPtrs\n" "_0804D228: .4byte gMain\n" "_0804D22C: .4byte sTradeMenuResourcesPtr\n" "_0804D230:\n" @@ -2820,7 +2829,7 @@ static void sub_804D5A4(void) { if (IsLinkRfuTaskFinished()) { - Free(gUnknown_2031C90); + Free(sSpriteTextTileBuffer); FreeAllWindowBuffers(); Free(sTradeMenuResourcesPtr); gMain.callback1 = NULL; @@ -2832,7 +2841,7 @@ static void sub_804D5A4(void) { if (gReceivedRemoteLinkPlayers == 0) { - Free(gUnknown_2031C90); + Free(sSpriteTextTileBuffer); FreeAllWindowBuffers(); Free(sTradeMenuResourcesPtr); gMain.callback1 = NULL; @@ -2844,7 +2853,7 @@ static void sub_804D5A4(void) static void sub_804D638(void) { RunTradeMenuCallback(); - sub_804F4DC(); + RunScheduledLinkTasks(); sub_804EAE4(0); sub_804EAE4(1); SetGpuReg(REG_OFFSET_BG2HOFS, sTradeMenuResourcesPtr->unk_0++); @@ -3080,7 +3089,7 @@ static bool8 shedinja_maker_maybe(void) static void sub_804DBAC(void) { - sub_804F728(gUnknown_841E0A5, (u8 *)OBJ_VRAM0 + sTradeMenuResourcesPtr->unk_72 * 32, 0x18); + RenderTextToVramViaBuffer(gUnknown_841E0A5, (u8 *)OBJ_VRAM0 + sTradeMenuResourcesPtr->unk_72 * 32, 0x18); } static void sub_804DBD4(u8 a0, u8 a1) @@ -3173,7 +3182,7 @@ static void sub_804DDF0(void) sTradeMenuResourcesPtr->unk_6F = 6; sTradeMenuResourcesPtr->linkData[0] = 0xDDDD; sTradeMenuResourcesPtr->linkData[1] = sTradeMenuResourcesPtr->tradeMenuCursorPosition; - sub_804F488(5, 0); + ScheduleLinkTaskWithDelay(5, 0); sTradeMenuResourcesPtr->unk_78 = sTradeMenuResourcesPtr->unk_79 = 0; } else if (sTradeMenuResourcesPtr->unk_78 == 1 && sTradeMenuResourcesPtr->unk_79 == 2) @@ -3181,7 +3190,7 @@ static void sub_804DDF0(void) PrintTradeErrorOrStatusMessage(TRADESTATMSG_CANCELED); sTradeMenuResourcesPtr->linkData[0] = 0xEECC; sTradeMenuResourcesPtr->linkData[1] = 0; - sub_804F488(5, 0); + ScheduleLinkTaskWithDelay(5, 0); sTradeMenuResourcesPtr->unk_7A = sTradeMenuResourcesPtr->unk_7B = 0; sTradeMenuResourcesPtr->unk_78 = sTradeMenuResourcesPtr->unk_79 = 0; sTradeMenuResourcesPtr->unk_6F = 8; @@ -3191,7 +3200,7 @@ static void sub_804DDF0(void) PrintTradeErrorOrStatusMessage(TRADESTATMSG_FRIENDWANTSTOTRADE); sTradeMenuResourcesPtr->linkData[0] = 0xDDEE; sTradeMenuResourcesPtr->linkData[1] = 0; - sub_804F488(5, 0); + ScheduleLinkTaskWithDelay(5, 0); sTradeMenuResourcesPtr->unk_7A = sTradeMenuResourcesPtr->unk_7B = 0; sTradeMenuResourcesPtr->unk_78 = sTradeMenuResourcesPtr->unk_79 = 0; sTradeMenuResourcesPtr->unk_6F = 8; @@ -3200,7 +3209,7 @@ static void sub_804DDF0(void) { sTradeMenuResourcesPtr->linkData[0] = 0xEEBB; sTradeMenuResourcesPtr->linkData[1] = 0; - sub_804F488(5, 0); + ScheduleLinkTaskWithDelay(5, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); sTradeMenuResourcesPtr->unk_78 = sTradeMenuResourcesPtr->unk_79 = 0; sTradeMenuResourcesPtr->unk_6F = 11; @@ -3213,7 +3222,7 @@ static void sub_804DDF0(void) { sTradeMenuResourcesPtr->linkData[0] = 0xCCDD; sTradeMenuResourcesPtr->linkData[1] = 0; - sub_804F488(5, 0); + ScheduleLinkTaskWithDelay(5, 0); sTradeMenuResourcesPtr->unk_7A = 0; sTradeMenuResourcesPtr->unk_7B = 0; sTradeMenuResourcesPtr->unk_6F = 9; @@ -3224,7 +3233,7 @@ static void sub_804DDF0(void) PrintTradeErrorOrStatusMessage(TRADESTATMSG_CANCELED); sTradeMenuResourcesPtr->linkData[0] = 0xDDEE; sTradeMenuResourcesPtr->linkData[1] = 0; - sub_804F488(5, 0); + ScheduleLinkTaskWithDelay(5, 0); sTradeMenuResourcesPtr->unk_7A = 0; sTradeMenuResourcesPtr->unk_7B = 0; sTradeMenuResourcesPtr->unk_6F = 8; @@ -3351,7 +3360,7 @@ static void sub_804E194(void) { CreateYesNoMenu(&gUnknown_8261FC4, 3, 0, 2, 0x001, 14, 0); sTradeMenuResourcesPtr->unk_6F = 4; - sub_804F728(gUnknown_8261ECC[4], (void *)OBJ_VRAM0 + sTradeMenuResourcesPtr->unk_72 * 32, 24); + RenderTextToVramViaBuffer(sTradeUITextPtrs[TRADEUITEXT_ASKCANCEL], (void *)OBJ_VRAM0 + sTradeMenuResourcesPtr->unk_72 * 32, 24); } } if (JOY_NEW(R_BUTTON)) @@ -3367,7 +3376,7 @@ static void sub_804E330(void) sub_804F3B4(); sTradeMenuResourcesPtr->unk_6F = 0; gSprites[sTradeMenuResourcesPtr->tradeMenuCursorSpriteIdx].invisible = FALSE; - sub_804F728(gUnknown_8261ECC[1], (void *)OBJ_VRAM0 + sTradeMenuResourcesPtr->unk_72 * 32, 24); + RenderTextToVramViaBuffer(sTradeUITextPtrs[TRADEUITEXT_CHOOSE], (void *)OBJ_VRAM0 + sTradeMenuResourcesPtr->unk_72 * 32, 24); } static void sub_804E388(void) @@ -3392,17 +3401,17 @@ static void sub_804E388(void) gSprites[sTradeMenuResourcesPtr->tradeMenuCursorSpriteIdx].invisible = TRUE; break; case 1: - sub_804F488(3, 3); + ScheduleLinkTaskWithDelay(3, 3); sTradeMenuResourcesPtr->unk_6F = 8; break; case 2: case 4: - sub_804F488(3, 6); + ScheduleLinkTaskWithDelay(3, 6); sTradeMenuResourcesPtr->unk_6F = 8; break; case 3: case 5: - sub_804F488(3, 7); + ScheduleLinkTaskWithDelay(3, 7); sTradeMenuResourcesPtr->unk_6F = 8; break; } @@ -3431,22 +3440,22 @@ static void sub_804E494(void) } } -static u8 sub_804E50C(u8 *a0, u8 a1, u8 a2) +static u8 sub_804E50C(u8 *flags, u8 partyCount, u8 cursorPos) { s32 i; u16 species; - u8 r4 = 0; - for (i = 0; i < a1; i++) + u8 count = 0; + for (i = 0; i < partyCount; i++) { - if (a2 != i) - r4 += a0[i]; + if (cursorPos != i) + count += flags[i]; } species = GetMonData(&gEnemyParty[sTradeMenuResourcesPtr->unk_7E % 6], MON_DATA_SPECIES); if ((species == SPECIES_DEOXYS || species == SPECIES_MEW) && !GetMonData(&gEnemyParty[sTradeMenuResourcesPtr->unk_7E % 6], MON_DATA_OBEDIENCE)) return 2; - if (r4 != 0) - r4 = 1; - return r4; + if (count != 0) + count = 1; + return count; } static void sub_804E5A0(void) @@ -3462,12 +3471,12 @@ static void sub_804E5A0(void) switch (sub_804E50C(arr, sTradeMenuResourcesPtr->partyCounts[0], sTradeMenuResourcesPtr->tradeMenuCursorPosition)) { case 0: - sub_804F488(3, 3); + ScheduleLinkTaskWithDelay(3, 3); sTradeMenuResourcesPtr->linkData[0] = 0xBBCC; - sub_804F488(0xB4, 0); + ScheduleLinkTaskWithDelay(0xB4, 0); break; case 1: - sub_804F488(3, 1); + ScheduleLinkTaskWithDelay(3, 1); sTradeMenuResourcesPtr->linkData[0] = 0xBBBB; if (IsLinkTaskFinished()) { @@ -3475,9 +3484,9 @@ static void sub_804E5A0(void) } break; case 2: - sub_804F488(3, 8); + ScheduleLinkTaskWithDelay(3, 8); sTradeMenuResourcesPtr->linkData[0] = 0xBBCC; - sub_804F488(0xB4, 0); + ScheduleLinkTaskWithDelay(0xB4, 0); break; } } @@ -3493,7 +3502,7 @@ static void sub_804E674(void) break; case 1: case MENU_B_PRESSED: - sub_804F488(3, 1); + ScheduleLinkTaskWithDelay(3, 1); if (IsLinkTaskFinished()) { sTradeMenuResourcesPtr->linkData[0] = 0xBBCC; @@ -3524,7 +3533,7 @@ static void sub_804E744(void) PrintTradeErrorOrStatusMessage(TRADESTATMSG_WAITINGFORFRIEND); sTradeMenuResourcesPtr->linkData[0] = 0xEEAA; sTradeMenuResourcesPtr->linkData[1] = 0; - sub_804F488(5, 0); + ScheduleLinkTaskWithDelay(5, 0); gSprites[sTradeMenuResourcesPtr->tradeMenuCursorSpriteIdx].invisible = TRUE; sTradeMenuResourcesPtr->unk_6F = 100; sub_804E6FC(); @@ -3615,7 +3624,7 @@ static void sub_804E944(void) { if (IsLinkTaskFinished()) { - Free(gUnknown_2031C90); + Free(sSpriteTextTileBuffer); Free(sTradeMenuResourcesPtr); FreeAllWindowBuffers(); DestroyWirelessStatusIndicatorSprite(); @@ -3626,7 +3635,7 @@ static void sub_804E944(void) { if (!gReceivedRemoteLinkPlayers) { - Free(gUnknown_2031C90); + Free(sSpriteTextTileBuffer); Free(sTradeMenuResourcesPtr); FreeAllWindowBuffers(); SetMainCallback2(c2_8056854); @@ -4016,7 +4025,7 @@ static void sub_804F3C8(u8 whichParty) sub_804F284(whichParty); sub_804F020(whichParty); sub_804F2E8(whichParty); - sub_804F728(gUnknown_8261ECC[1], (void *)OBJ_VRAM0 + 32 * sTradeMenuResourcesPtr->unk_72, 24); + RenderTextToVramViaBuffer(sTradeUITextPtrs[TRADEUITEXT_CHOOSE], (void *)OBJ_VRAM0 + 32 * sTradeMenuResourcesPtr->unk_72, 24); sTradeMenuResourcesPtr->unk_74[whichParty] = 0; } @@ -4032,36 +4041,36 @@ static void TradeMenuAction_Trade(u8 taskId) CopyBgTilemapBufferToVram(0); } -static void sub_804F488(u16 a0, u8 a1) +static void ScheduleLinkTaskWithDelay(u16 delay, u8 kind) { int i; for (i = 0; i < 4; i++) { - if (!sTradeMenuResourcesPtr->unk_8D0[i].unk_0) + if (!sTradeMenuResourcesPtr->cron[i].active) { - sTradeMenuResourcesPtr->unk_8D0[i].unk_2 = a0; - sTradeMenuResourcesPtr->unk_8D0[i].unk_4 = a1; - sTradeMenuResourcesPtr->unk_8D0[i].unk_0 = TRUE; + sTradeMenuResourcesPtr->cron[i].delay = delay; + sTradeMenuResourcesPtr->cron[i].kind = kind; + sTradeMenuResourcesPtr->cron[i].active = TRUE; break; } } } -static void sub_804F4DC(void) +static void RunScheduledLinkTasks(void) { int i; for (i = 0; i < 4; i++) { - if (sTradeMenuResourcesPtr->unk_8D0[i].unk_0) + if (sTradeMenuResourcesPtr->cron[i].active) { - if (sTradeMenuResourcesPtr->unk_8D0[i].unk_2) + if (sTradeMenuResourcesPtr->cron[i].delay != 0) { - sTradeMenuResourcesPtr->unk_8D0[i].unk_2--; + sTradeMenuResourcesPtr->cron[i].delay--; } else { - switch (sTradeMenuResourcesPtr->unk_8D0[i].unk_4) + switch (sTradeMenuResourcesPtr->cron[i].kind) { case 0: SendBlock(bitmask_all_link_players_but_self(), sTradeMenuResourcesPtr->linkData, 20); @@ -4087,7 +4096,7 @@ static void sub_804F4DC(void) PrintTradeErrorOrStatusMessage(TRADESTATMSG_PARTNERMONCANTBETRADED); break; } - sTradeMenuResourcesPtr->unk_8D0[i].unk_0 = FALSE; + sTradeMenuResourcesPtr->cron[i].active = FALSE; } } } @@ -4108,7 +4117,7 @@ static bool8 sub_804F610(void) if (sTradeMenuResourcesPtr->unk_A8 < 14) { - sheet.data = gUnknown_2031C94[sTradeMenuResourcesPtr->unk_A8]; + sheet.data = sSpriteTextTilePtrs[sTradeMenuResourcesPtr->unk_A8]; sheet.size = 0x100; sheet.tag = 200 + sTradeMenuResourcesPtr->unk_A8; } @@ -4147,9 +4156,9 @@ static bool8 sub_804F610(void) return FALSE; } -static void sub_804F728(const u8 *name, u8 *dest, u8 unused) +static void RenderTextToVramViaBuffer(const u8 *name, u8 *dest, u8 unused) { - sub_808BEB4(name, dest, 0, 0, gDecompressionBuffer, 6); + PSS_RenderTextToVramViaBuffer(name, dest, 0, 0, gDecompressionBuffer, 6); } static void sub_804F748(u8 who) diff --git a/src/trade_scene.c b/src/trade_scene.c index bcde7a55d..0c8029685 100644 --- a/src/trade_scene.c +++ b/src/trade_scene.c @@ -98,7 +98,7 @@ struct TradeAnimationResources { /*0xF4*/ u16 cachedMapMusic; /*0xF6*/ u8 unk_F6; /*0xF8*/ u16 monSpecies[2]; - /*0xFC*/ u8 unk_FC[7]; + /*0xFC*/ u8 linkPartnerName[7]; /*0x103*/ u8 filler_103[1]; /*0x104*/ u8 textColor[3]; /*0x107*/ u8 filler_107[1]; @@ -879,7 +879,7 @@ void CB2_InitTradeAnim_LinkTrade(void) ShowBg(0); sTradeData->monSpecies[0] = GetMonData(&gPlayerParty[gSelectedTradeMonPositions[0]], MON_DATA_SPECIES2); sTradeData->monSpecies[1] = GetMonData(&gEnemyParty[gSelectedTradeMonPositions[1] % 6], MON_DATA_SPECIES2); - memcpy(sTradeData->unk_FC, gLinkPlayers[GetMultiplayerId() ^ 1].name, 7); + memcpy(sTradeData->linkPartnerName, gLinkPlayers[GetMultiplayerId() ^ 1].name, 7); gMain.state++; break; case 11: diff --git a/sym_bss.txt b/sym_bss.txt index a8c5ba44c..1f9f5b3d8 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -20,10 +20,9 @@ .include "src/multiboot.o" .align 2 .include "src/daycare.o" - -gUnknown_3000E78: @ 3000E78 - .space 0x4 - + .align 2 + .include "src/trade.o" + .align 2 .include "src/play_time.o" .align 2 gUnknown_3000E80: @ 3000E80 |