function progress
This commit is contained in:
-130
@@ -5,136 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_809AB7C
|
|
||||||
sub_809AB7C: @ 809AB7C
|
|
||||||
push {r4,r5,lr}
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0809AB8C
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
b _0809ABCE
|
|
||||||
_0809AB88:
|
|
||||||
movs r0, 0x1
|
|
||||||
b _0809ABCE
|
|
||||||
_0809AB8C:
|
|
||||||
movs r4, 0
|
|
||||||
ldr r1, _0809ABD4 @ =gShopData
|
|
||||||
ldrh r0, [r1, 0x10]
|
|
||||||
cmp r4, r0
|
|
||||||
bcs _0809ABCC
|
|
||||||
ldr r0, [r1, 0x4]
|
|
||||||
ldrh r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0809ABCC
|
|
||||||
adds r5, r1, 0
|
|
||||||
_0809ABA0:
|
|
||||||
ldr r1, [r5, 0x4]
|
|
||||||
lsls r0, r4, 1
|
|
||||||
adds r0, r1
|
|
||||||
ldrh r0, [r0]
|
|
||||||
bl ItemId_GetPocket
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x4
|
|
||||||
beq _0809AB88
|
|
||||||
adds r0, r4, 0x1
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r4, r0, 16
|
|
||||||
ldrh r0, [r5, 0x10]
|
|
||||||
cmp r4, r0
|
|
||||||
bcs _0809ABCC
|
|
||||||
ldr r0, [r5, 0x4]
|
|
||||||
lsls r1, r4, 1
|
|
||||||
adds r1, r0
|
|
||||||
ldrh r0, [r1]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0809ABA0
|
|
||||||
_0809ABCC:
|
|
||||||
movs r0, 0
|
|
||||||
_0809ABCE:
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
.align 2, 0
|
|
||||||
_0809ABD4: .4byte gShopData
|
|
||||||
thumb_func_end sub_809AB7C
|
|
||||||
|
|
||||||
thumb_func_start sub_809ABD8
|
|
||||||
sub_809ABD8: @ 809ABD8
|
|
||||||
push {lr}
|
|
||||||
adds r1, r0, 0
|
|
||||||
ldr r2, _0809AC00 @ =gShopData
|
|
||||||
str r1, [r2, 0x4]
|
|
||||||
movs r0, 0
|
|
||||||
strh r0, [r2, 0x10]
|
|
||||||
ldrh r0, [r1]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0809ABFC
|
|
||||||
_0809ABEA:
|
|
||||||
ldrh r0, [r2, 0x10]
|
|
||||||
adds r0, 0x1
|
|
||||||
strh r0, [r2, 0x10]
|
|
||||||
ldrh r0, [r2, 0x10]
|
|
||||||
lsls r0, 1
|
|
||||||
adds r0, r1
|
|
||||||
ldrh r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0809ABEA
|
|
||||||
_0809ABFC:
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0809AC00: .4byte gShopData
|
|
||||||
thumb_func_end sub_809ABD8
|
|
||||||
|
|
||||||
thumb_func_start sub_809AC04
|
|
||||||
sub_809AC04: @ 809AC04
|
|
||||||
ldr r1, _0809AC0C @ =gShopData
|
|
||||||
str r0, [r1]
|
|
||||||
bx lr
|
|
||||||
.align 2, 0
|
|
||||||
_0809AC0C: .4byte gShopData
|
|
||||||
thumb_func_end sub_809AC04
|
|
||||||
|
|
||||||
thumb_func_start sub_809AC10
|
|
||||||
sub_809AC10: @ 809AC10
|
|
||||||
push {r4,r5,lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r4, r0, 24
|
|
||||||
adds r5, r4, 0
|
|
||||||
bl Menu_ProcessInputNoWrapAround
|
|
||||||
lsls r0, 24
|
|
||||||
asrs r1, r0, 24
|
|
||||||
movs r0, 0x2
|
|
||||||
negs r0, r0
|
|
||||||
cmp r1, r0
|
|
||||||
beq _0809AC52
|
|
||||||
adds r0, 0x1
|
|
||||||
cmp r1, r0
|
|
||||||
bne _0809AC3C
|
|
||||||
movs r0, 0x5
|
|
||||||
bl PlaySE
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl sub_809ACF8
|
|
||||||
b _0809AC52
|
|
||||||
_0809AC3C:
|
|
||||||
ldr r4, _0809AC58 @ =gUnknown_83DF09C
|
|
||||||
bl Menu_GetCursorPos
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 21
|
|
||||||
adds r4, 0x4
|
|
||||||
adds r0, r4
|
|
||||||
ldr r1, [r0]
|
|
||||||
adds r0, r5, 0
|
|
||||||
bl _call_via_r1
|
|
||||||
_0809AC52:
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0809AC58: .4byte gUnknown_83DF09C
|
|
||||||
thumb_func_end sub_809AC10
|
|
||||||
|
|
||||||
thumb_func_start sub_809AC5C
|
thumb_func_start sub_809AC5C
|
||||||
sub_809AC5C: @ 809AC5C
|
sub_809AC5C: @ 809AC5C
|
||||||
push {r4,lr}
|
push {r4,lr}
|
||||||
|
|||||||
+100
-21
@@ -4,6 +4,9 @@
|
|||||||
#include "window.h"
|
#include "window.h"
|
||||||
#include "field_specials.h"
|
#include "field_specials.h"
|
||||||
#include "task.h"
|
#include "task.h"
|
||||||
|
#include "item.h"
|
||||||
|
#include "main.h"
|
||||||
|
#include "sound.h"
|
||||||
|
|
||||||
// enums
|
// enums
|
||||||
// RAM symbols
|
// RAM symbols
|
||||||
@@ -30,15 +33,24 @@ EWRAM_DATA struct ShopData gShopData = {0};
|
|||||||
EWRAM_DATA u8 gUnknown_2039950 = 0;
|
EWRAM_DATA u8 gUnknown_2039950 = 0;
|
||||||
|
|
||||||
//Function Declarations
|
//Function Declarations
|
||||||
//static u8 sub_809AB7C(u8 a0);
|
static u8 sub_809AB7C(bool32 a0);
|
||||||
|
static void sub_809AC10(u8 taskId);
|
||||||
|
|
||||||
// external defines
|
// external defines
|
||||||
extern const struct WindowTemplate gUnknown_83DF0BC[]; //sShopMenuWindowTemplates
|
extern const struct WindowTemplate gUnknown_83DF0BC[]; //sShopMenuWindowTemplates
|
||||||
extern const struct MenuAction gUnknown_83DF09C[]; //sShopMenuActions_BuySellQuit
|
extern const struct MenuAction gUnknown_83DF09C[]; //sShopMenuActions_BuySellQuit
|
||||||
|
|
||||||
extern u8 sub_809AB7C(u8 a);
|
extern void sub_809ACF8(u8 taskId);
|
||||||
extern void sub_809AC10(u8 taskId);
|
|
||||||
|
//Data Definitions
|
||||||
|
/*
|
||||||
|
static const struct MenuAction sShopMenuActions_BuySellQuit[] =
|
||||||
|
{
|
||||||
|
{ gText_ShopBuy, {.void_u8=Task_HandleShopMenuBuy} },
|
||||||
|
{ gText_ShopSell, {.void_u8=Task_HandleShopMenuSell} },
|
||||||
|
{ gText_ShopQuit, {.void_u8=Task_HandleShopMenuQuit} }
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
// Functions
|
// Functions
|
||||||
@@ -60,32 +72,99 @@ u8 sub_809AAB0(u8 a0)
|
|||||||
return CreateTask(sub_809AC10, 8);
|
return CreateTask(sub_809AC10, 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static u8 sub_809AB7C(u32 a0)
|
||||||
|
{
|
||||||
|
u16 retVal, i;
|
||||||
|
if (a0)
|
||||||
|
return (u8)a0;
|
||||||
|
goto MAIN;
|
||||||
|
RETURN_1:
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
MAIN:
|
||||||
|
i = 0;
|
||||||
|
if (i >= gShopData.itemCount)
|
||||||
|
goto RETURN_0;
|
||||||
|
else if (gShopData.itemList[0] == 0)
|
||||||
|
goto RETURN_0;
|
||||||
|
|
||||||
|
while (gShopData.itemList[i] != 0)
|
||||||
|
{
|
||||||
|
if (ItemId_GetPocket(gShopData.itemList[i]) == POCKET_TM_CASE)
|
||||||
|
goto RETURN_1;
|
||||||
|
++i;
|
||||||
|
if (i >= gShopData.itemCount)
|
||||||
|
goto RETURN_0;
|
||||||
|
else if (gShopData.itemList[i] == 0)
|
||||||
|
goto RETURN_0;
|
||||||
|
}
|
||||||
|
RETURN_0:
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
static u8 sub_809AB7C(u8 a0)
|
void (const u16 *list) //SetShopItemsForSale
|
||||||
{
|
{
|
||||||
u16 pocket;
|
u16 i;
|
||||||
|
gShopData.itemList = list;
|
||||||
|
gShopData.itemCount = 0;
|
||||||
|
if (list[0] == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
if (a0 != 0)
|
i = 0;
|
||||||
return a0;
|
while (list[i] != 0)
|
||||||
else if (a0 >= gShopData.itemCount)
|
|
||||||
return FALSE;
|
|
||||||
else if (gShopData.itemList[0] == 0)
|
|
||||||
return FALSE;
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
while (ItemId_GetPocket(gShopData.itemCount[i]) != 0)
|
gShopData.itemCount++;
|
||||||
{
|
if (list[i] == 0)
|
||||||
if (ItemId_GetPocket(gShopData.itemCount[i] == POCKET_TM_CASE)
|
return;
|
||||||
return 1;
|
i++;
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
//#ifdef NONMATCHING
|
||||||
|
// WHAT THE FUCK IS UP WITH THIS FUNCTION
|
||||||
|
void sub_809ABD8(const u16 *items)
|
||||||
|
{
|
||||||
|
//const u16* mart = items;
|
||||||
|
u16 item;
|
||||||
|
gShopData.itemList = items;
|
||||||
|
gShopData.itemCount = 0;
|
||||||
|
|
||||||
|
//item = items[0];
|
||||||
|
if (items[0] == 0)
|
||||||
|
return;
|
||||||
|
do {
|
||||||
|
gShopData.itemCount++;
|
||||||
|
item = items[gShopData.itemCount];
|
||||||
|
} while (item);
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
#else
|
||||||
|
NAKED
|
||||||
|
void sub_809ABD8(const u16 *items)
|
||||||
|
asm_unified("\t
|
||||||
|
*/
|
||||||
|
|
||||||
|
//SetShopMenuCallback
|
||||||
|
void sub_809AC04(MainCallback callback)
|
||||||
|
{
|
||||||
|
gShopData.callback = callback;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Task_ShopMenu
|
||||||
|
static void sub_809AC10(u8 taskId)
|
||||||
|
{
|
||||||
|
s8 a0 = Menu_ProcessInputNoWrapAround();
|
||||||
|
if (a0 == -2)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (a0 == -1)
|
||||||
|
{
|
||||||
|
PlaySE(5);
|
||||||
|
sub_809ACF8(taskId);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//gUnknown_83DF09C.func.u8_void(Menu_GetCursorPos());
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user