diff options
author | Evan <eroelke@gmail.com> | 2019-11-24 22:04:51 -0700 |
---|---|---|
committer | Evan <eroelke@gmail.com> | 2019-11-24 22:04:51 -0700 |
commit | 30994831130ec41feea5229b787fe76db792d1b1 (patch) | |
tree | 8ba072157157b7c5a4a8dad3b8cd284b21ea8450 /src | |
parent | e6a882cc920077f7e555714983a8835fbbe3e4bd (diff) |
match BuyMenuCollectEventObjectData
Diffstat (limited to 'src')
-rw-r--r-- | src/shop.c | 271 |
1 files changed, 25 insertions, 246 deletions
diff --git a/src/shop.c b/src/shop.c index 55fe7311a..340dcf811 100644 --- a/src/shop.c +++ b/src/shop.c @@ -213,7 +213,7 @@ static const struct WindowTemplate gUnknown_83DF0BC[] = //sShopMenuWindowTem } }; -static const struct BgTemplate gUnknown_83DF0C4[] = //sShopBuyMenuBgTemplates +static const struct BgTemplate gUnknown_83DF0C4[4] = //sShopBuyMenuBgTemplates { { .bg = 0, @@ -510,13 +510,11 @@ static bool8 sub_809AF6C(void) return FALSE; } -#ifdef NONMATCHING //BuyMenuInitBgs -// this matches but adjusts offsets const for some reason... static void sub_809AFD0(void) { ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_83DF0C4, 4); //NELEMS(gUnknown_83DF0C4)); + InitBgsFromTemplates(0, gUnknown_83DF0C4, NELEMS(gUnknown_83DF0C4)); SetBgTilemapBuffer(1, gUnknown_2039958); SetBgTilemapBuffer(2, gUnknown_2039960); SetBgTilemapBuffer(3, gUnknown_203995C); @@ -532,79 +530,9 @@ static void sub_809AFD0(void) SetGpuReg(0, 0x1040); ShowBg(0); ShowBg(1); - ShowBg(2); + ShowBg(2); + ShowBg(3); } -#else -NAKED -static void sub_809AFD0(void) -{ - asm_unified("\tpush {lr}\n" - "\tmovs r0, 0\n" - "\tbl ResetBgsAndClearDma3BusyFlags\n" - "\tldr r1, _0809B070 @ =gUnknown_83DF0C4\n" - "\tmovs r0, 0\n" - "\tmovs r2, 0x4\n" - "\tbl InitBgsFromTemplates\n" - "\tldr r0, _0809B074 @ =gUnknown_2039958\n" - "\tldr r1, [r0]\n" - "\tmovs r0, 0x1\n" - "\tbl SetBgTilemapBuffer\n" - "\tldr r0, _0809B078 @ =gUnknown_2039960\n" - "\tldr r1, [r0]\n" - "\tmovs r0, 0x2\n" - "\tbl SetBgTilemapBuffer\n" - "\tldr r0, _0809B07C @ =gUnknown_203995C\n" - "\tldr r1, [r0]\n" - "\tmovs r0, 0x3\n" - "\tbl SetBgTilemapBuffer\n" - "\tmovs r0, 0x10\n" - "\tmovs r1, 0\n" - "\tbl SetGpuReg\n" - "\tmovs r0, 0x12\n" - "\tmovs r1, 0\n" - "\tbl SetGpuReg\n" - "\tmovs r0, 0x14\n" - "\tmovs r1, 0\n" - "\tbl SetGpuReg\n" - "\tmovs r0, 0x16\n" - "\tmovs r1, 0\n" - "\tbl SetGpuReg\n" - "\tmovs r0, 0x18\n" - "\tmovs r1, 0\n" - "\tbl SetGpuReg\n" - "\tmovs r0, 0x1A\n" - "\tmovs r1, 0\n" - "\tbl SetGpuReg\n" - "\tmovs r0, 0x1C\n" - "\tmovs r1, 0\n" - "\tbl SetGpuReg\n" - "\tmovs r0, 0x1E\n" - "\tmovs r1, 0\n" - "\tbl SetGpuReg\n" - "\tmovs r0, 0x50\n" - "\tmovs r1, 0\n" - "\tbl SetGpuReg\n" - "\tmovs r1, 0x82\n" - "\tlsls r1, 5\n" - "\tmovs r0, 0\n" - "\tbl SetGpuReg\n" - "\tmovs r0, 0\n" - "\tbl ShowBg\n" - "\tmovs r0, 0x1\n" - "\tbl ShowBg\n" - "\tmovs r0, 0x2\n" - "\tbl ShowBg\n" - "\tmovs r0, 0x3\n" - "\tbl ShowBg\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" - "_0809B070: .4byte gUnknown_83DF0C4\n" - "_0809B074: .4byte gUnknown_2039958\n" - "_0809B078: .4byte gUnknown_2039960\n" - "_0809B07C: .4byte gUnknown_203995C\n"); -} -#endif //BuyMenuDecompressBgGraphics static void sub_809B080(void) @@ -757,23 +685,23 @@ static void sub_809B320(s32 item, bool8 onInit, struct ListMenu *list) #ifdef NONMATCHING //this function was written very strangely.. static void sub_809B408(u8 windowId, s32 item, u8 y) { - u32 len; - u8* loc; + u32 len, x; + u8 *loc; if (item != INDEX_CANCEL) { - ConvertIntToDecimalStringN(gStringVar1, itemid_get_market_price(item), 0, NUM_CHARS_PRICE); - - //len = StringLength(gStringVar1); + ConvertIntToDecimalStringN(gStringVar1, itemid_get_market_price(item), 0, 4); len = 4 - StringLength(gStringVar1); - //len = NUM_CHARS_PRICE - len; loc = gStringVar4; - - while (len != 0) + x = len - 1; + if (x > 0) { - loc[4-len] = 0; - *loc++; - len--; + while (len != 0) + { + *loc = 0; + loc++; + len--; + } } StringExpandPlaceholders(loc, gText_PokedollarVar1); BuyMenuPrint(windowId, 1, gStringVar4, 0x69, y, 0, 0, TEXT_SPEED_FF, 1); @@ -1040,8 +968,7 @@ static void sub_809B904(u16 *dest, s16 offset1, s16 offset2, const u16 *src) } -// BuyMenuCollectEventObjectData(void) -#ifdef NONMATCHING +// BuyMenuCollectEventObjectData static void sub_809B92C(void) { s16 facingX; @@ -1055,34 +982,33 @@ static void sub_809B92C(void) z = PlayerGetZCoord(); for (y = 0; y < MAP_OBJECTS_COUNT; y++) - gUnknown_20398B4[y].eventObjId = MAP_OBJECTS_COUNT; + gUnknown_20398B4[y][EVENT_OBJ_ID] = MAP_OBJECTS_COUNT; for (y = 0; y < 5; y++) { for (x = 0; x < 7; x++) { - u8 eventObjId = GetFieldObjectIdByXYZ(facingX - 4 + x, facingY - 2 + y, z); + u8 eventObjId = GetFieldObjectIdByXYZ(facingX - 3 + x, facingY - 2 + y, z); if (eventObjId != MAP_OBJECTS_COUNT) { - gUnknown_20398B4[num].eventObjId = eventObjId; - gUnknown_20398B4[num].x = x; - gUnknown_20398B4[num].y = y; - //gUnknown_20398B4[num].layerType = MapGridGetMetatileLayerTypeAt(facingX - 4 + x, facingY - 2 + y); + gUnknown_20398B4[num][EVENT_OBJ_ID] = eventObjId; + gUnknown_20398B4[num][X_COORD] = x; + gUnknown_20398B4[num][Y_COORD] = y; switch (gMapObjects[eventObjId].facingDirection) { case DIR_SOUTH: - gUnknown_20398B4[num].animNum = 0; + gUnknown_20398B4[num][ANIM_NUM] = 0; break; case DIR_NORTH: - gUnknown_20398B4[num].animNum = 1; + gUnknown_20398B4[num][ANIM_NUM] = 1; break; case DIR_WEST: - gUnknown_20398B4[num].animNum = 2; + gUnknown_20398B4[num][ANIM_NUM] = 2; break; case DIR_EAST: default: - gUnknown_20398B4[num].animNum = 3; + gUnknown_20398B4[num][ANIM_NUM] = 3; break; } num++; @@ -1090,153 +1016,6 @@ static void sub_809B92C(void) } } } -#else -NAKED -static void sub_809B92C(void) -{ - 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, 0x8\n" - "\tmovs r0, 0\n" - "\tmov r9, r0\n" - "\tmov r4, sp\n" - "\tadds r4, 0x2\n" - "\tmov r0, sp\n" - "\tadds r1, r4, 0\n" - "\tbl GetXYCoordsOneStepInFrontOfPlayer\n" - "\tbl PlayerGetZCoord\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tstr r0, [sp, 0x4]\n" - "\tmovs r5, 0\n" - "\tldr r2, _0809B9DC @ =gUnknown_20398B4\n" - "\tmovs r1, 0x10\n" - "_0809B958:\n" - "\tlsls r0, r5, 3\n" - "\tadds r0, r2\n" - "\tstrh r1, [r0]\n" - "\tadds r0, r5, 0x1\n" - "\tlsls r0, 24\n" - "\tlsrs r5, r0, 24\n" - "\tcmp r5, 0xF\n" - "\tbls _0809B958\n" - "\tmovs r5, 0\n" - "\tldr r6, _0809B9E0 @ =gUnknown_20398BA\n" - "\tsubs r1, r6, 0x6\n" - "\tmov r8, r1\n" - "_0809B970:\n" - "\tmovs r4, 0\n" - "\tadds r2, r5, 0x1\n" - "\tmov r10, r2\n" - "_0809B976:\n" - "\tmov r1, sp\n" - "\tldr r3, _0809B9E4 @ =0x0000fffd\n" - "\tadds r0, r3, 0\n" - "\tldrh r1, [r1]\n" - "\tadds r0, r1\n" - "\tadds r0, r4\n" - "\tlsls r0, 16\n" - "\tlsrs r0, 16\n" - "\tldr r2, _0809B9E8 @ =0x0000fffe\n" - "\tadds r1, r2, 0\n" - "\tmov r3, sp\n" - "\tldrh r3, [r3, 0x2]\n" - "\tadds r1, r3\n" - "\tadds r1, r5\n" - "\tlsls r1, 16\n" - "\tlsrs r1, 16\n" - "\tldr r2, [sp, 0x4]\n" - "\tbl GetFieldObjectIdByXYZ\n" - "\tlsls r0, 24\n" - "\tlsrs r3, r0, 24\n" - "\tcmp r3, 0x10\n" - "\tbeq _0809BA1C\n" - "\tmov r0, r9\n" - "\tlsls r2, r0, 3\n" - "\tmov r1, r8\n" - "\tadds r0, r2, r1\n" - "\tmovs r7, 0\n" - "\tstrh r3, [r0]\n" - "\tmov r0, r8\n" - "\tadds r0, 0x2\n" - "\tadds r0, r2, r0\n" - "\tstrh r4, [r0]\n" - "\tldr r1, _0809B9EC @ =gUnknown_20398B8\n" - "\tadds r0, r2, r1\n" - "\tstrh r5, [r0]\n" - "\tldr r1, _0809B9F0 @ =gMapObjects\n" - "\tlsls r0, r3, 3\n" - "\tadds r0, r3\n" - "\tlsls r0, 2\n" - "\tadds r0, r1\n" - "\tldrb r0, [r0, 0x18]\n" - "\tlsls r0, 28\n" - "\tlsrs r0, 28\n" - "\tcmp r0, 0x2\n" - "\tbeq _0809BA00\n" - "\tcmp r0, 0x2\n" - "\tbgt _0809B9F4\n" - "\tcmp r0, 0x1\n" - "\tbeq _0809B9FA\n" - "\tb _0809BA0C\n" - "\t.align 2, 0\n" - "_0809B9DC: .4byte gUnknown_20398B4\n" - "_0809B9E0: .4byte gUnknown_20398BA\n" - "_0809B9E4: .4byte 0x0000fffd\n" - "_0809B9E8: .4byte 0x0000fffe\n" - "_0809B9EC: .4byte gUnknown_20398B8\n" - "_0809B9F0: .4byte gMapObjects\n" - "_0809B9F4:\n" - "\tcmp r0, 0x3\n" - "\tbeq _0809BA06\n" - "\tb _0809BA0C\n" - "_0809B9FA:\n" - "\tadds r0, r2, r6\n" - "\tstrh r7, [r0]\n" - "\tb _0809BA12\n" - "_0809BA00:\n" - "\tadds r1, r2, r6\n" - "\tmovs r0, 0x1\n" - "\tb _0809BA10\n" - "_0809BA06:\n" - "\tadds r1, r2, r6\n" - "\tmovs r0, 0x2\n" - "\tb _0809BA10\n" - "_0809BA0C:\n" - "\tadds r1, r2, r6\n" - "\tmovs r0, 0x3\n" - "_0809BA10:\n" - "\tstrh r0, [r1]\n" - "_0809BA12:\n" - "\tmov r0, r9\n" - "\tadds r0, 0x1\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tmov r9, r0\n" - "_0809BA1C:\n" - "\tadds r0, r4, 0x1\n" - "\tlsls r0, 24\n" - "\tlsrs r4, r0, 24\n" - "\tcmp r4, 0x6\n" - "\tbls _0809B976\n" - "\tmov r2, r10\n" - "\tlsls r0, r2, 24\n" - "\tlsrs r5, r0, 24\n" - "\tcmp r5, 0x4\n" - "\tbls _0809B970\n" - "\tadd sp, 0x8\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 //BuyMenuDrawEventObjects static void sub_809BA40(void) |