mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-20 11:58:04 -05:00
through sub_810A834
This commit is contained in:
parent
0ed743a582
commit
c9cb5d931c
357
asm/item_menu.s
357
asm/item_menu.s
|
|
@ -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}
|
||||
|
|
|
|||
106
src/item_menu.c
106
src/item_menu.c
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user