summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/shop.c140
1 files changed, 14 insertions, 126 deletions
diff --git a/src/shop.c b/src/shop.c
index 858686743..6ec6d0467 100644
--- a/src/shop.c
+++ b/src/shop.c
@@ -5,7 +5,10 @@
#include "field_specials.h"
#include "task.h"
-
+// enums
+// RAM symbols
+// Function Declarations
+// Data Definitions
struct ShopData {
@@ -18,16 +21,16 @@ struct ShopData {
/*0x12*/ u16 field12;
/*0x14*/ u16 field14;
/*0x16*/ u16 martType:4; // 0x1 if tm list
- u16 unk16_1:5;
- u16 unk16_2:7;
+ u16 unk16_4:5;
+ u16 unk16_9:7;
//INCOMPLETE
};
EWRAM_DATA struct ShopData gShopData = {0};
EWRAM_DATA u8 gUnknown_2039950 = 0;
-//Functions
-static u8 sub_809AB7C(u8 a0);
+//Function Declarations
+//static u8 sub_809AB7C(u8 a0);
// external defines
@@ -38,34 +41,15 @@ extern u8 sub_809AB7C(u8 a);
extern void sub_809AC10(u8 taskId);
-
-
-
-
-#ifdef NONMATCHING
+// Functions
u8 sub_809AAB0(u8 a0)
{
- u32 v1, v2;
- u8* v3;
-
- gShopData.martType = sub_809AB7C(a0);
+ gShopData.martType = sub_809AB7C(a0) & 0xF;
gShopData.cursorPos = 0;
if (!(ContextNpcGetTextColor()))
- {
- v1 = (u16) gShopData.unk16_1;
- v1 = ~(0x1F0);
- //v1 = (s16) gShopData.unk16_1 & 0xFFFFFE0F;
- //v1 = gShopData.unk16_1 & (u32) 0xFFFFFE0F;
- //v1 &= 0xFE0F;
- v2 = 0x40;
- }
+ gShopData.unk16_4 = 4;
else
- {
- v1 = (u16) gShopData.unk16_1;
- v1 = ~(0x1F0);
- v2 = 0x50;
- }
- gShopData.martType = (u16) (v1 | v2);
+ gShopData.unk16_4 = 5;
gUnknown_2039950 = AddWindow(gUnknown_83DF0BC); //sShop
SetStdWindowBorderStyle(gUnknown_2039950, 0);
@@ -75,101 +59,8 @@ u8 sub_809AAB0(u8 a0)
CopyWindowToVram(gUnknown_2039950, 1);
return CreateTask(sub_809AC10, 8);
}
-#else
-NAKED
-u8 sub_809AAB0(u8 a0)
-{
- asm_unified("\tpush {r4-r6,lr}\n"
- "\tsub sp, 0xC\n"
- "\tlsls r0, 24\n"
- "\tlsrs r0, 24\n"
- "\tbl sub_809AB7C\n"
- "\tldr r4, _0809AAE8 @ =gUnknown_2039934\n"
- "\tmovs r1, 0xF\n"
- "\tands r1, r0\n"
- "\tldrb r2, [r4, 0x16]\n"
- "\tmovs r0, 0x10\n"
- "\tnegs r0, r0\n"
- "\tands r0, r2\n"
- "\torrs r0, r1\n"
- "\tstrb r0, [r4, 0x16]\n"
- "\tmovs r0, 0\n"
- "\tstrh r0, [r4, 0xC]\n"
- "\tbl ContextNpcGetTextColor\n"
- "\tlsls r0, 24\n"
- "\tcmp r0, 0\n"
- "\tbne _0809AAF0\n"
- "\tldrh r0, [r4, 0x16]\n"
- "\tldr r1, _0809AAEC @ =0xfffffe0f\n"
- "\tands r1, r0\n"
- "\tmovs r0, 0x40\n"
- "\tb _0809AAF8\n"
- "\t.align 2, 0\n"
- "_0809AAE8: .4byte gUnknown_2039934\n"
- "_0809AAEC: .4byte 0xfffffe0f\n"
- "_0809AAF0:\n"
- "\tldrh r0, [r4, 0x16]\n"
- "\tldr r1, _0809AB68 @ =0xfffffe0f\n"
- "\tands r1, r0\n"
- "\tmovs r0, 0x50\n"
- "_0809AAF8:\n"
- "\torrs r1, r0\n"
- "\tstrh r1, [r4, 0x16]\n"
- "\tldr r4, _0809AB6C @ =gUnknown_2039950\n"
- "\tldr r0, _0809AB70 @ =gUnknown_83DF0BC\n"
- "\tbl AddWindow\n"
- "\tstrb r0, [r4]\n"
- "\tldrb r0, [r4]\n"
- "\tmovs r1, 0\n"
- "\tbl SetStdWindowBorderStyle\n"
- "\tmovs r0, 0x2\n"
- "\tmovs r1, 0\n"
- "\tbl GetMenuCursorDimensionByFont\n"
- "\tadds r2, r0, 0\n"
- "\tlsls r2, 24\n"
- "\tlsrs r2, 24\n"
- "\tldrb r0, [r4]\n"
- "\tmovs r6, 0x10\n"
- "\tstr r6, [sp]\n"
- "\tmovs r5, 0x3\n"
- "\tstr r5, [sp, 0x4]\n"
- "\tldr r1, _0809AB74 @ =gUnknown_83DF09C\n"
- "\tstr r1, [sp, 0x8]\n"
- "\tmovs r1, 0x2\n"
- "\tmovs r3, 0x2\n"
- "\tbl PrintTextArray\n"
- "\tldrb r0, [r4]\n"
- "\tstr r6, [sp]\n"
- "\tstr r5, [sp, 0x4]\n"
- "\tmovs r1, 0\n"
- "\tstr r1, [sp, 0x8]\n"
- "\tmovs r1, 0x2\n"
- "\tmovs r2, 0\n"
- "\tmovs r3, 0x2\n"
- "\tbl Menu_InitCursor\n"
- "\tldrb r0, [r4]\n"
- "\tbl PutWindowTilemap\n"
- "\tldrb r0, [r4]\n"
- "\tmovs r1, 0x1\n"
- "\tbl CopyWindowToVram\n"
- "\tldr r0, _0809AB78 @ =sub_809AC10\n"
- "\tmovs r1, 0x8\n"
- "\tbl CreateTask\n"
- "\tlsls r0, 24\n"
- "\tlsrs r0, 24\n"
- "\tadd sp, 0xC\n"
- "\tpop {r4-r6}\n"
- "\tpop {r1}\n"
- "\tbx r1\n"
- "\t.align 2, 0\n"
- "_0809AB68: .4byte 0xfffffe0f\n"
- "_0809AB6C: .4byte gUnknown_2039950\n"
- "_0809AB70: .4byte gUnknown_83DF0BC\n"
- "_0809AB74: .4byte gUnknown_83DF09C\n"
- "_0809AB78: .4byte sub_809AC10\n");
-}
-#endif
+/*
static u8 sub_809AB7C(u8 a0)
{
u16 pocket;
@@ -189,11 +80,8 @@ static u8 sub_809AB7C(u8 a0)
}
}
-
-
-
}
-
+*/