diff options
-rw-r--r-- | asm/item_menu.s | 2 | ||||
-rw-r--r-- | include/shop.h | 13 | ||||
-rw-r--r-- | src/berry_pouch.c | 2 | ||||
-rw-r--r-- | src/buy_menu_helpers.c | 2 | ||||
-rw-r--r-- | src/sea_cottage_special_anim.c | 24 | ||||
-rw-r--r-- | src/shop.c | 643 | ||||
-rw-r--r-- | src/tm_case.c | 2 | ||||
-rw-r--r-- | sym_ewram.txt | 792 |
8 files changed, 697 insertions, 783 deletions
diff --git a/asm/item_menu.s b/asm/item_menu.s index a8487864a..df609fef5 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -5484,7 +5484,7 @@ sub_810A9D4: @ 810A9D4 mov r2, r8 ldrh r1, [r2, 0x10] movs r2, 0x2 - bl sub_809C09C + bl RecordItemPurchase mov r3, r8 ldrb r0, [r3] ldr r4, _0810AAE4 @ =gUnknown_203ACFC diff --git a/include/shop.h b/include/shop.h index 27014580d..91ce421aa 100644 --- a/include/shop.h +++ b/include/shop.h @@ -11,22 +11,13 @@ #define NUM_CHARS_PRICE 4 -// shop view window NPC info enum -enum -{ - EVENT_OBJ_ID, - X_COORD, - Y_COORD, - ANIM_NUM -}; - extern EWRAM_DATA struct ItemSlot gUnknown_02039F80[3]; void CreatePokemartMenu(const u16 *itemsForSale); void CreateDecorationShop1Menu(const u16 *); void CreateDecorationShop2Menu(const u16 *); -u8 sub_809B56C(void); -void sub_809C09C(u16 a0, u16 a1, u8 a2); +u8 GetMartUnk16_4(void); +void RecordItemPurchase(u16 a0, u16 a1, u8 a2); // buy_menu_helper void BuyMenuInitWindows(bool32 isSellingTM); diff --git a/src/berry_pouch.c b/src/berry_pouch.c index b8b66c0bc..0ecf43b45 100644 --- a/src/berry_pouch.c +++ b/src/berry_pouch.c @@ -1384,7 +1384,7 @@ static void Task_SellBerries_PlaySfxAndRemoveBerries(u8 taskId) PlaySE(SE_SHOP); RemoveBagItem(gSpecialVar_ItemId, data[8]); AddMoney(&gSaveBlock1Ptr->money, itemid_get_market_price(gSpecialVar_ItemId) / 2 * data[8]); - sub_809C09C(gSpecialVar_ItemId, data[8], 2); + RecordItemPurchase(gSpecialVar_ItemId, data[8], 2); DestroyListMenuTask(data[0], &sStaticCnt.listMenuScrollOffset, &sStaticCnt.listMenuSelectedRow); SortAndCountBerries(); SanitizeListMenuSelectionParams(); diff --git a/src/buy_menu_helpers.c b/src/buy_menu_helpers.c index 44de094b5..1fd160576 100644 --- a/src/buy_menu_helpers.c +++ b/src/buy_menu_helpers.c @@ -184,7 +184,7 @@ void BuyMenuPrint(u8 windowId, u8 font, const u8 *text, u8 x, u8 y, u8 letterSpa void BuyMenuDisplayMessage(u8 taskId, const u8 *text, TaskFunc callback) { - DisplayMessageAndContinueTask(taskId, 2, 0x13, 0xE, sub_809B56C(), GetTextSpeedSetting(), text, callback); + DisplayMessageAndContinueTask(taskId, 2, 0x13, 0xE, GetMartUnk16_4(), GetTextSpeedSetting(), text, callback); ScheduleBgCopyTilemapToVram(0); } diff --git a/src/sea_cottage_special_anim.c b/src/sea_cottage_special_anim.c index e9b05a0fc..67fc70209 100644 --- a/src/sea_cottage_special_anim.c +++ b/src/sea_cottage_special_anim.c @@ -35,7 +35,29 @@ static const u16 gUnknown_83DF0F8[] = {0x02eb, 0x031e, 0x031c}; #ifdef NONMATCHING void sub_809C1D8(u8 taskId, const u16* a1, u16 a2) { - + s16 v1, v2, v3; + s16 i, j; + + v1 = gTasks[taskId].data[5] - 1; + v2 = gTasks[taskId].data[6] - 1; + v3 = gTasks[taskId].data[2]; + + if (gTasks[taskId].data[3] == 0) + { + for (i = 0; i < 3; i++) + { + for (j = 0; j < 3; j++) + { + MapGridGetMetatileIdAt(v1 + j, v2 + i); + if () + { + + } + + MapGridSetMetatileIdAt + } + } + } } #else NAKED diff --git a/src/shop.c b/src/shop.c index 340dcf811..d0b3994a2 100644 --- a/src/shop.c +++ b/src/shop.c @@ -44,6 +44,7 @@ #define tItemId data[5] #define tListTaskId data[7] +// mart types enum { MART_TYPE_REGULAR = 0, @@ -52,9 +53,14 @@ enum MART_TYPE_DECOR2, }; -// RAM symbols -// Function Declarations -// Data Definitions +// shop view window NPC info enum +enum +{ + EVENT_OBJ_ID, + X_COORD, + Y_COORD, + ANIM_NUM +}; struct ShopData { @@ -71,7 +77,6 @@ struct ShopData u16 itemSlot:2; u16 unk16_11:5; /*0x18*/ u16 unk18; - //INCOMPLETE }; struct MartHistory @@ -92,81 +97,73 @@ struct MartHistory }; /* size = 0x18 */ +EWRAM_DATA s16 sViewportMapObjects[MAP_OBJECTS_COUNT][4] = {0}; EWRAM_DATA struct ShopData gShopData = {0}; -EWRAM_DATA u8 gUnknown_2039950 = 0; //sShopMenuWindowId - -EWRAM_DATA u16 (*gUnknown_2039954)[0x400] = {0}; //gShopTilemapBuffers -EWRAM_DATA u16 (*gUnknown_2039958)[0x400] = {0}; -EWRAM_DATA u16 (*gUnknown_203995C)[0x400] = {0}; -EWRAM_DATA u16 (*gUnknown_2039960)[0x400] = {0}; -/* -EWRAM_DATA struct ShopTilemapBuffers *gUnknown_2039954 = 0; //gShopTilemapBuffers -EWRAM_DATA struct ShopTilemapBuffers *gUnknown_2039958 = 0; -EWRAM_DATA struct ShopTilemapBuffers *gUnknown_203995C = 0; -EWRAM_DATA struct ShopTilemapBuffers *gUnknown_2039960 = 0; -*/ -EWRAM_DATA struct ListMenuItem *gUnknown_2039964 = {0}; -EWRAM_DATA u8 (*gUnknown_2039968)[13] = {0}; //item strings - -EWRAM_DATA s16 gUnknown_20398B4[MAP_OBJECTS_COUNT][4] = {0}; //sViewportMapObjects -EWRAM_DATA struct MartHistory gUnknown_203996C = {0}; +EWRAM_DATA u8 sShopMenuWindowId = 0; +EWRAM_DATA u16 (*gShopTilemapBuffer1)[0x400] = {0}; +EWRAM_DATA u16 (*gShopTilemapBuffer2)[0x400] = {0}; +EWRAM_DATA u16 (*gShopTilemapBuffer3)[0x400] = {0}; +EWRAM_DATA u16 (*gShopTilemapBuffer4)[0x400] = {0}; +EWRAM_DATA struct ListMenuItem *sShopMenuListMenu = {0}; +EWRAM_DATA u8 (*sShopMenuItemStrings)[13] = {0}; +EWRAM_DATA struct MartHistory gShopMenuHistory = {0}; //Function Declarations -static u8 sub_809AAB0(u8 a0); -static u8 sub_809AB7C(bool32 a0); -static void sub_809ABD8(const u16 *items); -static void sub_809AC04(MainCallback callback); -static void sub_809AC10(u8 taskId); -static void sub_809AC5C(u8 taskId); -static void sub_809AC98(u8 taskId); -static void sub_809ACD4(void); -static void sub_809ACF8(u8 taskId); -static void sub_809AD24(void); -static void sub_809AD40(u8 taskId); -static void sub_809AD74(void); -static void sub_809AD8C(u8 taskId); -static void sub_809ADC0(u8 taskId); //ShowShopMenuAfterExitingBuyOrSellMenu -static void sub_809ADE4(void); -static void sub_809AE00(void); -static void sub_809AE14(void); -static bool8 sub_809AF6C(void); -static void sub_809AFD0(void); //BuyMenuInitBgs -static void sub_809B080(void); +static u8 CreateShopMenu(u8 a0); +static u8 GetMartTypeFromItemList(bool32 a0); +static void SetShopItemsForSale(const u16 *items); +static void SetShopMenuCallback(MainCallback callback); +static void Task_ShopMenu(u8 taskId); +static void Task_HandleShopMenuBuy(u8 taskId); +static void Task_HandleShopMenuSell(u8 taskId); +static void CB2_GoToSellMenu(void); +static void Task_HandleShopMenuQuit(u8 taskId); +static void ClearShopMenuWindow(void); +static void Task_GoToBuyOrSellMenu(u8 taskId); +static void MapPostLoadHook_ReturnToShopMenu(void); +static void Task_ReturnToShopMenu(u8 taskId); +static void ShowShopMenuAfterExitingBuyOrSellMenu(u8 taskId); +static void CB2_BuyMenu(void); +static void VBlankCB_BuyMenu(void); +static void CB2_InitBuyMenu(void); +static bool8 InitShopData(void); +static void BuyMenuInitBgs(void); +static void BuyMenuDecompressBgGraphics(void); static void sub_809B10C(bool32 a0); -static void sub_809B15C(void); //BuyMenuDrawGraphics(); -static bool8 sub_809B188(void); //BuyMenuBuildListMenuTemplate -static void sub_809B300(struct ListMenuItem *list, u16 index, u8* dst); -static void sub_809B320(s32 item, bool8 onInit, struct ListMenu *list); -static void sub_809B408(u8 windowId, s32 itemId, u8 y); -static void sub_809B494(s32 item); -static void sub_809B57C(u8 listTaskId, u8 a1); -static void sub_809B59C(u8 y, u8 a1); -static void sub_809B604(void); -static void sub_809B670(void); -static void sub_809B690(void); -static void sub_809B6FC(void); -static void sub_809B73C(void); +static void BuyMenuDrawGraphics(void); +static bool8 BuyMenuBuildListMenuTemplate(void); +static void PokeMartWriteNameAndIdAt(struct ListMenuItem *list, u16 index, u8* dst); +static void BuyMenuPrintItemDescriptionAndShowItemIcon(s32 item, bool8 onInit, struct ListMenu *list); +static void BuyMenuPrintPriceInList(u8 windowId, s32 itemId, u8 y); +static void LoadTmHmNameInMart(s32 item); +static void BuyMenuPrintCursor(u8 listTaskId, u8 a1); +static void BuyMenuPrintCursorAtYPosition(u8 y, u8 a1); +static void BuyMenuFreeMemory(void); +static void SetShopExitCallback(void); +static void BuyMenuAddScrollIndicatorArrows(void); +static void BuyQuantityAddScrollIndicatorArrows(void); +static void BuyMenuRemoveScrollIndicatorArrows(void); static void sub_809B764(void); -static void sub_809B778(void); -static void sub_809B850(s16 x, s16 y, const u16 *src, u8 metatileLayerType); -static void sub_809B904(u16 *dest, s16 offset1, s16 offset2, const u16 *src); -static void sub_809B92C(void); -static void sub_809BA40(void); -static void sub_809BAFC(void); -static void sub_809BB44(u8 taskId); -static void sub_809BBC0(u8 taskId); -static void sub_809BCA0(u8 taskId); -static void sub_809BD8C(u8 taskId); -static void sub_809BE90(u8 taskId); -static void sub_809BEA4(u8 taskId); -static void sub_809BF0C(u8 taskId); -static void sub_809BF68(u8 taskId); -static void sub_809BF98(u8 taskId); -static void sub_809C004(u8 taskId); -static void sub_809C04C(u8 taskId); +static void BuyMenuDrawMapBg(void); +static void BuyMenuDrawMapMetatile(s16 x, s16 y, const u16 *src, u8 metatileLayerType); +static void BuyMenuDrawMapMetatileLayer(u16 *dest, s16 offset1, s16 offset2, const u16 *src); +static void BuyMenuCollectEventObjectData(void); +static void BuyMenuDrawEventObjects(void); +static void BuyMenuCopyTilemapData(void); +static void BuyMenuPrintItemQuantityAndPrice(u8 taskId); +static void Task_BuyMenu(u8 taskId); +static void Task_BuyHowManyDialogueInit(u8 taskId); +static void Task_BuyHowManyDialogueHandleInput(u8 taskId); +static void CreateBuyMenuConfirmPurchaseWindow(u8 taskId); +static void BuyMenuTryMakePurchase(u8 taskId); +static void BuyMenuSubtractMoney(u8 taskId); +static void Task_ReturnToItemListAfterItemPurchase(u8 taskId); +static void BuyMenuReturnToItemList(u8 taskId); +static void ExitBuyMenu(u8 taskId); +static void Task_ExitBuyMenu(u8 taskId); static void nullsub_52(u8 taskId); static void nullsub_53(void); -static void sub_809C138(void); +static void RecordQuestLogItemPurchase(void); // external defines extern u8 MapGridGetMetatileLayerTypeAt(s16 x, s16 y); @@ -189,15 +186,15 @@ extern const u32 gUnknown_8E86170[]; //gBuyMenuFrame_Pal static const struct MenuAction gUnknown_83DF09C[] = // sShopMenuActions_BuySellQuit { - {gText_ShopBuy, {.void_u8 = sub_809AC5C}}, - {gText_ShopSell, {.void_u8 = sub_809AC98}}, - {gText_ShopQuit, {.void_u8 = sub_809ACF8}} + {gText_ShopBuy, {.void_u8 = Task_HandleShopMenuBuy}}, + {gText_ShopSell, {.void_u8 = Task_HandleShopMenuSell}}, + {gText_ShopQuit, {.void_u8 = Task_HandleShopMenuQuit}} }; static const struct YesNoFuncTable gUnknown_83DF0B4[] = //sShopMenuActions_BuyQuit { - sub_809BEA4, //Task_HandleShopMenuBuy, - sub_809BF98 //Task_HandleShopMenuQuit + BuyMenuTryMakePurchase, //Task_HandleShopMenuBuy, + BuyMenuReturnToItemList //Task_HandleShopMenuQuit }; static const struct WindowTemplate gUnknown_83DF0BC[] = //sShopMenuWindowTemplates @@ -255,26 +252,25 @@ static const struct BgTemplate gUnknown_83DF0C4[4] = //sShopBuyMenuBgTemplat // Functions -// CreateShopMenu -static u8 sub_809AAB0(u8 a0) +static u8 CreateShopMenu(u8 a0) { - gShopData.martType = sub_809AB7C(a0) & 0xF; + gShopData.martType = GetMartTypeFromItemList(a0) & 0xF; gShopData.selectedRow = 0; if (!(ContextNpcGetTextColor())) gShopData.unk16_4 = 4; else gShopData.unk16_4 = 5; - gUnknown_2039950 = AddWindow(gUnknown_83DF0BC); //sShopMenuWindowTemplates - SetStdWindowBorderStyle(gUnknown_2039950, 0); - PrintTextArray(gUnknown_2039950, 2, GetMenuCursorDimensionByFont(2, 0), 2, 16, 3, gUnknown_83DF09C); - Menu_InitCursor(gUnknown_2039950, 2, 0, 2, 16, 3, 0); - PutWindowTilemap(gUnknown_2039950); - CopyWindowToVram(gUnknown_2039950, 1); - return CreateTask(sub_809AC10, 8); + sShopMenuWindowId = AddWindow(gUnknown_83DF0BC); //sShopMenuWindowTemplates + SetStdWindowBorderStyle(sShopMenuWindowId, 0); + PrintTextArray(sShopMenuWindowId, 2, GetMenuCursorDimensionByFont(2, 0), 2, 16, 3, gUnknown_83DF09C); + Menu_InitCursor(sShopMenuWindowId, 2, 0, 2, 16, 3, 0); + PutWindowTilemap(sShopMenuWindowId); + CopyWindowToVram(sShopMenuWindowId, 1); + return CreateTask(Task_ShopMenu, 8); } -static u8 sub_809AB7C(u32 a0) +static u8 GetMartTypeFromItemList(u32 a0) { u16 retVal, i; if (a0) @@ -304,35 +300,27 @@ static u8 sub_809AB7C(u32 a0) return 0; } -//SetShopItemsForSale -static void sub_809ABD8(const u16 *items) //I really don't know what GameFreak was thinking here.. +static void SetShopItemsForSale(const u16 *items) { struct ShopData *mart; - //u16 i; mart = &gShopData; mart->itemList = items; mart->itemCount = 0; - - //i = 0; if (mart->itemList[0] == 0) return; do { ++gShopData.itemCount; - //i = gShopData.itemCount; - //} while (mart->itemList[i]); } while (mart->itemList[gShopData.itemCount]); } -//SetShopMenuCallback -static void sub_809AC04(MainCallback callback) +static void SetShopMenuCallback(MainCallback callback) { gShopData.callback = callback; } -//Task_ShopMenu -static void sub_809AC10(u8 taskId) +static void Task_ShopMenu(u8 taskId) { s8 input = Menu_ProcessInputNoWrapAround(); @@ -342,7 +330,7 @@ static void sub_809AC10(u8 taskId) break; case MENU_B_PRESSED: PlaySE(SE_SELECT); - sub_809ACF8(taskId); + Task_HandleShopMenuQuit(taskId); break; default: gUnknown_83DF09C[Menu_GetCursorPos()].func.void_u8(taskId); @@ -350,47 +338,42 @@ static void sub_809AC10(u8 taskId) } } -//Task_HandleShopMenuBuy -static void sub_809AC5C(u8 taskId) +static void Task_HandleShopMenuBuy(u8 taskId) { - SetWordTaskArg(taskId, 0xE, (u32)sub_809AE14); + SetWordTaskArg(taskId, 0xE, (u32)CB2_InitBuyMenu); fade_screen(1, 0); - gTasks[taskId].func = sub_809AD40; + gTasks[taskId].func = Task_GoToBuyOrSellMenu; } -//Task_HandleShopMenuSell -static void sub_809AC98(u8 taskId) +static void Task_HandleShopMenuSell(u8 taskId) { - SetWordTaskArg(taskId, 0xE, (u32)sub_809ACD4); + SetWordTaskArg(taskId, 0xE, (u32)CB2_GoToSellMenu); fade_screen(1, 0); - gTasks[taskId].func = sub_809AD40; + gTasks[taskId].func = Task_GoToBuyOrSellMenu; } -//CB2_GoToSellMenu -static void sub_809ACD4(void) +static void CB2_GoToSellMenu(void) { sub_8107DB4(2, POCKET_POKE_BALLS, CB2_ReturnToField); - gFieldCallback = sub_809AD74; + gFieldCallback = MapPostLoadHook_ReturnToShopMenu; } -//Task_HandleShopMenuQuit -static void sub_809ACF8(u8 taskId) +static void Task_HandleShopMenuQuit(u8 taskId) { - sub_809AD24(); - sub_809C138(); + ClearShopMenuWindow(); + RecordQuestLogItemPurchase(); DestroyTask(taskId); if (gShopData.callback != 0) gShopData.callback(); } -static void sub_809AD24(void) +static void ClearShopMenuWindow(void) { - ClearStdWindowAndFrameToTransparent(gUnknown_2039950, 2); - RemoveWindow(gUnknown_2039950); + ClearStdWindowAndFrameToTransparent(sShopMenuWindowId, 2); + RemoveWindow(sShopMenuWindowId); } -//Task_GoToBuyOrSellMenu -static void sub_809AD40(u8 taskId) +static void Task_GoToBuyOrSellMenu(u8 taskId) { if (gPaletteFade.active) return; @@ -399,30 +382,26 @@ static void sub_809AD40(u8 taskId) DestroyTask(taskId); } -//MapPostLoadHook_ReturnToShopMenu -static void sub_809AD74(void) +static void MapPostLoadHook_ReturnToShopMenu(void) { sub_807DC00(); - CreateTask(sub_809AD8C, 8); + CreateTask(Task_ReturnToShopMenu, 8); } -//Task_ReturnToShopMenu -static void sub_809AD8C(u8 taskId) +static void Task_ReturnToShopMenu(u8 taskId) { if (field_weather_is_fade_finished() != TRUE) return; - DisplayItemMessageOnField(taskId, sub_809B56C(), gText_CanIHelpWithAnythingElse, sub_809ADC0); + DisplayItemMessageOnField(taskId, GetMartUnk16_4(), gText_CanIHelpWithAnythingElse, ShowShopMenuAfterExitingBuyOrSellMenu); } -//ShowShopMenuAfterExitingBuyOrSellMenu -static void sub_809ADC0(u8 taskId) +static void ShowShopMenuAfterExitingBuyOrSellMenu(u8 taskId) { - sub_809AAB0(gShopData.martType); + CreateShopMenu(gShopData.martType); DestroyTask(taskId); } -//CB2_BuyMenu -static void sub_809ADE4(void) +static void CB2_BuyMenu(void) { RunTasks(); AnimateSprites(); @@ -431,16 +410,14 @@ static void sub_809ADE4(void) DoScheduledBgTilemapCopiesToVram(); } -//VBlankCB_BuyMenu -static void sub_809AE00(void) +static void VBlankCB_BuyMenu(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); } -//CB2_InitBuyMenu -static void sub_809AE14(void) +static void CB2_InitBuyMenu(void) { u8 taskId; switch (gMain.state) @@ -456,15 +433,15 @@ static void sub_809AE14(void) ResetTasks(); ClearScheduledBgCopiesToVram(); ResetItemMenuIconState(); - if ((!(sub_809AF6C())) || (!(sub_809B188()))) + if ((!(InitShopData())) || (!(BuyMenuBuildListMenuTemplate()))) return; - sub_809AFD0(); + BuyMenuInitBgs(); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x20, 0x20); FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 0x20, 0x20); FillBgTilemapBufferRect_Palette0(2, 0, 0, 0, 0x20, 0x20); FillBgTilemapBufferRect_Palette0(3, 0, 0, 0, 0x20, 0x20); BuyMenuInitWindows(gShopData.martType); - sub_809B080(); + BuyMenuDecompressBgGraphics(); gMain.state++; break; case 1: @@ -475,49 +452,47 @@ static void sub_809AE14(void) default: gShopData.selectedRow = 0; gShopData.scrollOffset = 0; - sub_809B15C(); //BuyMenuDrawGraphics(); - sub_809B690(); //BuyMenuAddScrollIndicatorArrows(); - taskId = CreateTask(sub_809BBC0, 8); + BuyMenuDrawGraphics(); + BuyMenuAddScrollIndicatorArrows(); + taskId = CreateTask(Task_BuyMenu, 8); gTasks[taskId].tListTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); BlendPalettes(0xFFFFFFFF, 0x10, RGB_BLACK); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); - SetVBlankCallback(sub_809AE00); - SetMainCallback2(sub_809ADE4); + SetVBlankCallback(VBlankCB_BuyMenu); + SetMainCallback2(CB2_BuyMenu); break; } } -//InitShopData -static bool8 sub_809AF6C(void) +static bool8 InitShopData(void) { - gUnknown_2039954 = Alloc(sizeof(*gUnknown_2039954)); - if (gUnknown_2039954 == 0) + gShopTilemapBuffer1 = Alloc(sizeof(*gShopTilemapBuffer1)); + if (gShopTilemapBuffer1 == 0) goto CANCEL; - gUnknown_2039958 = Alloc(sizeof(*gUnknown_2039958)); - if (gUnknown_2039958 == 0) + gShopTilemapBuffer2 = Alloc(sizeof(*gShopTilemapBuffer2)); + if (gShopTilemapBuffer2 == 0) goto CANCEL; - gUnknown_203995C = Alloc(sizeof(*gUnknown_203995C)); - if (gUnknown_203995C == 0) + gShopTilemapBuffer3 = Alloc(sizeof(*gShopTilemapBuffer3)); + if (gShopTilemapBuffer3 == 0) goto CANCEL; - gUnknown_2039960 = Alloc(sizeof(*gUnknown_2039960)); - if (gUnknown_2039960 == 0) + gShopTilemapBuffer4 = Alloc(sizeof(*gShopTilemapBuffer4)); + if (gShopTilemapBuffer4 == 0) goto CANCEL; return TRUE; CANCEL: - sub_809B604(); - sub_809B670(); + BuyMenuFreeMemory(); + SetShopExitCallback(); return FALSE; } -//BuyMenuInitBgs -static void sub_809AFD0(void) +static void BuyMenuInitBgs(void) { ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, gUnknown_83DF0C4, NELEMS(gUnknown_83DF0C4)); - SetBgTilemapBuffer(1, gUnknown_2039958); - SetBgTilemapBuffer(2, gUnknown_2039960); - SetBgTilemapBuffer(3, gUnknown_203995C); + SetBgTilemapBuffer(1, gShopTilemapBuffer2); + SetBgTilemapBuffer(2, gShopTilemapBuffer4); + SetBgTilemapBuffer(3, gShopTilemapBuffer3); SetGpuReg(0x10, 0); SetGpuReg(0x12, 0); SetGpuReg(0x14, 0); @@ -531,18 +506,17 @@ static void sub_809AFD0(void) ShowBg(0); ShowBg(1); ShowBg(2); - ShowBg(3); + ShowBg(3); } -//BuyMenuDecompressBgGraphics -static void sub_809B080(void) +static void BuyMenuDecompressBgGraphics(void) { void* pal; DecompressAndCopyTileDataToVram(1, gUnknown_8E85DC8, 0x480, 0x3DC, 0); if ((gShopData.martType) != MART_TYPE_TMHM) - LZDecompressWram(gUnknown_8E85EFC, gUnknown_2039954); //gBuyMenuFrame_Tilemap + LZDecompressWram(gUnknown_8E85EFC, gShopTilemapBuffer1); //gBuyMenuFrame_Tilemap else - LZDecompressWram(gUnknown_8E86038, gUnknown_2039954); //gBuyMenuFrame_TmHmTilemap + LZDecompressWram(gUnknown_8E86038, gShopTilemapBuffer1); //gBuyMenuFrame_TmHmTilemap pal = Alloc(0x40); LZDecompressWram(gUnknown_8E86170, pal); LoadPalette(pal, 0xB0, 0x20); @@ -564,11 +538,10 @@ static void sub_809B10C(bool32 a0) ScheduleBgCopyTilemapToVram(1); } -//BuyMenuDrawGraphics -static void sub_809B15C(void) +static void BuyMenuDrawGraphics(void) { sub_809B764(); - sub_809BAFC(); + BuyMenuCopyTilemapData(); BuyMenuDrawMoneyBox(); ScheduleBgCopyTilemapToVram(0); ScheduleBgCopyTilemapToVram(1); @@ -576,23 +549,22 @@ static void sub_809B15C(void) ScheduleBgCopyTilemapToVram(3); } -//BuyMenuBuildListMenuTemplate -static bool8 sub_809B188(void) +static bool8 BuyMenuBuildListMenuTemplate(void) { u16 i; u16 v; - struct ListMenuItem **list = &gUnknown_2039964; + struct ListMenuItem **list = &sShopMenuListMenu; struct ShopData *mart = &gShopData; - *list = Alloc((gShopData.itemCount + 1) * sizeof(*gUnknown_2039964)); - if (gUnknown_2039964 == 0) + *list = Alloc((gShopData.itemCount + 1) * sizeof(*sShopMenuListMenu)); + if (sShopMenuListMenu == 0) goto FREE_MEMORY; - gUnknown_2039968 = Alloc((gShopData.itemCount + 1) * sizeof(*gUnknown_2039968)); - if (gUnknown_2039968 == 0) + sShopMenuItemStrings = Alloc((gShopData.itemCount + 1) * sizeof(*sShopMenuItemStrings)); + if (sShopMenuItemStrings == 0) { FREE_MEMORY: - sub_809B604(); - sub_809B670(); + BuyMenuFreeMemory(); + SetShopExitCallback(); return FALSE; } @@ -602,14 +574,14 @@ static bool8 sub_809B188(void) for (i = 0; i < mart->itemCount; i++) { - sub_809B300(&gUnknown_2039964[i], mart->itemList[i], gUnknown_2039968[i]); //PokeMartWriteNameAndIdAt(u16 a0, u16 a1, u8* a2) + PokeMartWriteNameAndIdAt(&sShopMenuListMenu[i], mart->itemList[i], sShopMenuItemStrings[i]); //PokeMartWriteNameAndIdAt(u16 a0, u16 a1, u8* a2) } ADD_CANCEL: - StringCopy(gUnknown_2039968[i], gFameCheckerText_Cancel); - gUnknown_2039964[i].label = gUnknown_2039968[i]; - gUnknown_2039964[i].index = -2; - gMultiuseListMenuTemplate.items = gUnknown_2039964; + StringCopy(sShopMenuItemStrings[i], gFameCheckerText_Cancel); + sShopMenuListMenu[i].label = sShopMenuItemStrings[i]; + sShopMenuListMenu[i].index = -2; + gMultiuseListMenuTemplate.items = sShopMenuListMenu; gMultiuseListMenuTemplate.totalItems = gShopData.itemCount + 1; gMultiuseListMenuTemplate.windowId = 4; gMultiuseListMenuTemplate.header_X = 0; @@ -622,8 +594,8 @@ static bool8 sub_809B188(void) gMultiuseListMenuTemplate.fillValue = 0; gMultiuseListMenuTemplate.cursorPal = GetFontAttribute(2, 5); gMultiuseListMenuTemplate.cursorShadowPal = GetFontAttribute(2, 7); - gMultiuseListMenuTemplate.moveCursorFunc = sub_809B320; - gMultiuseListMenuTemplate.itemPrintFunc = sub_809B408; + gMultiuseListMenuTemplate.moveCursorFunc = BuyMenuPrintItemDescriptionAndShowItemIcon; + gMultiuseListMenuTemplate.itemPrintFunc = BuyMenuPrintPriceInList; gMultiuseListMenuTemplate.scrollMultiple = 0; gMultiuseListMenuTemplate.cursorKind = 0; @@ -641,16 +613,14 @@ static bool8 sub_809B188(void) return TRUE; } -//PokeMartWriteNameAndIdAt -static void sub_809B300(struct ListMenuItem *list, u16 index, u8* dst) +static void PokeMartWriteNameAndIdAt(struct ListMenuItem *list, u16 index, u8* dst) { CopyItemName(index, dst); list->label = dst; list->index = index; } -//BuyMenuPrintItemDescriptionAndShowItemIcon -static void sub_809B320(s32 item, bool8 onInit, struct ListMenu *list) +static void BuyMenuPrintItemDescriptionAndShowItemIcon(s32 item, bool8 onInit, struct ListMenu *list) { const u8 *description; @@ -676,14 +646,13 @@ static void sub_809B320(s32 item, bool8 onInit, struct ListMenu *list) else //TM Mart { FillWindowPixelBuffer(6, PIXEL_FILL(0)); - sub_809B494(item); + LoadTmHmNameInMart(item); BuyMenuPrint(5, 2, description, 2, 3, 1, 0, 0, 0); } } -//BuyMenuPrintPriceInList -#ifdef NONMATCHING //this function was written very strangely.. -static void sub_809B408(u8 windowId, s32 item, u8 y) +#ifdef NONMATCHING +static void BuyMenuPrintPriceInList(u8 windowId, s32 item, u8 y) { u32 len, x; u8 *loc; @@ -709,7 +678,7 @@ static void sub_809B408(u8 windowId, s32 item, u8 y) } #else NAKED -static void sub_809B408(u8 windowId, s32 item, u8 y) +static void BuyMenuPrintPriceInList(u8 windowId, s32 item, u8 y) { asm_unified("\tpush {r4-r6,lr}\n" "\tsub sp, 0x14\n" @@ -779,13 +748,7 @@ static void sub_809B408(u8 windowId, s32 item, u8 y) } #endif - -/*=================================== -MATCHED/TESTED UP UNTIL HERE -===================================*/ - -//LoadTmHmNameInMart -static void sub_809B494(s32 item) +static void LoadTmHmNameInMart(s32 item) { if (item != INDEX_CANCEL) { @@ -803,19 +766,17 @@ static void sub_809B494(s32 item) } } -//GetMartUnk16_4 -u8 sub_809B56C(void) +u8 GetMartUnk16_4(void) { return gShopData.unk16_4; } -//BuyMenuPrintCursor -static void sub_809B57C(u8 listTaskId, u8 a1) +static void BuyMenuPrintCursor(u8 listTaskId, u8 a1) { - sub_809B59C(ListMenuGetYCoordForPrintingArrowCursor(listTaskId), a1); + BuyMenuPrintCursorAtYPosition(ListMenuGetYCoordForPrintingArrowCursor(listTaskId), a1); } -static void sub_809B59C(u8 y, u8 a1) +static void BuyMenuPrintCursorAtYPosition(u8 y, u8 a1) { if (a1 == 0xFF) { @@ -828,40 +789,37 @@ static void sub_809B59C(u8 y, u8 a1) } } -//BuyMenuFreeMemory -static void sub_809B604(void) +static void BuyMenuFreeMemory(void) { - if (gUnknown_2039954 != 0) - Free(gUnknown_2039954); + if (gShopTilemapBuffer1 != 0) + Free(gShopTilemapBuffer1); - if (gUnknown_2039958 != 0) - Free(gUnknown_2039958); + if (gShopTilemapBuffer2 != 0) + Free(gShopTilemapBuffer2); - if (gUnknown_203995C != 0) - Free(gUnknown_203995C); + if (gShopTilemapBuffer3 != 0) + Free(gShopTilemapBuffer3); - if (gUnknown_2039960 != 0) - Free(gUnknown_2039960); + if (gShopTilemapBuffer4 != 0) + Free(gShopTilemapBuffer4); - if (gUnknown_2039964 != 0) - Free(gUnknown_2039964); + if (sShopMenuListMenu != 0) + Free(sShopMenuListMenu); - if (gUnknown_2039968 != 0) - Free(gUnknown_2039968); + if (sShopMenuItemStrings != 0) + Free(sShopMenuItemStrings); FreeAllWindowBuffers(); } -//SetShopExitCallback -static void sub_809B670(void) +static void SetShopExitCallback(void) { - gFieldCallback = sub_809AD74; + gFieldCallback = MapPostLoadHook_ReturnToShopMenu; SetMainCallback2(CB2_ReturnToField); } -//BuyMenuAddScrollIndicatorArrows -static void sub_809B690(void) +static void BuyMenuAddScrollIndicatorArrows(void) { if (gShopData.martType != MART_TYPE_TMHM) { @@ -875,15 +833,13 @@ static void sub_809B690(void) } } -//BuyQuantityAddScrollIndicatorArrows -static void sub_809B6FC(void) +static void BuyQuantityAddScrollIndicatorArrows(void) { gShopData.unk18 = 1; gShopData.unk16_11 = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 0x98, 0x48, 0x68, 2, 0x6E, 0x6E, &gShopData.unk18); } -//BuyMenuRemoveScrollIndicatorArrows -static void sub_809B73C(void) +static void BuyMenuRemoveScrollIndicatorArrows(void) { if ((gShopData.unk16_11) == 0x1F) return; @@ -894,13 +850,12 @@ static void sub_809B73C(void) static void sub_809B764(void) { - sub_809B92C(); - sub_809BA40(); - sub_809B778(); + BuyMenuCollectEventObjectData(); + BuyMenuDrawEventObjects(); + BuyMenuDrawMapBg(); } -//BuyMenuDrawMapBg -static void sub_809B778(void) +static void BuyMenuDrawMapBg(void) { s16 i; s16 j; @@ -924,18 +879,17 @@ static void sub_809B778(void) if (metatile < NUM_METATILES_IN_PRIMARY) { - sub_809B850(i, j, (u16*)mapData->primaryTileset->metatiles + metatile * 8, metatileLayerType); + BuyMenuDrawMapMetatile(i, j, (u16*)mapData->primaryTileset->metatiles + metatile * 8, metatileLayerType); } else { - sub_809B850(i, j, (u16*)mapData->secondaryTileset->metatiles + ((metatile - NUM_METATILES_IN_PRIMARY) * 8), metatileLayerType); + BuyMenuDrawMapMetatile(i, j, (u16*)mapData->secondaryTileset->metatiles + ((metatile - NUM_METATILES_IN_PRIMARY) * 8), metatileLayerType); } } } } -//BuyMenuDrawMapMetatile -static void sub_809B850(s16 x, s16 y, const u16 *src, u8 metatileLayerType) +static void BuyMenuDrawMapMetatile(s16 x, s16 y, const u16 *src, u8 metatileLayerType) { u16 offset1 = x * 2; u16 offset2 = ((y << 0x16) + 0x400000) >> 0x10; @@ -943,22 +897,21 @@ static void sub_809B850(s16 x, s16 y, const u16 *src, u8 metatileLayerType) switch (metatileLayerType) { case 0: - sub_809B904(*gUnknown_2039960, offset1, offset2, src); - sub_809B904(*gUnknown_2039958, offset1, offset2, src + 4); + BuyMenuDrawMapMetatileLayer(*gShopTilemapBuffer4, offset1, offset2, src); + BuyMenuDrawMapMetatileLayer(*gShopTilemapBuffer2, offset1, offset2, src + 4); break; case 1: - sub_809B904(*gUnknown_203995C, offset1, offset2, src); - sub_809B904(*gUnknown_2039960, offset1, offset2, src + 4); + BuyMenuDrawMapMetatileLayer(*gShopTilemapBuffer3, offset1, offset2, src); + BuyMenuDrawMapMetatileLayer(*gShopTilemapBuffer4, offset1, offset2, src + 4); break; case 2: - sub_809B904(*gUnknown_203995C, offset1, offset2, src); - sub_809B904(*gUnknown_2039958, offset1, offset2, src + 4); + BuyMenuDrawMapMetatileLayer(*gShopTilemapBuffer3, offset1, offset2, src); + BuyMenuDrawMapMetatileLayer(*gShopTilemapBuffer2, offset1, offset2, src + 4); break; } } -//BuyMenuDrawMapMetatileLayer -static void sub_809B904(u16 *dest, s16 offset1, s16 offset2, const u16 *src) +static void BuyMenuDrawMapMetatileLayer(u16 *dest, s16 offset1, s16 offset2, const u16 *src) { // This function draws a whole 2x2 metatile. dest[offset1 + offset2] = src[0]; // top left @@ -967,9 +920,7 @@ static void sub_809B904(u16 *dest, s16 offset1, s16 offset2, const u16 *src) dest[offset1 + offset2 + 33] = src[3]; // bottom right } - -// BuyMenuCollectEventObjectData -static void sub_809B92C(void) +static void BuyMenuCollectEventObjectData(void) { s16 facingX; s16 facingY; @@ -982,7 +933,7 @@ static void sub_809B92C(void) z = PlayerGetZCoord(); for (y = 0; y < MAP_OBJECTS_COUNT; y++) - gUnknown_20398B4[y][EVENT_OBJ_ID] = MAP_OBJECTS_COUNT; + sViewportMapObjects[y][EVENT_OBJ_ID] = MAP_OBJECTS_COUNT; for (y = 0; y < 5; y++) { @@ -991,24 +942,24 @@ static void sub_809B92C(void) u8 eventObjId = GetFieldObjectIdByXYZ(facingX - 3 + x, facingY - 2 + y, z); if (eventObjId != MAP_OBJECTS_COUNT) { - gUnknown_20398B4[num][EVENT_OBJ_ID] = eventObjId; - gUnknown_20398B4[num][X_COORD] = x; - gUnknown_20398B4[num][Y_COORD] = y; + sViewportMapObjects[num][EVENT_OBJ_ID] = eventObjId; + sViewportMapObjects[num][X_COORD] = x; + sViewportMapObjects[num][Y_COORD] = y; switch (gMapObjects[eventObjId].facingDirection) { case DIR_SOUTH: - gUnknown_20398B4[num][ANIM_NUM] = 0; + sViewportMapObjects[num][ANIM_NUM] = 0; break; case DIR_NORTH: - gUnknown_20398B4[num][ANIM_NUM] = 1; + sViewportMapObjects[num][ANIM_NUM] = 1; break; case DIR_WEST: - gUnknown_20398B4[num][ANIM_NUM] = 2; + sViewportMapObjects[num][ANIM_NUM] = 2; break; case DIR_EAST: default: - gUnknown_20398B4[num][ANIM_NUM] = 3; + sViewportMapObjects[num][ANIM_NUM] = 3; break; } num++; @@ -1017,8 +968,7 @@ static void sub_809B92C(void) } } -//BuyMenuDrawEventObjects -static void sub_809BA40(void) +static void BuyMenuDrawEventObjects(void) { u8 i; u8 spriteId; @@ -1026,26 +976,26 @@ static void sub_809BA40(void) for (i = 0; i < MAP_OBJECTS_COUNT; i++) { - if (gUnknown_20398B4[i][EVENT_OBJ_ID] == MAP_OBJECTS_COUNT) + if (sViewportMapObjects[i][EVENT_OBJ_ID] == MAP_OBJECTS_COUNT) continue; - graphicsInfo = GetFieldObjectGraphicsInfo(gMapObjects[gUnknown_20398B4[i][EVENT_OBJ_ID]].graphicsId); + graphicsInfo = GetFieldObjectGraphicsInfo(gMapObjects[sViewportMapObjects[i][EVENT_OBJ_ID]].graphicsId); spriteId = AddPseudoEventObject( - gMapObjects[gUnknown_20398B4[i][EVENT_OBJ_ID]].graphicsId, + gMapObjects[sViewportMapObjects[i][EVENT_OBJ_ID]].graphicsId, SpriteCallbackDummy, - (((u16)gUnknown_20398B4[i][X_COORD] << 0x14) + 0xFFF80000) >> 0x10, - (u16)gUnknown_20398B4[i][Y_COORD] * 16 + 48 - graphicsInfo->height / 2, + (((u16)sViewportMapObjects[i][X_COORD] << 0x14) + 0xFFF80000) >> 0x10, + (u16)sViewportMapObjects[i][Y_COORD] * 16 + 48 - graphicsInfo->height / 2, 2); - StartSpriteAnim(&gSprites[spriteId], gUnknown_20398B4[i][ANIM_NUM]); + StartSpriteAnim(&gSprites[spriteId], sViewportMapObjects[i][ANIM_NUM]); } } -static void sub_809BAFC(void) +static void BuyMenuCopyTilemapData(void) { s16 i; - u16 *dst = *gUnknown_2039958; - u16 *src = *gUnknown_2039954; + u16 *dst = *gShopTilemapBuffer2; + u16 *src = *gShopTilemapBuffer1; for (i = 0; i < 0x400; i++) { @@ -1055,8 +1005,7 @@ static void sub_809BAFC(void) } } -//BuyMenuPrintItemQuantityAndPrice -static void sub_809BB44(u8 taskId) +static void BuyMenuPrintItemQuantityAndPrice(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -1067,8 +1016,7 @@ static void sub_809BB44(u8 taskId) BuyMenuPrint(3, 0, gStringVar4, 2, 0xA, 0, 0, 0, 1); } -//Task_BuyMenu -static void sub_809BBC0(u8 taskId) +static void Task_BuyMenu(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -1082,31 +1030,30 @@ static void sub_809BBC0(u8 taskId) break; case LIST_CANCEL: PlaySE(SE_SELECT); - sub_809C004(taskId); + ExitBuyMenu(taskId); break; default: PlaySE(SE_SELECT); tItemId = itemId; ClearWindowTilemap(5); - sub_809B73C(); - sub_809B57C(tListTaskId, 2); + BuyMenuRemoveScrollIndicatorArrows(); + BuyMenuPrintCursor(tListTaskId, 2); sub_809B10C(1); gShopData.itemPrice = itemid_get_market_price(itemId); if (!IsEnoughMoney(&gSaveBlock1Ptr->money, gShopData.itemPrice)) { - BuyMenuDisplayMessage(taskId, gText_YouDontHaveMoney, sub_809BF98); + BuyMenuDisplayMessage(taskId, gText_YouDontHaveMoney, BuyMenuReturnToItemList); } else { CopyItemName(itemId, gStringVar1); - BuyMenuDisplayMessage(taskId, gText_Var1CertainlyHowMany, sub_809BCA0); + BuyMenuDisplayMessage(taskId, gText_Var1CertainlyHowMany, Task_BuyHowManyDialogueInit); } } } } -//Task_BuyHowManyDialogueInit -static void sub_809BCA0(u8 taskId) +static void Task_BuyHowManyDialogueInit(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -1119,7 +1066,7 @@ static void sub_809BCA0(u8 taskId) BuyMenuPrint(1, 2, gStringVar4, 0, 2, 0, 0, 0, 1); tItemCount = 1; BuyMenuQuantityBoxNormalBorder(3, 0); - sub_809BB44(taskId); + BuyMenuPrintItemQuantityAndPrice(taskId); ScheduleBgCopyTilemapToVram(0); maxQuantity = GetMoney(&gSaveBlock1Ptr->money) / itemid_get_market_price(tItemId); if (maxQuantity > 99) @@ -1128,28 +1075,26 @@ static void sub_809BCA0(u8 taskId) gShopData.maxQuantity = (u8)maxQuantity; if (maxQuantity != 1) - sub_809B6FC(); + BuyQuantityAddScrollIndicatorArrows(); - gTasks[taskId].func = sub_809BD8C; + gTasks[taskId].func = Task_BuyHowManyDialogueHandleInput; } -//Task_BuyHowManyDialogueHandleInput -static void sub_809BD8C(u8 taskId) +static void Task_BuyHowManyDialogueHandleInput(u8 taskId) { s16 *data = gTasks[taskId].data; - if (AdjustQuantityAccordingToDPadInput(&tItemCount, gShopData.maxQuantity) == TRUE) { gShopData.itemPrice = itemid_get_market_price(tItemId) * tItemCount; - sub_809BB44(taskId); + BuyMenuPrintItemQuantityAndPrice(taskId); } else { if (JOY_NEW(A_BUTTON)) { PlaySE(SE_SELECT); - sub_809B73C(); + BuyMenuRemoveScrollIndicatorArrows(); ClearStdWindowAndFrameToTransparent(3, 0); ClearStdWindowAndFrameToTransparent(1, 0); ClearWindowTilemap(3); @@ -1158,72 +1103,67 @@ static void sub_809BD8C(u8 taskId) CopyItemName(tItemId, gStringVar1); ConvertIntToDecimalStringN(gStringVar2, tItemCount, STR_CONV_MODE_LEFT_ALIGN, 2); ConvertIntToDecimalStringN(gStringVar3, gShopData.itemPrice, STR_CONV_MODE_LEFT_ALIGN, 8); - BuyMenuDisplayMessage(taskId, gText_Var1AndYouWantedVar2, sub_809BE90); + BuyMenuDisplayMessage(taskId, gText_Var1AndYouWantedVar2, CreateBuyMenuConfirmPurchaseWindow); } else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - sub_809B73C(); + BuyMenuRemoveScrollIndicatorArrows(); ClearStdWindowAndFrameToTransparent(3, 0); ClearStdWindowAndFrameToTransparent(1, 0); ClearWindowTilemap(3); ClearWindowTilemap(1); - sub_809BF98(taskId); + BuyMenuReturnToItemList(taskId); } } } -//CreateBuyMenuConfirmPurchaseWindow -static void sub_809BE90(u8 taskId) +static void CreateBuyMenuConfirmPurchaseWindow(u8 taskId) { - BuyMenuConfirmPurchase(taskId, gUnknown_83DF0B4); //sShopBuyMenuYesNoWindowTemplates + BuyMenuConfirmPurchase(taskId, gUnknown_83DF0B4); } -//BuyMenuTryMakePurchase -static void sub_809BEA4(u8 taskId) +static void BuyMenuTryMakePurchase(u8 taskId) { s16 *data = gTasks[taskId].data; PutWindowTilemap(4); if (AddBagItem(tItemId, tItemCount) == TRUE) { - BuyMenuDisplayMessage(taskId, gText_HereYouGoThankYou, sub_809BF0C); + BuyMenuDisplayMessage(taskId, gText_HereYouGoThankYou, BuyMenuSubtractMoney); nullsub_52(taskId); - sub_809C09C(tItemId, tItemCount, 1); + RecordItemPurchase(tItemId, tItemCount, 1); } else { - BuyMenuDisplayMessage(taskId, gText_NoMoreRoomForThis, sub_809BF98); + BuyMenuDisplayMessage(taskId, gText_NoMoreRoomForThis, BuyMenuReturnToItemList); } } -//BuyMenuSubtractMoney -static void sub_809BF0C(u8 taskId) +static void BuyMenuSubtractMoney(u8 taskId) { IncrementGameStat(GAME_STAT_SHOPPED); RemoveMoney(&gSaveBlock1Ptr->money, gShopData.itemPrice); PlaySE(SE_SHOP); PrintMoneyAmountInMoneyBox(0, GetMoney(&gSaveBlock1Ptr->money), 0); - gTasks[taskId].func = sub_809BF68; + gTasks[taskId].func = Task_ReturnToItemListAfterItemPurchase; } -//Task_ReturnToItemListAfterItemPurchase -static void sub_809BF68(u8 taskId) +static void Task_ReturnToItemListAfterItemPurchase(u8 taskId) { if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - sub_809BF98(taskId); + BuyMenuReturnToItemList(taskId); } } -//BuyMenuReturnToItemList -static void sub_809BF98(u8 taskId) +static void BuyMenuReturnToItemList(u8 taskId) { s16 *data = gTasks[taskId].data; ClearDialogWindowAndFrameToTransparent(2, 0); - sub_809B57C(tListTaskId, 1); + BuyMenuPrintCursor(tListTaskId, 1); sub_809B10C(0); PutWindowTilemap(4); PutWindowTilemap(5); @@ -1231,27 +1171,25 @@ static void sub_809BF98(u8 taskId) PutWindowTilemap(6); ScheduleBgCopyTilemapToVram(0); - sub_809B690(); - gTasks[taskId].func = sub_809BBC0; + BuyMenuAddScrollIndicatorArrows(); + gTasks[taskId].func = Task_BuyMenu; } -//ExitBuyMenu -static void sub_809C004(u8 taskId) +static void ExitBuyMenu(u8 taskId) { - gFieldCallback = sub_809AD74; + gFieldCallback = MapPostLoadHook_ReturnToShopMenu; BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - gTasks[taskId].func = sub_809C04C; + gTasks[taskId].func = Task_ExitBuyMenu; } -//Task_ExitBuyMenu -static void sub_809C04C(u8 taskId) +static void Task_ExitBuyMenu(u8 taskId) { s16 *data = gTasks[taskId].data; if (!gPaletteFade.active) { DestroyListMenuTask(tListTaskId, 0, 0); - sub_809B604(); + BuyMenuFreeMemory(); SetMainCallback2(CB2_ReturnToField); DestroyTask(taskId); } @@ -1266,52 +1204,54 @@ static void nullsub_53(void) } #ifdef NONMATCHING -void sub_809C09C(u16 item, u16 quantity, u8 a2) +void RecordItemPurchase(u16 item, u16 quantity, u8 a2) { struct MartHistory *tmp; - if (gUnknown_203996C.unkA == a2) + if (gShopMenuHistory.unkA == a2) { - tmp = &gUnknown_203996C; + tmp = &gShopMenuHistory; } else { - if (gUnknown_203996C.unk16 == a2) + if (gShopMenuHistory.unk16 == a2) { - tmp = &gUnknown_203996C + 12; + tmp = &gShopMenuHistory + 12; } else { - tmp = &gUnknown_203996C + 12; - if (gUnknown_203996C.unkA == 0) + tmp = &gShopMenuHistory + 12; + if (gShopMenuHistory.unkA == 0) { - tmp = &gUnknown_203996C; - gUnknown_203996C.unkA = a2; + tmp = &gShopMenuHistory; + gShopMenuHistory.unkA = a2; } } } + if (tmp->unk4 != 0) { - gUnknown_203996C.unk9 = 1; + gShopMenuHistory.unk9 = 1; } - gUnknown_203996C.unk4 = item; - if (gUnknown_203996C.unk6 <= 998) + gShopMenuHistory.unk4 = item; + if (gShopMenuHistory.unk6 <= 998) { - gUnknown_203996C.unk6 += item; + gShopMenuHistory.unk6 += item; if (item > 999) - gUnknown_203996C.unk6 = 999; + gShopMenuHistory.unk6 = 999; } - if (gUnknown_203996C.unk0 < 999998) + + if (gShopMenuHistory.unk0 < 999998) { - gUnknown_203996C.unk0 += ((s16)itemid_get_market_price(item) >> (quantity-1))*quantity; - if (gUnknown_203996C.unk0 > 999999) - gUnknown_203996C.unk0 = 999999; + gShopMenuHistory.unk0 += ((s16)itemid_get_market_price(item) >> (quantity-1))*quantity; + if (gShopMenuHistory.unk0 > 999999) + gShopMenuHistory.unk0 = 999999; } } #else NAKED -void sub_809C09C(u16 item, u16 quantity, u8 a2) +void RecordItemPurchase(u16 item, u16 quantity, u8 a2) { asm_unified("\tpush {r4-r6,lr}\n" "\tlsls r0, 16\n" @@ -1320,14 +1260,14 @@ void sub_809C09C(u16 item, u16 quantity, u8 a2) "\tlsrs r6, r1, 16\n" "\tlsls r2, 24\n" "\tlsrs r5, r2, 24\n" - "\tldr r1, _0809C0B8 @ =gUnknown_203996C\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 gUnknown_203996C\n" + "_0809C0B8: .4byte gShopMenuHistory\n" "_0809C0BC:\n" "\tldrb r0, [r1, 0x16]\n" "\tcmp r0, r5\n" @@ -1395,10 +1335,9 @@ void sub_809C09C(u16 item, u16 quantity, u8 a2) } #endif -//RecordQuestLogItemPurchase -static void sub_809C138(void) +static void RecordQuestLogItemPurchase(void) { - struct MartHistory *history = &gUnknown_203996C; + struct MartHistory *history = &gShopMenuHistory; u16 v; v = history->unkA; @@ -1414,26 +1353,26 @@ static void sub_809C138(void) void CreatePokemartMenu(const u16 *itemsForSale) { - sub_809ABD8(itemsForSale); - sub_809AAB0(MART_TYPE_REGULAR); - sub_809AC04(EnableBothScriptContexts); + SetShopItemsForSale(itemsForSale); + CreateShopMenu(MART_TYPE_REGULAR); + SetShopMenuCallback(EnableBothScriptContexts); nullsub_53(); - memset(&gUnknown_203996C, 0, sizeof(struct MartHistory)); - gUnknown_203996C.unk8 = gMapHeader.regionMapSectionId; - gUnknown_203996C.unk14 = gMapHeader.regionMapSectionId; + memset(&gShopMenuHistory, 0, sizeof(struct MartHistory)); + gShopMenuHistory.unk8 = gMapHeader.regionMapSectionId; + gShopMenuHistory.unk14 = gMapHeader.regionMapSectionId; } void CreateDecorationShop1Menu(const u16 *itemsForSale) { - sub_809ABD8(itemsForSale); - sub_809AAB0(MART_TYPE_DECOR); - sub_809AC04(EnableBothScriptContexts); + SetShopItemsForSale(itemsForSale); + CreateShopMenu(MART_TYPE_DECOR); + SetShopMenuCallback(EnableBothScriptContexts); } void CreateDecorationShop2Menu(const u16 *itemsForSale) { - sub_809ABD8(itemsForSale); - sub_809AAB0(MART_TYPE_DECOR2); - sub_809AC04(EnableBothScriptContexts); + SetShopItemsForSale(itemsForSale); + CreateShopMenu(MART_TYPE_DECOR2); + SetShopMenuCallback(EnableBothScriptContexts); } diff --git a/src/tm_case.c b/src/tm_case.c index 25fe9a72c..9e5d32db9 100644 --- a/src/tm_case.c +++ b/src/tm_case.c @@ -1107,7 +1107,7 @@ static void Task_DoSaleOfTMs(u8 taskId) PlaySE(SE_SHOP); RemoveBagItem(gSpecialVar_ItemId, data[8]); AddMoney(&gSaveBlock1Ptr->money, itemid_get_market_price(gSpecialVar_ItemId) / 2 * data[8]); - sub_809C09C(gSpecialVar_ItemId, data[8], 2); + RecordItemPurchase(gSpecialVar_ItemId, data[8], 2); DestroyListMenuTask(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow); TMCaseSetup_GetTMCount(); TMCaseSetup_InitListMenuPositions(); diff --git a/sym_ewram.txt b/sym_ewram.txt index f2b58411a..2da51051b 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1,770 +1,732 @@ - .align 2 - .include "src/main.o" - .align 2 - .include "src/malloc.o" - .align 2 - .include "src/text_printer.o" - .align 2 - .include "src/window.o" - .align 2 - .include "src/window_8bpp.o" - .align 2 - .include "src/sprite.o" - .align 2 - .include "src/string_util.o" - .align 2 - .include "src/link.o" - .space 8 - - @ .include "src/link_rfu.o" - .align 2 - .include "src/battle_controllers.o" - .align 2 - .include "src/battle_main.o" - .align 2 - .include "src/pokemon.o" - .align 2 - .include "src/daycare.o" - .align 2 - .include "src/load_save.o" - .align 2 - .include "src/trade.o" - .align 2 - .include "src/trade_scene.o" - .align 2 - .include "src/new_game.o" - - .align 2 + .align 2 + .include "src/main.o" + .align 2 + .include "src/malloc.o" + .align 2 + .include "src/text_printer.o" + .align 2 + .include "src/window.o" + .align 2 + .include "src/window_8bpp.o" + .align 2 + .include "src/sprite.o" + .align 2 + .include "src/string_util.o" + .align 2 + .include "src/link.o" + .space 8 + + @ .include "src/link_rfu.o" + .align 2 + .include "src/battle_controllers.o" + .align 2 + .include "src/battle_main.o" + .align 2 + .include "src/pokemon.o" + .align 2 + .include "src/daycare.o" + .align 2 + .include "src/load_save.o" + .align 2 + .include "src/trade.o" + .align 2 + .include "src/trade_scene.o" + .align 2 + .include "src/new_game.o" + + .align 2 gUnknown_2031DB4: @ 2031DB4 - .space 0x8 + .space 0x8 gUnknown_2031DBC: @ 2031DBC - .space 0x8 + .space 0x8 gUnknown_2031DC4: @ 2031DC4 - .space 0x8 + .space 0x8 gUnknown_2031DCC: @ 2031DCC - .space 0x8 + .space 0x8 gUnknown_2031DD4: @ 2031DD4 - .space 0x4 + .space 0x4 gDisableMapMusicChangeOnMapLoad: @ 2031DD8 - .space 0x2 + .space 0x2 gUnknown_2031DDA: @ 2031DDA - .space 0x2 + .space 0x2 gUnknown_2031DDC: @ 2031DDC - .space 0x4 + .space 0x4 gUnknown_2031DE0: @ 2031DE0 - .space 0x4 + .space 0x4 gUnknown_2031DE4: @ 2031DE4 - .space 0x4 + .space 0x4 gUnknown_2031DE8: @ 2031DE8 - .space 0x2 + .space 0x2 gUnknown_2031DEA: @ 2031DEA - .space 0x2 + .space 0x2 gUnknown_2031DEC: @ 2031DEC - .space 0x10 + .space 0x10 - .align 2 - .include "src/fieldmap.o" + .align 2 + .include "src/fieldmap.o" gUnknown_2036E28: @ 2036E28 - .space 0x4 + .space 0x4 gUnknown_2036E2C: @ 2036E2C - .space 0x4 + .space 0x4 gUnknown_2036E30: @ 2036E30 - .space 0x4 + .space 0x4 gUnknown_2036E34: @ 2036E34 - .space 0x4 + .space 0x4 gMapObjects: @ 2036E38 - .space 0x240 + .space 0x240 gPlayerAvatar: @ 2037078 - .space 0x20 + .space 0x20 gUnknown_2037098: @ 2037098 - .space 0x2 + .space 0x2 gUnknown_203709A: @ 203709A - .space 0x2 + .space 0x2 gUnknown_203709C: @ 203709C - .space 0x4 - - .align 2 - .include "src/script.o" - .align 2 - .include "src/scrcmd.o" - .align 2 - .include "src/event_data.o" - .align 2 - .include "src/start_menu.o" - .align 2 - .include "src/tileset_anims.o" - .align 2 - .include "src/palette.o" - .align 2 - .include "src/sound.o" - - .align 2 + .space 0x4 + + .align 2 + .include "src/script.o" + .align 2 + .include "src/scrcmd.o" + .align 2 + .include "src/event_data.o" + .align 2 + .include "src/start_menu.o" + .align 2 + .include "src/tileset_anims.o" + .align 2 + .include "src/palette.o" + .align 2 + .include "src/sound.o" + + .align 2 gUnknown_2037ED4: @ 2037ED4 - .space 0x4 + .space 0x4 gUnknown_2037ED8: @ 2037ED8 - .space 0x4 + .space 0x4 gAnimScriptCallback: @ 2037EDC - .space 0x4 + .space 0x4 gUnknown_2037EE0: @ 2037EE0 - .space 0x1 + .space 0x1 gAnimScriptActive: @ 2037EE1 - .space 0x1 + .space 0x1 gAnimVisualTaskCount: @ 2037EE2 - .space 0x1 + .space 0x1 gUnknown_2037EE3: @ 2037EE3 - .space 0x1 + .space 0x1 gAnimDisableStructPtr: @ 2037EE4 - .space 0x4 + .space 0x4 gAnimMoveDmg: @ 2037EE8 - .space 0x4 + .space 0x4 gAnimMovePower: @ 2037EEC - .space 0x2 + .space 0x2 gUnknown_2037EEE: @ 2037EEE - .space 0x10 + .space 0x10 gAnimFriendship: @ 2037EFE - .space 0x2 + .space 0x2 gWeatherMoveAnim: @ 2037F00 - .space 0x2 + .space 0x2 gBattleAnimArgs: @ 2037F02 - .space 0x10 + .space 0x10 gUnknown_2037F12: @ 2037F12 - .space 0x2 + .space 0x2 gUnknown_2037F14: @ 2037F14 - .space 0x2 + .space 0x2 gAnimMoveTurn: @ 2037F16 - .space 0x1 + .space 0x1 gUnknown_2037F17: @ 2037F17 - .space 0x1 + .space 0x1 gUnknown_2037F18: @ 2037F18 - .space 0x2 + .space 0x2 gBattleAnimAttacker: @ 2037F1A - .space 0x1 + .space 0x1 gBattleAnimTarget: @ 2037F1B - .space 0x1 + .space 0x1 gAnimBattlerSpecies: @ 2037F1C - .space 0x8 + .space 0x8 gUnknown_2037F24: @ 2037F24 - .space 0x4 + .space 0x4 - .align 2 - .include "src/battle_anim_mons.o" - .align 2 - .include "src/title_screen.o" + .align 2 + .include "src/battle_anim_mons.o" + .align 2 + .include "src/title_screen.o" - .align 2 + .align 2 gUnknown_2037F34: @ 2037F34 - .space 0x200 + .space 0x200 gUnknown_2038134: @ 2038134 - .space 0x260 + .space 0x260 gUnknown_2038394: @ 2038394 - .space 0x2F0 + .space 0x2F0 gUnknown_2038684: @ 2038684 - .space 0x20 + .space 0x20 gUnknown_20386A4: @ 20386A4 - .space 0x4 + .space 0x4 gUnknown_20386A8: @ 20386A8 - .space 0x4 + .space 0x4 - .include "src/battle_setup.o" - .align 2 - .include "src/wild_encounter.o" + .include "src/battle_setup.o" + .align 2 + .include "src/wild_encounter.o" - .align 2 + .align 2 gFieldEffectArguments: @ 20386E0 - .space 0x20 + .space 0x20 - .align 2 - .include "src/scanline_effect.o" + .align 2 + .include "src/scanline_effect.o" - .align 2 - .include "src/option_menu.o" + .align 2 + .include "src/option_menu.o" gTrainerCards: @ 2039624 - .space 0x180 + .space 0x180 gUnknown_20397A4: @ 20397A4 - .space 0x4 + .space 0x4 gUnknown_20397A8: @ 20397A8 - .space 0x4 + .space 0x4 gUnknown_20397AC: @ 20397AC - .space 0x4 + .space 0x4 gUnknown_20397B0: @ 20397B0 - .space 0x4 + .space 0x4 gUnknown_20397B4: @ 20397B4 - .space 0x1 + .space 0x1 gUnknown_20397B5: @ 20397B5 - .space 0x1 + .space 0x1 gUnknown_20397B6: @ 20397B6 - .space 0x1 + .space 0x1 gUnknown_20397B7: @ 20397B7 - .space 0x1 + .space 0x1 gUnknown_20397B8: @ 20397B8 - .space 0x2 + .space 0x2 gUnknown_20397BA: @ 20397BA - .space 0x2 + .space 0x2 gUnknown_20397BC: @ 20397BC - .space 0x64 + .space 0x64 gUnknown_2039820: @ 2039820 - .space 0x1 + .space 0x1 gUnknown_2039821: @ 2039821 - .space 0x1 + .space 0x1 gUnknown_2039822: @ 2039822 - .space 0x1 + .space 0x1 gUnknown_2039823: @ 2039823 - .space 0x1 + .space 0x1 gUnknown_2039824: @ 2039824 - .space 0x1 + .space 0x1 gUnknown_2039825: @ 2039825 - .space 0x1 + .space 0x1 gUnknown_2039826: @ 2039826 - .space 0x2 + .space 0x2 gUnknown_2039828: @ 2039828 - .space 0x4 + .space 0x4 gUnknown_203982C: @ 203982C - .space 0x4 + .space 0x4 gUnknown_2039830: @ 2039830 - .space 0x40 + .space 0x40 gUnknown_2039870: @ 2039870 - .space 0x4 + .space 0x4 gUnknown_2039874: @ 2039874 - .space 0x4 + .space 0x4 - .align 2 - .include "src/item_menu_icons.o" + .align 2 + .include "src/item_menu_icons.o" gBagPockets: @ 203988C - .space 0x28 + .space 0x28 -gUnknown_20398B4: @ 20398B4 - .space 0x4 + .align 2 + .include "src/shop.o" + .align 2 + .include "src/sea_cottage_special_anim.o" + .align 2 + .include "src/script_menu.o" -gUnknown_20398B8: @ 20398B8 - .space 0x2 - -gUnknown_20398BA: @ 20398BA - .space 0x7A - -gShopData: @ 2039934 - .space 0xE - -gUnknown_2039942: @ 2039942 - .space 0xE - -gUnknown_2039950: @ 2039950 - .space 0x4 - -gUnknown_2039954: @ 2039954 - .space 0x4 - -gUnknown_2039958: @ 2039958 - .space 0x4 - -gUnknown_203995C: @ 203995C - .space 0x4 - -gUnknown_2039960: @ 2039960 - .space 0x4 - -gUnknown_2039964: @ 2039964 - .space 0x4 - -gUnknown_2039968: @ 2039968 - .space 0x4 - -gUnknown_203996C: @ 203996C - .space 0x18 - -gUnknown_2039984: @ 2039984 - .space 0x4 - - .align 2 - .include "src/script_menu.o" - - .align 2 + .align 2 gUnknown_203998C: @ 203998C - .space 0x4 + .space 0x4 - .align 2 - .include "src/money.o" + .align 2 + .include "src/money.o" - .align 2 - .include "src/safari_zone.o" - .align 2 - .include "src/item_use.o" + .align 2 + .include "src/safari_zone.o" + .align 2 + .include "src/item_use.o" - .align 2 + .align 2 gUnknown_203999C: @ 203999C - .space 0x8 - - .align 2 - .include "src/dragon.o" - .align 2 - .include "src/battle_anim_utility_funcs.o" - .align 2 - .include "src/battle_intro.o" - .align 2 - .include "src/easy_chat.o" - .align 2 - .include "src/mon_markings.o" - .align 2 - .include "src/mail.o" - .align 2 - .include "src/menu_helpers.o" - - .align 2 + .space 0x8 + + .align 2 + .include "src/dragon.o" + .align 2 + .include "src/battle_anim_utility_funcs.o" + .align 2 + .include "src/battle_intro.o" + .align 2 + .include "src/easy_chat.o" + .align 2 + .include "src/mon_markings.o" + .align 2 + .include "src/mail.o" + .align 2 + .include "src/menu_helpers.o" + + .align 2 gUnknown_20399D4: @ 20399D4 - .space 0x4 + .space 0x4 gUnknown_20399D8: @ 20399D8 - .space 0x4 + .space 0x4 gUnknown_20399DC: @ 20399DC - .space 0x4 + .space 0x4 gUnknown_20399E0: @ 20399E0 - .space 0x4 + .space 0x4 gUnknown_20399E4: @ 20399E4 - .space 0x4 + .space 0x4 gUnknown_20399E8: @ 20399E8 - .space 0x4 + .space 0x4 gUnknown_20399EC: @ 20399EC - .space 0x4 + .space 0x4 gUnknown_20399F0: @ 20399F0 - .space 0xC + .space 0xC gUnknown_20399FC: @ 20399FC - .space 0x4 + .space 0x4 gAIScriptPtr: @ 2039A00 - .space 0x4 + .space 0x4 gPlayerFacingPosition: @ 2039A04 - .space 0x8 - - .align 2 - .include "src/field_specials.o" - .align 2 - .include "src/battle_records.o" - .align 2 - .include "src/evolution_scene.o" - .align 2 - .include "src/coins.o" - .align 2 - .include "src/battle_transition.o" + .space 0x8 + + .align 2 + .include "src/field_specials.o" + .align 2 + .include "src/battle_records.o" + .align 2 + .include "src/evolution_scene.o" + .align 2 + .include "src/coins.o" + .align 2 + .include "src/battle_transition.o" gUnknown_2039A30: @ 2039A30 - .space 0x4 + .space 0x4 gUnknown_2039A34: @ 2039A34 - .space 0x4 + .space 0x4 - .align 2 - .include "src/save.o" - .align 2 - .include "src/mystery_event_script.o" + .align 2 + .include "src/save.o" + .align 2 + .include "src/mystery_event_script.o" gUnknown_203AAB0: @ 203AAB0 - .space 0x4 - - .align 2 - .include "src/learn_move.o" - .align 2 - .include "src/battle_tower.o" - .align 2 - .include "src/player_pc.o" - .align 2 - .include "src/intro.o" - .align 2 - .include "src/hall_of_fame.o" - .align 2 - .include "src/credits.o" - .align 2 - .include "src/diploma.o" - - .align 2 + .space 0x4 + + .align 2 + .include "src/learn_move.o" + .align 2 + .include "src/battle_tower.o" + .align 2 + .include "src/player_pc.o" + .align 2 + .include "src/intro.o" + .align 2 + .include "src/hall_of_fame.o" + .align 2 + .include "src/credits.o" + .align 2 + .include "src/diploma.o" + + .align 2 gUnknown_203AB4C: @ 203AB4C - .space 0x4 + .space 0x4 gUnknown_203AB50: @ 203AB50 - .space 0x4 + .space 0x4 gUnknown_203AB54: @ 203AB54 - .space 0x4 + .space 0x4 - .include "src/new_menu_helpers.o" - .align 2 + .include "src/new_menu_helpers.o" + .align 2 gUnknown_203ABE4: @ 203ABE4 - .space 0x4 + .space 0x4 gUnknown_203ABE8: @ 203ABE8 - .space 0x4 + .space 0x4 - .align 2 - .include "src/map_preview_screen.o" + .align 2 + .include "src/map_preview_screen.o" - .align 2 + .align 2 gUnknown_203ABF0: @ 203ABF0 - .space 0x18 + .space 0x18 gUnknown_203AC08: @ 203AC08 - .space 0xDC + .space 0xDC gUnknown_203ACE4: @ 203ACE4 - .space 0x4 + .space 0x4 gUnknown_203ACE8: @ 203ACE8 - .space 0x4 + .space 0x4 gUnknown_203ACEC: @ 203ACEC - .space 0x4 + .space 0x4 gUnknown_203ACF0: @ 203ACF0 - .space 0x4 + .space 0x4 - .align 2 - .include "src/list_menu.o" - .align 2 + .align 2 + .include "src/list_menu.o" + .align 2 gUnknown_203ACFC: @ 203ACFC - .space 0x6 + .space 0x6 gUnknown_203AD02: @ 203AD02 - .space 0x2 + .space 0x2 gUnknown_203AD04: @ 203AD04 - .space 0x6 + .space 0x6 gUnknown_203AD0A: @ 203AD0A - .space 0x6 + .space 0x6 gUnknown_203AD10: @ 203AD10 - .space 0x4 + .space 0x4 gUnknown_203AD14: @ 203AD14 - .space 0x4 + .space 0x4 gUnknown_203AD18: @ 203AD18 - .space 0x4 + .space 0x4 gUnknown_203AD1C: @ 203AD1C - .space 0x4 + .space 0x4 gUnknown_203AD20: @ 203AD20 - .space 0x4 + .space 0x4 gUnknown_203AD24: @ 203AD24 - .space 0x4 + .space 0x4 gUnknown_203AD28: @ 203AD28 - .space 0x4 + .space 0x4 gUnknown_203AD2C: @ 203AD2C - .space 0x4 + .space 0x4 gSpecialVar_ItemId: @ 203AD30 - .space 0x4 - - .align 2 - .include "src/bag.o" - .align 2 - .include "src/trainer_pokemon_sprites.o" - .align 2 - .include "src/vs_seeker.o" - .align 2 - .include "src/item_pc.o" - .align 2 - .include "src/mailbox_pc.o" - .align 2 - .include "src/menu.o" - .align 2 - .include "src/quest_log.o" - - .align 2 + .space 0x4 + + .align 2 + .include "src/bag.o" + .align 2 + .include "src/trainer_pokemon_sprites.o" + .align 2 + .include "src/vs_seeker.o" + .align 2 + .include "src/item_pc.o" + .align 2 + .include "src/mailbox_pc.o" + .align 2 + .include "src/menu.o" + .align 2 + .include "src/quest_log.o" + + .align 2 gUnknown_203B04C: @ 203B04C - .space 0xC + .space 0xC gUnknown_203B058: @ 203B058 - .space 0x1 + .space 0x1 gUnknown_203B059: @ 203B059 - .space 0x3 + .space 0x3 gUnknown_203B05C: @ 203B05C - .space 0x8 + .space 0x8 gUnknown_203B064: @ 203B064 - .space 0x4 + .space 0x4 gUnknown_203B068: @ 203B068 - .space 0x2 + .space 0x2 gUnknown_203B06A: @ 203B06A - .space 0x2 + .space 0x2 gUnknown_203B06C: @ 203B06C - .space 0x18 + .space 0x18 gUnknown_203B084: @ 203B084 - .space 0x4 + .space 0x4 gUnknown_203B088: @ 203B088 - .space 0x4 + .space 0x4 gUnknown_203B08C: @ 203B08C - .space 0x4 + .space 0x4 gUnknown_203B090: @ 203B090 - .space 0x4 + .space 0x4 gUnknown_203B094: @ 203B094 - .space 0x4 + .space 0x4 gUnknown_203B098: @ 203B098 - .space 0x4 + .space 0x4 gUnknown_203B09C: @ 203B09C - .space 0x4 + .space 0x4 gUnknown_203B0A0: @ 203B0A0 - .space 0x9 + .space 0x9 gUnknown_203B0A9: @ 203B0A9 - .space 0x5 + .space 0x5 gUnknown_203B0AE: @ 203B0AE - .space 0x6 + .space 0x6 gUnknown_203B0B4: @ 203B0B4 - .space 0x4 + .space 0x4 gUnknown_203B0B8: @ 203B0B8 - .space 0x4 + .space 0x4 gUnknown_203B0BC: @ 203B0BC - .space 0x4 + .space 0x4 gUnknown_203B0C0: @ 203B0C0 - .space 0x1 + .space 0x1 gUnknown_203B0C1: @ 203B0C1 - .space 0x3 + .space 0x3 gPostMenuFieldCallback: @ 203B0C4 - .space 0x4 + .space 0x4 gUnknown_203B0C8: @ 203B0C8 - .space 0x4 + .space 0x4 gUnknown_203B0CC: @ 203B0CC - .space 0x4 + .space 0x4 gUnknown_203B0D0: @ 203B0D0 - .space 0x4 + .space 0x4 gSelectedOrderFromParty: @ 203B0D4 - .space 0x4 + .space 0x4 gUnknown_203B0D8: @ 203B0D8 - .space 0x4 + .space 0x4 gUnknown_203B0DC: @ 203B0DC - .space 0x4 + .space 0x4 gUnknown_203B0E0: @ 203B0E0 - .space 0x4 + .space 0x4 gUnknown_203B0E4: @ 203B0E4 - .space 0x4 + .space 0x4 gUnknown_203B0E8: @ 203B0E8 - .space 0x4 - - .align 2 - .include "src/help_system_812B1E0.o" - .align 2 - .include "src/fame_checker.o" - .align 2 - .include "src/oak_speech.o" - .align 2 - .include "src/tm_case.o" - .include "src/menu_indicators.o" + .space 0x4 + + .align 2 + .include "src/help_system_812B1E0.o" + .align 2 + .include "src/fame_checker.o" + .align 2 + .include "src/oak_speech.o" + .align 2 + .include "src/tm_case.o" + .include "src/menu_indicators.o" gUnknown_203B140: @ 203B140 - .space 0x4 + .space 0x4 gUnknown_203B144: @ 203B144 - .space 0x4 + .space 0x4 gUnknown_203B148: @ 203B148 - .space 0x10 + .space 0x10 gUnknown_203B158: @ 203B158 - .space 0x4 + .space 0x4 gUnknown_203B15C: @ 203B15C - .space 0x4 + .space 0x4 gUnknown_203B160: @ 203B160 - .space 0x4 + .space 0x4 gUnknown_203B164: @ 203B164 - .space 0x4 + .space 0x4 gUnknown_203B168: @ 203B168 - .space 0x4 + .space 0x4 gUnknown_203B16C: @ 203B16C - .space 0x1 + .space 0x1 gUnknown_203B16D: @ 203B16D - .space 0x1 + .space 0x1 gUnknown_203B16E: @ 203B16E - .space 0x2 + .space 0x2 gUnknown_203B170: @ 203B170 - .space 0x4 + .space 0x4 - .align 2 - .include "src/help_system.o" - .align 2 - .include "src/dynamic_placeholder_text_util.o" - .align 2 - .include "src/berry_pouch.o" - .align 2 - .include "src/slot_machine.o" + .align 2 + .include "src/help_system.o" + .align 2 + .include "src/dynamic_placeholder_text_util.o" + .align 2 + .include "src/berry_pouch.o" + .align 2 + .include "src/slot_machine.o" sLocationHistory: @ 203F3A8 - .space 0x6 + .space 0x6 sRoamerLocation: @ 203F3AE - .space 0x2 - - .align 2 - .include "src/mystery_gift_menu.o" - .align 2 - .include "src/mevent.o" - .align 2 - .include "src/mevent_server_helpers.o" - .align 2 - .include "src/mevent_client.o" - .align 2 - .include "src/mevent_server.o" - .align 2 - .include "src/mevent_8145654.o" - .align 2 - .include "src/seagallop.o" - - .align 2 + .space 0x2 + + .align 2 + .include "src/mystery_gift_menu.o" + .align 2 + .include "src/mevent.o" + .align 2 + .include "src/mevent_server_helpers.o" + .align 2 + .include "src/mevent_client.o" + .align 2 + .include "src/mevent_server.o" + .align 2 + .include "src/mevent_8145654.o" + .align 2 + .include "src/seagallop.o" + + .align 2 gUnknown_203F3D4: @ 203F3D4 - .space 0x4 + .space 0x4 gUnknown_203F3D8: @ 203F3D8 - .space 0x4 + .space 0x4 gUnknown_203F3DC: @ 203F3DC - .space 0x4 + .space 0x4 gUnknown_203F3E0: @ 203F3E0 - .space 0x4 + .space 0x4 gUnknown_203F3E4: @ 203F3E4 - .space 0x14 + .space 0x14 gUnknown_203F3F8: @ 203F3F8 - .space 0x8 + .space 0x8 gUnknown_203F400: @ 203F400 - .space 0x2C + .space 0x2C gUnknown_203F42C: @ 203F42C - .space 0x10 + .space 0x10 gUnknown_203F43C: @ 203F43C - .space 0x4 + .space 0x4 gUnknown_203F440: @ 203F440 - .space 0x4 - - .align 2 - .include "src/teachy_tv.o" - .align 2 - .include "src/unk_815C980.o" - .align 2 - .include "src/trainer_tower.o" - .align 2 - .include "src/berry_powder.o" + .space 0x4 + + .align 2 + .include "src/teachy_tv.o" + .align 2 + .include "src/unk_815C980.o" + .align 2 + .include "src/trainer_tower.o" + .align 2 + .include "src/berry_powder.o" |