through sub_810A834

This commit is contained in:
PikalaxALT 2020-01-18 20:40:33 -05:00
parent 0ed743a582
commit c9cb5d931c
2 changed files with 106 additions and 357 deletions

View File

@ -5,363 +5,6 @@
.text
thumb_func_start sub_810A568
sub_810A568: @ 810A568
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
adds r7, r5, 0
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, _0810A58C @ =gTasks+0x8
adds r4, r0, r1
ldr r6, _0810A590 @ =gSpecialVar_ItemId
ldrh r1, [r6]
movs r0, 0xB6
lsls r0, 1
cmp r1, r0
bne _0810A598
ldr r0, _0810A594 @ =sub_810A654
b _0810A5A0
.align 2, 0
_0810A58C: .4byte gTasks+0x8
_0810A590: .4byte gSpecialVar_ItemId
_0810A594: .4byte sub_810A654
_0810A598:
ldr r0, _0810A5AC @ =0x0000016d
cmp r1, r0
bne _0810A5B4
ldr r0, _0810A5B0 @ =sub_810A668
_0810A5A0:
bl ItemMenu_SetExitCallback
adds r0, r5, 0
bl ItemMenu_StartFadeToExitCallback
b _0810A63E
.align 2, 0
_0810A5AC: .4byte 0x0000016d
_0810A5B0: .4byte sub_810A668
_0810A5B4:
ldrh r0, [r6]
bl itemid_get_market_price
lsls r0, 16
cmp r0, 0
bne _0810A5F8
ldrh r0, [r6]
ldr r1, _0810A5E8 @ =gStringVar1
bl CopyItemName
ldr r4, _0810A5EC @ =gStringVar4
ldr r1, _0810A5F0 @ =gText_OhNoICantBuyThat
adds r0, r4, 0
bl StringExpandPlaceholders
bl sub_80BF8E4
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
ldr r3, _0810A5F4 @ =sub_810A1F8
adds r0, r5, 0
adds r2, r4, 0
bl DisplayItemMessageInBag
b _0810A63E
.align 2, 0
_0810A5E8: .4byte gStringVar1
_0810A5EC: .4byte gStringVar4
_0810A5F0: .4byte gText_OhNoICantBuyThat
_0810A5F4: .4byte sub_810A1F8
_0810A5F8:
movs r0, 0x1
strh r0, [r4, 0x10]
movs r1, 0x4
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _0810A610
bl sub_810BB40
adds r0, r5, 0
bl sub_810A690
b _0810A63E
_0810A610:
cmp r0, 0x63
ble _0810A618
movs r0, 0x63
strh r0, [r4, 0x4]
_0810A618:
ldrh r0, [r6]
ldr r1, _0810A644 @ =gStringVar1
bl CopyItemName
ldr r4, _0810A648 @ =gStringVar4
ldr r1, _0810A64C @ =gText_HowManyWouldYouLikeToSell
adds r0, r4, 0
bl StringExpandPlaceholders
bl sub_80BF8E4
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
ldr r3, _0810A650 @ =sub_810A770
adds r0, r7, 0
adds r2, r4, 0
bl DisplayItemMessageInBag
_0810A63E:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0810A644: .4byte gStringVar1
_0810A648: .4byte gStringVar4
_0810A64C: .4byte gText_HowManyWouldYouLikeToSell
_0810A650: .4byte sub_810A770
thumb_func_end sub_810A568
thumb_func_start sub_810A654
sub_810A654: @ 810A654
push {lr}
ldr r1, _0810A664 @ =sub_810A67C
movs r0, 0x2
movs r2, 0
bl InitTMCase
pop {r0}
bx r0
.align 2, 0
_0810A664: .4byte sub_810A67C
thumb_func_end sub_810A654
thumb_func_start sub_810A668
sub_810A668: @ 810A668
push {lr}
ldr r1, _0810A678 @ =sub_810A67C
movs r0, 0x2
movs r2, 0
bl InitBerryPouch
pop {r0}
bx r0
.align 2, 0
_0810A678: .4byte sub_810A67C
thumb_func_end sub_810A668
thumb_func_start sub_810A67C
sub_810A67C: @ 810A67C
push {lr}
ldr r2, _0810A68C @ =CB2_ReturnToField
movs r0, 0x2
movs r1, 0x3
bl GoToBagMenu
pop {r0}
bx r0
.align 2, 0
_0810A68C: .4byte CB2_ReturnToField
thumb_func_end sub_810A67C
thumb_func_start sub_810A690
sub_810A690: @ 810A690
push {r4-r6,lr}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
lsls r4, r5, 2
adds r4, r5
lsls r4, 3
ldr r0, _0810A6F4 @ =gTasks+0x8
adds r4, r0
ldr r6, _0810A6F8 @ =gStringVar3
ldr r0, _0810A6FC @ =gUnknown_203ACFC
ldrb r0, [r0, 0x6]
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x2]
bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl itemid_get_market_price
lsls r0, 16
lsrs r0, 17
movs r2, 0x10
ldrsh r1, [r4, r2]
muls r1, r0
adds r0, r6, 0
movs r2, 0
movs r3, 0x6
bl ConvertIntToDecimalStringN
ldr r4, _0810A700 @ =gStringVar4
ldr r1, _0810A704 @ =gText_ICanPayThisMuch_WouldThatBeOkay
adds r0, r4, 0
bl StringExpandPlaceholders
bl sub_80BF8E4
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
ldr r3, _0810A708 @ =sub_810A70C
adds r0, r5, 0
adds r2, r4, 0
bl DisplayItemMessageInBag
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0810A6F4: .4byte gTasks+0x8
_0810A6F8: .4byte gStringVar3
_0810A6FC: .4byte gUnknown_203ACFC
_0810A700: .4byte gStringVar4
_0810A704: .4byte gText_ICanPayThisMuch_WouldThatBeOkay
_0810A708: .4byte sub_810A70C
thumb_func_end sub_810A690
thumb_func_start sub_810A70C
sub_810A70C: @ 810A70C
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r1, _0810A71C @ =gUnknown_8452F58
bl sub_810BB14
pop {r0}
bx r0
.align 2, 0
_0810A71C: .4byte gUnknown_8452F58
thumb_func_end sub_810A70C
thumb_func_start sub_810A720
sub_810A720: @ 810A720
push {r4,r5,lr}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
lsls r4, r5, 2
adds r4, r5
lsls r4, 3
ldr r0, _0810A76C @ =gTasks+0x8
adds r4, r0
movs r0, 0x2
bl sub_810BA3C
movs r0, 0x5
bl sub_810BA9C
movs r0, 0x2
bl PutWindowTilemap
movs r0, 0
bl PutWindowTilemap
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
bl ScheduleBgCopyTilemapToVram
ldrb r0, [r4]
movs r1, 0x1
bl bag_menu_print_cursor_
adds r0, r5, 0
bl sub_810910C
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810A76C: .4byte gTasks+0x8
thumb_func_end sub_810A720
thumb_func_start sub_810A770
sub_810A770: @ 810A770
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
sub sp, 0x14
lsls r0, 24
lsrs r0, 24
lsls r5, r0, 2
adds r5, r0
lsls r5, 3
ldr r0, _0810A81C @ =gTasks+0x8
mov r8, r0
adds r2, r5, 0
add r2, r8
mov r9, r2
movs r0, 0
movs r1, 0x1
bl sub_810B9DC
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, _0810A820 @ =gStringVar1
movs r1, 0x1
movs r2, 0x2
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r6, _0810A824 @ =gStringVar4
ldr r1, _0810A828 @ =gText_TimesStrVar1
adds r0, r6, 0
bl StringExpandPlaceholders
movs r0, 0xA
str r0, [sp]
movs r1, 0x1
str r1, [sp, 0x4]
movs r0, 0
str r0, [sp, 0x8]
movs r0, 0xFF
str r0, [sp, 0xC]
str r1, [sp, 0x10]
adds r0, r4, 0
movs r1, 0
adds r2, r6, 0
movs r3, 0x4
bl sub_810B8F0
ldr r0, _0810A82C @ =gUnknown_203ACFC
ldrb r0, [r0, 0x6]
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
mov r3, r9
ldrh r1, [r3, 0x2]
bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl itemid_get_market_price
lsls r0, 16
lsrs r0, 17
mov r2, r9
movs r3, 0x10
ldrsh r1, [r2, r3]
muls r0, r1
bl sub_810A834
bl sub_810BB40
bl sub_8108908
movs r0, 0x8
negs r0, r0
add r8, r0
add r5, r8
ldr r0, _0810A830 @ =sub_810A85C
str r0, [r5]
add sp, 0x14
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0810A81C: .4byte gTasks+0x8
_0810A820: .4byte gStringVar1
_0810A824: .4byte gStringVar4
_0810A828: .4byte gText_TimesStrVar1
_0810A82C: .4byte gUnknown_203ACFC
_0810A830: .4byte sub_810A85C
thumb_func_end sub_810A770
thumb_func_start sub_810A834
sub_810A834: @ 810A834
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
movs r0, 0
bl sub_810BAD8
lsls r0, 24
lsrs r0, 24
movs r1, 0
str r1, [sp]
movs r1, 0x38
movs r2, 0xA
adds r3, r4, 0
bl PrintMoneyAmount
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810A834
thumb_func_start sub_810A85C
sub_810A85C: @ 810A85C
push {r4-r6,lr}

View File

@ -15,6 +15,7 @@
#include "mail_data.h"
#include "menu.h"
#include "menu_indicators.h"
#include "money.h"
#include "new_menu_helpers.h"
#include "overworld.h"
#include "party_menu.h"
@ -113,7 +114,15 @@ void sub_810A52C(void);
void sub_810A540(void);
void sub_810A554(void);
void sub_810A568(u8 taskId);
void sub_810A654(void);
void sub_810A668(void);
void sub_810A67C(void);
void sub_810A690(u8 taskId);
void sub_810A70C(u8 taskId);
void sub_810A720(u8 taskId);
void sub_810A770(u8 taskId);
void sub_810A834(s32 price);
void sub_810A85C(u8 taskId);
void sub_810A940(u8 taskId);
void sub_810AB40(u8 taskId);
bool8 sub_810ADAC(void);
@ -1749,3 +1758,100 @@ void sub_810A554(void)
{
GoToBagMenu(4, 3, sub_808CE60);
}
void sub_810A568(u8 taskId)
{
s16 *data = gTasks[taskId].data;
if (gSpecialVar_ItemId == ITEM_TM_CASE)
{
ItemMenu_SetExitCallback(sub_810A654);
ItemMenu_StartFadeToExitCallback(taskId);
}
else if (gSpecialVar_ItemId == ITEM_BERRY_POUCH)
{
ItemMenu_SetExitCallback(sub_810A668);
ItemMenu_StartFadeToExitCallback(taskId);
}
else if (itemid_get_market_price(gSpecialVar_ItemId) == 0)
{
CopyItemName(gSpecialVar_ItemId, gStringVar1);
StringExpandPlaceholders(gStringVar4, gText_OhNoICantBuyThat);
DisplayItemMessageInBag(taskId, sub_80BF8E4(), gStringVar4, sub_810A1F8);
}
else
{
data[8] = 1;
if (data[2] == 1)
{
sub_810BB40();
sub_810A690(taskId);
}
else
{
if (data[2] > 99)
data[2] = 99;
CopyItemName(gSpecialVar_ItemId, gStringVar1);
StringExpandPlaceholders(gStringVar4, gText_HowManyWouldYouLikeToSell);
DisplayItemMessageInBag(taskId, sub_80BF8E4(), gStringVar4, sub_810A770);
}
}
}
void sub_810A654(void)
{
InitTMCase(2, sub_810A67C, FALSE);
}
void sub_810A668(void)
{
InitBerryPouch(2, sub_810A67C, FALSE);
}
void sub_810A67C(void)
{
GoToBagMenu(2, 3, CB2_ReturnToField);
}
void sub_810A690(u8 taskId)
{
s16 *data = gTasks[taskId].data;
ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6);
StringExpandPlaceholders(gStringVar4, gText_ICanPayThisMuch_WouldThatBeOkay);
DisplayItemMessageInBag(taskId, sub_80BF8E4(), gStringVar4, sub_810A70C);
}
void sub_810A70C(u8 taskId)
{
sub_810BB14(taskId, &gUnknown_8452F58);
}
void sub_810A720(u8 taskId)
{
s16 *data = gTasks[taskId].data;
sub_810BA3C(2);
sub_810BA9C(5);
PutWindowTilemap(2);
PutWindowTilemap(0);
PutWindowTilemap(1);
ScheduleBgCopyTilemapToVram(0);
bag_menu_print_cursor_(data[0], 1);
sub_810910C(taskId);
}
void sub_810A770(u8 taskId)
{
s16 *data = gTasks[taskId].data;
u8 r4 = sub_810B9DC(0, 1);
ConvertIntToDecimalStringN(gStringVar1, 1, STR_CONV_MODE_LEADING_ZEROS, 2);
StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
sub_810B8F0(r4, 0, gStringVar4, 4, 10, 1, 0, 0xFF, 1);
sub_810A834(itemid_get_market_price(BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, data[1])) / 2 * data[8]);
sub_810BB40();
sub_8108908();
gTasks[taskId].func = sub_810A85C;
}
void sub_810A834(s32 amount)
{
PrintMoneyAmount(sub_810BAD8(0), 56, 10, amount, 0);
}