diff options
author | Evan <eroelke@gmail.com> | 2019-11-28 11:04:49 -0500 |
---|---|---|
committer | Evan <eroelke@gmail.com> | 2019-11-28 11:04:49 -0500 |
commit | d81a67ea2d4486827e0cb2c066a8d7ae4682ec27 (patch) | |
tree | 300621ead4c322bd8639d7289a859e781af9b2c4 /src | |
parent | f4b6a8195a0b5145b58afa81e87a457bda140c11 (diff) |
fix nonmatchings
Diffstat (limited to 'src')
-rw-r--r-- | src/sea_cottage_special_anim.c | 229 | ||||
-rw-r--r-- | src/shop.c | 272 |
2 files changed, 96 insertions, 405 deletions
diff --git a/src/sea_cottage_special_anim.c b/src/sea_cottage_special_anim.c index bd69a120a..18a8da234 100644 --- a/src/sea_cottage_special_anim.c +++ b/src/sea_cottage_special_anim.c @@ -7,14 +7,9 @@ #include "field_map_obj.h" #include "field_camera.h" -#define t0 data[0] -#define tX data[4] -#define tY data[5] -#define tListTaskId data[7] - static EWRAM_DATA u8 gUnknown_2039984 = 0; -static void sub_809C1D8(u8 taskId, const u16* a1, u16 a2); +static void sub_809C1D8(u8 taskId, const s16 *a1, u16 a2); static void sub_809C334(u8 taskId); static void sub_809C500(u8 taskId); static void sub_809C640(u8 taskId); @@ -28,17 +23,14 @@ static const u16 gUnknown_83DF0F2[] = {0x02e4, 0x0317, 0x0315}; static const u16 gUnknown_83DF0F8[] = {0x02eb, 0x031e, 0x031c}; // Functions -#ifdef NONMATCHING -// Couldn't get the registers to match. Hard to know where to fix since I'm unsure what the variables are for. -static void sub_809C1D8(u8 taskId, const u16* a1, u16 a2) +static void sub_809C1D8(u8 taskId, const s16 *a1, u16 a2) { - s16 v1, v2, v3; + s16 r5, r3, r4; s16 i, j; - const s16* v4; - v1 = gTasks[taskId].data[4] - 1; - v2 = gTasks[taskId].data[5] - 1; - v3 = gTasks[taskId].data[1]; + r5 = gTasks[taskId].data[4] - 1; + r3 = gTasks[taskId].data[5] - 1; + r4 = gTasks[taskId].data[1]; if (gTasks[taskId].data[2] == 0) { @@ -46,13 +38,14 @@ static void sub_809C1D8(u8 taskId, const u16* a1, u16 a2) { for (j = 0; j < 3; j++) { - v4 = &a1[v3]; - if (MapGridGetMetatileIdAt(v1 + j, v2 + i) == v4[0]) + s32 id = MapGridGetMetatileIdAt(r5 + j, r3 + i); + + if (a1[r4] == (s16)id) { - if (v3 != 2) - MapGridSetMetatileIdAt(v1 + j, v2 + i, a2 | v4[1]); + if (r4 != 2) + MapGridSetMetatileIdAt(r5 + j, r3 + i, a2 | a1[r4 + 1]); else - MapGridSetMetatileIdAt(v1 + j, v2 + i, a2 | v4[0]); + MapGridSetMetatileIdAt(r5 + j, r3 + i, a2 | a1[0]); } } } @@ -63,201 +56,19 @@ static void sub_809C1D8(u8 taskId, const u16* a1, u16 a2) { for (j = 0; j < 3; j++) { - if (a1[2 - v3] == MapGridGetMetatileIdAt(v1 + j, v2 + i)) + s32 id = MapGridGetMetatileIdAt(r5 + j, r3 + i); + + if (a1[2 - r4] == (s16)id) { - if (v3 != 2) - MapGridSetMetatileIdAt(v1 + j, v2 + i, a2 | a1[1 - v3]); + if (r4 != 2) + MapGridSetMetatileIdAt(r5 + j, r3 + i, a2 | a1[1 - r4]); else - MapGridSetMetatileIdAt(v1 + j, v2 + i, a2 | a1[2]); + MapGridSetMetatileIdAt(r5 + j, r3 + i, a2 | a1[2]); } } } } } -#else -NAKED -void sub_809C1D8(u8 taskId, const u16* a1, u16 a2) -{ - asm_unified("\tpush {r4-r7,lr}\n" - "\tmov r7, r10\n" - "\tmov r6, r9\n" - "\tmov r5, r8\n" - "\tpush {r5-r7}\n" - "\tsub sp, 0x10\n" - "\tmov r9, r1\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tlsls r2, 16\n" - "\tlsrs r2, 16\n" - "\tmov r10, r2\n" - "\tldr r2, _0809C26C @ =gTasks\n" - "\tlsls r1, r0, 2\n" - "\tadds r1, r0\n" - "\tlsls r1, 3\n" - "\tadds r1, r2\n" - "\tldrh r0, [r1, 0x10]\n" - "\tsubs r0, 0x1\n" - "\tlsls r0, 16\n" - "\tlsrs r5, r0, 16\n" - "\tldrh r0, [r1, 0x12]\n" - "\tsubs r0, 0x1\n" - "\tlsls r0, 16\n" - "\tlsrs r3, r0, 16\n" - "\tldrh r4, [r1, 0xA]\n" - "\tmovs r2, 0xC\n" - "\tldrsh r0, [r1, r2]\n" - "\tcmp r0, 0\n" - "\tbne _0809C29C\n" - "\tmovs r2, 0\n" - "\tlsls r5, 16\n" - "\tstr r5, [sp, 0xC]\n" - "\tlsls r0, r3, 16\n" - "\tlsls r1, r4, 16\n" - "\tasrs r0, 16\n" - "\tstr r0, [sp]\n" - "\tasrs r1, 16\n" - "\tstr r1, [sp, 0x4]\n" - "\tlsls r0, r1, 1\n" - "\tmov r1, r9\n" - "\tadds r7, r0, r1\n" - "_0809C22C:\n" - "\tmovs r4, 0\n" - "\tlsls r2, 16\n" - "\tmov r8, r2\n" - "\tasrs r0, r2, 16\n" - "\tldr r2, [sp]\n" - "\tadds r6, r2, r0\n" - "_0809C238:\n" - "\tldr r0, [sp, 0xC]\n" - "\tasrs r1, r0, 16\n" - "\tlsls r4, 16\n" - "\tasrs r0, r4, 16\n" - "\tadds r5, r1, r0\n" - "\tadds r0, r5, 0\n" - "\tadds r1, r6, 0\n" - "\tbl MapGridGetMetatileIdAt\n" - "\tmovs r2, 0\n" - "\tldrsh r1, [r7, r2]\n" - "\tlsls r0, 16\n" - "\tasrs r0, 16\n" - "\tcmp r1, r0\n" - "\tbne _0809C280\n" - "\tldr r0, [sp, 0x4]\n" - "\tcmp r0, 0x2\n" - "\tbeq _0809C270\n" - "\tldrh r0, [r7, 0x2]\n" - "\tmov r2, r10\n" - "\torrs r2, r0\n" - "\tadds r0, r5, 0\n" - "\tadds r1, r6, 0\n" - "\tbl MapGridSetMetatileIdAt\n" - "\tb _0809C280\n" - "\t.align 2, 0\n" - "_0809C26C: .4byte gTasks\n" - "_0809C270:\n" - "\tmov r1, r9\n" - "\tldrh r0, [r1]\n" - "\tmov r2, r10\n" - "\torrs r2, r0\n" - "\tadds r0, r5, 0\n" - "\tadds r1, r6, 0\n" - "\tbl MapGridSetMetatileIdAt\n" - "_0809C280:\n" - "\tmovs r2, 0x80\n" - "\tlsls r2, 9\n" - "\tadds r0, r4, r2\n" - "\tlsrs r4, r0, 16\n" - "\tasrs r0, 16\n" - "\tcmp r0, 0x2\n" - "\tble _0809C238\n" - "\tadds r0, r2, 0\n" - "\tadd r0, r8\n" - "\tlsrs r2, r0, 16\n" - "\tasrs r0, 16\n" - "\tcmp r0, 0x2\n" - "\tble _0809C22C\n" - "\tb _0809C324\n" - "_0809C29C:\n" - "\tmovs r2, 0\n" - "\tlsls r5, 16\n" - "\tstr r5, [sp, 0xC]\n" - "\tlsls r0, r3, 16\n" - "\tlsls r1, r4, 16\n" - "\tasrs r0, 16\n" - "\tstr r0, [sp, 0x8]\n" - "\tasrs r7, r1, 16\n" - "_0809C2AC:\n" - "\tmovs r4, 0\n" - "\tlsls r2, 16\n" - "\tmov r8, r2\n" - "\tasrs r0, r2, 16\n" - "\tldr r1, [sp, 0x8]\n" - "\tadds r6, r1, r0\n" - "_0809C2B8:\n" - "\tldr r2, [sp, 0xC]\n" - "\tasrs r1, r2, 16\n" - "\tlsls r4, 16\n" - "\tasrs r0, r4, 16\n" - "\tadds r5, r1, r0\n" - "\tadds r0, r5, 0\n" - "\tadds r1, r6, 0\n" - "\tbl MapGridGetMetatileIdAt\n" - "\tmovs r1, 0x2\n" - "\tsubs r1, r7\n" - "\tlsls r1, 1\n" - "\tadd r1, r9\n" - "\tmovs r2, 0\n" - "\tldrsh r1, [r1, r2]\n" - "\tlsls r0, 16\n" - "\tasrs r0, 16\n" - "\tcmp r1, r0\n" - "\tbne _0809C30A\n" - "\tcmp r7, 0x2\n" - "\tbeq _0809C2FA\n" - "\tmovs r0, 0x1\n" - "\tsubs r0, r7\n" - "\tlsls r0, 1\n" - "\tadd r0, r9\n" - "\tldrh r0, [r0]\n" - "\tmov r2, r10\n" - "\torrs r2, r0\n" - "\tadds r0, r5, 0\n" - "\tadds r1, r6, 0\n" - "\tbl MapGridSetMetatileIdAt\n" - "\tb _0809C30A\n" - "_0809C2FA:\n" - "\tmov r1, r9\n" - "\tldrh r0, [r1, 0x4]\n" - "\tmov r2, r10\n" - "\torrs r2, r0\n" - "\tadds r0, r5, 0\n" - "\tadds r1, r6, 0\n" - "\tbl MapGridSetMetatileIdAt\n" - "_0809C30A:\n" - "\tmovs r2, 0x80\n" - "\tlsls r2, 9\n" - "\tadds r0, r4, r2\n" - "\tlsrs r4, r0, 16\n" - "\tasrs r0, 16\n" - "\tcmp r0, 0x2\n" - "\tble _0809C2B8\n" - "\tadds r0, r2, 0\n" - "\tadd r0, r8\n" - "\tlsrs r2, r0, 16\n" - "\tasrs r0, 16\n" - "\tcmp r0, 0x2\n" - "\tble _0809C2AC\n" - "_0809C324:\n" - "\tadd sp, 0x10\n" - "\tpop {r3-r5}\n" - "\tmov r8, r3\n" - "\tmov r9, r4\n" - "\tmov r10, r5\n" - "\tpop {r4-r7}\n" - "\tpop {r0}\n" - "\tbx r0\n"); -} -#endif static void sub_809C334(u8 taskId) { @@ -308,8 +119,8 @@ static u8 sub_809C3FC(u16 a0) taskId = CreateTask(sub_809C334, 0); data = gTasks[taskId].data; - PlayerGetDestCoords(&tX, &tY); - t0 = 0; + PlayerGetDestCoords(&data[4], &data[5]); + data[0] = 0; data[1] = 0; data[2] = a0; sub_809C334(taskId); diff --git a/src/shop.c b/src/shop.c index 982202da2..a80cc76d7 100644 --- a/src/shop.c +++ b/src/shop.c @@ -87,13 +87,7 @@ struct MartHistory /*0x09*/ u8 unk9; /*0x0A*/ u8 unkA; /*0x0B*/ u8 unkB; - /*0x0C*/ u16 unkC; - /*0x0E*/ u8 unkE[6]; - /*0x14*/ u8 unk14; - /*0x15*/ u8 unk15; - /*0x16*/ u8 unk16; - /*0x17*/ u8 unk17; -}; /* size = 0x18 */ +}; /* size = 12 */ static EWRAM_DATA s16 sViewportMapObjects[MAP_OBJECTS_COUNT][4] = {0}; EWRAM_DATA struct ShopData gShopData = {0}; @@ -104,11 +98,11 @@ EWRAM_DATA u16 (*gShopTilemapBuffer3)[0x400] = {0}; EWRAM_DATA u16 (*gShopTilemapBuffer4)[0x400] = {0}; EWRAM_DATA struct ListMenuItem *sShopMenuListMenu = {0}; static EWRAM_DATA u8 (*sShopMenuItemStrings)[13] = {0}; -EWRAM_DATA struct MartHistory gShopMenuHistory = {0}; +EWRAM_DATA struct MartHistory gShopMenuHistory[2] = {0}; //Function Declarations static u8 CreateShopMenu(u8 a0); -static bool8 GetMartTypeFromItemList(bool32 a0); +static u8 GetMartTypeFromItemList(u32 a0); static void SetShopItemsForSale(const u16 *items); static void SetShopMenuCallback(MainCallback callback); static void Task_ShopMenu(u8 taskId); @@ -230,7 +224,7 @@ static const struct BgTemplate sShopBuyMenuBgTemplates[4] = // Functions static u8 CreateShopMenu(u8 a0) { - gShopData.martType = GetMartTypeFromItemList(a0) & 0xF; + gShopData.martType = GetMartTypeFromItemList(a0); gShopData.selectedRow = 0; if (ContextNpcGetTextColor() == 0) gShopData.unk16_4 = 4; @@ -246,56 +240,35 @@ static u8 CreateShopMenu(u8 a0) return CreateTask(Task_ShopMenu, 8); } -static bool8 GetMartTypeFromItemList(bool32 a0) +static u8 GetMartTypeFromItemList(u32 a0) { u16 i; if (a0) - return (u8)a0; - goto MAIN; + return a0; - 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) - { + for (i = 0; i < gShopData.itemCount && gShopData.itemList[i] != 0; i++) + { 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 1; } - - RETURN_0: - return 0; + return 0; } static void SetShopItemsForSale(const u16 *items) { - struct ShopData *mart; - - mart = &gShopData; - mart->itemList = items; - mart->itemCount = 0; - if (mart->itemList[0] == 0) + gShopData.itemList = items; + gShopData.itemCount = 0; + if (gShopData.itemList[0] == 0) return; - do + while (gShopData.itemList[gShopData.itemCount]) { ++gShopData.itemCount; - } while (mart->itemList[gShopData.itemCount]); + } } -static void SetShopMenuCallback(MainCallback callback) +static void SetShopMenuCallback(void (*callback)(void)) { gShopData.callback = callback; } @@ -416,7 +389,7 @@ static void CB2_InitBuyMenu(void) ResetTasks(); ClearScheduledBgCopiesToVram(); ResetItemMenuIconState(); - if ((!(InitShopData())) || (!(BuyMenuBuildListMenuTemplate()))) + if (!(InitShopData()) || !(BuyMenuBuildListMenuTemplate())) return; BuyMenuInitBgs(); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x20, 0x20); @@ -449,27 +422,39 @@ static void CB2_InitBuyMenu(void) static bool8 InitShopData(void) { - gShopTilemapBuffer1 = Alloc(sizeof(*gShopTilemapBuffer1)); + gShopTilemapBuffer1 = Alloc(sizeof(*gShopTilemapBuffer1)); if (gShopTilemapBuffer1 == NULL) - goto CANCEL; + { + BuyMenuFreeMemory(); + SetShopExitCallback(); + return FALSE; + } gShopTilemapBuffer2 = Alloc(sizeof(*gShopTilemapBuffer2)); if (gShopTilemapBuffer2 == NULL) - goto CANCEL; + { + BuyMenuFreeMemory(); + SetShopExitCallback(); + return FALSE; + } gShopTilemapBuffer3 = Alloc(sizeof(*gShopTilemapBuffer3)); if (gShopTilemapBuffer3 == NULL) - goto CANCEL; + { + BuyMenuFreeMemory(); + SetShopExitCallback(); + return FALSE; + } gShopTilemapBuffer4 = Alloc(sizeof(*gShopTilemapBuffer4)); if (gShopTilemapBuffer4 == NULL) - goto CANCEL; + { + BuyMenuFreeMemory(); + SetShopExitCallback(); + return FALSE; + } + return TRUE; - - CANCEL: - BuyMenuFreeMemory(); - SetShopExitCallback(); - return FALSE; } static void BuyMenuInitBgs(void) @@ -540,35 +525,25 @@ static void BuyMenuDrawGraphics(void) ScheduleBgCopyTilemapToVram(3); } -static bool8 BuyMenuBuildListMenuTemplate(void) +bool8 BuyMenuBuildListMenuTemplate(void) { u16 i, v; - struct ListMenuItem **list = &sShopMenuListMenu; - struct ShopData *mart = &gShopData; - - *list = Alloc((gShopData.itemCount + 1) * sizeof(*sShopMenuListMenu)); - if (sShopMenuListMenu == NULL) - goto FREE_MEMORY; - sShopMenuItemStrings = Alloc((gShopData.itemCount + 1) * sizeof(*sShopMenuItemStrings)); - if (sShopMenuItemStrings == NULL) + sShopMenuListMenu = Alloc((gShopData.itemCount + 1) * sizeof(*sShopMenuListMenu)); + if (sShopMenuListMenu == NULL + || (sShopMenuItemStrings = Alloc((gShopData.itemCount + 1) * sizeof(*sShopMenuItemStrings))) == NULL) { - FREE_MEMORY: BuyMenuFreeMemory(); SetShopExitCallback(); return FALSE; } i = 0; - if (i >= mart->itemCount) - goto ADD_CANCEL; - for (i = 0; i < mart->itemCount; i++) + for (i = 0; i < gShopData.itemCount; i++) { - PokeMartWriteNameAndIdAt(&sShopMenuListMenu[i], mart->itemList[i], sShopMenuItemStrings[i]); + PokeMartWriteNameAndIdAt(&sShopMenuListMenu[i], gShopData.itemList[i], sShopMenuItemStrings[i]); } - - ADD_CANCEL: StringCopy(sShopMenuItemStrings[i], gFameCheckerText_Cancel); sShopMenuListMenu[i].label = sShopMenuItemStrings[i]; sShopMenuListMenu[i].index = -2; @@ -801,7 +776,7 @@ static void BuyMenuDrawMapBg(void) static void BuyMenuDrawMapMetatile(s16 x, s16 y, const u16 *src, u8 metatileLayerType) { u16 offset1 = x * 2; - u16 offset2 = ((y << 0x16) + 0x400000) >> 0x10; + u16 offset2 = (y * 64) + 64; switch (metatileLayerType) { @@ -1091,7 +1066,7 @@ static void Task_ExitBuyMenu(u8 taskId) if (!gPaletteFade.active) { - DestroyListMenuTask(tListTaskId, 0, 0); + DestroyListMenuTask(tListTaskId, NULL, NULL); BuyMenuFreeMemory(); SetMainCallback2(CB2_ReturnToField); DestroyTask(taskId); @@ -1106,154 +1081,59 @@ static void nullsub_53(void) { } -#ifdef NONMATCHING -// couldn't get registers to match. It should store an address into r4 (what tmp wants to be), and load/store from there, eg. ldrh r0, [r4,#4]. Which indicates an array inside the MartHistory struct, except data sizes are not consistent. void RecordItemPurchase(u16 item, u16 quantity, u8 a2) { - struct MartHistory *tmp; + struct MartHistory *history; - if (gShopMenuHistory.unkA == a2) + if (gShopMenuHistory[0].unkA == a2) + { + history = &gShopMenuHistory[0]; + } + else if (gShopMenuHistory[1].unkA == a2) { - tmp = &gShopMenuHistory; + history = &gShopMenuHistory[1]; } else { - if (gShopMenuHistory.unk16 == a2) - { - tmp = &gShopMenuHistory + 12; - } + if (gShopMenuHistory[0].unkA == 0) + history = &gShopMenuHistory[0]; else - { - tmp = &gShopMenuHistory + 12; - if (gShopMenuHistory.unkA == 0) - { - tmp = &gShopMenuHistory; - gShopMenuHistory.unkA = a2; - } - } + history = &gShopMenuHistory[1]; + history->unkA = a2; } - if (tmp->unk4 != 0) + if (history->unk4 != 0) { - gShopMenuHistory.unk9 = 1; + history->unk9 = 1; } - gShopMenuHistory.unk4 = item; - if (gShopMenuHistory.unk6 <= 998) + history->unk4 = item; + if (history->unk6 < 999) { - gShopMenuHistory.unk6 += item; - if (item > 999) - gShopMenuHistory.unk6 = 999; + history->unk6 += quantity; + if (history->unk6 > 999) + history->unk6 = 999; } - if (gShopMenuHistory.unk0 < 999998) + if (history->unk0 < 999999) { - gShopMenuHistory.unk0 += ((s16)itemid_get_market_price(item) >> (quantity-1))*quantity; - if (gShopMenuHistory.unk0 > 999999) - gShopMenuHistory.unk0 = 999999; + history->unk0 += (itemid_get_market_price(item) >> (a2 - 1)) * quantity; + if (history->unk0 > 999999) + history->unk0 = 999999; } } -#else -NAKED -void RecordItemPurchase(u16 item, u16 quantity, u8 a2) -{ - asm_unified("\tpush {r4-r6,lr}\n" - "\tlsls r0, 16\n" - "\tlsrs r3, r0, 16\n" - "\tlsls r1, 16\n" - "\tlsrs r6, r1, 16\n" - "\tlsls r2, 24\n" - "\tlsrs r5, r2, 24\n" - "\tldr r1, _0809C0B8 @ =gShopMenuHistory\n" - "\tldrb r2, [r1, 0xA]\n" - "\tcmp r2, r5\n" - "\tbne _0809C0BC\n" - "\tadds r4, r1, 0\n" - "\tb _0809C0D4\n" - "\t.align 2, 0\n" - "_0809C0B8: .4byte gShopMenuHistory\n" - "_0809C0BC:\n" - "\tldrb r0, [r1, 0x16]\n" - "\tcmp r0, r5\n" - "\tbne _0809C0C8\n" - "\tadds r4, r1, 0\n" - "\tadds r4, 0xC\n" - "\tb _0809C0D4\n" - "_0809C0C8:\n" - "\tadds r4, r1, 0\n" - "\tadds r4, 0xC\n" - "\tcmp r2, 0\n" - "\tbne _0809C0D2\n" - "\tadds r4, r1, 0\n" - "_0809C0D2:\n" - "\tstrb r5, [r4, 0xA]\n" - "_0809C0D4:\n" - "\tldrh r0, [r4, 0x4]\n" - "\tcmp r0, 0\n" - "\tbeq _0809C0DE\n" - "\tmovs r0, 0x1\n" - "\tstrb r0, [r4, 0x9]\n" - "_0809C0DE:\n" - "\tstrh r3, [r4, 0x4]\n" - "\tldrh r1, [r4, 0x6]\n" - "\tldr r0, _0809C128 @ =0x000003e6\n" - "\tcmp r1, r0\n" - "\tbhi _0809C0F8\n" - "\tadds r0, r6, r1\n" - "\tstrh r0, [r4, 0x6]\n" - "\tlsls r0, 16\n" - "\tlsrs r0, 16\n" - "\tldr r1, _0809C12C @ =0x000003e7\n" - "\tcmp r0, r1\n" - "\tbls _0809C0F8\n" - "\tstrh r1, [r4, 0x6]\n" - "_0809C0F8:\n" - "\tldr r1, [r4]\n" - "\tldr r0, _0809C130 @ =0x000f423e\n" - "\tcmp r1, r0\n" - "\tbhi _0809C120\n" - "\tadds r0, r3, 0\n" - "\tbl itemid_get_market_price\n" - "\tlsls r0, 16\n" - "\tlsrs r0, 16\n" - "\tsubs r1, r5, 0x1\n" - "\tasrs r0, r1\n" - "\tadds r1, r0, 0\n" - "\tmuls r1, r6\n" - "\tldr r0, [r4]\n" - "\tadds r0, r1\n" - "\tstr r0, [r4]\n" - "\tldr r1, _0809C134 @ =0x000f423f\n" - "\tcmp r0, r1\n" - "\tbls _0809C120\n" - "\tstr r1, [r4]\n" - "_0809C120:\n" - "\tpop {r4-r6}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" - "_0809C128: .4byte 0x000003e6\n" - "_0809C12C: .4byte 0x000003e7\n" - "_0809C130: .4byte 0x000f423e\n" - "_0809C134: .4byte 0x000f423f\n"); -} -#endif static void RecordQuestLogItemPurchase(void) { - struct MartHistory *history = &gShopMenuHistory; u16 v; - v = history->unkA; + v = gShopMenuHistory[0].unkA; if (v != 0) - sub_8113550(v + 0x24, (const u16*)history); + sub_8113550(v + 0x24, (const u16 *)&gShopMenuHistory[0]); - v = history->unk16; + v = gShopMenuHistory[1].unkA; if (v != 0) - { - v += 0x24; - sub_8113550(v, (const u16*)&history->unkC); - } + sub_8113550(v + 0x24, (const u16 *)&gShopMenuHistory[1]); } void CreatePokemartMenu(const u16 *itemsForSale) @@ -1262,9 +1142,9 @@ void CreatePokemartMenu(const u16 *itemsForSale) CreateShopMenu(MART_TYPE_REGULAR); SetShopMenuCallback(EnableBothScriptContexts); nullsub_53(); - memset(&gShopMenuHistory, 0, sizeof(struct MartHistory)); - gShopMenuHistory.unk8 = gMapHeader.regionMapSectionId; - gShopMenuHistory.unk14 = gMapHeader.regionMapSectionId; + memset(&gShopMenuHistory, 0, sizeof(gShopMenuHistory)); + gShopMenuHistory[0].unk8 = gMapHeader.regionMapSectionId; + gShopMenuHistory[1].unk8 = gMapHeader.regionMapSectionId; } void CreateDecorationShop1Menu(const u16 *itemsForSale) |