extract graphics data
This commit is contained in:
@@ -7,21 +7,18 @@
|
||||
#include "field_map_obj.h"
|
||||
#include "field_camera.h"
|
||||
|
||||
// Defines
|
||||
#define t0 data[0]
|
||||
#define tX data[4]
|
||||
#define tY data[5]
|
||||
#define tListTaskId data[7]
|
||||
|
||||
// RAM
|
||||
EWRAM_DATA u8 gUnknown_2039984 = 0;
|
||||
|
||||
|
||||
// Function Declarations
|
||||
static void sub_809C1D8(u8 taskId, const u16* a1, u16 a2);
|
||||
static void sub_809C334(u8 taskId);
|
||||
static void sub_809C500(u8 taskId);
|
||||
static void sub_809C640(u8 taskId);
|
||||
|
||||
// Data Definitions
|
||||
static const u16 gUnknown_83DF0D4[] = {0x0308, 0x030a, 0x02d0};
|
||||
static const u16 gUnknown_83DF0DA[] = {0x0309, 0x030b, 0x02d1};
|
||||
static const u16 gUnknown_83DF0E0[] = {0x0310, 0x0312, 0x02d8};
|
||||
@@ -30,34 +27,52 @@ static const u16 gUnknown_83DF0EC[] = {0x02e3, 0x0316, 0x0314};
|
||||
static const u16 gUnknown_83DF0F2[] = {0x02e4, 0x0317, 0x0315};
|
||||
static const u16 gUnknown_83DF0F8[] = {0x02eb, 0x031e, 0x031c};
|
||||
|
||||
|
||||
// Functions
|
||||
#ifdef NONMATCHING
|
||||
void sub_809C1D8(u8 taskId, const u16* a1, u16 a2)
|
||||
// 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)
|
||||
{
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
s16 i, j;
|
||||
const s16* v4;
|
||||
|
||||
v1 = gTasks[taskId].data[4] - 1;
|
||||
v2 = gTasks[taskId].data[5] - 1;
|
||||
v3 = gTasks[taskId].data[1];
|
||||
|
||||
if (gTasks[taskId].data[2] == 0)
|
||||
{
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
for (j = 0; j < 3; j++)
|
||||
{
|
||||
v4 = &a1[v3];
|
||||
if (MapGridGetMetatileIdAt(v1 + j, v2 + i) == v4[0])
|
||||
{
|
||||
if (v3 != 2)
|
||||
MapGridSetMetatileIdAt(v1 + j, v2 + i, a2 | v4[1]);
|
||||
else
|
||||
MapGridSetMetatileIdAt(v1 + j, v2 + i, a2 | v4[0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
for (j = 0; j < 3; j++)
|
||||
{
|
||||
if (a1[2 - v3] == MapGridGetMetatileIdAt(v1 + j, v2 + i))
|
||||
{
|
||||
if (v3 != 2)
|
||||
MapGridSetMetatileIdAt(v1 + j, v2 + i, a2 | a1[1 - v3]);
|
||||
else
|
||||
MapGridSetMetatileIdAt(v1 + j, v2 + i, a2 | a1[2]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
@@ -275,9 +290,9 @@ static void sub_809C334(u8 taskId)
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
data[0] = (data[0] + 1) & 7;
|
||||
v1 = data[0] & 7;
|
||||
//ldrh r5, [r4] instead mov r5, r0 somehow
|
||||
if (v1 == 0)
|
||||
{
|
||||
DrawWholeMapView();
|
||||
@@ -293,7 +308,7 @@ static u8 sub_809C3FC(u16 a0)
|
||||
|
||||
taskId = CreateTask(sub_809C334, 0);
|
||||
data = gTasks[taskId].data;
|
||||
PlayerGetDestCoords(&tX, &data[5]);
|
||||
PlayerGetDestCoords(&tX, &tY);
|
||||
t0 = 0;
|
||||
data[1] = 0;
|
||||
data[2] = a0;
|
||||
@@ -335,10 +350,8 @@ void sub_809C4A8(void)
|
||||
s16 *data;
|
||||
|
||||
taskId = CreateTask(sub_809C500, 0);
|
||||
|
||||
gTasks[taskId].data[0] = 0;
|
||||
gTasks[taskId].data[1] = 0;
|
||||
|
||||
data = gTasks[taskId].data;
|
||||
PlayerGetDestCoords(&data[2], &data[3]);
|
||||
if (gSpecialVar_0x8004 == 0)
|
||||
@@ -376,9 +389,8 @@ static void sub_809C500(u8 taskId)
|
||||
data[0]++;
|
||||
if (data[0] != 0x10)
|
||||
return;
|
||||
data[0] = 0;
|
||||
|
||||
data[0] == 0;
|
||||
data[0] = 0;
|
||||
data[1]++;
|
||||
if (data[1] != 0xD)
|
||||
return;
|
||||
@@ -399,7 +411,6 @@ void sub_809C5FC(void)
|
||||
taskId = CreateTask(sub_809C640, 0);
|
||||
gTasks[taskId].data[0] = 0;
|
||||
gTasks[taskId].data[1] = 0;
|
||||
|
||||
data = gTasks[taskId].data;
|
||||
PlayerGetDestCoords(&data[2], &data[3]);
|
||||
gTasks[taskId].data[2] += 4;
|
||||
@@ -423,6 +434,7 @@ static void sub_809C640(u8 taskId)
|
||||
DestroyTask(taskId);
|
||||
return;
|
||||
}
|
||||
|
||||
data[2]--;
|
||||
}
|
||||
MapGridSetMetatileIdAt(data[2], data[3], 0xEB9);
|
||||
@@ -430,6 +442,7 @@ static void sub_809C640(u8 taskId)
|
||||
CurrentMapDrawMetatileAt(data[2], data[3]);
|
||||
CurrentMapDrawMetatileAt(data[2], data[3] + 1);
|
||||
}
|
||||
|
||||
data[0]++;
|
||||
if (data[0] == 4)
|
||||
{
|
||||
@@ -437,3 +450,4 @@ static void sub_809C640(u8 taskId)
|
||||
data[1]++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+44
-54
@@ -2,6 +2,8 @@
|
||||
#include "shop.h"
|
||||
#include "menu.h"
|
||||
#include "data.h"
|
||||
#include "graphics.h"
|
||||
#include "strings.h"
|
||||
#include "list_menu.h"
|
||||
#include "new_menu_helpers.h"
|
||||
#include "party_menu.h"
|
||||
@@ -15,7 +17,6 @@
|
||||
#include "item_menu.h"
|
||||
#include "main.h"
|
||||
#include "sound.h"
|
||||
#include "strings.h"
|
||||
#include "string_util.h"
|
||||
#include "overworld.h"
|
||||
#include "window.h"
|
||||
@@ -38,9 +39,7 @@
|
||||
#include "constants/items.h"
|
||||
#include "constants/game_stat.h"
|
||||
|
||||
#define t0 data[0]
|
||||
#define tItemCount data[1]
|
||||
#define tX data[4]
|
||||
#define tItemId data[5]
|
||||
#define tListTaskId data[7]
|
||||
|
||||
@@ -96,7 +95,6 @@ struct MartHistory
|
||||
/*0x17*/ u8 unk17;
|
||||
}; /* size = 0x18 */
|
||||
|
||||
|
||||
EWRAM_DATA s16 sViewportMapObjects[MAP_OBJECTS_COUNT][4] = {0};
|
||||
EWRAM_DATA struct ShopData gShopData = {0};
|
||||
EWRAM_DATA u8 sShopMenuWindowId = 0;
|
||||
@@ -165,39 +163,23 @@ static void nullsub_52(u8 taskId);
|
||||
static void nullsub_53(void);
|
||||
static void RecordQuestLogItemPurchase(void);
|
||||
|
||||
// external defines
|
||||
extern u8 MapGridGetMetatileLayerTypeAt(s16 x, s16 y);
|
||||
extern u16 BagGetQuantityByItemId(u16 item);
|
||||
|
||||
//Data Definitions
|
||||
/*
|
||||
extern const struct MenuAction gUnknown_83DF09C[];
|
||||
extern const struct YesNoFuncTable gUnknown_83DF0B4[];
|
||||
extern const struct WindowTemplate gUnknown_83DF0BC[];
|
||||
extern const struct BgTemplate gUnknown_83DF0C4[];
|
||||
*/
|
||||
|
||||
//graphics
|
||||
extern const u32 gUnknown_8E85DC8[]; //gBuyMenuFrame_Gfx[];
|
||||
extern const u32 gUnknown_8E85EFC[]; //gBuyMenuFrame_Tilemap
|
||||
extern const u32 gUnknown_8E86038[]; //gBuyMenuFrame_TmHmTilemap
|
||||
extern const u32 gUnknown_8E86170[]; //gBuyMenuFrame_Pal
|
||||
|
||||
|
||||
static const struct MenuAction gUnknown_83DF09C[] = // sShopMenuActions_BuySellQuit
|
||||
static const struct MenuAction sShopMenuActions_BuySellQuit[] =
|
||||
{
|
||||
{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
|
||||
static const struct YesNoFuncTable sShopMenuActions_BuyQuit[] =
|
||||
{
|
||||
BuyMenuTryMakePurchase, //Task_HandleShopMenuBuy,
|
||||
BuyMenuReturnToItemList //Task_HandleShopMenuQuit
|
||||
BuyMenuTryMakePurchase,
|
||||
BuyMenuReturnToItemList
|
||||
};
|
||||
|
||||
static const struct WindowTemplate gUnknown_83DF0BC[] = //sShopMenuWindowTemplates
|
||||
static const struct WindowTemplate sShopMenuWindowTemplates[] =
|
||||
{
|
||||
{
|
||||
.bg = 0,
|
||||
@@ -210,7 +192,7 @@ static const struct WindowTemplate gUnknown_83DF0BC[] = //sShopMenuWindowTem
|
||||
}
|
||||
};
|
||||
|
||||
static const struct BgTemplate gUnknown_83DF0C4[4] = //sShopBuyMenuBgTemplates
|
||||
static const struct BgTemplate sShopBuyMenuBgTemplates[4] =
|
||||
{
|
||||
{
|
||||
.bg = 0,
|
||||
@@ -250,7 +232,6 @@ static const struct BgTemplate gUnknown_83DF0C4[4] = //sShopBuyMenuBgTemplat
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
// Functions
|
||||
static u8 CreateShopMenu(u8 a0)
|
||||
{
|
||||
@@ -261,9 +242,9 @@ static u8 CreateShopMenu(u8 a0)
|
||||
else
|
||||
gShopData.unk16_4 = 5;
|
||||
|
||||
sShopMenuWindowId = AddWindow(gUnknown_83DF0BC); //sShopMenuWindowTemplates
|
||||
sShopMenuWindowId = AddWindow(sShopMenuWindowTemplates);
|
||||
SetStdWindowBorderStyle(sShopMenuWindowId, 0);
|
||||
PrintTextArray(sShopMenuWindowId, 2, GetMenuCursorDimensionByFont(2, 0), 2, 16, 3, gUnknown_83DF09C);
|
||||
PrintTextArray(sShopMenuWindowId, 2, GetMenuCursorDimensionByFont(2, 0), 2, 16, 3, sShopMenuActions_BuySellQuit);
|
||||
Menu_InitCursor(sShopMenuWindowId, 2, 0, 2, 16, 3, 0);
|
||||
PutWindowTilemap(sShopMenuWindowId);
|
||||
CopyWindowToVram(sShopMenuWindowId, 1);
|
||||
@@ -272,10 +253,12 @@ static u8 CreateShopMenu(u8 a0)
|
||||
|
||||
static u8 GetMartTypeFromItemList(u32 a0)
|
||||
{
|
||||
u16 retVal, i;
|
||||
u16 i;
|
||||
|
||||
if (a0)
|
||||
return (u8)a0;
|
||||
goto MAIN;
|
||||
|
||||
RETURN_1:
|
||||
return 1;
|
||||
|
||||
@@ -296,6 +279,7 @@ static u8 GetMartTypeFromItemList(u32 a0)
|
||||
else if (gShopData.itemList[i] == 0)
|
||||
goto RETURN_0;
|
||||
}
|
||||
|
||||
RETURN_0:
|
||||
return 0;
|
||||
}
|
||||
@@ -333,7 +317,7 @@ static void Task_ShopMenu(u8 taskId)
|
||||
Task_HandleShopMenuQuit(taskId);
|
||||
break;
|
||||
default:
|
||||
gUnknown_83DF09C[Menu_GetCursorPos()].func.void_u8(taskId);
|
||||
sShopMenuActions_BuySellQuit[Menu_GetCursorPos()].func.void_u8(taskId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -377,6 +361,7 @@ static void Task_GoToBuyOrSellMenu(u8 taskId)
|
||||
{
|
||||
if (gPaletteFade.active)
|
||||
return;
|
||||
|
||||
SetMainCallback2((void *)GetWordTaskArg(taskId, 0xE));
|
||||
FreeAllWindowBuffers();
|
||||
DestroyTask(taskId);
|
||||
@@ -392,6 +377,7 @@ static void Task_ReturnToShopMenu(u8 taskId)
|
||||
{
|
||||
if (field_weather_is_fade_finished() != TRUE)
|
||||
return;
|
||||
|
||||
DisplayItemMessageOnField(taskId, GetMartUnk16_4(), gText_CanIHelpWithAnythingElse, ShowShopMenuAfterExitingBuyOrSellMenu);
|
||||
}
|
||||
|
||||
@@ -420,6 +406,7 @@ static void VBlankCB_BuyMenu(void)
|
||||
static void CB2_InitBuyMenu(void)
|
||||
{
|
||||
u8 taskId;
|
||||
|
||||
switch (gMain.state)
|
||||
{
|
||||
case 0:
|
||||
@@ -469,12 +456,15 @@ static bool8 InitShopData(void)
|
||||
gShopTilemapBuffer1 = Alloc(sizeof(*gShopTilemapBuffer1));
|
||||
if (gShopTilemapBuffer1 == 0)
|
||||
goto CANCEL;
|
||||
|
||||
gShopTilemapBuffer2 = Alloc(sizeof(*gShopTilemapBuffer2));
|
||||
if (gShopTilemapBuffer2 == 0)
|
||||
goto CANCEL;
|
||||
|
||||
gShopTilemapBuffer3 = Alloc(sizeof(*gShopTilemapBuffer3));
|
||||
if (gShopTilemapBuffer3 == 0)
|
||||
goto CANCEL;
|
||||
|
||||
gShopTilemapBuffer4 = Alloc(sizeof(*gShopTilemapBuffer4));
|
||||
if (gShopTilemapBuffer4 == 0)
|
||||
goto CANCEL;
|
||||
@@ -489,7 +479,7 @@ static bool8 InitShopData(void)
|
||||
static void BuyMenuInitBgs(void)
|
||||
{
|
||||
ResetBgsAndClearDma3BusyFlags(0);
|
||||
InitBgsFromTemplates(0, gUnknown_83DF0C4, NELEMS(gUnknown_83DF0C4));
|
||||
InitBgsFromTemplates(0, sShopBuyMenuBgTemplates, NELEMS(sShopBuyMenuBgTemplates));
|
||||
SetBgTilemapBuffer(1, gShopTilemapBuffer2);
|
||||
SetBgTilemapBuffer(2, gShopTilemapBuffer4);
|
||||
SetBgTilemapBuffer(3, gShopTilemapBuffer3);
|
||||
@@ -512,13 +502,15 @@ static void BuyMenuInitBgs(void)
|
||||
static void BuyMenuDecompressBgGraphics(void)
|
||||
{
|
||||
void* pal;
|
||||
DecompressAndCopyTileDataToVram(1, gUnknown_8E85DC8, 0x480, 0x3DC, 0);
|
||||
|
||||
DecompressAndCopyTileDataToVram(1, gBuyMenuFrame_Gfx, 0x480, 0x3DC, 0);
|
||||
if ((gShopData.martType) != MART_TYPE_TMHM)
|
||||
LZDecompressWram(gUnknown_8E85EFC, gShopTilemapBuffer1); //gBuyMenuFrame_Tilemap
|
||||
LZDecompressWram(gBuyMenuFrame_Tilemap, gShopTilemapBuffer1);
|
||||
else
|
||||
LZDecompressWram(gUnknown_8E86038, gShopTilemapBuffer1); //gBuyMenuFrame_TmHmTilemap
|
||||
LZDecompressWram(gBuyMenuFrame_TmHmTilemap, gShopTilemapBuffer1);
|
||||
|
||||
pal = Alloc(0x40);
|
||||
LZDecompressWram(gUnknown_8E86170, pal);
|
||||
LZDecompressWram(gBuyMenuFrame_Pal, pal);
|
||||
LoadPalette(pal, 0xB0, 0x20);
|
||||
LoadPalette(pal + 0x20, 0x60, 0x20);
|
||||
Free(pal);
|
||||
@@ -527,14 +519,17 @@ static void BuyMenuDecompressBgGraphics(void)
|
||||
static void sub_809B10C(bool32 a0)
|
||||
{
|
||||
u8 v;
|
||||
|
||||
if (a0 == FALSE)
|
||||
v = 0xB;
|
||||
else
|
||||
v = 6;
|
||||
|
||||
if ((gShopData.martType) != MART_TYPE_TMHM)
|
||||
SetBgRectPal(1, 0, 0xE, 0x1E, 6, v);
|
||||
else
|
||||
SetBgRectPal(1, 0, 0xC, 0x1E, 8, v);
|
||||
|
||||
ScheduleBgCopyTilemapToVram(1);
|
||||
}
|
||||
|
||||
@@ -551,10 +546,10 @@ static void BuyMenuDrawGraphics(void)
|
||||
|
||||
static bool8 BuyMenuBuildListMenuTemplate(void)
|
||||
{
|
||||
u16 i;
|
||||
u16 v;
|
||||
u16 i, v;
|
||||
struct ListMenuItem **list = &sShopMenuListMenu;
|
||||
struct ShopData *mart = &gShopData;
|
||||
|
||||
*list = Alloc((gShopData.itemCount + 1) * sizeof(*sShopMenuListMenu));
|
||||
if (sShopMenuListMenu == 0)
|
||||
goto FREE_MEMORY;
|
||||
@@ -574,7 +569,7 @@ static bool8 BuyMenuBuildListMenuTemplate(void)
|
||||
|
||||
for (i = 0; i < mart->itemCount; i++)
|
||||
{
|
||||
PokeMartWriteNameAndIdAt(&sShopMenuListMenu[i], mart->itemList[i], sShopMenuItemStrings[i]); //PokeMartWriteNameAndIdAt(u16 a0, u16 a1, u8* a2)
|
||||
PokeMartWriteNameAndIdAt(&sShopMenuListMenu[i], mart->itemList[i], sShopMenuItemStrings[i]);
|
||||
}
|
||||
|
||||
ADD_CANCEL:
|
||||
@@ -640,6 +635,7 @@ static void BuyMenuPrintItemDescriptionAndShowItemIcon(s32 item, bool8 onInit, s
|
||||
CreateItemMenuIcon(item, gShopData.itemSlot);
|
||||
else
|
||||
CreateItemMenuIcon(ITEM_N_A, gShopData.itemSlot);
|
||||
|
||||
gShopData.itemSlot ^= 1;
|
||||
BuyMenuPrint(5, 2, description, 0, 3, 2, 1, 0, 0);
|
||||
}
|
||||
@@ -652,6 +648,7 @@ static void BuyMenuPrintItemDescriptionAndShowItemIcon(s32 item, bool8 onInit, s
|
||||
}
|
||||
|
||||
#ifdef NONMATCHING
|
||||
// As simple as this seems, I could not get the while loop to use the correct registers. It should pad the front of gStringVar4 with 0 based on the length of gStringVar1.
|
||||
static void BuyMenuPrintPriceInList(u8 windowId, s32 item, u8 y)
|
||||
{
|
||||
u32 len, x;
|
||||
@@ -857,10 +854,7 @@ static void sub_809B764(void)
|
||||
|
||||
static void BuyMenuDrawMapBg(void)
|
||||
{
|
||||
s16 i;
|
||||
s16 j;
|
||||
s16 x;
|
||||
s16 y;
|
||||
s16 i, j, x, y;
|
||||
const struct MapData *mapData;
|
||||
u16 metatile;
|
||||
u8 metatileLayerType;
|
||||
@@ -913,7 +907,6 @@ static void BuyMenuDrawMapMetatile(s16 x, s16 y, const u16 *src, u8 metatileLaye
|
||||
|
||||
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
|
||||
dest[offset1 + offset2 + 1] = src[1]; // top right
|
||||
dest[offset1 + offset2 + 32] = src[2]; // bottom left
|
||||
@@ -922,12 +915,9 @@ static void BuyMenuDrawMapMetatileLayer(u16 *dest, s16 offset1, s16 offset2, con
|
||||
|
||||
static void BuyMenuCollectEventObjectData(void)
|
||||
{
|
||||
s16 facingX;
|
||||
s16 facingY;
|
||||
u8 y;
|
||||
u8 x;
|
||||
s16 facingX, facingY;
|
||||
u8 x, y, z;
|
||||
u8 num = 0;
|
||||
u8 z;
|
||||
|
||||
GetXYCoordsOneStepInFrontOfPlayer(&facingX, &facingY);
|
||||
z = PlayerGetZCoord();
|
||||
@@ -970,8 +960,7 @@ static void BuyMenuCollectEventObjectData(void)
|
||||
|
||||
static void BuyMenuDrawEventObjects(void)
|
||||
{
|
||||
u8 i;
|
||||
u8 spriteId;
|
||||
u8 i, spriteId;
|
||||
const struct MapObjectGraphicsInfo *graphicsInfo;
|
||||
|
||||
for (i = 0; i < MAP_OBJECTS_COUNT; i++)
|
||||
@@ -993,7 +982,6 @@ static void BuyMenuDrawEventObjects(void)
|
||||
static void BuyMenuCopyTilemapData(void)
|
||||
{
|
||||
s16 i;
|
||||
|
||||
u16 *dst = *gShopTilemapBuffer2;
|
||||
u16 *src = *gShopTilemapBuffer1;
|
||||
|
||||
@@ -1049,6 +1037,7 @@ static void Task_BuyMenu(u8 taskId)
|
||||
CopyItemName(itemId, gStringVar1);
|
||||
BuyMenuDisplayMessage(taskId, gText_Var1CertainlyHowMany, Task_BuyHowManyDialogueInit);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1056,7 +1045,6 @@ static void Task_BuyMenu(u8 taskId)
|
||||
static void Task_BuyHowManyDialogueInit(u8 taskId)
|
||||
{
|
||||
s16 *data = gTasks[taskId].data;
|
||||
|
||||
u16 quantityInBag = BagGetQuantityByItemId(tItemId);
|
||||
u16 maxQuantity;
|
||||
|
||||
@@ -1120,7 +1108,7 @@ static void Task_BuyHowManyDialogueHandleInput(u8 taskId)
|
||||
|
||||
static void CreateBuyMenuConfirmPurchaseWindow(u8 taskId)
|
||||
{
|
||||
BuyMenuConfirmPurchase(taskId, gUnknown_83DF0B4);
|
||||
BuyMenuConfirmPurchase(taskId, sShopMenuActions_BuyQuit);
|
||||
}
|
||||
|
||||
static void BuyMenuTryMakePurchase(u8 taskId)
|
||||
@@ -1204,6 +1192,7 @@ 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;
|
||||
@@ -1343,6 +1332,7 @@ static void RecordQuestLogItemPurchase(void)
|
||||
v = history->unkA;
|
||||
if (v != 0)
|
||||
sub_8113550(v + 0x24, (const u16*)history);
|
||||
|
||||
v = history->unk16;
|
||||
if (v != 0)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user