berry pouch through sub_813DD74

This commit is contained in:
PikalaxALT
2019-09-29 12:48:11 -04:00
parent 01d42d07f8
commit 3766ddcfda
6 changed files with 145 additions and 406 deletions
-383
View File
@@ -5,389 +5,6 @@
.text
thumb_func_start sub_813DA68
sub_813DA68: @ 813DA68
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r6, r0, 24
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
ldr r1, _0813DAD8 @ =gTasks+0x8
adds r7, r0, r1
ldr r0, _0813DADC @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r0, 24
mov r8, r0
cmp r0, 0
beq _0813DA90
b _0813DB9E
_0813DA90:
bl sub_80BF72C
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0813DA9E
b _0813DB9E
_0813DA9E:
ldrb r0, [r7]
bl ListMenu_ProcessInput
adds r5, r0, 0
ldrb r0, [r7]
ldr r4, _0813DAE0 @ =gUnknown_203F370 + 10
subs r2, r4, 0x2
adds r1, r4, 0
bl ListMenuGetScrollAndRow
ldr r0, _0813DAE4 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _0813DAEC
adds r0, r4, 0
subs r0, 0xA
ldrb r0, [r0, 0x5]
cmp r0, 0x1
bne _0813DAEC
movs r0, 0x5
bl PlaySE
ldr r0, _0813DAE8 @ =gSpecialVar_ItemId
mov r1, r8
strh r1, [r0]
b _0813DB48
.align 2, 0
_0813DAD8: .4byte gTasks+0x8
_0813DADC: .4byte gPaletteFade
_0813DAE0: .4byte gUnknown_203F370 + 10
_0813DAE4: .4byte gMain
_0813DAE8: .4byte gSpecialVar_ItemId
_0813DAEC:
movs r0, 0x2
negs r0, r0
cmp r5, r0
beq _0813DAFC
adds r0, 0x1
cmp r5, r0
bne _0813DB10
b _0813DB9E
_0813DAFC:
ldr r0, _0813DB0C @ =gUnknown_203F370
ldrb r0, [r0, 0x4]
cmp r0, 0x5
beq _0813DB9E
movs r0, 0x5
bl PlaySE
b _0813DB42
.align 2, 0
_0813DB0C: .4byte gUnknown_203F370
_0813DB10:
movs r0, 0x5
bl PlaySE
ldr r3, _0813DB30 @ =gUnknown_203F370
mov r8, r3
ldrb r0, [r3, 0x4]
cmp r0, 0x5
bne _0813DB38
lsls r1, r5, 16
lsrs r1, 16
movs r0, 0x5
bl BagGetItemIdByPocketPosition
ldr r1, _0813DB34 @ =gSpecialVar_ItemId
b _0813DB46
.align 2, 0
_0813DB30: .4byte gUnknown_203F370
_0813DB34: .4byte gSpecialVar_ItemId
_0813DB38:
ldr r0, _0813DB50 @ =gUnknown_203F36C
ldr r0, [r0]
ldrb r0, [r0, 0x7]
cmp r5, r0
bne _0813DB58
_0813DB42:
ldr r1, _0813DB54 @ =gSpecialVar_ItemId
movs r0, 0
_0813DB46:
strh r0, [r1]
_0813DB48:
adds r0, r6, 0
bl BerryPouch_StartFadeToExitCallback
b _0813DB9E
.align 2, 0
_0813DB50: .4byte gUnknown_203F36C
_0813DB54: .4byte gSpecialVar_ItemId
_0813DB58:
bl sub_813D684
movs r0, 0x1
bl sub_813D594
ldrb r0, [r7]
movs r1, 0x2
bl sub_813D4B0
strh r5, [r7, 0x2]
lsls r4, r5, 16
lsrs r4, 16
movs r0, 0x5
adds r1, r4, 0
bl BagGetQuantityByPocketPosition
strh r0, [r7, 0x4]
movs r0, 0x5
adds r1, r4, 0
bl BagGetItemIdByPocketPosition
ldr r1, _0813DBA8 @ =gSpecialVar_ItemId
strh r0, [r1]
ldr r0, _0813DBAC @ =gTasks
lsls r1, r6, 2
adds r1, r6
lsls r1, 3
adds r1, r0
ldr r2, _0813DBB0 @ =gUnknown_8464358
mov r3, r8
ldrb r0, [r3, 0x4]
lsls r0, 2
adds r0, r2
ldr r0, [r0]
str r0, [r1]
_0813DB9E:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0813DBA8: .4byte gSpecialVar_ItemId
_0813DBAC: .4byte gTasks
_0813DBB0: .4byte gUnknown_8464358
thumb_func_end sub_813DA68
thumb_func_start sub_813DBB4
sub_813DBB4: @ 813DBB4
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0
bl sub_813D594
bl sub_813D5BC
ldr r1, _0813DBDC @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, _0813DBE0 @ =sub_813DA68
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0813DBDC: .4byte gTasks
_0813DBE0: .4byte sub_813DA68
thumb_func_end sub_813DBB4
thumb_func_start sub_813DBE4
sub_813DBE4: @ 813DBE4
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x14
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, _0813DC10 @ =gTasks+0x8
adds r7, r1, r0
ldr r0, _0813DC14 @ =gUnknown_203F370
ldrb r0, [r0, 0x4]
cmp r0, 0x4
bne _0813DC24
ldr r1, _0813DC18 @ =gUnknown_203F384
ldr r0, _0813DC1C @ =gUnknown_84643B0
str r0, [r1]
ldr r1, _0813DC20 @ =gUnknown_203F388
movs r0, 0x3
b _0813DC86
.align 2, 0
_0813DC10: .4byte gTasks+0x8
_0813DC14: .4byte gUnknown_203F370
_0813DC18: .4byte gUnknown_203F384
_0813DC1C: .4byte gUnknown_84643B0
_0813DC20: .4byte gUnknown_203F388
_0813DC24:
bl MenuHelpers_LinkSomething
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0813DC38
bl InUnionRoom
cmp r0, 0x1
bne _0813DC7C
_0813DC38:
ldr r0, _0813DC54 @ =gSpecialVar_ItemId
ldrh r0, [r0]
bl sub_80BF6A8
lsls r0, 24
cmp r0, 0
bne _0813DC64
ldr r1, _0813DC58 @ =gUnknown_203F384
ldr r0, _0813DC5C @ =gUnknown_84643AC
str r0, [r1]
ldr r1, _0813DC60 @ =gUnknown_203F388
movs r0, 0x1
b _0813DC86
.align 2, 0
_0813DC54: .4byte gSpecialVar_ItemId
_0813DC58: .4byte gUnknown_203F384
_0813DC5C: .4byte gUnknown_84643AC
_0813DC60: .4byte gUnknown_203F388
_0813DC64:
ldr r1, _0813DC70 @ =gUnknown_203F384
ldr r0, _0813DC74 @ =gUnknown_84643A8
str r0, [r1]
ldr r1, _0813DC78 @ =gUnknown_203F388
movs r0, 0x2
b _0813DC86
.align 2, 0
_0813DC70: .4byte gUnknown_203F384
_0813DC74: .4byte gUnknown_84643A8
_0813DC78: .4byte gUnknown_203F388
_0813DC7C:
ldr r1, _0813DD58 @ =gUnknown_203F384
ldr r0, _0813DD5C @ =gUnknown_84643A4
str r0, [r1]
ldr r1, _0813DD60 @ =gUnknown_203F388
movs r0, 0x4
_0813DC86:
strb r0, [r1]
mov r8, r1
mov r1, r8
ldrb r0, [r1]
adds r0, 0x9
lsls r0, 24
lsrs r0, 24
bl sub_813EA08
adds r6, r0, 0
lsls r6, 24
lsrs r6, 24
movs r0, 0x2
movs r1, 0
bl GetMenuCursorDimensionByFont
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
movs r0, 0x2
movs r1, 0x2
bl GetFontAttribute
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x2
movs r1, 0x1
bl GetFontAttribute
adds r0, 0x2
lsls r0, 24
lsrs r0, 24
str r4, [sp]
str r0, [sp, 0x4]
mov r1, r8
ldrb r0, [r1]
str r0, [sp, 0x8]
ldr r0, _0813DD64 @ =gUnknown_846437C
str r0, [sp, 0xC]
ldr r0, _0813DD58 @ =gUnknown_203F384
ldr r0, [r0]
str r0, [sp, 0x10]
adds r0, r6, 0
movs r1, 0x2
adds r2, r5, 0
movs r3, 0x2
bl AddItemMenuActionTextPrinters
movs r0, 0x2
movs r1, 0x1
bl GetFontAttribute
adds r0, 0x2
lsls r0, 24
lsrs r0, 24
str r0, [sp]
mov r1, r8
ldrb r0, [r1]
str r0, [sp, 0x4]
movs r0, 0
mov r8, r0
str r0, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x2
movs r2, 0
movs r3, 0x2
bl Menu_InitCursor
movs r0, 0x6
bl sub_813EA08
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r1, 0x2
ldrsh r0, [r7, r1]
ldr r1, _0813DD68 @ =gStringVar1
bl sub_813D39C
ldr r5, _0813DD6C @ =gStringVar4
ldr r1, _0813DD70 @ =gOtherText_StrVar1
adds r0, r5, 0
bl StringExpandPlaceholders
movs r0, 0x2
str r0, [sp]
movs r1, 0x1
str r1, [sp, 0x4]
str r0, [sp, 0x8]
mov r0, r8
str r0, [sp, 0xC]
str r1, [sp, 0x10]
adds r0, r4, 0
movs r1, 0x2
adds r2, r5, 0
movs r3, 0
bl sub_813E9A0
add sp, 0x14
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0813DD58: .4byte gUnknown_203F384
_0813DD5C: .4byte gUnknown_84643A4
_0813DD60: .4byte gUnknown_203F388
_0813DD64: .4byte gUnknown_846437C
_0813DD68: .4byte gStringVar1
_0813DD6C: .4byte gStringVar4
_0813DD70: .4byte gOtherText_StrVar1
thumb_func_end sub_813DBE4
thumb_func_start sub_813DD74
sub_813DD74: @ 813DD74
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
bl sub_813DBE4
ldr r1, _0813DD98 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, _0813DD9C @ =sub_813DDA0
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0813DD98: .4byte gTasks
_0813DD9C: .4byte sub_813DDA0
thumb_func_end sub_813DD74
thumb_func_start sub_813DDA0
sub_813DDA0: @ 813DDA0
push {r4-r6,lr}
BIN
View File
Binary file not shown.
+9 -8
View File
@@ -3,9 +3,6 @@
.section .rodata
.align 2
gUnknown_8464358:: @ 8464358
.incbin "baserom.gba", 0x464358, 0x14
gUnknown_846436C:: @ 846436C
.incbin "baserom.gba", 0x46436C, 0x8
@@ -13,19 +10,23 @@ gUnknown_8464374:: @ 8464374
.incbin "baserom.gba", 0x464374, 0x8
gUnknown_846437C:: @ 846437C
.incbin "baserom.gba", 0x46437C, 0x28
.4byte gOtherText_Use, sub_813DE0C
.4byte gOtherText_Toss, sub_813DEBC
.4byte gOtherText_Give, sub_813E200
.4byte gOtherText_Exit, sub_813E320
.4byte gString_Dummy, NULL
gUnknown_84643A4:: @ 84643A4
.incbin "baserom.gba", 0x4643A4, 0x4
.byte 0, 2, 1, 3
gUnknown_84643A8:: @ 84643A8
.incbin "baserom.gba", 0x4643A8, 0x4
.byte 2, 3, 4, 4
gUnknown_84643AC:: @ 84643AC
.incbin "baserom.gba", 0x4643AC, 0x4
.byte 3, 4, 4, 4
gUnknown_84643B0:: @ 84643B0
.incbin "baserom.gba", 0x4643B0, 0x4
.byte 0, 1, 3, 4
gUnknown_84643B4:: @ 84643B4
.string " $"
+1 -1
View File
@@ -372,7 +372,7 @@ gUnknown_8416195::
gOtherText_Use::
.string "USE$"
gUnknown_84161A4::
gOtherText_Toss::
.string "TOSS$"
gUnknown_84161A9::
+135 -1
View File
@@ -18,6 +18,8 @@
#include "strings.h"
#include "string_util.h"
#include "sound.h"
#include "link.h"
#include "menu.h"
#include "menu_indicators.h"
#include "constants/items.h"
#include "constants/songs.h"
@@ -49,6 +51,10 @@ EWRAM_DATA struct BerryPouchStruct_203F36C *gUnknown_203F36C = NULL;
EWRAM_DATA struct BerryPouchStruct_203F370 gUnknown_203F370 = {};
EWRAM_DATA struct ListMenuItem *gUnknown_203F37C = NULL;
EWRAM_DATA u8 *gUnknown_203F380 = NULL;
EWRAM_DATA const u8 *gUnknown_203F384 = NULL;
EWRAM_DATA u8 gUnknown_203F388 = 0;
ALIGNED(4) EWRAM_DATA u8 gUnknown_203F38C[14] = {};
ALIGNED(4) EWRAM_DATA u8 gUnknown_203F39C = 0;
void sub_813CE30(void);
bool8 sub_813CE5C(void);
@@ -71,6 +77,15 @@ void sub_813D7CC(void);
void sub_813D844(u8 taskId);
void sub_813D8AC(void);
void sub_813DA68(u8 taskId);
void sub_813DD74(u8 taskId);
void sub_813DDA0(u8 taskId);
void sub_813DE0C(u8 taskId);
void sub_813DEBC(u8 taskId);
void sub_813E200(u8 taskId);
void sub_813E320(u8 taskId);
void sub_813E37C(u8 taskId);
void sub_813E3FC(u8 taskId);
void sub_813E428(u8 taskId);
void sub_813EC28(void);
void sub_813E910(void);
void sub_813E9A0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx);
@@ -106,8 +121,20 @@ static const struct BgTemplate gUnknown_846434C[] = {
}
};
extern const u8 gUnknown_84643B4[];
const TaskFunc gUnknown_8464358[] = {
sub_813DD74,
sub_813E37C,
sub_813E428,
sub_813E3FC,
sub_813DD74
};
extern const struct MenuAction gUnknown_846437C[];
extern const u8 gUnknown_84643A4[];
extern const u8 gUnknown_84643A8[];
extern const u8 gUnknown_84643AC[];
extern const u8 gUnknown_84643B0[];
extern const u8 gUnknown_84643B4[];
extern const struct CompressedSpriteSheet gUnknown_84644A8;
extern const struct CompressedSpritePalette gUnknown_84644B0;
@@ -631,3 +658,110 @@ void sub_813D9F8(u8 whichWindow, s16 quantity, u8 ndigits)
StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
sub_813E9A0(windowId, 0, gStringVar4, 4, 10, 1, 0, 0, 1);
}
void sub_813DA68(u8 taskId)
{
s16 * data = gTasks[taskId].data;
s32 menuInput;
if (!gPaletteFade.active && sub_80BF72C() != TRUE)
{
menuInput = ListMenu_ProcessInput(data[0]);
ListMenuGetScrollAndRow(data[0], &gUnknown_203F370.unk_0A, &gUnknown_203F370.unk_08);
if (JOY_NEW(SELECT_BUTTON) && gUnknown_203F370.unk_05 == 1)
{
PlaySE(SE_SELECT);
gSpecialVar_ItemId = 0;
BerryPouch_StartFadeToExitCallback(taskId);
}
else
{
switch (menuInput)
{
case -1:
return;
case -2:
if (gUnknown_203F370.unk_04 != 5)
{
PlaySE(SE_SELECT);
gSpecialVar_ItemId = 0;
BerryPouch_StartFadeToExitCallback(taskId);
}
break;
default:
PlaySE(SE_SELECT);
if (gUnknown_203F370.unk_04 == 5)
{
gSpecialVar_ItemId = BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, menuInput);
BerryPouch_StartFadeToExitCallback(taskId);
}
else if (menuInput == gUnknown_203F36C->unk_007)
{
gSpecialVar_ItemId = 0;
BerryPouch_StartFadeToExitCallback(taskId);
}
else
{
sub_813D684();
sub_813D594(1);
sub_813D4B0(data[0], 2);
data[1] = menuInput;
data[2] = BagGetQuantityByPocketPosition(POCKET_BERRY_POUCH, menuInput);
gSpecialVar_ItemId = BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, menuInput);
gTasks[taskId].func = gUnknown_8464358[gUnknown_203F370.unk_04];
}
break;
}
}
}
}
void sub_813DBB4(u8 taskId)
{
sub_813D594(0);
sub_813D5BC();
gTasks[taskId].func = sub_813DA68;
}
void sub_813DBE4(u8 taskId)
{
s16 * data = gTasks[taskId].data;
u8 windowId;
u8 windowId2;
if (gUnknown_203F370.unk_04 == 4)
{
gUnknown_203F384 = gUnknown_84643B0;
gUnknown_203F388 = 3;
}
else if (MenuHelpers_LinkSomething() == TRUE || InUnionRoom() == TRUE)
{
if (!sub_80BF6A8(gSpecialVar_ItemId))
{
gUnknown_203F384 = gUnknown_84643AC;
gUnknown_203F388 = 1;
}
else
{
gUnknown_203F384 = gUnknown_84643A8;
gUnknown_203F388 = 2;
}
}
else
{
gUnknown_203F384 = gUnknown_84643A4;
gUnknown_203F388 = 4;
}
windowId = sub_813EA08(gUnknown_203F388 + 9);
AddItemMenuActionTextPrinters(windowId, 2, GetMenuCursorDimensionByFont(2, 0), 2, GetFontAttribute(2, FONTATTR_LETTER_SPACING), GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT) + 2, gUnknown_203F388, gUnknown_846437C, gUnknown_203F384);
Menu_InitCursor(windowId, 2, 0, 2, GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT) + 2, gUnknown_203F388, 0);
windowId2 = sub_813EA08(6);
sub_813D39C(data[1], gStringVar1);
StringExpandPlaceholders(gStringVar4, gOtherText_StrVar1);
sub_813E9A0(windowId2, 2, gStringVar4, 0, 2, 1, 2, 0, 1);
}
void sub_813DD74(u8 taskId)
{
sub_813DBE4(taskId);
gTasks[taskId].func = sub_813DDA0;
}
-13
View File
@@ -1346,19 +1346,6 @@ gUnknown_203B170: @ 203B170
.include "src/dynamic_placeholder_text_util.o"
.align 2
.include "src/berry_pouch.o"
gUnknown_203F384: @ 203F384
.space 0x4
gUnknown_203F388: @ 203F388
.space 0x4
gUnknown_203F38C: @ 203F38C
.space 0x10
gUnknown_203F39C: @ 203F39C
.space 0x4
.align 2
.include "src/slot_machine.o"