Name overlay 84, move to application/bag

This commit is contained in:
Gudf 2025-09-03 16:07:13 +02:00
parent 58d824065d
commit 764407e428
16 changed files with 201 additions and 196 deletions

View File

@ -0,0 +1,30 @@
#ifndef POKEPLATINUM_APPLICATIONS_BAG_APPLICATION_H
#define POKEPLATINUM_APPLICATIONS_BAG_APPLICATION_H
#include "overlay_manager.h"
enum BagApplicationMode {
BAG_MODE_NORMAL = 0,
BAG_MODE_GIVE_TO_MON,
BAG_MODE_SELL_ITEMS,
BAG_MODE_GARDENING,
BAG_MODE_POFFIN_SINGLEPLAYER,
BAG_MODE_POFFIN_MULTIPLAYER,
};
enum BagApplicationExitCode {
BAG_EXIT_CODE_USE_ITEM = 0,
BAG_EXIT_CODE_SHOW_BERRY_DATA,
BAG_EXIT_CODE_GIVE_ITEM,
BAG_EXIT_CODE_POFFIN_BERRY_CHOSEN,
BAG_EXIT_CODE_GIVE_FROM_MON_MENU,
BAG_EXIT_CODE_DONE,
};
int BagApplication_Init(ApplicationManager *appMan, int *state);
int BagApplication_Main(ApplicationManager *appMan, int *state);
int BagApplication_Exit(ApplicationManager *appMan, int *state);
extern const ApplicationManagerTemplate gBagApplicationTemplate;
#endif // POKEPLATINUM_APPLICATIONS_BAG_APPLICATION_H

View File

@ -1,5 +1,5 @@
#ifndef POKEPLATINUM_OV84_0223B5A0_H
#define POKEPLATINUM_OV84_0223B5A0_H
#ifndef POKEPLATINUM_APPLICATIONS_BAG_DEFS_H
#define POKEPLATINUM_APPLICATIONS_BAG_DEFS_H
#include "bag.h"
#include "bag_context.h"
@ -10,7 +10,6 @@
#include "menu.h"
#include "message.h"
#include "narc.h"
#include "overlay_manager.h"
#include "sprite_system.h"
#include "strbuf.h"
#include "string_list.h"
@ -19,22 +18,40 @@
#define BAG_UI_NUM_VISIBLE_ITEMS 9
enum BagInterfaceMode {
BAG_MODE_NORMAL = 0,
BAG_MODE_GIVE_TO_MON,
BAG_MODE_SELL_ITEMS,
BAG_MODE_GARDENING,
BAG_MODE_POFFIN_SINGLEPLAYER,
BAG_MODE_POFFIN_MULTIPLAYER,
enum BagUISprite {
BAG_SPRITE_BAG = 0,
BAG_SPRITE_POCKET_HIGHLIGHT,
BAG_SPRITE_POCKET_SELECTOR_LEFT_ARROW,
BAG_SPRITE_POCKET_SELECTOR_RIGHT_ARROW,
BAG_SPRITE_ITEM_HIGHLIGHT,
BAG_SPRITE_MOVING_ITEM_POS_BAR,
BAG_SPRITE_PRESSED_BUTTON_SHOCKWAVE,
BAG_SPRITE_ITEM,
BAG_SPRITE_ITEM_COUNT_ARROW_UP,
BAG_SPRITE_ITEM_COUNT_ARROW_DOWN,
BAG_SPRITE_MOVE_TYPE,
BAG_SPRITE_MOVE_CATEGORY,
NUM_BAG_UI_SPRITES,
};
enum BagInterfaceExitCode {
BAG_EXIT_CODE_USE_ITEM = 0,
BAG_EXIT_CODE_SHOW_BERRY_DATA,
BAG_EXIT_CODE_GIVE_ITEM,
BAG_EXIT_CODE_POFFIN_BERRY_CHOSEN,
BAG_EXIT_CODE_GIVE_FROM_MON_MENU,
BAG_EXIT_CODE_DONE,
enum BagUIItemCountArrowsPosition {
BAG_ITEM_COUNT_ARROWS_POS_TRASH = 0,
BAG_ITEM_COUNT_ARROWS_POS_SELL,
};
enum BagUIWindow {
BAG_UI_WINDOW_ITEM_LIST = 0,
BAG_UI_WINDOW_ITEM_DESCRIPTION,
BAG_UI_WINDOW_POCKET_NAMES,
BAG_UI_WINDOW_MSG_BOX,
BAG_UI_WINDOW_MSG_BOX_NARROW,
BAG_UI_WINDOW_POCKET_INDICATOR,
BAG_UI_WINDOW_MSG_BOX_WIDE,
BAG_UI_WINDOW_SELL_COUNT_VALUE,
BAG_UI_WINDOW_MONEY,
BAG_UI_WINDOW_THROW_AWAY_COUNT,
BAG_UI_WINDOW_POFFIN_COUNT,
NUM_BAG_UI_WINDOWS,
};
enum ItemAction {
@ -86,7 +103,7 @@ typedef struct BagPocketHighlight {
struct BagController {
BgConfig *bgConfig;
Window windows[11];
Window windows[NUM_BAG_UI_WINDOWS];
Window itemActionsWindow;
BagContext *bagCtx;
Bag *bag;
@ -95,7 +112,7 @@ struct BagController {
NARC *bagGraphicsNARC;
SpriteSystem *spriteSystem;
SpriteManager *spriteMan;
ManagedSprite *sprites[12];
ManagedSprite *sprites[NUM_BAG_UI_SPRITES];
FontSpecialCharsContext *specialChars;
MessageLoader *bagStringsLoader;
StringTemplate *strTemplate;
@ -145,10 +162,4 @@ struct BagController {
u8 padding_4A2[2];
};
int BagApplication_Init(ApplicationManager *appMan, int *state);
int BahApplication_Main(ApplicationManager *appMan, int *state);
int BagApplication_Exit(ApplicationManager *appMan, int *state);
u16 BagInterface_GetItemSlotParam(BagController *controller, u16 slotIndex, u16 itemParam);
const u32 BagApplication_GetItemActionFunc(enum ItemAction action);
#endif // POKEPLATINUM_OV84_0223B5A0_H
#endif

View File

@ -0,0 +1,9 @@
#ifndef POKEPLATINUM_APPLICATIONS_BAG_MAIN_H
#define POKEPLATINUM_APPLICATIONS_BAG_MAIN_H
#include "applications/bag/defs.h"
u16 BagInterface_GetItemSlotParam(BagController *controller, u16 slotIndex, u16 itemParam);
const u32 BagApplication_GetItemActionFunc(enum ItemAction action);
#endif // POKEPLATINUM_APPLICATIONS_BAG_MAIN_H

View File

@ -1,28 +1,7 @@
#ifndef POKEPLATINUM_OV84_022403F4_H
#define POKEPLATINUM_OV84_022403F4_H
#ifndef POKEPLATINUM_APPLICATIONS_BAG_SPRITES_H
#define POKEPLATINUM_APPLICATIONS_BAG_SPRITES_H
#include "overlay084/ov84_0223B5A0.h"
enum BagUISprite {
BAG_SPRITE_BAG = 0,
BAG_SPRITE_POCKET_HIGHLIGHT,
BAG_SPRITE_POCKET_SELECTOR_LEFT_ARROW,
BAG_SPRITE_POCKET_SELECTOR_RIGHT_ARROW,
BAG_SPRITE_ITEM_HIGHLIGHT,
BAG_SPRITE_MOVING_ITEM_POS_BAR,
BAG_SPRITE_PRESSED_BUTTON_SHOCKWAVE,
BAG_SPRITE_ITEM,
BAG_SPRITE_ITEM_COUNT_ARROW_UP,
BAG_SPRITE_ITEM_COUNT_ARROW_DOWN,
BAG_SPRITE_MOVE_TYPE,
BAG_SPRITE_MOVE_CATEGORY,
NUM_BAG_UI_SPRITES,
};
enum BagUIItemCountArrowsPosition {
BAG_ITEM_COUNT_ARROWS_POS_TRASH = 0,
BAG_ITEM_COUNT_ARROWS_POS_SELL,
};
#include "applications/bag/defs.h"
void BagUI_InitSprites(BagController *controller);
void BagUI_FreeSprites(BagController *controller);
@ -38,4 +17,4 @@ void BagUI_UpdateTypeAndCategoryIcons(BagController *controller, u16 item, u8 dr
void BagUI_DrawBtnShockwave(BagController *controller, s16 x, s16 y);
void BagUI_TickBtnShockwaveAnim(BagController *controller);
#endif // POKEPLATINUM_OV84_022403F4_H
#endif // POKEPLATINUM_APPLICATIONS_BAG_SPRITES_H

View File

@ -1,26 +1,11 @@
#ifndef POKEPLATINUM_OV84_0223F040_H
#define POKEPLATINUM_OV84_0223F040_H
#ifndef POKEPLATINUM_APPLICATIONS_BAG_WINDOWS_H
#define POKEPLATINUM_APPLICATIONS_BAG_WINDOWS_H
#include "overlay084/ov84_0223B5A0.h"
#include "applications/bag/defs.h"
#include "bag.h"
#include "bg_window.h"
enum BagUIWindow {
BAG_UI_WINDOW_ITEM_LIST = 0,
BAG_UI_WINDOW_ITEM_DESCRIPTION,
BAG_UI_WINDOW_POCKET_NAMES,
BAG_UI_WINDOW_MSG_BOX,
BAG_UI_WINDOW_MSG_BOX_NARROW,
BAG_UI_WINDOW_POCKET_INDICATOR,
BAG_UI_WINDOW_MSG_BOX_WIDE,
BAG_UI_WINDOW_SELL_COUNT_VALUE,
BAG_UI_WINDOW_MONEY,
BAG_UI_WINDOW_THROW_AWAY_COUNT,
BAG_UI_WINDOW_POFFIN_COUNT,
NUM_BAG_UI_WINDOWS,
};
void BagUI_CreateWindows(BagController *controller);
void BagUI_DeleteWindows(Window windows[NUM_BAG_UI_WINDOWS]);
void BagUI_LoadPocketNames(BagController *controller);
@ -53,4 +38,4 @@ void BagUI_PrintSellCountAndValue(BagController *controller, u8 skipFrame);
void BagUI_PrintMoney(BagController *controller, u8 skipLabel);
void BagUI_DrawPoffinCountMsgBox(BagController *controller);
#endif // POKEPLATINUM_OV84_0223F040_H
#endif // POKEPLATINUM_APPLICATIONS_BAG_WINDOWS_H

View File

@ -8,7 +8,7 @@ enum HeapID {
HEAP_ID_APPLICATION,
HEAP_ID_FIELD1,
HEAP_ID_BATTLE,
HEAP_ID_6,
HEAP_ID_BAG,
HEAP_ID_POKETCH_MAIN,
HEAP_ID_POKETCH_APP,
HEAP_ID_BOX_DATA,
@ -134,6 +134,8 @@ enum HeapSize {
HEAP_SIZE_DEBUG = 0x10,
HEAP_SIZE_APPLICATION = 0x10D800,
HEAP_SIZE_BAG = 0x30000,
HEAP_SIZE_PRE_POKETCH_SUBSCREEN = 0x18000,
HEAP_SIZE_POKETCH_MAIN = 0xC000,
HEAP_SIZE_POKETCH_APP = 0xC000,

View File

@ -1,8 +0,0 @@
#ifndef POKEPLATINUM_CONST_OV84_02241130_H
#define POKEPLATINUM_CONST_OV84_02241130_H
#include "overlay_manager.h"
extern const ApplicationManagerTemplate gBagApplicationTemplate;
#endif // POKEPLATINUM_CONST_OV84_02241130_H

View File

@ -1347,17 +1347,17 @@ Overlay overlay83
Object main.nef.p/src_overlay083_ov83_0223F7F4.c.o
}
Overlay overlay84
Overlay bag
{
After overlay82
Object main.nef.p/src_overlay084_ov84_0223B5A0.c.o
Object main.nef.p/src_overlay084_ov84_0223F040.c.o
Object main.nef.p/src_overlay084_ov84_022403F4.c.o
Object main.nef.p/src_applications_bag_main.c.o
Object main.nef.p/src_applications_bag_windows.c.o
Object main.nef.p/src_applications_bag_sprites.c.o
}
Overlay overlay85
{
After overlay84
After bag
Object main.nef.p/src_overlay085_ov85_02241440.c.o
}

View File

@ -83,7 +83,7 @@ b8c85f32459d20b3a6cfde5a1e349215dd0157a0 *overlay79.sbin
1982ed52ba9469dd625dc5951277fd1c001b26af *journal_display.sbin
429a576c3e5a24f25167051957b22f194d2af781 *overlay82.sbin
1904a30bcfb722856130ab7b3d0e79fd0070520d *overlay83.sbin
8bd6a805631e2d661f9d5889e568a72e60f93a04 *overlay84.sbin
8bd6a805631e2d661f9d5889e568a72e60f93a04 *bag.sbin
c197c9edb988d64dec0a56427dfc6960646dc1f7 *overlay85.sbin
a563e0430b460ee5a39442667561e0bd5428dcdb *overlay86.sbin
8c7f762ebf90f08b09b9efd49946176bb6ed1c69 *overlay87.sbin

View File

@ -1,4 +1,4 @@
#include "overlay084/ov84_0223B5A0.h"
#include "applications/bag/main.h"
#include <nitro.h>
#include <string.h>
@ -10,10 +10,9 @@
#include "struct_defs/special_encounter.h"
#include "struct_defs/struct_02099F80.h"
#include "overlay084/const_ov84_02241130.h"
#include "overlay084/ov84_0223B5A0.h"
#include "overlay084/ov84_0223F040.h"
#include "overlay084/ov84_022403F4.h"
#include "applications/bag/application.h"
#include "applications/bag/sprites.h"
#include "applications/bag/windows.h"
#include "bag.h"
#include "bag_context.h"
@ -195,7 +194,7 @@ static BOOL DoMenuInput(BagController *controller, u8 input);
const ApplicationManagerTemplate gBagApplicationTemplate = {
BagApplication_Init,
BahApplication_Main,
BagApplication_Main,
BagApplication_Exit,
FS_OVERLAY_ID_NONE
};
@ -423,18 +422,18 @@ int BagApplication_Init(ApplicationManager *appMan, int *state)
G2_BlendNone();
G2S_BlendNone();
Heap_Create(HEAP_ID_APPLICATION, HEAP_ID_6, 0x30000);
Heap_Create(HEAP_ID_APPLICATION, HEAP_ID_BAG, HEAP_SIZE_BAG);
controller = ApplicationManager_NewData(appMan, sizeof(BagController), HEAP_ID_6);
controller = ApplicationManager_NewData(appMan, sizeof(BagController), HEAP_ID_BAG);
memset(controller, 0, sizeof(BagController));
controller->bagCtx = ApplicationManager_Args(appMan);
RetrieveSaveData(controller);
controller->bgConfig = BgConfig_New(HEAP_ID_6);
controller->bgConfig = BgConfig_New(HEAP_ID_BAG);
controller->trainerGender = TrainerInfo_Gender(controller->trainerInfo);
StartScreenFade(FADE_MAIN_THEN_SUB, FADE_TYPE_DOWNWARD_IN, FADE_TYPE_DOWNWARD_IN, COLOR_BLACK, 6, 1, HEAP_ID_6);
StartScreenFade(FADE_MAIN_THEN_SUB, FADE_TYPE_DOWNWARD_IN, FADE_TYPE_DOWNWARD_IN, COLOR_BLACK, 6, 1, HEAP_ID_BAG);
SetAutorepeat(3, 8);
RestoreCursorPosition(controller);
@ -479,7 +478,7 @@ int BagApplication_Init(ApplicationManager *appMan, int *state)
return TRUE;
}
int BahApplication_Main(ApplicationManager *appMan, int *state)
int BagApplication_Main(ApplicationManager *appMan, int *state)
{
BagController *controller = ApplicationManager_Data(appMan);
@ -619,7 +618,7 @@ int BagApplication_Exit(ApplicationManager *appMan, int *state)
NARC_dtor(controller->bagGraphicsNARC);
ApplicationManager_FreeData(appMan);
SetVBlankCallback(NULL, NULL);
Heap_Destroy(HEAP_ID_6);
Heap_Destroy(HEAP_ID_BAG);
SetAutorepeat(4, 8);
return TRUE;
@ -804,8 +803,8 @@ static void SetupBGLayers(BgConfig *bgConfig)
Bg_ScheduleAffineRotationCenter(bgConfig, BG_LAYER_SUB_3, BG_AFFINE_UPDATE_SET_X_CENTER, DIAL_CENTER_X);
Bg_ScheduleAffineRotationCenter(bgConfig, BG_LAYER_SUB_3, BG_AFFINE_UPDATE_SET_Y_CENTER, DIAL_CENTER_Y);
Bg_ClearTilesRange(BG_LAYER_MAIN_0, 32, 0, HEAP_ID_6);
Bg_ClearTilesRange(BG_LAYER_SUB_0, 32, 0, HEAP_ID_6);
Bg_ClearTilesRange(BG_LAYER_MAIN_0, 32, 0, HEAP_ID_BAG);
Bg_ClearTilesRange(BG_LAYER_SUB_0, 32, 0, HEAP_ID_BAG);
}
static void FreeBGLayers(BgConfig *bgConfig)
@ -819,38 +818,38 @@ static void FreeBGLayers(BgConfig *bgConfig)
Bg_FreeTilemapBuffer(bgConfig, BG_LAYER_MAIN_2);
Bg_FreeTilemapBuffer(bgConfig, BG_LAYER_MAIN_1);
Bg_FreeTilemapBuffer(bgConfig, BG_LAYER_MAIN_0);
Heap_FreeExplicit(HEAP_ID_6, bgConfig);
Heap_FreeExplicit(HEAP_ID_BAG, bgConfig);
}
static void LoadGraphics(BagController *controller)
{
controller->bagGraphicsNARC = NARC_ctor(NARC_INDEX_GRAPHIC__PL_BAG_GRA, HEAP_ID_6);
controller->bagGraphicsNARC = NARC_ctor(NARC_INDEX_GRAPHIC__PL_BAG_GRA, HEAP_ID_BAG);
Graphics_LoadTilesToBgLayerFromOpenNARC(controller->bagGraphicsNARC, 11, controller->bgConfig, BG_LAYER_MAIN_1, 0, 0, FALSE, HEAP_ID_6);
Graphics_LoadTilemapToBgLayerFromOpenNARC(controller->bagGraphicsNARC, 14, controller->bgConfig, BG_LAYER_MAIN_1, 0, 0, FALSE, HEAP_ID_6);
Graphics_LoadTilemapToBgLayerFromOpenNARC(controller->bagGraphicsNARC, 13, controller->bgConfig, BG_LAYER_MAIN_3, 0, 0, FALSE, HEAP_ID_6);
Graphics_LoadPaletteFromOpenNARC(controller->bagGraphicsNARC, 12, PAL_LOAD_MAIN_BG, PLTT_OFFSET(0), 0, HEAP_ID_6);
Graphics_LoadPaletteFromOpenNARC(controller->bagGraphicsNARC, 22, PAL_LOAD_MAIN_BG, PLTT_OFFSET(13), PALETTE_SIZE_BYTES, HEAP_ID_6);
Font_LoadScreenIndicatorsPalette(0, PLTT_OFFSET(11), HEAP_ID_6);
LoadStandardWindowGraphics(controller->bgConfig, BG_LAYER_MAIN_0, BASE_TILE_STANDARD_WINDOW_FRAME, PLTT_14, STANDARD_WINDOW_SYSTEM, HEAP_ID_6);
LoadMessageBoxGraphics(controller->bgConfig, BG_LAYER_MAIN_0, BASE_TILE_MSG_BOX_FRAME, PLTT_12, Options_Frame(controller->options), HEAP_ID_6);
Graphics_LoadTilesToBgLayerFromOpenNARC(controller->bagGraphicsNARC, 15, controller->bgConfig, BG_LAYER_SUB_1, 0, 0, FALSE, HEAP_ID_6);
Graphics_LoadPaletteFromOpenNARC(controller->bagGraphicsNARC, 16, PAL_LOAD_SUB_BG, PLTT_OFFSET(0), 0, HEAP_ID_6);
Graphics_LoadTilemapToBgLayerFromOpenNARC(controller->bagGraphicsNARC, 17, controller->bgConfig, BG_LAYER_SUB_1, 0, 0, FALSE, HEAP_ID_6);
Graphics_LoadTilesToBgLayerFromOpenNARC(controller->bagGraphicsNARC, 32, controller->bgConfig, BG_LAYER_SUB_3, 0, 0, FALSE, HEAP_ID_6);
Graphics_LoadTilemapToBgLayerFromOpenNARC(controller->bagGraphicsNARC, 33, controller->bgConfig, BG_LAYER_SUB_3, 0, 0, FALSE, HEAP_ID_6);
Graphics_LoadTilesToBgLayerFromOpenNARC(controller->bagGraphicsNARC, 19, controller->bgConfig, BG_LAYER_SUB_0, 0, 0, FALSE, HEAP_ID_6);
Graphics_LoadPaletteFromOpenNARC(controller->bagGraphicsNARC, 18, PAL_LOAD_SUB_BG, PLTT_OFFSET(2), PALETTE_SIZE_BYTES * 2, HEAP_ID_6);
Graphics_LoadTilesToBgLayerFromOpenNARC(controller->bagGraphicsNARC, 11, controller->bgConfig, BG_LAYER_MAIN_1, 0, 0, FALSE, HEAP_ID_BAG);
Graphics_LoadTilemapToBgLayerFromOpenNARC(controller->bagGraphicsNARC, 14, controller->bgConfig, BG_LAYER_MAIN_1, 0, 0, FALSE, HEAP_ID_BAG);
Graphics_LoadTilemapToBgLayerFromOpenNARC(controller->bagGraphicsNARC, 13, controller->bgConfig, BG_LAYER_MAIN_3, 0, 0, FALSE, HEAP_ID_BAG);
Graphics_LoadPaletteFromOpenNARC(controller->bagGraphicsNARC, 12, PAL_LOAD_MAIN_BG, PLTT_OFFSET(0), 0, HEAP_ID_BAG);
Graphics_LoadPaletteFromOpenNARC(controller->bagGraphicsNARC, 22, PAL_LOAD_MAIN_BG, PLTT_OFFSET(13), PALETTE_SIZE_BYTES, HEAP_ID_BAG);
Font_LoadScreenIndicatorsPalette(0, PLTT_OFFSET(11), HEAP_ID_BAG);
LoadStandardWindowGraphics(controller->bgConfig, BG_LAYER_MAIN_0, BASE_TILE_STANDARD_WINDOW_FRAME, PLTT_14, STANDARD_WINDOW_SYSTEM, HEAP_ID_BAG);
LoadMessageBoxGraphics(controller->bgConfig, BG_LAYER_MAIN_0, BASE_TILE_MSG_BOX_FRAME, PLTT_12, Options_Frame(controller->options), HEAP_ID_BAG);
Graphics_LoadTilesToBgLayerFromOpenNARC(controller->bagGraphicsNARC, 15, controller->bgConfig, BG_LAYER_SUB_1, 0, 0, FALSE, HEAP_ID_BAG);
Graphics_LoadPaletteFromOpenNARC(controller->bagGraphicsNARC, 16, PAL_LOAD_SUB_BG, PLTT_OFFSET(0), 0, HEAP_ID_BAG);
Graphics_LoadTilemapToBgLayerFromOpenNARC(controller->bagGraphicsNARC, 17, controller->bgConfig, BG_LAYER_SUB_1, 0, 0, FALSE, HEAP_ID_BAG);
Graphics_LoadTilesToBgLayerFromOpenNARC(controller->bagGraphicsNARC, 32, controller->bgConfig, BG_LAYER_SUB_3, 0, 0, FALSE, HEAP_ID_BAG);
Graphics_LoadTilemapToBgLayerFromOpenNARC(controller->bagGraphicsNARC, 33, controller->bgConfig, BG_LAYER_SUB_3, 0, 0, FALSE, HEAP_ID_BAG);
Graphics_LoadTilesToBgLayerFromOpenNARC(controller->bagGraphicsNARC, 19, controller->bgConfig, BG_LAYER_SUB_0, 0, 0, FALSE, HEAP_ID_BAG);
Graphics_LoadPaletteFromOpenNARC(controller->bagGraphicsNARC, 18, PAL_LOAD_SUB_BG, PLTT_OFFSET(2), PALETTE_SIZE_BYTES * 2, HEAP_ID_BAG);
}
static void SetupTextLoaders(BagController *controller)
{
controller->bagStringsLoader = MessageLoader_Init(MESSAGE_LOADER_BANK_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_BAG, HEAP_ID_6);
controller->specialChars = FontSpecialChars_Init(1, 2, 0, HEAP_ID_6);
controller->strTemplate = StringTemplate_Default(HEAP_ID_6);
controller->itemNamesLoader = MessageLoader_Init(MESSAGE_LOADER_BANK_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_ITEM_NAMES, HEAP_ID_6);
controller->moveNamesLoader = MessageLoader_Init(MESSAGE_LOADER_BANK_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_MOVE_NAMES, HEAP_ID_6);
controller->strBuffer = Strbuf_Init(256, HEAP_ID_6);
controller->bagStringsLoader = MessageLoader_Init(MESSAGE_LOADER_BANK_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_BAG, HEAP_ID_BAG);
controller->specialChars = FontSpecialChars_Init(1, 2, 0, HEAP_ID_BAG);
controller->strTemplate = StringTemplate_Default(HEAP_ID_BAG);
controller->itemNamesLoader = MessageLoader_Init(MESSAGE_LOADER_BANK_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_ITEM_NAMES, HEAP_ID_BAG);
controller->moveNamesLoader = MessageLoader_Init(MESSAGE_LOADER_BANK_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_MOVE_NAMES, HEAP_ID_BAG);
controller->strBuffer = Strbuf_Init(256, HEAP_ID_BAG);
}
static void CountAccessiblePockets(BagController *controller)
@ -956,7 +955,7 @@ static void SaveCursorPosition(BagController *controller)
static void LoadCurrentPocketItemNames(BagController *controller)
{
BagApplicationPocket *pocket = &controller->bagCtx->accessiblePockets[controller->bagCtx->currPocketIdx];
controller->itemListEntries = StringList_New(sPocketSizes[pocket->pocketType] + 3, HEAP_ID_6); // + 3 to account for some non-item entries
controller->itemListEntries = StringList_New(sPocketSizes[pocket->pocketType] + 3, HEAP_ID_BAG); // + 3 to account for some non-item entries
// The first line of the items list is partially hidden behind the UI, so we begin with an empty entry.
// Similarly, the last line is partially hidden so a second empty entry gets added to the end later on.
@ -969,7 +968,7 @@ static void LoadCurrentPocketItemNames(BagController *controller)
break;
}
LoadTMHMMoveName(controller->moveNamesLoader, controller->itemNames[i], pocket->items[i].item, HEAP_ID_6);
LoadTMHMMoveName(controller->moveNamesLoader, controller->itemNames[i], pocket->items[i].item, HEAP_ID_BAG);
StringList_AddFromStrbuf(controller->itemListEntries, controller->itemNames[i], i);
}
@ -984,7 +983,7 @@ static void LoadCurrentPocketItemNames(BagController *controller)
break;
}
LoadItemName(controller->itemNamesLoader, controller->itemNames[i], pocket->items[i].item, HEAP_ID_6);
LoadItemName(controller->itemNamesLoader, controller->itemNames[i], pocket->items[i].item, HEAP_ID_BAG);
StringList_AddFromStrbuf(controller->itemListEntries, controller->itemNames[i], i);
}
@ -1007,7 +1006,7 @@ static void LoadCurrentPocketItemNames(BagController *controller)
static void InitItemNameBuffers(BagController *controller)
{
for (u32 i = 0; i < LARGEST_POCKET_SIZE; i++) {
controller->itemNames[i] = Strbuf_Init(18, HEAP_ID_6);
controller->itemNames[i] = Strbuf_Init(18, HEAP_ID_BAG);
}
}
@ -1079,7 +1078,7 @@ static void CreateItemListMenu(BagController *controller, u16 initialScroll, u16
template.textXOffset = 0;
}
controller->itemList = ListMenu_New(&template, initialScroll, initialPos, HEAP_ID_6);
controller->itemList = ListMenu_New(&template, initialScroll, initialPos, HEAP_ID_BAG);
Window_ScheduleCopyToVRAM(&controller->windows[BAG_UI_WINDOW_ITEM_LIST]);
}
@ -1266,7 +1265,7 @@ static u8 ProcessItemListMenuInput(BagController *interface)
Sound_PlayEffect(SEQ_SE_CONFIRM);
interface->bagCtx->selectedItem = ITEM_NONE;
interface->bagCtx->exitCode = BAG_EXIT_CODE_DONE;
App_StartScreenFade(TRUE, HEAP_ID_6);
App_StartScreenFade(TRUE, HEAP_ID_BAG);
return ITEM_LIST_INPUT_EXIT_BAG;
default:
Sound_PlayEffect(SEQ_SE_CONFIRM);
@ -1942,7 +1941,7 @@ static void MakeItemActionsMenu(BagController *controller)
u8 currentPocketType;
u8 itemActions[NUM_ITEM_ACTIONS];
itemData = Item_Load(controller->bagCtx->selectedItem, ITEM_FILE_TYPE_DATA, HEAP_ID_6);
itemData = Item_Load(controller->bagCtx->selectedItem, ITEM_FILE_TYPE_DATA, HEAP_ID_BAG);
itemActionsIdx = 0;
currentPocketType = controller->bagCtx->accessiblePockets[controller->bagCtx->currPocketIdx].pocketType;
@ -2072,14 +2071,14 @@ static int ItemActionFunc_Use(BagController *controller)
{
BagUI_CloseItemActionsMenu(controller);
s32 itemUseFuncIdx = Item_LoadParam(controller->bagCtx->selectedItem, ITEM_PARAM_FIELD_USE_FUNC, HEAP_ID_6);
s32 itemUseFuncIdx = Item_LoadParam(controller->bagCtx->selectedItem, ITEM_PARAM_FIELD_USE_FUNC, HEAP_ID_BAG);
ItemCheckUseFunc checkFunc = (ItemCheckUseFunc)GetItemUseFunction(USE_ITEM_TASK_CHECK, itemUseFuncIdx);
if (checkFunc != NULL) {
u32 checkResult = checkFunc(controller->bagCtx->itemUseCtx);
if (checkResult != 0) {
BagContext_FormatErrorMessage(controller->trainerInfo, controller->strBuffer, controller->bagCtx->selectedItem, checkResult, HEAP_ID_6);
BagContext_FormatErrorMessage(controller->trainerInfo, controller->strBuffer, controller->bagCtx->selectedItem, checkResult, HEAP_ID_BAG);
Window_FillTilemap(&controller->windows[BAG_UI_WINDOW_MSG_BOX_WIDE], 15);
Window_DrawMessageBoxWithScrollCursor(&controller->windows[BAG_UI_WINDOW_MSG_BOX_WIDE], FALSE, BASE_TILE_MSG_BOX_FRAME, PLTT_12);
controller->msgBoxPrinterID = BagUI_PrintStrBufferToWideMsgBox(controller);
@ -2121,7 +2120,7 @@ static int HandleItemUsed(BagController *interface)
return BAG_APP_STATE_RUN_ITEM_USE_TASK;
}
if (BagContext_FormatUsageMessage(interface->bagCtx->saveData, interface->strBuffer, interface->bagCtx->selectedItem, HEAP_ID_6) == TRUE) {
if (BagContext_FormatUsageMessage(interface->bagCtx->saveData, interface->strBuffer, interface->bagCtx->selectedItem, HEAP_ID_BAG) == TRUE) {
Window_FillTilemap(&interface->windows[BAG_UI_WINDOW_MSG_BOX_WIDE], 15);
Window_DrawMessageBoxWithScrollCursor(&interface->windows[BAG_UI_WINDOW_MSG_BOX_WIDE], FALSE, BASE_TILE_MSG_BOX_FRAME, PLTT_12);
interface->msgBoxPrinterID = BagUI_PrintStrBufferToWideMsgBox(interface);
@ -2133,7 +2132,7 @@ static int HandleItemUsed(BagController *interface)
return BAG_APP_STATE_RUN_ITEM_USE_TASK;
}
App_StartScreenFade(1, HEAP_ID_6);
App_StartScreenFade(1, HEAP_ID_BAG);
interface->bagCtx->exitCode = BAG_EXIT_CODE_USE_ITEM;
return BAG_APP_STATE_EXIT;
@ -2196,15 +2195,15 @@ static int TMHMUseTask(BagController *controller)
}
if (CheckDialButtonPressed(controller) == TRUE) {
selected = Menu_ProcessExternalInputAndHandleExit(controller->menu, MENU_INPUT_CONFIRM, HEAP_ID_6);
selected = Menu_ProcessExternalInputAndHandleExit(controller->menu, MENU_INPUT_CONFIRM, HEAP_ID_BAG);
controller->dialButtonAnimStep = 1;
} else {
selected = Menu_ProcessInputAndHandleExit(controller->menu, HEAP_ID_6);
selected = Menu_ProcessInputAndHandleExit(controller->menu, HEAP_ID_BAG);
}
switch (selected) {
case 0:
App_StartScreenFade(TRUE, HEAP_ID_6);
App_StartScreenFade(TRUE, HEAP_ID_BAG);
ToggleHideItemSprite(controller, FALSE);
controller->bagCtx->exitCode = BAG_EXIT_CODE_USE_ITEM;
return BAG_APP_STATE_EXIT;
@ -2262,7 +2261,7 @@ static Strbuf *TryUseRepel(BagController *controller, u16 item)
return MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_RepelEffectsLinger);
}
u32 stepCount = Item_LoadParam(item, ITEM_PARAM_HOLD_EFFECT_PARAM, HEAP_ID_6);
u32 stepCount = Item_LoadParam(item, ITEM_PARAM_HOLD_EFFECT_PARAM, HEAP_ID_BAG);
SetRepelSteps(controller, stepCount);
controller->selectedItemCount = 1;
Sound_PlayEffect(SEQ_SE_DP_CARD2);
@ -2272,7 +2271,7 @@ static Strbuf *TryUseRepel(BagController *controller, u16 item)
static void TrashSelectedItem(BagController *controller)
{
Pocket_TryRemoveItem(controller->bagCtx->accessiblePockets[controller->bagCtx->currPocketIdx].items, controller->bagCtx->accessiblePockets[controller->bagCtx->currPocketIdx].listEntryCount - 3, controller->bagCtx->selectedItem, controller->selectedItemCount, HEAP_ID_6);
Pocket_TryRemoveItem(controller->bagCtx->accessiblePockets[controller->bagCtx->currPocketIdx].items, controller->bagCtx->accessiblePockets[controller->bagCtx->currPocketIdx].listEntryCount - 3, controller->bagCtx->selectedItem, controller->selectedItemCount, HEAP_ID_BAG);
ListMenu_Free(controller->itemList, &controller->bagCtx->accessiblePockets[controller->bagCtx->currPocketIdx].cursorScroll, &controller->bagCtx->accessiblePockets[controller->bagCtx->currPocketIdx].cursorPos);
StringList_Free(controller->itemListEntries);
@ -2319,7 +2318,7 @@ static int MessageItemUseTask(BagController *controller)
static int ItemActionFunc_CheckTag(BagController *controller)
{
BagUI_CloseItemActionsMenu(controller);
App_StartScreenFade(TRUE, HEAP_ID_6);
App_StartScreenFade(TRUE, HEAP_ID_BAG);
controller->bagCtx->exitCode = BAG_EXIT_CODE_SHOW_BERRY_DATA;
return BAG_APP_STATE_EXIT;
@ -2328,7 +2327,7 @@ static int ItemActionFunc_CheckTag(BagController *controller)
static int ItemActionFunc_Confirm(BagController *controller)
{
BagUI_CloseItemActionsMenu(controller);
App_StartScreenFade(TRUE, HEAP_ID_6);
App_StartScreenFade(TRUE, HEAP_ID_BAG);
controller->bagCtx->exitCode = BAG_EXIT_CODE_POFFIN_BERRY_CHOSEN;
return BAG_APP_STATE_EXIT;
@ -2338,7 +2337,7 @@ static int ItemActionFunc_Trash(BagController *controller)
{
BagUI_CloseItemActionsMenu(controller);
controller->selectedItemCount = 1;
if (Pocket_GetItemQuantity(controller->bagCtx->accessiblePockets[controller->bagCtx->currPocketIdx].items, controller->bagCtx->accessiblePockets[controller->bagCtx->currPocketIdx].listEntryCount - 3, controller->bagCtx->selectedItem, HEAP_ID_6) == 1) {
if (Pocket_GetItemQuantity(controller->bagCtx->accessiblePockets[controller->bagCtx->currPocketIdx].items, controller->bagCtx->accessiblePockets[controller->bagCtx->currPocketIdx].listEntryCount - 3, controller->bagCtx->selectedItem, HEAP_ID_BAG) == 1) {
BagUI_PrintConfirmItemTrashMsg(controller);
return BAG_APP_STATE_SHOW_CONFIRM_TRASH_MSG;
}
@ -2413,10 +2412,10 @@ static int ProcessMenuInput_ConfirmTrash(BagController *controller)
u32 selectedOption;
if (CheckDialButtonPressed(controller) == TRUE) {
selectedOption = Menu_ProcessExternalInputAndHandleExit(controller->menu, MENU_INPUT_CONFIRM, HEAP_ID_6);
selectedOption = Menu_ProcessExternalInputAndHandleExit(controller->menu, MENU_INPUT_CONFIRM, HEAP_ID_BAG);
controller->dialButtonAnimStep = 1;
} else {
selectedOption = Menu_ProcessInputAndHandleExit(controller->menu, HEAP_ID_6);
selectedOption = Menu_ProcessInputAndHandleExit(controller->menu, HEAP_ID_BAG);
}
switch (selectedOption) {
@ -2510,7 +2509,7 @@ static int ItemActionFunc_Deselect(BagController *controller)
static int ItemActionFunc_Give(BagController *controller)
{
BagUI_CloseItemActionsMenu(controller);
App_StartScreenFade(TRUE, HEAP_ID_6);
App_StartScreenFade(TRUE, HEAP_ID_BAG);
ToggleHideItemSprite(controller, FALSE);
controller->bagCtx->exitCode = BAG_EXIT_CODE_GIVE_ITEM;
@ -2536,7 +2535,7 @@ static int ProcessItemListInput_GiveToMon(BagController *controller)
u8 input = ProcessItemListMenuInput(controller);
if (input == ITEM_LIST_INPUT_SELECT_ITEM) {
if (Item_LoadParam(controller->bagCtx->selectedItem, ITEM_PARAM_PREVENT_TOSS, HEAP_ID_6)) {
if (Item_LoadParam(controller->bagCtx->selectedItem, ITEM_PARAM_PREVENT_TOSS, HEAP_ID_BAG)) {
Strbuf *string;
Window_FillTilemap(&controller->windows[BAG_UI_WINDOW_MSG_BOX_WIDE], 15);
@ -2555,7 +2554,7 @@ static int ProcessItemListInput_GiveToMon(BagController *controller)
}
controller->bagCtx->exitCode = BAG_EXIT_CODE_GIVE_FROM_MON_MENU;
App_StartScreenFade(TRUE, HEAP_ID_6);
App_StartScreenFade(TRUE, HEAP_ID_BAG);
return BAG_APP_STATE_EXIT;
} else if (input == ITEM_LIST_INPUT_EXIT_BAG) {
@ -2608,9 +2607,9 @@ static int ProcessItemListInput_SellItems(BagController *controller)
StringTemplate_SetItemName(controller->strTemplate, 0, controller->bagCtx->selectedItem);
BagUI_SetHighlightSpritesPalette(controller, 2);
controller->soldItemPrice = Item_LoadParam(controller->bagCtx->selectedItem, ITEM_PARAM_PRICE, HEAP_ID_6);
controller->soldItemPrice = Item_LoadParam(controller->bagCtx->selectedItem, ITEM_PARAM_PRICE, HEAP_ID_BAG);
if (Item_LoadParam(controller->bagCtx->selectedItem, ITEM_PARAM_PREVENT_TOSS, HEAP_ID_6) != 0
if (Item_LoadParam(controller->bagCtx->selectedItem, ITEM_PARAM_PREVENT_TOSS, HEAP_ID_BAG) != 0
|| controller->soldItemPrice == 0) {
string = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_CantSellItem);
StringTemplate_Format(controller->strTemplate, controller->strBuffer, string);
@ -2623,7 +2622,7 @@ static int ProcessItemListInput_SellItems(BagController *controller)
controller->selectedItemCount = 1;
controller->soldItemPrice >>= 1;
if (Pocket_GetItemQuantity(controller->bagCtx->accessiblePockets[controller->bagCtx->currPocketIdx].items, controller->bagCtx->accessiblePockets[controller->bagCtx->currPocketIdx].listEntryCount - 3, controller->bagCtx->selectedItem, HEAP_ID_6) == 1) {
if (Pocket_GetItemQuantity(controller->bagCtx->accessiblePockets[controller->bagCtx->currPocketIdx].items, controller->bagCtx->accessiblePockets[controller->bagCtx->currPocketIdx].listEntryCount - 3, controller->bagCtx->selectedItem, HEAP_ID_BAG) == 1) {
string = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_ConfirmSellPrice);
StringTemplate_SetNumber(controller->strTemplate, 0, controller->selectedItemCount * controller->soldItemPrice, 6, PADDING_MODE_NONE, CHARSET_MODE_EN);
StringTemplate_Format(controller->strTemplate, controller->strBuffer, string);
@ -2751,10 +2750,10 @@ static int ProcessMenuInput_ConfirmSale(BagController *interface)
u32 selected;
if (CheckDialButtonPressed(interface) == TRUE) {
selected = Menu_ProcessExternalInputAndHandleExit(interface->menu, MENU_INPUT_CONFIRM, HEAP_ID_6);
selected = Menu_ProcessExternalInputAndHandleExit(interface->menu, MENU_INPUT_CONFIRM, HEAP_ID_BAG);
interface->dialButtonAnimStep = 1;
} else {
selected = Menu_ProcessInputAndHandleExit(interface->menu, HEAP_ID_6);
selected = Menu_ProcessInputAndHandleExit(interface->menu, HEAP_ID_BAG);
}
switch (selected) {
@ -2861,9 +2860,9 @@ static int ProcessItemListInput_Gardening(BagController *controller)
if (input == ITEM_LIST_INPUT_SELECT_ITEM) {
if (controller->bagCtx->accessiblePockets[controller->bagCtx->currPocketIdx].pocketType == POCKET_ITEMS
&& Item_LoadParam(controller->bagCtx->selectedItem, ITEM_PARAM_FIELD_USE_FUNC, HEAP_ID_6) != ITEM_USE_FUNC_MULCH) {
&& Item_LoadParam(controller->bagCtx->selectedItem, ITEM_PARAM_FIELD_USE_FUNC, HEAP_ID_BAG) != ITEM_USE_FUNC_MULCH) {
BagContext_FormatErrorMessage(controller->trainerInfo, controller->strBuffer, controller->bagCtx->selectedItem, -1, HEAP_ID_6);
BagContext_FormatErrorMessage(controller->trainerInfo, controller->strBuffer, controller->bagCtx->selectedItem, -1, HEAP_ID_BAG);
Window_FillTilemap(&controller->windows[BAG_UI_WINDOW_MSG_BOX_WIDE], 15);
Window_DrawMessageBoxWithScrollCursor(&controller->windows[BAG_UI_WINDOW_MSG_BOX_WIDE], 0, BASE_TILE_MSG_BOX_FRAME, PLTT_12);
@ -2872,7 +2871,7 @@ static int ProcessItemListInput_Gardening(BagController *controller)
}
controller->bagCtx->exitCode = BAG_EXIT_CODE_USE_ITEM;
App_StartScreenFade(TRUE, HEAP_ID_6);
App_StartScreenFade(TRUE, HEAP_ID_BAG);
return BAG_APP_STATE_EXIT;
} else if (input == ITEM_LIST_INPUT_EXIT_BAG) {
controller->bagCtx->exitCode = BAG_EXIT_CODE_DONE;

View File

@ -1,4 +1,4 @@
#include "overlay084/ov84_022403F4.h"
#include "applications/bag/sprites.h"
#include <nitro.h>
#include <string.h>
@ -6,7 +6,7 @@
#include "constants/narc.h"
#include "generated/pokemon_types.h"
#include "overlay084/ov84_0223B5A0.h"
#include "applications/bag/main.h"
#include "bag_context.h"
#include "genders.h"
@ -177,7 +177,7 @@ void BagUI_InitSprites(BagController *controller)
{
GXLayers_EngineAToggleLayers(GX_PLANEMASK_OBJ, TRUE);
GXLayers_EngineBToggleLayers(GX_PLANEMASK_OBJ, TRUE);
VramTransfer_New(32, HEAP_ID_6);
VramTransfer_New(32, HEAP_ID_BAG);
InitSpriteSystem(controller);
LoadSpriteResources(controller);
InitSprites(controller);
@ -187,7 +187,7 @@ static void InitSpriteSystem(BagController *controller)
{
SpriteResourceCapacities capacities = { 10, 6, 9, 9, 0, 0 };
controller->spriteSystem = SpriteSystem_Alloc(HEAP_ID_6);
controller->spriteSystem = SpriteSystem_Alloc(HEAP_ID_BAG);
controller->spriteMan = SpriteManager_New(controller->spriteSystem);
RenderOamTemplate oamTemplate = {

View File

@ -1,10 +1,10 @@
#include "overlay084/ov84_0223F040.h"
#include "applications/bag/windows.h"
#include <nitro.h>
#include <string.h>
#include "overlay084/ov84_0223B5A0.h"
#include "overlay084/ov84_022403F4.h"
#include "applications/bag/main.h"
#include "applications/bag/sprites.h"
#include "bag.h"
#include "bag_context.h"
@ -109,7 +109,7 @@ void BagUI_DeleteWindows(Window windows[NUM_BAG_UI_WINDOWS])
void BagUI_LoadPocketNames(BagController *controller)
{
MessageLoader *msgLoader = MessageLoader_Init(MESSAGE_LOADER_NARC_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_BAG_POCKET_NAMES, HEAP_ID_6);
MessageLoader *msgLoader = MessageLoader_Init(MESSAGE_LOADER_NARC_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_BAG_POCKET_NAMES, HEAP_ID_BAG);
for (u16 i = 0; i < POCKET_MAX; i++) {
controller->pocketNames[i] = MessageLoader_GetNewStrbuf(msgLoader, i);
@ -162,7 +162,7 @@ void BagUI_PrintPocketNames(BagController *controller)
static void *LoadPocketSelectorIcons(BagController *interface, NNSG2dCharacterData **charData)
{
void *file = NARC_AllocAndReadWholeMember(interface->bagGraphicsNARC, 21, HEAP_ID_6);
void *file = NARC_AllocAndReadWholeMember(interface->bagGraphicsNARC, 21, HEAP_ID_BAG);
NNS_G2dGetUnpackedBGCharacterData(file, charData);
return file;
}
@ -181,7 +181,7 @@ void BagUI_DrawPocketSelectorIcon(BagController *controller, u8 pocketIndex, u8
Window_BlitBitmapRect(&controller->windows[BAG_UI_WINDOW_POCKET_INDICATOR], icons->pRawData, iconX, 0, 32 * POCKET_MAX, 16, controller->pocketSelectorIconsX + controller->pocketSelectorIconsSpacing * pocketIndex, 3, 10, 10);
Window_ScheduleCopyToVRAM(&controller->windows[BAG_UI_WINDOW_POCKET_INDICATOR]);
Heap_FreeExplicit(HEAP_ID_6, iconsFile);
Heap_FreeExplicit(HEAP_ID_BAG, iconsFile);
}
void BagUI_DrawPocketSelectorIcons(BagController *controller)
@ -204,7 +204,7 @@ void BagUI_DrawPocketSelectorIcons(BagController *controller)
}
Window_ScheduleCopyToVRAM(&controller->windows[BAG_UI_WINDOW_POCKET_INDICATOR]);
Heap_FreeExplicit(HEAP_ID_6, iconsFile);
Heap_FreeExplicit(HEAP_ID_BAG, iconsFile);
}
static void BufferPocketSlotItemName(BagController *controller, u32 slotIdx, u32 templateParamIdx)
@ -222,8 +222,8 @@ void BagUI_PrintItemDescription(BagController *controller, u16 item)
Strbuf *strBuf;
if (item != 0xffff) {
strBuf = Strbuf_Init(130, HEAP_ID_6);
Item_LoadDescription(strBuf, item, HEAP_ID_6);
strBuf = Strbuf_Init(130, HEAP_ID_BAG);
Item_LoadDescription(strBuf, item, HEAP_ID_BAG);
} else {
strBuf = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_CloseBagDescription);
}
@ -310,7 +310,7 @@ void BagUI_PrintItemCount(BagController *controller, u16 count, u16 yOffset, u32
Text_AddPrinterWithParamsAndColor(&controller->windows[BAG_UI_WINDOW_ITEM_LIST], FONT_SYSTEM, controller->itemCountX, ITEM_COUNT_START_POS, yOffset, TEXT_SPEED_NO_TRANSFER, color, NULL);
}
Strbuf *string = Strbuf_Init(10, HEAP_ID_6);
Strbuf *string = Strbuf_Init(10, HEAP_ID_BAG);
StringTemplate_SetNumber(controller->strTemplate, 0, count, 3, PADDING_MODE_NONE, CHARSET_MODE_EN);
StringTemplate_Format(controller->strTemplate, string, controller->itemCountNumberFmt);
@ -344,7 +344,7 @@ void BagUI_PrintBerryNumber(BagController *controller, BagItem *itemSlot, u32 yO
static void *LoadBagUIItemEntrySprites(BagController *controller, NNSG2dCharacterData **charData)
{
void *file = NARC_AllocAndReadWholeMember(controller->bagGraphicsNARC, 38, HEAP_ID_6);
void *file = NARC_AllocAndReadWholeMember(controller->bagGraphicsNARC, 38, HEAP_ID_BAG);
NNS_G2dGetUnpackedBGCharacterData(file, charData);
return file;
}
@ -355,7 +355,7 @@ static void DrawHMIcon(BagController *controller, u32 yOffset)
void *file = LoadBagUIItemEntrySprites(controller, &imageData);
Window_BlitBitmapRect(&controller->windows[BAG_UI_WINDOW_ITEM_LIST], imageData->pRawData, 40, 0, 64, 16, 0, yOffset, 24, 16);
Heap_FreeExplicit(HEAP_ID_6, file);
Heap_FreeExplicit(HEAP_ID_BAG, file);
}
void BagUI_PrintCloseBagEntry(BagController *controller, u32 yOffset)
@ -373,7 +373,7 @@ void BagUI_DrawRegisteredIcon(BagController *controller, u32 yOffset)
void *file = LoadBagUIItemEntrySprites(controller, &imageData);
Window_BlitBitmapRect(&controller->windows[BAG_UI_WINDOW_ITEM_LIST], imageData->pRawData, 0, 0, 64, 16, 96, yOffset, 40, 16);
Heap_FreeExplicit(HEAP_ID_6, file);
Heap_FreeExplicit(HEAP_ID_BAG, file);
}
void BagUI_LoadItemActionStrings(BagController *controller)
@ -410,7 +410,7 @@ void BagUI_ShowItemActionsMenu(BagController *controller, u8 *actions, u8 numAct
msgBoxWindowIdx = BAG_UI_WINDOW_MSG_BOX;
}
controller->itemActionChoices = StringList_New(numActions, HEAP_ID_6);
controller->itemActionChoices = StringList_New(numActions, HEAP_ID_BAG);
for (u16 i = 0; i < numActions; i++) {
StringList_AddFromStrbuf(controller->itemActionChoices, controller->itemActionStrings[actions[i]], BagApplication_GetItemActionFunc(actions[i]));
@ -431,7 +431,7 @@ void BagUI_ShowItemActionsMenu(BagController *controller, u8 *actions, u8 numAct
menuTemplate.loopAround = FALSE;
}
controller->menu = Menu_New(&menuTemplate, 8, 0, 0, HEAP_ID_6, PAD_BUTTON_B);
controller->menu = Menu_New(&menuTemplate, 8, 0, 0, HEAP_ID_BAG, PAD_BUTTON_B);
if (controller->bagCtx->accessiblePockets[controller->bagCtx->currPocketIdx].pocketType == POCKET_TMHMS) {
Window_FillTilemap(&controller->windows[BAG_UI_WINDOW_ITEM_DESCRIPTION], 0);
@ -443,7 +443,7 @@ void BagUI_ShowItemActionsMenu(BagController *controller, u8 *actions, u8 numAct
Window_FillTilemap(&controller->windows[msgBoxWindowIdx], 15);
Strbuf *template = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_ItemIsSelected);
Strbuf *formatted = Strbuf_Init(28 * 2, HEAP_ID_6);
Strbuf *formatted = Strbuf_Init(28 * 2, HEAP_ID_BAG);
BagApplicationPocket *pocket = &controller->bagCtx->accessiblePockets[controller->bagCtx->currPocketIdx];
BufferPocketSlotItemName(controller, pocket->cursorScroll + pocket->cursorPos - 1, 0);
@ -488,7 +488,7 @@ void BagUI_PrintMovingItemMsg(BagController *controller)
Window_FillTilemap(&controller->windows[BAG_UI_WINDOW_ITEM_DESCRIPTION], 0);
Strbuf *template = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_MoveItemWhere);
Strbuf *formatted = Strbuf_Init(130, HEAP_ID_6);
Strbuf *formatted = Strbuf_Init(130, HEAP_ID_BAG);
BufferPocketSlotItemName(controller, controller->movedItemPos - 1, 0);
@ -507,7 +507,7 @@ void BagUI_ShowItemTrashWindows(BagController *controller)
Window_FillTilemap(&controller->windows[BAG_UI_WINDOW_MSG_BOX], 15);
Strbuf *template = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_ThrowAwayHowMany);
Strbuf *formatted = Strbuf_Init(14 * 2 * 2, HEAP_ID_6);
Strbuf *formatted = Strbuf_Init(14 * 2 * 2, HEAP_ID_BAG);
BagApplicationPocket *pocket = &controller->bagCtx->accessiblePockets[controller->bagCtx->currPocketIdx];
BufferPocketSlotItemName(controller, pocket->cursorScroll + pocket->cursorPos - 1, 0);
@ -591,7 +591,7 @@ static BOOL BagUITextPrinterCallback(TextPrinterTemplate *template, u16 param1)
void BagUI_ShowYesNoMenu(BagController *controller)
{
controller->menu = Menu_MakeYesNoChoice(controller->bgConfig, &sYesNoMenuTemplate, BASE_TILE_STANDARD_WINDOW_FRAME, PLTT_14, HEAP_ID_6);
controller->menu = Menu_MakeYesNoChoice(controller->bgConfig, &sYesNoMenuTemplate, BASE_TILE_STANDARD_WINDOW_FRAME, PLTT_14, HEAP_ID_BAG);
}
void BagUI_PrintSellCountAndValue(BagController *controller, u8 skipFrame)

View File

@ -10,6 +10,7 @@
#include "struct_decls/pc_boxes_decl.h"
#include "struct_defs/chatot_cry.h"
#include "applications/bag/application.h"
#include "applications/naming_screen.h"
#include "applications/pc_boxes/box_application.h"
#include "applications/pc_boxes/box_cursor.h"
@ -27,7 +28,6 @@
#include "applications/pc_boxes/touch_dial.h"
#include "applications/pokemon_summary_screen/main.h"
#include "global/utility.h"
#include "overlay084/const_ov84_02241130.h"
#include "savedata/save_table.h"
#include "bag.h"
@ -60,7 +60,7 @@
#include "constdata/const_020F410C.h"
#include "res/text/bank/box_messages.h"
FS_EXTERN_OVERLAY(overlay84);
FS_EXTERN_OVERLAY(bag);
enum BoxSelectorState {
BOX_SELECTOR_START,
@ -2561,7 +2561,7 @@ enum GiveItemFromBag {
static void BoxAppMan_GiveItemFromBagAction(BoxApplicationManager *boxAppMan, u32 *state)
{
FS_EXTERN_OVERLAY(overlay84);
FS_EXTERN_OVERLAY(bag);
static const u8 bagPockets[] = {
POCKET_ITEMS,
@ -2588,7 +2588,7 @@ static void BoxAppMan_GiveItemFromBagAction(BoxApplicationManager *boxAppMan, u3
Bag *bag = SaveData_GetBag(boxAppMan->saveData);
boxAppMan->bagAppArgs = sub_0207D824(bag, bagPockets, HEAP_ID_BOX_DATA);
BagContext_Init(boxAppMan->bagAppArgs, boxAppMan->saveData, 1, NULL);
Overlay_LoadByID(FS_OVERLAY_ID(overlay84), OVERLAY_LOAD_ASYNC);
Overlay_LoadByID(FS_OVERLAY_ID(bag), OVERLAY_LOAD_ASYNC);
boxAppMan->ApplicationManager = ApplicationManager_New(&gBagApplicationTemplate, boxAppMan->bagAppArgs, HEAP_ID_BOX_DATA);
(*state)++;
}
@ -2599,7 +2599,7 @@ static void BoxAppMan_GiveItemFromBagAction(BoxApplicationManager *boxAppMan, u3
ApplicationManager_Free(boxAppMan->ApplicationManager);
Heap_Free(boxAppMan->bagAppArgs);
Overlay_UnloadByID(FS_OVERLAY_ID(overlay84));
Overlay_UnloadByID(FS_OVERLAY_ID(bag));
if (item == ITEM_GRISEOUS_ORB && BoxPokemon_GetValue(boxAppMan->boxApp.pcMonPreview.mon, MON_DATA_SPECIES, NULL) != SPECIES_GIRATINA) {
(void)0;

View File

@ -835,9 +835,9 @@ pokeplatinum_c = files(
'overlay083/ov83_0223D4CC.c',
'overlay083/ov83_0223D6A8.c',
'overlay083/ov83_0223F7F4.c',
'overlay084/ov84_0223B5A0.c',
'overlay084/ov84_0223F040.c',
'overlay084/ov84_022403F4.c',
'applications/bag/main.c',
'applications/bag/windows.c',
'applications/bag/sprites.c',
'overlay085/ov85_02241440.c',
'overlay086/ov86_0223B140.c',
'applications/pc_hall_of_fame/manager.c',

View File

@ -3,10 +3,9 @@
#include <nitro.h>
#include <string.h>
#include "applications/bag/application.h"
#include "overlay082/ov82_0223B140.h"
#include "overlay083/struct_ov83_0223C344.h"
#include "overlay084/const_ov84_02241130.h"
#include "overlay084/ov84_0223B5A0.h"
#include "overlay085/ov85_02241440.h"
#include "bag.h"
@ -17,7 +16,7 @@
#include "unk_020972FC.h"
FS_EXTERN_OVERLAY(overlay83);
FS_EXTERN_OVERLAY(overlay84);
FS_EXTERN_OVERLAY(bag);
FS_EXTERN_OVERLAY(overlay85);
static int ov82_0223B380(UnkStruct_ov83_0223C344 *param0);
@ -90,10 +89,10 @@ static int ov82_0223B380(UnkStruct_ov83_0223C344 *param0)
void *v0;
u32 v1;
FS_EXTERN_OVERLAY(overlay84);
FS_EXTERN_OVERLAY(bag);
const ApplicationManagerTemplate Unk_ov84_02241130 = {
BagApplication_Init, BahApplication_Main, BagApplication_Exit, FS_OVERLAY_ID(overlay84)
BagApplication_Init, BagApplication_Main, BagApplication_Exit, FS_OVERLAY_ID(bag)
};
static const u8 v3[] = {
4, 0xff

View File

@ -30,6 +30,7 @@
#include "struct_defs/struct_02097728.h"
#include "struct_defs/struct_020997B8.h"
#include "applications/bag/application.h"
#include "applications/diploma.h"
#include "applications/journal_display/journal_controller.h"
#include "applications/naming_screen.h"
@ -58,8 +59,6 @@
#include "overlay064/ov64_0222DCE0.h"
#include "overlay072/ov72_0223D7A0.h"
#include "overlay080/ov80_021D0D80.h"
#include "overlay084/const_ov84_02241130.h"
#include "overlay084/ov84_0223B5A0.h"
#include "overlay085/ov85_02241440.h"
#include "overlay086/ov86_0223B140.h"
#include "overlay088/ov88_0223B140.h"
@ -156,7 +155,7 @@ FS_EXTERN_OVERLAY(options_menu);
FS_EXTERN_OVERLAY(choose_starter);
FS_EXTERN_OVERLAY(overlay80);
FS_EXTERN_OVERLAY(journal_display);
FS_EXTERN_OVERLAY(overlay84);
FS_EXTERN_OVERLAY(bag);
FS_EXTERN_OVERLAY(overlay85);
FS_EXTERN_OVERLAY(overlay86);
FS_EXTERN_OVERLAY(overlay87);
@ -266,13 +265,13 @@ static const u8 Unk_020EA164[] = {
void sub_0203D1E4(FieldSystem *fieldSystem, void *param1)
{
FS_EXTERN_OVERLAY(overlay84);
FS_EXTERN_OVERLAY(bag);
const ApplicationManagerTemplate Unk_ov84_02241130 = {
BagApplication_Init,
BahApplication_Main,
BagApplication_Main,
BagApplication_Exit,
FS_OVERLAY_ID(overlay84)
FS_OVERLAY_ID(bag)
};
FieldSystem_StartChildProcess(fieldSystem, &Unk_ov84_02241130, param1);