diff options
-rw-r--r-- | include/strings.h | 2 | ||||
-rw-r--r-- | src/strings.c | 2 | ||||
-rw-r--r-- | src/trade.c | 572 |
3 files changed, 288 insertions, 288 deletions
diff --git a/include/strings.h b/include/strings.h index 6979f6757..5848d3ae8 100644 --- a/include/strings.h +++ b/include/strings.h @@ -861,7 +861,7 @@ extern const u8 gUnknown_841E1C5[]; extern const u8 gText_PkmnCantBeTradedNow[]; extern const u8 gText_EggCantBeTradedNow[]; extern const u8 gText_OtherTrainersPkmnCantBeTraded[]; -extern const u8 gUnknown_841E09F[]; +extern const u8 gText_4Qmark[]; extern const u8 gEasyChatGroupName_Pokemon[]; extern const u8 gEasyChatGroupName_Trainer[]; diff --git a/src/strings.c b/src/strings.c index de428ddd9..5ccf34dcf 100644 --- a/src/strings.c +++ b/src/strings.c @@ -1203,7 +1203,7 @@ const u8 gText_ThreeQuestionMarks[] = _("???"); const u8 gText_UnusedEmpty[] = _(""); const u8 gText_UnusedLv[] = _("Lv"); const u8 gText_UnusedDashes[] = _("---"); -const u8 gUnknown_841E09F[] = _("????"); +const u8 gText_4Qmark[] = _("????"); const u8 gText_UnusedEmpty2[] = _(""); const u8 gUnknown_841E0A5[] = _("Is this trade okay?"); const u8 gTradeText_Cancel[] = _("CANCEL"); diff --git a/src/trade.c b/src/trade.c index bb2634613..bf3689cd5 100644 --- a/src/trade.c +++ b/src/trade.c @@ -26,34 +26,34 @@ struct TradeMenuResources { - /*0x0000*/ u8 unk_0; - /*0x0001*/ u8 unk_1; + /*0x0000*/ u8 bg2hofs; + /*0x0001*/ u8 bg3hofs; /*0x0002*/ u8 filler_2[0x28 - 2]; /*0x0028*/ u8 partyIcons[2][PARTY_SIZE]; /*0x0034*/ u8 tradeMenuCursorSpriteIdx; /*0x0035*/ u8 tradeMenuCursorPosition; /*0x0036*/ u8 partyCounts[2]; /*0x0038*/ bool8 tradeMenuOptionsActive[13]; - /*0x0045*/ u8 unk_45[2][PARTY_SIZE]; - /*0x0051*/ u8 unk_51[2][PARTY_SIZE]; + /*0x0045*/ u8 battleableFlags[2][PARTY_SIZE]; + /*0x0051*/ u8 eggFlags[2][PARTY_SIZE]; /*0x005D*/ u8 unk_5D[2][PARTY_SIZE]; - /*0x0069*/ u8 unk_69; + /*0x0069*/ u8 state; /*0x006A*/ u8 filler_6A[0x6F - 0x6A]; - /*0x006F*/ u8 unk_6F; + /*0x006F*/ u8 tradeMenuCBnum; /*0x0070*/ u8 unk_70; /*0x0071*/ u8 filler_71; - /*0x0072*/ u16 unk_72; - /*0x0074*/ u8 unk_74[2]; - /*0x0076*/ u8 unk_76[2]; + /*0x0072*/ u16 cursorStartTile; + /*0x0074*/ u8 menuRedrawState[2]; + /*0x0076*/ u8 menuRedrawCursorPos[2]; /*0x0078*/ u8 unk_78; /*0x0079*/ u8 unk_79; /*0x007A*/ u8 unk_7A; /*0x007B*/ u8 unk_7B; /*0x007C*/ u8 filler_7C[0x7E - 0x7C]; - /*0x007E*/ u8 unk_7E; + /*0x007E*/ u8 otherPlayerCursorPosition; /*0x007F*/ u8 filler_7F; /*0x0080*/ u16 linkData[20]; - /*0x00A8*/ u8 unk_A8; + /*0x00A8*/ u8 loadUiSpritesState; /*0x00A9*/ u8 unk_A9[11]; /*0x00B4*/ u8 filler_B4[0x8D0-0xB4]; /*0x08D0*/ struct { @@ -84,21 +84,21 @@ EWRAM_DATA u8 gSelectedTradeMonPositions[2] = {0}; static EWRAM_DATA struct TradeMenuResources * sTradeMenuResourcesPtr = NULL; static void sub_804C728(void); -static void sub_804D4F8(void); -static void sub_804D638(void); +static void VblankCB_Trade(void); +static void CB2_TradeMenu(void); static void sub_804D694(u8 state); static void sub_804D764(void); static u8 shedinja_maker_maybe(void); static void sub_804DFF0(void); static void RunTradeMenuCallback(void); -static void sub_804EAAC(u8 a0); -static void sub_804EAE4(u8 side); -static u8 sub_804EE6C(u8 *str, u8 whichParty, u8 partyIdx); -static void sub_804EED4(u8 *str, u8 whichParty, u8 partyIdx); -static void sub_804F020(u8 side); -static void sub_804F08C(u8 a0, u8 partyIdx, u8 a2, u8 a3, u8 a4, u8 a5); -static void sub_804F284(u8 side); -static void sub_804F3B4(void); +static void SignalRedrawTradeMenus(u8 a0); +static void HandleRedrawTradeMenuOnSide(u8 side); +static u8 GetNicknameStringWidthByPartyAndMonIdx(u8 *str, u8 whichParty, u8 partyIdx); +static void BuildMovesString(u8 *str, u8 whichParty, u8 partyIdx); +static void PrintPartyNicknames(u8 side); +static void PrintLevelAndGenderDirectlyOnVram(u8 a0, u8 partyIdx, u8 a2, u8 a3, u8 a4, u8 a5); +static void PrintPartyLevelsAndGendersDirectlyOnVram(u8 side); +static void PrintTradePartnerPartyNicknames(void); static void sub_804F3C8(u8 a0); static void TradeMenuAction_Summary(u8 taskId); static void TradeMenuAction_Trade(u8 taskId); @@ -111,7 +111,7 @@ static void sub_804F748(u8 side); static void sub_804F890(u8 side); static void sub_804F964(void); static void sub_804F9D8(void); -static u32 sub_804FA14(struct Pokemon * party, int partyCount, int cursorPos); +static u32 TestWhetherSelectedMonCanBeTraded(struct Pokemon * party, int partyCount, int cursorPos); static const size_t gUnknown_8260814[] = { sizeof(struct SaveBlock2), @@ -339,7 +339,7 @@ static const u8 sTradeMonSpriteCoords[][2] = { {0x17, 0x12}, }; -static const u8 gUnknown_8261E5A[][2][2] = { +static const u8 sTradeMenuGenderLevelPrintCoords[][2][2] = { { {0x05, 0x04}, {0x0c, 0x04}, @@ -366,7 +366,7 @@ static const u8 gUnknown_8261E5A[][2][2] = { }, }; -static const u8 gUnknown_8261E72[][2][2] = { +static const u8 sTradeMenuGenderLevelWindowCoords[][2][2] = { { {0x01, 0x03}, {0x08, 0x03}, @@ -410,14 +410,14 @@ static const u8 gUnknown_8261E92[] = { 0x07, 0x07, 0x17, 0x0c }; -const u8 gUnknown_8261EB6[] = _(""); -const u8 gUnknown_8261EB7[] = _("{COLOR DARK_GREY}{HIGHLIGHT TRANSPARENT}{SHADOW RED}"); +const u8 sText_Dummy[] = _(""); +const u8 sText_ClrDkGryHltTranspShdwRed[] = _("{COLOR DARK_GREY}{HIGHLIGHT TRANSPARENT}{SHADOW RED}"); const u8 gText_MaleSymbol4[] = _("♂"); const u8 gText_FemaleSymbol4[] = _("♀"); const u8 gText_GenderlessSymbol[] = _(""); -const u8 gUnknown_8261EC6[] = _(""); -const u8 gUnknown_8261EC7[] = _("\n"); -const u8 gUnknown_8261EC9[] = _("/"); +const u8 sText_Dummy2[] = _(""); +const u8 sText_Newline[] = _("\n"); +const u8 sText_Slash[] = _("/"); enum TradeUIText { @@ -438,7 +438,7 @@ static const u8 *const sTradeUITextPtrs[] = { gTradeText_PressBButtonToExit }; -static const struct MenuAction gUnknown_8261EE4[] = { +static const struct MenuAction sMenuAction_SummaryTrade[] = { {gUnknown_841E10A, { .void_u8 = TradeMenuAction_Summary }}, {gUnknown_841E112, { .void_u8 = TradeMenuAction_Trade }} }; @@ -455,9 +455,9 @@ static const u8 *const sTradeErrorOrStatusMessagePtrs[] = { gText_OtherTrainersPkmnCantBeTraded // The other TRAINER's POKéMON can't be traded now }; -static const u8 gUnknown_8261F18[] = { 0, 1, 2 }; +static const u8 sTextColor_PartyMonNickname[] = { TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY }; -static const struct BgTemplate gUnknown_8261F1C[] = { +static const struct BgTemplate sBgTemplates[] = { { .bg = 0, .charBaseIndex = 2, @@ -493,7 +493,7 @@ static const struct BgTemplate gUnknown_8261F1C[] = { } }; -static const struct WindowTemplate gUnknown_8261F2C[] = { +static const struct WindowTemplate sWindowTemplates[] = { { .bg = 0, .tilemapLeft = 4, @@ -641,7 +641,7 @@ static const struct WindowTemplate gUnknown_8261F2C[] = { }, DUMMY_WIN_TEMPLATE }; -static const struct WindowTemplate gUnknown_8261FC4 = { +static const struct WindowTemplate sWindowTemplate_YesNo = { .bg = 0, .tilemapLeft = 21, .tilemapTop = 13, @@ -681,17 +681,17 @@ static void sub_804C600(void) ResetTasks(); ResetPaletteFade(); gPaletteFade.bufferTransferDisabled = TRUE; - SetVBlankCallback(sub_804D4F8); + SetVBlankCallback(VblankCB_Trade); LoadPalette(gTMCaseMainWindowPalette, 0xF0, 0x14); LoadPalette(gTMCaseMainWindowPalette, 0xD0, 0x14); ResetBgsAndClearDma3BusyFlags(FALSE); - InitBgsFromTemplates(0, gUnknown_8261F1C, NELEMS(gUnknown_8261F1C)); + InitBgsFromTemplates(0, sBgTemplates, NELEMS(sBgTemplates)); SetBgTilemapBuffer(1, sTradeMenuResourcesPtr->tilemapBuffer); - if (InitWindows(gUnknown_8261F2C)) + if (InitWindows(sWindowTemplates)) { DeactivateAllTextPrinters(); dummy = 590; // ? - for (i = 0; i < NELEMS(gUnknown_8261F2C) - 1; i++) + for (i = 0; i < NELEMS(sWindowTemplates) - 1; i++) { ClearWindowTilemap(i); FillWindowPixelBuffer(i, PIXEL_FILL(0)); @@ -700,14 +700,14 @@ static void sub_804C600(void) TextWindow_SetStdFrame0_WithPal(0, 0x014, 0xC0); TextWindow_SetUserSelectedFrame(2, 0x001, 0xE0); LoadMonIconPalettes(); - sTradeMenuResourcesPtr->unk_69 = 0; - sTradeMenuResourcesPtr->unk_6F = 0; + sTradeMenuResourcesPtr->state = 0; + sTradeMenuResourcesPtr->tradeMenuCBnum = 0; sTradeMenuResourcesPtr->unk_70 = 0; - sTradeMenuResourcesPtr->unk_74[0] = 0; - sTradeMenuResourcesPtr->unk_74[1] = 0; + sTradeMenuResourcesPtr->menuRedrawState[0] = 0; + sTradeMenuResourcesPtr->menuRedrawState[1] = 0; sTradeMenuResourcesPtr->unk_7A = 0; sTradeMenuResourcesPtr->unk_7B = 0; - sTradeMenuResourcesPtr->unk_A8 = 0; + sTradeMenuResourcesPtr->loadUiSpritesState = 0; } } @@ -758,7 +758,7 @@ static void sub_804C728(void) if (!gReceivedRemoteLinkPlayers) { gLinkType = 0x1122; - sTradeMenuResourcesPtr->unk_A8 = 0; + sTradeMenuResourcesPtr->loadUiSpritesState = 0; if (gWirelessCommType) { @@ -780,10 +780,10 @@ static void sub_804C728(void) } break; case 2: - sTradeMenuResourcesPtr->unk_A8++; - if (sTradeMenuResourcesPtr->unk_A8 > 11) + sTradeMenuResourcesPtr->loadUiSpritesState++; + if (sTradeMenuResourcesPtr->loadUiSpritesState > 11) { - sTradeMenuResourcesPtr->unk_A8 = 0; + sTradeMenuResourcesPtr->loadUiSpritesState = 0; gMain.state++; } break; @@ -792,7 +792,7 @@ static void sub_804C728(void) { if (IsLinkMaster()) { - if (++sTradeMenuResourcesPtr->unk_A8 > 30) + if (++sTradeMenuResourcesPtr->loadUiSpritesState > 30) { CheckShouldAdvanceLinkState(); gMain.state++; @@ -810,7 +810,7 @@ static void sub_804C728(void) LinkRfu_DestroyIdleTask(); CalculatePlayerPartyCount(); gMain.state++; - sTradeMenuResourcesPtr->unk_A8 = 0; + sTradeMenuResourcesPtr->loadUiSpritesState = 0; if (gWirelessCommType) { sub_80FA484(TRUE); @@ -888,7 +888,7 @@ static void sub_804C728(void) DrawTextWindowAndBufferTiles(sTradeUITextPtrs[TRADEUITEXT_CANCEL], sSpriteTextTilePtrs[6], 0, 0, gDecompressionBuffer, 2); RenderTextToVramViaBuffer(sTradeUITextPtrs[TRADEUITEXT_CHOOSE], sSpriteTextTilePtrs[8], 24); gMain.state++; - sTradeMenuResourcesPtr->unk_A8 = 0; + sTradeMenuResourcesPtr->loadUiSpritesState = 0; break; case 11: if (sub_804F610()) @@ -938,16 +938,16 @@ static void sub_804C728(void) break; case 14: sub_804F748(0); - sub_804F020(0); - sTradeMenuResourcesPtr->unk_0 = 0; - sTradeMenuResourcesPtr->unk_1 = 0; + PrintPartyNicknames(0); + sTradeMenuResourcesPtr->bg2hofs = 0; + sTradeMenuResourcesPtr->bg3hofs = 0; sub_804D764(); gMain.state++; PlayBGM(MUS_SLOT); break; case 15: sub_804F748(1); - sub_804F020(1); + PrintPartyNicknames(1); gMain.state++; // fallthrough case 16: @@ -980,7 +980,7 @@ static void sub_804C728(void) if (!gPaletteFade.active) { gMain.callback1 = sub_804DFF0; - SetMainCallback2(sub_804D638); + SetMainCallback2(CB2_TradeMenu); } break; } @@ -1014,7 +1014,7 @@ void sub_804CF14(void) break; case 1: gMain.state++; - sTradeMenuResourcesPtr->unk_A8 = 0; + sTradeMenuResourcesPtr->loadUiSpritesState = 0; break; case 2: gMain.state++; @@ -1042,8 +1042,8 @@ void sub_804CF14(void) sTradeMenuResourcesPtr->partyCounts[0] = gPlayerPartyCount; sTradeMenuResourcesPtr->partyCounts[1] = gEnemyPartyCount; ClearWindowTilemap(0); - sub_804F020(0); - sub_804F020(1); + PrintPartyNicknames(0); + PrintPartyNicknames(1); for (i = 0; i < sTradeMenuResourcesPtr->partyCounts[0]; i++) { sTradeMenuResourcesPtr->partyIcons[0][i] = CreateMonIcon( @@ -1086,7 +1086,7 @@ void sub_804CF14(void) DrawTextWindowAndBufferTiles(sTradeUITextPtrs[TRADEUITEXT_CANCEL], sSpriteTextTilePtrs[6], 0, 0, gDecompressionBuffer, 2); RenderTextToVramViaBuffer(sTradeUITextPtrs[TRADEUITEXT_CHOOSE], sSpriteTextTilePtrs[8], 24); gMain.state++; - sTradeMenuResourcesPtr->unk_A8 = 0; + sTradeMenuResourcesPtr->loadUiSpritesState = 0; break; case 11: if (sub_804F610()) @@ -1145,8 +1145,8 @@ void sub_804CF14(void) break; case 17: sub_804D694(1); - sTradeMenuResourcesPtr->unk_0 = 0; - sTradeMenuResourcesPtr->unk_1 = 0; + sTradeMenuResourcesPtr->bg2hofs = 0; + sTradeMenuResourcesPtr->bg3hofs = 0; sub_804D764(); gMain.state++; break; @@ -1171,7 +1171,7 @@ void sub_804CF14(void) case 22: if (!gPaletteFade.active) { - SetMainCallback2(sub_804D638); + SetMainCallback2(CB2_TradeMenu); } break; } @@ -1182,41 +1182,41 @@ void sub_804CF14(void) UpdatePaletteFade(); } -static void sub_804D4F8(void) +static void VblankCB_Trade(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); } -static void sub_804D50C(void) +static void TradeMenuCB_9(void) { - if (++sTradeMenuResourcesPtr->unk_A8 >= 16) + if (++sTradeMenuResourcesPtr->loadUiSpritesState >= 16) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - sTradeMenuResourcesPtr->unk_6F = 10; + sTradeMenuResourcesPtr->tradeMenuCBnum = 10; } } -static void sub_804D548(void) +static void TradeMenuCB_10(void) { if (!gPaletteFade.active) { gSelectedTradeMonPositions[0] = sTradeMenuResourcesPtr->tradeMenuCursorPosition; - gSelectedTradeMonPositions[1] = sTradeMenuResourcesPtr->unk_7E; + gSelectedTradeMonPositions[1] = sTradeMenuResourcesPtr->otherPlayerCursorPosition; if (gWirelessCommType != 0) { - sTradeMenuResourcesPtr->unk_6F = 16; + sTradeMenuResourcesPtr->tradeMenuCBnum = 16; } else { Link_StartSend5FFFwithParam(32); - sTradeMenuResourcesPtr->unk_6F = 13; + sTradeMenuResourcesPtr->tradeMenuCBnum = 13; } } } -static void sub_804D5A4(void) +static void TradeMenuCB_13(void) { gMain.savedCallback = CB2_ReturnFromLinkTrade; if (gWirelessCommType != 0) @@ -1244,14 +1244,14 @@ static void sub_804D5A4(void) } } -static void sub_804D638(void) +static void CB2_TradeMenu(void) { RunTradeMenuCallback(); RunScheduledLinkTasks(); - sub_804EAE4(0); - sub_804EAE4(1); - SetGpuReg(REG_OFFSET_BG2HOFS, sTradeMenuResourcesPtr->unk_0++); - SetGpuReg(REG_OFFSET_BG3HOFS, sTradeMenuResourcesPtr->unk_1--); + HandleRedrawTradeMenuOnSide(0); + HandleRedrawTradeMenuOnSide(1); + SetGpuReg(REG_OFFSET_BG2HOFS, sTradeMenuResourcesPtr->bg2hofs++); + SetGpuReg(REG_OFFSET_BG3HOFS, sTradeMenuResourcesPtr->bg3hofs--); RunTextPrinters_CheckPrinter0Active(); RunTasks(); AnimateSprites(); @@ -1273,8 +1273,8 @@ static void sub_804D694(u8 state) break; case 1: LoadBgTilemap(3, sTradeStripesBG3Tilemap, 0x800, 0); - sub_804F284(0); - sub_804F284(1); + PrintPartyLevelsAndGendersDirectlyOnVram(0); + PrintPartyLevelsAndGendersDirectlyOnVram(1); CopyBgTilemapBufferToVram(1); break; case 2: @@ -1333,24 +1333,24 @@ static bool8 shedinja_maker_maybe(void) int i; struct Pokemon * mon; - switch (sTradeMenuResourcesPtr->unk_69) + switch (sTradeMenuResourcesPtr->state) { case 0: Trade_Memcpy(gBlockSendBuffer, &gPlayerParty[0], 2 * sizeof(struct Pokemon)); - sTradeMenuResourcesPtr->unk_69++; - sTradeMenuResourcesPtr->unk_A8 = 0; + sTradeMenuResourcesPtr->state++; + sTradeMenuResourcesPtr->loadUiSpritesState = 0; break; case 1: if (IsLinkTaskFinished()) { if (GetBlockReceivedStatus() == 0) { - sTradeMenuResourcesPtr->unk_69++; + sTradeMenuResourcesPtr->state++; } else { ResetBlockReceivedFlags(); - sTradeMenuResourcesPtr->unk_69++; + sTradeMenuResourcesPtr->state++; } } break; @@ -1359,90 +1359,90 @@ static bool8 shedinja_maker_maybe(void) { sub_800A474(1); } - sTradeMenuResourcesPtr->unk_69++; + sTradeMenuResourcesPtr->state++; break; case 4: if (GetBlockReceivedStatus() == 3) { Trade_Memcpy(&gEnemyParty[0], gBlockRecvBuffer[id ^ 1], 2 * sizeof(struct Pokemon)); ResetBlockReceivedFlags(); - sTradeMenuResourcesPtr->unk_69++; + sTradeMenuResourcesPtr->state++; } break; case 5: Trade_Memcpy(gBlockSendBuffer, &gPlayerParty[2], 2 * sizeof(struct Pokemon)); - sTradeMenuResourcesPtr->unk_69++; + sTradeMenuResourcesPtr->state++; break; case 7: if (id == 0) { sub_800A474(1); } - sTradeMenuResourcesPtr->unk_69++; + sTradeMenuResourcesPtr->state++; break; case 8: if (GetBlockReceivedStatus() == 3) { Trade_Memcpy(&gEnemyParty[2], gBlockRecvBuffer[id ^ 1], 200); ResetBlockReceivedFlags(); - sTradeMenuResourcesPtr->unk_69++; + sTradeMenuResourcesPtr->state++; } break; case 9: Trade_Memcpy(gBlockSendBuffer, &gPlayerParty[4], 200); - sTradeMenuResourcesPtr->unk_69++; + sTradeMenuResourcesPtr->state++; break; case 11: if (id == 0) { sub_800A474(1); } - sTradeMenuResourcesPtr->unk_69++; + sTradeMenuResourcesPtr->state++; break; case 12: if (GetBlockReceivedStatus() == 3) { Trade_Memcpy(&gEnemyParty[4], gBlockRecvBuffer[id ^ 1], 200); ResetBlockReceivedFlags(); - sTradeMenuResourcesPtr->unk_69++; + sTradeMenuResourcesPtr->state++; } break; case 13: Trade_Memcpy(gBlockSendBuffer, gSaveBlock1Ptr->mail, 220); - sTradeMenuResourcesPtr->unk_69++; + sTradeMenuResourcesPtr->state++; break; case 15: if (id == 0) { sub_800A474(3); } - sTradeMenuResourcesPtr->unk_69++; + sTradeMenuResourcesPtr->state++; break; case 16: if (GetBlockReceivedStatus() == 3) { Trade_Memcpy(gLinkPartnerMail, gBlockRecvBuffer[id ^ 1], 216); ResetBlockReceivedFlags(); - sTradeMenuResourcesPtr->unk_69++; + sTradeMenuResourcesPtr->state++; } break; case 17: Trade_Memcpy(gBlockSendBuffer, gSaveBlock1Ptr->giftRibbons, 11); - sTradeMenuResourcesPtr->unk_69++; + sTradeMenuResourcesPtr->state++; break; case 19: if (id == 0) { sub_800A474(4); } - sTradeMenuResourcesPtr->unk_69++; + sTradeMenuResourcesPtr->state++; break; case 20: if (GetBlockReceivedStatus() == 3) { Trade_Memcpy(sTradeMenuResourcesPtr->unk_A9, gBlockRecvBuffer[id ^ 1], 11); ResetBlockReceivedFlags(); - sTradeMenuResourcesPtr->unk_69++; + sTradeMenuResourcesPtr->state++; } break; case 21: @@ -1470,11 +1470,11 @@ static bool8 shedinja_maker_maybe(void) case 10: case 14: case 18: - sTradeMenuResourcesPtr->unk_A8++; - if (sTradeMenuResourcesPtr->unk_A8 > 10) + sTradeMenuResourcesPtr->loadUiSpritesState++; + if (sTradeMenuResourcesPtr->loadUiSpritesState > 10) { - sTradeMenuResourcesPtr->unk_A8 = 0; - sTradeMenuResourcesPtr->unk_69++; + sTradeMenuResourcesPtr->loadUiSpritesState = 0; + sTradeMenuResourcesPtr->state++; } break; } @@ -1483,7 +1483,7 @@ static bool8 shedinja_maker_maybe(void) static void sub_804DBAC(void) { - RenderTextToVramViaBuffer(gUnknown_841E0A5, (u8 *)OBJ_VRAM0 + sTradeMenuResourcesPtr->unk_72 * 32, 0x18); + RenderTextToVramViaBuffer(gUnknown_841E0A5, (u8 *)OBJ_VRAM0 + sTradeMenuResourcesPtr->cursorStartTile * 32, 0x18); } static void sub_804DBD4(u8 a0, u8 a1) @@ -1516,7 +1516,7 @@ static void sub_804DBD4(u8 a0, u8 a1) sTradeMenuResourcesPtr->unk_79 = 2; break; case 0xAABB: - sTradeMenuResourcesPtr->unk_7E = gBlockRecvBuffer[1][1] + 6; + sTradeMenuResourcesPtr->otherPlayerCursorPosition = gBlockRecvBuffer[1][1] + 6; sTradeMenuResourcesPtr->unk_79 = 1; break; case 0xBBBB: @@ -1539,26 +1539,26 @@ static void sub_804DCF4(u8 a0, u8 a1) case 0xEEBB: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); PrintTradeErrorOrStatusMessage(TRADESTATMSG_WAITINGFORFRIEND); - sTradeMenuResourcesPtr->unk_6F = 11; + sTradeMenuResourcesPtr->tradeMenuCBnum = 11; break; case 0xEECC: PrintTradeErrorOrStatusMessage(TRADESTATMSG_FRIENDWANTSTOTRADE); - sTradeMenuResourcesPtr->unk_6F = 8; + sTradeMenuResourcesPtr->tradeMenuCBnum = 8; break; case 0xDDDD: - sTradeMenuResourcesPtr->unk_7E = gBlockRecvBuffer[0][1] + 6; + sTradeMenuResourcesPtr->otherPlayerCursorPosition = gBlockRecvBuffer[0][1] + 6; rbox_fill_rectangle(0); - sub_804EAAC(sTradeMenuResourcesPtr->tradeMenuCursorPosition); - sub_804EAAC(sTradeMenuResourcesPtr->unk_7E); - sTradeMenuResourcesPtr->unk_6F = 7; + SignalRedrawTradeMenus(sTradeMenuResourcesPtr->tradeMenuCursorPosition); + SignalRedrawTradeMenus(sTradeMenuResourcesPtr->otherPlayerCursorPosition); + sTradeMenuResourcesPtr->tradeMenuCBnum = 7; break; case 0xCCDD: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - sTradeMenuResourcesPtr->unk_6F = 10; + sTradeMenuResourcesPtr->tradeMenuCBnum = 10; break; case 0xDDEE: PrintTradeErrorOrStatusMessage(TRADESTATMSG_CANCELED); - sTradeMenuResourcesPtr->unk_6F = 8; + sTradeMenuResourcesPtr->tradeMenuCBnum = 8; } ResetBlockReceivedFlag(0); } @@ -1573,7 +1573,7 @@ static void sub_804DDF0(void) { if (sTradeMenuResourcesPtr->unk_78 == 1 && sTradeMenuResourcesPtr->unk_79 == 1) { - sTradeMenuResourcesPtr->unk_6F = 6; + sTradeMenuResourcesPtr->tradeMenuCBnum = 6; sTradeMenuResourcesPtr->linkData[0] = 0xDDDD; sTradeMenuResourcesPtr->linkData[1] = sTradeMenuResourcesPtr->tradeMenuCursorPosition; ScheduleLinkTaskWithDelay(5, 0); @@ -1587,7 +1587,7 @@ static void sub_804DDF0(void) ScheduleLinkTaskWithDelay(5, 0); sTradeMenuResourcesPtr->unk_7A = sTradeMenuResourcesPtr->unk_7B = 0; sTradeMenuResourcesPtr->unk_78 = sTradeMenuResourcesPtr->unk_79 = 0; - sTradeMenuResourcesPtr->unk_6F = 8; + sTradeMenuResourcesPtr->tradeMenuCBnum = 8; } else if (sTradeMenuResourcesPtr->unk_78 == 2 && sTradeMenuResourcesPtr->unk_79 == 1) { @@ -1597,7 +1597,7 @@ static void sub_804DDF0(void) ScheduleLinkTaskWithDelay(5, 0); sTradeMenuResourcesPtr->unk_7A = sTradeMenuResourcesPtr->unk_7B = 0; sTradeMenuResourcesPtr->unk_78 = sTradeMenuResourcesPtr->unk_79 = 0; - sTradeMenuResourcesPtr->unk_6F = 8; + sTradeMenuResourcesPtr->tradeMenuCBnum = 8; } else if (sTradeMenuResourcesPtr->unk_78 == 2 && sTradeMenuResourcesPtr->unk_79 == 2) { @@ -1606,7 +1606,7 @@ static void sub_804DDF0(void) ScheduleLinkTaskWithDelay(5, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); sTradeMenuResourcesPtr->unk_78 = sTradeMenuResourcesPtr->unk_79 = 0; - sTradeMenuResourcesPtr->unk_6F = 11; + sTradeMenuResourcesPtr->tradeMenuCBnum = 11; } } @@ -1619,7 +1619,7 @@ static void sub_804DDF0(void) ScheduleLinkTaskWithDelay(5, 0); sTradeMenuResourcesPtr->unk_7A = 0; sTradeMenuResourcesPtr->unk_7B = 0; - sTradeMenuResourcesPtr->unk_6F = 9; + sTradeMenuResourcesPtr->tradeMenuCBnum = 9; } if (sTradeMenuResourcesPtr->unk_7A == 2 || sTradeMenuResourcesPtr->unk_7B == 2) @@ -1630,7 +1630,7 @@ static void sub_804DDF0(void) ScheduleLinkTaskWithDelay(5, 0); sTradeMenuResourcesPtr->unk_7A = 0; sTradeMenuResourcesPtr->unk_7B = 0; - sTradeMenuResourcesPtr->unk_6F = 8; + sTradeMenuResourcesPtr->tradeMenuCBnum = 8; } } } @@ -1696,7 +1696,7 @@ static void TradeMenuMoveCursor(u8 *tradeMenuCursorPosition, u8 direction) static void sub_804E134(void) { PrintTradeErrorOrStatusMessage(TRADESTATMSG_COMMSTANDBY); - sTradeMenuResourcesPtr->unk_6F = 5; + sTradeMenuResourcesPtr->tradeMenuCBnum = 5; if (GetMultiplayerId() == 1) { @@ -1710,7 +1710,7 @@ static void sub_804E134(void) } } -static void sub_804E194(void) +static void TradeMenuCB_0(void) { int i; @@ -1739,22 +1739,22 @@ static void sub_804E194(void) { DrawTextBorderOuter(1, 1, 14); FillWindowPixelBuffer(1, PIXEL_FILL(1)); - UnionRoomAndTradeMenuPrintOptions(1, 3, 16, 2, gUnknown_8261EE4); + UnionRoomAndTradeMenuPrintOptions(1, 3, 16, 2, sMenuAction_SummaryTrade); Menu_InitCursor(1, 3, 0, 0, 16, 2, 0); PutWindowTilemap(1); CopyWindowToVram(1, 3); - sTradeMenuResourcesPtr->unk_6F = 1; + sTradeMenuResourcesPtr->tradeMenuCBnum = 1; } else if (sTradeMenuResourcesPtr->tradeMenuCursorPosition < 12) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - sTradeMenuResourcesPtr->unk_6F = 2; + sTradeMenuResourcesPtr->tradeMenuCBnum = 2; } else if (sTradeMenuResourcesPtr->tradeMenuCursorPosition == 12) { - CreateYesNoMenu(&gUnknown_8261FC4, 3, 0, 2, 0x001, 14, 0); - sTradeMenuResourcesPtr->unk_6F = 4; - RenderTextToVramViaBuffer(sTradeUITextPtrs[TRADEUITEXT_ASKCANCEL], (void *)OBJ_VRAM0 + sTradeMenuResourcesPtr->unk_72 * 32, 24); + CreateYesNoMenu(&sWindowTemplate_YesNo, 3, 0, 2, 0x001, 14, 0); + sTradeMenuResourcesPtr->tradeMenuCBnum = 4; + RenderTextToVramViaBuffer(sTradeUITextPtrs[TRADEUITEXT_ASKCANCEL], (void *)OBJ_VRAM0 + sTradeMenuResourcesPtr->cursorStartTile * 32, 24); } } if (JOY_NEW(R_BUTTON)) @@ -1767,13 +1767,13 @@ static void sub_804E194(void) static void sub_804E330(void) { - sub_804F3B4(); - sTradeMenuResourcesPtr->unk_6F = 0; + PrintTradePartnerPartyNicknames(); + sTradeMenuResourcesPtr->tradeMenuCBnum = 0; gSprites[sTradeMenuResourcesPtr->tradeMenuCursorSpriteIdx].invisible = FALSE; - RenderTextToVramViaBuffer(sTradeUITextPtrs[TRADEUITEXT_CHOOSE], (void *)OBJ_VRAM0 + sTradeMenuResourcesPtr->unk_72 * 32, 24); + RenderTextToVramViaBuffer(sTradeUITextPtrs[TRADEUITEXT_CHOOSE], (void *)OBJ_VRAM0 + sTradeMenuResourcesPtr->cursorStartTile * 32, 24); } -static void sub_804E388(void) +static void TradeMenuCB_1(void) { switch (Menu_ProcessInputNoWrapAround()) { @@ -1785,10 +1785,10 @@ static void sub_804E388(void) break; case 0: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - sTradeMenuResourcesPtr->unk_6F = 2; + sTradeMenuResourcesPtr->tradeMenuCBnum = 2; break; case 1: - switch (sub_804FA14(gPlayerParty, gPlayerPartyCount, sTradeMenuResourcesPtr->tradeMenuCursorPosition)) + switch (TestWhetherSelectedMonCanBeTraded(gPlayerParty, gPlayerPartyCount, sTradeMenuResourcesPtr->tradeMenuCursorPosition)) { case 0: sub_804E134(); @@ -1796,24 +1796,24 @@ static void sub_804E388(void) break; case 1: ScheduleLinkTaskWithDelay(3, 3); - sTradeMenuResourcesPtr->unk_6F = 8; + sTradeMenuResourcesPtr->tradeMenuCBnum = 8; break; case 2: case 4: ScheduleLinkTaskWithDelay(3, 6); - sTradeMenuResourcesPtr->unk_6F = 8; + sTradeMenuResourcesPtr->tradeMenuCBnum = 8; break; case 3: case 5: ScheduleLinkTaskWithDelay(3, 7); - sTradeMenuResourcesPtr->unk_6F = 8; + sTradeMenuResourcesPtr->tradeMenuCBnum = 8; break; } break; } } -static void sub_804E46C(void) +static void TradeMenuCB_15(void) { if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON)) { @@ -1822,7 +1822,7 @@ static void sub_804E46C(void) } } -static void sub_804E494(void) +static void TradeMenuCB_2(void) { if (!gPaletteFade.active) { @@ -1834,7 +1834,7 @@ static void sub_804E494(void) } } -static u8 sub_804E50C(u8 *flags, u8 partyCount, u8 cursorPos) +static u8 PlayerHasEnoughPokemonToTrade_HandleMewDeoxys(u8 *flags, u8 partyCount, u8 cursorPos) { s32 i; u16 species; @@ -1844,30 +1844,30 @@ static u8 sub_804E50C(u8 *flags, u8 partyCount, u8 cursorPos) 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)) + species = GetMonData(&gEnemyParty[sTradeMenuResourcesPtr->otherPlayerCursorPosition % 6], MON_DATA_SPECIES); + if ((species == SPECIES_DEOXYS || species == SPECIES_MEW) && !GetMonData(&gEnemyParty[sTradeMenuResourcesPtr->otherPlayerCursorPosition % 6], MON_DATA_OBEDIENCE)) return 2; if (count != 0) count = 1; return count; } -static void sub_804E5A0(void) +static void CommunicateWhetherMonCanBeTraded(void) { int i; u8 arr[12]; for (i = 0; i < sTradeMenuResourcesPtr->partyCounts[0]; i++) { - arr[i] = sTradeMenuResourcesPtr->unk_45[0][i]; + arr[i] = sTradeMenuResourcesPtr->battleableFlags[0][i]; } - switch (sub_804E50C(arr, sTradeMenuResourcesPtr->partyCounts[0], sTradeMenuResourcesPtr->tradeMenuCursorPosition)) + switch (PlayerHasEnoughPokemonToTrade_HandleMewDeoxys(arr, sTradeMenuResourcesPtr->partyCounts[0], sTradeMenuResourcesPtr->tradeMenuCursorPosition)) { case 0: ScheduleLinkTaskWithDelay(3, 3); sTradeMenuResourcesPtr->linkData[0] = 0xBBCC; - ScheduleLinkTaskWithDelay(0xB4, 0); + ScheduleLinkTaskWithDelay(180, 0); break; case 1: ScheduleLinkTaskWithDelay(3, 1); @@ -1880,18 +1880,18 @@ static void sub_804E5A0(void) case 2: ScheduleLinkTaskWithDelay(3, 8); sTradeMenuResourcesPtr->linkData[0] = 0xBBCC; - ScheduleLinkTaskWithDelay(0xB4, 0); + ScheduleLinkTaskWithDelay(180, 0); break; } } -static void sub_804E674(void) +static void TradeMenuCB_3(void) { switch (Menu_ProcessInputNoWrapClearOnChoose()) { case 0: - sub_804E5A0(); - sTradeMenuResourcesPtr->unk_6F = 100; + CommunicateWhetherMonCanBeTraded(); + sTradeMenuResourcesPtr->tradeMenuCBnum = 100; PutWindowTilemap(17); break; case 1: @@ -1902,7 +1902,7 @@ static void sub_804E674(void) sTradeMenuResourcesPtr->linkData[0] = 0xBBCC; SendBlock(bitmask_all_link_players_but_self(), sTradeMenuResourcesPtr->linkData, 20); } - sTradeMenuResourcesPtr->unk_6F = 100; + sTradeMenuResourcesPtr->tradeMenuCBnum = 100; PutWindowTilemap(17); break; } @@ -1919,7 +1919,7 @@ static void sub_804E6FC(void) } } -static void sub_804E744(void) +static void TradeMenuCB_4(void) { switch (Menu_ProcessInputNoWrapClearOnChoose()) { @@ -1929,7 +1929,7 @@ static void sub_804E744(void) sTradeMenuResourcesPtr->linkData[1] = 0; ScheduleLinkTaskWithDelay(5, 0); gSprites[sTradeMenuResourcesPtr->tradeMenuCursorSpriteIdx].invisible = TRUE; - sTradeMenuResourcesPtr->unk_6F = 100; + sTradeMenuResourcesPtr->tradeMenuCBnum = 100; sub_804E6FC(); break; case 1: @@ -1940,39 +1940,39 @@ static void sub_804E744(void) } } -static void sub_804E7C8(void) +static void TradeMenuCB_6(void) { if (GetMultiplayerId() == 0) { rbox_fill_rectangle(0); - sub_804EAAC(sTradeMenuResourcesPtr->tradeMenuCursorPosition); - sub_804EAAC(sTradeMenuResourcesPtr->unk_7E); + SignalRedrawTradeMenus(sTradeMenuResourcesPtr->tradeMenuCursorPosition); + SignalRedrawTradeMenus(sTradeMenuResourcesPtr->otherPlayerCursorPosition); } - sTradeMenuResourcesPtr->unk_6F = 7; + sTradeMenuResourcesPtr->tradeMenuCBnum = 7; } -static void sub_804E804(void) +static void TradeMenuCB_7(void) { - if (sTradeMenuResourcesPtr->unk_74[0] == 5 && sTradeMenuResourcesPtr->unk_74[1] == 5) + if (sTradeMenuResourcesPtr->menuRedrawState[0] == 5 && sTradeMenuResourcesPtr->menuRedrawState[1] == 5) { sub_804DBAC(); - sTradeMenuResourcesPtr->unk_6F = 14; + sTradeMenuResourcesPtr->tradeMenuCBnum = 14; } } -static void sub_804E830(void) +static void TradeMenuCB_14(void) { - sTradeMenuResourcesPtr->unk_A8++; + sTradeMenuResourcesPtr->loadUiSpritesState++; - if (sTradeMenuResourcesPtr->unk_A8 > 120) + if (sTradeMenuResourcesPtr->loadUiSpritesState > 120) { - CreateYesNoMenu(&gUnknown_8261FC4, 3, 0, 2, 1, 14, 0); - sTradeMenuResourcesPtr->unk_A8 = 0; - sTradeMenuResourcesPtr->unk_6F = 3; + CreateYesNoMenu(&sWindowTemplate_YesNo, 3, 0, 2, 1, 14, 0); + sTradeMenuResourcesPtr->loadUiSpritesState = 0; + sTradeMenuResourcesPtr->tradeMenuCBnum = 3; } } -static void sub_804E880(void) +static void TradeMenuCB_8(void) { int i; @@ -1990,12 +1990,12 @@ static void sub_804E880(void) sub_804F3C8(0); sub_804F3C8(1); - sTradeMenuResourcesPtr->unk_6F = 0; + sTradeMenuResourcesPtr->tradeMenuCBnum = 0; gSprites[sTradeMenuResourcesPtr->tradeMenuCursorSpriteIdx].invisible = FALSE; } } -static void sub_804E908(void) +static void TradeMenuCB_11(void) { if (!gPaletteFade.active) { @@ -2008,11 +2008,11 @@ static void sub_804E908(void) Link_StartSend5FFFwithParam(12); } - sTradeMenuResourcesPtr->unk_6F = 12; + sTradeMenuResourcesPtr->tradeMenuCBnum = 12; } } -static void sub_804E944(void) +static void TradeMenuCB_12(void) { if (gWirelessCommType) { @@ -2037,82 +2037,82 @@ static void sub_804E944(void) } } -static void sub_804E9C0(void) +static void TradeMenuCB_16(void) { if (!sub_80FA484(FALSE)) { PrepareSendLinkCmd2FFE_or_RfuCmd6600(); - sTradeMenuResourcesPtr->unk_6F = 13; + sTradeMenuResourcesPtr->tradeMenuCBnum = 13; } } static void RunTradeMenuCallback(void) { - switch (sTradeMenuResourcesPtr->unk_6F) + switch (sTradeMenuResourcesPtr->tradeMenuCBnum) { case 0: - sub_804E194(); + TradeMenuCB_0(); break; case 1: - sub_804E388(); + TradeMenuCB_1(); break; case 2: - sub_804E494(); + TradeMenuCB_2(); break; case 3: - sub_804E674(); + TradeMenuCB_3(); break; case 4: - sub_804E744(); + TradeMenuCB_4(); break; case 6: - sub_804E7C8(); + TradeMenuCB_6(); break; case 7: - sub_804E804(); + TradeMenuCB_7(); break; case 8: - sub_804E880(); + TradeMenuCB_8(); break; case 9: - sub_804D50C(); + TradeMenuCB_9(); break; case 10: - sub_804D548(); + TradeMenuCB_10(); break; case 11: - sub_804E908(); + TradeMenuCB_11(); break; case 12: - sub_804E944(); + TradeMenuCB_12(); break; case 13: - sub_804D5A4(); + TradeMenuCB_13(); break; case 14: - sub_804E830(); + TradeMenuCB_14(); break; case 15: - sub_804E46C(); + TradeMenuCB_15(); break; case 16: - sub_804E9C0(); + TradeMenuCB_16(); break; } } -static void sub_804EAAC(u8 a0) +static void SignalRedrawTradeMenus(u8 monIdx) { - u8 whichParty = a0 / PARTY_SIZE; + u8 whichParty = monIdx / PARTY_SIZE; - if (sTradeMenuResourcesPtr->unk_74[whichParty] == 0) + if (sTradeMenuResourcesPtr->menuRedrawState[whichParty] == 0) { - sTradeMenuResourcesPtr->unk_74[whichParty] = 1; - sTradeMenuResourcesPtr->unk_76[whichParty] = a0; + sTradeMenuResourcesPtr->menuRedrawState[whichParty] = 1; + sTradeMenuResourcesPtr->menuRedrawCursorPos[whichParty] = monIdx; } } -static void sub_804EAE4(u8 a0) +static void HandleRedrawTradeMenuOnSide(u8 side) { s8 nameStringWidth; u8 nickname[20]; @@ -2120,25 +2120,25 @@ static void sub_804EAE4(u8 a0) u8 i; u8 partyIdx; u8 whichParty; - u8 monIdx = sTradeMenuResourcesPtr->unk_76[a0]; + u8 monIdx = sTradeMenuResourcesPtr->menuRedrawCursorPos[side]; whichParty = 1; - if (sTradeMenuResourcesPtr->unk_76[a0] < PARTY_SIZE) + if (sTradeMenuResourcesPtr->menuRedrawCursorPos[side] < PARTY_SIZE) whichParty = 0; partyIdx = monIdx % PARTY_SIZE; nameStringWidth = 0; - switch (sTradeMenuResourcesPtr->unk_74[a0]) + switch (sTradeMenuResourcesPtr->menuRedrawState[side]) { case 1: - for (i = 0; i < sTradeMenuResourcesPtr->partyCounts[a0]; i++) + for (i = 0; i < sTradeMenuResourcesPtr->partyCounts[side]; i++) { gSprites[sTradeMenuResourcesPtr->partyIcons[0][i + (whichParty * PARTY_SIZE)]].invisible = TRUE; } for (i = 0; i < 6; i++) { - ClearWindowTilemap(i + (a0 * 6 + 2)); + ClearWindowTilemap(i + (side * 6 + 2)); } gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].invisible = FALSE; @@ -2146,18 +2146,18 @@ static void sub_804EAE4(u8 a0) gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].data[2] = (sTradeMonSpriteCoords[whichParty * PARTY_SIZE][0] + sTradeMonSpriteCoords[whichParty * PARTY_SIZE + 1][0]) / 2 * 8 + 14; gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].data[4] = (sTradeMonSpriteCoords[whichParty * PARTY_SIZE][1] * 8) - 12; StoreSpriteCallbackInData6(&gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]], SpriteCB_MonIcon); - sTradeMenuResourcesPtr->unk_74[a0]++; + sTradeMenuResourcesPtr->menuRedrawState[side]++; sub_8075490(&gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]]); - CopyToBgTilemapBufferRect_ChangePalette(1, sTradePartyBoxTilemap, a0 * 15, 0, 15, 17, 0); + CopyToBgTilemapBufferRect_ChangePalette(1, sTradePartyBoxTilemap, side * 15, 0, 15, 17, 0); CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(0); if (whichParty == 0) - sub_804F3B4(); + PrintTradePartnerPartyNicknames(); break; case 2: if (gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].callback == SpriteCB_MonIcon) - sTradeMenuResourcesPtr->unk_74[a0] = 3; + sTradeMenuResourcesPtr->menuRedrawState[side] = 3; break; case 3: CopyToBgTilemapBufferRect_ChangePalette(1, sTradeMovesBoxTilemap, whichParty * 15, 0, 15, 17, 0); @@ -2166,24 +2166,24 @@ static void sub_804EAE4(u8 a0) gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].pos1.y = (sTradeMonSpriteCoords[whichParty * PARTY_SIZE][1] * 8) - 12; gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].pos2.x = 0; gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].pos2.y = 0; - nameStringWidth = sub_804EE6C(nickname, whichParty, partyIdx); - AddTextPrinterParameterized3((a0 * 2) + 14, 0, (80 - nameStringWidth) / 2, 4, gUnknown_8261F18, 0, nickname); - sub_804EED4(movesString, whichParty, partyIdx); - AddTextPrinterParameterized4((a0 * 2) + 15, 1, 0, 0, 0, 0, gUnknown_8261F18, 0, movesString); - PutWindowTilemap((a0 * 2) + 14); - CopyWindowToVram((a0 * 2) + 14, 3); - PutWindowTilemap((a0 * 2) + 15); - CopyWindowToVram((a0 * 2) + 15, 3); - sTradeMenuResourcesPtr->unk_74[a0]++; + nameStringWidth = GetNicknameStringWidthByPartyAndMonIdx(nickname, whichParty, partyIdx); + AddTextPrinterParameterized3((side * 2) + 14, 0, (80 - nameStringWidth) / 2, 4, sTextColor_PartyMonNickname, 0, nickname); + BuildMovesString(movesString, whichParty, partyIdx); + AddTextPrinterParameterized4((side * 2) + 15, 1, 0, 0, 0, 0, sTextColor_PartyMonNickname, 0, movesString); + PutWindowTilemap((side * 2) + 14); + CopyWindowToVram((side * 2) + 14, 3); + PutWindowTilemap((side * 2) + 15); + CopyWindowToVram((side * 2) + 15, 3); + sTradeMenuResourcesPtr->menuRedrawState[side]++; break; case 4: - sub_804F08C(a0, partyIdx, gUnknown_8262055[a0][0] + 4, gUnknown_8262055[a0][1] + 1, gUnknown_8262055[a0][0], gUnknown_8262055[a0][1]); - sTradeMenuResourcesPtr->unk_74[a0]++; + PrintLevelAndGenderDirectlyOnVram(side, partyIdx, gUnknown_8262055[side][0] + 4, gUnknown_8262055[side][1] + 1, gUnknown_8262055[side][0], gUnknown_8262055[side][1]); + sTradeMenuResourcesPtr->menuRedrawState[side]++; break; } } -static u8 sub_804EE6C(u8 *dest, u8 whichParty, u8 partyIdx) +static u8 GetNicknameStringWidthByPartyAndMonIdx(u8 *dest, u8 whichParty, u8 partyIdx) { u8 nickname[11]; if (whichParty == 0) @@ -2194,57 +2194,57 @@ static u8 sub_804EE6C(u8 *dest, u8 whichParty, u8 partyIdx) return GetStringWidth(0, dest, GetFontAttribute(0, FONTATTR_LETTER_SPACING)); } -static void sub_804EED4(u8 *a0, u8 a1, u8 a2) +static void BuildMovesString(u8 *movesString, u8 whichParty, u8 whichMon) { u16 moves[MAX_MON_MOVES]; u16 i; - if (!sTradeMenuResourcesPtr->unk_51[a1][a2]) + if (!sTradeMenuResourcesPtr->eggFlags[whichParty][whichMon]) { for (i = 0; i < MAX_MON_MOVES; i++) { - if (!a1) + if (!whichParty) { - moves[i] = GetMonData(&gPlayerParty[a2], i + MON_DATA_MOVE1, NULL); + moves[i] = GetMonData(&gPlayerParty[whichMon], i + MON_DATA_MOVE1, NULL); } else { - moves[i] = GetMonData(&gEnemyParty[a2], i + MON_DATA_MOVE1, NULL); + moves[i] = GetMonData(&gEnemyParty[whichMon], i + MON_DATA_MOVE1, NULL); } } - StringCopy(a0, gUnknown_8261EB6); + StringCopy(movesString, sText_Dummy); for (i = 0; i < MAX_MON_MOVES; i++) { if (moves[i] != MOVE_NONE) { - StringAppend(a0, gMoveNames[moves[i]]); + StringAppend(movesString, gMoveNames[moves[i]]); } - StringAppend(a0, gUnknown_8261EC7); + StringAppend(movesString, sText_Newline); } } else { - StringCopy(a0, gUnknown_8261EB6); - StringAppend(a0, gUnknown_841E09F); + StringCopy(movesString, sText_Dummy); + StringAppend(movesString, gText_4Qmark); } } -static void sub_804EFB4(u8 whichParty, u8 windowId, const u8 *str) +static void PrintPartyMonNickname(u8 whichParty, u8 windowId, const u8 *str) { u8 xPos; s8 speed; windowId += (whichParty * PARTY_SIZE) + 2; speed = 0; xPos = (64u - GetStringWidth(0, str, GetFontAttribute(0, FONTATTR_LETTER_SPACING))) / 2; - AddTextPrinterParameterized3(windowId, 0, xPos, 4, gUnknown_8261F18, speed, str); + AddTextPrinterParameterized3(windowId, 0, xPos, 4, sTextColor_PartyMonNickname, speed, str); PutWindowTilemap(windowId); CopyWindowToVram(windowId, 3); } -static void sub_804F020(u8 whichParty) +static void PrintPartyNicknames(u8 whichParty) { u8 buff[20]; u8 nickname[30]; @@ -2254,18 +2254,18 @@ static void sub_804F020(u8 whichParty) { GetMonData(&party[i], MON_DATA_NICKNAME, buff); StringCopy10(nickname, buff); - sub_804EFB4(whichParty, i, nickname); + PrintPartyMonNickname(whichParty, i, nickname); } } -static void sub_804F08C(u8 whichParty, u8 monIdx, u8 a2, u8 a3, u8 a4, u8 a5) +static void PrintLevelAndGenderDirectlyOnVram(u8 whichParty, u8 monIdx, u8 x, u8 y, u8 winLeft, u8 winTop) { u8 level; - u32 r2; + u32 tileNum; u8 gender; u8 nickname[12]; - CopyToBgTilemapBufferRect_ChangePalette(1, gTradeMenuMonBox_Tilemap, a4, a5, 6, 3, 0); + CopyToBgTilemapBufferRect_ChangePalette(1, gTradeMenuMonBox_Tilemap, winLeft, winTop, 6, 3, 0); CopyBgTilemapBufferToVram(1); if (whichParty == 0) @@ -2273,22 +2273,22 @@ static void sub_804F08C(u8 whichParty, u8 monIdx, u8 a2, u8 a3, u8 a4, u8 a5) else level = GetMonData(&gEnemyParty[monIdx], MON_DATA_LEVEL, NULL); - if (sTradeMenuResourcesPtr->unk_51[whichParty][monIdx] == 0) + if (sTradeMenuResourcesPtr->eggFlags[whichParty][monIdx] == 0) { if (level / 10 != 0) - sTradeMenuResourcesPtr->tilemapBuffer[a2 + (a3 * 32)] = (level / 10) + 0x60; + sTradeMenuResourcesPtr->tilemapBuffer[x + (y * 32)] = (level / 10) + 0x60; - sTradeMenuResourcesPtr->tilemapBuffer[a2 + (a3 * 32) + 1] = (level % 10) + 0x70; + sTradeMenuResourcesPtr->tilemapBuffer[x + (y * 32) + 1] = (level % 10) + 0x70; } else { - sTradeMenuResourcesPtr->tilemapBuffer[a2 + (a3 * 32) - 32] = sTradeMenuResourcesPtr->tilemapBuffer[a2 + (a3 * 32) - 33]; - sTradeMenuResourcesPtr->tilemapBuffer[a2 + (a3 * 32) - 31] = sTradeMenuResourcesPtr->tilemapBuffer[a2 + (a3 * 32) - 36] | 0x400; + sTradeMenuResourcesPtr->tilemapBuffer[x + (y * 32) - 32] = sTradeMenuResourcesPtr->tilemapBuffer[x + (y * 32) - 33]; + sTradeMenuResourcesPtr->tilemapBuffer[x + (y * 32) - 31] = sTradeMenuResourcesPtr->tilemapBuffer[x + (y * 32) - 36] | 0x400; } - if (sTradeMenuResourcesPtr->unk_51[whichParty][monIdx] != 0) + if (sTradeMenuResourcesPtr->eggFlags[whichParty][monIdx]) { - r2 = 0x480; + tileNum = 0x480; } else { @@ -2306,43 +2306,43 @@ static void sub_804F08C(u8 whichParty, u8 monIdx, u8 a2, u8 a3, u8 a4, u8 a5) switch (gender) { case MON_MALE: - r2 = !NameHasGenderSymbol(nickname, MON_MALE) ? 0x84 : 0x83; + tileNum = !NameHasGenderSymbol(nickname, MON_MALE) ? 0x84 : 0x83; break; case MON_FEMALE: - r2 = !NameHasGenderSymbol(nickname, MON_FEMALE) ? 0x85 : 0x83; + tileNum = !NameHasGenderSymbol(nickname, MON_FEMALE) ? 0x85 : 0x83; break; default: - r2 = 0x83; + tileNum = 0x83; break; } } - sTradeMenuResourcesPtr->tilemapBuffer[(a3 - 1) * 32 + a2 + 1] = r2; + sTradeMenuResourcesPtr->tilemapBuffer[(y - 1) * 32 + x + 1] = tileNum; } -static void sub_804F284(u8 whichParty) +static void PrintPartyLevelsAndGendersDirectlyOnVram(u8 whichParty) { s32 i; for (i = 0; i < sTradeMenuResourcesPtr->partyCounts[whichParty]; i++) { - const u8 (*r5)[2]; - const u8 (*r4)[2]; + const u8 (*drawCoords)[2]; + const u8 (*winCoords)[2]; u32 r0 = 3 * whichParty; - const u8 (*r1)[2][2] = gUnknown_8261E5A; - r5 = r1[r0]; - r4 = gUnknown_8261E72[r0]; + const u8 (*drawCoords_p)[2][2] = sTradeMenuGenderLevelPrintCoords; + drawCoords = drawCoords_p[r0]; + winCoords = sTradeMenuGenderLevelWindowCoords[r0]; - sub_804F08C( + PrintLevelAndGenderDirectlyOnVram( whichParty, i, - r5[i][0], - r5[i][1], - r4[i][0], - r4[i][1] + drawCoords[i][0], + drawCoords[i][1], + winCoords[i][0], + winCoords[i][1] ); } } -static void sub_804F2E8(u8 whichParty) +static void ShowTradePartyMonIcons(u8 whichParty) { int i; @@ -2356,21 +2356,21 @@ static void sub_804F2E8(u8 whichParty) } } -static void sub_804F3B4(void) +static void PrintTradePartnerPartyNicknames(void) { rbox_fill_rectangle(1); - sub_804F020(1); + PrintPartyNicknames(1); } static void sub_804F3C8(u8 whichParty) { CopyToBgTilemapBufferRect_ChangePalette(1, sTradePartyBoxTilemap, 15 * whichParty, 0, 15, 17, 0); CopyBgTilemapBufferToVram(1); - sub_804F284(whichParty); - sub_804F020(whichParty); - sub_804F2E8(whichParty); - RenderTextToVramViaBuffer(sTradeUITextPtrs[TRADEUITEXT_CHOOSE], (void *)OBJ_VRAM0 + 32 * sTradeMenuResourcesPtr->unk_72, 24); - sTradeMenuResourcesPtr->unk_74[whichParty] = 0; + PrintPartyLevelsAndGendersDirectlyOnVram(whichParty); + PrintPartyNicknames(whichParty); + ShowTradePartyMonIcons(whichParty); + RenderTextToVramViaBuffer(sTradeUITextPtrs[TRADEUITEXT_CHOOSE], (void *)OBJ_VRAM0 + 32 * sTradeMenuResourcesPtr->cursorStartTile, 24); + sTradeMenuResourcesPtr->menuRedrawState[whichParty] = 0; } static void TradeMenuAction_Summary(u8 taskId) @@ -2459,41 +2459,41 @@ static bool8 sub_804F610(void) { struct SpriteSheet sheet; - if (sTradeMenuResourcesPtr->unk_A8 < 14) + if (sTradeMenuResourcesPtr->loadUiSpritesState < 14) { - sheet.data = sSpriteTextTilePtrs[sTradeMenuResourcesPtr->unk_A8]; + sheet.data = sSpriteTextTilePtrs[sTradeMenuResourcesPtr->loadUiSpritesState]; sheet.size = 0x100; - sheet.tag = 200 + sTradeMenuResourcesPtr->unk_A8; + sheet.tag = 200 + sTradeMenuResourcesPtr->loadUiSpritesState; } - switch (sTradeMenuResourcesPtr->unk_A8) + switch (sTradeMenuResourcesPtr->loadUiSpritesState) { case 0 ... 7: LoadSpriteSheet(&sheet); - sTradeMenuResourcesPtr->unk_A8++; + sTradeMenuResourcesPtr->loadUiSpritesState++; break; case 8: - sTradeMenuResourcesPtr->unk_72 = LoadSpriteSheet(&sheet); - sTradeMenuResourcesPtr->unk_A8++; + sTradeMenuResourcesPtr->cursorStartTile = LoadSpriteSheet(&sheet); + sTradeMenuResourcesPtr->loadUiSpritesState++; break; case 9 ... 13: LoadSpriteSheet(&sheet); - sTradeMenuResourcesPtr->unk_A8++; + sTradeMenuResourcesPtr->loadUiSpritesState++; break; case 14: LoadSpritePalette(&sSpritePalette_Text); - sTradeMenuResourcesPtr->unk_A8++; + sTradeMenuResourcesPtr->loadUiSpritesState++; break; case 15: LoadSpritePalette(&sTradeButtons_SpritePal); - sTradeMenuResourcesPtr->unk_A8++; + sTradeMenuResourcesPtr->loadUiSpritesState++; break; case 16: LoadSpriteSheet(&sTradeButtons_SpriteSheet); - sTradeMenuResourcesPtr->unk_A8++; + sTradeMenuResourcesPtr->loadUiSpritesState++; break; case 17: - sTradeMenuResourcesPtr->unk_A8 = 0; + sTradeMenuResourcesPtr->loadUiSpritesState = 0; return TRUE; } @@ -2516,18 +2516,18 @@ static void sub_804F748(u8 who) { if (GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) == TRUE) { - sTradeMenuResourcesPtr->unk_45[who][i] = 0; - sTradeMenuResourcesPtr->unk_51[who][i] = 1; + sTradeMenuResourcesPtr->battleableFlags[who][i] = FALSE; + sTradeMenuResourcesPtr->eggFlags[who][i] = TRUE; } else if (GetMonData(&gPlayerParty[i], MON_DATA_HP) == 0) { - sTradeMenuResourcesPtr->unk_45[who][i] = 0; - sTradeMenuResourcesPtr->unk_51[who][i] = 0; + sTradeMenuResourcesPtr->battleableFlags[who][i] = FALSE; + sTradeMenuResourcesPtr->eggFlags[who][i] = FALSE; } else { - sTradeMenuResourcesPtr->unk_45[who][i] = 1; - sTradeMenuResourcesPtr->unk_51[who][i] = 0; + sTradeMenuResourcesPtr->battleableFlags[who][i] = TRUE; + sTradeMenuResourcesPtr->eggFlags[who][i] = FALSE; } } break; @@ -2536,18 +2536,18 @@ static void sub_804F748(u8 who) { if (GetMonData(&gEnemyParty[i], MON_DATA_IS_EGG) == TRUE) { - sTradeMenuResourcesPtr->unk_45[who][i] = 0; - sTradeMenuResourcesPtr->unk_51[who][i] = 1; + sTradeMenuResourcesPtr->battleableFlags[who][i] = FALSE; + sTradeMenuResourcesPtr->eggFlags[who][i] = TRUE; } else if (GetMonData(&gEnemyParty[i], MON_DATA_HP) == 0) { - sTradeMenuResourcesPtr->unk_45[who][i] = 0; - sTradeMenuResourcesPtr->unk_51[who][i] = 0; + sTradeMenuResourcesPtr->battleableFlags[who][i] = FALSE; + sTradeMenuResourcesPtr->eggFlags[who][i] = FALSE; } else { - sTradeMenuResourcesPtr->unk_45[who][i] = 1; - sTradeMenuResourcesPtr->unk_51[who][i] = 0; + sTradeMenuResourcesPtr->battleableFlags[who][i] = TRUE; + sTradeMenuResourcesPtr->eggFlags[who][i] = FALSE; } } break; @@ -2601,7 +2601,7 @@ static void sub_804F9D8(void) } } -static u32 sub_804FA14(struct Pokemon * party, int partyCount, int cursorPos) +static u32 TestWhetherSelectedMonCanBeTraded(struct Pokemon * party, int partyCount, int cursorPos) { int i, sum; struct LinkPlayer * player; |