summaryrefslogtreecommitdiff
path: root/src/tm_case.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tm_case.c')
-rw-r--r--src/tm_case.c929
1 files changed, 465 insertions, 464 deletions
diff --git a/src/tm_case.c b/src/tm_case.c
index 94b3278ab..607b7fbdd 100644
--- a/src/tm_case.c
+++ b/src/tm_case.c
@@ -30,28 +30,30 @@
#include "constants/items.h"
#include "constants/songs.h"
+#define TM_CASE_TM_TAG 400
+
struct UnkStruct_203B10C
{
- void (* unk_00)(void);
- u8 unk_04;
+ void (* savedCallback)(void);
+ u8 tmCaseMenuType;
u8 unk_05;
u8 unk_06;
- u16 unk_08;
- u16 unk_0a;
+ u16 selectedRow;
+ u16 scrollOffset;
};
struct UnkStruct_203B118
{
- void (* unk_00)(void);
- u8 unk_04;
- u8 unk_05;
- u8 unk_06;
- u8 unk_07;
- u8 unk_08;
- u16 unk_0a;
- const u8 * unk_0c;
- u8 unk_10;
- s16 unk_12;
+ void (* savedCallback)(void);
+ u8 tmSpriteId;
+ u8 maxTMsShown;
+ u8 numTMs;
+ u8 contextMenuWindowId;
+ u8 scrollIndicatorArrowPairId;
+ u16 currItem;
+ const u8 * menuActionIndices;
+ u8 numMenuActions;
+ s16 seqId;
u8 filler_14[8];
};
@@ -63,77 +65,77 @@ struct UnkStruct_203B11C
u16 unk_162;
};
-static EWRAM_DATA struct UnkStruct_203B10C gUnknown_203B10C = {};
-static EWRAM_DATA struct UnkStruct_203B118 * gUnknown_203B118 = NULL;
-static EWRAM_DATA struct UnkStruct_203B11C * gUnknown_203B11C = NULL;
-static EWRAM_DATA void * gUnknown_203B120 = NULL; // tilemap buffer
-static EWRAM_DATA struct ListMenuItem * gUnknown_203B124 = NULL;
-static EWRAM_DATA u8 (* gUnknown_203B128)[29] = NULL;
-static EWRAM_DATA u16 * gUnknown_203B12C = NULL;
-
-static void sub_8131894(void);
-static bool8 sub_81318C0(void);
-static void sub_8131A8C(void);
-static void sub_8131AB8(void);
-static bool8 sub_8131B20(void);
-static void sub_8131C10(void);
-static void sub_8131C50(void);
+static EWRAM_DATA struct UnkStruct_203B10C sTMCaseStaticResources = {};
+static EWRAM_DATA struct UnkStruct_203B118 * sTMCaseDynamicResources = NULL;
+static EWRAM_DATA struct UnkStruct_203B11C * sPokeDudePackBackup = NULL;
+static EWRAM_DATA void * sTilemapBuffer = NULL; // tilemap buffer
+static EWRAM_DATA struct ListMenuItem * sListMenuItemsBuffer = NULL;
+static EWRAM_DATA u8 (* sListMenuStringsBuffer)[29] = NULL;
+static EWRAM_DATA u16 * sTMSpritePaletteBuffer = NULL;
+
+static void CB2_SetUpTMCaseUI_Blocking(void);
+static bool8 DoSetUpTMCaseUI(void);
+static void ResetBufferPointers_NoFree(void);
+static void LoadBGTemplates(void);
+static bool8 HandleLoadTMCaseGraphicsAndPalettes(void);
+static void CreateTMCaseListMenuBuffers(void);
+static void InitTMCaseListMenuItems(void);
static void GetTMNumberAndMoveString(u8 * dest, u16 itemId);
-static void sub_8131E18(s32 itemIndex, bool8 onInit, struct ListMenu *list);
-static void sub_8131E68(u8 windowId, s32 itemId, u8 y);
-static void sub_8131F0C(s32 itemIndex);
-static void sub_8131FB0(u8 a0, u8 a1);
+static void TMCase_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list);
+static void TMCase_ItemPrintFunc(u8 windowId, s32 itemId, u8 y);
+static void TMCase_MoveCursor_UpdatePrintedDescription(s32 itemIndex);
+static void PrintListMenuCursorAt_WithColorIdx(u8 a0, u8 a1);
static void sub_8132018(void);
static void sub_81320BC(void);
static void sub_8132120(void);
static void sub_8132170(void);
-static void sub_813226C(u8 taskId);
-static void sub_81322D4(u8 taskId);
-static void SelectTMAction_FromFieldBag(u8 taskId);
-static void sub_8132568(u8 taskId);
-static void sub_81325F0(u8 taskId);
-static void sub_813265C(u8 taskId);
-static void sub_81326F8(u8 taskId);
-static void sub_8132714(u8 taskId);
+static void Task_FadeOutAndCloseTMCase(u8 taskId);
+static void Task_TMCaseMain(u8 taskId);
+static void Task_SelectTMAction_FromFieldBag(u8 taskId);
+static void Task_TMContextMenu_HandleInput(u8 taskId);
+static void TMHMContextMenuAction_Use(u8 taskId);
+static void TMHMContextMenuAction_Give(u8 taskId);
+static void PrintError_ThereIsNoPokemon(u8 taskId);
+static void PrintError_ItemCantBeHeld(u8 taskId);
static void sub_8132758(u8 taskId);
static void sub_8132780(u8 taskId);
-static void sub_81327FC(u8 taskId);
+static void TMHMContextMenuAction_Exit(u8 taskId);
static void sub_8132868(u8 taskId);
static void sub_81328B8(u8 taskId);
-static void SelectTMAction_FromSellMenu(u8 taskId);
-static void sub_81329C4(u8 taskId);
-static void sub_8132A34(u8 taskId);
-static void sub_8132A48(u8 taskId);
-static void sub_8132AAC(u8 taskId);
+static void Task_SelectTMAction_FromSellMenu(u8 taskId);
+static void Task_AskConfirmSaleWithAmount(u8 taskId);
+static void Task_PlaceYesNoBox(u8 taskId);
+static void Task_SaleOfTMsCancelled(u8 taskId);
+static void Task_InitQuantitySelectUI(u8 taskId);
static void sub_8132B5C(s16 quantity, s32 value);
static void sub_8132BC8(u8 taskId);
-static void sub_8132CAC(u8 taskId);
-static void sub_8132D34(u8 taskId);
-static void sub_8132E0C(u8 taskId);
-static void sub_8132F20(u8 taskId);
-static void sub_8132F60(u8 taskId);
-static void sub_8133244(void);
-static void sub_81332EC(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx);
-static void sub_8133354(u8 windowId);
-static void sub_8133368(u8 windowId);
-static void sub_813337C(u8 taskId, u8 windowId, const u8 * str, TaskFunc func);
-static void sub_81333C4(void);
-static void sub_8133404(void);
-static void sub_8133444(u16 itemId);
-static void sub_81335B0(u8 windowId, u8 x, u8 y);
-static void sub_81335E0(void);
-static void sub_8133604(u8 taskId, const TaskFunc * ptrs);
-static u8 sub_8133630(u8 * a0, u8 a1);
-static void sub_8133664(u8 * a0);
-static u8 sub_813368C(u16 itemId);
-static void sub_8133714(struct Sprite * sprite, u8 var);
-static void sub_8133730(u8 type);
-static void sub_8133790(struct Sprite * sprite, u8 var);
-static void sub_81337E4(u8 a0, u16 itemId);
-static void sub_8133810(struct Sprite * sprite);
-static void sub_81338A8(void);
-
-static const struct BgTemplate gUnknown_8463134[] = {
+static void Task_PrintSaleConfirmedText(u8 taskId);
+static void Task_DoSaleOfTMs(u8 taskId);
+static void Task_AfterSale_ReturnToList(u8 taskId);
+static void Task_TMCaseDude1(u8 taskId);
+static void Task_TMCaseDude_Playback(u8 taskId);
+static void InitWindowTemplatesAndPals(void);
+static void AddTextPrinterParameterized_ColorByIndex(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx);
+static void TMCase_SetWindowBorder1(u8 windowId);
+static void TMCase_SetWindowBorder2(u8 windowId);
+static void TMCase_PrintMessageWithFollowupTask(u8 taskId, u8 windowId, const u8 * str, TaskFunc func);
+static void PrintStringTMCaseOnWindow3(void);
+static void DrawMoveInfoUIMarkers(void);
+static void TMCase_MoveCursor_UpdatePrintedTMInfo(u16 itemId);
+static void PlaceHMTileInWindow(u8 windowId, u8 x, u8 y);
+static void HandlePrintMoneyOnHand(void);
+static void HandleCreateYesNoMenu(u8 taskId, const struct YesNoFuncTable * ptrs);
+static u8 AddTMContextMenu(u8 * a0, u8 a1);
+static void RemoveTMContextMenu(u8 * a0);
+static u8 CreateTMSprite(u16 itemId);
+static void SetTMSpriteAnim(struct Sprite * sprite, u8 var);
+static void TintTMSpriteByType(u8 type);
+static void UpdateTMSpritePosition(struct Sprite * sprite, u8 var);
+static void InitSelectedTMSpriteData(u8 a0, u16 itemId);
+static void SpriteCB_MoveTMSpriteInCase(struct Sprite * sprite);
+static void LoadTMTypePalettes(void);
+
+static const struct BgTemplate sBGTemplates[] = {
{
.bg = 0,
.charBaseIndex = 0,
@@ -161,36 +163,36 @@ static const struct BgTemplate gUnknown_8463134[] = {
}
};
-static void (*const gUnknown_8463140[])(u8 taskId) = {
- SelectTMAction_FromFieldBag,
+static void (*const sSelectTMActionTasks[])(u8 taskId) = {
+ Task_SelectTMAction_FromFieldBag,
sub_8132868,
- SelectTMAction_FromSellMenu,
+ Task_SelectTMAction_FromSellMenu,
sub_81328B8
};
-static const struct MenuAction gUnknown_8463150[] = {
- {gUnknown_84161A0, sub_81325F0},
- {gUnknown_84161B2, sub_813265C},
- {gUnknown_84161C8, sub_81327FC},
+static const struct MenuAction sMenuActions_UseGiveExit[] = {
+ {gOtherText_Use, TMHMContextMenuAction_Use },
+ {gOtherText_Give, TMHMContextMenuAction_Give},
+ {gOtherText_Exit, TMHMContextMenuAction_Exit},
};
-static const u8 gUnknown_8463168[] = {0, 1, 2};
-static const u8 gUnknown_846316B[] = {1, 2, 0};
-static const TaskFunc gUnknown_8463170[] = {sub_8132CAC, sub_8132A48};
+static const u8 sMenuActionIndices_Field[] = {0, 1, 2};
+static const u8 sMenuActionIndices_UnionRoom[] = {1, 2};
+static const struct YesNoFuncTable sYesNoFuncTable = {Task_PrintSaleConfirmedText, Task_SaleOfTMsCancelled};
-static const u8 gUnknown_8463178[] = _("{CLEAR_TO 18}");
-static const u8 gUnknown_846317C[] = _(" ");
+static const u8 sText_ClearTo18[] = _("{CLEAR_TO 18}");
+static const u8 sText_SingleSpace[] = _(" ");
-static ALIGNED(4) const u16 gUnknown_8463180[] = {RGB(8, 8, 8), RGB(30, 16, 6)};
+static ALIGNED(4) const u16 sPal3Override[] = {RGB(8, 8, 8), RGB(30, 16, 6)};
-static const struct TextColor gUnknown_8463184[] = {
+static const struct TextColor sTextColors[] = {
{0, 1, 2},
{0, 2, 3},
{0, 3, 6},
{0, 14, 10}
};
-static const struct WindowTemplate gUnknown_8463190[] = {
+static const struct WindowTemplate sWindowTemplates[] = {
{0x00, 0x0a, 0x01, 0x13, 0x0a, 0x0f, 0x0081},
{0x00, 0x0c, 0x0c, 0x12, 0x08, 0x0a, 0x013f},
{0x01, 0x05, 0x0f, 0x0f, 0x04, 0x0d, 0x01f9},
@@ -203,88 +205,87 @@ static const struct WindowTemplate gUnknown_8463190[] = {
DUMMY_WIN_TEMPLATE
};
-static const struct WindowTemplate gUnknown_84631E0 = {0x01, 0x15, 0x09, 0x06, 0x04, 0x0f, 0x0335};
+static const struct WindowTemplate sYesNoWindowTemplate = {0x01, 0x15, 0x09, 0x06, 0x04, 0x0f, 0x0335};
-static const struct WindowTemplate gUnknown_84631E8[] = {
+static const struct WindowTemplate sTMContextWindowTemplates[] = {
{0x01, 0x16, 0x0d, 0x07, 0x06, 0x0f, 0x01cf},
{0x01, 0x16, 0x0f, 0x07, 0x04, 0x0f, 0x01cf}
};
-static const struct OamData gOamData_84631F8 = {
+static const struct OamData sTMSpriteOamData = {
.size = 2,
.priority = 2
};
-static const union AnimCmd gUnknown_8463200[] = {
+static const union AnimCmd sTMSpriteAnim0[] = {
ANIMCMD_FRAME(0, 0),
ANIMCMD_END
};
-static const union AnimCmd gUnknown_8463208[] = {
+static const union AnimCmd sTMSpriteAnim1[] = {
ANIMCMD_FRAME(16, 0),
ANIMCMD_END
};
-static const union AnimCmd *const gUnknown_8463210[] = {
- gUnknown_8463200,
- gUnknown_8463208
+static const union AnimCmd *const sTMSpriteAnims[] = {
+ sTMSpriteAnim0,
+ sTMSpriteAnim1
};
-static const struct CompressedSpriteSheet gUnknown_8463218 = {
- (const void *)gUnknown_8E84D90,
+static const struct CompressedSpriteSheet sTMSpriteSheet = {
+ (const void *)gTMCase_TMSpriteGfx,
0x400,
- 400
+ TM_CASE_TM_TAG
};
-static const struct SpriteTemplate gUnknown_8463220 = {
- 400,
- 400,
- &gOamData_84631F8,
- gUnknown_8463210,
+static const struct SpriteTemplate sTMSpriteTemplate = {
+ TM_CASE_TM_TAG,
+ TM_CASE_TM_TAG,
+ &sTMSpriteOamData,
+ sTMSpriteAnims,
NULL,
gDummySpriteAffineAnimTable,
SpriteCallbackDummy
};
-static const u16 gUnknown_8463238[] = {
- 0x000,
- 0x090,
- 0x080,
- 0x0c0,
- 0x060,
- 0x050,
- 0x0b0,
- 0x0a0,
- 0x0e0,
- 0x000,
- 0x010,
- 0x020,
- 0x030,
- 0x040,
- 0x0d0,
- 0x070,
- 0x100,
- 0x0f0
+static const u16 sTMSpritePaletteOffsetByType[] = {
+ [TYPE_NORMAL] = 0x000,
+ [TYPE_FIRE] = 0x010,
+ [TYPE_WATER] = 0x020,
+ [TYPE_GRASS] = 0x030,
+ [TYPE_ELECTRIC] = 0x040,
+ [TYPE_ROCK] = 0x050,
+ [TYPE_GROUND] = 0x060,
+ [TYPE_ICE] = 0x070,
+ [TYPE_FLYING] = 0x080,
+ [TYPE_FIGHTING] = 0x090,
+ [TYPE_GHOST] = 0x0a0,
+ [TYPE_BUG] = 0x0b0,
+ [TYPE_POISON] = 0x0c0,
+ [TYPE_PSYCHIC] = 0x0d0,
+ [TYPE_STEEL] = 0x0e0,
+ [TYPE_DARK] = 0x0f0,
+ [TYPE_DRAGON] = 0x100
};
-void InitTMCase(u8 a0, void (* a1)(void), u8 a2)
-{
- sub_8131A8C();
- gUnknown_203B118 = Alloc(sizeof(struct UnkStruct_203B118));
- gUnknown_203B118->unk_00 = 0;
- gUnknown_203B118->unk_08 = 0xFF;
- gUnknown_203B118->unk_07 = 0xFF;
- if (a0 != 5)
- gUnknown_203B10C.unk_04 = a0;
- if (a1 != NULL)
- gUnknown_203B10C.unk_00 = a1;
+void InitTMCase(u8 type, void (* callback)(void), u8 a2)
+{
+ ResetBufferPointers_NoFree();
+ sTMCaseDynamicResources = Alloc(sizeof(struct UnkStruct_203B118));
+ sTMCaseDynamicResources->savedCallback = 0;
+ sTMCaseDynamicResources->scrollIndicatorArrowPairId = 0xFF;
+ sTMCaseDynamicResources->contextMenuWindowId = 0xFF;
+ if (type != 5)
+ sTMCaseStaticResources.tmCaseMenuType = type;
+ if (callback != NULL)
+ sTMCaseStaticResources.savedCallback = callback;
if (a2 != 0xFF)
- gUnknown_203B10C.unk_05 = a2;
+ sTMCaseStaticResources.unk_05 = a2;
gTextFlags.flag_2 = FALSE;
- SetMainCallback2(sub_8131894);
+ SetMainCallback2(CB2_SetUpTMCaseUI_Blocking);
}
-static void sub_8131864(void)
+static void CB2_Idle(void)
{
RunTasks();
AnimateSprites();
@@ -293,27 +294,27 @@ static void sub_8131864(void)
UpdatePaletteFade();
}
-static void sub_8131880(void)
+static void VBlankCB_Idle(void)
{
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
}
-static void sub_8131894(void)
+static void CB2_SetUpTMCaseUI_Blocking(void)
{
while (1)
{
if (sub_80BF72C() == TRUE)
break;
- if (sub_81318C0() == TRUE)
+ if (DoSetUpTMCaseUI() == TRUE)
break;
if (sub_80BF708() == TRUE)
break;
}
}
-static bool8 sub_81318C0(void)
+static bool8 DoSetUpTMCaseUI(void)
{
u8 taskId;
@@ -345,16 +346,16 @@ static bool8 sub_81318C0(void)
gMain.state++;
break;
case 6:
- sub_8131AB8();
- gUnknown_203B118->unk_12 = 0;
+ LoadBGTemplates();
+ sTMCaseDynamicResources->seqId = 0;
gMain.state++;
break;
case 7:
- sub_8133244();
+ InitWindowTemplatesAndPals();
gMain.state++;
break;
case 8:
- if (sub_8131B20())
+ if (HandleLoadTMCaseGraphicsAndPalettes())
gMain.state++;
break;
case 9:
@@ -368,24 +369,24 @@ static bool8 sub_81318C0(void)
gMain.state++;
break;
case 11:
- sub_8133404();
+ DrawMoveInfoUIMarkers();
gMain.state++;
break;
case 12:
- sub_8131C10();
- sub_8131C50();
+ CreateTMCaseListMenuBuffers();
+ InitTMCaseListMenuItems();
gMain.state++;
break;
case 13:
- sub_81333C4();
+ PrintStringTMCaseOnWindow3();
gMain.state++;
break;
case 14:
- if (gUnknown_203B10C.unk_04 == 4)
- taskId = CreateTask(sub_8132F20, 0);
+ if (sTMCaseStaticResources.tmCaseMenuType == 4)
+ taskId = CreateTask(Task_TMCaseDude1, 0);
else
- taskId = CreateTask(sub_81322D4, 0);
- gTasks[taskId].data[0] = ListMenuInit(&gUnknown_3005E70, gUnknown_203B10C.unk_0a, gUnknown_203B10C.unk_08);
+ taskId = CreateTask(Task_TMCaseMain, 0);
+ gTasks[taskId].data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sTMCaseStaticResources.scrollOffset, sTMCaseStaticResources.selectedRow);
gMain.state++;
break;
case 15:
@@ -393,7 +394,7 @@ static bool8 sub_81318C0(void)
gMain.state++;
break;
case 16:
- gUnknown_203B118->unk_04 = sub_813368C(sub_809A798(POCKET_TM_CASE, gUnknown_203B10C.unk_0a + gUnknown_203B10C.unk_08));
+ sTMCaseDynamicResources->tmSpriteId = CreateTMSprite(BagGetItemIdByPocketPosition(POCKET_TM_CASE, sTMCaseStaticResources.scrollOffset + sTMCaseStaticResources.selectedRow));
gMain.state++;
break;
case 17:
@@ -405,31 +406,31 @@ static bool8 sub_81318C0(void)
gMain.state++;
break;
default:
- SetVBlankCallback(sub_8131880);
- SetMainCallback2(sub_8131864);
+ SetVBlankCallback(VBlankCB_Idle);
+ SetMainCallback2(CB2_Idle);
return TRUE;
}
return FALSE;
}
-static void sub_8131A8C(void)
+static void ResetBufferPointers_NoFree(void)
{
- gUnknown_203B118 = NULL;
- gUnknown_203B120 = NULL;
- gUnknown_203B124 = NULL;
- gUnknown_203B128 = NULL;
- gUnknown_203B12C = NULL;
+ sTMCaseDynamicResources = NULL;
+ sTilemapBuffer = NULL;
+ sListMenuItemsBuffer = NULL;
+ sListMenuStringsBuffer = NULL;
+ sTMSpritePaletteBuffer = NULL;
}
-static void sub_8131AB8(void)
+static void LoadBGTemplates(void)
{
void ** ptr;
sub_80BF7C8();
- ptr = &gUnknown_203B120;
+ ptr = &sTilemapBuffer;
*ptr = AllocZeroed(0x800);
ResetBgsAndClearDma3BusyFlags(0);
- InitBgsFromTemplates(0, gUnknown_8463134, NELEMS(gUnknown_8463134));
+ InitBgsFromTemplates(0, sBGTemplates, NELEMS(sBGTemplates));
SetBgTilemapBuffer(2, *ptr);
schedule_bg_copy_tilemap_to_vram(1);
schedule_bg_copy_tilemap_to_vram(2);
@@ -440,170 +441,170 @@ static void sub_8131AB8(void)
ShowBg(2);
}
-static bool8 sub_8131B20(void)
+static bool8 HandleLoadTMCaseGraphicsAndPalettes(void)
{
- switch (gUnknown_203B118->unk_12)
+ switch (sTMCaseDynamicResources->seqId)
{
case 0:
reset_temp_tile_data_buffers();
decompress_and_copy_tile_data_to_vram(1, gUnknown_8E845D8, 0, 0, 0);
- gUnknown_203B118->unk_12++;
+ sTMCaseDynamicResources->seqId++;
break;
case 1:
if (free_temp_tile_data_buffers_if_possible() != TRUE)
{
- LZDecompressWram(gUnknown_8E84A24, gUnknown_203B120);
- gUnknown_203B118->unk_12++;
+ LZDecompressWram(gUnknown_8E84A24, sTilemapBuffer);
+ sTMCaseDynamicResources->seqId++;
}
break;
case 2:
LZDecompressWram(gUnknown_8E84B70, GetBgTilemapBuffer(1));
- gUnknown_203B118->unk_12++;
+ sTMCaseDynamicResources->seqId++;
break;
case 3:
if (gSaveBlock2Ptr->playerGender == MALE)
LoadCompressedPalette(gUnknown_8E84CB0, 0, 0x80);
else
LoadCompressedPalette(gUnknown_8E84D20, 0, 0x80);
- gUnknown_203B118->unk_12++;
+ sTMCaseDynamicResources->seqId++;
break;
case 4:
- LoadCompressedObjectPic(&gUnknown_8463218);
- gUnknown_203B118->unk_12++;
+ LoadCompressedObjectPic(&sTMSpriteSheet);
+ sTMCaseDynamicResources->seqId++;
break;
default:
- sub_81338A8();
- gUnknown_203B118->unk_12 = 0;
+ LoadTMTypePalettes();
+ sTMCaseDynamicResources->seqId = 0;
return TRUE;
}
return FALSE;
}
-static void sub_8131C10(void)
+static void CreateTMCaseListMenuBuffers(void)
{
struct BagPocket * pocket = &gBagPockets[POCKET_TM_CASE - 1];
- gUnknown_203B124 = Alloc((pocket->capacity + 1) * sizeof(struct ListMenuItem));
- gUnknown_203B128 = Alloc(gUnknown_203B118->unk_06 * 29);
+ sListMenuItemsBuffer = Alloc((pocket->capacity + 1) * sizeof(struct ListMenuItem));
+ sListMenuStringsBuffer = Alloc(sTMCaseDynamicResources->numTMs * 29);
}
-static void sub_8131C50(void)
+static void InitTMCaseListMenuItems(void)
{
struct BagPocket * pocket = &gBagPockets[POCKET_TM_CASE - 1];
u16 i;
- for (i = 0; i < gUnknown_203B118->unk_06; i++)
+ for (i = 0; i < sTMCaseDynamicResources->numTMs; i++)
{
- GetTMNumberAndMoveString(gUnknown_203B128[i], pocket->itemSlots[i].itemId);
- gUnknown_203B124[i].unk_00 = gUnknown_203B128[i];
- gUnknown_203B124[i].unk_04 = i;
+ GetTMNumberAndMoveString(sListMenuStringsBuffer[i], pocket->itemSlots[i].itemId);
+ sListMenuItemsBuffer[i].unk_00 = sListMenuStringsBuffer[i];
+ sListMenuItemsBuffer[i].unk_04 = i;
}
- gUnknown_203B124[i].unk_00 = gUnknown_84166DB;
- gUnknown_203B124[i].unk_04 = -2;
- gUnknown_3005E70.items = gUnknown_203B124;
- gUnknown_3005E70.totalItems = gUnknown_203B118->unk_06 + 1;
- gUnknown_3005E70.windowId = 0;
- gUnknown_3005E70.header_X = 0;
- gUnknown_3005E70.item_X = 8;
- gUnknown_3005E70.cursor_X = 0;
- gUnknown_3005E70.lettersSpacing = 0;
- gUnknown_3005E70.itemVerticalPadding = 2;
- gUnknown_3005E70.upText_Y = 2;
- gUnknown_3005E70.maxShowed = gUnknown_203B118->unk_05;
- gUnknown_3005E70.fontId = 2;
- gUnknown_3005E70.cursorPal = 2;
- gUnknown_3005E70.fillValue = 0;
- gUnknown_3005E70.cursorShadowPal = 3;
- gUnknown_3005E70.moveCursorFunc = sub_8131E18;
- gUnknown_3005E70.itemPrintFunc = sub_8131E68;
- gUnknown_3005E70.cursorKind = 0;
- gUnknown_3005E70.scrollMultiple = 0;
+ sListMenuItemsBuffer[i].unk_00 = gText_Close;
+ sListMenuItemsBuffer[i].unk_04 = -2;
+ gMultiuseListMenuTemplate.items = sListMenuItemsBuffer;
+ gMultiuseListMenuTemplate.totalItems = sTMCaseDynamicResources->numTMs + 1;
+ gMultiuseListMenuTemplate.windowId = 0;
+ gMultiuseListMenuTemplate.header_X = 0;
+ gMultiuseListMenuTemplate.item_X = 8;
+ gMultiuseListMenuTemplate.cursor_X = 0;
+ gMultiuseListMenuTemplate.lettersSpacing = 0;
+ gMultiuseListMenuTemplate.itemVerticalPadding = 2;
+ gMultiuseListMenuTemplate.upText_Y = 2;
+ gMultiuseListMenuTemplate.maxShowed = sTMCaseDynamicResources->maxTMsShown;
+ gMultiuseListMenuTemplate.fontId = 2;
+ gMultiuseListMenuTemplate.cursorPal = 2;
+ gMultiuseListMenuTemplate.fillValue = 0;
+ gMultiuseListMenuTemplate.cursorShadowPal = 3;
+ gMultiuseListMenuTemplate.moveCursorFunc = TMCase_MoveCursorFunc;
+ gMultiuseListMenuTemplate.itemPrintFunc = TMCase_ItemPrintFunc;
+ gMultiuseListMenuTemplate.cursorKind = 0;
+ gMultiuseListMenuTemplate.scrollMultiple = 0;
}
static void GetTMNumberAndMoveString(u8 * dest, u16 itemId)
{
- StringCopy(gStringVar4, gUnknown_84166FF);
+ StringCopy(gStringVar4, gText_FontSize0);
if (itemId >= ITEM_HM01)
{
- StringAppend(gStringVar4, gUnknown_8463178);
- StringAppend(gStringVar4, gUnknown_8416226);
+ StringAppend(gStringVar4, sText_ClearTo18);
+ StringAppend(gStringVar4, gOtherText_UnkF9_08_Clear_01);
ConvertIntToDecimalStringN(gStringVar1, itemId - ITEM_HM01 + 1, STR_CONV_MODE_LEADING_ZEROS, 1);
StringAppend(gStringVar4, gStringVar1);
}
else
{
- StringAppend(gStringVar4, gUnknown_8416226);
+ StringAppend(gStringVar4, gOtherText_UnkF9_08_Clear_01);
ConvertIntToDecimalStringN(gStringVar1, itemId - ITEM_TM01 + 1, STR_CONV_MODE_LEADING_ZEROS, 2);
StringAppend(gStringVar4, gStringVar1);
}
- StringAppend(gStringVar4, gUnknown_846317C);
- StringAppend(gStringVar4, gUnknown_8416703);
+ StringAppend(gStringVar4, sText_SingleSpace);
+ StringAppend(gStringVar4, gText_FontSize2);
StringAppend(gStringVar4, gMoveNames[ItemIdToBattleMoveId(itemId)]);
StringCopy(dest, gStringVar4);
}
-static void sub_8131E18(s32 itemIndex, bool8 onInit, struct ListMenu *list)
+static void TMCase_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list)
{
u16 itemId;
if (itemIndex == -2)
itemId = 0;
else
- itemId = sub_809A798(POCKET_TM_CASE, itemIndex);
+ itemId = BagGetItemIdByPocketPosition(POCKET_TM_CASE, itemIndex);
if (onInit != TRUE)
{
PlaySE(SE_SELECT);
- sub_81337E4(gUnknown_203B118->unk_04, itemId);
+ InitSelectedTMSpriteData(sTMCaseDynamicResources->tmSpriteId, itemId);
}
- sub_8131F0C(itemIndex);
- sub_8133444(itemId);
+ TMCase_MoveCursor_UpdatePrintedDescription(itemIndex);
+ TMCase_MoveCursor_UpdatePrintedTMInfo(itemId);
}
-static void sub_8131E68(u8 windowId, s32 itemId, u8 y)
+static void TMCase_ItemPrintFunc(u8 windowId, s32 itemId, u8 y)
{
if (itemId != -2)
{
- if (!itemid_is_unique(sub_809A798(POCKET_TM_CASE, itemId)))
+ if (!itemid_is_unique(BagGetItemIdByPocketPosition(POCKET_TM_CASE, itemId)))
{
- ConvertIntToDecimalStringN(gStringVar1, sub_809A7B4(POCKET_TM_CASE, itemId), STR_CONV_MODE_RIGHT_ALIGN, 3);
- StringExpandPlaceholders(gStringVar4, gUnknown_84162B9);
- sub_81332EC(windowId, 0, gStringVar4, 0x7E, y, 0, 0, 0xFF, 1);
+ ConvertIntToDecimalStringN(gStringVar1, BagGetQuantityByPocketPosition(POCKET_TM_CASE, itemId), STR_CONV_MODE_RIGHT_ALIGN, 3);
+ StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
+ AddTextPrinterParameterized_ColorByIndex(windowId, 0, gStringVar4, 0x7E, y, 0, 0, 0xFF, 1);
}
else
{
- sub_81335B0(windowId, 8, y);
+ PlaceHMTileInWindow(windowId, 8, y);
}
}
}
-static void sub_8131F0C(s32 itemIndex)
+static void TMCase_MoveCursor_UpdatePrintedDescription(s32 itemIndex)
{
const u8 * str;
if (itemIndex != -2)
{
- str = ItemId_GetDescription(sub_809A798(POCKET_TM_CASE, itemIndex));
+ str = ItemId_GetDescription(BagGetItemIdByPocketPosition(POCKET_TM_CASE, itemIndex));
}
else
{
- str = gUnknown_84166E1;
+ str = gText_TMCaseWillBePutAway;
}
FillWindowPixelBuffer(1, 0);
- sub_81332EC(1, 2, str, 2, 3, 1, 0, 0, 0);
+ AddTextPrinterParameterized_ColorByIndex(1, 2, str, 2, 3, 1, 0, 0, 0);
}
-static void sub_8131F64(s32 a0)
+static void FillBG2RowWithPalette_2timesNplus1(s32 a0)
{
sub_80F6B08(2, 0, 12, 30, 8, 2 * a0 + 1);
schedule_bg_copy_tilemap_to_vram(2);
}
-static void sub_8131F90(u8 a0, u8 a1)
+static void PrintListMenuCursorByID_WithColorIdx(u8 a0, u8 a1)
{
- sub_8131FB0(ListMenuGetYCoordForPrintingArrowCursor(a0), a1);
+ PrintListMenuCursorAt_WithColorIdx(ListMenuGetYCoordForPrintingArrowCursor(a0), a1);
}
-static void sub_8131FB0(u8 a0, u8 a1)
+static void PrintListMenuCursorAt_WithColorIdx(u8 a0, u8 a1)
{
if (a1 == 0xFF)
{
@@ -612,34 +613,34 @@ static void sub_8131FB0(u8 a0, u8 a1)
}
else
{
- sub_81332EC(0, 2, gFameCheckerText_ListMenuCursor, 0, a0, 0, 0, 0, a1);
+ AddTextPrinterParameterized_ColorByIndex(0, 2, gFameCheckerText_ListMenuCursor, 0, a0, 0, 0, 0, a1);
}
}
static void sub_8132018(void)
{
- gUnknown_203B118->unk_08 = AddScrollIndicatorArrowPairParametrized(2, 0xA0, 0x08, 0x58, gUnknown_203B118->unk_06 - gUnknown_203B118->unk_05 + 1, 0x6E, 0x6E, &gUnknown_203B10C.unk_0a);
+ sTMCaseDynamicResources->scrollIndicatorArrowPairId = AddScrollIndicatorArrowPairParametrized(2, 0xA0, 0x08, 0x58, sTMCaseDynamicResources->numTMs - sTMCaseDynamicResources->maxTMsShown + 1, 0x6E, 0x6E, &sTMCaseStaticResources.scrollOffset);
}
static void sub_8132054(void)
{
- gUnknown_203B118->unk_0a = 1;
- gUnknown_203B118->unk_08 = AddScrollIndicatorArrowPairParametrized(2, 0x98, 0x48, 0x68, 2, 0x6E, 0x6E, &gUnknown_203B118->unk_0a);
+ sTMCaseDynamicResources->currItem = 1;
+ sTMCaseDynamicResources->scrollIndicatorArrowPairId = AddScrollIndicatorArrowPairParametrized(2, 0x98, 0x48, 0x68, 2, 0x6E, 0x6E, &sTMCaseDynamicResources->currItem);
}
-static void sub_813208C(void)
+static void RemoveTMCaseScrollIndicatorArrowPair(void)
{
- if (gUnknown_203B118->unk_08 != 0xFF)
+ if (sTMCaseDynamicResources->scrollIndicatorArrowPairId != 0xFF)
{
- RemoveScrollIndicatorArrowPair(gUnknown_203B118->unk_08);
- gUnknown_203B118->unk_08 = 0xFF;
+ RemoveScrollIndicatorArrowPair(sTMCaseDynamicResources->scrollIndicatorArrowPairId);
+ sTMCaseDynamicResources->scrollIndicatorArrowPairId = 0xFF;
}
}
void ResetTMCaseCursorPos(void)
{
- gUnknown_203B10C.unk_08 = 0;
- gUnknown_203B10C.unk_0a = 0;
+ sTMCaseStaticResources.selectedRow = 0;
+ sTMCaseStaticResources.scrollOffset = 0;
}
static void sub_81320BC(void)
@@ -648,85 +649,85 @@ static void sub_81320BC(void)
u16 i;
sub_809A584(pocket->itemSlots, pocket->capacity);
- gUnknown_203B118->unk_06 = 0;
+ sTMCaseDynamicResources->numTMs = 0;
for (i = 0; i < pocket->capacity; i++)
{
if (pocket->itemSlots[i].itemId == ITEM_NONE)
break;
- gUnknown_203B118->unk_06++;
+ sTMCaseDynamicResources->numTMs++;
}
- gUnknown_203B118->unk_05 = min(gUnknown_203B118->unk_06 + 1, 5);
+ sTMCaseDynamicResources->maxTMsShown = min(sTMCaseDynamicResources->numTMs + 1, 5);
}
static void sub_8132120(void)
{
- if (gUnknown_203B10C.unk_0a != 0)
+ if (sTMCaseStaticResources.scrollOffset != 0)
{
- if (gUnknown_203B10C.unk_0a + gUnknown_203B118->unk_05 > gUnknown_203B118->unk_06 + 1)
- gUnknown_203B10C.unk_0a = gUnknown_203B118->unk_06 + 1 - gUnknown_203B118->unk_05;
+ if (sTMCaseStaticResources.scrollOffset + sTMCaseDynamicResources->maxTMsShown > sTMCaseDynamicResources->numTMs + 1)
+ sTMCaseStaticResources.scrollOffset = sTMCaseDynamicResources->numTMs + 1 - sTMCaseDynamicResources->maxTMsShown;
}
- if (gUnknown_203B10C.unk_0a + gUnknown_203B10C.unk_08 >= gUnknown_203B118->unk_06 + 1)
+ if (sTMCaseStaticResources.scrollOffset + sTMCaseStaticResources.selectedRow >= sTMCaseDynamicResources->numTMs + 1)
{
- if (gUnknown_203B118->unk_06 + 1 < 2)
- gUnknown_203B10C.unk_08 = 0;
+ if (sTMCaseDynamicResources->numTMs + 1 < 2)
+ sTMCaseStaticResources.selectedRow = 0;
else
- gUnknown_203B10C.unk_08 = gUnknown_203B118->unk_06;
+ sTMCaseStaticResources.selectedRow = sTMCaseDynamicResources->numTMs;
}
}
static void sub_8132170(void)
{
u8 i;
- if (gUnknown_203B10C.unk_08 > 3)
+ if (sTMCaseStaticResources.selectedRow > 3)
{
- for (i = 0; i <= gUnknown_203B10C.unk_08 - 3 && gUnknown_203B10C.unk_0a + gUnknown_203B118->unk_05 != gUnknown_203B118->unk_06 + 1; i++)
+ for (i = 0; i <= sTMCaseStaticResources.selectedRow - 3 && sTMCaseStaticResources.scrollOffset + sTMCaseDynamicResources->maxTMsShown != sTMCaseDynamicResources->numTMs + 1; i++)
{
do {} while (0);
- gUnknown_203B10C.unk_08--;
- gUnknown_203B10C.unk_0a++;
+ sTMCaseStaticResources.selectedRow--;
+ sTMCaseStaticResources.scrollOffset++;
}
}
}
-static void sub_81321D4(void)
+static void DestroyTMCaseBuffers(void)
{
- if (gUnknown_203B118 != NULL)
- Free(gUnknown_203B118);
- if (gUnknown_203B120 != NULL)
- Free(gUnknown_203B120);
- if (gUnknown_203B124 != NULL)
- Free(gUnknown_203B124);
- if (gUnknown_203B128 != NULL)
- Free(gUnknown_203B128);
- if (gUnknown_203B12C != NULL)
- Free(gUnknown_203B12C);
+ if (sTMCaseDynamicResources != NULL)
+ Free(sTMCaseDynamicResources);
+ if (sTilemapBuffer != NULL)
+ Free(sTilemapBuffer);
+ if (sListMenuItemsBuffer != NULL)
+ Free(sListMenuItemsBuffer);
+ if (sListMenuStringsBuffer != NULL)
+ Free(sListMenuStringsBuffer);
+ if (sTMSpritePaletteBuffer != NULL)
+ Free(sTMSpritePaletteBuffer);
FreeAllWindowBuffers();
}
-static void sub_8132230(u8 taskId)
+static void Task_BeginFadeOutFromTMCase(u8 taskId)
{
BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK);
- gTasks[taskId].func = sub_813226C;
+ gTasks[taskId].func = Task_FadeOutAndCloseTMCase;
}
-static void sub_813226C(u8 taskId)
+static void Task_FadeOutAndCloseTMCase(u8 taskId)
{
s16 * data = gTasks[taskId].data;
if (!gPaletteFade.active)
{
- sub_810713C(data[0], &gUnknown_203B10C.unk_0a, &gUnknown_203B10C.unk_08);
- if (gUnknown_203B118->unk_00 != NULL)
- SetMainCallback2(gUnknown_203B118->unk_00);
+ DestroyListMenu(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
+ if (sTMCaseDynamicResources->savedCallback != NULL)
+ SetMainCallback2(sTMCaseDynamicResources->savedCallback);
else
- SetMainCallback2(gUnknown_203B10C.unk_00);
- sub_813208C();
- sub_81321D4();
+ SetMainCallback2(sTMCaseStaticResources.savedCallback);
+ RemoveTMCaseScrollIndicatorArrowPair();
+ DestroyTMCaseBuffers();
DestroyTask(taskId);
}
}
-static void sub_81322D4(u8 taskId)
+static void Task_TMCaseMain(u8 taskId)
{
s16 * data = gTasks[taskId].data;
s32 input;
@@ -736,12 +737,12 @@ static void sub_81322D4(u8 taskId)
if (sub_80BF72C() != TRUE)
{
input = ListMenuHandleInput(data[0]);
- get_coro_args_x18_x1A(data[0], &gUnknown_203B10C.unk_0a, &gUnknown_203B10C.unk_08);
- if (JOY_NEW(SELECT_BUTTON) && gUnknown_203B10C.unk_05 == 1)
+ get_coro_args_x18_x1A(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
+ if (JOY_NEW(SELECT_BUTTON) && sTMCaseStaticResources.unk_05 == 1)
{
PlaySE(SE_SELECT);
gSpecialVar_ItemId = ITEM_NONE;
- sub_8132230(taskId);
+ Task_BeginFadeOutFromTMCase(taskId);
}
else
{
@@ -752,17 +753,17 @@ static void sub_81322D4(u8 taskId)
case -2:
PlaySE(SE_SELECT);
gSpecialVar_ItemId = 0;
- sub_8132230(taskId);
+ Task_BeginFadeOutFromTMCase(taskId);
break;
default:
PlaySE(SE_SELECT);
- sub_8131F64(1);
- sub_813208C();
- sub_8131F90(data[0], 2);
+ FillBG2RowWithPalette_2timesNplus1(1);
+ RemoveTMCaseScrollIndicatorArrowPair();
+ PrintListMenuCursorByID_WithColorIdx(data[0], 2);
data[1] = input;
- data[2] = sub_809A7B4(POCKET_TM_CASE, input);
- gSpecialVar_ItemId = sub_809A798(POCKET_TM_CASE, input);
- gTasks[taskId].func = gUnknown_8463140[gUnknown_203B10C.unk_04];
+ data[2] = BagGetQuantityByPocketPosition(POCKET_TM_CASE, input);
+ gSpecialVar_ItemId = BagGetItemIdByPocketPosition(POCKET_TM_CASE, input);
+ gTasks[taskId].func = sSelectTMActionTasks[sTMCaseStaticResources.tmCaseMenuType];
break;
}
}
@@ -770,47 +771,47 @@ static void sub_81322D4(u8 taskId)
}
}
-static void sub_81323E4(u8 taskId)
+static void Subtask_ReturnToTMCaseMain(u8 taskId)
{
- sub_8131F64(0);
+ FillBG2RowWithPalette_2timesNplus1(0);
sub_8132018();
- gTasks[taskId].func = sub_81322D4;
+ gTasks[taskId].func = Task_TMCaseMain;
}
-static void SelectTMAction_FromFieldBag(u8 taskId)
+static void Task_SelectTMAction_FromFieldBag(u8 taskId)
{
u8 * strbuf;
- sub_8133368(2);
+ TMCase_SetWindowBorder2(2);
if (!sub_80BF708() && InUnionRoom() != TRUE)
{
- sub_8133630(&gUnknown_203B118->unk_07, 0);
- gUnknown_203B118->unk_0c = gUnknown_8463168;
- gUnknown_203B118->unk_10 = 3;
+ AddTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId, 0);
+ sTMCaseDynamicResources->menuActionIndices = sMenuActionIndices_Field;
+ sTMCaseDynamicResources->numMenuActions = NELEMS(sMenuActionIndices_Field);
}
else
{
- sub_8133630(&gUnknown_203B118->unk_07, 1);
- gUnknown_203B118->unk_0c = gUnknown_846316B;
- gUnknown_203B118->unk_10 = 2;
+ AddTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId, 1);
+ sTMCaseDynamicResources->menuActionIndices = sMenuActionIndices_UnionRoom;
+ sTMCaseDynamicResources->numMenuActions = NELEMS(sMenuActionIndices_UnionRoom);
}
- AddItemMenuActionTextPrinters(gUnknown_203B118->unk_07, 2, GetMenuCursorDimensionByFont(2, 0), 2, 0, GetFontAttribute(2, 1) + 2, gUnknown_203B118->unk_10, gUnknown_8463150, gUnknown_203B118->unk_0c);
- ProgramAndPlaceMenuCursorOnWindow(gUnknown_203B118->unk_07, 2, 0, 2, GetFontAttribute(2, 1) + 2, gUnknown_203B118->unk_10, 0);
+ AddItemMenuActionTextPrinters(sTMCaseDynamicResources->contextMenuWindowId, 2, GetMenuCursorDimensionByFont(2, 0), 2, 0, GetFontAttribute(2, 1) + 2, sTMCaseDynamicResources->numMenuActions, sMenuActions_UseGiveExit, sTMCaseDynamicResources->menuActionIndices);
+ ProgramAndPlaceMenuCursorOnWindow(sTMCaseDynamicResources->contextMenuWindowId, 2, 0, 2, GetFontAttribute(2, 1) + 2, sTMCaseDynamicResources->numMenuActions, 0);
strbuf = Alloc(256);
GetTMNumberAndMoveString(strbuf, gSpecialVar_ItemId);
- StringAppend(strbuf, gUnknown_8416301);
- sub_81332EC(2, 2, strbuf, 0, 2, 1, 0, 0, 1);
+ StringAppend(strbuf, gText_IsSelected);
+ AddTextPrinterParameterized_ColorByIndex(2, 2, strbuf, 0, 2, 1, 0, 0, 1);
Free(strbuf);
if (itemid_is_unique(gSpecialVar_ItemId))
{
- sub_81335B0(2, 0, 2);
+ PlaceHMTileInWindow(2, 0, 2);
CopyWindowToVram(2, 2);
}
schedule_bg_copy_tilemap_to_vram(0);
schedule_bg_copy_tilemap_to_vram(1);
- gTasks[taskId].func = sub_8132568;
+ gTasks[taskId].func = Task_TMContextMenu_HandleInput;
}
-static void sub_8132568(u8 taskId)
+static void Task_TMContextMenu_HandleInput(u8 taskId)
{
s8 input;
@@ -821,21 +822,21 @@ static void sub_8132568(u8 taskId)
{
case -1:
PlaySE(SE_SELECT);
- gUnknown_8463150[gUnknown_203B118->unk_0c[gUnknown_203B118->unk_10 - 1]].func.void_u8(taskId);
+ sMenuActions_UseGiveExit[sTMCaseDynamicResources->menuActionIndices[sTMCaseDynamicResources->numMenuActions - 1]].func.void_u8(taskId);
break;
case -2:
break;
default:
PlaySE(SE_SELECT);
- gUnknown_8463150[gUnknown_203B118->unk_0c[input]].func.void_u8(taskId);
+ sMenuActions_UseGiveExit[sTMCaseDynamicResources->menuActionIndices[input]].func.void_u8(taskId);
break;
}
}
}
-static void sub_81325F0(u8 taskId)
+static void TMHMContextMenuAction_Use(u8 taskId)
{
- sub_8133664(&gUnknown_203B118->unk_07);
+ RemoveTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId);
sub_810F4D8(2, 0);
ClearWindowTilemap(2);
PutWindowTilemap(0);
@@ -843,21 +844,21 @@ static void sub_81325F0(u8 taskId)
schedule_bg_copy_tilemap_to_vram(1);
if (CalculatePlayerPartyCount() == 0)
{
- sub_81326F8(taskId);
+ PrintError_ThereIsNoPokemon(taskId);
}
else
{
gUnknown_3005E98 = sub_8125B40;
- gUnknown_203B118->unk_00 = sub_8124C8C;
- sub_8132230(taskId);
+ sTMCaseDynamicResources->savedCallback = sub_8124C8C;
+ Task_BeginFadeOutFromTMCase(taskId);
}
}
-static void sub_813265C(u8 taskId)
+static void TMHMContextMenuAction_Give(u8 taskId)
{
s16 * data = gTasks[taskId].data;
- u16 itemId = sub_809A798(POCKET_TM_CASE, data[1]);
- sub_8133664(&gUnknown_203B118->unk_07);
+ u16 itemId = BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1]);
+ RemoveTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId);
sub_810F4D8(2, 0);
ClearWindowTilemap(2);
PutWindowTilemap(1);
@@ -869,30 +870,30 @@ static void sub_813265C(u8 taskId)
{
if (CalculatePlayerPartyCount() == 0)
{
- sub_81326F8(taskId);
+ PrintError_ThereIsNoPokemon(taskId);
}
else
{
- gUnknown_203B118->unk_00 = sub_8126EDC;
- sub_8132230(taskId);
+ sTMCaseDynamicResources->savedCallback = sub_8126EDC;
+ Task_BeginFadeOutFromTMCase(taskId);
}
}
else
{
- sub_8132714(taskId);
+ PrintError_ItemCantBeHeld(taskId);
}
}
-static void sub_81326F8(u8 taskId)
+static void PrintError_ThereIsNoPokemon(u8 taskId)
{
- sub_813337C(taskId, 2, gUnknown_841632A, sub_8132758);
+ TMCase_PrintMessageWithFollowupTask(taskId, 2, gText_ThereIsNoPokemon, sub_8132758);
}
-static void sub_8132714(u8 taskId)
+static void PrintError_ItemCantBeHeld(u8 taskId)
{
CopyItemName(gSpecialVar_ItemId, gStringVar1);
- StringExpandPlaceholders(gStringVar4, gUnknown_841635E);
- sub_813337C(taskId, 2, gStringVar4, sub_8132758);
+ StringExpandPlaceholders(gStringVar4, gText_ItemCantBeHeld);
+ TMCase_PrintMessageWithFollowupTask(taskId, 2, gStringVar4, sub_8132758);
}
static void sub_8132758(u8 taskId)
@@ -908,9 +909,9 @@ static void sub_8132780(u8 taskId)
{
s16 * data = gTasks[taskId].data;
- sub_810713C(data[0], &gUnknown_203B10C.unk_0a, &gUnknown_203B10C.unk_08);
- data[0] = ListMenuInit(&gUnknown_3005E70, gUnknown_203B10C.unk_0a, gUnknown_203B10C.unk_08);
- sub_8131F90(data[0], 1);
+ DestroyListMenu(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
+ data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sTMCaseStaticResources.scrollOffset, sTMCaseStaticResources.selectedRow);
+ PrintListMenuCursorByID_WithColorIdx(data[0], 1);
sub_810F260(6, 0);
ClearWindowTilemap(6);
PutWindowTilemap(1);
@@ -918,38 +919,38 @@ static void sub_8132780(u8 taskId)
PutWindowTilemap(5);
schedule_bg_copy_tilemap_to_vram(0);
schedule_bg_copy_tilemap_to_vram(1);
- sub_81323E4(taskId);
+ Subtask_ReturnToTMCaseMain(taskId);
}
-static void sub_81327FC(u8 taskId)
+static void TMHMContextMenuAction_Exit(u8 taskId)
{
s16 * data = gTasks[taskId].data;
- sub_8133664(&gUnknown_203B118->unk_07);
+ RemoveTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId);
sub_810F4D8(2, 0);
ClearWindowTilemap(2);
PutWindowTilemap(0);
- sub_8131F90(data[0], 1);
+ PrintListMenuCursorByID_WithColorIdx(data[0], 1);
PutWindowTilemap(1);
PutWindowTilemap(4);
PutWindowTilemap(5);
schedule_bg_copy_tilemap_to_vram(0);
schedule_bg_copy_tilemap_to_vram(1);
- sub_81323E4(taskId);
+ Subtask_ReturnToTMCaseMain(taskId);
}
static void sub_8132868(u8 taskId)
{
s16 * data = gTasks[taskId].data;
- if (!itemid_is_unique(sub_809A798(POCKET_TM_CASE, data[1])))
+ if (!itemid_is_unique(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])))
{
- gUnknown_203B118->unk_00 = c2_8123744;
- sub_8132230(taskId);
+ sTMCaseDynamicResources->savedCallback = c2_8123744;
+ Task_BeginFadeOutFromTMCase(taskId);
}
else
{
- sub_8132714(taskId);
+ PrintError_ItemCantBeHeld(taskId);
}
}
@@ -957,61 +958,61 @@ static void sub_81328B8(u8 taskId)
{
s16 * data = gTasks[taskId].data;
- if (!itemid_is_unique(sub_809A798(POCKET_TM_CASE, data[1])))
+ if (!itemid_is_unique(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])))
{
- gUnknown_203B118->unk_00 = sub_808CE60;
- sub_8132230(taskId);
+ sTMCaseDynamicResources->savedCallback = sub_808CE60;
+ Task_BeginFadeOutFromTMCase(taskId);
}
else
{
- sub_8132714(taskId);
+ PrintError_ItemCantBeHeld(taskId);
}
}
-static void SelectTMAction_FromSellMenu(u8 taskId)
+static void Task_SelectTMAction_FromSellMenu(u8 taskId)
{
s16 * data = gTasks[taskId].data;
if (itemid_get_market_price(gSpecialVar_ItemId) == 0)
{
CopyItemName(gSpecialVar_ItemId, gStringVar1);
- StringExpandPlaceholders(gStringVar4, gUnknown_84168F1);
- sub_813337C(taskId, sub_80BF8E4(), gStringVar4, sub_8132780);
+ StringExpandPlaceholders(gStringVar4, gText_OhNoICantBuyThat);
+ TMCase_PrintMessageWithFollowupTask(taskId, sub_80BF8E4(), gStringVar4, sub_8132780);
}
else
{
data[8] = 1;
if (data[2] == 1)
{
- sub_81335E0();
- sub_81329C4(taskId);
+ HandlePrintMoneyOnHand();
+ Task_AskConfirmSaleWithAmount(taskId);
}
else
{
if (data[2] > 99)
data[2] = 99;
CopyItemName(gSpecialVar_ItemId, gStringVar1);
- StringExpandPlaceholders(gStringVar4, gUnknown_8416911);
- sub_813337C(taskId, sub_80BF8E4(), gStringVar4, sub_8132AAC);
+ StringExpandPlaceholders(gStringVar4, gText_HowManyWouldYouLikeToSell);
+ TMCase_PrintMessageWithFollowupTask(taskId, sub_80BF8E4(), gStringVar4, Task_InitQuantitySelectUI);
}
}
}
-static void sub_81329C4(u8 taskId)
+static void Task_AskConfirmSaleWithAmount(u8 taskId)
{
s16 * data = gTasks[taskId].data;
- ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(sub_809A798(POCKET_TM_CASE, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6);
- StringExpandPlaceholders(gStringVar4, gUnknown_8416936);
- sub_813337C(taskId, sub_80BF8E4(), gStringVar4, sub_8132A34);
+ ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6);
+ StringExpandPlaceholders(gStringVar4, gText_ICanPayThisMuch_WouldThatBeOkay);
+ TMCase_PrintMessageWithFollowupTask(taskId, sub_80BF8E4(), gStringVar4, Task_PlaceYesNoBox);
}
-static void sub_8132A34(u8 taskId)
+static void Task_PlaceYesNoBox(u8 taskId)
{
- sub_8133604(taskId, gUnknown_8463170);
+ HandleCreateYesNoMenu(taskId, &sYesNoFuncTable);
}
-static void sub_8132A48(u8 taskId)
+static void Task_SaleOfTMsCancelled(u8 taskId)
{
s16 * data = gTasks[taskId].data;
@@ -1024,20 +1025,20 @@ static void sub_8132A48(u8 taskId)
PutWindowTilemap(5);
schedule_bg_copy_tilemap_to_vram(0);
schedule_bg_copy_tilemap_to_vram(1);
- sub_8131F90(data[0], 1);
- sub_81323E4(taskId);
+ PrintListMenuCursorByID_WithColorIdx(data[0], 1);
+ Subtask_ReturnToTMCaseMain(taskId);
}
-static void sub_8132AAC(u8 taskId)
+static void Task_InitQuantitySelectUI(u8 taskId)
{
s16 * data = gTasks[taskId].data;
- sub_8133354(7);
+ TMCase_SetWindowBorder1(7);
ConvertIntToDecimalStringN(gStringVar1, 1, STR_CONV_MODE_LEADING_ZEROS, 2);
- StringExpandPlaceholders(gStringVar4, gUnknown_84162B9);
- sub_81332EC(7, 0, gStringVar4, 4, 10, 1, 0, 0, 1);
- sub_8132B5C(1, itemid_get_market_price(sub_809A798(POCKET_TM_CASE, data[1])) / 2 * data[8]);
- sub_81335E0();
+ StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
+ AddTextPrinterParameterized_ColorByIndex(7, 0, gStringVar4, 4, 10, 1, 0, 0, 1);
+ sub_8132B5C(1, itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])) / 2 * data[8]);
+ HandlePrintMoneyOnHand();
sub_8132054();
schedule_bg_copy_tilemap_to_vram(0);
schedule_bg_copy_tilemap_to_vram(1);
@@ -1048,8 +1049,8 @@ static void sub_8132B5C(s16 quantity, s32 amount)
{
FillWindowPixelBuffer(7, 0x11);
ConvertIntToDecimalStringN(gStringVar1, quantity, STR_CONV_MODE_LEADING_ZEROS, 2);
- StringExpandPlaceholders(gStringVar4, gUnknown_84162B9);
- sub_81332EC(7, 0, gStringVar4, 4, 10, 1, 0, 0, 1);
+ StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
+ AddTextPrinterParameterized_ColorByIndex(7, 0, gStringVar4, 4, 10, 1, 0, 0, 1);
PrintMoneyAmount(7, 0x38, 0x0A, amount, 0);
}
@@ -1059,7 +1060,7 @@ static void sub_8132BC8(u8 taskId)
if (sub_80BF848(&data[8], data[2]) == 1)
{
- sub_8132B5C(data[8], itemid_get_market_price(sub_809A798(POCKET_TM_CASE, data[1])) / 2 * data[8]);
+ sub_8132B5C(data[8], itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])) / 2 * data[8]);
}
else if (JOY_NEW(A_BUTTON))
{
@@ -1067,8 +1068,8 @@ static void sub_8132BC8(u8 taskId)
sub_810F4D8(7, 0);
schedule_bg_copy_tilemap_to_vram(0);
schedule_bg_copy_tilemap_to_vram(1);
- sub_813208C();
- sub_81329C4(taskId);
+ RemoveTMCaseScrollIndicatorArrowPair();
+ Task_AskConfirmSaleWithAmount(taskId);
}
else if (JOY_NEW(B_BUTTON))
{
@@ -1081,25 +1082,25 @@ static void sub_8132BC8(u8 taskId)
PutWindowTilemap(1);
schedule_bg_copy_tilemap_to_vram(0);
schedule_bg_copy_tilemap_to_vram(1);
- sub_813208C();
- sub_8131F90(data[0], 1);
- sub_81323E4(taskId);
+ RemoveTMCaseScrollIndicatorArrowPair();
+ PrintListMenuCursorByID_WithColorIdx(data[0], 1);
+ Subtask_ReturnToTMCaseMain(taskId);
}
}
-static void sub_8132CAC(u8 taskId)
+static void Task_PrintSaleConfirmedText(u8 taskId)
{
s16 * data = gTasks[taskId].data;
PutWindowTilemap(0);
schedule_bg_copy_tilemap_to_vram(0);
CopyItemName(gSpecialVar_ItemId, gStringVar1);
- ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(sub_809A798(POCKET_TM_CASE, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6);
- StringExpandPlaceholders(gStringVar4, gUnknown_8416959);
- sub_813337C(taskId, 2, gStringVar4, sub_8132D34);
+ ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6);
+ StringExpandPlaceholders(gStringVar4, gText_TurnedOverItemsWorthYen);
+ TMCase_PrintMessageWithFollowupTask(taskId, 2, gStringVar4, Task_DoSaleOfTMs);
}
-static void sub_8132D34(u8 taskId)
+static void Task_DoSaleOfTMs(u8 taskId)
{
s16 * data = gTasks[taskId].data;
@@ -1107,17 +1108,17 @@ static void sub_8132D34(u8 taskId)
RemoveBagItem(gSpecialVar_ItemId, data[8]);
AddMoney(&gSaveBlock1Ptr->money, itemid_get_market_price(gSpecialVar_ItemId) / 2 * data[8]);
sub_809C09C(gSpecialVar_ItemId, data[8], 2);
- sub_810713C(data[0], &gUnknown_203B10C.unk_0a, &gUnknown_203B10C.unk_08);
+ DestroyListMenu(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
sub_81320BC();
sub_8132120();
- sub_8131C50();
- data[0] = ListMenuInit(&gUnknown_3005E70, gUnknown_203B10C.unk_0a, gUnknown_203B10C.unk_08);
- sub_8131F90(data[0], 2);
+ InitTMCaseListMenuItems();
+ data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sTMCaseStaticResources.scrollOffset, sTMCaseStaticResources.selectedRow);
+ PrintListMenuCursorByID_WithColorIdx(data[0], 2);
PrintMoneyAmountInMoneyBox(8, GetMoney(&gSaveBlock1Ptr->money), 0);
- gTasks[taskId].func = sub_8132E0C;
+ gTasks[taskId].func = Task_AfterSale_ReturnToList;
}
-static void sub_8132E0C(u8 taskId)
+static void Task_AfterSale_ReturnToList(u8 taskId)
{
if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON))
{
@@ -1134,11 +1135,11 @@ static void sub_8132E0C(u8 taskId)
void PokeDude_InitTMCase(void)
{
- gUnknown_203B11C = AllocZeroed(sizeof(*gUnknown_203B11C));
- memcpy(gUnknown_203B11C->bagPocket_TMHM, gSaveBlock1Ptr->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM));
- memcpy(gUnknown_203B11C->bagPocket_KeyItems, gSaveBlock1Ptr->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems));
- gUnknown_203B11C->unk_160 = gUnknown_203B10C.unk_08;
- gUnknown_203B11C->unk_162 = gUnknown_203B10C.unk_0a;
+ sPokeDudePackBackup = AllocZeroed(sizeof(*sPokeDudePackBackup));
+ memcpy(sPokeDudePackBackup->bagPocket_TMHM, gSaveBlock1Ptr->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM));
+ memcpy(sPokeDudePackBackup->bagPocket_KeyItems, gSaveBlock1Ptr->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems));
+ sPokeDudePackBackup->unk_160 = sTMCaseStaticResources.selectedRow;
+ sPokeDudePackBackup->unk_162 = sTMCaseStaticResources.scrollOffset;
ClearItemSlots(gSaveBlock1Ptr->bagPocket_TMHM, NELEMS(gSaveBlock1Ptr->bagPocket_TMHM));
ClearItemSlots(gSaveBlock1Ptr->bagPocket_KeyItems, NELEMS(gSaveBlock1Ptr->bagPocket_KeyItems));
ResetTMCaseCursorPos();
@@ -1146,10 +1147,10 @@ void PokeDude_InitTMCase(void)
AddBagItem(ITEM_TM03, 1);
AddBagItem(ITEM_TM09, 1);
AddBagItem(ITEM_TM35, 1);
- InitTMCase(4, sub_815ABFC, 0);
+ InitTMCase(4, CB2_ReturnToTeachyTV, 0);
}
-static void sub_8132F20(u8 taskId)
+static void Task_TMCaseDude1(u8 taskId)
{
s16 * data = gTasks[taskId].data;
@@ -1157,11 +1158,11 @@ static void sub_8132F20(u8 taskId)
{
data[8] = 0;
data[9] = 0;
- gTasks[taskId].func = sub_8132F60;
+ gTasks[taskId].func = Task_TMCaseDude_Playback;
}
}
-static void sub_8132F60(u8 taskId)
+static void Task_TMCaseDude_Playback(u8 taskId)
{
s16 * data = gTasks[taskId].data;
@@ -1178,7 +1179,7 @@ static void sub_8132F60(u8 taskId)
{
case 0:
BeginNormalPaletteFade(0xFFFF8405, 4, 0, 6, 0);
- sub_8131F64(1);
+ FillBG2RowWithPalette_2timesNplus1(1);
data[8]++;
break;
case 1:
@@ -1232,9 +1233,9 @@ static void sub_8132F60(u8 taskId)
}
break;
case 8:
- sub_8131F64(1);
- sub_813337C(taskId, 4, gUnknown_841C587, 0);
- gTasks[taskId].func = sub_8132F60;
+ FillBG2RowWithPalette_2timesNplus1(1);
+ TMCase_PrintMessageWithFollowupTask(taskId, 4, gPokeDudeText_TMTypes, 0);
+ gTasks[taskId].func = Task_TMCaseDude_Playback;
data[8]++;
break;
case 9:
@@ -1246,7 +1247,7 @@ static void sub_8132F60(u8 taskId)
case 10:
if (JOY_NEW(A_BUTTON | B_BUTTON))
{
- sub_8131F64(0);
+ FillBG2RowWithPalette_2timesNplus1(0);
BeginNormalPaletteFade(0x00000400, 0, 6, 0, 0);
sub_810F260(6, 0);
schedule_bg_copy_tilemap_to_vram(1);
@@ -1254,9 +1255,9 @@ static void sub_8132F60(u8 taskId)
}
break;
case 18:
- sub_8131F64(1);
- sub_813337C(taskId, 4, gUnknown_841C693, 0);
- gTasks[taskId].func = sub_8132F60;
+ FillBG2RowWithPalette_2timesNplus1(1);
+ TMCase_PrintMessageWithFollowupTask(taskId, 4, gPokeDudeText_ReadTMDescription, NULL);
+ gTasks[taskId].func = Task_TMCaseDude_Playback; // this function
data[8]++;
break;
case 20:
@@ -1266,12 +1267,12 @@ static void sub_8132F60(u8 taskId)
case 21:
if (!gPaletteFade.active)
{
- memcpy(gSaveBlock1Ptr->bagPocket_TMHM, gUnknown_203B11C->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM));
- memcpy(gSaveBlock1Ptr->bagPocket_KeyItems, gUnknown_203B11C->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems));
- sub_810713C(data[0], NULL, NULL);
- gUnknown_203B10C.unk_08 = gUnknown_203B11C->unk_160;
- gUnknown_203B10C.unk_0a = gUnknown_203B11C->unk_162;
- Free(gUnknown_203B11C);
+ memcpy(gSaveBlock1Ptr->bagPocket_TMHM, sPokeDudePackBackup->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM));
+ memcpy(gSaveBlock1Ptr->bagPocket_KeyItems, sPokeDudePackBackup->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems));
+ DestroyListMenu(data[0], NULL, NULL);
+ sTMCaseStaticResources.selectedRow = sPokeDudePackBackup->unk_160;
+ sTMCaseStaticResources.scrollOffset = sPokeDudePackBackup->unk_162;
+ Free(sPokeDudePackBackup);
CpuFastCopy(gPlttBufferFaded, gPlttBufferUnfaded, 0x400);
sub_8108CF0();
BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, 0);
@@ -1281,28 +1282,28 @@ static void sub_8132F60(u8 taskId)
default:
if (!gPaletteFade.active)
{
- SetMainCallback2(gUnknown_203B10C.unk_00);
- sub_813208C();
- sub_81321D4();
+ SetMainCallback2(sTMCaseStaticResources.savedCallback);
+ RemoveTMCaseScrollIndicatorArrowPair();
+ DestroyTMCaseBuffers();
DestroyTask(taskId);
}
break;
}
}
-static void sub_8133244(void)
+static void InitWindowTemplatesAndPals(void)
{
u8 i;
- InitWindows(gUnknown_8463190);
+ InitWindows(sWindowTemplates);
DeactivateAllTextPrinters();
sub_815001C(0, 0x5B, 0xE0);
sub_814FEAC(0, 0x64, 0xB0);
sub_814FF2C(0, 0x78, 0xD0);
- LoadPalette(gUnknown_841F408, 0xF0, 0x20);
- LoadPalette(gUnknown_841F408, 0xA0, 0x20);
- LoadPalette(gUnknown_8463180, 0xF6, 0x04);
- LoadPalette(gUnknown_8463180, 0xD6, 0x04);
+ LoadPalette(gTMCaseMainWindowPalette, 0xF0, 0x20);
+ LoadPalette(gTMCaseMainWindowPalette, 0xA0, 0x20);
+ LoadPalette(sPal3Override, 0xF6, 0x04);
+ LoadPalette(sPal3Override, 0xD6, 0x04);
sub_8107D38(0xc0, 0x01);
for (i = 0; i < 9; i++)
FillWindowPixelBuffer(i, 0x00);
@@ -1314,43 +1315,43 @@ static void sub_8133244(void)
schedule_bg_copy_tilemap_to_vram(0);
}
-static void sub_81332EC(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx)
+static void AddTextPrinterParameterized_ColorByIndex(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx)
{
- AddTextPrinterParametrized2(windowId, fontId, x, y, letterSpacing, lineSpacing, &gUnknown_8463184[colorIdx], speed, str);
+ AddTextPrinterParametrized2(windowId, fontId, x, y, letterSpacing, lineSpacing, &sTextColors[colorIdx], speed, str);
}
-static void sub_8133354(u8 windowId)
+static void TMCase_SetWindowBorder1(u8 windowId)
{
SetWindowBorderStyle(windowId, FALSE, 0x5B, 0x0E);
}
-static void sub_8133368(u8 windowId)
+static void TMCase_SetWindowBorder2(u8 windowId)
{
SetWindowBorderStyle(windowId, FALSE, 0x78, 0x0D);
}
-static void sub_813337C(u8 taskId, u8 windowId, const u8 * str, TaskFunc func)
+static void TMCase_PrintMessageWithFollowupTask(u8 taskId, u8 windowId, const u8 * str, TaskFunc func)
{
DisplayMessageAndContinueTask(taskId, 6, 0x64, 0x0B, windowId, GetTextSpeedSetting(), str, func);
schedule_bg_copy_tilemap_to_vram(1);
}
-static void sub_81333C4(void)
+static void PrintStringTMCaseOnWindow3(void)
{
- u32 distance = 72 - GetStringWidth(1, gUnknown_84166D3, 0);
- box_print(3, 1, distance / 2, 1, &gUnknown_8463184[0], 0, gUnknown_84166D3);
+ u32 distance = 72 - GetStringWidth(1, gText_TMCase, 0);
+ box_print(3, 1, distance / 2, 1, &sTextColors[0], 0, gText_TMCase);
}
-static void sub_8133404(void)
+static void DrawMoveInfoUIMarkers(void)
{
- sub_8107D68(4, 19, 0, 0);
- sub_8107D68(4, 20, 0, 12);
- sub_8107D68(4, 21, 0, 24);
- sub_8107D68(4, 22, 0, 36);
+ blit_move_info_icon(4, 19, 0, 0);
+ blit_move_info_icon(4, 20, 0, 12);
+ blit_move_info_icon(4, 21, 0, 24);
+ blit_move_info_icon(4, 22, 0, 36);
CopyWindowToVram(4, 2);
}
-static void sub_8133444(u16 itemId)
+static void TMCase_MoveCursor_UpdatePrintedTMInfo(u16 itemId)
{
u8 i;
u16 move;
@@ -1361,63 +1362,63 @@ static void sub_8133444(u16 itemId)
{
for (i = 0; i < 4; i++)
{
- sub_81332EC(5, 3, gUnknown_8416213, 7, 12 * i, 0, 0, 0xFF, 3);
+ AddTextPrinterParameterized_ColorByIndex(5, 3, gText_ThreeHyphens, 7, 12 * i, 0, 0, 0xFF, 3);
}
CopyWindowToVram(5, 2);
}
else
{
move = ItemIdToBattleMoveId(itemId);
- sub_8107D68(5, gBattleMoves[move].type + 1, 0, 0);
+ blit_move_info_icon(5, gBattleMoves[move].type + 1, 0, 0);
if (gBattleMoves[move].power < 2)
- str = gUnknown_8416213;
+ str = gText_ThreeHyphens;
else
{
ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[move].power, STR_CONV_MODE_RIGHT_ALIGN, 3);
str = gStringVar1;
}
- sub_81332EC(5, 3, str, 7, 12, 0, 0, 0xFF, 3);
+ AddTextPrinterParameterized_ColorByIndex(5, 3, str, 7, 12, 0, 0, 0xFF, 3);
if (gBattleMoves[move].accuracy == 0)
- str = gUnknown_8416213;
+ str = gText_ThreeHyphens;
else
{
ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[move].accuracy, STR_CONV_MODE_RIGHT_ALIGN, 3);
str = gStringVar1;
}
- sub_81332EC(5, 3, str, 7, 24, 0, 0, 0xFF, 3);
+ AddTextPrinterParameterized_ColorByIndex(5, 3, str, 7, 24, 0, 0, 0xFF, 3);
ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[move].pp, STR_CONV_MODE_RIGHT_ALIGN, 3);
- sub_81332EC(5, 3, gStringVar1, 7, 36, 0, 0, 0xFF, 3);
+ AddTextPrinterParameterized_ColorByIndex(5, 3, gStringVar1, 7, 36, 0, 0, 0xFF, 3);
CopyWindowToVram(5, 2);
}
}
-static void sub_81335B0(u8 windowId, u8 x, u8 y)
+static void PlaceHMTileInWindow(u8 windowId, u8 x, u8 y)
{
BlitBitmapToWindow(windowId, gUnknown_8E99118, x, y, 16, 12);
}
-static void sub_81335E0(void)
+static void HandlePrintMoneyOnHand(void)
{
PrintMoneyAmountInMoneyBoxWithBorder(8, 0x78, 0xD, GetMoney(&gSaveBlock1Ptr->money));
}
-static void sub_8133604(u8 taskId, const TaskFunc *ptrs)
+static void HandleCreateYesNoMenu(u8 taskId, const struct YesNoFuncTable *ptrs)
{
- sub_80BF5D0(taskId, &gUnknown_84631E0, 2, 0, 2, 0x5B, 0x0E, ptrs);
+ CreateYesNoMenuWithCallbacks(taskId, &sYesNoWindowTemplate, 2, 0, 2, 0x5B, 0x0E, ptrs);
}
-static u8 sub_8133630(u8 * a0, u8 a1)
+static u8 AddTMContextMenu(u8 * a0, u8 a1)
{
if (*a0 == 0xFF)
{
- *a0 = AddWindow(&gUnknown_84631E8[a1]);
- sub_8133354(*a0);
+ *a0 = AddWindow(&sTMContextWindowTemplates[a1]);
+ TMCase_SetWindowBorder1(*a0);
schedule_bg_copy_tilemap_to_vram(0);
}
return *a0;
}
-static void sub_8133664(u8 * a0)
+static void RemoveTMContextMenu(u8 * a0)
{
sub_810F4D8(*a0, FALSE);
ClearWindowTilemap(*a0);
@@ -1426,26 +1427,26 @@ static void sub_8133664(u8 * a0)
*a0 = 0xFF;
}
-static u8 sub_813368C(u16 itemId)
+static u8 CreateTMSprite(u16 itemId)
{
- u8 spriteId = CreateSprite(&gUnknown_8463220, 0x29, 0x2E, 0);
+ u8 spriteId = CreateSprite(&sTMSpriteTemplate, 0x29, 0x2E, 0);
u8 r5;
if (itemId == ITEM_NONE)
{
- sub_8133790(&gSprites[spriteId], 0xFF);
+ UpdateTMSpritePosition(&gSprites[spriteId], 0xFF);
return spriteId;
}
else
{
r5 = itemId - 33;
- sub_8133714(&gSprites[spriteId], r5);
- sub_8133730(gBattleMoves[ItemIdToBattleMoveId(itemId)].type);
- sub_8133790(&gSprites[spriteId], r5);
+ SetTMSpriteAnim(&gSprites[spriteId], r5);
+ TintTMSpriteByType(gBattleMoves[ItemIdToBattleMoveId(itemId)].type);
+ UpdateTMSpritePosition(&gSprites[spriteId], r5);
return spriteId;
}
}
-static void sub_8133714(struct Sprite * sprite, u8 idx)
+static void SetTMSpriteAnim(struct Sprite * sprite, u8 idx)
{
if (idx >= 50)
StartSpriteAnim(sprite, 1);
@@ -1453,17 +1454,17 @@ static void sub_8133714(struct Sprite * sprite, u8 idx)
StartSpriteAnim(sprite, 0);
}
-static void sub_8133730(u8 type)
+static void TintTMSpriteByType(u8 type)
{
- u8 palIndex = IndexOfSpritePaletteTag(400) << 4;
- LoadPalette(gUnknown_203B12C + gUnknown_8463238[type], 0x100 | palIndex, 0x20);
- if (gUnknown_203B10C.unk_04 == 4)
+ u8 palIndex = IndexOfSpritePaletteTag(TM_CASE_TM_TAG) << 4;
+ LoadPalette(sTMSpritePaletteBuffer + sTMSpritePaletteOffsetByType[type], 0x100 | palIndex, 0x20);
+ if (sTMCaseStaticResources.tmCaseMenuType == 4)
{
BlendPalettes(1 << (0x10 + palIndex), 4, RGB_BLACK);
}
}
-static void sub_8133790(struct Sprite * sprite, u8 var)
+static void UpdateTMSpritePosition(struct Sprite * sprite, u8 var)
{
s32 x, y;
if (var == 0xFF)
@@ -1485,14 +1486,14 @@ static void sub_8133790(struct Sprite * sprite, u8 var)
sprite->pos1.y = y;
}
-static void sub_81337E4(u8 spriteId, u16 itemId)
+static void InitSelectedTMSpriteData(u8 spriteId, u16 itemId)
{
gSprites[spriteId].data[0] = itemId;
gSprites[spriteId].data[1] = 0;
- gSprites[spriteId].callback = sub_8133810;
+ gSprites[spriteId].callback = SpriteCB_MoveTMSpriteInCase;
}
-static void sub_8133810(struct Sprite * sprite)
+static void SpriteCB_MoveTMSpriteInCase(struct Sprite * sprite)
{
switch (sprite->data[1])
{
@@ -1502,10 +1503,10 @@ static void sub_8133810(struct Sprite * sprite)
if (sprite->data[0] != ITEM_NONE)
{
sprite->data[1]++;
- sub_8133730(gBattleMoves[ItemIdToBattleMoveId(sprite->data[0])].type);
+ TintTMSpriteByType(gBattleMoves[ItemIdToBattleMoveId(sprite->data[0])].type);
sprite->data[0] -= ITEM_TM01;
- sub_8133714(sprite, sprite->data[0]);
- sub_8133790(sprite, sprite->data[0]);
+ SetTMSpriteAnim(sprite, sprite->data[0]);
+ UpdateTMSpritePosition(sprite, sprite->data[0]);
}
else
sprite->callback = SpriteCallbackDummy;
@@ -1523,14 +1524,14 @@ static void sub_8133810(struct Sprite * sprite)
}
}
-static void sub_81338A8(void)
+static void LoadTMTypePalettes(void)
{
struct SpritePalette spritePalette;
- gUnknown_203B12C = Alloc(0x110 * sizeof(u16));
- LZDecompressWram(gUnknown_8E84F20, gUnknown_203B12C);
- LZDecompressWram(gUnknown_8E85068, gUnknown_203B12C + 0x100);
- spritePalette.data = gUnknown_203B12C + 0x110;
- spritePalette.tag = 400;
+ sTMSpritePaletteBuffer = Alloc(0x110 * sizeof(u16));
+ LZDecompressWram(gUnknown_8E84F20, sTMSpritePaletteBuffer);
+ LZDecompressWram(gUnknown_8E85068, sTMSpritePaletteBuffer + 0x100);
+ spritePalette.data = sTMSpritePaletteBuffer + 0x110;
+ spritePalette.tag = TM_CASE_TM_TAG;
LoadSpritePalette(&spritePalette);
}