tm_case through sub_8132120
This commit is contained in:
+154
-8
@@ -8,13 +8,17 @@
|
||||
#include "text.h"
|
||||
#include "menu.h"
|
||||
#include "menu_helpers.h"
|
||||
#include "new_menu_helpers.h"
|
||||
#include "list_menu.h"
|
||||
#include "item.h"
|
||||
#include "string_util.h"
|
||||
#include "party_menu.h"
|
||||
#include "data2.h"
|
||||
#include "scanline_effect.h"
|
||||
#include "sound.h"
|
||||
#include "menu_indicators.h"
|
||||
#include "constants/items.h"
|
||||
#include "constants/songs.h"
|
||||
|
||||
struct UnkStruct_203B10C
|
||||
{
|
||||
@@ -34,7 +38,8 @@ struct UnkStruct_203B118
|
||||
u8 unk_06;
|
||||
u8 unk_07;
|
||||
u8 unk_08;
|
||||
u8 filler_09[9];
|
||||
u16 unk_0a;
|
||||
u8 filler_0c[6];
|
||||
s16 unk_12;
|
||||
u8 filler_14[8];
|
||||
};
|
||||
@@ -65,6 +70,8 @@ void sub_8131C50(void);
|
||||
void sub_8131D48(u8 * dest, u16 itemId);
|
||||
void sub_8131E18(s32 itemIndex, bool8 onInit, struct ListMenu *list);
|
||||
void sub_8131E68(u8 windowId, s32 itemId, u8 y);
|
||||
void sub_8131F0C(s32 itemIndex);
|
||||
void sub_8131FB0(u8 a0, u8 a1);
|
||||
void sub_8132018(void);
|
||||
void sub_81320BC(void);
|
||||
void sub_8132120(void);
|
||||
@@ -72,9 +79,13 @@ void sub_8132170(void);
|
||||
void sub_81322D4(u8 taskId);
|
||||
void sub_8132F20(u8 taskId);
|
||||
void sub_8133244(void);
|
||||
void sub_81332EC(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx);
|
||||
void sub_81333C4(void);
|
||||
void sub_8133404(void);
|
||||
void sub_8133444(u16 itemId);
|
||||
void sub_81335B0(u8 windowId, u8 x, u8 y);
|
||||
u8 sub_813368C(u16 itemId);
|
||||
void sub_81337E4(u8 a0, u16 itemId);
|
||||
void sub_81338A8(void);
|
||||
|
||||
extern const struct BgTemplate gUnknown_8463134[3];
|
||||
@@ -84,12 +95,15 @@ extern const u32 gUnknown_8E84B70[];
|
||||
extern const u32 gUnknown_8E84CB0[];
|
||||
extern const u32 gUnknown_8E84D20[];
|
||||
extern const struct CompressedSpriteSheet gUnknown_8463218;
|
||||
|
||||
extern const u8 gUnknown_84166DB[];
|
||||
extern const u8 gUnknown_84166FF[];
|
||||
extern const u8 gUnknown_8463178[];
|
||||
extern const u8 gUnknown_8416226[];
|
||||
extern const u8 gUnknown_846317C[];
|
||||
|
||||
extern const u8 gUnknown_8416226[];
|
||||
extern const u8 gFameCheckerText_ListMenuCursor[];
|
||||
extern const u8 gUnknown_84162B9[];
|
||||
extern const u8 gUnknown_84166DB[];
|
||||
extern const u8 gUnknown_84166E1[];
|
||||
extern const u8 gUnknown_84166FF[];
|
||||
extern const u8 gUnknown_8416703[];
|
||||
|
||||
void sub_81317F8(u8 a0, void (* a1)(void), u8 a2)
|
||||
@@ -183,7 +197,7 @@ bool8 sub_81318C0(void)
|
||||
gMain.state++;
|
||||
break;
|
||||
case 9:
|
||||
sub_809A5E4(&gUnknown_20398A4);
|
||||
sub_809A5E4(&gBagPockets[POCKET_TM_CASE - 1]);
|
||||
gMain.state++;
|
||||
break;
|
||||
case 10:
|
||||
@@ -307,14 +321,14 @@ bool8 sub_8131B20(void)
|
||||
|
||||
void sub_8131C10(void)
|
||||
{
|
||||
struct BagPocket * pocket = &gUnknown_20398A4;
|
||||
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);
|
||||
}
|
||||
|
||||
void sub_8131C50(void)
|
||||
{
|
||||
struct BagPocket * pocket = &gUnknown_20398A4;
|
||||
struct BagPocket * pocket = &gBagPockets[POCKET_TM_CASE - 1];
|
||||
u16 i;
|
||||
|
||||
for (i = 0; i < gUnknown_203B118->unk_06; i++)
|
||||
@@ -366,3 +380,135 @@ void sub_8131D48(u8 * dest, u16 itemId)
|
||||
StringAppend(gStringVar4, gMoveNames[ItemIdToBattleMoveId(itemId)]);
|
||||
StringCopy(dest, gStringVar4);
|
||||
}
|
||||
|
||||
void sub_8131E18(s32 itemIndex, bool8 onInit, struct ListMenu *list)
|
||||
{
|
||||
u16 itemId;
|
||||
|
||||
if (itemIndex == -2)
|
||||
itemId = 0;
|
||||
else
|
||||
itemId = sub_809A798(POCKET_TM_CASE, itemIndex);
|
||||
|
||||
if (onInit != TRUE)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
sub_81337E4(gUnknown_203B118->unk_04, itemId);
|
||||
}
|
||||
sub_8131F0C(itemIndex);
|
||||
sub_8133444(itemId);
|
||||
}
|
||||
|
||||
void sub_8131E68(u8 windowId, s32 itemId, u8 y)
|
||||
{
|
||||
if (itemId != -2)
|
||||
{
|
||||
if (!itemid_is_unique(sub_809A798(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);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_81335B0(windowId, 8, y);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8131F0C(s32 itemIndex)
|
||||
{
|
||||
const u8 * str;
|
||||
if (itemIndex != -2)
|
||||
{
|
||||
str = ItemId_GetDescription(sub_809A798(POCKET_TM_CASE, itemIndex));
|
||||
}
|
||||
else
|
||||
{
|
||||
str = gUnknown_84166E1;
|
||||
}
|
||||
FillWindowPixelBuffer(1, 0);
|
||||
sub_81332EC(1, 2, str, 2, 3, 1, 0, 0, 0);
|
||||
}
|
||||
|
||||
void sub_8131F64(s32 a0)
|
||||
{
|
||||
sub_80F6B08(2, 0, 12, 30, 8, 2 * a0 + 1);
|
||||
schedule_bg_copy_tilemap_to_vram(2);
|
||||
}
|
||||
|
||||
void sub_8131F90(u8 a0, u8 a1)
|
||||
{
|
||||
sub_8131FB0(ListMenuGetYCoordForPrintingArrowCursor(a0), a1);
|
||||
}
|
||||
|
||||
void sub_8131FB0(u8 a0, u8 a1)
|
||||
{
|
||||
if (a1 == 0xFF)
|
||||
{
|
||||
FillWindowPixelRect(0, 0, 0, a0, GetFontAttribute(2, 0), GetFontAttribute(2, 1));
|
||||
CopyWindowToVram(0, 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_81332EC(0, 2, gFameCheckerText_ListMenuCursor, 0, a0, 0, 0, 0, a1);
|
||||
}
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
void sub_813208C(void)
|
||||
{
|
||||
if (gUnknown_203B118->unk_08 != 0xFF)
|
||||
{
|
||||
RemoveScrollIndicatorArrowPair(gUnknown_203B118->unk_08);
|
||||
gUnknown_203B118->unk_08 = 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_81320AC(void)
|
||||
{
|
||||
gUnknown_203B10C.unk_08 = 0;
|
||||
gUnknown_203B10C.unk_0a = 0;
|
||||
}
|
||||
|
||||
void sub_81320BC(void)
|
||||
{
|
||||
struct BagPocket * pocket = &gBagPockets[POCKET_TM_CASE - 1];
|
||||
u16 i;
|
||||
|
||||
sub_809A584(pocket->itemSlots, pocket->capacity);
|
||||
gUnknown_203B118->unk_06 = 0;
|
||||
for (i = 0; i < pocket->capacity; i++)
|
||||
{
|
||||
if (pocket->itemSlots[i].itemId == ITEM_NONE)
|
||||
break;
|
||||
gUnknown_203B118->unk_06++;
|
||||
}
|
||||
gUnknown_203B118->unk_05 = min(gUnknown_203B118->unk_06 + 1, 5);
|
||||
}
|
||||
|
||||
void sub_8132120(void)
|
||||
{
|
||||
if (gUnknown_203B10C.unk_0a != 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 (gUnknown_203B10C.unk_0a + gUnknown_203B10C.unk_08 >= gUnknown_203B118->unk_06 + 1)
|
||||
{
|
||||
if (gUnknown_203B118->unk_06 + 1 < 2)
|
||||
gUnknown_203B10C.unk_08 = 0;
|
||||
else
|
||||
gUnknown_203B10C.unk_08 = gUnknown_203B118->unk_06;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user