Small mart changes (#651)
This commit is contained in:
+124
-124
@@ -60,7 +60,7 @@ struct ShopData
|
|||||||
/*0x0C*/ u16 selectedRow;
|
/*0x0C*/ u16 selectedRow;
|
||||||
/*0x0E*/ u16 scrollOffset;
|
/*0x0E*/ u16 scrollOffset;
|
||||||
/*0x10*/ u16 itemCount;
|
/*0x10*/ u16 itemCount;
|
||||||
/*0x12*/ u16 field12;
|
/*0x12*/ u16 itemsShowed;
|
||||||
/*0x14*/ u16 maxQuantity;
|
/*0x14*/ u16 maxQuantity;
|
||||||
/*0x16*/ u16 martType:4; // 0x1 if tm list
|
/*0x16*/ u16 martType:4; // 0x1 if tm list
|
||||||
u16 fontId:5;
|
u16 fontId:5;
|
||||||
@@ -70,7 +70,7 @@ struct ShopData
|
|||||||
};
|
};
|
||||||
|
|
||||||
static EWRAM_DATA s16 sViewportObjectEvents[OBJECT_EVENTS_COUNT][4] = {0};
|
static EWRAM_DATA s16 sViewportObjectEvents[OBJECT_EVENTS_COUNT][4] = {0};
|
||||||
EWRAM_DATA struct ShopData gShopData = {0};
|
static EWRAM_DATA struct ShopData sShopData = {0};
|
||||||
static EWRAM_DATA u8 sShopMenuWindowId = 0;
|
static EWRAM_DATA u8 sShopMenuWindowId = 0;
|
||||||
EWRAM_DATA u16 (*gShopTilemapBuffer1)[0x400] = {0};
|
EWRAM_DATA u16 (*gShopTilemapBuffer1)[0x400] = {0};
|
||||||
EWRAM_DATA u16 (*gShopTilemapBuffer2)[0x400] = {0};
|
EWRAM_DATA u16 (*gShopTilemapBuffer2)[0x400] = {0};
|
||||||
@@ -81,7 +81,7 @@ static EWRAM_DATA u8 (*sShopMenuItemStrings)[13] = {0};
|
|||||||
EWRAM_DATA struct QuestLogEvent_Shop sHistory[2] = {0};
|
EWRAM_DATA struct QuestLogEvent_Shop sHistory[2] = {0};
|
||||||
|
|
||||||
//Function Declarations
|
//Function Declarations
|
||||||
static u8 CreateShopMenu(u8 a0);
|
static u8 CreateShopMenu(u8 martType);
|
||||||
static u8 GetMartTypeFromItemList(u32 a0);
|
static u8 GetMartTypeFromItemList(u32 a0);
|
||||||
static void SetShopItemsForSale(const u16 *items);
|
static void SetShopItemsForSale(const u16 *items);
|
||||||
static void SetShopMenuCallback(MainCallback callback);
|
static void SetShopMenuCallback(MainCallback callback);
|
||||||
@@ -159,7 +159,7 @@ static const struct WindowTemplate sShopMenuWindowTemplate =
|
|||||||
.height = 6,
|
.height = 6,
|
||||||
.paletteNum = 15,
|
.paletteNum = 15,
|
||||||
.baseBlock = 8
|
.baseBlock = 8
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct BgTemplate sShopBuyMenuBgTemplates[4] =
|
static const struct BgTemplate sShopBuyMenuBgTemplates[4] =
|
||||||
{
|
{
|
||||||
@@ -202,15 +202,15 @@ static const struct BgTemplate sShopBuyMenuBgTemplates[4] =
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Functions
|
// Functions
|
||||||
static u8 CreateShopMenu(u8 a0)
|
static u8 CreateShopMenu(u8 martType)
|
||||||
{
|
{
|
||||||
gShopData.martType = GetMartTypeFromItemList(a0);
|
sShopData.martType = GetMartTypeFromItemList(martType);
|
||||||
gShopData.selectedRow = 0;
|
sShopData.selectedRow = 0;
|
||||||
if (ContextNpcGetTextColor() == NPC_TEXT_COLOR_MALE)
|
if (ContextNpcGetTextColor() == NPC_TEXT_COLOR_MALE)
|
||||||
gShopData.fontId = FONT_MALE;
|
sShopData.fontId = FONT_MALE;
|
||||||
else
|
else
|
||||||
gShopData.fontId = FONT_FEMALE;
|
sShopData.fontId = FONT_FEMALE;
|
||||||
|
|
||||||
sShopMenuWindowId = AddWindow(&sShopMenuWindowTemplate);
|
sShopMenuWindowId = AddWindow(&sShopMenuWindowTemplate);
|
||||||
SetStdWindowBorderStyle(sShopMenuWindowId, 0);
|
SetStdWindowBorderStyle(sShopMenuWindowId, 0);
|
||||||
PrintTextArray(sShopMenuWindowId, FONT_NORMAL, GetMenuCursorDimensionByFont(FONT_NORMAL, 0), 2, 16, 3, sShopMenuActions_BuySellQuit);
|
PrintTextArray(sShopMenuWindowId, FONT_NORMAL, GetMenuCursorDimensionByFont(FONT_NORMAL, 0), 2, 16, 3, sShopMenuActions_BuySellQuit);
|
||||||
@@ -220,43 +220,43 @@ static u8 CreateShopMenu(u8 a0)
|
|||||||
return CreateTask(Task_ShopMenu, 8);
|
return CreateTask(Task_ShopMenu, 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
static u8 GetMartTypeFromItemList(u32 a0)
|
static u8 GetMartTypeFromItemList(u32 martType)
|
||||||
{
|
{
|
||||||
u16 i;
|
u16 i;
|
||||||
|
|
||||||
if (a0)
|
if (martType != MART_TYPE_REGULAR)
|
||||||
return a0;
|
return martType;
|
||||||
|
|
||||||
for (i = 0; i < gShopData.itemCount && gShopData.itemList[i] != 0; i++)
|
for (i = 0; i < sShopData.itemCount && sShopData.itemList[i] != 0; i++)
|
||||||
{
|
{
|
||||||
if (ItemId_GetPocket(gShopData.itemList[i]) == POCKET_TM_CASE)
|
if (ItemId_GetPocket(sShopData.itemList[i]) == POCKET_TM_CASE)
|
||||||
return 1;
|
return MART_TYPE_TMHM;
|
||||||
}
|
}
|
||||||
return 0;
|
return MART_TYPE_REGULAR;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void SetShopItemsForSale(const u16 *items)
|
static void SetShopItemsForSale(const u16 *items)
|
||||||
{
|
{
|
||||||
gShopData.itemList = items;
|
sShopData.itemList = items;
|
||||||
gShopData.itemCount = 0;
|
sShopData.itemCount = 0;
|
||||||
if (gShopData.itemList[0] == 0)
|
if (sShopData.itemList[0] == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
while (gShopData.itemList[gShopData.itemCount])
|
while (sShopData.itemList[sShopData.itemCount])
|
||||||
{
|
{
|
||||||
++gShopData.itemCount;
|
++sShopData.itemCount;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void SetShopMenuCallback(void (*callback)(void))
|
static void SetShopMenuCallback(void (*callback)(void))
|
||||||
{
|
{
|
||||||
gShopData.callback = callback;
|
sShopData.callback = callback;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void Task_ShopMenu(u8 taskId)
|
static void Task_ShopMenu(u8 taskId)
|
||||||
{
|
{
|
||||||
s8 input = Menu_ProcessInputNoWrapAround();
|
s8 input = Menu_ProcessInputNoWrapAround();
|
||||||
|
|
||||||
switch (input)
|
switch (input)
|
||||||
{
|
{
|
||||||
case MENU_NOTHING_CHOSEN:
|
case MENU_NOTHING_CHOSEN:
|
||||||
@@ -282,7 +282,7 @@ static void Task_HandleShopMenuSell(u8 taskId)
|
|||||||
{
|
{
|
||||||
SetWordTaskArg(taskId, 0xE, (u32)CB2_GoToSellMenu);
|
SetWordTaskArg(taskId, 0xE, (u32)CB2_GoToSellMenu);
|
||||||
FadeScreen(FADE_TO_BLACK, 0);
|
FadeScreen(FADE_TO_BLACK, 0);
|
||||||
gTasks[taskId].func = Task_GoToBuyOrSellMenu;
|
gTasks[taskId].func = Task_GoToBuyOrSellMenu;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void CB2_GoToSellMenu(void)
|
static void CB2_GoToSellMenu(void)
|
||||||
@@ -296,8 +296,8 @@ static void Task_HandleShopMenuQuit(u8 taskId)
|
|||||||
ClearShopMenuWindow();
|
ClearShopMenuWindow();
|
||||||
RecordTransactionForQuestLog();
|
RecordTransactionForQuestLog();
|
||||||
DestroyTask(taskId);
|
DestroyTask(taskId);
|
||||||
if (gShopData.callback != NULL)
|
if (sShopData.callback != NULL)
|
||||||
gShopData.callback();
|
sShopData.callback();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ClearShopMenuWindow(void)
|
static void ClearShopMenuWindow(void)
|
||||||
@@ -310,7 +310,7 @@ static void Task_GoToBuyOrSellMenu(u8 taskId)
|
|||||||
{
|
{
|
||||||
if (gPaletteFade.active)
|
if (gPaletteFade.active)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
SetMainCallback2((void *)GetWordTaskArg(taskId, 0xE));
|
SetMainCallback2((void *)GetWordTaskArg(taskId, 0xE));
|
||||||
FreeAllWindowBuffers();
|
FreeAllWindowBuffers();
|
||||||
DestroyTask(taskId);
|
DestroyTask(taskId);
|
||||||
@@ -326,13 +326,13 @@ static void Task_ReturnToShopMenu(u8 taskId)
|
|||||||
{
|
{
|
||||||
if (IsWeatherNotFadingIn() != TRUE)
|
if (IsWeatherNotFadingIn() != TRUE)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
DisplayItemMessageOnField(taskId, GetMartFontId(), gText_AnythingElseICanHelp, ShowShopMenuAfterExitingBuyOrSellMenu);
|
DisplayItemMessageOnField(taskId, GetMartFontId(), gText_AnythingElseICanHelp, ShowShopMenuAfterExitingBuyOrSellMenu);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ShowShopMenuAfterExitingBuyOrSellMenu(u8 taskId)
|
static void ShowShopMenuAfterExitingBuyOrSellMenu(u8 taskId)
|
||||||
{
|
{
|
||||||
CreateShopMenu(gShopData.martType);
|
CreateShopMenu(sShopData.martType);
|
||||||
DestroyTask(taskId);
|
DestroyTask(taskId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -355,7 +355,7 @@ static void VBlankCB_BuyMenu(void)
|
|||||||
static void CB2_InitBuyMenu(void)
|
static void CB2_InitBuyMenu(void)
|
||||||
{
|
{
|
||||||
u8 taskId;
|
u8 taskId;
|
||||||
|
|
||||||
switch (gMain.state)
|
switch (gMain.state)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
@@ -376,7 +376,7 @@ static void CB2_InitBuyMenu(void)
|
|||||||
FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 0x20, 0x20);
|
FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 0x20, 0x20);
|
||||||
FillBgTilemapBufferRect_Palette0(2, 0, 0, 0, 0x20, 0x20);
|
FillBgTilemapBufferRect_Palette0(2, 0, 0, 0, 0x20, 0x20);
|
||||||
FillBgTilemapBufferRect_Palette0(3, 0, 0, 0, 0x20, 0x20);
|
FillBgTilemapBufferRect_Palette0(3, 0, 0, 0, 0x20, 0x20);
|
||||||
BuyMenuInitWindows(gShopData.martType);
|
BuyMenuInitWindows(sShopData.martType);
|
||||||
BuyMenuDecompressBgGraphics();
|
BuyMenuDecompressBgGraphics();
|
||||||
gMain.state++;
|
gMain.state++;
|
||||||
break;
|
break;
|
||||||
@@ -386,8 +386,8 @@ static void CB2_InitBuyMenu(void)
|
|||||||
gMain.state++;
|
gMain.state++;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
gShopData.selectedRow = 0;
|
sShopData.selectedRow = 0;
|
||||||
gShopData.scrollOffset = 0;
|
sShopData.scrollOffset = 0;
|
||||||
BuyMenuDrawGraphics();
|
BuyMenuDrawGraphics();
|
||||||
BuyMenuAddScrollIndicatorArrows();
|
BuyMenuAddScrollIndicatorArrows();
|
||||||
taskId = CreateTask(Task_BuyMenu, 8);
|
taskId = CreateTask(Task_BuyMenu, 8);
|
||||||
@@ -407,17 +407,17 @@ static bool8 InitShopData(void)
|
|||||||
{
|
{
|
||||||
BuyMenuFreeMemory();
|
BuyMenuFreeMemory();
|
||||||
SetShopExitCallback();
|
SetShopExitCallback();
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
gShopTilemapBuffer2 = Alloc(sizeof(*gShopTilemapBuffer2));
|
gShopTilemapBuffer2 = Alloc(sizeof(*gShopTilemapBuffer2));
|
||||||
if (gShopTilemapBuffer2 == NULL)
|
if (gShopTilemapBuffer2 == NULL)
|
||||||
{
|
{
|
||||||
BuyMenuFreeMemory();
|
BuyMenuFreeMemory();
|
||||||
SetShopExitCallback();
|
SetShopExitCallback();
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
gShopTilemapBuffer3 = Alloc(sizeof(*gShopTilemapBuffer3));
|
gShopTilemapBuffer3 = Alloc(sizeof(*gShopTilemapBuffer3));
|
||||||
if (gShopTilemapBuffer3 == NULL)
|
if (gShopTilemapBuffer3 == NULL)
|
||||||
{
|
{
|
||||||
@@ -425,15 +425,15 @@ static bool8 InitShopData(void)
|
|||||||
SetShopExitCallback();
|
SetShopExitCallback();
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
gShopTilemapBuffer4 = Alloc(sizeof(*gShopTilemapBuffer4));
|
gShopTilemapBuffer4 = Alloc(sizeof(*gShopTilemapBuffer4));
|
||||||
if (gShopTilemapBuffer4 == NULL)
|
if (gShopTilemapBuffer4 == NULL)
|
||||||
{
|
{
|
||||||
BuyMenuFreeMemory();
|
BuyMenuFreeMemory();
|
||||||
SetShopExitCallback();
|
SetShopExitCallback();
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -463,13 +463,13 @@ static void BuyMenuInitBgs(void)
|
|||||||
static void BuyMenuDecompressBgGraphics(void)
|
static void BuyMenuDecompressBgGraphics(void)
|
||||||
{
|
{
|
||||||
u16 *pal;
|
u16 *pal;
|
||||||
|
|
||||||
DecompressAndCopyTileDataToVram(1, gBuyMenuFrame_Gfx, 0x480, 0x3DC, 0);
|
DecompressAndCopyTileDataToVram(1, gBuyMenuFrame_Gfx, 0x480, 0x3DC, 0);
|
||||||
if ((gShopData.martType) != MART_TYPE_TMHM)
|
if ((sShopData.martType) != MART_TYPE_TMHM)
|
||||||
LZDecompressWram(gBuyMenuFrame_Tilemap, gShopTilemapBuffer1);
|
LZDecompressWram(gBuyMenuFrame_Tilemap, gShopTilemapBuffer1);
|
||||||
else
|
else
|
||||||
LZDecompressWram(gBuyMenuFrame_TmHmTilemap, gShopTilemapBuffer1);
|
LZDecompressWram(gBuyMenuFrame_TmHmTilemap, gShopTilemapBuffer1);
|
||||||
|
|
||||||
pal = Alloc(2 * PLTT_SIZE_4BPP);
|
pal = Alloc(2 * PLTT_SIZE_4BPP);
|
||||||
LZDecompressWram(gBuyMenuFrame_Pal, pal);
|
LZDecompressWram(gBuyMenuFrame_Pal, pal);
|
||||||
LoadPalette(&pal[0 * 16], BG_PLTT_ID(11), PLTT_SIZE_4BPP);
|
LoadPalette(&pal[0 * 16], BG_PLTT_ID(11), PLTT_SIZE_4BPP);
|
||||||
@@ -480,17 +480,17 @@ static void BuyMenuDecompressBgGraphics(void)
|
|||||||
static void RecolorItemDescriptionBox(bool32 a0)
|
static void RecolorItemDescriptionBox(bool32 a0)
|
||||||
{
|
{
|
||||||
u8 paletteNum;
|
u8 paletteNum;
|
||||||
|
|
||||||
if (a0 == FALSE)
|
if (a0 == FALSE)
|
||||||
paletteNum = 0xB;
|
paletteNum = 0xB;
|
||||||
else
|
else
|
||||||
paletteNum = 0x6;
|
paletteNum = 0x6;
|
||||||
|
|
||||||
if ((gShopData.martType) != MART_TYPE_TMHM)
|
if ((sShopData.martType) != MART_TYPE_TMHM)
|
||||||
SetBgTilemapPalette(1, 0, 14, 30, 6, paletteNum);
|
SetBgTilemapPalette(1, 0, 14, 30, 6, paletteNum);
|
||||||
else
|
else
|
||||||
SetBgTilemapPalette(1, 0, 12, 30, 8, paletteNum);
|
SetBgTilemapPalette(1, 0, 12, 30, 8, paletteNum);
|
||||||
|
|
||||||
ScheduleBgCopyTilemapToVram(1);
|
ScheduleBgCopyTilemapToVram(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -508,25 +508,25 @@ static void BuyMenuDrawGraphics(void)
|
|||||||
bool8 BuyMenuBuildListMenuTemplate(void)
|
bool8 BuyMenuBuildListMenuTemplate(void)
|
||||||
{
|
{
|
||||||
u16 i, v;
|
u16 i, v;
|
||||||
|
|
||||||
sShopMenuListMenu = Alloc((gShopData.itemCount + 1) * sizeof(*sShopMenuListMenu));
|
sShopMenuListMenu = Alloc((sShopData.itemCount + 1) * sizeof(*sShopMenuListMenu));
|
||||||
if (sShopMenuListMenu == NULL
|
if (sShopMenuListMenu == NULL
|
||||||
|| (sShopMenuItemStrings = Alloc((gShopData.itemCount + 1) * sizeof(*sShopMenuItemStrings))) == NULL)
|
|| (sShopMenuItemStrings = Alloc((sShopData.itemCount + 1) * sizeof(*sShopMenuItemStrings))) == NULL)
|
||||||
{
|
{
|
||||||
BuyMenuFreeMemory();
|
BuyMenuFreeMemory();
|
||||||
SetShopExitCallback();
|
SetShopExitCallback();
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < gShopData.itemCount; i++)
|
for (i = 0; i < sShopData.itemCount; i++)
|
||||||
{
|
{
|
||||||
PokeMartWriteNameAndIdAt(&sShopMenuListMenu[i], gShopData.itemList[i], sShopMenuItemStrings[i]);
|
PokeMartWriteNameAndIdAt(&sShopMenuListMenu[i], sShopData.itemList[i], sShopMenuItemStrings[i]);
|
||||||
}
|
}
|
||||||
StringCopy(sShopMenuItemStrings[i], gFameCheckerText_Cancel);
|
StringCopy(sShopMenuItemStrings[i], gFameCheckerText_Cancel);
|
||||||
sShopMenuListMenu[i].label = sShopMenuItemStrings[i];
|
sShopMenuListMenu[i].label = sShopMenuItemStrings[i];
|
||||||
sShopMenuListMenu[i].index = -2;
|
sShopMenuListMenu[i].index = -2;
|
||||||
gMultiuseListMenuTemplate.items = sShopMenuListMenu;
|
gMultiuseListMenuTemplate.items = sShopMenuListMenu;
|
||||||
gMultiuseListMenuTemplate.totalItems = gShopData.itemCount + 1;
|
gMultiuseListMenuTemplate.totalItems = sShopData.itemCount + 1;
|
||||||
gMultiuseListMenuTemplate.windowId = 4;
|
gMultiuseListMenuTemplate.windowId = 4;
|
||||||
gMultiuseListMenuTemplate.header_X = 0;
|
gMultiuseListMenuTemplate.header_X = 0;
|
||||||
gMultiuseListMenuTemplate.item_X = 9;
|
gMultiuseListMenuTemplate.item_X = 9;
|
||||||
@@ -542,18 +542,18 @@ bool8 BuyMenuBuildListMenuTemplate(void)
|
|||||||
gMultiuseListMenuTemplate.itemPrintFunc = BuyMenuPrintPriceInList;
|
gMultiuseListMenuTemplate.itemPrintFunc = BuyMenuPrintPriceInList;
|
||||||
gMultiuseListMenuTemplate.scrollMultiple = 0;
|
gMultiuseListMenuTemplate.scrollMultiple = 0;
|
||||||
gMultiuseListMenuTemplate.cursorKind = 0;
|
gMultiuseListMenuTemplate.cursorKind = 0;
|
||||||
|
|
||||||
if (gShopData.martType == MART_TYPE_TMHM)
|
if (sShopData.martType == MART_TYPE_TMHM)
|
||||||
v = 5;
|
v = 5;
|
||||||
else
|
else
|
||||||
v = 6;
|
v = 6;
|
||||||
|
|
||||||
if ((gShopData.itemCount + 1) > v)
|
if ((sShopData.itemCount + 1) > v)
|
||||||
gMultiuseListMenuTemplate.maxShowed = v;
|
gMultiuseListMenuTemplate.maxShowed = v;
|
||||||
else
|
else
|
||||||
gMultiuseListMenuTemplate.maxShowed = gShopData.itemCount + 1;
|
gMultiuseListMenuTemplate.maxShowed = sShopData.itemCount + 1;
|
||||||
|
|
||||||
gShopData.field12 = gMultiuseListMenuTemplate.maxShowed;
|
sShopData.itemsShowed = gMultiuseListMenuTemplate.maxShowed;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -567,7 +567,7 @@ static void PokeMartWriteNameAndIdAt(struct ListMenuItem *list, u16 index, u8 *d
|
|||||||
static void BuyMenuPrintItemDescriptionAndShowItemIcon(s32 item, bool8 onInit, struct ListMenu *list)
|
static void BuyMenuPrintItemDescriptionAndShowItemIcon(s32 item, bool8 onInit, struct ListMenu *list)
|
||||||
{
|
{
|
||||||
const u8 *description;
|
const u8 *description;
|
||||||
|
|
||||||
if (onInit != TRUE)
|
if (onInit != TRUE)
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
|
|
||||||
@@ -575,17 +575,17 @@ static void BuyMenuPrintItemDescriptionAndShowItemIcon(s32 item, bool8 onInit, s
|
|||||||
description = ItemId_GetDescription(item);
|
description = ItemId_GetDescription(item);
|
||||||
else
|
else
|
||||||
description = gText_QuitShopping;
|
description = gText_QuitShopping;
|
||||||
|
|
||||||
FillWindowPixelBuffer(5, PIXEL_FILL(0));
|
FillWindowPixelBuffer(5, PIXEL_FILL(0));
|
||||||
if (gShopData.martType != 1)
|
if (sShopData.martType != MART_TYPE_TMHM)
|
||||||
{
|
{
|
||||||
DestroyItemMenuIcon(gShopData.itemSlot ^ 1);
|
DestroyItemMenuIcon(sShopData.itemSlot ^ 1);
|
||||||
if (item != INDEX_CANCEL)
|
if (item != INDEX_CANCEL)
|
||||||
CreateItemMenuIcon(item, gShopData.itemSlot);
|
CreateItemMenuIcon(item, sShopData.itemSlot);
|
||||||
else
|
else
|
||||||
CreateItemMenuIcon(ITEMS_COUNT, gShopData.itemSlot);
|
CreateItemMenuIcon(ITEMS_COUNT, sShopData.itemSlot);
|
||||||
|
|
||||||
gShopData.itemSlot ^= 1;
|
sShopData.itemSlot ^= 1;
|
||||||
BuyMenuPrint(5, FONT_NORMAL, description, 0, 3, 2, 1, 0, 0);
|
BuyMenuPrint(5, FONT_NORMAL, description, 0, 3, 2, 1, 0, 0);
|
||||||
}
|
}
|
||||||
else //TM Mart
|
else //TM Mart
|
||||||
@@ -633,7 +633,7 @@ static void LoadTmHmNameInMart(s32 item)
|
|||||||
|
|
||||||
u8 GetMartFontId(void)
|
u8 GetMartFontId(void)
|
||||||
{
|
{
|
||||||
return gShopData.fontId;
|
return sShopData.fontId;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void BuyMenuPrintCursor(u8 listTaskId, u8 a1)
|
static void BuyMenuPrintCursor(u8 listTaskId, u8 a1)
|
||||||
@@ -658,23 +658,23 @@ static void BuyMenuFreeMemory(void)
|
|||||||
{
|
{
|
||||||
if (gShopTilemapBuffer1 != NULL)
|
if (gShopTilemapBuffer1 != NULL)
|
||||||
Free(gShopTilemapBuffer1);
|
Free(gShopTilemapBuffer1);
|
||||||
|
|
||||||
if (gShopTilemapBuffer2 != NULL)
|
if (gShopTilemapBuffer2 != NULL)
|
||||||
Free(gShopTilemapBuffer2);
|
Free(gShopTilemapBuffer2);
|
||||||
|
|
||||||
if (gShopTilemapBuffer3 != NULL)
|
if (gShopTilemapBuffer3 != NULL)
|
||||||
Free(gShopTilemapBuffer3);
|
Free(gShopTilemapBuffer3);
|
||||||
|
|
||||||
if (gShopTilemapBuffer4 != NULL)
|
if (gShopTilemapBuffer4 != NULL)
|
||||||
Free(gShopTilemapBuffer4);
|
Free(gShopTilemapBuffer4);
|
||||||
|
|
||||||
if (sShopMenuListMenu != NULL)
|
if (sShopMenuListMenu != NULL)
|
||||||
Free(sShopMenuListMenu);
|
Free(sShopMenuListMenu);
|
||||||
|
|
||||||
if (sShopMenuItemStrings != NULL)
|
if (sShopMenuItemStrings != NULL)
|
||||||
Free(sShopMenuItemStrings);
|
Free(sShopMenuItemStrings);
|
||||||
|
|
||||||
FreeAllWindowBuffers();
|
FreeAllWindowBuffers();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void SetShopExitCallback(void)
|
static void SetShopExitCallback(void)
|
||||||
@@ -686,31 +686,31 @@ static void SetShopExitCallback(void)
|
|||||||
|
|
||||||
static void BuyMenuAddScrollIndicatorArrows(void)
|
static void BuyMenuAddScrollIndicatorArrows(void)
|
||||||
{
|
{
|
||||||
if (gShopData.martType != MART_TYPE_TMHM)
|
if (sShopData.martType != MART_TYPE_TMHM)
|
||||||
{
|
{
|
||||||
gShopData.unk16_11 = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 160, 8, 104,
|
sShopData.unk16_11 = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 160, 8, 104,
|
||||||
(gShopData.itemCount - gShopData.field12) + 1, 110, 110, &gShopData.scrollOffset);
|
(sShopData.itemCount - sShopData.itemsShowed) + 1, 110, 110, &sShopData.scrollOffset);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gShopData.unk16_11 = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 160, 8, 88,
|
sShopData.unk16_11 = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 160, 8, 88,
|
||||||
(gShopData.itemCount - gShopData.field12) + 1, 110, 110, &gShopData.scrollOffset);
|
(sShopData.itemCount - sShopData.itemsShowed) + 1, 110, 110, &sShopData.scrollOffset);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void BuyQuantityAddScrollIndicatorArrows(void)
|
static void BuyQuantityAddScrollIndicatorArrows(void)
|
||||||
{
|
{
|
||||||
gShopData.unk18 = 1;
|
sShopData.unk18 = 1;
|
||||||
gShopData.unk16_11 = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 0x98, 0x48, 0x68, 2, 0x6E, 0x6E, &gShopData.unk18);
|
sShopData.unk16_11 = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 0x98, 0x48, 0x68, 2, 0x6E, 0x6E, &sShopData.unk18);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void BuyMenuRemoveScrollIndicatorArrows(void)
|
static void BuyMenuRemoveScrollIndicatorArrows(void)
|
||||||
{
|
{
|
||||||
if ((gShopData.unk16_11) == 0x1F)
|
if ((sShopData.unk16_11) == 0x1F)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
RemoveScrollIndicatorArrowPair(gShopData.unk16_11);
|
RemoveScrollIndicatorArrowPair(sShopData.unk16_11);
|
||||||
gShopData.unk16_11 = 0x1F;
|
sShopData.unk16_11 = 0x1F;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void BuyMenuDrawMapView(void)
|
static void BuyMenuDrawMapView(void)
|
||||||
@@ -721,7 +721,7 @@ static void BuyMenuDrawMapView(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void BuyMenuDrawMapBg(void)
|
static void BuyMenuDrawMapBg(void)
|
||||||
{
|
{
|
||||||
s16 i, j, x, y;
|
s16 i, j, x, y;
|
||||||
const struct MapLayout *mapLayout;
|
const struct MapLayout *mapLayout;
|
||||||
u16 metatile;
|
u16 metatile;
|
||||||
@@ -785,10 +785,10 @@ static void BuyMenuCollectObjectEventData(void)
|
|||||||
|
|
||||||
GetXYCoordsOneStepInFrontOfPlayer(&facingX, &facingY);
|
GetXYCoordsOneStepInFrontOfPlayer(&facingX, &facingY);
|
||||||
elevation = PlayerGetElevation();
|
elevation = PlayerGetElevation();
|
||||||
|
|
||||||
for (y = 0; y < OBJECT_EVENTS_COUNT; y++)
|
for (y = 0; y < OBJECT_EVENTS_COUNT; y++)
|
||||||
sViewportObjectEvents[y][OBJECT_EVENT_ID] = OBJECT_EVENTS_COUNT;
|
sViewportObjectEvents[y][OBJECT_EVENT_ID] = OBJECT_EVENTS_COUNT;
|
||||||
|
|
||||||
for (y = 0; y < 5; y++)
|
for (y = 0; y < 5; y++)
|
||||||
{
|
{
|
||||||
for (x = 0; x < 7; x++)
|
for (x = 0; x < 7; x++)
|
||||||
@@ -832,7 +832,7 @@ static void BuyMenuDrawObjectEvents(void)
|
|||||||
if (sViewportObjectEvents[i][OBJECT_EVENT_ID] == OBJECT_EVENTS_COUNT)
|
if (sViewportObjectEvents[i][OBJECT_EVENT_ID] == OBJECT_EVENTS_COUNT)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[sViewportObjectEvents[i][OBJECT_EVENT_ID]].graphicsId);
|
graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[sViewportObjectEvents[i][OBJECT_EVENT_ID]].graphicsId);
|
||||||
spriteId = CreateObjectGraphicsSprite(
|
spriteId = CreateObjectGraphicsSprite(
|
||||||
gObjectEvents[sViewportObjectEvents[i][OBJECT_EVENT_ID]].graphicsId,
|
gObjectEvents[sViewportObjectEvents[i][OBJECT_EVENT_ID]].graphicsId,
|
||||||
SpriteCallbackDummy,
|
SpriteCallbackDummy,
|
||||||
@@ -860,9 +860,9 @@ static void BuyMenuCopyTilemapData(void)
|
|||||||
static void BuyMenuPrintItemQuantityAndPrice(u8 taskId)
|
static void BuyMenuPrintItemQuantityAndPrice(u8 taskId)
|
||||||
{
|
{
|
||||||
s16 *data = gTasks[taskId].data;
|
s16 *data = gTasks[taskId].data;
|
||||||
|
|
||||||
FillWindowPixelBuffer(3, PIXEL_FILL(1));
|
FillWindowPixelBuffer(3, PIXEL_FILL(1));
|
||||||
PrintMoneyAmount(3, 0x36, 0xA, gShopData.itemPrice, TEXT_SKIP_DRAW);
|
PrintMoneyAmount(3, 0x36, 0xA, sShopData.itemPrice, TEXT_SKIP_DRAW);
|
||||||
ConvertIntToDecimalStringN(gStringVar1, tItemCount, STR_CONV_MODE_LEADING_ZEROS, 2);
|
ConvertIntToDecimalStringN(gStringVar1, tItemCount, STR_CONV_MODE_LEADING_ZEROS, 2);
|
||||||
StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
|
StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
|
||||||
BuyMenuPrint(3, FONT_SMALL, gStringVar4, 2, 0xA, 0, 0, 0, 1);
|
BuyMenuPrint(3, FONT_SMALL, gStringVar4, 2, 0xA, 0, 0, 0, 1);
|
||||||
@@ -875,7 +875,7 @@ static void Task_BuyMenu(u8 taskId)
|
|||||||
if (!gPaletteFade.active)
|
if (!gPaletteFade.active)
|
||||||
{
|
{
|
||||||
s32 itemId = ListMenu_ProcessInput(tListTaskId);
|
s32 itemId = ListMenu_ProcessInput(tListTaskId);
|
||||||
ListMenuGetScrollAndRow(tListTaskId, &gShopData.scrollOffset, &gShopData.selectedRow);
|
ListMenuGetScrollAndRow(tListTaskId, &sShopData.scrollOffset, &sShopData.selectedRow);
|
||||||
switch (itemId)
|
switch (itemId)
|
||||||
{
|
{
|
||||||
case LIST_NOTHING_CHOSEN:
|
case LIST_NOTHING_CHOSEN:
|
||||||
@@ -891,8 +891,8 @@ static void Task_BuyMenu(u8 taskId)
|
|||||||
BuyMenuRemoveScrollIndicatorArrows();
|
BuyMenuRemoveScrollIndicatorArrows();
|
||||||
BuyMenuPrintCursor(tListTaskId, 2);
|
BuyMenuPrintCursor(tListTaskId, 2);
|
||||||
RecolorItemDescriptionBox(1);
|
RecolorItemDescriptionBox(1);
|
||||||
gShopData.itemPrice = ItemId_GetPrice(itemId);
|
sShopData.itemPrice = ItemId_GetPrice(itemId);
|
||||||
if (!IsEnoughMoney(&gSaveBlock1Ptr->money, gShopData.itemPrice))
|
if (!IsEnoughMoney(&gSaveBlock1Ptr->money, sShopData.itemPrice))
|
||||||
{
|
{
|
||||||
BuyMenuDisplayMessage(taskId, gText_YouDontHaveMoney, BuyMenuReturnToItemList);
|
BuyMenuDisplayMessage(taskId, gText_YouDontHaveMoney, BuyMenuReturnToItemList);
|
||||||
}
|
}
|
||||||
@@ -911,7 +911,7 @@ static void Task_BuyHowManyDialogueInit(u8 taskId)
|
|||||||
s16 *data = gTasks[taskId].data;
|
s16 *data = gTasks[taskId].data;
|
||||||
u16 quantityInBag = BagGetQuantityByItemId(tItemId);
|
u16 quantityInBag = BagGetQuantityByItemId(tItemId);
|
||||||
u16 maxQuantity;
|
u16 maxQuantity;
|
||||||
|
|
||||||
BuyMenuQuantityBoxThinBorder(1, 0);
|
BuyMenuQuantityBoxThinBorder(1, 0);
|
||||||
ConvertIntToDecimalStringN(gStringVar1, quantityInBag, STR_CONV_MODE_RIGHT_ALIGN, 3);
|
ConvertIntToDecimalStringN(gStringVar1, quantityInBag, STR_CONV_MODE_RIGHT_ALIGN, 3);
|
||||||
StringExpandPlaceholders(gStringVar4, gText_InBagVar1);
|
StringExpandPlaceholders(gStringVar4, gText_InBagVar1);
|
||||||
@@ -922,23 +922,23 @@ static void Task_BuyHowManyDialogueInit(u8 taskId)
|
|||||||
ScheduleBgCopyTilemapToVram(0);
|
ScheduleBgCopyTilemapToVram(0);
|
||||||
maxQuantity = GetMoney(&gSaveBlock1Ptr->money) / ItemId_GetPrice(tItemId);
|
maxQuantity = GetMoney(&gSaveBlock1Ptr->money) / ItemId_GetPrice(tItemId);
|
||||||
if (maxQuantity > 99)
|
if (maxQuantity > 99)
|
||||||
gShopData.maxQuantity = 99;
|
sShopData.maxQuantity = 99;
|
||||||
else
|
else
|
||||||
gShopData.maxQuantity = (u8)maxQuantity;
|
sShopData.maxQuantity = (u8)maxQuantity;
|
||||||
|
|
||||||
if (maxQuantity != 1)
|
if (maxQuantity != 1)
|
||||||
BuyQuantityAddScrollIndicatorArrows();
|
BuyQuantityAddScrollIndicatorArrows();
|
||||||
|
|
||||||
gTasks[taskId].func = Task_BuyHowManyDialogueHandleInput;
|
gTasks[taskId].func = Task_BuyHowManyDialogueHandleInput;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void Task_BuyHowManyDialogueHandleInput(u8 taskId)
|
static void Task_BuyHowManyDialogueHandleInput(u8 taskId)
|
||||||
{
|
{
|
||||||
s16 *data = gTasks[taskId].data;
|
s16 *data = gTasks[taskId].data;
|
||||||
|
|
||||||
if (AdjustQuantityAccordingToDPadInput(&tItemCount, gShopData.maxQuantity) == TRUE)
|
if (AdjustQuantityAccordingToDPadInput(&tItemCount, sShopData.maxQuantity) == TRUE)
|
||||||
{
|
{
|
||||||
gShopData.itemPrice = ItemId_GetPrice(tItemId) * tItemCount;
|
sShopData.itemPrice = ItemId_GetPrice(tItemId) * tItemCount;
|
||||||
BuyMenuPrintItemQuantityAndPrice(taskId);
|
BuyMenuPrintItemQuantityAndPrice(taskId);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -954,11 +954,11 @@ static void Task_BuyHowManyDialogueHandleInput(u8 taskId)
|
|||||||
PutWindowTilemap(4);
|
PutWindowTilemap(4);
|
||||||
CopyItemName(tItemId, gStringVar1);
|
CopyItemName(tItemId, gStringVar1);
|
||||||
ConvertIntToDecimalStringN(gStringVar2, tItemCount, STR_CONV_MODE_LEFT_ALIGN, 2);
|
ConvertIntToDecimalStringN(gStringVar2, tItemCount, STR_CONV_MODE_LEFT_ALIGN, 2);
|
||||||
ConvertIntToDecimalStringN(gStringVar3, gShopData.itemPrice, STR_CONV_MODE_LEFT_ALIGN, 8);
|
ConvertIntToDecimalStringN(gStringVar3, sShopData.itemPrice, STR_CONV_MODE_LEFT_ALIGN, 8);
|
||||||
BuyMenuDisplayMessage(taskId, gText_Var1AndYouWantedVar2, CreateBuyMenuConfirmPurchaseWindow);
|
BuyMenuDisplayMessage(taskId, gText_Var1AndYouWantedVar2, CreateBuyMenuConfirmPurchaseWindow);
|
||||||
}
|
}
|
||||||
else if (JOY_NEW(B_BUTTON))
|
else if (JOY_NEW(B_BUTTON))
|
||||||
{
|
{
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
BuyMenuRemoveScrollIndicatorArrows();
|
BuyMenuRemoveScrollIndicatorArrows();
|
||||||
ClearStdWindowAndFrameToTransparent(3, FALSE);
|
ClearStdWindowAndFrameToTransparent(3, FALSE);
|
||||||
@@ -995,7 +995,7 @@ static void BuyMenuTryMakePurchase(u8 taskId)
|
|||||||
static void BuyMenuSubtractMoney(u8 taskId)
|
static void BuyMenuSubtractMoney(u8 taskId)
|
||||||
{
|
{
|
||||||
IncrementGameStat(GAME_STAT_SHOPPED);
|
IncrementGameStat(GAME_STAT_SHOPPED);
|
||||||
RemoveMoney(&gSaveBlock1Ptr->money, gShopData.itemPrice);
|
RemoveMoney(&gSaveBlock1Ptr->money, sShopData.itemPrice);
|
||||||
PlaySE(SE_SHOP);
|
PlaySE(SE_SHOP);
|
||||||
PrintMoneyAmountInMoneyBox(0, GetMoney(&gSaveBlock1Ptr->money), 0);
|
PrintMoneyAmountInMoneyBox(0, GetMoney(&gSaveBlock1Ptr->money), 0);
|
||||||
gTasks[taskId].func = Task_ReturnToItemListAfterItemPurchase;
|
gTasks[taskId].func = Task_ReturnToItemListAfterItemPurchase;
|
||||||
@@ -1019,9 +1019,9 @@ static void BuyMenuReturnToItemList(u8 taskId)
|
|||||||
RecolorItemDescriptionBox(0);
|
RecolorItemDescriptionBox(0);
|
||||||
PutWindowTilemap(4);
|
PutWindowTilemap(4);
|
||||||
PutWindowTilemap(5);
|
PutWindowTilemap(5);
|
||||||
if (gShopData.martType == MART_TYPE_TMHM)
|
if (sShopData.martType == MART_TYPE_TMHM)
|
||||||
PutWindowTilemap(6);
|
PutWindowTilemap(6);
|
||||||
|
|
||||||
ScheduleBgCopyTilemapToVram(0);
|
ScheduleBgCopyTilemapToVram(0);
|
||||||
BuyMenuAddScrollIndicatorArrows();
|
BuyMenuAddScrollIndicatorArrows();
|
||||||
gTasks[taskId].func = Task_BuyMenu;
|
gTasks[taskId].func = Task_BuyMenu;
|
||||||
@@ -1037,7 +1037,7 @@ static void ExitBuyMenu(u8 taskId)
|
|||||||
static void Task_ExitBuyMenu(u8 taskId)
|
static void Task_ExitBuyMenu(u8 taskId)
|
||||||
{
|
{
|
||||||
s16 *data = gTasks[taskId].data;
|
s16 *data = gTasks[taskId].data;
|
||||||
|
|
||||||
if (!gPaletteFade.active)
|
if (!gPaletteFade.active)
|
||||||
{
|
{
|
||||||
DestroyListMenuTask(tListTaskId, NULL, NULL);
|
DestroyListMenuTask(tListTaskId, NULL, NULL);
|
||||||
@@ -1060,7 +1060,7 @@ static void DebugFunc_PrintShopMenuHistoryBeforeClearMaybe(void)
|
|||||||
void RecordItemTransaction(u16 itemId, u16 quantity, u8 logEventId)
|
void RecordItemTransaction(u16 itemId, u16 quantity, u8 logEventId)
|
||||||
{
|
{
|
||||||
struct QuestLogEvent_Shop *history;
|
struct QuestLogEvent_Shop *history;
|
||||||
|
|
||||||
// There should only be a single entry for buying/selling respectively,
|
// There should only be a single entry for buying/selling respectively,
|
||||||
// so if one has already been created then get it first.
|
// so if one has already been created then get it first.
|
||||||
if (sHistory[0].logEventId == logEventId)
|
if (sHistory[0].logEventId == logEventId)
|
||||||
@@ -1084,7 +1084,7 @@ void RecordItemTransaction(u16 itemId, u16 quantity, u8 logEventId)
|
|||||||
// Set flag if this isn't the first time we've bought/sold in this session
|
// Set flag if this isn't the first time we've bought/sold in this session
|
||||||
if (history->lastItemId != ITEM_NONE)
|
if (history->lastItemId != ITEM_NONE)
|
||||||
history->hasMultipleTransactions = TRUE;
|
history->hasMultipleTransactions = TRUE;
|
||||||
|
|
||||||
history->lastItemId = itemId;
|
history->lastItemId = itemId;
|
||||||
|
|
||||||
// Add to number of items bought/sold
|
// Add to number of items bought/sold
|
||||||
@@ -1094,7 +1094,7 @@ void RecordItemTransaction(u16 itemId, u16 quantity, u8 logEventId)
|
|||||||
if (history->itemQuantity > 999)
|
if (history->itemQuantity > 999)
|
||||||
history->itemQuantity = 999;
|
history->itemQuantity = 999;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add to amount of money spent buying or earned selling
|
// Add to amount of money spent buying or earned selling
|
||||||
if (history->totalMoney < 999999)
|
if (history->totalMoney < 999999)
|
||||||
{
|
{
|
||||||
@@ -1103,7 +1103,7 @@ void RecordItemTransaction(u16 itemId, u16 quantity, u8 logEventId)
|
|||||||
history->totalMoney += (ItemId_GetPrice(itemId) >> (logEventId - 1)) * quantity;
|
history->totalMoney += (ItemId_GetPrice(itemId) >> (logEventId - 1)) * quantity;
|
||||||
if (history->totalMoney > 999999)
|
if (history->totalMoney > 999999)
|
||||||
history->totalMoney = 999999;
|
history->totalMoney = 999999;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Will record QL_EVENT_BOUGHT_ITEM and/or QL_EVENT_SOLD_ITEM, or nothing.
|
// Will record QL_EVENT_BOUGHT_ITEM and/or QL_EVENT_SOLD_ITEM, or nothing.
|
||||||
@@ -1112,14 +1112,14 @@ static void RecordTransactionForQuestLog(void)
|
|||||||
u16 eventId = sHistory[0].logEventId;
|
u16 eventId = sHistory[0].logEventId;
|
||||||
if (eventId != 0)
|
if (eventId != 0)
|
||||||
SetQuestLogEvent(eventId + QL_EVENT_USED_POKEMART, (const u16 *)&sHistory[0]);
|
SetQuestLogEvent(eventId + QL_EVENT_USED_POKEMART, (const u16 *)&sHistory[0]);
|
||||||
|
|
||||||
eventId = sHistory[1].logEventId;
|
eventId = sHistory[1].logEventId;
|
||||||
if (eventId != 0)
|
if (eventId != 0)
|
||||||
SetQuestLogEvent(eventId + QL_EVENT_USED_POKEMART, (const u16 *)&sHistory[1]);
|
SetQuestLogEvent(eventId + QL_EVENT_USED_POKEMART, (const u16 *)&sHistory[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreatePokemartMenu(const u16 *itemsForSale)
|
void CreatePokemartMenu(const u16 *itemsForSale)
|
||||||
{
|
{
|
||||||
SetShopItemsForSale(itemsForSale);
|
SetShopItemsForSale(itemsForSale);
|
||||||
CreateShopMenu(MART_TYPE_REGULAR);
|
CreateShopMenu(MART_TYPE_REGULAR);
|
||||||
SetShopMenuCallback(ScriptContext_Enable);
|
SetShopMenuCallback(ScriptContext_Enable);
|
||||||
|
|||||||
Reference in New Issue
Block a user