diff options
Diffstat (limited to 'src/shop.c')
-rw-r--r-- | src/shop.c | 342 |
1 files changed, 0 insertions, 342 deletions
diff --git a/src/shop.c b/src/shop.c deleted file mode 100644 index d53646a88..000000000 --- a/src/shop.c +++ /dev/null @@ -1,342 +0,0 @@ -#include "global.h" -#include "shop.h" -#include "decompress.h" -#include "field_fadetransition.h" -#include "field_weather.h" -#include "item_menu.h" -#include "main.h" -#include "menu.h" -#include "menu_helpers.h" -#include "money.h" -#include "palette.h" -#include "script.h" -#include "sound.h" -#include "sprite.h" -#include "strings.h" -#include "task.h" -#include "tv.h" -#include "unknown_task.h" - -struct UnknownShopStruct -{ - /* 0x0 */ void (* callback) (void); - /* 0x4 */ u16 *itemList; - /* 0x8 */ u8 itemCount; - /* 0x9 */ u8 unk9; - /* 0xA */ u8 unkA; - /* 0xB */ u8 unkB; - /* 0xC */ bool8 unkC; - // unknown size -}; - -extern struct UnknownShopStruct gUnknown_03000708; -extern struct MenuAction gUnknown_083CC6D0[]; - -extern u8 gUnknown_083CC6E8[]; -extern u8 gUnknown_083CC6EB[]; -extern u8 gBuyMenuFrame_Gfx[]; - -extern u16 gBuyMenuFrame_Tilemap[]; -extern u16 gMenuMoneyPal[16]; -extern u16 gUnknown_083CC710[2]; - -u8 CreateShopMenu(bool8 var) -{ - ScriptContext2_Enable(); - gUnknown_03000708.unkC = var; - gUnknown_03000708.unk9 = 0; - - if(var == FALSE) - { - gUnknown_03000708.unkA = 2; - MenuDrawTextWindow(0, 0, 10, 7); - PrintMenuItemsReordered(1, 1, 3, gUnknown_083CC6D0, (u8 *)gUnknown_083CC6E8); - } - else - { - gUnknown_03000708.unkA = 1; - MenuDrawTextWindow(0, 0, 10, 5); - PrintMenuItemsReordered(1, 1, 2, gUnknown_083CC6D0, (u8 *)gUnknown_083CC6EB); - } - InitMenu(0, 1, 1, gUnknown_03000708.unkA + 1, 0, 9); - - return CreateTask(sub_80B2E38, 8); -} - -void SetShopMenuCallback(void *callbackPtr) -{ - gUnknown_03000708.callback = callbackPtr; -} - -void SetShopItemsForSale(u16 *items) -{ - u16 i = 0; - - gUnknown_03000708.itemList = items; - gUnknown_03000708.itemCount = 0; - - while (gUnknown_03000708.itemList[i]) - { - gUnknown_03000708.itemCount++; - i++; - } -} - -void sub_80B2E38(u8 var) -{ - const u8 local = var; - - if(gMain.newAndRepeatedKeys & 0x40) - { - if(gUnknown_03000708.unk9) - { - PlaySE(0x5); - gUnknown_03000708.unk9 = MoveMenuCursor(-1); - } - } - else if(gMain.newAndRepeatedKeys & 0x80) - { - if(gUnknown_03000708.unk9 != gUnknown_03000708.unkA) - { - PlaySE(0x5); - gUnknown_03000708.unk9 = MoveMenuCursor(1); - } - } - else if (gMain.newKeys & 1) - { - PlaySE(0x5); - if(!gUnknown_03000708.unkC) - { - gUnknown_083CC6D0[gUnknown_083CC6E8[gUnknown_03000708.unk9]].func(local); - } - else - { - gUnknown_083CC6D0[gUnknown_083CC6EB[gUnknown_03000708.unk9]].func(local); - } - } - else if(gMain.newKeys & 2) - { - PlaySE(0x5); - HandleShopMenuQuit(local); - } -} - -void sub_80B2EFC(u8 taskId) -{ - gTasks[taskId].data[8] = (u32)BuyMenuDrawGraphics >> 16; - gTasks[taskId].data[9] = (u32)BuyMenuDrawGraphics; - gTasks[taskId].func = sub_80B2FA0; - fade_screen(1, 0); -} - -void sub_80B2F30(u8 taskId) -{ - gTasks[taskId].data[8] = (u32)sub_80A6300 >> 16; - gTasks[taskId].data[9] = (u32)sub_80A6300; - gTasks[taskId].func = sub_80B2FA0; - fade_screen(1, 0); -} - -void HandleShopMenuQuit(u8 taskId) -{ - HandleDestroyMenuCursors(); - MenuZeroFillWindowRect(0, 0, 11, 8); - sub_80BE3BC(); // in tv.s? - ScriptContext2_Disable(); - DestroyTask(taskId); - - if(gUnknown_03000708.callback) - gUnknown_03000708.callback(); // run the callback if it exists. -} - -void sub_80B2FA0(u8 taskId) -{ - if(!gPaletteFade.active) - { - SetMainCallback2((void *)((u16)gTasks[taskId].data[8] << 16 | (u16)gTasks[taskId].data[9])); - DestroyTask(taskId); - } -} - -void ReturnToShopMenuAfterExitingSellMenu(u8 taskId) -{ - CreateShopMenu(gUnknown_03000708.unkC); - DestroyTask(taskId); -} - -void Task_ExitSellMenu(u8 taskId) -{ - if(sub_807D770() == 1) - { - if(gUnknown_03000708.unkC == 2) - DisplayItemMessageOnField(taskId, gOtherText_CanIHelpYou, ReturnToShopMenuAfterExitingSellMenu, 0); - else - DisplayItemMessageOnField(taskId, gOtherText_AnythingElse, ReturnToShopMenuAfterExitingSellMenu, 0); - } -} - -void sub_80B3050(void) -{ - pal_fill_black(); - CreateTask(Task_ExitSellMenu, 0x8); -} - -void sub_80B3068(u8 taskId) -{ - Task_ExitSellMenu(taskId); -} - -void unref_sub_80B3078(u8 taskId) -{ - gTasks[taskId].func = Task_ExitSellMenu; -} - -void sub_80B3094(void) -{ - AnimateSprites(); - BuildOamBuffer(); - RunTasks(); - UpdatePaletteFade(); -} - -void sub_80B30AC(void) -{ - void *addr; - void *addr2; - void *addr3; - u16 *tempArr; - u16 *tempArr2; - u16 *tempArr3; - - LoadOam(); - ProcessSpriteCopyRequests(); - TransferPlttBuffer(); - - // temp vars needed to match for some dumb reason - tempArr = gBGTilemapBuffers[1]; - addr = (void *)(VRAM + 0xE800); - DmaCopy16(3, tempArr, addr, 0x800); - tempArr2 = gBGTilemapBuffers[2]; - addr2 = (void *)(VRAM + 0xE000); - DmaCopy16(3, tempArr2, addr2, 0x800); - tempArr3 = gBGTilemapBuffers[3]; - addr3 = (void *)(VRAM + 0xF000); - DmaCopy16(3, tempArr3, addr3, 0x800); -} - -// this function is fugly. pls fix -void BuyMenuDrawGraphics(void) -{ - void *addr; - register u16 zero2 asm("r5"); - - sub_80F9438(); - remove_some_task(); - REG_BG1HOFS = (zero2 = 0); - REG_BG1VOFS = zero2; - REG_BG2HOFS = zero2; - REG_BG2VOFS = zero2; - REG_BG3HOFS = zero2; - REG_BG3VOFS = zero2; - gPaletteFade.bufferTransferDisabled = 1; - addr = (void*)OAM; - { - register const u32 zero asm("r6") = 0; - DmaFill32(3, zero, addr, OAM_SIZE); - LZDecompressVram(gBuyMenuFrame_Gfx, (void*)(VRAM + 0x7C00)); - sub_800D238(gBuyMenuFrame_Tilemap, (void *)0x02018000); - LoadCompressedPalette(gMenuMoneyPal, 0xC0, sizeof(gMenuMoneyPal)); - FreeAllSpritePalettes(); - ResetPaletteFade(); - ResetSpriteData(); - ResetTasks(); - SetUpWindowConfig(&gWindowConfig_81E6DFC); - InitMenuWindow(&gWindowConfig_81E6DFC); - BuyMenuDrawMapGraphics(); - gUnknown_03000708.unk9 = zero; - gUnknown_03000708.unkB = zero2; - MenuZeroFillWindowRect(0, 0, 0x20, 0x20); - sub_80B7C14(gSaveBlock1.money, 0, 0); - sub_80B3764(0, 7); - sub_80B37EC(); - sub_80B3270(); - CreateTask(sub_80B40E8, 0x8); - sub_80B3240(); - asm("":::"r4"); // what?? - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, zero); - gPaletteFade.bufferTransferDisabled = 0; - SetVBlankCallback(sub_80B30AC); - SetMainCallback2(sub_80B3094); - } -} - -void sub_80B3240(void) -{ - u16 tempArr[2]; - - memcpy(tempArr, gUnknown_083CC710, sizeof(tempArr)); - LoadPalette(&tempArr[1], 0xD1, 2); - LoadPalette(&tempArr[0], 0xD8, 2); -} - -void sub_80B3270(void) -{ - sub_80F944C(); - - if(gUnknown_03000708.itemCount > 7) - { - CreateVerticalScrollIndicators(0, 172, 12); - CreateVerticalScrollIndicators(1, 172, 148); - sub_80F979C(0, 1); - } -} - -void sub_80B32A4(void) -{ - if(gUnknown_03000708.unkB == 0) - sub_80F979C(0, 1); - else - sub_80F979C(0, 0); - - if(gUnknown_03000708.unkB + 7 >= gUnknown_03000708.itemCount) - sub_80F979C(1, 1); - else - sub_80F979C(1, 0); -} - -void sub_80B32EC(u16 *array, s16 offset1, s16 offset2) -{ - array[offset1 + offset2] = 0xC3E1; - array[offset1 + offset2 + 1] = 0xC3E1; -} - -void BuyMenuDrawMapMetatileLayer(u16 *array, s16 offset1, s16 offset2, u16 *array2) -{ - array[offset1 + offset2] = array2[0]; - array[offset1 + offset2 + 1] = array2[1]; - array[offset1 + offset2 + 32] = array2[2]; - array[offset1 + offset2 + 33] = array2[3]; -} - -void BuyMenuDrawMapMetatile(int var1, int var2, u16 *var3, s8 var4) -{ - u8 tempVar4 = var4; - s16 offset1 = var1 * 2; - s16 offset2 = (var2 * 0x40) + 0x40; - - switch(tempVar4) - { - case 0: // _080B335C - BuyMenuDrawMapMetatileLayer(gBGTilemapBuffers[2], offset1, offset2, var3); - BuyMenuDrawMapMetatileLayer(gBGTilemapBuffers[1], offset1, offset2, var3 + 4); - break; - case 1: // _080B3364 - BuyMenuDrawMapMetatileLayer(gBGTilemapBuffers[3], offset1, offset2, var3); - BuyMenuDrawMapMetatileLayer(gBGTilemapBuffers[2], offset1, offset2, var3 + 4); - break; - case 2: // _080B3398 - BuyMenuDrawMapMetatileLayer(gBGTilemapBuffers[3], offset1, offset2, var3); - BuyMenuDrawMapMetatileLayer(gBGTilemapBuffers[1], offset1, offset2, var3 + 4); - break; - } -} |