Document the bag interface overlay (#679)
30
include/applications/bag/application.h
Normal 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
|
||||
165
include/applications/bag/defs.h
Normal file
|
|
@ -0,0 +1,165 @@
|
|||
#ifndef POKEPLATINUM_APPLICATIONS_BAG_DEFS_H
|
||||
#define POKEPLATINUM_APPLICATIONS_BAG_DEFS_H
|
||||
|
||||
#include "bag.h"
|
||||
#include "bag_context.h"
|
||||
#include "bg_window.h"
|
||||
#include "font_special_chars.h"
|
||||
#include "game_options.h"
|
||||
#include "list_menu.h"
|
||||
#include "menu.h"
|
||||
#include "message.h"
|
||||
#include "narc.h"
|
||||
#include "sprite_system.h"
|
||||
#include "strbuf.h"
|
||||
#include "string_list.h"
|
||||
#include "string_template.h"
|
||||
#include "trainer_info.h"
|
||||
|
||||
#define BAG_UI_NUM_VISIBLE_ITEMS 9
|
||||
|
||||
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,
|
||||
};
|
||||
|
||||
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 {
|
||||
ITEM_ACTION_USE = 0,
|
||||
ITEM_ACTION_WALK,
|
||||
ITEM_ACTION_CHECK,
|
||||
ITEM_ACTION_PLANT,
|
||||
ITEM_ACTION_OPEN,
|
||||
ITEM_ACTION_TRASH,
|
||||
ITEM_ACTION_REGISTER,
|
||||
ITEM_ACTION_DESELECT,
|
||||
ITEM_ACTION_GIVE,
|
||||
ITEM_ACTION_CHECK_TAG,
|
||||
ITEM_ACTION_CONFIRM,
|
||||
ITEM_ACTION_CANCEL,
|
||||
NUM_ITEM_ACTIONS
|
||||
};
|
||||
|
||||
enum BagApplicationItemSlotParam {
|
||||
BAG_APP_ITEM_SLOT_PARAM_ITEM,
|
||||
BAG_APP_ITEM_SLOT_PARAM_QUANTITY
|
||||
};
|
||||
|
||||
typedef struct BagController BagController;
|
||||
|
||||
typedef int (*ItemActionFuncPtr)(BagController *param0);
|
||||
typedef int (*ItemUseCallback)(BagController *);
|
||||
|
||||
typedef struct BagPocketSelector {
|
||||
u8 nextPocket;
|
||||
u8 nextPocketDirection;
|
||||
u8 animStage;
|
||||
u8 animFrame;
|
||||
u8 pocketChangeState;
|
||||
u8 pocketChangeFrame;
|
||||
u8 pressedPocketBtnIdx;
|
||||
u8 unk_07_0 : 4;
|
||||
u8 unk_07_4 : 3;
|
||||
u8 unk_07_7 : 1;
|
||||
} BagPocketSelector;
|
||||
|
||||
typedef struct BagPocketHighlight {
|
||||
u8 isMoving;
|
||||
u8 direction;
|
||||
u8 padding_02;
|
||||
u8 currentStep;
|
||||
fx32 positions[8];
|
||||
} BagPocketHighlight;
|
||||
|
||||
struct BagController {
|
||||
BgConfig *bgConfig;
|
||||
Window windows[NUM_BAG_UI_WINDOWS];
|
||||
Window itemActionsWindow;
|
||||
BagContext *bagCtx;
|
||||
Bag *bag;
|
||||
TrainerInfo *trainerInfo;
|
||||
Options *options;
|
||||
NARC *bagGraphicsNARC;
|
||||
SpriteSystem *spriteSystem;
|
||||
SpriteManager *spriteMan;
|
||||
ManagedSprite *sprites[NUM_BAG_UI_SPRITES];
|
||||
FontSpecialCharsContext *specialChars;
|
||||
MessageLoader *bagStringsLoader;
|
||||
StringTemplate *strTemplate;
|
||||
MessageLoader *itemNamesLoader;
|
||||
MessageLoader *moveNamesLoader;
|
||||
Strbuf *itemActionStrings[NUM_ITEM_ACTIONS];
|
||||
StringList *itemActionChoices;
|
||||
Menu *menu;
|
||||
ListMenu *itemList;
|
||||
StringList *itemListEntries;
|
||||
Strbuf *itemNames[LARGEST_POCKET_SIZE];
|
||||
Strbuf *strBuffer;
|
||||
Strbuf *itemCountX;
|
||||
Strbuf *itemCountNumberFmt;
|
||||
Strbuf *pocketNames[POCKET_MAX];
|
||||
u8 numPockets;
|
||||
u8 trainerGender;
|
||||
u8 msgBoxPrinterID;
|
||||
u8 pocketSelectorIconsX;
|
||||
u8 pocketSelectorIconsSpacing;
|
||||
BagPocketSelector pocketSelector;
|
||||
u8 padding_431[35];
|
||||
BagPocketHighlight pocketHighlight;
|
||||
u8 nextPocket;
|
||||
u8 hideDescription;
|
||||
u8 isMovingItem;
|
||||
u8 movedItemPos;
|
||||
u32 movedItemID;
|
||||
u8 pocketSelectorArrowsAnimStep;
|
||||
u8 pocketSelectorArrowsAnimTimer;
|
||||
u8 cursorSoundIdx;
|
||||
u8 itemUseTaskState;
|
||||
ItemUseCallback itemUseCallback;
|
||||
s16 selectedItemCount;
|
||||
u16 selectedItemCountLimit;
|
||||
u32 soldItemPrice;
|
||||
u8 dialButtonAnimStep;
|
||||
u8 dialButtonAnimFrame;
|
||||
u8 isTouchingDial;
|
||||
u8 padding_493;
|
||||
s32 queuedScrollRemainder;
|
||||
s16 queuedScroll;
|
||||
s16 dialRotation;
|
||||
u8 padding_49C[2];
|
||||
u16 previousTouchX;
|
||||
u16 previousTouchY;
|
||||
u8 padding_4A2[2];
|
||||
};
|
||||
|
||||
#endif
|
||||
9
include/applications/bag/main.h
Normal 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
|
||||
20
include/applications/bag/sprites.h
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
#ifndef POKEPLATINUM_APPLICATIONS_BAG_SPRITES_H
|
||||
#define POKEPLATINUM_APPLICATIONS_BAG_SPRITES_H
|
||||
|
||||
#include "applications/bag/defs.h"
|
||||
|
||||
void BagUI_InitSprites(BagController *controller);
|
||||
void BagUI_FreeSprites(BagController *controller);
|
||||
void BagUI_TickSpriteAnimations(BagController *controller);
|
||||
void BagUI_UpdateItemSprite(BagController *controller, u16 item);
|
||||
void BagUI_SetHighlightSpritesPalette(BagController *controller, u8 palette);
|
||||
void BagUI_StartMovingPocketHighlight(BagController *controller);
|
||||
void BagUI_StepPocketHighlightMovement(BagController *controller);
|
||||
u8 BagUI_IsPocketHighlightDoneMoving(BagController *controller);
|
||||
void BagUI_ShowItemCountArrows(BagController *controller, u8 position);
|
||||
void BagUI_ToggleItemCountArrows(BagController *controller, u8 show);
|
||||
void BagUI_UpdateTypeAndCategoryIcons(BagController *controller, u16 item, u8 draw);
|
||||
void BagUI_DrawBtnShockwave(BagController *controller, s16 x, s16 y);
|
||||
void BagUI_TickBtnShockwaveAnim(BagController *controller);
|
||||
|
||||
#endif // POKEPLATINUM_APPLICATIONS_BAG_SPRITES_H
|
||||
41
include/applications/bag/windows.h
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
#ifndef POKEPLATINUM_APPLICATIONS_BAG_WINDOWS_H
|
||||
#define POKEPLATINUM_APPLICATIONS_BAG_WINDOWS_H
|
||||
|
||||
#include "applications/bag/defs.h"
|
||||
|
||||
#include "bag.h"
|
||||
#include "bg_window.h"
|
||||
|
||||
void BagUI_CreateWindows(BagController *controller);
|
||||
void BagUI_DeleteWindows(Window windows[NUM_BAG_UI_WINDOWS]);
|
||||
void BagUI_LoadPocketNames(BagController *controller);
|
||||
void BagUI_FreePocketNames(BagController *controller);
|
||||
void BagUI_ClearPocketNameBox(BagController *controller);
|
||||
void BagUI_PrintPocketNames(BagController *controller);
|
||||
void BagUI_DrawPocketSelectorIcon(BagController *controller, u8 pocketIndex, u8 focused);
|
||||
void BagUI_DrawPocketSelectorIcons(BagController *controller);
|
||||
void BagUI_PrintItemDescription(BagController *controller, u16 item);
|
||||
void BagUI_PrintTMHMMoveStats(BagController *controller, u16 item);
|
||||
void BagUI_LoadItemCountStrings(BagController *controller);
|
||||
void BagUI_FreeItemCountStrings(BagController *controller);
|
||||
void BagUI_PrintItemCount(BagController *controller, u16 count, u16 yOffset, u32 color);
|
||||
void BagUI_PrintTMHMNumber(BagController *controller, BagItem *itemSlot, u32 yOffset);
|
||||
void BagUI_PrintBerryNumber(BagController *controller, BagItem *itemSlot, u32 yOffset);
|
||||
void BagUI_PrintCloseBagEntry(BagController *controller, u32 yOffset);
|
||||
void BagUI_DrawRegisteredIcon(BagController *controller, u32 yOffset);
|
||||
void BagUI_LoadItemActionStrings(BagController *controller);
|
||||
void BagUI_FreeItemActionStrings(BagController *controller);
|
||||
void BagUI_ShowItemActionsMenu(BagController *controller, u8 *actions, u8 numActions);
|
||||
void BagUI_CloseItemActionsMenu(BagController *controller);
|
||||
void BagUI_PrintMovingItemMsg(BagController *controller);
|
||||
void BagUI_ShowItemTrashWindows(BagController *controller);
|
||||
void BagUI_PrintItemTrashCount(BagController *controller);
|
||||
void BagUI_CloseItemTrashWindows(BagController *controller);
|
||||
void BagUI_PrintConfirmItemTrashMsg(BagController *controller);
|
||||
u8 BagUI_PrintStrBufferToWideMsgBox(BagController *controller);
|
||||
void BagUI_ShowYesNoMenu(BagController *controller);
|
||||
void BagUI_PrintSellCountAndValue(BagController *controller, u8 skipFrame);
|
||||
void BagUI_PrintMoney(BagController *controller, u8 skipLabel);
|
||||
void BagUI_DrawPoffinCountMsgBox(BagController *controller);
|
||||
|
||||
#endif // POKEPLATINUM_APPLICATIONS_BAG_WINDOWS_H
|
||||
|
|
@ -15,6 +15,18 @@
|
|||
#define POKEBALL_POCKET_SIZE 15
|
||||
#define BATTLE_ITEM_POCKET_SIZE 30
|
||||
|
||||
// clang-format off
|
||||
#define LARGEST_POCKET_SIZE \
|
||||
max(ITEM_POCKET_SIZE, \
|
||||
max(KEY_ITEM_POCKET_SIZE, \
|
||||
max(TMHM_POCKET_SIZE, \
|
||||
max(MAIL_POCKET_SIZE, \
|
||||
max(MEDICINE_POCKET_SIZE, \
|
||||
max(BERRY_POCKET_SIZE, \
|
||||
max(POKEBALL_POCKET_SIZE, \
|
||||
BATTLE_ITEM_POCKET_SIZE)))))))
|
||||
// clang-format on
|
||||
|
||||
typedef struct BagItem {
|
||||
u16 item;
|
||||
u16 quantity;
|
||||
|
|
|
|||
51
include/bag_context.h
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
#ifndef POKEPLATINUM_BAG_CONTEXT_H
|
||||
#define POKEPLATINUM_BAG_CONTEXT_H
|
||||
|
||||
#include "bag.h"
|
||||
#include "item_use_functions.h"
|
||||
#include "savedata.h"
|
||||
#include "strbuf.h"
|
||||
#include "trainer_info.h"
|
||||
|
||||
typedef struct BagApplicationPocket {
|
||||
BagItem *items;
|
||||
u16 cursorPos;
|
||||
u16 cursorScroll;
|
||||
u8 pocketType;
|
||||
u8 listEntryCount;
|
||||
u8 padding_0A[2];
|
||||
} BagApplicationPocket;
|
||||
|
||||
typedef struct BagContext {
|
||||
SaveData *saveData;
|
||||
BagApplicationPocket accessiblePockets[POCKET_MAX];
|
||||
u8 currPocketIdx;
|
||||
u8 mode;
|
||||
u16 selectedItem;
|
||||
u16 exitCode;
|
||||
u8 padding_6A[2];
|
||||
BagCursor *bagCursor;
|
||||
ItemUseContext *itemUseCtx;
|
||||
u8 selectedMonSlot;
|
||||
u8 soldAmount; // Not the exact amount of items sold. 0: nothing sold, 1: one item sold, >=2: two or more items sold.
|
||||
u16 isCycling : 1;
|
||||
u16 mapLoadType : 15;
|
||||
} BagContext;
|
||||
|
||||
BagContext *BagContext_New(u8 heapID);
|
||||
u32 BagContext_GetSize(void);
|
||||
void BagContext_SetMode(BagContext *bagContext, u8 mode);
|
||||
void BagContext_Init(BagContext *bagContext, SaveData *saveData, u8 mode, BagCursor *bagCursor);
|
||||
void BagContext_InitPocket(BagContext *bagContext, BagItem *items, u8 pocketType, u8 pocketIdx);
|
||||
void BagContext_SetIsCycling(BagContext *bagContext);
|
||||
void BagContext_SetItemUseContext(BagContext *bagContext, ItemUseContext *itemUseCtx);
|
||||
void BagContext_SetSelectedMonSlot(BagContext *bagContext, u8 slot);
|
||||
void BagContext_SetMapLoadType(BagContext *bagContext, u16 mapLoadType);
|
||||
u16 BagContext_GetItem(BagContext *bagContext);
|
||||
u16 BagContext_GetExitCode(BagContext *bagContext);
|
||||
u8 BagContext_GetSelectedMonSlot(BagContext *bagContext);
|
||||
u8 BagContext_GetSoldAmount(BagContext *bagContext);
|
||||
BOOL BagContext_FormatUsageMessage(SaveData *saveData, Strbuf *dstString, u16 item, u32 heapID);
|
||||
void BagContext_FormatErrorMessage(TrainerInfo *playerInfo, Strbuf *dstString, u16 unused, u32 error, u32 heapID);
|
||||
|
||||
#endif // POKEPLATINUM_BAG_CONTEXT_H
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
#ifndef POKEPLATINUM_BAG_SYSTEM_H
|
||||
#define POKEPLATINUM_BAG_SYSTEM_H
|
||||
|
||||
#include "overlay084/struct_ov84_0223BE5C.h"
|
||||
|
||||
#include "bag.h"
|
||||
#include "savedata.h"
|
||||
#include "strbuf.h"
|
||||
#include "trainer_info.h"
|
||||
|
||||
typedef struct BagSystem {
|
||||
SaveData *saveData;
|
||||
BagInterfacePocketInfo accessiblePockets[8];
|
||||
u8 currPocketIdx;
|
||||
u8 mode;
|
||||
u16 selectedItem;
|
||||
u16 exitCode;
|
||||
u8 padding_6A[2];
|
||||
BagCursor *bagCursor;
|
||||
void *unk_70;
|
||||
u8 selectedMonSlot;
|
||||
u8 unk_75;
|
||||
u16 isCycling : 1;
|
||||
u16 mapLoadType : 15;
|
||||
} BagSystem;
|
||||
|
||||
BagSystem *BagSystem_New(u8 heapID);
|
||||
u32 BagSystem_GetSize(void);
|
||||
void BagSystem_SetMode(BagSystem *bagSystem, u8 mode);
|
||||
void BagSystem_Init(BagSystem *bagSystem, SaveData *saveData, u8 mode, BagCursor *bagCursor);
|
||||
void BagSystem_InitPocket(BagSystem *bagSystem, BagItem *items, u8 pocketType, u8 pocketIdx);
|
||||
void BagSystem_SetIsCycling(BagSystem *bagSystem);
|
||||
void sub_0207CB6C(BagSystem *bagSystem, void *param1);
|
||||
void BagSystem_SetSelectedMonSlot(BagSystem *bagSystem, u8 slot);
|
||||
void BagSystem_SetMapLoadType(BagSystem *bagSystem, u16 mapLoadType);
|
||||
u16 BagSystem_GetItem(BagSystem *bagSystem);
|
||||
u16 BagSystem_GetExitCode(BagSystem *bagSystem);
|
||||
u8 BagSystem_GetSelectedMonSlot(BagSystem *bagSystem);
|
||||
u8 sub_0207CBAC(BagSystem *bagSystem);
|
||||
BOOL BagSystem_FormatUsageMessage(SaveData *saveData, Strbuf *dstString, u16 item, u32 heapID);
|
||||
void BagSystem_FormatErrorMessage(TrainerInfo *playerInfo, Strbuf *dstString, u16 unused, u32 error, u32 heapID);
|
||||
|
||||
#endif // POKEPLATINUM_BAG_SYSTEM_H
|
||||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -1,8 +0,0 @@
|
|||
#ifndef POKEPLATINUM_CONST_OV84_02241130_H
|
||||
#define POKEPLATINUM_CONST_OV84_02241130_H
|
||||
|
||||
#include "overlay_manager.h"
|
||||
|
||||
extern const ApplicationManagerTemplate Unk_ov84_02241130;
|
||||
|
||||
#endif // POKEPLATINUM_CONST_OV84_02241130_H
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
#ifndef POKEPLATINUM_FUNCPTR_OV84_0223D730_H
|
||||
#define POKEPLATINUM_FUNCPTR_OV84_0223D730_H
|
||||
|
||||
#include "overlay084/struct_ov84_0223B5A0.h"
|
||||
|
||||
typedef int (*UnkFuncPtr_ov84_0223D730)(UnkStruct_ov84_0223B5A0 *param0);
|
||||
|
||||
#endif // POKEPLATINUM_FUNCPTR_OV84_0223D730_H
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
#ifndef POKEPLATINUM_OV84_0223B5A0_H
|
||||
#define POKEPLATINUM_OV84_0223B5A0_H
|
||||
|
||||
#include "overlay084/struct_ov84_0223B5A0.h"
|
||||
|
||||
#include "overlay_manager.h"
|
||||
|
||||
int ov84_0223B5A0(ApplicationManager *appMan, int *param1);
|
||||
int ov84_0223B76C(ApplicationManager *appMan, int *param1);
|
||||
int ov84_0223B900(ApplicationManager *appMan, int *param1);
|
||||
u16 ov84_0223BE5C(UnkStruct_ov84_0223B5A0 *param0, u16 param1, u16 param2);
|
||||
const u32 ov84_0223D84C(u32 param0);
|
||||
|
||||
#endif // POKEPLATINUM_OV84_0223B5A0_H
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
#ifndef POKEPLATINUM_OV84_0223F040_H
|
||||
#define POKEPLATINUM_OV84_0223F040_H
|
||||
|
||||
#include "overlay084/struct_ov84_0223B5A0.h"
|
||||
|
||||
#include "bag.h"
|
||||
#include "bg_window.h"
|
||||
|
||||
void ov84_0223F040(UnkStruct_ov84_0223B5A0 *param0);
|
||||
void ov84_0223F1DC(Window *param0);
|
||||
void ov84_0223F1F8(UnkStruct_ov84_0223B5A0 *param0);
|
||||
void ov84_0223F238(UnkStruct_ov84_0223B5A0 *param0);
|
||||
void ov84_0223F25C(UnkStruct_ov84_0223B5A0 *param0);
|
||||
void ov84_0223F2FC(UnkStruct_ov84_0223B5A0 *param0);
|
||||
void ov84_0223F3AC(UnkStruct_ov84_0223B5A0 *param0, u8 param1, u8 param2);
|
||||
void ov84_0223F438(UnkStruct_ov84_0223B5A0 *param0);
|
||||
void ov84_0223F528(UnkStruct_ov84_0223B5A0 *param0, u16 param1);
|
||||
void ov84_0223F584(UnkStruct_ov84_0223B5A0 *param0, u16 param1);
|
||||
void ov84_0223F7D4(UnkStruct_ov84_0223B5A0 *param0);
|
||||
void ov84_0223F800(UnkStruct_ov84_0223B5A0 *param0);
|
||||
void ov84_0223F81C(UnkStruct_ov84_0223B5A0 *param0, u16 param1, u16 param2, u32 param3);
|
||||
void ov84_0223F8D0(UnkStruct_ov84_0223B5A0 *param0, BagItem *param1, u32 param2);
|
||||
void ov84_0223F94C(UnkStruct_ov84_0223B5A0 *param0, BagItem *param1, u32 param2);
|
||||
void ov84_0223F9F0(UnkStruct_ov84_0223B5A0 *param0, u32 param1);
|
||||
void ov84_0223FA44(UnkStruct_ov84_0223B5A0 *param0, u32 param1);
|
||||
void ov84_0223FA88(UnkStruct_ov84_0223B5A0 *param0);
|
||||
void ov84_0223FB50(UnkStruct_ov84_0223B5A0 *param0);
|
||||
void ov84_0223FB70(UnkStruct_ov84_0223B5A0 *param0, u8 *param1, u8 param2);
|
||||
void ov84_0223FD84(UnkStruct_ov84_0223B5A0 *param0);
|
||||
void ov84_0223FE18(UnkStruct_ov84_0223B5A0 *param0);
|
||||
void ov84_0223FE94(UnkStruct_ov84_0223B5A0 *param0);
|
||||
void ov84_0223FF44(UnkStruct_ov84_0223B5A0 *param0);
|
||||
void ov84_0223FFC0(UnkStruct_ov84_0223B5A0 *param0);
|
||||
void ov84_0223FFF0(UnkStruct_ov84_0223B5A0 *param0);
|
||||
u8 ov84_022400A0(UnkStruct_ov84_0223B5A0 *param0);
|
||||
void ov84_02240120(UnkStruct_ov84_0223B5A0 *param0);
|
||||
void ov84_02240148(UnkStruct_ov84_0223B5A0 *param0, u8 param1);
|
||||
void ov84_02240248(UnkStruct_ov84_0223B5A0 *param0, u8 param1);
|
||||
void ov84_02240328(UnkStruct_ov84_0223B5A0 *param0);
|
||||
|
||||
#endif // POKEPLATINUM_OV84_0223F040_H
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
#ifndef POKEPLATINUM_OV84_022403F4_H
|
||||
#define POKEPLATINUM_OV84_022403F4_H
|
||||
|
||||
#include "overlay084/struct_ov84_0223B5A0.h"
|
||||
|
||||
void ov84_022403F4(UnkStruct_ov84_0223B5A0 *param0);
|
||||
void ov84_02240A88(UnkStruct_ov84_0223B5A0 *param0);
|
||||
void ov84_02240ABC(UnkStruct_ov84_0223B5A0 *param0);
|
||||
void ov84_02240AD8(UnkStruct_ov84_0223B5A0 *param0, u16 param1);
|
||||
void ov84_02240B34(UnkStruct_ov84_0223B5A0 *param0, u8 param1);
|
||||
u8 ov84_02240B50(UnkStruct_ov84_0223B5A0 *param0);
|
||||
void ov84_02240B68(UnkStruct_ov84_0223B5A0 *param0);
|
||||
void ov84_02240B80(UnkStruct_ov84_0223B5A0 *param0);
|
||||
void ov84_02240CF0(UnkStruct_ov84_0223B5A0 *param0, u8 param1);
|
||||
void ov84_02240D3C(UnkStruct_ov84_0223B5A0 *param0, u8 param1);
|
||||
void ov84_02240D5C(UnkStruct_ov84_0223B5A0 *param0, u16 param1, u8 param2);
|
||||
void ov84_02240E24(UnkStruct_ov84_0223B5A0 *param0, s16 param1, s16 param2);
|
||||
void ov84_02240E5C(UnkStruct_ov84_0223B5A0 *param0);
|
||||
|
||||
#endif // POKEPLATINUM_OV84_022403F4_H
|
||||
|
|
@ -1,83 +0,0 @@
|
|||
#ifndef POKEPLATINUM_STRUCT_OV84_0223B5A0_H
|
||||
#define POKEPLATINUM_STRUCT_OV84_0223B5A0_H
|
||||
|
||||
#include "overlay084/struct_ov84_0223B5A0_sub1.h"
|
||||
#include "overlay084/struct_ov84_0223C920.h"
|
||||
|
||||
#include "bag.h"
|
||||
#include "bag_system.h"
|
||||
#include "bg_window.h"
|
||||
#include "font_special_chars.h"
|
||||
#include "game_options.h"
|
||||
#include "list_menu.h"
|
||||
#include "menu.h"
|
||||
#include "message.h"
|
||||
#include "narc.h"
|
||||
#include "sprite_system.h"
|
||||
#include "strbuf.h"
|
||||
#include "string_list.h"
|
||||
#include "string_template.h"
|
||||
#include "trainer_info.h"
|
||||
|
||||
typedef struct {
|
||||
BgConfig *unk_00;
|
||||
Window unk_04[11];
|
||||
Window unk_B4[1];
|
||||
BagSystem *unk_C4;
|
||||
Bag *unk_C8;
|
||||
TrainerInfo *unk_CC;
|
||||
Options *options;
|
||||
NARC *unk_D4;
|
||||
SpriteSystem *unk_D8;
|
||||
SpriteManager *unk_DC;
|
||||
ManagedSprite *unk_E0[12];
|
||||
FontSpecialCharsContext *unk_110;
|
||||
MessageLoader *unk_114;
|
||||
StringTemplate *unk_118;
|
||||
MessageLoader *unk_11C;
|
||||
MessageLoader *unk_120;
|
||||
Strbuf *unk_124[12];
|
||||
StringList *unk_154;
|
||||
Menu *unk_158;
|
||||
ListMenu *unk_15C;
|
||||
StringList *unk_160;
|
||||
Strbuf *unk_164[165];
|
||||
Strbuf *unk_3F8;
|
||||
Strbuf *unk_3FC;
|
||||
Strbuf *unk_400;
|
||||
Strbuf *unk_404[8];
|
||||
u8 unk_424;
|
||||
u8 unk_425;
|
||||
u8 unk_426;
|
||||
u8 unk_427;
|
||||
u8 unk_428;
|
||||
UnkStruct_ov84_0223C920 unk_429;
|
||||
u8 padding_431[35];
|
||||
UnkStruct_ov84_0223B5A0_sub1 unk_454;
|
||||
u8 unk_478;
|
||||
u8 unk_479;
|
||||
u8 unk_47A;
|
||||
u8 unk_47B;
|
||||
u32 unk_47C;
|
||||
u8 unk_480;
|
||||
u8 unk_481;
|
||||
u8 unk_482;
|
||||
u8 unk_483;
|
||||
u32 unk_484;
|
||||
s16 unk_488;
|
||||
u16 unk_48A;
|
||||
u32 unk_48C;
|
||||
u8 unk_490;
|
||||
u8 unk_491;
|
||||
u8 unk_492;
|
||||
u8 padding_493;
|
||||
s32 unk_494;
|
||||
s16 unk_498;
|
||||
s16 unk_49A;
|
||||
u8 padding_49C[2];
|
||||
u16 unk_49E;
|
||||
u16 unk_4A0;
|
||||
u8 padding_4A2[2];
|
||||
} UnkStruct_ov84_0223B5A0;
|
||||
|
||||
#endif // POKEPLATINUM_STRUCT_OV84_0223B5A0_H
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
#ifndef POKEPLATINUM_STRUCT_OV84_0223B5A0_SUB1_H
|
||||
#define POKEPLATINUM_STRUCT_OV84_0223B5A0_SUB1_H
|
||||
|
||||
typedef struct {
|
||||
u8 unk_00;
|
||||
u8 unk_01;
|
||||
u8 padding_02;
|
||||
u8 unk_03;
|
||||
fx32 unk_04[8];
|
||||
} UnkStruct_ov84_0223B5A0_sub1;
|
||||
|
||||
#endif // POKEPLATINUM_STRUCT_OV84_0223B5A0_SUB1_H
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
#ifndef POKEPLATINUM_STRUCT_OV84_0223BE5C_H
|
||||
#define POKEPLATINUM_STRUCT_OV84_0223BE5C_H
|
||||
|
||||
#include "bag.h"
|
||||
|
||||
typedef struct {
|
||||
BagItem *items;
|
||||
u16 unk_04;
|
||||
u16 unk_06;
|
||||
u8 pocketType;
|
||||
u8 unk_09;
|
||||
u8 padding_0A[2];
|
||||
} BagInterfacePocketInfo;
|
||||
|
||||
#endif // POKEPLATINUM_STRUCT_OV84_0223BE5C_H
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
#ifndef POKEPLATINUM_STRUCT_OV84_0223C920_H
|
||||
#define POKEPLATINUM_STRUCT_OV84_0223C920_H
|
||||
|
||||
typedef struct {
|
||||
u8 unk_00;
|
||||
u8 unk_01;
|
||||
u8 unk_02;
|
||||
u8 unk_03;
|
||||
u8 unk_04;
|
||||
u8 unk_05;
|
||||
u8 unk_06;
|
||||
u8 unk_07_0 : 4;
|
||||
u8 unk_07_4 : 3;
|
||||
u8 unk_07_7 : 1;
|
||||
} UnkStruct_ov84_0223C920;
|
||||
|
||||
#endif // POKEPLATINUM_STRUCT_OV84_0223C920_H
|
||||
|
|
@ -216,7 +216,7 @@ res/prebuilt/graphic/ntag_gra.narc,/graphic/ntag_gra.narc
|
|||
res/prebuilt/graphic/nutmixer.narc,/graphic/nutmixer.narc
|
||||
res/prebuilt/graphic/oekaki.narc,/graphic/oekaki.narc
|
||||
res/prebuilt/graphic/opening.narc,/graphic/opening.narc
|
||||
res/prebuilt/graphic/pl_bag_gra.narc,/graphic/pl_bag_gra.narc
|
||||
res/graphics/bag/bag_graphics.narc,/graphic/pl_bag_gra.narc
|
||||
res/fonts/pl_font.narc,/graphic/pl_font.narc
|
||||
res/prebuilt/graphic/pl_plist_gra.narc,/graphic/pl_plist_gra.narc
|
||||
res/graphics/pokemon_summary_screen/pl_pst_gra.narc,/graphic/pl_pst_gra.narc
|
||||
|
|
|
|||
|
|
|
@ -215,7 +215,7 @@ e7266bd8b7095861b6e1fdaf4f13cb648a9c325d *res/prebuilt/graphic/footprint_board.n
|
|||
46742a8665062b1fa4fe576491fa2ad67ca83f49 *res/prebuilt/graphic/nutmixer.narc
|
||||
e22f0296444ce01e0b7619f73a8cf2016b2307b4 *res/prebuilt/graphic/oekaki.narc
|
||||
917f25f4e5bb3f5e1837471d2a90225e9e95363d *res/prebuilt/graphic/opening.narc
|
||||
dd0663e46347230d1d1b9eb8b583cee9acc10f31 *res/prebuilt/graphic/pl_bag_gra.narc
|
||||
dd0663e46347230d1d1b9eb8b583cee9acc10f31 *res/graphics/bag/bag_graphics.narc
|
||||
0929061d78710595aa53796ecffe3545f8406d82 *res/fonts/pl_font.narc
|
||||
d397dbd087737151aa8bea242016c626afb55fa5 *res/prebuilt/graphic/pl_plist_gra.narc
|
||||
883e6afb310f0ab02c26f2026cba1c76210bb3ac *res/graphics/pokemon_summary_screen/pl_pst_gra.narc
|
||||
|
|
|
|||
|
|
@ -299,7 +299,7 @@ Static main
|
|||
Object main.nef.p/src_evolution.c.o
|
||||
Object main.nef.p/src_unk_0207C63C.c.o
|
||||
Object main.nef.p/src_type_icon.c.o
|
||||
Object main.nef.p/src_bag_system.c.o
|
||||
Object main.nef.p/src_bag_context.c.o
|
||||
Object main.nef.p/src_item.c.o
|
||||
Object main.nef.p/src_bag.c.o
|
||||
Object main.nef.p/src_unk_0207DA28.c.o
|
||||
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
_000A:
|
||||
LockAll
|
||||
BufferNumber 0, VAR_0x8000
|
||||
Message 106
|
||||
Message Bag_Text_BatteryHasRunDry
|
||||
WaitABXPadPress
|
||||
CloseMessage
|
||||
ReleaseAll
|
||||
|
|
@ -17,7 +17,7 @@ _000A:
|
|||
|
||||
_001C:
|
||||
LockAll
|
||||
Message 107
|
||||
Message Bag_Text_GrassyPatchRemainedQuiet
|
||||
WaitABXPadPress
|
||||
CloseMessage
|
||||
ReleaseAll
|
||||
|
|
|
|||
39
res/graphics/bag/bag_graphics.order
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
bag_sprite_anim.NANR
|
||||
bag_sprite_cell.NCER
|
||||
bag_sprite_male.NCGR
|
||||
bag_sprite_male.NCLR
|
||||
bag_sprite_anim_female_unused.NANR
|
||||
bag_sprite_cell_female_unused.NCER
|
||||
bag_sprite_female.NCGR
|
||||
bag_sprite_female.NCLR
|
||||
pocket_selector_arrows_anim.NANR
|
||||
pocket_selector_arrows_cell.NCER
|
||||
pocket_selector_arrows.NCGR
|
||||
bag_ui_main_tileset.NCGR
|
||||
bag_ui_main.NCLR
|
||||
item_list_border.NSCR
|
||||
bag_ui_main.NSCR
|
||||
pokeball_borders_tileset.NCGR
|
||||
pokeball_borders.NCLR
|
||||
pokeball_borders.NSCR
|
||||
buttons.NCLR
|
||||
buttons.NCGR
|
||||
ui_elements.NCLR
|
||||
pocket_selector_icons.NCGR
|
||||
pocket_selector_icons.NCLR
|
||||
pocket_highlight_anim.NANR
|
||||
pocket_highlight_cell.NCER
|
||||
pocket_highlight.NCGR
|
||||
item_highlight_anim.NANR
|
||||
item_highlight_cell.NCER
|
||||
item_highlight.NCGR
|
||||
moving_item_pos_bar_anim.NANR
|
||||
moving_item_pos_bar_cell.NCER
|
||||
moving_item_pos_bar.NCGR
|
||||
pokeball_inside.NCGR
|
||||
pokeball_inside.NSCR
|
||||
button_shockwave_anim.NANR
|
||||
button_shockwave_cell.NCER
|
||||
button_shockwave.NCGR
|
||||
button_shockwave.NCLR
|
||||
item_entry_icons.NCGR
|
||||
522
res/graphics/bag/bag_sprite_anim.json
Normal file
|
|
@ -0,0 +1,522 @@
|
|||
{
|
||||
"labelEnabled": true,
|
||||
"sequenceCount": 16,
|
||||
"frameCount": 40,
|
||||
"sequences": [{
|
||||
"frameCount": 1,
|
||||
"loopStartFrame": 0,
|
||||
"animationElement": 0,
|
||||
"animationType": 1,
|
||||
"playbackMode": 1,
|
||||
"frameData": [{
|
||||
"frameDelay": 4,
|
||||
"resultId": 0
|
||||
}]
|
||||
}, {
|
||||
"frameCount": 1,
|
||||
"loopStartFrame": 0,
|
||||
"animationElement": 0,
|
||||
"animationType": 1,
|
||||
"playbackMode": 1,
|
||||
"frameData": [{
|
||||
"frameDelay": 4,
|
||||
"resultId": 1
|
||||
}]
|
||||
}, {
|
||||
"frameCount": 1,
|
||||
"loopStartFrame": 0,
|
||||
"animationElement": 0,
|
||||
"animationType": 1,
|
||||
"playbackMode": 1,
|
||||
"frameData": [{
|
||||
"frameDelay": 4,
|
||||
"resultId": 2
|
||||
}]
|
||||
}, {
|
||||
"frameCount": 1,
|
||||
"loopStartFrame": 0,
|
||||
"animationElement": 0,
|
||||
"animationType": 1,
|
||||
"playbackMode": 1,
|
||||
"frameData": [{
|
||||
"frameDelay": 4,
|
||||
"resultId": 3
|
||||
}]
|
||||
}, {
|
||||
"frameCount": 1,
|
||||
"loopStartFrame": 0,
|
||||
"animationElement": 0,
|
||||
"animationType": 1,
|
||||
"playbackMode": 1,
|
||||
"frameData": [{
|
||||
"frameDelay": 4,
|
||||
"resultId": 4
|
||||
}]
|
||||
}, {
|
||||
"frameCount": 1,
|
||||
"loopStartFrame": 0,
|
||||
"animationElement": 0,
|
||||
"animationType": 1,
|
||||
"playbackMode": 1,
|
||||
"frameData": [{
|
||||
"frameDelay": 4,
|
||||
"resultId": 5
|
||||
}]
|
||||
}, {
|
||||
"frameCount": 1,
|
||||
"loopStartFrame": 0,
|
||||
"animationElement": 0,
|
||||
"animationType": 1,
|
||||
"playbackMode": 1,
|
||||
"frameData": [{
|
||||
"frameDelay": 4,
|
||||
"resultId": 6
|
||||
}]
|
||||
}, {
|
||||
"frameCount": 1,
|
||||
"loopStartFrame": 0,
|
||||
"animationElement": 0,
|
||||
"animationType": 1,
|
||||
"playbackMode": 1,
|
||||
"frameData": [{
|
||||
"frameDelay": 4,
|
||||
"resultId": 7
|
||||
}]
|
||||
}, {
|
||||
"frameCount": 4,
|
||||
"loopStartFrame": 0,
|
||||
"animationElement": 1,
|
||||
"animationType": 1,
|
||||
"playbackMode": 1,
|
||||
"frameData": [{
|
||||
"frameDelay": 2,
|
||||
"resultId": 8
|
||||
}, {
|
||||
"frameDelay": 2,
|
||||
"resultId": 9
|
||||
}, {
|
||||
"frameDelay": 2,
|
||||
"resultId": 10
|
||||
}, {
|
||||
"frameDelay": 2,
|
||||
"resultId": 11
|
||||
}]
|
||||
}, {
|
||||
"frameCount": 4,
|
||||
"loopStartFrame": 0,
|
||||
"animationElement": 1,
|
||||
"animationType": 1,
|
||||
"playbackMode": 1,
|
||||
"frameData": [{
|
||||
"frameDelay": 2,
|
||||
"resultId": 12
|
||||
}, {
|
||||
"frameDelay": 2,
|
||||
"resultId": 13
|
||||
}, {
|
||||
"frameDelay": 2,
|
||||
"resultId": 14
|
||||
}, {
|
||||
"frameDelay": 2,
|
||||
"resultId": 15
|
||||
}]
|
||||
}, {
|
||||
"frameCount": 4,
|
||||
"loopStartFrame": 0,
|
||||
"animationElement": 1,
|
||||
"animationType": 1,
|
||||
"playbackMode": 1,
|
||||
"frameData": [{
|
||||
"frameDelay": 2,
|
||||
"resultId": 16
|
||||
}, {
|
||||
"frameDelay": 2,
|
||||
"resultId": 17
|
||||
}, {
|
||||
"frameDelay": 2,
|
||||
"resultId": 18
|
||||
}, {
|
||||
"frameDelay": 2,
|
||||
"resultId": 19
|
||||
}]
|
||||
}, {
|
||||
"frameCount": 4,
|
||||
"loopStartFrame": 0,
|
||||
"animationElement": 1,
|
||||
"animationType": 1,
|
||||
"playbackMode": 1,
|
||||
"frameData": [{
|
||||
"frameDelay": 2,
|
||||
"resultId": 20
|
||||
}, {
|
||||
"frameDelay": 2,
|
||||
"resultId": 21
|
||||
}, {
|
||||
"frameDelay": 2,
|
||||
"resultId": 22
|
||||
}, {
|
||||
"frameDelay": 2,
|
||||
"resultId": 23
|
||||
}]
|
||||
}, {
|
||||
"frameCount": 4,
|
||||
"loopStartFrame": 0,
|
||||
"animationElement": 1,
|
||||
"animationType": 1,
|
||||
"playbackMode": 1,
|
||||
"frameData": [{
|
||||
"frameDelay": 2,
|
||||
"resultId": 24
|
||||
}, {
|
||||
"frameDelay": 2,
|
||||
"resultId": 25
|
||||
}, {
|
||||
"frameDelay": 2,
|
||||
"resultId": 26
|
||||
}, {
|
||||
"frameDelay": 2,
|
||||
"resultId": 27
|
||||
}]
|
||||
}, {
|
||||
"frameCount": 4,
|
||||
"loopStartFrame": 0,
|
||||
"animationElement": 1,
|
||||
"animationType": 1,
|
||||
"playbackMode": 1,
|
||||
"frameData": [{
|
||||
"frameDelay": 2,
|
||||
"resultId": 28
|
||||
}, {
|
||||
"frameDelay": 2,
|
||||
"resultId": 29
|
||||
}, {
|
||||
"frameDelay": 2,
|
||||
"resultId": 30
|
||||
}, {
|
||||
"frameDelay": 2,
|
||||
"resultId": 31
|
||||
}]
|
||||
}, {
|
||||
"frameCount": 4,
|
||||
"loopStartFrame": 0,
|
||||
"animationElement": 1,
|
||||
"animationType": 1,
|
||||
"playbackMode": 1,
|
||||
"frameData": [{
|
||||
"frameDelay": 2,
|
||||
"resultId": 32
|
||||
}, {
|
||||
"frameDelay": 2,
|
||||
"resultId": 33
|
||||
}, {
|
||||
"frameDelay": 2,
|
||||
"resultId": 34
|
||||
}, {
|
||||
"frameDelay": 2,
|
||||
"resultId": 35
|
||||
}]
|
||||
}, {
|
||||
"frameCount": 4,
|
||||
"loopStartFrame": 0,
|
||||
"animationElement": 1,
|
||||
"animationType": 1,
|
||||
"playbackMode": 1,
|
||||
"frameData": [{
|
||||
"frameDelay": 2,
|
||||
"resultId": 36
|
||||
}, {
|
||||
"frameDelay": 2,
|
||||
"resultId": 37
|
||||
}, {
|
||||
"frameDelay": 2,
|
||||
"resultId": 38
|
||||
}, {
|
||||
"frameDelay": 2,
|
||||
"resultId": 39
|
||||
}]
|
||||
}],
|
||||
"animationResults": [{
|
||||
"resultType": 0,
|
||||
"index": 1
|
||||
}, {
|
||||
"resultType": 0,
|
||||
"index": 3
|
||||
}, {
|
||||
"resultType": 0,
|
||||
"index": 4
|
||||
}, {
|
||||
"resultType": 0,
|
||||
"index": 7
|
||||
}, {
|
||||
"resultType": 0,
|
||||
"index": 2
|
||||
}, {
|
||||
"resultType": 0,
|
||||
"index": 6
|
||||
}, {
|
||||
"resultType": 0,
|
||||
"index": 5
|
||||
}, {
|
||||
"resultType": 0,
|
||||
"index": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 1,
|
||||
"rotation": 64080,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 1,
|
||||
"rotation": 1092,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 1,
|
||||
"rotation": 64990,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 1,
|
||||
"rotation": 0,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 3,
|
||||
"rotation": 64080,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 3,
|
||||
"rotation": 1092,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 3,
|
||||
"rotation": 64990,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 3,
|
||||
"rotation": 0,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 4,
|
||||
"rotation": 64080,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 4,
|
||||
"rotation": 1092,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 4,
|
||||
"rotation": 64990,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 4,
|
||||
"rotation": 0,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 7,
|
||||
"rotation": 64080,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 7,
|
||||
"rotation": 1092,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 7,
|
||||
"rotation": 64990,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 7,
|
||||
"rotation": 0,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 2,
|
||||
"rotation": 64080,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 2,
|
||||
"rotation": 1092,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 2,
|
||||
"rotation": 64990,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 2,
|
||||
"rotation": 0,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 6,
|
||||
"rotation": 64080,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 6,
|
||||
"rotation": 1092,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 6,
|
||||
"rotation": 64990,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 6,
|
||||
"rotation": 0,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 5,
|
||||
"rotation": 64080,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 5,
|
||||
"rotation": 1092,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 5,
|
||||
"rotation": 64990,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 5,
|
||||
"rotation": 0,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 0,
|
||||
"rotation": 64080,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 0,
|
||||
"rotation": 1092,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 0,
|
||||
"rotation": 64990,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 1,
|
||||
"index": 0,
|
||||
"rotation": 0,
|
||||
"scaleX": 4096,
|
||||
"scaleY": 4096,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}],
|
||||
"resultCount": 40,
|
||||
"labels": ["CellAnime0", "CellAnime1", "CellAnime2", "CellAnime3", "CellAnime4", "CellAnime5", "CellAnime6", "CellAnime7", "ca1", "ca3", "ca4", "ca7", "ca2", "ca6", "ca5", "ca0"],
|
||||
"labelCount": 16
|
||||
}
|
||||
282
res/graphics/bag/bag_sprite_cell.json
Normal file
|
|
@ -0,0 +1,282 @@
|
|||
{
|
||||
"labelEnabled": true,
|
||||
"extended": true,
|
||||
"vramTransferEnabled": false,
|
||||
"cellCount": 8,
|
||||
"mappingType": 0,
|
||||
"cells": [{
|
||||
"cellAttrs": {
|
||||
"hFlip": false,
|
||||
"vFlip": false,
|
||||
"hvFlip": false,
|
||||
"boundingRect": true,
|
||||
"boundingSphereRadius": 12
|
||||
},
|
||||
"maxX": 31,
|
||||
"maxY": 31,
|
||||
"minX": -32,
|
||||
"minY": -32,
|
||||
"oamCount": 1,
|
||||
"OAM": [{
|
||||
"Attr0": {
|
||||
"YCoordinate": 224,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 0
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 480,
|
||||
"RotationScaling": 0,
|
||||
"Size": 3
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 0,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}]
|
||||
}, {
|
||||
"cellAttrs": {
|
||||
"hFlip": false,
|
||||
"vFlip": false,
|
||||
"hvFlip": false,
|
||||
"boundingRect": true,
|
||||
"boundingSphereRadius": 12
|
||||
},
|
||||
"maxX": 31,
|
||||
"maxY": 31,
|
||||
"minX": -32,
|
||||
"minY": -32,
|
||||
"oamCount": 1,
|
||||
"OAM": [{
|
||||
"Attr0": {
|
||||
"YCoordinate": 224,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 0
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 480,
|
||||
"RotationScaling": 0,
|
||||
"Size": 3
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 64,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}]
|
||||
}, {
|
||||
"cellAttrs": {
|
||||
"hFlip": false,
|
||||
"vFlip": false,
|
||||
"hvFlip": false,
|
||||
"boundingRect": true,
|
||||
"boundingSphereRadius": 12
|
||||
},
|
||||
"maxX": 31,
|
||||
"maxY": 31,
|
||||
"minX": -32,
|
||||
"minY": -32,
|
||||
"oamCount": 1,
|
||||
"OAM": [{
|
||||
"Attr0": {
|
||||
"YCoordinate": 224,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 0
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 480,
|
||||
"RotationScaling": 0,
|
||||
"Size": 3
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 128,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}]
|
||||
}, {
|
||||
"cellAttrs": {
|
||||
"hFlip": false,
|
||||
"vFlip": false,
|
||||
"hvFlip": false,
|
||||
"boundingRect": true,
|
||||
"boundingSphereRadius": 12
|
||||
},
|
||||
"maxX": 31,
|
||||
"maxY": 31,
|
||||
"minX": -32,
|
||||
"minY": -32,
|
||||
"oamCount": 1,
|
||||
"OAM": [{
|
||||
"Attr0": {
|
||||
"YCoordinate": 224,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 0
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 480,
|
||||
"RotationScaling": 0,
|
||||
"Size": 3
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 192,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}]
|
||||
}, {
|
||||
"cellAttrs": {
|
||||
"hFlip": false,
|
||||
"vFlip": false,
|
||||
"hvFlip": false,
|
||||
"boundingRect": true,
|
||||
"boundingSphereRadius": 12
|
||||
},
|
||||
"maxX": 31,
|
||||
"maxY": 31,
|
||||
"minX": -32,
|
||||
"minY": -32,
|
||||
"oamCount": 1,
|
||||
"OAM": [{
|
||||
"Attr0": {
|
||||
"YCoordinate": 224,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 0
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 480,
|
||||
"RotationScaling": 0,
|
||||
"Size": 3
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 256,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}]
|
||||
}, {
|
||||
"cellAttrs": {
|
||||
"hFlip": false,
|
||||
"vFlip": false,
|
||||
"hvFlip": false,
|
||||
"boundingRect": true,
|
||||
"boundingSphereRadius": 12
|
||||
},
|
||||
"maxX": 31,
|
||||
"maxY": 31,
|
||||
"minX": -32,
|
||||
"minY": -32,
|
||||
"oamCount": 1,
|
||||
"OAM": [{
|
||||
"Attr0": {
|
||||
"YCoordinate": 224,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 0
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 480,
|
||||
"RotationScaling": 0,
|
||||
"Size": 3
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 320,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}]
|
||||
}, {
|
||||
"cellAttrs": {
|
||||
"hFlip": false,
|
||||
"vFlip": false,
|
||||
"hvFlip": false,
|
||||
"boundingRect": true,
|
||||
"boundingSphereRadius": 12
|
||||
},
|
||||
"maxX": 31,
|
||||
"maxY": 31,
|
||||
"minX": -32,
|
||||
"minY": -32,
|
||||
"oamCount": 1,
|
||||
"OAM": [{
|
||||
"Attr0": {
|
||||
"YCoordinate": 224,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 0
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 480,
|
||||
"RotationScaling": 0,
|
||||
"Size": 3
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 384,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}]
|
||||
}, {
|
||||
"cellAttrs": {
|
||||
"hFlip": false,
|
||||
"vFlip": false,
|
||||
"hvFlip": false,
|
||||
"boundingRect": true,
|
||||
"boundingSphereRadius": 12
|
||||
},
|
||||
"maxX": 31,
|
||||
"maxY": 31,
|
||||
"minX": -32,
|
||||
"minY": -32,
|
||||
"oamCount": 1,
|
||||
"OAM": [{
|
||||
"Attr0": {
|
||||
"YCoordinate": 224,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 0
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 480,
|
||||
"RotationScaling": 0,
|
||||
"Size": 3
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 448,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}]
|
||||
}],
|
||||
"labels": ["CellAnime0", "CellAnime1", "CellAnime2", "CellAnime3", "CellAnime4", "CellAnime5", "CellAnime6", "CellAnime7", "ca1", "ca3", "ca4", "ca7", "ca2", "ca6", "ca5", "ca0"],
|
||||
"labelCount": 16
|
||||
}
|
||||
BIN
res/graphics/bag/bag_sprite_female.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
res/graphics/bag/bag_sprite_male.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
res/graphics/bag/bag_ui_main.NSCR
Normal file
259
res/graphics/bag/bag_ui_main.pal
Normal file
|
|
@ -0,0 +1,259 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
256
|
||||
0 0 0
|
||||
255 255 255
|
||||
222 238 238
|
||||
189 213 222
|
||||
156 189 205
|
||||
123 164 189
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
189 246 255
|
||||
255 255 255
|
||||
115 123 148
|
||||
197 222 230
|
||||
90 205 82
|
||||
197 106 65
|
||||
189 139 139
|
||||
246 172 82
|
||||
255 205 98
|
||||
139 230 98
|
||||
148 148 148
|
||||
164 205 246
|
||||
172 213 255
|
||||
164 172 246
|
||||
115 82 246
|
||||
82 98 156
|
||||
213 238 222
|
||||
156 180 172
|
||||
172 213 255
|
||||
180 213 255
|
||||
180 222 255
|
||||
180 230 255
|
||||
189 238 246
|
||||
90 205 82
|
||||
255 255 255
|
||||
139 230 98
|
||||
148 148 148
|
||||
123 213 222
|
||||
106 172 197
|
||||
115 98 213
|
||||
148 172 222
|
||||
156 222 230
|
||||
156 197 106
|
||||
16 24 32
|
||||
172 189 189
|
||||
255 255 255
|
||||
172 189 189
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
164 180 205
|
||||
106 139 180
|
||||
222 41 8
|
||||
255 255 255
|
||||
255 197 189
|
||||
246 148 123
|
||||
0 0 0
|
||||
255 255 255
|
||||
156 197 106
|
||||
255 255 255
|
||||
172 189 189
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
255 255 255
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
BIN
res/graphics/bag/bag_ui_main_tileset.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
res/graphics/bag/button_shockwave.png
Normal file
|
After Width: | Height: | Size: 871 B |
32
res/graphics/bag/button_shockwave_anim.json
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"labelEnabled": true,
|
||||
"sequenceCount": 1,
|
||||
"frameCount": 3,
|
||||
"sequences": [{
|
||||
"frameCount": 3,
|
||||
"loopStartFrame": 0,
|
||||
"animationElement": 0,
|
||||
"animationType": 1,
|
||||
"playbackMode": 1,
|
||||
"frameData": [{
|
||||
"frameDelay": 3,
|
||||
"resultId": 0
|
||||
}, {
|
||||
"frameDelay": 2,
|
||||
"resultId": 1
|
||||
}, {
|
||||
"frameDelay": 1,
|
||||
"resultId": 1
|
||||
}]
|
||||
}],
|
||||
"animationResults": [{
|
||||
"resultType": 0,
|
||||
"index": 0
|
||||
}, {
|
||||
"resultType": 0,
|
||||
"index": 1
|
||||
}],
|
||||
"resultCount": 2,
|
||||
"labels": ["CellAnime0"],
|
||||
"labelCount": 1
|
||||
}
|
||||
138
res/graphics/bag/button_shockwave_cell.json
Normal file
|
|
@ -0,0 +1,138 @@
|
|||
{
|
||||
"labelEnabled": true,
|
||||
"extended": true,
|
||||
"vramTransferEnabled": false,
|
||||
"cellCount": 2,
|
||||
"mappingType": 0,
|
||||
"cells": [{
|
||||
"cellAttrs": {
|
||||
"hFlip": false,
|
||||
"vFlip": false,
|
||||
"hvFlip": false,
|
||||
"boundingRect": true,
|
||||
"boundingSphereRadius": 12
|
||||
},
|
||||
"maxX": 31,
|
||||
"maxY": 31,
|
||||
"minX": -32,
|
||||
"minY": -32,
|
||||
"oamCount": 1,
|
||||
"OAM": [{
|
||||
"Attr0": {
|
||||
"YCoordinate": 224,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 0
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 480,
|
||||
"RotationScaling": 0,
|
||||
"Size": 3
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 0,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}]
|
||||
}, {
|
||||
"cellAttrs": {
|
||||
"hFlip": false,
|
||||
"vFlip": false,
|
||||
"hvFlip": false,
|
||||
"boundingRect": true,
|
||||
"boundingSphereRadius": 17
|
||||
},
|
||||
"maxX": 47,
|
||||
"maxY": 47,
|
||||
"minX": -48,
|
||||
"minY": -48,
|
||||
"oamCount": 4,
|
||||
"OAM": [{
|
||||
"Attr0": {
|
||||
"YCoordinate": 208,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 0
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 464,
|
||||
"RotationScaling": 0,
|
||||
"Size": 3
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 64,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}, {
|
||||
"Attr0": {
|
||||
"YCoordinate": 208,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 2
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 16,
|
||||
"RotationScaling": 0,
|
||||
"Size": 3
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 128,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}, {
|
||||
"Attr0": {
|
||||
"YCoordinate": 16,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 1
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 464,
|
||||
"RotationScaling": 0,
|
||||
"Size": 3
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 160,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}, {
|
||||
"Attr0": {
|
||||
"YCoordinate": 16,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 0
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 16,
|
||||
"RotationScaling": 0,
|
||||
"Size": 2
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 192,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}]
|
||||
}],
|
||||
"labels": ["CellAnime0"],
|
||||
"labelCount": 1
|
||||
}
|
||||
259
res/graphics/bag/buttons.pal
Normal file
|
|
@ -0,0 +1,259 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
256
|
||||
156 213 238
|
||||
255 255 197
|
||||
172 172 172
|
||||
164 156 98
|
||||
255 255 255
|
||||
255 246 148
|
||||
197 180 106
|
||||
148 123 74
|
||||
98 90 65
|
||||
238 205 123
|
||||
246 222 115
|
||||
255 82 82
|
||||
255 156 106
|
||||
246 230 139
|
||||
213 148 98
|
||||
230 189 123
|
||||
90 189 222
|
||||
255 255 255
|
||||
230 230 230
|
||||
90 90 90
|
||||
197 197 197
|
||||
230 230 230
|
||||
222 222 222
|
||||
172 172 172
|
||||
131 131 131
|
||||
115 115 115
|
||||
189 180 164
|
||||
164 164 164
|
||||
148 123 90
|
||||
205 205 205
|
||||
180 180 180
|
||||
172 172 172
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
BIN
res/graphics/bag/buttons.png
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
res/graphics/bag/item_entry_icons.png
Normal file
|
After Width: | Height: | Size: 183 B |
BIN
res/graphics/bag/item_highlight.png
Normal file
|
After Width: | Height: | Size: 178 B |
23
res/graphics/bag/item_highlight_anim.json
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"labelEnabled": true,
|
||||
"sequenceCount": 1,
|
||||
"frameCount": 1,
|
||||
"sequences": [{
|
||||
"frameCount": 1,
|
||||
"loopStartFrame": 0,
|
||||
"animationElement": 0,
|
||||
"animationType": 1,
|
||||
"playbackMode": 2,
|
||||
"frameData": [{
|
||||
"frameDelay": 4,
|
||||
"resultId": 0
|
||||
}]
|
||||
}],
|
||||
"animationResults": [{
|
||||
"resultType": 0,
|
||||
"index": 0
|
||||
}],
|
||||
"resultCount": 1,
|
||||
"labels": ["CellAnime0"],
|
||||
"labelCount": 1
|
||||
}
|
||||
104
res/graphics/bag/item_highlight_cell.json
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
{
|
||||
"labelEnabled": true,
|
||||
"extended": true,
|
||||
"vramTransferEnabled": false,
|
||||
"cellCount": 1,
|
||||
"mappingType": 0,
|
||||
"cells": [{
|
||||
"cellAttrs": {
|
||||
"hFlip": false,
|
||||
"vFlip": false,
|
||||
"hvFlip": false,
|
||||
"boundingRect": true,
|
||||
"boundingSphereRadius": 21
|
||||
},
|
||||
"maxX": 79,
|
||||
"maxY": 15,
|
||||
"minX": -72,
|
||||
"minY": -16,
|
||||
"oamCount": 4,
|
||||
"OAM": [{
|
||||
"Attr0": {
|
||||
"YCoordinate": 240,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 1
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 440,
|
||||
"RotationScaling": 0,
|
||||
"Size": 3
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 0,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}, {
|
||||
"Attr0": {
|
||||
"YCoordinate": 240,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 1
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 504,
|
||||
"RotationScaling": 0,
|
||||
"Size": 3
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 32,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}, {
|
||||
"Attr0": {
|
||||
"YCoordinate": 240,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 2
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 56,
|
||||
"RotationScaling": 0,
|
||||
"Size": 2
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 64,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}, {
|
||||
"Attr0": {
|
||||
"YCoordinate": 240,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 2
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 72,
|
||||
"RotationScaling": 0,
|
||||
"Size": 1
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 72,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}]
|
||||
}],
|
||||
"labels": ["CellAnime0"],
|
||||
"labelCount": 1
|
||||
}
|
||||
BIN
res/graphics/bag/item_list_border.NSCR
Normal file
141
res/graphics/bag/meson.build
Normal file
|
|
@ -0,0 +1,141 @@
|
|||
tilemaps_nscr = copy_gen.process(files(
|
||||
'bag_ui_main.NSCR',
|
||||
'item_list_border.NSCR',
|
||||
'pokeball_borders.NSCR',
|
||||
'pokeball_inside.NSCR',
|
||||
))
|
||||
|
||||
sprite_anims_nanr = nanr_gen.process(files(
|
||||
'bag_sprite_anim.json',
|
||||
'pocket_selector_arrows_anim.json',
|
||||
'pocket_highlight_anim.json',
|
||||
'item_highlight_anim.json',
|
||||
'moving_item_pos_bar_anim.json',
|
||||
'button_shockwave_anim.json',
|
||||
))
|
||||
|
||||
bag_sprite_female_anim_unused_nanr = generator(nitrogfx_exe,
|
||||
arguments: ['@INPUT@', '@OUTPUT@'],
|
||||
output: '@BASENAME@_female_unused.NANR',
|
||||
).process(files('bag_sprite_anim.json'))
|
||||
|
||||
sprite_cells_ncer = ncer_gen.process(files(
|
||||
'bag_sprite_cell.json',
|
||||
'pocket_selector_arrows_cell.json',
|
||||
'pocket_highlight_cell.json',
|
||||
'item_highlight_cell.json',
|
||||
'moving_item_pos_bar_cell.json',
|
||||
'button_shockwave_cell.json',
|
||||
))
|
||||
|
||||
bag_sprite_female_cell_unused_ncer = generator(nitrogfx_exe,
|
||||
arguments: ['@INPUT@', '@OUTPUT@'],
|
||||
output: '@BASENAME@_female_unused.NCER',
|
||||
).process(files('bag_sprite_cell.json'))
|
||||
|
||||
palettes_8bpp = nclr_gen.process(
|
||||
files(
|
||||
'bag_ui_main.pal',
|
||||
'buttons.pal',
|
||||
'pokeball_borders.pal',
|
||||
'ui_elements.pal',
|
||||
),
|
||||
extra_args: [
|
||||
'-bitdepth', '4'
|
||||
],
|
||||
)
|
||||
|
||||
palettes_4bpp = nclr_gen.process(
|
||||
files(
|
||||
'bag_sprite_male.png',
|
||||
'bag_sprite_female.png',
|
||||
'pocket_selector_icons.png',
|
||||
'button_shockwave.png',
|
||||
),
|
||||
extra_args: [
|
||||
'-bitdepth', '4'
|
||||
]
|
||||
)
|
||||
|
||||
sprites_ncgr_sopc = ncgr_gen.process(
|
||||
files(
|
||||
'bag_ui_main_tileset.png',
|
||||
'buttons.png',
|
||||
'item_entry_icons.png',
|
||||
'pocket_selector_icons.png',
|
||||
'pokeball_borders_tileset.png',
|
||||
),
|
||||
extra_args: [
|
||||
'-version101',
|
||||
'-sopc',
|
||||
'-bitdepth', '4',
|
||||
]
|
||||
)
|
||||
|
||||
sprites_ncgr_clobbersize = ncgr_gen.process(
|
||||
files(
|
||||
'bag_sprite_male.png',
|
||||
'bag_sprite_female.png',
|
||||
'pocket_selector_arrows.png',
|
||||
'pocket_highlight.png',
|
||||
'button_shockwave.png',
|
||||
),
|
||||
extra_args: [
|
||||
'-version101',
|
||||
'-clobbersize',
|
||||
'-bitdepth', '4',
|
||||
]
|
||||
)
|
||||
|
||||
sprites_ncgr_cell = ncgr_cell_gen.process(
|
||||
files(
|
||||
'item_highlight.png',
|
||||
'moving_item_pos_bar.png',
|
||||
),
|
||||
extra_args: [
|
||||
'-version101',
|
||||
'-clobbersize',
|
||||
'-bitdepth', '4',
|
||||
]
|
||||
)
|
||||
|
||||
sprites_ncgr_8bpp = ncgr_gen.process(
|
||||
files(
|
||||
'pokeball_inside.png',
|
||||
),
|
||||
extra_args: [
|
||||
'-version101',
|
||||
'-sopc',
|
||||
'-bitdepth', '8',
|
||||
],
|
||||
)
|
||||
|
||||
bag_graphics_narc = custom_target('bag_graphics.narc',
|
||||
command: [
|
||||
narc_exe, 'create',
|
||||
'--naix',
|
||||
'--order', files('bag_graphics.order'),
|
||||
'--output', '@OUTPUT0@',
|
||||
'@PRIVATE_DIR@',
|
||||
],
|
||||
input: [
|
||||
tilemaps_nscr,
|
||||
sprite_anims_nanr,
|
||||
sprite_cells_ncer,
|
||||
bag_sprite_female_anim_unused_nanr,
|
||||
bag_sprite_female_cell_unused_ncer,
|
||||
palettes_8bpp,
|
||||
palettes_4bpp,
|
||||
sprites_ncgr_sopc,
|
||||
sprites_ncgr_clobbersize,
|
||||
sprites_ncgr_cell,
|
||||
sprites_ncgr_8bpp,
|
||||
],
|
||||
output: [
|
||||
'bag_graphics.narc',
|
||||
'bag_graphics.naix.h',
|
||||
],
|
||||
)
|
||||
|
||||
nitrofs_files += bag_graphics_narc
|
||||
naix_headers += bag_graphics_narc[1]
|
||||
BIN
res/graphics/bag/moving_item_pos_bar.png
Normal file
|
After Width: | Height: | Size: 177 B |
23
res/graphics/bag/moving_item_pos_bar_anim.json
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"labelEnabled": true,
|
||||
"sequenceCount": 1,
|
||||
"frameCount": 1,
|
||||
"sequences": [{
|
||||
"frameCount": 1,
|
||||
"loopStartFrame": 0,
|
||||
"animationElement": 0,
|
||||
"animationType": 1,
|
||||
"playbackMode": 2,
|
||||
"frameData": [{
|
||||
"frameDelay": 4,
|
||||
"resultId": 0
|
||||
}]
|
||||
}],
|
||||
"animationResults": [{
|
||||
"resultType": 0,
|
||||
"index": 0
|
||||
}],
|
||||
"resultCount": 1,
|
||||
"labels": ["CellAnime0"],
|
||||
"labelCount": 1
|
||||
}
|
||||
124
res/graphics/bag/moving_item_pos_bar_cell.json
Normal file
|
|
@ -0,0 +1,124 @@
|
|||
{
|
||||
"labelEnabled": true,
|
||||
"extended": true,
|
||||
"vramTransferEnabled": false,
|
||||
"cellCount": 1,
|
||||
"mappingType": 0,
|
||||
"cells": [{
|
||||
"cellAttrs": {
|
||||
"hFlip": false,
|
||||
"vFlip": false,
|
||||
"hvFlip": false,
|
||||
"boundingRect": true,
|
||||
"boundingSphereRadius": 18
|
||||
},
|
||||
"maxX": 71,
|
||||
"maxY": 7,
|
||||
"minX": -72,
|
||||
"minY": -8,
|
||||
"oamCount": 5,
|
||||
"OAM": [{
|
||||
"Attr0": {
|
||||
"YCoordinate": 248,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 1
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 440,
|
||||
"RotationScaling": 0,
|
||||
"Size": 2
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 0,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}, {
|
||||
"Attr0": {
|
||||
"YCoordinate": 248,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 1
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 472,
|
||||
"RotationScaling": 0,
|
||||
"Size": 2
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 8,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}, {
|
||||
"Attr0": {
|
||||
"YCoordinate": 248,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 1
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 504,
|
||||
"RotationScaling": 0,
|
||||
"Size": 2
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 16,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}, {
|
||||
"Attr0": {
|
||||
"YCoordinate": 248,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 1
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 24,
|
||||
"RotationScaling": 0,
|
||||
"Size": 2
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 24,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}, {
|
||||
"Attr0": {
|
||||
"YCoordinate": 248,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 0
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 56,
|
||||
"RotationScaling": 0,
|
||||
"Size": 1
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 32,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}]
|
||||
}],
|
||||
"labels": ["CellAnime0"],
|
||||
"labelCount": 1
|
||||
}
|
||||
BIN
res/graphics/bag/pocket_highlight.png
Normal file
|
After Width: | Height: | Size: 155 B |
23
res/graphics/bag/pocket_highlight_anim.json
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"labelEnabled": true,
|
||||
"sequenceCount": 1,
|
||||
"frameCount": 1,
|
||||
"sequences": [{
|
||||
"frameCount": 1,
|
||||
"loopStartFrame": 0,
|
||||
"animationElement": 0,
|
||||
"animationType": 1,
|
||||
"playbackMode": 2,
|
||||
"frameData": [{
|
||||
"frameDelay": 4,
|
||||
"resultId": 0
|
||||
}]
|
||||
}],
|
||||
"animationResults": [{
|
||||
"resultType": 0,
|
||||
"index": 0
|
||||
}],
|
||||
"resultCount": 1,
|
||||
"labels": ["CellAnime0"],
|
||||
"labelCount": 1
|
||||
}
|
||||
44
res/graphics/bag/pocket_highlight_cell.json
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
{
|
||||
"labelEnabled": true,
|
||||
"extended": true,
|
||||
"vramTransferEnabled": false,
|
||||
"cellCount": 1,
|
||||
"mappingType": 0,
|
||||
"cells": [{
|
||||
"cellAttrs": {
|
||||
"hFlip": false,
|
||||
"vFlip": false,
|
||||
"hvFlip": false,
|
||||
"boundingRect": true,
|
||||
"boundingSphereRadius": 3
|
||||
},
|
||||
"maxX": 7,
|
||||
"maxY": 7,
|
||||
"minX": -8,
|
||||
"minY": -8,
|
||||
"oamCount": 1,
|
||||
"OAM": [{
|
||||
"Attr0": {
|
||||
"YCoordinate": 248,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 0
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 504,
|
||||
"RotationScaling": 0,
|
||||
"Size": 1
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 0,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}]
|
||||
}],
|
||||
"labels": ["CellAnime0"],
|
||||
"labelCount": 1
|
||||
}
|
||||
BIN
res/graphics/bag/pocket_selector_arrows.png
Normal file
|
After Width: | Height: | Size: 175 B |
62
res/graphics/bag/pocket_selector_arrows_anim.json
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
{
|
||||
"labelEnabled": true,
|
||||
"sequenceCount": 4,
|
||||
"frameCount": 4,
|
||||
"sequences": [{
|
||||
"frameCount": 1,
|
||||
"loopStartFrame": 0,
|
||||
"animationElement": 0,
|
||||
"animationType": 1,
|
||||
"playbackMode": 2,
|
||||
"frameData": [{
|
||||
"frameDelay": 4,
|
||||
"resultId": 0
|
||||
}]
|
||||
}, {
|
||||
"frameCount": 1,
|
||||
"loopStartFrame": 0,
|
||||
"animationElement": 0,
|
||||
"animationType": 1,
|
||||
"playbackMode": 2,
|
||||
"frameData": [{
|
||||
"frameDelay": 4,
|
||||
"resultId": 1
|
||||
}]
|
||||
}, {
|
||||
"frameCount": 1,
|
||||
"loopStartFrame": 0,
|
||||
"animationElement": 0,
|
||||
"animationType": 1,
|
||||
"playbackMode": 2,
|
||||
"frameData": [{
|
||||
"frameDelay": 4,
|
||||
"resultId": 2
|
||||
}]
|
||||
}, {
|
||||
"frameCount": 1,
|
||||
"loopStartFrame": 0,
|
||||
"animationElement": 0,
|
||||
"animationType": 1,
|
||||
"playbackMode": 2,
|
||||
"frameData": [{
|
||||
"frameDelay": 4,
|
||||
"resultId": 3
|
||||
}]
|
||||
}],
|
||||
"animationResults": [{
|
||||
"resultType": 0,
|
||||
"index": 0
|
||||
}, {
|
||||
"resultType": 0,
|
||||
"index": 1
|
||||
}, {
|
||||
"resultType": 0,
|
||||
"index": 2
|
||||
}, {
|
||||
"resultType": 0,
|
||||
"index": 3
|
||||
}],
|
||||
"resultCount": 4,
|
||||
"labels": ["CellAnime0", "CellAnime1", "CellAnime2", "CellAnime3"],
|
||||
"labelCount": 4
|
||||
}
|
||||
146
res/graphics/bag/pocket_selector_arrows_cell.json
Normal file
|
|
@ -0,0 +1,146 @@
|
|||
{
|
||||
"labelEnabled": true,
|
||||
"extended": true,
|
||||
"vramTransferEnabled": false,
|
||||
"cellCount": 4,
|
||||
"mappingType": 0,
|
||||
"cells": [{
|
||||
"cellAttrs": {
|
||||
"hFlip": false,
|
||||
"vFlip": false,
|
||||
"hvFlip": false,
|
||||
"boundingRect": true,
|
||||
"boundingSphereRadius": 3
|
||||
},
|
||||
"maxX": 7,
|
||||
"maxY": 7,
|
||||
"minX": -8,
|
||||
"minY": -8,
|
||||
"oamCount": 1,
|
||||
"OAM": [{
|
||||
"Attr0": {
|
||||
"YCoordinate": 248,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 0
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 504,
|
||||
"RotationScaling": 0,
|
||||
"Size": 1
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 0,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}]
|
||||
}, {
|
||||
"cellAttrs": {
|
||||
"hFlip": true,
|
||||
"vFlip": false,
|
||||
"hvFlip": false,
|
||||
"boundingRect": true,
|
||||
"boundingSphereRadius": 3
|
||||
},
|
||||
"maxX": 7,
|
||||
"maxY": 7,
|
||||
"minX": -8,
|
||||
"minY": -8,
|
||||
"oamCount": 1,
|
||||
"OAM": [{
|
||||
"Attr0": {
|
||||
"YCoordinate": 248,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 0
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 504,
|
||||
"RotationScaling": 8,
|
||||
"Size": 1
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 0,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}]
|
||||
}, {
|
||||
"cellAttrs": {
|
||||
"hFlip": false,
|
||||
"vFlip": false,
|
||||
"hvFlip": false,
|
||||
"boundingRect": true,
|
||||
"boundingSphereRadius": 3
|
||||
},
|
||||
"maxX": 7,
|
||||
"maxY": 7,
|
||||
"minX": -8,
|
||||
"minY": -8,
|
||||
"oamCount": 1,
|
||||
"OAM": [{
|
||||
"Attr0": {
|
||||
"YCoordinate": 248,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 0
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 504,
|
||||
"RotationScaling": 0,
|
||||
"Size": 1
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 4,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}]
|
||||
}, {
|
||||
"cellAttrs": {
|
||||
"hFlip": false,
|
||||
"vFlip": true,
|
||||
"hvFlip": false,
|
||||
"boundingRect": true,
|
||||
"boundingSphereRadius": 3
|
||||
},
|
||||
"maxX": 7,
|
||||
"maxY": 7,
|
||||
"minX": -8,
|
||||
"minY": -8,
|
||||
"oamCount": 1,
|
||||
"OAM": [{
|
||||
"Attr0": {
|
||||
"YCoordinate": 248,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 0
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 504,
|
||||
"RotationScaling": 16,
|
||||
"Size": 1
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 4,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}]
|
||||
}],
|
||||
"labels": ["CellAnime0", "CellAnime1", "CellAnime2", "CellAnime3"],
|
||||
"labelCount": 4
|
||||
}
|
||||
BIN
res/graphics/bag/pocket_selector_icons.png
Normal file
|
After Width: | Height: | Size: 445 B |
BIN
res/graphics/bag/pokeball_borders.NSCR
Normal file
259
res/graphics/bag/pokeball_borders.pal
Normal file
|
|
@ -0,0 +1,259 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
256
|
||||
0 0 0
|
||||
246 115 115
|
||||
197 164 106
|
||||
148 123 90
|
||||
238 205 123
|
||||
255 255 255
|
||||
238 197 106
|
||||
0 0 0
|
||||
189 115 90
|
||||
205 189 172
|
||||
180 164 139
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
255 32 230
|
||||
255 255 255
|
||||
90 189 222
|
||||
255 255 255
|
||||
230 230 230
|
||||
90 90 90
|
||||
197 197 197
|
||||
230 230 230
|
||||
222 222 222
|
||||
172 172 172
|
||||
131 131 131
|
||||
115 115 115
|
||||
189 180 164
|
||||
0 0 0
|
||||
148 123 90
|
||||
205 205 205
|
||||
180 180 180
|
||||
172 172 172
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
BIN
res/graphics/bag/pokeball_borders_tileset.png
Normal file
|
After Width: | Height: | Size: 1018 B |
BIN
res/graphics/bag/pokeball_inside.NSCR
Normal file
BIN
res/graphics/bag/pokeball_inside.png
Normal file
|
After Width: | Height: | Size: 906 B |
259
res/graphics/bag/ui_elements.pal
Normal file
|
|
@ -0,0 +1,259 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
256
|
||||
213 213 238
|
||||
255 0 0
|
||||
16 115 255
|
||||
16 139 255
|
||||
0 82 255
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
123 123 123
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
|
|
@ -1,3 +1,4 @@
|
|||
subdir('bag')
|
||||
subdir('diploma')
|
||||
subdir('item_icons')
|
||||
subdir('naming_screen')
|
||||
|
|
|
|||
|
|
@ -11,6 +11,16 @@ ncgr_gen = generator(nitrogfx_exe,
|
|||
output: '@BASENAME@.NCGR',
|
||||
)
|
||||
|
||||
ncgr_cell_gen = generator(nitrogfx_exe,
|
||||
arguments: [
|
||||
'@INPUT@',
|
||||
'@OUTPUT@',
|
||||
'-cell', '@CURRENT_SOURCE_DIR@/@BASENAME@_cell.json',
|
||||
'@EXTRA_ARGS@',
|
||||
],
|
||||
output: '@BASENAME@.NCGR',
|
||||
)
|
||||
|
||||
ncgr_lz_gen = generator(nitrogfx_exe,
|
||||
arguments: [ '@INPUT@', '@OUTPUT@', '@EXTRA_ARGS@', ],
|
||||
output: '@BASENAME@.NCGR.lz',
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ prebuilt_files = [
|
|||
'nutmixer.narc',
|
||||
'oekaki.narc',
|
||||
'opening.narc',
|
||||
'pl_bag_gra.narc',
|
||||
'pl_plist_gra.narc',
|
||||
'pl_wifinote.narc',
|
||||
'plist_gra.narc',
|
||||
|
|
|
|||
|
|
@ -2,236 +2,236 @@
|
|||
"key": 705,
|
||||
"messages": [
|
||||
{
|
||||
"id": "pl_msg_00000007_00000",
|
||||
"id": "Bag_Text_Use",
|
||||
"en_US": "USE"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00001",
|
||||
"id": "Bag_Text_Trash",
|
||||
"en_US": "TRASH"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00002",
|
||||
"id": "Bag_Text_Register",
|
||||
"en_US": "REGISTER"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00003",
|
||||
"id": "Bag_Text_Give",
|
||||
"en_US": "GIVE"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00004",
|
||||
"id": "Bag_Text_CheckTag",
|
||||
"en_US": "CHECK TAG"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00005",
|
||||
"id": "Bag_Text_Confirm",
|
||||
"en_US": "CONFIRM"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00006",
|
||||
"id": "Bag_Text_Walk",
|
||||
"en_US": "WALK"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00007",
|
||||
"id": "Bag_Text_Dummy1",
|
||||
"garbage": 3
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00008",
|
||||
"id": "Bag_Text_Cancel",
|
||||
"en_US": "CANCEL"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00009",
|
||||
"id": "Bag_Text_Dummy2",
|
||||
"garbage": 3
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00010",
|
||||
"id": "Bag_Text_Dummy3",
|
||||
"garbage": 3
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00011",
|
||||
"id": "Bag_Text_Dummy4",
|
||||
"garbage": 5
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00012",
|
||||
"id": "Bag_Text_Dummy5",
|
||||
"garbage": 4
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00013",
|
||||
"id": "Bag_Text_Dummy6",
|
||||
"garbage": 3
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00014",
|
||||
"id": "Bag_Text_Dummy7",
|
||||
"garbage": 4
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00015",
|
||||
"id": "Bag_Text_Dummy8",
|
||||
"garbage": 4
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00016",
|
||||
"id": "Bag_Text_Check",
|
||||
"en_US": "CHECK"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00017",
|
||||
"id": "Bag_Text_Dummy9",
|
||||
"garbage": 2
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00018",
|
||||
"id": "Bag_Text_Deselect",
|
||||
"en_US": "DESELECT"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00019",
|
||||
"id": "Bag_Text_Dummy10",
|
||||
"garbage": 3
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00020",
|
||||
"id": "Bag_Text_Dummy11",
|
||||
"garbage": 5
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00021",
|
||||
"id": "Bag_Text_Dummy12",
|
||||
"garbage": 1
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00022",
|
||||
"id": "Bag_Text_Dummy13",
|
||||
"garbage": 1
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00023",
|
||||
"id": "Bag_Text_Dummy14",
|
||||
"garbage": 2
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00024",
|
||||
"id": "Bag_Text_Not_Applicable",
|
||||
"en_US": "---"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00025",
|
||||
"id": "Bag_Text_Dummy15",
|
||||
"garbage": 1
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00026",
|
||||
"id": "Bag_Text_Dummy16",
|
||||
"garbage": 1
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00027",
|
||||
"id": "Bag_Text_Dummy17",
|
||||
"garbage": 2
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00028",
|
||||
"id": "Bag_Text_Dummy18",
|
||||
"garbage": 2
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00029",
|
||||
"id": "Bag_Text_Dummy19",
|
||||
"garbage": 1
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00030",
|
||||
"id": "Bag_Text_Dummy20",
|
||||
"garbage": 1
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00031",
|
||||
"id": "Bag_Text_Dummy21",
|
||||
"garbage": 4
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00032",
|
||||
"id": "Bag_Text_Empty",
|
||||
"garbage": 0
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00033",
|
||||
"id": "Bag_Text_Dummy22",
|
||||
"garbage": 4
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00034",
|
||||
"id": "Bag_Text_Dummy23",
|
||||
"garbage": 10
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00035",
|
||||
"id": "Bag_Text_Dummy24",
|
||||
"garbage": 9
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00036",
|
||||
"id": "Bag_Text_Dummy25",
|
||||
"garbage": 3
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00037",
|
||||
"id": "Bag_Text_ItemCountNum",
|
||||
"en_US": "{STRVAR_1 52, 0, 0}"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00038",
|
||||
"id": "Bag_Text_ItemCountX",
|
||||
"en_US": "x"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00039",
|
||||
"id": "Bag_Text_Dummy26",
|
||||
"garbage": 2
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00040",
|
||||
"id": "Bag_Text_Dummy27",
|
||||
"garbage": 7
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00041",
|
||||
"id": "Bag_Text_CloseBag",
|
||||
"en_US": "CLOSE BAG"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00042",
|
||||
"id": "Bag_Text_ItemIsSelected",
|
||||
"en_US": [
|
||||
"{STRVAR_1 8, 0, 0} is\n",
|
||||
"selected."
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00043",
|
||||
"id": "Bag_Text_Dummy28",
|
||||
"garbage": 21
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00044",
|
||||
"id": "Bag_Text_Dummy29",
|
||||
"garbage": 12
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00045",
|
||||
"id": "Bag_Text_MoveItemWhere",
|
||||
"en_US": "Move the {STRVAR_1 8, 0, 0} where?"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00046",
|
||||
"id": "Bag_Text_ItemCantBeHeld",
|
||||
"en_US": "The {STRVAR_1 8, 0, 0} can’t be held."
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00047",
|
||||
"id": "Bag_Text_Dummy30",
|
||||
"garbage": 26
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00048",
|
||||
"id": "Bag_Text_Dummy31",
|
||||
"garbage": 18
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00049",
|
||||
"id": "Bag_Text_Dummy32",
|
||||
"garbage": 20
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00050",
|
||||
"id": "Bag_Text_Dummy33",
|
||||
"garbage": 16
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00051",
|
||||
"id": "Bag_Text_Dummy34",
|
||||
"garbage": 29
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00052",
|
||||
"id": "Bag_Text_ThrowAwayHowMany",
|
||||
"en_US": [
|
||||
"Throw away how many\n",
|
||||
"{STRVAR_1 8, 0, 0}(s)?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00053",
|
||||
"id": "Bag_Text_ThrewAwayItem",
|
||||
"en_US": "Threw away {STRVAR_1 51, 1, 0} {STRVAR_1 8, 0, 0}."
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00054",
|
||||
"id": "Bag_Text_ThrowAwayOK",
|
||||
"en_US": [
|
||||
"Is it OK to throw away\n",
|
||||
"{STRVAR_1 52, 1, 0} {STRVAR_1 8, 0, 0}?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00055",
|
||||
"id": "Bag_Text_Dummy35",
|
||||
"garbage": 41
|
||||
},
|
||||
{
|
||||
|
|
@ -243,15 +243,15 @@
|
|||
"en_US": "Your Coins: {STRVAR_1 54, 0, 0}"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00058",
|
||||
"id": "Bag_Text_BootedUpTM",
|
||||
"en_US": "Booted up a TM.{WAIT 3}{WAIT 4}\n"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00059",
|
||||
"id": "Bag_Text_BootedUpHM",
|
||||
"en_US": "Booted up an HM.{WAIT 3}{WAIT 4}\n"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00060",
|
||||
"id": "Bag_Text_TMHMContainedMove",
|
||||
"en_US": [
|
||||
"It contained\n",
|
||||
"{STRVAR_1 6, 0, 0}.\r",
|
||||
|
|
@ -260,21 +260,21 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00061",
|
||||
"id": "Bag_Text_UsedRepel",
|
||||
"en_US": [
|
||||
"{STRVAR_1 3, 0, 0} used the\n",
|
||||
"{STRVAR_1 8, 1, 0}."
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00062",
|
||||
"id": "Bag_Text_RepelEffectsLinger",
|
||||
"en_US": [
|
||||
"Since a Repel’s effects still linger,\n",
|
||||
"you can’t use this now."
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00063",
|
||||
"id": "Bag_Text_UsedWhiteFlute",
|
||||
"en_US": [
|
||||
"{STRVAR_1 3, 0, 0} used the\n",
|
||||
"{STRVAR_1 8, 1, 0}.\r",
|
||||
|
|
@ -282,7 +282,7 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00064",
|
||||
"id": "Bag_Text_UsedBlackFlute",
|
||||
"en_US": [
|
||||
"{STRVAR_1 3, 0, 0} used the\n",
|
||||
"{STRVAR_1 8, 1, 0}.\r",
|
||||
|
|
@ -290,123 +290,123 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00065",
|
||||
"id": "Bag_Text_BoxFull",
|
||||
"en_US": "The Box is full."
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00066",
|
||||
"id": "Bag_Text_Dummy36",
|
||||
"garbage": 13
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00067",
|
||||
"id": "Bag_Text_Unused1",
|
||||
"en_US": "No.{STRVAR_1 51, 0, 0}{STRVAR_1 6, 1, 0}"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00068",
|
||||
"id": "Bag_Text_Unused2",
|
||||
"en_US": "No.{STRVAR_1 51, 0, 0}{STRVAR_1 6, 1, 0}"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00069",
|
||||
"id": "Bag_Text_Unused3",
|
||||
"en_US": "{STRVAR_1 51, 0, 0}{STRVAR_1 6, 1, 0}"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00070",
|
||||
"id": "Bag_Text_Dummy37",
|
||||
"garbage": 6
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00071",
|
||||
"id": "Bag_Text_Dummy38",
|
||||
"garbage": 30
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00072",
|
||||
"id": "Bag_Text_Dummy39",
|
||||
"garbage": 13
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00073",
|
||||
"id": "Bag_Text_Dummy40",
|
||||
"garbage": 23
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00074",
|
||||
"id": "Bag_Text_CantSellItem",
|
||||
"en_US": [
|
||||
"{STRVAR_1 8, 0, 0}? Oh, no.\n",
|
||||
"I can’t buy that."
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00075",
|
||||
"id": "Bag_Text_SellHowMany",
|
||||
"en_US": [
|
||||
"{STRVAR_1 8, 0, 0}?\n",
|
||||
"How many would you like to sell?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00076",
|
||||
"id": "Bag_Text_ConfirmSellPrice",
|
||||
"en_US": [
|
||||
"I can pay ${STRVAR_1 55, 0, 0}.\n",
|
||||
"Would that be OK?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00077",
|
||||
"id": "Bag_Text_TurnedOverItems",
|
||||
"en_US": [
|
||||
"Turned over the {STRVAR_1 8, 0, 0}\n",
|
||||
"and received ${STRVAR_1 55, 1, 0}."
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00078",
|
||||
"id": "Bag_Text_MoneyLabel",
|
||||
"en_US": "MONEY"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00079",
|
||||
"id": "Bag_Text_MoneyNum",
|
||||
"en_US": "${STRVAR_1 55, 0, 0}"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00080",
|
||||
"id": "Bag_Text_SellNum",
|
||||
"en_US": "x{STRVAR_1 51, 0, 0}"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00081",
|
||||
"id": "Bag_Text_SellValue",
|
||||
"en_US": "${STRVAR_1 55, 0, 0}"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00082",
|
||||
"id": "Bag_Text_Yes",
|
||||
"en_US": "Yes"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00083",
|
||||
"id": "Bag_Text_No",
|
||||
"en_US": "No"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00084",
|
||||
"id": "Bag_Text_ThrowAwayCount",
|
||||
"en_US": "x{STRVAR_1 52, 0, 0}"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00085",
|
||||
"id": "Bag_Text_Dummy41",
|
||||
"garbage": 4
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00086",
|
||||
"id": "Bag_Text_PP",
|
||||
"en_US": "PP"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00087",
|
||||
"id": "Bag_Text_Power",
|
||||
"en_US": "POWER"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00088",
|
||||
"id": "Bag_Text_Accuracy",
|
||||
"en_US": "ACCURACY"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00089",
|
||||
"id": "Bag_Text_Category",
|
||||
"en_US": "CATEGORY"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00090",
|
||||
"id": "Bag_Text_MaxPPNum",
|
||||
"en_US": "{STRVAR_1 51, 0, 0}"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00091",
|
||||
"id": "Bag_Text_PowerAccuracyNum",
|
||||
"en_US": "{STRVAR_1 52, 0, 0}"
|
||||
},
|
||||
{
|
||||
|
|
@ -421,15 +421,15 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00094",
|
||||
"id": "Bag_Text_CloseBagDescription",
|
||||
"en_US": "Close Bag"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00095",
|
||||
"id": "Bag_Text_Plant",
|
||||
"en_US": "PLANT"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00096",
|
||||
"id": "Bag_Text_Open",
|
||||
"en_US": "OPEN"
|
||||
},
|
||||
{
|
||||
|
|
@ -440,7 +440,7 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00098",
|
||||
"id": "Bag_Text_Type",
|
||||
"en_US": "TYPE"
|
||||
},
|
||||
{
|
||||
|
|
@ -451,31 +451,31 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00100",
|
||||
"id": "Bag_Text_Dummy42",
|
||||
"garbage": 18
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00101",
|
||||
"id": "Bag_Text_Dummy43",
|
||||
"garbage": 14
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00102",
|
||||
"id": "Bag_Text_Dummy44",
|
||||
"garbage": 20
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00103",
|
||||
"id": "Bag_Text_Dummy45",
|
||||
"garbage": 10
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00104",
|
||||
"id": "Bag_Text_Dummy46",
|
||||
"garbage": 15
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00105",
|
||||
"id": "Bag_Text_Dummy47",
|
||||
"garbage": 29
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00106",
|
||||
"id": "Bag_Text_BatteryHasRunDry",
|
||||
"en_US": [
|
||||
"The battery has run dry!\n",
|
||||
"For it to recharge, you need to walk\f",
|
||||
|
|
@ -483,19 +483,19 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00107",
|
||||
"id": "Bag_Text_GrassyPatchRemainedQuiet",
|
||||
"en_US": "The grassy patch remained quiet..."
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00108",
|
||||
"id": "Bag_Text_PoffinCountLabel",
|
||||
"en_US": "No. of Poffins:"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00109",
|
||||
"id": "Bag_Text_PoffinCountNum",
|
||||
"en_US": "{STRVAR_1 52, 0, 0}/100"
|
||||
},
|
||||
{
|
||||
"id": "pl_msg_00000007_00110",
|
||||
"id": "Bag_Text_ChooseBerryToCook",
|
||||
"en_US": [
|
||||
"Please choose the Berry you want to\n",
|
||||
"cook from your Bag."
|
||||
|
|
|
|||
3135
src/applications/bag/main.c
Normal file
455
src/applications/bag/sprites.c
Normal file
|
|
@ -0,0 +1,455 @@
|
|||
#include "applications/bag/sprites.h"
|
||||
|
||||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "constants/narc.h"
|
||||
#include "generated/pokemon_types.h"
|
||||
|
||||
#include "applications/bag/main.h"
|
||||
|
||||
#include "bag_context.h"
|
||||
#include "genders.h"
|
||||
#include "gx_layers.h"
|
||||
#include "item.h"
|
||||
#include "move_classes.h"
|
||||
#include "move_table.h"
|
||||
#include "sprite.h"
|
||||
#include "sprite_system.h"
|
||||
#include "type_icon.h"
|
||||
#include "vram_transfer.h"
|
||||
|
||||
#include "res/graphics/bag/bag_graphics.naix.h"
|
||||
#include "res/graphics/shop_menu/shop_gra.naix.h"
|
||||
|
||||
static void InitSpriteSystem(BagController *controller);
|
||||
static void LoadSpriteResources(BagController *controller);
|
||||
static void InitSprites(BagController *controller);
|
||||
static void CalcPocketHighlightMovement(BagController *controller);
|
||||
static u8 CalcPocketHighlightXForPocket(BagController *controller, u8 pocketIdx);
|
||||
static void StepPocketHighlightMovingAnim(BagController *controller);
|
||||
|
||||
static const SpriteTemplate sBagUISpriteTemplates[] = {
|
||||
[BAG_SPRITE_BAG] = {
|
||||
.x = 48,
|
||||
.y = 50,
|
||||
.z = 0,
|
||||
.animIdx = 0,
|
||||
.priority = 1,
|
||||
.plttIdx = 0,
|
||||
.vramType = NNS_G2D_VRAM_TYPE_2DMAIN,
|
||||
.resources = { 49401, 49401, 49401, 49401, 0, 0 },
|
||||
.bgPriority = 1,
|
||||
.vramTransfer = FALSE,
|
||||
},
|
||||
[BAG_SPRITE_POCKET_HIGHLIGHT] = {
|
||||
.x = 13,
|
||||
.y = 97,
|
||||
.z = 0,
|
||||
.animIdx = 0,
|
||||
.priority = 0,
|
||||
.plttIdx = 0,
|
||||
.vramType = NNS_G2D_VRAM_TYPE_2DMAIN,
|
||||
.resources = { 49402, 49402, 49402, 49402, 0, 0 },
|
||||
.bgPriority = 0,
|
||||
.vramTransfer = FALSE,
|
||||
},
|
||||
[BAG_SPRITE_POCKET_SELECTOR_LEFT_ARROW] = {
|
||||
.x = 2,
|
||||
.y = 96,
|
||||
.z = 0,
|
||||
.animIdx = 1,
|
||||
.priority = 0,
|
||||
.plttIdx = 0,
|
||||
.vramType = NNS_G2D_VRAM_TYPE_2DMAIN,
|
||||
.resources = { 49405, 49402, 49405, 49405, 0, 0 },
|
||||
.bgPriority = 0,
|
||||
.vramTransfer = FALSE,
|
||||
},
|
||||
[BAG_SPRITE_POCKET_SELECTOR_RIGHT_ARROW] = {
|
||||
.x = 98,
|
||||
.y = 96,
|
||||
.z = 0,
|
||||
.animIdx = 0,
|
||||
.priority = 0,
|
||||
.plttIdx = 0,
|
||||
.vramType = NNS_G2D_VRAM_TYPE_2DMAIN,
|
||||
.resources = { 49405, 49402, 49405, 49405, 0, 0 },
|
||||
.bgPriority = 0,
|
||||
.vramTransfer = FALSE,
|
||||
},
|
||||
[BAG_SPRITE_ITEM_HIGHLIGHT] = {
|
||||
.x = 177,
|
||||
.y = 24,
|
||||
.z = 0,
|
||||
.animIdx = 0,
|
||||
.priority = 0,
|
||||
.plttIdx = 0,
|
||||
.vramType = NNS_G2D_VRAM_TYPE_2DMAIN,
|
||||
.resources = { 49403, 49402, 49403, 49403, 0, 0 },
|
||||
.bgPriority = 1,
|
||||
.vramTransfer = FALSE,
|
||||
},
|
||||
[BAG_SPRITE_MOVING_ITEM_POS_BAR] = {
|
||||
.x = 177,
|
||||
.y = 14,
|
||||
.z = 0,
|
||||
.animIdx = 0,
|
||||
.priority = 0,
|
||||
.plttIdx = 0,
|
||||
.vramType = NNS_G2D_VRAM_TYPE_2DMAIN,
|
||||
.resources = { 49404, 49402, 49404, 49404, 0, 0 },
|
||||
.bgPriority = 1,
|
||||
.vramTransfer = FALSE,
|
||||
},
|
||||
[BAG_SPRITE_PRESSED_BUTTON_SHOCKWAVE] = {
|
||||
.x = 0,
|
||||
.y = 0,
|
||||
.z = 0,
|
||||
.animIdx = 0,
|
||||
.priority = 0,
|
||||
.plttIdx = 0,
|
||||
.vramType = NNS_G2D_VRAM_TYPE_2DSUB,
|
||||
.resources = { 49406, 49403, 49406, 49406, 0, 0 },
|
||||
.bgPriority = 0,
|
||||
.vramTransfer = FALSE,
|
||||
},
|
||||
[BAG_SPRITE_ITEM] = {
|
||||
.x = 22,
|
||||
.y = 172,
|
||||
.z = 0,
|
||||
.animIdx = 0,
|
||||
.priority = 0,
|
||||
.plttIdx = 0,
|
||||
.vramType = NNS_G2D_VRAM_TYPE_2DMAIN,
|
||||
.resources = { 49407, 49404, 49407, 49407, 0, 0 },
|
||||
.bgPriority = 1,
|
||||
.vramTransfer = FALSE,
|
||||
},
|
||||
[BAG_SPRITE_ITEM_COUNT_ARROW_UP] = {
|
||||
.x = 220,
|
||||
.y = 156,
|
||||
.z = 0,
|
||||
.animIdx = 0,
|
||||
.priority = 0,
|
||||
.plttIdx = 0,
|
||||
.vramType = NNS_G2D_VRAM_TYPE_2DMAIN,
|
||||
.resources = { 49408, 49405, 49408, 49408, 0, 0 },
|
||||
.bgPriority = 0,
|
||||
.vramTransfer = FALSE,
|
||||
},
|
||||
[BAG_SPRITE_ITEM_COUNT_ARROW_DOWN] = {
|
||||
.x = 220,
|
||||
.y = 180,
|
||||
.z = 0,
|
||||
.animIdx = 1,
|
||||
.priority = 0,
|
||||
.plttIdx = 0,
|
||||
.vramType = NNS_G2D_VRAM_TYPE_2DMAIN,
|
||||
.resources = { 49408, 49405, 49408, 49408, 0, 0 },
|
||||
.bgPriority = 0,
|
||||
.vramTransfer = FALSE,
|
||||
},
|
||||
[BAG_SPRITE_MOVE_TYPE] = {
|
||||
.x = 64,
|
||||
.y = 152,
|
||||
.z = 0,
|
||||
.animIdx = 0,
|
||||
.priority = 0,
|
||||
.plttIdx = 0,
|
||||
.vramType = NNS_G2D_VRAM_TYPE_2DMAIN,
|
||||
.resources = { 49409, 49406, 49409, 49409, 0, 0 },
|
||||
.bgPriority = 0,
|
||||
.vramTransfer = FALSE,
|
||||
},
|
||||
[BAG_SPRITE_MOVE_CATEGORY] = {
|
||||
.x = 168,
|
||||
.y = 152,
|
||||
.z = 0,
|
||||
.animIdx = 0,
|
||||
.priority = 0,
|
||||
.plttIdx = 0,
|
||||
.vramType = NNS_G2D_VRAM_TYPE_2DMAIN,
|
||||
.resources = { 49410, 49406, 49409, 49409, 0, 0 },
|
||||
.bgPriority = 0,
|
||||
.vramTransfer = FALSE,
|
||||
},
|
||||
};
|
||||
|
||||
void BagUI_InitSprites(BagController *controller)
|
||||
{
|
||||
GXLayers_EngineAToggleLayers(GX_PLANEMASK_OBJ, TRUE);
|
||||
GXLayers_EngineBToggleLayers(GX_PLANEMASK_OBJ, TRUE);
|
||||
VramTransfer_New(32, HEAP_ID_BAG);
|
||||
InitSpriteSystem(controller);
|
||||
LoadSpriteResources(controller);
|
||||
InitSprites(controller);
|
||||
}
|
||||
|
||||
static void InitSpriteSystem(BagController *controller)
|
||||
{
|
||||
SpriteResourceCapacities capacities = { 10, 6, 9, 9, 0, 0 };
|
||||
|
||||
controller->spriteSystem = SpriteSystem_Alloc(HEAP_ID_BAG);
|
||||
controller->spriteMan = SpriteManager_New(controller->spriteSystem);
|
||||
|
||||
RenderOamTemplate oamTemplate = {
|
||||
.mainOamStart = 0,
|
||||
.mainOamCount = 128,
|
||||
.mainAffineOamStart = 0,
|
||||
.mainAffineOamCount = 32,
|
||||
.subOamStart = 0,
|
||||
.subOamCount = 128,
|
||||
.subAffineOamStart = 0,
|
||||
.subAffineOamCount = 32,
|
||||
};
|
||||
|
||||
CharTransferTemplateWithModes transferTemplate = {
|
||||
.maxTasks = 12,
|
||||
.sizeMain = 1024 * 128,
|
||||
.sizeSub = 1024 * 16,
|
||||
.modeMain = GX_OBJVRAMMODE_CHAR_1D_32K,
|
||||
.modeSub = GX_OBJVRAMMODE_CHAR_1D_32K
|
||||
};
|
||||
|
||||
SpriteSystem_Init(controller->spriteSystem, &oamTemplate, &transferTemplate, 32);
|
||||
|
||||
SpriteSystem_InitSprites(controller->spriteSystem, controller->spriteMan, NUM_BAG_UI_SPRITES);
|
||||
SpriteSystem_InitManagerWithCapacities(controller->spriteSystem, controller->spriteMan, &capacities);
|
||||
}
|
||||
|
||||
static void LoadSpriteResources(BagController *controller)
|
||||
{
|
||||
u32 bagSpriteIdx, bagPaletteIdx;
|
||||
|
||||
if (controller->trainerGender == GENDER_MALE) {
|
||||
bagSpriteIdx = bag_sprite_male_NCGR;
|
||||
bagPaletteIdx = bag_sprite_male_NCLR;
|
||||
} else {
|
||||
bagSpriteIdx = bag_sprite_female_NCGR;
|
||||
bagPaletteIdx = bag_sprite_female_NCLR;
|
||||
}
|
||||
|
||||
SpriteSystem_LoadCharResObjFromOpenNarc(controller->spriteSystem, controller->spriteMan, controller->bagGraphicsNARC, bagSpriteIdx, FALSE, NNS_G2D_VRAM_TYPE_2DMAIN, 49401);
|
||||
SpriteSystem_LoadCharResObjFromOpenNarc(controller->spriteSystem, controller->spriteMan, controller->bagGraphicsNARC, pocket_highlight_NCGR, FALSE, NNS_G2D_VRAM_TYPE_2DMAIN, 49402);
|
||||
SpriteSystem_LoadCharResObjFromOpenNarc(controller->spriteSystem, controller->spriteMan, controller->bagGraphicsNARC, item_highlight_NCGR, FALSE, NNS_G2D_VRAM_TYPE_2DMAIN, 49403);
|
||||
SpriteSystem_LoadCharResObjFromOpenNarc(controller->spriteSystem, controller->spriteMan, controller->bagGraphicsNARC, moving_item_pos_bar_NCGR, FALSE, NNS_G2D_VRAM_TYPE_2DMAIN, 49404);
|
||||
SpriteSystem_LoadCharResObjFromOpenNarc(controller->spriteSystem, controller->spriteMan, controller->bagGraphicsNARC, pocket_selector_arrows_NCGR, FALSE, NNS_G2D_VRAM_TYPE_2DMAIN, 49405);
|
||||
SpriteSystem_LoadCharResObjFromOpenNarc(controller->spriteSystem, controller->spriteMan, controller->bagGraphicsNARC, button_shockwave_NCGR, FALSE, NNS_G2D_VRAM_TYPE_2DSUB, 49406);
|
||||
SpriteSystem_LoadCharResObj(controller->spriteSystem, controller->spriteMan, NARC_INDEX_GRAPHIC__SHOP_GRA, scroll_arrow_NCGR, FALSE, NNS_G2D_VRAM_TYPE_2DMAIN, 49408);
|
||||
SpriteSystem_LoadCharResObj(controller->spriteSystem, controller->spriteMan, NARC_INDEX_ITEMTOOL__ITEMDATA__ITEM_ICON, Item_FileID(ITEM_NONE, ITEM_FILE_TYPE_ICON), FALSE, NNS_G2D_VRAM_TYPE_2DMAIN, 49407);
|
||||
TypeIcon_LoadChar(controller->spriteSystem, controller->spriteMan, NNS_G2D_VRAM_TYPE_2DMAIN, TYPE_NORMAL, 49409);
|
||||
CategoryIcon_LoadChar(controller->spriteSystem, controller->spriteMan, NNS_G2D_VRAM_TYPE_2DMAIN, CLASS_PHYSICAL, 49410);
|
||||
SpriteSystem_LoadPlttResObjFromOpenNarc(controller->spriteSystem, controller->spriteMan, controller->bagGraphicsNARC, bagPaletteIdx, FALSE, PLTT_1, NNS_G2D_VRAM_TYPE_2DMAIN, 49401);
|
||||
SpriteSystem_LoadPlttResObjFromOpenNarc(controller->spriteSystem, controller->spriteMan, controller->bagGraphicsNARC, ui_elements_NCLR, FALSE, PLTT_2, NNS_G2D_VRAM_TYPE_2DMAIN, 49402);
|
||||
SpriteSystem_LoadPlttResObj(controller->spriteSystem, controller->spriteMan, NARC_INDEX_ITEMTOOL__ITEMDATA__ITEM_ICON, Item_FileID(ITEM_NONE, ITEM_FILE_TYPE_PALETTE), FALSE, PLTT_1, NNS_G2D_VRAM_TYPE_2DMAIN, 49404);
|
||||
SpriteSystem_LoadPlttResObj(controller->spriteSystem, controller->spriteMan, NARC_INDEX_GRAPHIC__SHOP_GRA, sprites_NCLR, FALSE, PLTT_2, NNS_G2D_VRAM_TYPE_2DMAIN, 49405);
|
||||
TypeIcon_LoadPlttSrc(controller->spriteSystem, controller->spriteMan, NNS_G2D_VRAM_TYPE_2DMAIN, 49406);
|
||||
SpriteSystem_LoadPlttResObjFromOpenNarc(controller->spriteSystem, controller->spriteMan, controller->bagGraphicsNARC, button_shockwave_NCLR, FALSE, PLTT_1, NNS_G2D_VRAM_TYPE_2DSUB, 49403);
|
||||
SpriteSystem_LoadCellResObjFromOpenNarc(controller->spriteSystem, controller->spriteMan, controller->bagGraphicsNARC, bag_sprite_cell_NCER, FALSE, 49401);
|
||||
SpriteSystem_LoadCellResObjFromOpenNarc(controller->spriteSystem, controller->spriteMan, controller->bagGraphicsNARC, pocket_highlight_cell_NCER, FALSE, 49402);
|
||||
SpriteSystem_LoadCellResObjFromOpenNarc(controller->spriteSystem, controller->spriteMan, controller->bagGraphicsNARC, item_highlight_cell_NCER, FALSE, 49403);
|
||||
SpriteSystem_LoadCellResObjFromOpenNarc(controller->spriteSystem, controller->spriteMan, controller->bagGraphicsNARC, moving_item_pos_bar_cell_NCER, FALSE, 49404);
|
||||
SpriteSystem_LoadCellResObjFromOpenNarc(controller->spriteSystem, controller->spriteMan, controller->bagGraphicsNARC, pocket_selector_arrows_cell_NCER, FALSE, 49405);
|
||||
SpriteSystem_LoadCellResObjFromOpenNarc(controller->spriteSystem, controller->spriteMan, controller->bagGraphicsNARC, button_shockwave_cell_NCER, FALSE, 49406);
|
||||
SpriteSystem_LoadCellResObj(controller->spriteSystem, controller->spriteMan, NARC_INDEX_ITEMTOOL__ITEMDATA__ITEM_ICON, Item_IconNCERFile(), FALSE, 49407);
|
||||
SpriteSystem_LoadCellResObj(controller->spriteSystem, controller->spriteMan, NARC_INDEX_GRAPHIC__SHOP_GRA, scroll_arrow_cell_NCER, FALSE, 49408);
|
||||
SpriteSystem_LoadAnimResObjFromOpenNarc(controller->spriteSystem, controller->spriteMan, controller->bagGraphicsNARC, bag_sprite_anim_NANR, FALSE, 49401);
|
||||
SpriteSystem_LoadAnimResObjFromOpenNarc(controller->spriteSystem, controller->spriteMan, controller->bagGraphicsNARC, pocket_highlight_anim_NANR, FALSE, 49402);
|
||||
SpriteSystem_LoadAnimResObjFromOpenNarc(controller->spriteSystem, controller->spriteMan, controller->bagGraphicsNARC, item_highlight_anim_NANR, FALSE, 49403);
|
||||
SpriteSystem_LoadAnimResObjFromOpenNarc(controller->spriteSystem, controller->spriteMan, controller->bagGraphicsNARC, moving_item_pos_bar_anim_NANR, FALSE, 49404);
|
||||
SpriteSystem_LoadAnimResObjFromOpenNarc(controller->spriteSystem, controller->spriteMan, controller->bagGraphicsNARC, pocket_selector_arrows_anim_NANR, FALSE, 49405);
|
||||
SpriteSystem_LoadAnimResObjFromOpenNarc(controller->spriteSystem, controller->spriteMan, controller->bagGraphicsNARC, button_shockwave_anim_NANR, FALSE, 49406);
|
||||
SpriteSystem_LoadAnimResObj(controller->spriteSystem, controller->spriteMan, NARC_INDEX_ITEMTOOL__ITEMDATA__ITEM_ICON, Item_IconNANRFile(), FALSE, 49407);
|
||||
SpriteSystem_LoadAnimResObj(controller->spriteSystem, controller->spriteMan, NARC_INDEX_GRAPHIC__SHOP_GRA, scroll_arrow_anim_NANR, FALSE, 49408);
|
||||
TypeIcon_LoadAnim(controller->spriteSystem, controller->spriteMan, 49409, 49409);
|
||||
}
|
||||
|
||||
static void InitSprites(BagController *interface)
|
||||
{
|
||||
for (u32 i = 0; i < NUM_BAG_UI_SPRITES; i++) {
|
||||
interface->sprites[i] = SpriteSystem_NewSprite(interface->spriteSystem, interface->spriteMan, &sBagUISpriteTemplates[i]);
|
||||
}
|
||||
|
||||
ManagedSprite_SetDrawFlag(interface->sprites[BAG_SPRITE_MOVING_ITEM_POS_BAR], FALSE);
|
||||
ManagedSprite_SetDrawFlag(interface->sprites[BAG_SPRITE_PRESSED_BUTTON_SHOCKWAVE], FALSE);
|
||||
ManagedSprite_SetDrawFlag(interface->sprites[BAG_SPRITE_MOVE_TYPE], FALSE);
|
||||
ManagedSprite_SetDrawFlag(interface->sprites[BAG_SPRITE_MOVE_CATEGORY], FALSE);
|
||||
|
||||
if ((interface->bagCtx->mode == 4) || (interface->bagCtx->mode == 5)) {
|
||||
ManagedSprite_SetDrawFlag(interface->sprites[BAG_SPRITE_POCKET_HIGHLIGHT], FALSE);
|
||||
}
|
||||
|
||||
if (interface->numPockets == 1) {
|
||||
ManagedSprite_SetDrawFlag(interface->sprites[BAG_SPRITE_POCKET_SELECTOR_LEFT_ARROW], FALSE);
|
||||
ManagedSprite_SetDrawFlag(interface->sprites[BAG_SPRITE_POCKET_SELECTOR_RIGHT_ARROW], FALSE);
|
||||
}
|
||||
|
||||
BagUI_ToggleItemCountArrows(interface, FALSE);
|
||||
|
||||
ManagedSprite_SetAnim(interface->sprites[BAG_SPRITE_BAG], interface->bagCtx->accessiblePockets[interface->bagCtx->currPocketIdx].pocketType);
|
||||
ManagedSprite_SetPositionXY(interface->sprites[BAG_SPRITE_POCKET_HIGHLIGHT], CalcPocketHighlightXForPocket(interface, interface->bagCtx->currPocketIdx), 97);
|
||||
ManagedSprite_SetPositionXY(interface->sprites[BAG_SPRITE_ITEM_HIGHLIGHT], 177, 24 + (interface->bagCtx->accessiblePockets[interface->bagCtx->currPocketIdx].cursorPos - 1) * 16);
|
||||
|
||||
VecFx32 spriteScale = { FX32_ONE, FX32_ONE, FX32_ONE };
|
||||
Sprite_SetAffineScaleEx(interface->sprites[BAG_SPRITE_BAG]->sprite, &spriteScale, AFFINE_OVERWRITE_MODE_DOUBLE);
|
||||
}
|
||||
|
||||
void BagUI_FreeSprites(BagController *controller)
|
||||
{
|
||||
for (u32 i = 0; i < NUM_BAG_UI_SPRITES; i++) {
|
||||
Sprite_DeleteAndFreeResources(controller->sprites[i]);
|
||||
}
|
||||
|
||||
SpriteSystem_FreeResourcesAndManager(controller->spriteSystem, controller->spriteMan);
|
||||
SpriteSystem_Free(controller->spriteSystem);
|
||||
}
|
||||
|
||||
void BagUI_TickSpriteAnimations(BagController *controller)
|
||||
{
|
||||
for (u32 i = 0; i < NUM_BAG_UI_SPRITES; i++) {
|
||||
ManagedSprite_TickFrame(controller->sprites[i]);
|
||||
}
|
||||
}
|
||||
|
||||
void BagUI_UpdateItemSprite(BagController *controller, u16 item)
|
||||
{
|
||||
SpriteSystem_ReplaceCharResObj(controller->spriteSystem, controller->spriteMan, NARC_INDEX_ITEMTOOL__ITEMDATA__ITEM_ICON, Item_FileID(item, ITEM_FILE_TYPE_ICON), FALSE, 49407);
|
||||
SpriteSystem_ReplacePlttResObj(controller->spriteSystem, controller->spriteMan, NARC_INDEX_ITEMTOOL__ITEMDATA__ITEM_ICON, Item_FileID(item, ITEM_FILE_TYPE_PALETTE), FALSE, 49404);
|
||||
}
|
||||
|
||||
void BagUI_SetHighlightSpritesPalette(BagController *controller, u8 palette)
|
||||
{
|
||||
ManagedSprite_SetExplicitPalette(controller->sprites[BAG_SPRITE_ITEM_HIGHLIGHT], palette);
|
||||
ManagedSprite_SetExplicitPalette(controller->sprites[BAG_SPRITE_POCKET_HIGHLIGHT], palette);
|
||||
}
|
||||
|
||||
u8 BagUI_IsPocketHighlightDoneMoving(BagController *controller)
|
||||
{
|
||||
return controller->pocketHighlight.isMoving == FALSE;
|
||||
}
|
||||
|
||||
void BagUI_StartMovingPocketHighlight(BagController *controller)
|
||||
{
|
||||
controller->pocketHighlight.currentStep = 0;
|
||||
controller->pocketHighlight.isMoving = TRUE;
|
||||
|
||||
CalcPocketHighlightMovement(controller);
|
||||
}
|
||||
|
||||
void BagUI_StepPocketHighlightMovement(BagController *controller)
|
||||
{
|
||||
switch (controller->pocketHighlight.isMoving) {
|
||||
case FALSE:
|
||||
break;
|
||||
case TRUE:
|
||||
StepPocketHighlightMovingAnim(controller);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void StepPocketHighlightMovingAnim(BagController *controller)
|
||||
{
|
||||
VecFx32 pocketHighlighPos = *(Sprite_GetPosition(controller->sprites[BAG_SPRITE_POCKET_HIGHLIGHT]->sprite));
|
||||
|
||||
if (controller->pocketHighlight.direction == 0) {
|
||||
pocketHighlighPos.x -= controller->pocketHighlight.positions[controller->pocketHighlight.currentStep];
|
||||
} else {
|
||||
pocketHighlighPos.x += controller->pocketHighlight.positions[controller->pocketHighlight.currentStep];
|
||||
}
|
||||
|
||||
Sprite_SetPosition(controller->sprites[BAG_SPRITE_POCKET_HIGHLIGHT]->sprite, &pocketHighlighPos);
|
||||
controller->pocketHighlight.currentStep++;
|
||||
|
||||
if (controller->pocketHighlight.currentStep == 8) {
|
||||
pocketHighlighPos.x = CalcPocketHighlightXForPocket(controller, controller->nextPocket) * FX32_ONE;
|
||||
Sprite_SetPosition(controller->sprites[BAG_SPRITE_POCKET_HIGHLIGHT]->sprite, &pocketHighlighPos);
|
||||
controller->pocketHighlight.isMoving = 0;
|
||||
}
|
||||
}
|
||||
|
||||
static u8 CalcPocketHighlightXForPocket(BagController *controller, u8 pocketIdx)
|
||||
{
|
||||
return controller->pocketSelectorIconsX + controller->pocketSelectorIconsSpacing * pocketIdx + 6;
|
||||
}
|
||||
|
||||
static void CalcPocketHighlightMovement(BagController *controller)
|
||||
{
|
||||
VecFx32 pocketHighlighterPos = *(Sprite_GetPosition(controller->sprites[BAG_SPRITE_POCKET_HIGHLIGHT]->sprite));
|
||||
fx32 targetX = CalcPocketHighlightXForPocket(controller, controller->nextPocket) * FX32_ONE;
|
||||
|
||||
fx32 displacement;
|
||||
if (targetX < pocketHighlighterPos.x) {
|
||||
displacement = (pocketHighlighterPos.x - targetX) / 100;
|
||||
controller->pocketHighlight.direction = 0;
|
||||
} else {
|
||||
displacement = (targetX - pocketHighlighterPos.x) / 100;
|
||||
controller->pocketHighlight.direction = 1;
|
||||
}
|
||||
|
||||
controller->pocketHighlight.positions[0] = 0;
|
||||
controller->pocketHighlight.positions[1] = displacement * 40;
|
||||
controller->pocketHighlight.positions[2] = displacement * 25;
|
||||
controller->pocketHighlight.positions[3] = displacement * 15;
|
||||
controller->pocketHighlight.positions[4] = displacement * 10;
|
||||
controller->pocketHighlight.positions[5] = displacement * 7;
|
||||
controller->pocketHighlight.positions[6] = displacement * 3;
|
||||
controller->pocketHighlight.positions[7] = 0;
|
||||
}
|
||||
|
||||
void BagUI_ShowItemCountArrows(BagController *controller, u8 position)
|
||||
{
|
||||
if (position == BAG_ITEM_COUNT_ARROWS_POS_TRASH) {
|
||||
ManagedSprite_SetPositionXY(controller->sprites[BAG_SPRITE_ITEM_COUNT_ARROW_UP], 220, 156);
|
||||
ManagedSprite_SetPositionXY(controller->sprites[BAG_SPRITE_ITEM_COUNT_ARROW_DOWN], 220, 180);
|
||||
} else {
|
||||
ManagedSprite_SetPositionXY(controller->sprites[BAG_SPRITE_ITEM_COUNT_ARROW_UP], 162, 108);
|
||||
ManagedSprite_SetPositionXY(controller->sprites[BAG_SPRITE_ITEM_COUNT_ARROW_DOWN], 162, 132);
|
||||
}
|
||||
|
||||
BagUI_ToggleItemCountArrows(controller, TRUE);
|
||||
}
|
||||
|
||||
void BagUI_ToggleItemCountArrows(BagController *controller, u8 show)
|
||||
{
|
||||
ManagedSprite_SetDrawFlag(controller->sprites[BAG_SPRITE_ITEM_COUNT_ARROW_UP], show);
|
||||
ManagedSprite_SetDrawFlag(controller->sprites[BAG_SPRITE_ITEM_COUNT_ARROW_DOWN], show);
|
||||
}
|
||||
|
||||
void BagUI_UpdateTypeAndCategoryIcons(BagController *controller, u16 item, u8 draw)
|
||||
{
|
||||
ManagedSprite_SetDrawFlag(controller->sprites[BAG_SPRITE_MOVE_TYPE], draw);
|
||||
ManagedSprite_SetDrawFlag(controller->sprites[BAG_SPRITE_MOVE_CATEGORY], draw);
|
||||
|
||||
if (draw == FALSE) {
|
||||
return;
|
||||
}
|
||||
|
||||
u16 move = Item_MoveForTMHM(item);
|
||||
u16 moveType = MoveTable_LoadParam(move, MOVEATTRIBUTE_TYPE);
|
||||
u16 moveCategory = MoveTable_LoadParam(move, MOVEATTRIBUTE_CLASS);
|
||||
|
||||
SpriteSystem_ReplaceCharResObj(controller->spriteSystem, controller->spriteMan, TypeIcon_GetNARC(), TypeIcon_GetChar(moveType), TRUE, 49409);
|
||||
ManagedSprite_SetExplicitPalette(controller->sprites[BAG_SPRITE_MOVE_TYPE], TypeIcon_GetPltt(moveType) + 6);
|
||||
SpriteSystem_ReplaceCharResObj(controller->spriteSystem, controller->spriteMan, CategoryIcon_GetNARC(), CategoryIcon_GetChar(moveCategory), TRUE, 49410);
|
||||
ManagedSprite_SetExplicitPalette(controller->sprites[BAG_SPRITE_MOVE_CATEGORY], CategoryIcon_GetPltt(moveCategory) + 6);
|
||||
}
|
||||
|
||||
void BagUI_DrawBtnShockwave(BagController *controller, s16 x, s16 y)
|
||||
{
|
||||
ManagedSprite_SetDrawFlag(controller->sprites[BAG_SPRITE_PRESSED_BUTTON_SHOCKWAVE], TRUE);
|
||||
ManagedSprite_SetPositionXY(controller->sprites[BAG_SPRITE_PRESSED_BUTTON_SHOCKWAVE], x, y);
|
||||
ManagedSprite_SetAnimationFrame(controller->sprites[BAG_SPRITE_PRESSED_BUTTON_SHOCKWAVE], 0);
|
||||
ManagedSprite_SetAnim(controller->sprites[BAG_SPRITE_PRESSED_BUTTON_SHOCKWAVE], 0);
|
||||
}
|
||||
|
||||
void BagUI_TickBtnShockwaveAnim(BagController *controller)
|
||||
{
|
||||
if (ManagedSprite_GetDrawFlag(controller->sprites[BAG_SPRITE_PRESSED_BUTTON_SHOCKWAVE]) == TRUE) {
|
||||
ManagedSprite_TickNFrames(controller->sprites[BAG_SPRITE_PRESSED_BUTTON_SHOCKWAVE], FX32_ONE);
|
||||
|
||||
if (ManagedSprite_GetAnimationFrame(controller->sprites[BAG_SPRITE_PRESSED_BUTTON_SHOCKWAVE]) == 2) {
|
||||
ManagedSprite_SetDrawFlag(controller->sprites[BAG_SPRITE_PRESSED_BUTTON_SHOCKWAVE], FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
673
src/applications/bag/windows.c
Normal file
|
|
@ -0,0 +1,673 @@
|
|||
#include "applications/bag/windows.h"
|
||||
|
||||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "applications/bag/main.h"
|
||||
#include "applications/bag/sprites.h"
|
||||
|
||||
#include "bag.h"
|
||||
#include "bag_context.h"
|
||||
#include "bg_window.h"
|
||||
#include "font.h"
|
||||
#include "font_special_chars.h"
|
||||
#include "game_options.h"
|
||||
#include "heap.h"
|
||||
#include "item.h"
|
||||
#include "menu.h"
|
||||
#include "message.h"
|
||||
#include "move_table.h"
|
||||
#include "narc.h"
|
||||
#include "poffin.h"
|
||||
#include "render_text.h"
|
||||
#include "render_window.h"
|
||||
#include "sound_playback.h"
|
||||
#include "strbuf.h"
|
||||
#include "string_list.h"
|
||||
#include "string_template.h"
|
||||
#include "text.h"
|
||||
#include "trainer_info.h"
|
||||
|
||||
#include "res/graphics/bag/bag_graphics.naix.h"
|
||||
#include "res/text/bank/bag.h"
|
||||
|
||||
#define ITEM_LIST_WINDOW_WIDTH 17
|
||||
#define ITEM_LIST_WINDOW_HEIGHT TEXT_LINES_TILES(BAG_UI_NUM_VISIBLE_ITEMS)
|
||||
#define ITEM_DESCRIPTION_WINDOW_WIDTH (HW_LCD_WIDTH / TILE_WIDTH_PIXELS)
|
||||
#define ITEM_DESCRIPTION_WINDOW_HEIGHT TEXT_LINES_TILES(3)
|
||||
#define MSG_BOX_WINDOW_WIDTH 14
|
||||
#define MSG_BOX_NARROW_WINDOW_WIDTH 13
|
||||
#define MSG_BOX_WIDE_WINDOW_WIDTH 27
|
||||
#define MSG_BOX_WINDOW_HEIGHT TEXT_LINES_TILES(2)
|
||||
#define POCKET_SELECTOR_WINDOW_WIDTH 12
|
||||
#define POCKET_SELECTOR_WINDOW_HEIGHT 2
|
||||
#define POCKET_NAMES_WINDOW_WIDTH (12 * 3)
|
||||
#define POCKET_NAMES_WINDOW_HEIGHT 3
|
||||
#define YES_NO_WINDOW_WIDTH 7
|
||||
#define YES_NO_WINDOW_HEIGHT TEXT_LINES_TILES(2)
|
||||
#define SELL_WINDOW_WIDTH 12
|
||||
#define SELL_WINDOW_HEIGHT TEXT_LINES_TILES(2)
|
||||
#define MONEY_WINDOW_WIDTH 10
|
||||
#define MONEY_WINDOW_HEIGHT TEXT_LINES_TILES(2)
|
||||
#define POFFIN_COUNT_WINDOW_WIDTH 11
|
||||
#define POFFIN_COUNT_WINDOW_HEIGHT TEXT_LINES_TILES(2)
|
||||
|
||||
#define BASE_TILE_ITEM_LIST 1
|
||||
#define BASE_TILE_ITEM_DESCRIPTION (BASE_TILE_ITEM_LIST + (ITEM_LIST_WINDOW_WIDTH * ITEM_LIST_WINDOW_HEIGHT))
|
||||
#define BASE_TILE_POCKET_NAMES (BASE_TILE_ITEM_DESCRIPTION + ITEM_DESCRIPTION_WINDOW_WIDTH * ITEM_DESCRIPTION_WINDOW_HEIGHT)
|
||||
#define BASE_TILE_MSG_BOX (BASE_TILE_POCKET_NAMES + POCKET_NAMES_WINDOW_WIDTH * POCKET_NAMES_WINDOW_HEIGHT)
|
||||
#define BASE_TILE_MSG_BOX_NARROW BASE_TILE_MSG_BOX
|
||||
#define BASE_TILE_POCKET_SELECTOR (BASE_TILE_MSG_BOX + MSG_BOX_WINDOW_WIDTH * MSG_BOX_WINDOW_HEIGHT)
|
||||
#define BASE_TILE_MSG_BOX_WIDE (BASE_TILE_POCKET_SELECTOR + POCKET_SELECTOR_WINDOW_WIDTH * POCKET_SELECTOR_WINDOW_HEIGHT)
|
||||
#define BASE_TILE_YES_NO (BASE_TILE_MSG_BOX_WIDE + MSG_BOX_WIDE_WINDOW_WIDTH * MSG_BOX_WINDOW_HEIGHT)
|
||||
#define BASE_TILE_SELL_COUNT_VALUE (BASE_TILE_YES_NO + YES_NO_WINDOW_WIDTH * YES_NO_WINDOW_HEIGHT)
|
||||
#define BASE_TILE_ITEM_ACTIONS_MENU BASE_TILE_SELL_COUNT_VALUE
|
||||
#define BASE_TILE_MONEY (BASE_TILE_SELL_COUNT_VALUE + SELL_WINDOW_WIDTH * SELL_WINDOW_HEIGHT)
|
||||
#define BASE_TILE_POFFIN_COUNT 903
|
||||
#define BASE_TILE_THROW_AWAY_COUNT 903
|
||||
#define BASE_TILE_STANDARD_WINDOW_FRAME (1024 - NUM_TILES_STANDARD_WINDOW_FRAME)
|
||||
#define BASE_TILE_MSG_BOX_FRAME (BASE_TILE_STANDARD_WINDOW_FRAME - NUM_TILES_MESSAGE_BOX_FRAME)
|
||||
|
||||
#define DIGIT_WIDTH 6
|
||||
#define ITEM_COUNT_X_OFFSET 7
|
||||
#define ITEM_COUNT_NUMBER_START_POS (ITEM_LIST_WINDOW_WIDTH * TILE_WIDTH_PIXELS - 2)
|
||||
#define ITEM_COUNT_START_POS (ITEM_COUNT_NUMBER_START_POS - 3 * DIGIT_WIDTH - ITEM_COUNT_X_OFFSET)
|
||||
|
||||
static void DrawHMIcon(BagController *param0, u32 param1);
|
||||
static BOOL BagUITextPrinterCallback(TextPrinterTemplate *param0, u16 param1);
|
||||
|
||||
static const WindowTemplate sYesNoMenuTemplate = {
|
||||
.bgLayer = BG_LAYER_MAIN_0,
|
||||
.tilemapLeft = 23,
|
||||
.tilemapTop = 13,
|
||||
.width = YES_NO_WINDOW_WIDTH,
|
||||
.height = YES_NO_WINDOW_HEIGHT,
|
||||
.palette = PLTT_3,
|
||||
.baseTile = BASE_TILE_YES_NO
|
||||
};
|
||||
|
||||
void BagUI_CreateWindows(BagController *controller)
|
||||
{
|
||||
Window_Add(controller->bgConfig, &controller->windows[BAG_UI_WINDOW_ITEM_LIST], BG_LAYER_MAIN_2, 14, 0, ITEM_LIST_WINDOW_WIDTH, ITEM_LIST_WINDOW_HEIGHT, PLTT_3, BASE_TILE_ITEM_LIST);
|
||||
Window_Add(controller->bgConfig, &controller->windows[BAG_UI_WINDOW_ITEM_DESCRIPTION], BG_LAYER_MAIN_0, 0, 18, ITEM_DESCRIPTION_WINDOW_WIDTH, ITEM_DESCRIPTION_WINDOW_HEIGHT, PLTT_3, BASE_TILE_ITEM_DESCRIPTION);
|
||||
Window_Add(controller->bgConfig, &controller->windows[BAG_UI_WINDOW_POCKET_NAMES], BG_LAYER_MAIN_2, 0, 13, POCKET_NAMES_WINDOW_WIDTH, POCKET_NAMES_WINDOW_HEIGHT, PLTT_3, BASE_TILE_POCKET_NAMES);
|
||||
Window_Add(controller->bgConfig, &controller->windows[BAG_UI_WINDOW_MSG_BOX], BG_LAYER_MAIN_0, 6, 19, MSG_BOX_WINDOW_WIDTH, MSG_BOX_WINDOW_HEIGHT, PLTT_11, BASE_TILE_MSG_BOX);
|
||||
Window_Add(controller->bgConfig, &controller->windows[BAG_UI_WINDOW_MSG_BOX_NARROW], BG_LAYER_MAIN_0, 6, 19, MSG_BOX_NARROW_WINDOW_WIDTH, MSG_BOX_WINDOW_HEIGHT, PLTT_11, BASE_TILE_MSG_BOX_NARROW);
|
||||
Window_Add(controller->bgConfig, &controller->windows[BAG_UI_WINDOW_POCKET_INDICATOR], BG_LAYER_MAIN_0, 0, 11, POCKET_SELECTOR_WINDOW_WIDTH, POCKET_SELECTOR_WINDOW_HEIGHT, PLTT_13, BASE_TILE_POCKET_SELECTOR);
|
||||
Window_Add(controller->bgConfig, &controller->windows[BAG_UI_WINDOW_MSG_BOX_WIDE], BG_LAYER_MAIN_0, 2, 19, MSG_BOX_WIDE_WINDOW_WIDTH, MSG_BOX_WINDOW_HEIGHT, PLTT_11, BASE_TILE_MSG_BOX_WIDE);
|
||||
Window_Add(controller->bgConfig, &controller->windows[BAG_UI_WINDOW_SELL_COUNT_VALUE], BG_LAYER_MAIN_0, 19, 13, SELL_WINDOW_WIDTH, SELL_WINDOW_HEIGHT, PLTT_3, BASE_TILE_SELL_COUNT_VALUE);
|
||||
Window_Add(controller->bgConfig, &controller->windows[BAG_UI_WINDOW_MONEY], BG_LAYER_MAIN_0, 1, 1, MONEY_WINDOW_WIDTH, TEXT_LINES_TILES(2), PLTT_3, BASE_TILE_MONEY);
|
||||
Window_Add(controller->bgConfig, &controller->windows[BAG_UI_WINDOW_THROW_AWAY_COUNT], BG_LAYER_MAIN_0, 24, 19, 7, 4, PLTT_3, BASE_TILE_THROW_AWAY_COUNT);
|
||||
Window_Add(controller->bgConfig, &controller->windows[BAG_UI_WINDOW_POFFIN_COUNT], BG_LAYER_MAIN_0, 1, 12, POFFIN_COUNT_WINDOW_WIDTH, TEXT_LINES_TILES(2), PLTT_3, BASE_TILE_POFFIN_COUNT);
|
||||
}
|
||||
|
||||
void BagUI_DeleteWindows(Window windows[NUM_BAG_UI_WINDOWS])
|
||||
{
|
||||
for (u16 i = 0; i < NUM_BAG_UI_WINDOWS; i++) {
|
||||
Window_Remove(&windows[i]);
|
||||
}
|
||||
}
|
||||
|
||||
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_BAG);
|
||||
|
||||
for (u16 i = 0; i < POCKET_MAX; i++) {
|
||||
controller->pocketNames[i] = MessageLoader_GetNewStrbuf(msgLoader, i);
|
||||
}
|
||||
|
||||
MessageLoader_Free(msgLoader);
|
||||
}
|
||||
|
||||
void BagUI_FreePocketNames(BagController *controller)
|
||||
{
|
||||
for (u16 i = 0; i < POCKET_MAX; i++) {
|
||||
Strbuf_Free(controller->pocketNames[i]);
|
||||
}
|
||||
}
|
||||
|
||||
void BagUI_ClearPocketNameBox(BagController *controller)
|
||||
{
|
||||
for (u16 i = 0; i < 12; i++) {
|
||||
Bg_FillTilemapRect(controller->bgConfig, BG_LAYER_MAIN_2, BASE_TILE_POCKET_NAMES + 12 + i, i, 13, 1, 1, PLTT_3);
|
||||
Bg_FillTilemapRect(controller->bgConfig, BG_LAYER_MAIN_2, BASE_TILE_POCKET_NAMES + POCKET_NAMES_WINDOW_WIDTH + 12 + i, i, 13 + 1, 1, 1, PLTT_3);
|
||||
}
|
||||
}
|
||||
|
||||
static void PrintPocketNameCentered(BagController *controller, Strbuf *string, u16 centerY)
|
||||
{
|
||||
u32 stringWidth = Font_CalcStrbufWidth(FONT_SYSTEM, string, 0);
|
||||
Text_AddPrinterWithParamsAndColor(&controller->windows[BAG_UI_WINDOW_POCKET_NAMES], FONT_SYSTEM, string, centerY - stringWidth / 2, 2, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(1, 2, 0), NULL);
|
||||
}
|
||||
|
||||
void BagUI_PrintPocketNames(BagController *controller)
|
||||
{
|
||||
Window_FillTilemap(&controller->windows[BAG_UI_WINDOW_POCKET_NAMES], 0);
|
||||
|
||||
BagPocketSelector *pocketSelector = &controller->pocketSelector;
|
||||
Strbuf *currentPocketName = controller->pocketNames[controller->bagCtx->accessiblePockets[controller->bagCtx->currPocketIdx].pocketType];
|
||||
Strbuf *nextPocketName = controller->pocketNames[controller->bagCtx->accessiblePockets[pocketSelector->nextPocket].pocketType];
|
||||
|
||||
u16 curPocketNamePos;
|
||||
if (pocketSelector->nextPocketDirection == 0) {
|
||||
curPocketNamePos = 96 + 50 + 12 * pocketSelector->animFrame;
|
||||
PrintPocketNameCentered(controller, nextPocketName, curPocketNamePos - 96);
|
||||
} else {
|
||||
curPocketNamePos = 96 + 50 - 12 * pocketSelector->animFrame;
|
||||
PrintPocketNameCentered(controller, nextPocketName, curPocketNamePos + 96);
|
||||
}
|
||||
|
||||
PrintPocketNameCentered(controller, currentPocketName, curPocketNamePos);
|
||||
Window_LoadTiles(&controller->windows[BAG_UI_WINDOW_POCKET_NAMES]);
|
||||
}
|
||||
|
||||
static void *LoadPocketSelectorIcons(BagController *interface, NNSG2dCharacterData **charData)
|
||||
{
|
||||
void *file = NARC_AllocAndReadWholeMember(interface->bagGraphicsNARC, pocket_selector_icons_NCGR, HEAP_ID_BAG);
|
||||
NNS_G2dGetUnpackedBGCharacterData(file, charData);
|
||||
return file;
|
||||
}
|
||||
|
||||
void BagUI_DrawPocketSelectorIcon(BagController *controller, u8 pocketIndex, u8 focused)
|
||||
{
|
||||
NNSG2dCharacterData *icons;
|
||||
void *iconsFile = LoadPocketSelectorIcons(controller, &icons);
|
||||
|
||||
u8 iconX;
|
||||
if (focused == TRUE) {
|
||||
iconX = controller->bagCtx->accessiblePockets[pocketIndex].pocketType * 32 + 16;
|
||||
} else {
|
||||
iconX = controller->bagCtx->accessiblePockets[pocketIndex].pocketType * 32;
|
||||
}
|
||||
|
||||
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_BAG, iconsFile);
|
||||
}
|
||||
|
||||
void BagUI_DrawPocketSelectorIcons(BagController *controller)
|
||||
{
|
||||
NNSG2dCharacterData *icons;
|
||||
|
||||
void *iconsFile = LoadPocketSelectorIcons(controller, &icons);
|
||||
Window_FillTilemap(&controller->windows[BAG_UI_WINDOW_POCKET_INDICATOR], 0);
|
||||
|
||||
for (u8 i = 0; i < controller->numPockets; i++) {
|
||||
u8 iconX;
|
||||
|
||||
if (i == controller->bagCtx->currPocketIdx) {
|
||||
iconX = controller->bagCtx->accessiblePockets[i].pocketType * 32 + 16;
|
||||
} else {
|
||||
iconX = controller->bagCtx->accessiblePockets[i].pocketType * 32;
|
||||
}
|
||||
|
||||
Window_BlitBitmapRect(&controller->windows[BAG_UI_WINDOW_POCKET_INDICATOR], icons->pRawData, iconX, 0, 32 * POCKET_MAX, 16, controller->pocketSelectorIconsX + controller->pocketSelectorIconsSpacing * i, 3, 10, 10);
|
||||
}
|
||||
|
||||
Window_ScheduleCopyToVRAM(&controller->windows[BAG_UI_WINDOW_POCKET_INDICATOR]);
|
||||
Heap_FreeExplicit(HEAP_ID_BAG, iconsFile);
|
||||
}
|
||||
|
||||
static void BufferPocketSlotItemName(BagController *controller, u32 slotIdx, u32 templateParamIdx)
|
||||
{
|
||||
StringTemplate_SetItemName(controller->strTemplate, templateParamIdx, BagInterface_GetItemSlotParam(controller, slotIdx, BAG_APP_ITEM_SLOT_PARAM_ITEM));
|
||||
}
|
||||
|
||||
static void BufferPocketSlotItemNamePlural(BagController *controller, u32 slotIdx, u32 templateParamIdx)
|
||||
{
|
||||
StringTemplate_SetItemNamePlural(controller->strTemplate, templateParamIdx, BagInterface_GetItemSlotParam(controller, slotIdx, BAG_APP_ITEM_SLOT_PARAM_ITEM));
|
||||
}
|
||||
|
||||
void BagUI_PrintItemDescription(BagController *controller, u16 item)
|
||||
{
|
||||
Strbuf *strBuf;
|
||||
|
||||
if (item != 0xffff) {
|
||||
strBuf = Strbuf_Init(130, HEAP_ID_BAG);
|
||||
Item_LoadDescription(strBuf, item, HEAP_ID_BAG);
|
||||
} else {
|
||||
strBuf = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_CloseBagDescription);
|
||||
}
|
||||
|
||||
Text_AddPrinterWithParamsAndColor(&controller->windows[BAG_UI_WINDOW_ITEM_DESCRIPTION], FONT_SYSTEM, strBuf, 40, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
|
||||
Strbuf_Free(strBuf);
|
||||
}
|
||||
|
||||
void BagUI_PrintTMHMMoveStats(BagController *controller, u16 item)
|
||||
{
|
||||
Window *window = &controller->windows[BAG_UI_WINDOW_ITEM_DESCRIPTION];
|
||||
u16 move = Item_MoveForTMHM(item);
|
||||
|
||||
Strbuf *string = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_Type);
|
||||
Text_AddPrinterWithParamsAndColor(window, FONT_SYSTEM, string, 0, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
|
||||
Strbuf_Free(string);
|
||||
|
||||
string = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_PP);
|
||||
Text_AddPrinterWithParamsAndColor(window, FONT_SYSTEM, string, 0, 16, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
|
||||
Strbuf_Free(string);
|
||||
|
||||
string = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_Category);
|
||||
Text_AddPrinterWithParamsAndColor(window, FONT_SYSTEM, string, 96, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
|
||||
Strbuf_Free(string);
|
||||
|
||||
string = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_Power);
|
||||
Text_AddPrinterWithParamsAndColor(window, FONT_SYSTEM, string, 96, 16, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
|
||||
Strbuf_Free(string);
|
||||
|
||||
string = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_Accuracy);
|
||||
Text_AddPrinterWithParamsAndColor(window, FONT_SYSTEM, string, 96, 32, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
|
||||
Strbuf_Free(string);
|
||||
|
||||
u16 moveStat = MoveTable_CalcMaxPP(move, 0);
|
||||
string = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_MaxPPNum);
|
||||
StringTemplate_SetNumber(controller->strTemplate, 0, moveStat, 2, PADDING_MODE_SPACES, CHARSET_MODE_EN);
|
||||
StringTemplate_Format(controller->strTemplate, controller->strBuffer, string);
|
||||
Strbuf_Free(string);
|
||||
Text_AddPrinterWithParamsAndColor(window, FONT_SYSTEM, controller->strBuffer, 48, 16, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
|
||||
|
||||
moveStat = MoveTable_LoadParam(move, MOVEATTRIBUTE_POWER);
|
||||
|
||||
if (moveStat <= 1) {
|
||||
string = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_Not_Applicable);
|
||||
} else {
|
||||
string = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_PowerAccuracyNum);
|
||||
}
|
||||
|
||||
StringTemplate_SetNumber(controller->strTemplate, 0, moveStat, 3, PADDING_MODE_NONE, CHARSET_MODE_EN);
|
||||
StringTemplate_Format(controller->strTemplate, controller->strBuffer, string);
|
||||
Strbuf_Free(string);
|
||||
Text_AddPrinterWithParamsAndColor(window, FONT_SYSTEM, controller->strBuffer, 96 + 64, 16, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
|
||||
moveStat = MoveTable_LoadParam(move, MOVEATTRIBUTE_ACCURACY);
|
||||
|
||||
if (moveStat == 0) {
|
||||
string = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_Not_Applicable);
|
||||
} else {
|
||||
string = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_PowerAccuracyNum);
|
||||
}
|
||||
|
||||
StringTemplate_SetNumber(controller->strTemplate, 0, moveStat, 3, PADDING_MODE_NONE, CHARSET_MODE_EN);
|
||||
StringTemplate_Format(controller->strTemplate, controller->strBuffer, string);
|
||||
Strbuf_Free(string);
|
||||
Text_AddPrinterWithParamsAndColor(window, FONT_SYSTEM, controller->strBuffer, 96 + 64, 32, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
|
||||
}
|
||||
|
||||
void BagUI_LoadItemCountStrings(BagController *controller)
|
||||
{
|
||||
controller->itemCountX = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_ItemCountX);
|
||||
controller->itemCountNumberFmt = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_ItemCountNum);
|
||||
}
|
||||
|
||||
void BagUI_FreeItemCountStrings(BagController *controller)
|
||||
{
|
||||
Strbuf_Free(controller->itemCountX);
|
||||
Strbuf_Free(controller->itemCountNumberFmt);
|
||||
}
|
||||
|
||||
void BagUI_PrintItemCount(BagController *controller, u16 count, u16 yOffset, u32 color)
|
||||
{
|
||||
if (controller->bagCtx->accessiblePockets[controller->bagCtx->currPocketIdx].pocketType == POCKET_TMHMS) {
|
||||
Text_AddPrinterWithParamsAndColor(&controller->windows[BAG_UI_WINDOW_ITEM_LIST], FONT_SYSTEM, controller->itemCountX, ITEM_COUNT_START_POS + DIGIT_WIDTH, yOffset, TEXT_SPEED_NO_TRANSFER, color, NULL);
|
||||
} else {
|
||||
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_BAG);
|
||||
|
||||
StringTemplate_SetNumber(controller->strTemplate, 0, count, 3, PADDING_MODE_NONE, CHARSET_MODE_EN);
|
||||
StringTemplate_Format(controller->strTemplate, string, controller->itemCountNumberFmt);
|
||||
|
||||
u32 stringWidth = Font_CalcStrbufWidth(FONT_SYSTEM, string, 0);
|
||||
|
||||
Text_AddPrinterWithParamsAndColor(&controller->windows[BAG_UI_WINDOW_ITEM_LIST], FONT_SYSTEM, string, ITEM_COUNT_NUMBER_START_POS - stringWidth, yOffset, TEXT_SPEED_NO_TRANSFER, color, NULL);
|
||||
Strbuf_Free(string);
|
||||
}
|
||||
|
||||
void BagUI_PrintTMHMNumber(BagController *controller, BagItem *itemSlot, u32 yOffset)
|
||||
{
|
||||
u16 item = itemSlot->item;
|
||||
|
||||
if (item < ITEM_HM01) {
|
||||
item = item - ITEM_TM01 + 1;
|
||||
FontSpecialChars_DrawPartyScreenText(controller->specialChars, SPECIAL_CHAR_NUMBER, item, 2, PADDING_MODE_ZEROES, &controller->windows[BAG_UI_WINDOW_ITEM_LIST], 0, yOffset + 5);
|
||||
BagUI_PrintItemCount(controller, itemSlot->quantity, yOffset, TEXT_COLOR(1, 2, 0));
|
||||
} else {
|
||||
item = item - ITEM_HM01 + 1;
|
||||
FontSpecialChars_DrawPartyScreenHPText(controller->specialChars, item, 2, PADDING_MODE_SPACES, &controller->windows[BAG_UI_WINDOW_ITEM_LIST], 16, yOffset + 5);
|
||||
DrawHMIcon(controller, yOffset);
|
||||
}
|
||||
}
|
||||
|
||||
void BagUI_PrintBerryNumber(BagController *controller, BagItem *itemSlot, u32 yOffset)
|
||||
{
|
||||
FontSpecialChars_DrawPartyScreenText(controller->specialChars, SPECIAL_CHAR_NUMBER, Item_BerryNumber(itemSlot->item) + 1, 2, PADDING_MODE_ZEROES, &controller->windows[BAG_UI_WINDOW_ITEM_LIST], 0, yOffset + 5);
|
||||
BagUI_PrintItemCount(controller, itemSlot->quantity, yOffset, TEXT_COLOR(1, 2, 0));
|
||||
}
|
||||
|
||||
static void *LoadBagUIItemEntrySprites(BagController *controller, NNSG2dCharacterData **charData)
|
||||
{
|
||||
void *file = NARC_AllocAndReadWholeMember(controller->bagGraphicsNARC, item_entry_icons_NCGR, HEAP_ID_BAG);
|
||||
NNS_G2dGetUnpackedBGCharacterData(file, charData);
|
||||
return file;
|
||||
}
|
||||
|
||||
static void DrawHMIcon(BagController *controller, u32 yOffset)
|
||||
{
|
||||
NNSG2dCharacterData *imageData;
|
||||
|
||||
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_BAG, file);
|
||||
}
|
||||
|
||||
void BagUI_PrintCloseBagEntry(BagController *controller, u32 yOffset)
|
||||
{
|
||||
Strbuf *string = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_CloseBag);
|
||||
|
||||
Window_FillRectWithColor(&controller->windows[BAG_UI_WINDOW_ITEM_LIST], 0, 0, yOffset, ITEM_LIST_WINDOW_WIDTH * TILE_WIDTH_PIXELS, TEXT_LINES(1));
|
||||
Text_AddPrinterWithParamsAndColor(&controller->windows[BAG_UI_WINDOW_ITEM_LIST], FONT_SYSTEM, string, 0, yOffset, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(1, 2, 0), NULL);
|
||||
Strbuf_Free(string);
|
||||
}
|
||||
|
||||
void BagUI_DrawRegisteredIcon(BagController *controller, u32 yOffset)
|
||||
{
|
||||
NNSG2dCharacterData *imageData;
|
||||
|
||||
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_BAG, file);
|
||||
}
|
||||
|
||||
void BagUI_LoadItemActionStrings(BagController *controller)
|
||||
{
|
||||
controller->itemActionStrings[0] = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_Use);
|
||||
controller->itemActionStrings[1] = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_Walk);
|
||||
controller->itemActionStrings[2] = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_Check);
|
||||
controller->itemActionStrings[3] = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_Plant);
|
||||
controller->itemActionStrings[4] = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_Open);
|
||||
controller->itemActionStrings[5] = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_Trash);
|
||||
controller->itemActionStrings[6] = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_Register);
|
||||
controller->itemActionStrings[7] = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_Deselect);
|
||||
controller->itemActionStrings[8] = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_Give);
|
||||
controller->itemActionStrings[9] = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_CheckTag);
|
||||
controller->itemActionStrings[10] = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_Confirm);
|
||||
controller->itemActionStrings[11] = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_Cancel);
|
||||
}
|
||||
|
||||
void BagUI_FreeItemActionStrings(BagController *param0)
|
||||
{
|
||||
for (u16 i = 0; i < 12; i++) {
|
||||
Strbuf_Free(param0->itemActionStrings[i]);
|
||||
}
|
||||
}
|
||||
|
||||
void BagUI_ShowItemActionsMenu(BagController *controller, u8 *actions, u8 numActions)
|
||||
{
|
||||
u16 msgBoxWindowIdx;
|
||||
if (controller->bagCtx->accessiblePockets[controller->bagCtx->currPocketIdx].pocketType == POCKET_BERRIES) {
|
||||
Window_Add(controller->bgConfig, &controller->itemActionsWindow, BG_LAYER_MAIN_0, 23, 23 - TEXT_LINES_TILES(numActions), 8, TEXT_LINES_TILES(numActions), PLTT_3, BASE_TILE_ITEM_ACTIONS_MENU);
|
||||
msgBoxWindowIdx = BAG_UI_WINDOW_MSG_BOX_NARROW;
|
||||
} else {
|
||||
Window_Add(controller->bgConfig, &controller->itemActionsWindow, BG_LAYER_MAIN_0, 23 + 1, 23 - TEXT_LINES_TILES(numActions), 8 - 1, TEXT_LINES_TILES(numActions), PLTT_3, BASE_TILE_ITEM_ACTIONS_MENU);
|
||||
msgBoxWindowIdx = BAG_UI_WINDOW_MSG_BOX;
|
||||
}
|
||||
|
||||
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]));
|
||||
}
|
||||
|
||||
MenuTemplate menuTemplate;
|
||||
menuTemplate.choices = controller->itemActionChoices;
|
||||
menuTemplate.window = &controller->itemActionsWindow;
|
||||
menuTemplate.fontID = FONT_SYSTEM;
|
||||
menuTemplate.xSize = 1;
|
||||
menuTemplate.ySize = numActions;
|
||||
menuTemplate.lineSpacing = 0;
|
||||
menuTemplate.suppressCursor = FALSE;
|
||||
|
||||
if (numActions >= 4) {
|
||||
menuTemplate.loopAround = TRUE;
|
||||
} else {
|
||||
menuTemplate.loopAround = FALSE;
|
||||
}
|
||||
|
||||
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);
|
||||
BagUI_PrintTMHMMoveStats(controller, controller->bagCtx->selectedItem);
|
||||
Window_ScheduleCopyToVRAM(&controller->windows[BAG_UI_WINDOW_ITEM_DESCRIPTION]);
|
||||
BagUI_UpdateTypeAndCategoryIcons(controller, controller->bagCtx->selectedItem, TRUE);
|
||||
} else {
|
||||
Window_DrawMessageBoxWithScrollCursor(&controller->windows[msgBoxWindowIdx], TRUE, BASE_TILE_MSG_BOX_FRAME, PLTT_12);
|
||||
Window_FillTilemap(&controller->windows[msgBoxWindowIdx], 15);
|
||||
|
||||
Strbuf *template = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_ItemIsSelected);
|
||||
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);
|
||||
StringTemplate_Format(controller->strTemplate, formatted, template);
|
||||
Text_AddPrinterWithParams(&controller->windows[msgBoxWindowIdx], FONT_MESSAGE, formatted, 0, 0, TEXT_SPEED_NO_TRANSFER, NULL);
|
||||
Strbuf_Free(formatted);
|
||||
Strbuf_Free(template);
|
||||
Window_ScheduleCopyToVRAM(&controller->windows[msgBoxWindowIdx]);
|
||||
}
|
||||
|
||||
Window_DrawStandardFrame(&controller->itemActionsWindow, TRUE, BASE_TILE_STANDARD_WINDOW_FRAME, PLTT_14);
|
||||
Window_ScheduleCopyToVRAM(&controller->itemActionsWindow);
|
||||
}
|
||||
|
||||
void BagUI_CloseItemActionsMenu(BagController *controller)
|
||||
{
|
||||
u32 msgBoxWindowIdx;
|
||||
if (controller->bagCtx->accessiblePockets[controller->bagCtx->currPocketIdx].pocketType == POCKET_BERRIES) {
|
||||
msgBoxWindowIdx = BAG_UI_WINDOW_MSG_BOX_NARROW;
|
||||
} else {
|
||||
msgBoxWindowIdx = BAG_UI_WINDOW_MSG_BOX;
|
||||
}
|
||||
|
||||
if (controller->bagCtx->accessiblePockets[controller->bagCtx->currPocketIdx].pocketType != POCKET_TMHMS) {
|
||||
Window_EraseMessageBox(&controller->windows[msgBoxWindowIdx], TRUE);
|
||||
Window_ClearAndScheduleCopyToVRAM(&controller->windows[msgBoxWindowIdx]);
|
||||
}
|
||||
|
||||
Window_EraseStandardFrame(&controller->itemActionsWindow, TRUE);
|
||||
Window_ClearAndScheduleCopyToVRAM(&controller->itemActionsWindow);
|
||||
Menu_Free(controller->menu, NULL);
|
||||
StringList_Free(controller->itemActionChoices);
|
||||
Window_Remove(&controller->itemActionsWindow);
|
||||
Window_FillTilemap(&controller->windows[BAG_UI_WINDOW_ITEM_DESCRIPTION], 0);
|
||||
BagUI_PrintItemDescription(controller, controller->bagCtx->selectedItem);
|
||||
Window_ScheduleCopyToVRAM(&controller->windows[BAG_UI_WINDOW_ITEM_DESCRIPTION]);
|
||||
BagUI_UpdateTypeAndCategoryIcons(controller, ITEM_NONE, FALSE);
|
||||
}
|
||||
|
||||
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_BAG);
|
||||
|
||||
BufferPocketSlotItemName(controller, controller->movedItemPos - 1, 0);
|
||||
|
||||
StringTemplate_Format(controller->strTemplate, formatted, template);
|
||||
Text_AddPrinterWithParamsAndColor(&controller->windows[BAG_UI_WINDOW_ITEM_DESCRIPTION], FONT_SYSTEM, formatted, 40, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
|
||||
Window_ScheduleCopyToVRAM(&controller->windows[BAG_UI_WINDOW_ITEM_DESCRIPTION]);
|
||||
Strbuf_Free(formatted);
|
||||
Strbuf_Free(template);
|
||||
}
|
||||
|
||||
void BagUI_ShowItemTrashWindows(BagController *controller)
|
||||
{
|
||||
Window_DrawStandardFrame(&controller->windows[BAG_UI_WINDOW_THROW_AWAY_COUNT], 1, BASE_TILE_STANDARD_WINDOW_FRAME, PLTT_14);
|
||||
BagUI_PrintItemTrashCount(controller);
|
||||
Window_DrawMessageBoxWithScrollCursor(&controller->windows[BAG_UI_WINDOW_MSG_BOX], 1, BASE_TILE_MSG_BOX_FRAME, PLTT_12);
|
||||
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_BAG);
|
||||
BagApplicationPocket *pocket = &controller->bagCtx->accessiblePockets[controller->bagCtx->currPocketIdx];
|
||||
|
||||
BufferPocketSlotItemName(controller, pocket->cursorScroll + pocket->cursorPos - 1, 0);
|
||||
|
||||
StringTemplate_Format(controller->strTemplate, formatted, template);
|
||||
Text_AddPrinterWithParams(&controller->windows[BAG_UI_WINDOW_MSG_BOX], FONT_MESSAGE, formatted, 0, 0, TEXT_SPEED_NO_TRANSFER, NULL);
|
||||
Window_ScheduleCopyToVRAM(&controller->windows[BAG_UI_WINDOW_MSG_BOX]);
|
||||
Strbuf_Free(formatted);
|
||||
Strbuf_Free(template);
|
||||
}
|
||||
|
||||
void BagUI_PrintItemTrashCount(BagController *controller)
|
||||
{
|
||||
Window *window = &controller->windows[BAG_UI_WINDOW_THROW_AWAY_COUNT];
|
||||
Window_FillTilemap(window, 15);
|
||||
Strbuf *string = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_ThrowAwayCount);
|
||||
|
||||
StringTemplate_SetNumber(controller->strTemplate, 0, controller->selectedItemCount, 3, PADDING_MODE_ZEROES, CHARSET_MODE_EN);
|
||||
StringTemplate_Format(controller->strTemplate, controller->strBuffer, string);
|
||||
Text_AddPrinterWithParams(window, FONT_SYSTEM, controller->strBuffer, 16, 8, TEXT_SPEED_NO_TRANSFER, NULL);
|
||||
Window_ScheduleCopyToVRAM(window);
|
||||
Strbuf_Free(string);
|
||||
}
|
||||
|
||||
void BagUI_CloseItemTrashWindows(BagController *controller)
|
||||
{
|
||||
Window_EraseMessageBox(&controller->windows[BAG_UI_WINDOW_MSG_BOX], TRUE);
|
||||
Window_EraseStandardFrame(&controller->windows[BAG_UI_WINDOW_THROW_AWAY_COUNT], TRUE);
|
||||
Window_ClearAndScheduleCopyToVRAM(&controller->windows[BAG_UI_WINDOW_MSG_BOX]);
|
||||
Window_ClearAndScheduleCopyToVRAM(&controller->windows[BAG_UI_WINDOW_THROW_AWAY_COUNT]);
|
||||
Window_ScheduleCopyToVRAM(&controller->windows[BAG_UI_WINDOW_ITEM_DESCRIPTION]);
|
||||
}
|
||||
|
||||
void BagUI_PrintConfirmItemTrashMsg(BagController *controller)
|
||||
{
|
||||
|
||||
Window_DrawMessageBoxWithScrollCursor(&controller->windows[BAG_UI_WINDOW_MSG_BOX_WIDE], TRUE, BASE_TILE_MSG_BOX_FRAME, PLTT_12);
|
||||
Window_FillTilemap(&controller->windows[BAG_UI_WINDOW_MSG_BOX_WIDE], 15);
|
||||
|
||||
Strbuf *string = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_ThrowAwayOK);
|
||||
BagApplicationPocket *pocket = &controller->bagCtx->accessiblePockets[controller->bagCtx->currPocketIdx];
|
||||
|
||||
if (controller->selectedItemCount == 1) {
|
||||
BufferPocketSlotItemName(controller, pocket->cursorScroll + pocket->cursorPos - 1, 0);
|
||||
} else {
|
||||
BufferPocketSlotItemNamePlural(controller, pocket->cursorScroll + pocket->cursorPos - 1, 0);
|
||||
}
|
||||
|
||||
StringTemplate_SetNumber(controller->strTemplate, 1, controller->selectedItemCount, 3, PADDING_MODE_NONE, CHARSET_MODE_EN);
|
||||
StringTemplate_Format(controller->strTemplate, controller->strBuffer, string);
|
||||
Strbuf_Free(string);
|
||||
|
||||
controller->msgBoxPrinterID = BagUI_PrintStrBufferToWideMsgBox(controller);
|
||||
}
|
||||
|
||||
u8 BagUI_PrintStrBufferToWideMsgBox(BagController *interface)
|
||||
{
|
||||
RenderControlFlags_SetCanABSpeedUpPrint(TRUE);
|
||||
RenderControlFlags_SetAutoScrollFlags(FALSE);
|
||||
u8 textPrinterID = Text_AddPrinterWithParams(&interface->windows[BAG_UI_WINDOW_MSG_BOX_WIDE], FONT_MESSAGE, interface->strBuffer, 0, 0, Options_TextFrameDelay(interface->options), BagUITextPrinterCallback);
|
||||
|
||||
return textPrinterID;
|
||||
}
|
||||
|
||||
static BOOL BagUITextPrinterCallback(TextPrinterTemplate *template, u16 param1)
|
||||
{
|
||||
switch (param1) {
|
||||
case 1:
|
||||
return Sound_IsAnyEffectPlaying();
|
||||
case 2:
|
||||
return Sound_IsBGMPausedByFanfare();
|
||||
case 3:
|
||||
Sound_PlayEffect(SEQ_SE_DP_PC_LOGIN);
|
||||
break;
|
||||
case 4:
|
||||
return Sound_IsEffectPlaying(SEQ_SE_DP_PC_LOGIN);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void BagUI_ShowYesNoMenu(BagController *controller)
|
||||
{
|
||||
controller->menu = Menu_MakeYesNoChoice(controller->bgConfig, &sYesNoMenuTemplate, BASE_TILE_STANDARD_WINDOW_FRAME, PLTT_14, HEAP_ID_BAG);
|
||||
}
|
||||
|
||||
void BagUI_PrintSellCountAndValue(BagController *controller, u8 skipFrame)
|
||||
{
|
||||
Window *window = &controller->windows[BAG_UI_WINDOW_SELL_COUNT_VALUE];
|
||||
|
||||
if (skipFrame == FALSE) {
|
||||
Window_DrawStandardFrame(window, TRUE, BASE_TILE_STANDARD_WINDOW_FRAME, PLTT_14);
|
||||
}
|
||||
|
||||
Window_FillTilemap(window, 15);
|
||||
|
||||
Strbuf *sellCount = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_SellNum);
|
||||
|
||||
StringTemplate_SetNumber(controller->strTemplate, 0, controller->selectedItemCount, 2, PADDING_MODE_ZEROES, CHARSET_MODE_EN);
|
||||
StringTemplate_Format(controller->strTemplate, controller->strBuffer, sellCount);
|
||||
Text_AddPrinterWithParams(window, FONT_SYSTEM, controller->strBuffer, 0, 8, TEXT_SPEED_NO_TRANSFER, NULL);
|
||||
Strbuf_Free(sellCount);
|
||||
|
||||
Strbuf *sellValue = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_SellValue);
|
||||
|
||||
StringTemplate_SetNumber(controller->strTemplate, 0, controller->soldItemPrice * controller->selectedItemCount, 6, PADDING_MODE_SPACES, CHARSET_MODE_EN);
|
||||
StringTemplate_Format(controller->strTemplate, controller->strBuffer, sellValue);
|
||||
|
||||
u32 stringWidth = Font_CalcStrbufWidth(FONT_SYSTEM, controller->strBuffer, 0);
|
||||
|
||||
Text_AddPrinterWithParams(window, FONT_SYSTEM, controller->strBuffer, SELL_WINDOW_WIDTH * TILE_WIDTH_PIXELS - stringWidth, 8, TEXT_SPEED_NO_TRANSFER, NULL);
|
||||
Window_ScheduleCopyToVRAM(window);
|
||||
Strbuf_Free(sellValue);
|
||||
}
|
||||
|
||||
void BagUI_PrintMoney(BagController *controller, u8 skipLabel)
|
||||
{
|
||||
Window *window = &controller->windows[BAG_UI_WINDOW_MONEY];
|
||||
|
||||
if (skipLabel == FALSE) {
|
||||
Window_FillTilemap(window, 15);
|
||||
Window_DrawStandardFrame(window, 1, BASE_TILE_STANDARD_WINDOW_FRAME, PLTT_14);
|
||||
|
||||
Strbuf *label = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_MoneyLabel);
|
||||
|
||||
Text_AddPrinterWithParams(window, FONT_SYSTEM, label, 0, 0, TEXT_SPEED_NO_TRANSFER, NULL);
|
||||
Strbuf_Free(label);
|
||||
} else {
|
||||
Window_FillRectWithColor(window, 15, 0, 16, MONEY_WINDOW_WIDTH * TILE_WIDTH_PIXELS, TEXT_LINES(1));
|
||||
}
|
||||
|
||||
Strbuf *amount = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_MoneyNum);
|
||||
|
||||
StringTemplate_SetNumber(controller->strTemplate, 0, TrainerInfo_Money(controller->trainerInfo), 6, PADDING_MODE_SPACES, CHARSET_MODE_EN);
|
||||
StringTemplate_Format(controller->strTemplate, controller->strBuffer, amount);
|
||||
|
||||
u32 stringWidth = Font_CalcStrbufWidth(FONT_SYSTEM, controller->strBuffer, 0);
|
||||
|
||||
Text_AddPrinterWithParams(window, FONT_SYSTEM, controller->strBuffer, MONEY_WINDOW_WIDTH * TILE_WIDTH_PIXELS - stringWidth, TEXT_LINES(1), TEXT_SPEED_NO_TRANSFER, NULL);
|
||||
Window_ScheduleCopyToVRAM(window);
|
||||
Strbuf_Free(amount);
|
||||
}
|
||||
|
||||
void BagUI_DrawPoffinCountMsgBox(BagController *controller)
|
||||
{
|
||||
Window *window = &controller->windows[BAG_UI_WINDOW_POFFIN_COUNT];
|
||||
Window_FillTilemap(window, 15);
|
||||
Window_DrawStandardFrame(window, TRUE, BASE_TILE_STANDARD_WINDOW_FRAME, PLTT_14);
|
||||
|
||||
Strbuf *label = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_PoffinCountLabel);
|
||||
Text_AddPrinterWithParams(window, FONT_SYSTEM, label, 0, 0, TEXT_SPEED_NO_TRANSFER, NULL);
|
||||
Strbuf_Free(label);
|
||||
|
||||
Strbuf *count = MessageLoader_GetNewStrbuf(controller->bagStringsLoader, Bag_Text_PoffinCountNum);
|
||||
StringTemplate_SetNumber(controller->strTemplate, 0, PoffinCase_CountFilledSlots(SaveData_GetPoffinCase(controller->bagCtx->saveData)), 3, PADDING_MODE_SPACES, CHARSET_MODE_EN);
|
||||
StringTemplate_Format(controller->strTemplate, controller->strBuffer, count);
|
||||
Strbuf_Free(count);
|
||||
|
||||
u32 stringWidth = Font_CalcStrbufWidth(FONT_SYSTEM, controller->strBuffer, 0);
|
||||
Text_AddPrinterWithParams(window, FONT_SYSTEM, controller->strBuffer, POFFIN_COUNT_WINDOW_WIDTH * TILE_WIDTH_PIXELS - stringWidth, 16, TEXT_SPEED_NO_TRANSFER, NULL);
|
||||
Window_ScheduleCopyToVRAM(window);
|
||||
}
|
||||
|
|
@ -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,11 +28,10 @@
|
|||
#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"
|
||||
#include "bag_system.h"
|
||||
#include "bag_context.h"
|
||||
#include "dexmode_checker.h"
|
||||
#include "enums.h"
|
||||
#include "game_options.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,
|
||||
|
|
@ -2587,19 +2587,19 @@ static void BoxAppMan_GiveItemFromBagAction(BoxApplicationManager *boxAppMan, u3
|
|||
|
||||
Bag *bag = SaveData_GetBag(boxAppMan->saveData);
|
||||
boxAppMan->bagAppArgs = sub_0207D824(bag, bagPockets, HEAP_ID_BOX_DATA);
|
||||
BagSystem_Init(boxAppMan->bagAppArgs, boxAppMan->saveData, 1, NULL);
|
||||
Overlay_LoadByID(FS_OVERLAY_ID(overlay84), OVERLAY_LOAD_ASYNC);
|
||||
boxAppMan->ApplicationManager = ApplicationManager_New(&Unk_ov84_02241130, boxAppMan->bagAppArgs, HEAP_ID_BOX_DATA);
|
||||
BagContext_Init(boxAppMan->bagAppArgs, boxAppMan->saveData, 1, NULL);
|
||||
Overlay_LoadByID(FS_OVERLAY_ID(bag), OVERLAY_LOAD_ASYNC);
|
||||
boxAppMan->ApplicationManager = ApplicationManager_New(&gBagApplicationTemplate, boxAppMan->bagAppArgs, HEAP_ID_BOX_DATA);
|
||||
(*state)++;
|
||||
}
|
||||
break;
|
||||
case GIVE_FROM_BAG_SELECT_ITEM:
|
||||
if (ApplicationManager_Exec(boxAppMan->ApplicationManager)) {
|
||||
item = BagSystem_GetItem(boxAppMan->bagAppArgs);
|
||||
item = BagContext_GetItem(boxAppMan->bagAppArgs);
|
||||
|
||||
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;
|
||||
|
|
|
|||
22
src/bag.c
|
|
@ -8,7 +8,7 @@
|
|||
#include "constants/savedata/save_table.h"
|
||||
#include "generated/items.h"
|
||||
|
||||
#include "bag_system.h"
|
||||
#include "bag_context.h"
|
||||
#include "heap.h"
|
||||
#include "item.h"
|
||||
#include "savedata.h"
|
||||
|
|
@ -321,36 +321,36 @@ void Pocket_Sort(BagItem *pocket, const u32 size)
|
|||
|
||||
void *sub_0207D824(Bag *bag, const u8 *pockets, enum HeapID heapID)
|
||||
{
|
||||
BagSystem *v0;
|
||||
BagContext *v0;
|
||||
int i;
|
||||
|
||||
v0 = BagSystem_New(heapID);
|
||||
v0 = BagContext_New(heapID);
|
||||
|
||||
for (i = 0; pockets[i] != 0xff; i++) {
|
||||
switch (pockets[i]) {
|
||||
case POCKET_KEY_ITEMS:
|
||||
BagSystem_InitPocket(v0, bag->keyItems, POCKET_KEY_ITEMS, i);
|
||||
BagContext_InitPocket(v0, bag->keyItems, POCKET_KEY_ITEMS, i);
|
||||
break;
|
||||
case POCKET_ITEMS:
|
||||
BagSystem_InitPocket(v0, bag->items, POCKET_ITEMS, i);
|
||||
BagContext_InitPocket(v0, bag->items, POCKET_ITEMS, i);
|
||||
break;
|
||||
case POCKET_BERRIES:
|
||||
BagSystem_InitPocket(v0, bag->berries, POCKET_BERRIES, i);
|
||||
BagContext_InitPocket(v0, bag->berries, POCKET_BERRIES, i);
|
||||
break;
|
||||
case POCKET_MEDICINE:
|
||||
BagSystem_InitPocket(v0, bag->medicine, POCKET_MEDICINE, i);
|
||||
BagContext_InitPocket(v0, bag->medicine, POCKET_MEDICINE, i);
|
||||
break;
|
||||
case POCKET_BALLS:
|
||||
BagSystem_InitPocket(v0, bag->pokeballs, POCKET_BALLS, i);
|
||||
BagContext_InitPocket(v0, bag->pokeballs, POCKET_BALLS, i);
|
||||
break;
|
||||
case POCKET_BATTLE_ITEMS:
|
||||
BagSystem_InitPocket(v0, bag->battleItems, POCKET_BATTLE_ITEMS, i);
|
||||
BagContext_InitPocket(v0, bag->battleItems, POCKET_BATTLE_ITEMS, i);
|
||||
break;
|
||||
case POCKET_MAIL:
|
||||
BagSystem_InitPocket(v0, bag->mail, POCKET_MAIL, i);
|
||||
BagContext_InitPocket(v0, bag->mail, POCKET_MAIL, i);
|
||||
break;
|
||||
case POCKET_TMHMS:
|
||||
BagSystem_InitPocket(v0, bag->tmHms, POCKET_TMHMS, i);
|
||||
BagContext_InitPocket(v0, bag->tmHms, POCKET_TMHMS, i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#include "bag_system.h"
|
||||
#include "bag_context.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
|
|
@ -31,75 +31,75 @@ static u32 GetNumAccessories(SaveData *saveData);
|
|||
static u32 GetNumBackdrops(SaveData *saveData);
|
||||
static u32 GetNumBattlePoints(SaveData *saveData);
|
||||
|
||||
BagSystem *BagSystem_New(u8 heapID)
|
||||
BagContext *BagContext_New(u8 heapID)
|
||||
{
|
||||
BagSystem *bagSystem = Heap_Alloc(heapID, sizeof(BagSystem));
|
||||
memset(bagSystem, 0, sizeof(BagSystem));
|
||||
return bagSystem;
|
||||
BagContext *bagContext = Heap_Alloc(heapID, sizeof(BagContext));
|
||||
memset(bagContext, 0, sizeof(BagContext));
|
||||
return bagContext;
|
||||
}
|
||||
|
||||
u32 BagSystem_GetSize(void)
|
||||
u32 BagContext_GetSize(void)
|
||||
{
|
||||
return sizeof(BagSystem);
|
||||
return sizeof(BagContext);
|
||||
}
|
||||
|
||||
void BagSystem_SetMode(BagSystem *bagSystem, u8 mode)
|
||||
void BagContext_SetMode(BagContext *bagContext, u8 mode)
|
||||
{
|
||||
bagSystem->mode = mode;
|
||||
bagContext->mode = mode;
|
||||
}
|
||||
|
||||
void BagSystem_Init(BagSystem *bagSystem, SaveData *saveData, u8 mode, BagCursor *bagCursor)
|
||||
void BagContext_Init(BagContext *bagContext, SaveData *saveData, u8 mode, BagCursor *bagCursor)
|
||||
{
|
||||
BagSystem_SetMode(bagSystem, mode);
|
||||
bagSystem->saveData = saveData;
|
||||
bagSystem->bagCursor = bagCursor;
|
||||
bagSystem->selectedItem = ITEM_NONE;
|
||||
BagContext_SetMode(bagContext, mode);
|
||||
bagContext->saveData = saveData;
|
||||
bagContext->bagCursor = bagCursor;
|
||||
bagContext->selectedItem = ITEM_NONE;
|
||||
}
|
||||
|
||||
void BagSystem_InitPocket(BagSystem *bagSystem, BagItem *items, u8 pocketType, u8 pocketIdx)
|
||||
void BagContext_InitPocket(BagContext *bagContext, BagItem *items, u8 pocketType, u8 pocketIdx)
|
||||
{
|
||||
bagSystem->accessiblePockets[pocketIdx].items = items;
|
||||
bagSystem->accessiblePockets[pocketIdx].pocketType = pocketType;
|
||||
bagContext->accessiblePockets[pocketIdx].items = items;
|
||||
bagContext->accessiblePockets[pocketIdx].pocketType = pocketType;
|
||||
}
|
||||
|
||||
void BagSystem_SetIsCycling(BagSystem *bagSystem)
|
||||
void BagContext_SetIsCycling(BagContext *bagContext)
|
||||
{
|
||||
bagSystem->isCycling = TRUE;
|
||||
bagContext->isCycling = TRUE;
|
||||
}
|
||||
|
||||
void sub_0207CB6C(BagSystem *bagSystem, void *param1)
|
||||
void BagContext_SetItemUseContext(BagContext *bagContext, ItemUseContext *itemUseCtx)
|
||||
{
|
||||
bagSystem->unk_70 = param1;
|
||||
bagContext->itemUseCtx = itemUseCtx;
|
||||
}
|
||||
|
||||
void BagSystem_SetSelectedMonSlot(BagSystem *bagSystem, u8 slot)
|
||||
void BagContext_SetSelectedMonSlot(BagContext *bagContext, u8 slot)
|
||||
{
|
||||
bagSystem->selectedMonSlot = slot;
|
||||
bagContext->selectedMonSlot = slot;
|
||||
}
|
||||
|
||||
void BagSystem_SetMapLoadType(BagSystem *bagSystem, u16 mapLoadType)
|
||||
void BagContext_SetMapLoadType(BagContext *bagContext, u16 mapLoadType)
|
||||
{
|
||||
bagSystem->mapLoadType = mapLoadType;
|
||||
bagContext->mapLoadType = mapLoadType;
|
||||
}
|
||||
|
||||
u16 BagSystem_GetItem(BagSystem *bagSystem)
|
||||
u16 BagContext_GetItem(BagContext *bagContext)
|
||||
{
|
||||
return bagSystem->selectedItem;
|
||||
return bagContext->selectedItem;
|
||||
}
|
||||
|
||||
u16 BagSystem_GetExitCode(BagSystem *bagSystem)
|
||||
u16 BagContext_GetExitCode(BagContext *bagContext)
|
||||
{
|
||||
return bagSystem->exitCode;
|
||||
return bagContext->exitCode;
|
||||
}
|
||||
|
||||
u8 BagSystem_GetSelectedMonSlot(BagSystem *bagSystem)
|
||||
u8 BagContext_GetSelectedMonSlot(BagContext *bagContext)
|
||||
{
|
||||
return bagSystem->selectedMonSlot;
|
||||
return bagContext->selectedMonSlot;
|
||||
}
|
||||
|
||||
u8 sub_0207CBAC(BagSystem *bagSystem)
|
||||
u8 BagContext_GetSoldAmount(BagContext *bagContext)
|
||||
{
|
||||
return bagSystem->unk_75;
|
||||
return bagContext->soldAmount;
|
||||
}
|
||||
|
||||
static u32 GetNumCoins(SaveData *saveData)
|
||||
|
|
@ -137,7 +137,7 @@ static u32 GetNumBattlePoints(SaveData *saveData)
|
|||
return sub_0202D230(sub_0202D750(saveData), 0, 0);
|
||||
}
|
||||
|
||||
BOOL BagSystem_FormatUsageMessage(SaveData *saveData, Strbuf *dstString, u16 item, u32 heapID)
|
||||
BOOL BagContext_FormatUsageMessage(SaveData *saveData, Strbuf *dstString, u16 item, u32 heapID)
|
||||
{
|
||||
MessageLoader *msgLoader;
|
||||
StringTemplate *template;
|
||||
|
|
@ -174,7 +174,7 @@ BOOL BagSystem_FormatUsageMessage(SaveData *saveData, Strbuf *dstString, u16 ite
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
void BagSystem_FormatErrorMessage(TrainerInfo *playerInfo, Strbuf *dstString, u16 unused, u32 error, u32 heapID)
|
||||
void BagContext_FormatErrorMessage(TrainerInfo *playerInfo, Strbuf *dstString, u16 unused, u32 error, u32 heapID)
|
||||
{
|
||||
MessageLoader *msgLoader;
|
||||
StringTemplate *template;
|
||||
|
|
@ -24,7 +24,7 @@
|
|||
#include "savedata/save_table.h"
|
||||
|
||||
#include "bag.h"
|
||||
#include "bag_system.h"
|
||||
#include "bag_context.h"
|
||||
#include "bg_window.h"
|
||||
#include "field_map_change.h"
|
||||
#include "field_message.h"
|
||||
|
|
@ -866,7 +866,7 @@ static BOOL UseBagMessageItem(ItemFieldUseContext *usageContext)
|
|||
v0->unk_16 = 0;
|
||||
v0->unk_10 = Strbuf_Init(128, HEAP_ID_FIELD2);
|
||||
|
||||
BagSystem_FormatUsageMessage(usageContext->fieldSystem->saveData, v0->unk_10, Bag_GetRegisteredItem(SaveData_GetBag(usageContext->fieldSystem->saveData)), 11);
|
||||
BagContext_FormatUsageMessage(usageContext->fieldSystem->saveData, v0->unk_10, Bag_GetRegisteredItem(SaveData_GetBag(usageContext->fieldSystem->saveData)), HEAP_ID_FIELD2);
|
||||
FieldSystem_CreateTask(usageContext->fieldSystem, PrintRegisteredKeyItemUseMessage, v0);
|
||||
|
||||
return FALSE;
|
||||
|
|
@ -1108,7 +1108,7 @@ static void PrintRegisteredKeyItemError(ItemFieldUseContext *usageContext, u32 e
|
|||
v0->unk_16 = 0;
|
||||
v0->unk_10 = Strbuf_Init(128, HEAP_ID_FIELD2);
|
||||
|
||||
BagSystem_FormatErrorMessage(SaveData_GetTrainerInfo(usageContext->fieldSystem->saveData), v0->unk_10, usageContext->unk_28, error, HEAP_ID_FIELD2);
|
||||
BagContext_FormatErrorMessage(SaveData_GetTrainerInfo(usageContext->fieldSystem->saveData), v0->unk_10, usageContext->unk_28, error, HEAP_ID_FIELD2);
|
||||
FieldSystem_CreateTask(usageContext->fieldSystem, PrintRegisteredKeyItemUseMessage, v0);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -283,7 +283,7 @@ pokeplatinum_c = files(
|
|||
'evolution.c',
|
||||
'unk_0207C63C.c',
|
||||
'type_icon.c',
|
||||
'bag_system.c',
|
||||
'bag_context.c',
|
||||
'bag.c',
|
||||
'unk_0207DA28.c',
|
||||
'unk_0207DFAC.c',
|
||||
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
#include "overlay005/ov5_021D2F14.h"
|
||||
|
||||
#include "bag.h"
|
||||
#include "bag_system.h"
|
||||
#include "bag_context.h"
|
||||
#include "bg_window.h"
|
||||
#include "camera.h"
|
||||
#include "field_message.h"
|
||||
|
|
@ -1619,7 +1619,7 @@ static void Shop_FinishScreenTransition(FieldTask *task)
|
|||
Bag *bag = SaveData_GetBag(fieldSystem->saveData);
|
||||
shopMenu->unk_04 = sub_0207D824(bag, sShop_BagPockets, HEAP_ID_FIELD2);
|
||||
|
||||
BagSystem_Init(shopMenu->unk_04, fieldSystem->saveData, 2, fieldSystem->bagCursor);
|
||||
BagContext_Init(shopMenu->unk_04, fieldSystem->saveData, 2, fieldSystem->bagCursor);
|
||||
sub_0203D1E4(fieldSystem, shopMenu->unk_04);
|
||||
FieldTask_InitJump(task, FieldTask_ShopMisc, shopMenu);
|
||||
|
||||
|
|
|
|||
|
|
@ -3,21 +3,20 @@
|
|||
#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"
|
||||
#include "bag_system.h"
|
||||
#include "bag_context.h"
|
||||
#include "heap.h"
|
||||
#include "item.h"
|
||||
#include "overlay_manager.h"
|
||||
#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 = {
|
||||
ov84_0223B5A0, ov84_0223B76C, ov84_0223B900, FS_OVERLAY_ID(overlay84)
|
||||
BagApplication_Init, BagApplication_Main, BagApplication_Exit, FS_OVERLAY_ID(bag)
|
||||
};
|
||||
static const u8 v3[] = {
|
||||
4, 0xff
|
||||
|
|
@ -107,7 +106,7 @@ static int ov82_0223B380(UnkStruct_ov83_0223C344 *param0)
|
|||
v1 = 4;
|
||||
}
|
||||
|
||||
BagSystem_Init(v0, param0->unk_10->saveData, v1, param0->unk_0C);
|
||||
BagContext_Init(v0, param0->unk_10->saveData, v1, param0->unk_0C);
|
||||
|
||||
param0->appMan = ApplicationManager_New(&Unk_ov84_02241130, v0, param0->heapID);
|
||||
param0->unk_18 = v0;
|
||||
|
|
@ -117,23 +116,23 @@ static int ov82_0223B380(UnkStruct_ov83_0223C344 *param0)
|
|||
|
||||
static int ov82_0223B3DC(UnkStruct_ov83_0223C344 *param0)
|
||||
{
|
||||
BagSystem *v0 = NULL;
|
||||
BagContext *v0 = NULL;
|
||||
BOOL v1;
|
||||
|
||||
if (!ov82_0223B140(¶m0->appMan)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
v0 = BagSystem_New(param0->heapID);
|
||||
memcpy(v0, param0->unk_18, BagSystem_GetSize());
|
||||
v0 = BagContext_New(param0->heapID);
|
||||
memcpy(v0, param0->unk_18, BagContext_GetSize());
|
||||
Heap_Free(param0->unk_18);
|
||||
|
||||
param0->unk_18 = NULL;
|
||||
param0->unk_08 = BagSystem_GetItem(v0); //
|
||||
param0->unk_08 = BagContext_GetItem(v0); //
|
||||
|
||||
Heap_Free(v0);
|
||||
|
||||
switch (BagSystem_GetExitCode(v0)) {
|
||||
switch (BagContext_GetExitCode(v0)) {
|
||||
case 1:
|
||||
return 2;
|
||||
case 0:
|
||||
|
|
|
|||
|
|
@ -1,696 +0,0 @@
|
|||
#include "overlay084/ov84_0223F040.h"
|
||||
|
||||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "overlay084/ov84_0223B5A0.h"
|
||||
#include "overlay084/ov84_022403F4.h"
|
||||
#include "overlay084/struct_ov84_0223B5A0.h"
|
||||
#include "overlay084/struct_ov84_0223BE5C.h"
|
||||
#include "overlay084/struct_ov84_0223C920.h"
|
||||
|
||||
#include "bag.h"
|
||||
#include "bag_system.h"
|
||||
#include "bg_window.h"
|
||||
#include "font.h"
|
||||
#include "font_special_chars.h"
|
||||
#include "game_options.h"
|
||||
#include "heap.h"
|
||||
#include "item.h"
|
||||
#include "menu.h"
|
||||
#include "message.h"
|
||||
#include "move_table.h"
|
||||
#include "narc.h"
|
||||
#include "poffin.h"
|
||||
#include "render_text.h"
|
||||
#include "render_window.h"
|
||||
#include "sound_playback.h"
|
||||
#include "strbuf.h"
|
||||
#include "string_list.h"
|
||||
#include "string_template.h"
|
||||
#include "text.h"
|
||||
#include "trainer_info.h"
|
||||
|
||||
static void ov84_0223F9B0(UnkStruct_ov84_0223B5A0 *param0, u32 param1);
|
||||
static BOOL ov84_022400E0(TextPrinterTemplate *param0, u16 param1);
|
||||
|
||||
static const WindowTemplate Unk_ov84_02241150 = {
|
||||
0x0,
|
||||
0x17,
|
||||
0xD,
|
||||
0x7,
|
||||
0x4,
|
||||
0x3,
|
||||
0x31B
|
||||
};
|
||||
|
||||
void ov84_0223F040(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
Window_Add(param0->unk_00, ¶m0->unk_04[0], 2, 14, 0, 17, 18, 3, 1);
|
||||
Window_Add(param0->unk_00, ¶m0->unk_04[1], 0, 0, 18, 32, 6, 3, 1 + 17 * 18);
|
||||
Window_Add(param0->unk_00, ¶m0->unk_04[2], 2, 0, 13, 12 * 3, 3, 3, 499);
|
||||
Window_Add(param0->unk_00, ¶m0->unk_04[3], 0, 6, 19, 14, 4, 11, 607);
|
||||
Window_Add(param0->unk_00, ¶m0->unk_04[4], 0, 6, 19, 13, 4, 11, 607);
|
||||
Window_Add(param0->unk_00, ¶m0->unk_04[5], 0, 0, 11, 12, 2, 13, 663);
|
||||
Window_Add(param0->unk_00, ¶m0->unk_04[6], 0, 2, 19, 27, 4, 11, 687);
|
||||
Window_Add(param0->unk_00, ¶m0->unk_04[7], 0, 19, 13, 12, 4, 3, 823);
|
||||
Window_Add(param0->unk_00, ¶m0->unk_04[8], 0, 1, 1, 10, 4, 3, 871);
|
||||
Window_Add(param0->unk_00, ¶m0->unk_04[9], 0, 24, 19, 7, 4, 3, 903);
|
||||
Window_Add(param0->unk_00, ¶m0->unk_04[10], 0, 1, 12, 11, 4, 3, 903);
|
||||
}
|
||||
|
||||
void ov84_0223F1DC(Window *param0)
|
||||
{
|
||||
u16 v0;
|
||||
|
||||
for (v0 = 0; v0 < 11; v0++) {
|
||||
Window_Remove(¶m0[v0]);
|
||||
}
|
||||
}
|
||||
|
||||
void ov84_0223F1F8(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
MessageLoader *v0;
|
||||
u16 v1;
|
||||
|
||||
v0 = MessageLoader_Init(MESSAGE_LOADER_NARC_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_BAG_POCKET_NAMES, HEAP_ID_6);
|
||||
|
||||
for (v1 = 0; v1 < 8; v1++) {
|
||||
param0->unk_404[v1] = MessageLoader_GetNewStrbuf(v0, v1);
|
||||
}
|
||||
|
||||
MessageLoader_Free(v0);
|
||||
}
|
||||
|
||||
void ov84_0223F238(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
u16 v0;
|
||||
|
||||
for (v0 = 0; v0 < 8; v0++) {
|
||||
Strbuf_Free(param0->unk_404[v0]);
|
||||
}
|
||||
}
|
||||
|
||||
void ov84_0223F25C(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
u16 v0;
|
||||
u16 v1 = (12 * 3) / 3;
|
||||
|
||||
for (v0 = 0; v0 < v1; v0++) {
|
||||
Bg_FillTilemapRect(param0->unk_00, 2, ((1 + 17 * 18) + 32 * 6) + v1 + v0, 0 + v0, 13, 1, 1, 3);
|
||||
Bg_FillTilemapRect(param0->unk_00, 2, ((1 + 17 * 18) + 32 * 6) + (12 * 3) + v1 + v0, 0 + v0, 13 + 1, 1, 1, 3);
|
||||
}
|
||||
}
|
||||
|
||||
static void ov84_0223F2C0(UnkStruct_ov84_0223B5A0 *param0, Strbuf *param1, u16 param2)
|
||||
{
|
||||
u32 v0 = Font_CalcStrbufWidth(FONT_SYSTEM, param1, 0);
|
||||
Text_AddPrinterWithParamsAndColor(¶m0->unk_04[2], FONT_SYSTEM, param1, param2 - v0 / 2, 2, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(1, 2, 0), NULL);
|
||||
}
|
||||
|
||||
void ov84_0223F2FC(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
UnkStruct_ov84_0223C920 *v0;
|
||||
Strbuf *v1;
|
||||
Strbuf *v2;
|
||||
u16 v3;
|
||||
|
||||
Window_FillTilemap(¶m0->unk_04[2], 0);
|
||||
|
||||
v0 = ¶m0->unk_429;
|
||||
v2 = param0->unk_404[param0->unk_C4->accessiblePockets[param0->unk_C4->currPocketIdx].pocketType];
|
||||
v1 = param0->unk_404[param0->unk_C4->accessiblePockets[v0->unk_00].pocketType];
|
||||
|
||||
if (v0->unk_01 == 0) {
|
||||
v3 = 96 + 50 + 12 * v0->unk_03;
|
||||
ov84_0223F2C0(param0, v1, v3 - 96);
|
||||
} else {
|
||||
v3 = 96 + 50 - 12 * v0->unk_03;
|
||||
ov84_0223F2C0(param0, v1, 96 + v3);
|
||||
}
|
||||
|
||||
ov84_0223F2C0(param0, v2, v3);
|
||||
Window_LoadTiles(¶m0->unk_04[2]);
|
||||
}
|
||||
|
||||
static void *ov84_0223F390(UnkStruct_ov84_0223B5A0 *param0, NNSG2dCharacterData **param1)
|
||||
{
|
||||
void *v0 = NARC_AllocAndReadWholeMember(param0->unk_D4, 21, 6);
|
||||
NNS_G2dGetUnpackedBGCharacterData(v0, param1);
|
||||
return v0;
|
||||
}
|
||||
|
||||
void ov84_0223F3AC(UnkStruct_ov84_0223B5A0 *param0, u8 param1, u8 param2)
|
||||
{
|
||||
NNSG2dCharacterData *v0;
|
||||
void *v1;
|
||||
u8 v2;
|
||||
|
||||
v1 = ov84_0223F390(param0, &v0);
|
||||
if (param2 == 1) {
|
||||
v2 = param0->unk_C4->accessiblePockets[param1].pocketType * 32 + 16;
|
||||
} else {
|
||||
v2 = param0->unk_C4->accessiblePockets[param1].pocketType * 32;
|
||||
}
|
||||
|
||||
Window_BlitBitmapRect(¶m0->unk_04[5], v0->pRawData, v2, 0, 32 * 8, 16, param0->unk_427 + param0->unk_428 * param1, 3, 10, 10);
|
||||
Window_ScheduleCopyToVRAM(¶m0->unk_04[5]);
|
||||
Heap_FreeExplicit(HEAP_ID_6, v1);
|
||||
}
|
||||
|
||||
void ov84_0223F438(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
NNSG2dCharacterData *v0;
|
||||
void *v1;
|
||||
u8 v2;
|
||||
u8 v3;
|
||||
|
||||
v1 = ov84_0223F390(param0, &v0);
|
||||
Window_FillTilemap(¶m0->unk_04[5], 0);
|
||||
|
||||
for (v2 = 0; v2 < param0->unk_424; v2++) {
|
||||
if (v2 == param0->unk_C4->currPocketIdx) {
|
||||
v3 = param0->unk_C4->accessiblePockets[v2].pocketType * 32 + 16;
|
||||
} else {
|
||||
v3 = param0->unk_C4->accessiblePockets[v2].pocketType * 32;
|
||||
}
|
||||
|
||||
Window_BlitBitmapRect(¶m0->unk_04[5], v0->pRawData, v3, 0, 32 * 8, 16, param0->unk_427 + param0->unk_428 * v2, 3, 10, 10);
|
||||
}
|
||||
|
||||
Window_ScheduleCopyToVRAM(¶m0->unk_04[5]);
|
||||
Heap_FreeExplicit(HEAP_ID_6, v1);
|
||||
}
|
||||
|
||||
static void ov84_0223F4E8(UnkStruct_ov84_0223B5A0 *param0, u32 param1, u32 param2)
|
||||
{
|
||||
StringTemplate_SetItemName(param0->unk_118, param2, ov84_0223BE5C(param0, param1, 0));
|
||||
}
|
||||
|
||||
static void ov84_0223F508(UnkStruct_ov84_0223B5A0 *param0, u32 param1, u32 param2)
|
||||
{
|
||||
StringTemplate_SetItemNamePlural(param0->unk_118, param2, ov84_0223BE5C(param0, param1, 0));
|
||||
}
|
||||
|
||||
void ov84_0223F528(UnkStruct_ov84_0223B5A0 *param0, u16 param1)
|
||||
{
|
||||
Strbuf *v0;
|
||||
|
||||
if (param1 != 0xffff) {
|
||||
v0 = Strbuf_Init(130, HEAP_ID_6);
|
||||
Item_LoadDescription(v0, param1, 6);
|
||||
} else {
|
||||
v0 = MessageLoader_GetNewStrbuf(param0->unk_114, 94);
|
||||
}
|
||||
|
||||
Text_AddPrinterWithParamsAndColor(¶m0->unk_04[1], FONT_SYSTEM, v0, 40, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
|
||||
Strbuf_Free(v0);
|
||||
}
|
||||
|
||||
void ov84_0223F584(UnkStruct_ov84_0223B5A0 *param0, u16 param1)
|
||||
{
|
||||
Window *v0;
|
||||
Strbuf *v1;
|
||||
u16 v2;
|
||||
u16 v3;
|
||||
|
||||
v0 = ¶m0->unk_04[1];
|
||||
v2 = Item_MoveForTMHM(param1);
|
||||
|
||||
v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 98);
|
||||
Text_AddPrinterWithParamsAndColor(v0, FONT_SYSTEM, v1, 0, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
|
||||
Strbuf_Free(v1);
|
||||
|
||||
v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 86);
|
||||
Text_AddPrinterWithParamsAndColor(v0, FONT_SYSTEM, v1, 0, 16, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
|
||||
Strbuf_Free(v1);
|
||||
|
||||
v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 89);
|
||||
Text_AddPrinterWithParamsAndColor(v0, FONT_SYSTEM, v1, 96, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
|
||||
Strbuf_Free(v1);
|
||||
|
||||
v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 87);
|
||||
Text_AddPrinterWithParamsAndColor(v0, FONT_SYSTEM, v1, 96, 16, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
|
||||
Strbuf_Free(v1);
|
||||
|
||||
v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 88);
|
||||
Text_AddPrinterWithParamsAndColor(v0, FONT_SYSTEM, v1, 96, 32, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
|
||||
Strbuf_Free(v1);
|
||||
|
||||
v3 = MoveTable_CalcMaxPP(v2, 0);
|
||||
v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 90);
|
||||
StringTemplate_SetNumber(param0->unk_118, 0, v3, 2, 1, 1);
|
||||
StringTemplate_Format(param0->unk_118, param0->unk_3F8, v1);
|
||||
Strbuf_Free(v1);
|
||||
Text_AddPrinterWithParamsAndColor(v0, FONT_SYSTEM, param0->unk_3F8, 48, 16, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
|
||||
|
||||
v3 = MoveTable_LoadParam(v2, MOVEATTRIBUTE_POWER);
|
||||
|
||||
if (v3 <= 1) {
|
||||
v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 24);
|
||||
} else {
|
||||
v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 91);
|
||||
}
|
||||
|
||||
StringTemplate_SetNumber(param0->unk_118, 0, v3, 3, 0, 1);
|
||||
StringTemplate_Format(param0->unk_118, param0->unk_3F8, v1);
|
||||
Strbuf_Free(v1);
|
||||
Text_AddPrinterWithParamsAndColor(v0, FONT_SYSTEM, param0->unk_3F8, 96 + 64, 16, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
|
||||
v3 = MoveTable_LoadParam(v2, MOVEATTRIBUTE_ACCURACY);
|
||||
|
||||
if (v3 == 0) {
|
||||
v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 24);
|
||||
} else {
|
||||
v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 91);
|
||||
}
|
||||
|
||||
StringTemplate_SetNumber(param0->unk_118, 0, v3, 3, 0, 1);
|
||||
StringTemplate_Format(param0->unk_118, param0->unk_3F8, v1);
|
||||
Strbuf_Free(v1);
|
||||
Text_AddPrinterWithParamsAndColor(v0, FONT_SYSTEM, param0->unk_3F8, 96 + 64, 32, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
|
||||
}
|
||||
|
||||
void ov84_0223F7D4(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
param0->unk_3FC = MessageLoader_GetNewStrbuf(param0->unk_114, 38);
|
||||
param0->unk_400 = MessageLoader_GetNewStrbuf(param0->unk_114, 37);
|
||||
}
|
||||
|
||||
void ov84_0223F800(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
Strbuf_Free(param0->unk_3FC);
|
||||
Strbuf_Free(param0->unk_400);
|
||||
}
|
||||
|
||||
void ov84_0223F81C(UnkStruct_ov84_0223B5A0 *param0, u16 param1, u16 param2, u32 param3)
|
||||
{
|
||||
Strbuf *v0;
|
||||
u32 v1;
|
||||
|
||||
if (param0->unk_C4->accessiblePockets[param0->unk_C4->currPocketIdx].pocketType == 3) {
|
||||
Text_AddPrinterWithParamsAndColor(¶m0->unk_04[0], FONT_SYSTEM, param0->unk_3FC, (((17 * 8 - 2) - 6 - 1 - 6 * 3) + 6), param2, TEXT_SPEED_NO_TRANSFER, param3, NULL);
|
||||
} else {
|
||||
Text_AddPrinterWithParamsAndColor(¶m0->unk_04[0], FONT_SYSTEM, param0->unk_3FC, ((17 * 8 - 2) - 6 - 1 - 6 * 3), param2, TEXT_SPEED_NO_TRANSFER, param3, NULL);
|
||||
}
|
||||
|
||||
v0 = Strbuf_Init(10, HEAP_ID_6);
|
||||
|
||||
StringTemplate_SetNumber(param0->unk_118, 0, param1, 3, 0, 1);
|
||||
StringTemplate_Format(param0->unk_118, v0, param0->unk_400);
|
||||
|
||||
v1 = Font_CalcStrbufWidth(FONT_SYSTEM, v0, 0);
|
||||
|
||||
Text_AddPrinterWithParamsAndColor(¶m0->unk_04[0], FONT_SYSTEM, v0, (17 * 8 - 2) - v1, param2, TEXT_SPEED_NO_TRANSFER, param3, NULL);
|
||||
Strbuf_Free(v0);
|
||||
}
|
||||
|
||||
void ov84_0223F8D0(UnkStruct_ov84_0223B5A0 *param0, BagItem *param1, u32 param2)
|
||||
{
|
||||
u16 v0 = param1->item;
|
||||
|
||||
if (v0 < 420) {
|
||||
v0 = v0 - 328 + 1;
|
||||
FontSpecialChars_DrawPartyScreenText(param0->unk_110, 2, v0, 2, 2, ¶m0->unk_04[0], 0, param2 + 5);
|
||||
ov84_0223F81C(param0, param1->quantity, param2, TEXT_COLOR(1, 2, 0));
|
||||
} else {
|
||||
v0 = v0 - 420 + 1;
|
||||
FontSpecialChars_DrawPartyScreenHPText(param0->unk_110, v0, 2, 1, ¶m0->unk_04[0], 16, param2 + 5);
|
||||
ov84_0223F9B0(param0, param2);
|
||||
}
|
||||
}
|
||||
|
||||
void ov84_0223F94C(UnkStruct_ov84_0223B5A0 *param0, BagItem *param1, u32 param2)
|
||||
{
|
||||
FontSpecialChars_DrawPartyScreenText(param0->unk_110, 2, Item_BerryNumber(param1->item) + 1, 2, 2, ¶m0->unk_04[0], 0, param2 + 5);
|
||||
ov84_0223F81C(param0, param1->quantity, param2, TEXT_COLOR(1, 2, 0));
|
||||
}
|
||||
|
||||
static void *ov84_0223F994(UnkStruct_ov84_0223B5A0 *param0, NNSG2dCharacterData **param1)
|
||||
{
|
||||
void *v0 = NARC_AllocAndReadWholeMember(param0->unk_D4, 38, 6);
|
||||
NNS_G2dGetUnpackedBGCharacterData(v0, param1);
|
||||
return v0;
|
||||
}
|
||||
|
||||
static void ov84_0223F9B0(UnkStruct_ov84_0223B5A0 *param0, u32 param1)
|
||||
{
|
||||
NNSG2dCharacterData *v0;
|
||||
void *v1;
|
||||
u8 v2;
|
||||
|
||||
v1 = ov84_0223F994(param0, &v0);
|
||||
Window_BlitBitmapRect(¶m0->unk_04[0], v0->pRawData, 40, 0, 64, 16, 0, param1, 24, 16);
|
||||
Heap_FreeExplicit(HEAP_ID_6, v1);
|
||||
}
|
||||
|
||||
void ov84_0223F9F0(UnkStruct_ov84_0223B5A0 *param0, u32 param1)
|
||||
{
|
||||
Strbuf *v0 = MessageLoader_GetNewStrbuf(param0->unk_114, 41);
|
||||
|
||||
Window_FillRectWithColor(¶m0->unk_04[0], 0, 0, param1, 17 * 8, 16);
|
||||
Text_AddPrinterWithParamsAndColor(¶m0->unk_04[0], FONT_SYSTEM, v0, 0, param1, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(1, 2, 0), NULL);
|
||||
Strbuf_Free(v0);
|
||||
}
|
||||
|
||||
void ov84_0223FA44(UnkStruct_ov84_0223B5A0 *param0, u32 param1)
|
||||
{
|
||||
NNSG2dCharacterData *v0;
|
||||
void *v1;
|
||||
u8 v2;
|
||||
|
||||
v1 = ov84_0223F994(param0, &v0);
|
||||
Window_BlitBitmapRect(¶m0->unk_04[0], v0->pRawData, 0, 0, 64, 16, 96, param1, 40, 16);
|
||||
Heap_FreeExplicit(HEAP_ID_6, v1);
|
||||
}
|
||||
|
||||
void ov84_0223FA88(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
param0->unk_124[0] = MessageLoader_GetNewStrbuf(param0->unk_114, 0);
|
||||
param0->unk_124[1] = MessageLoader_GetNewStrbuf(param0->unk_114, 6);
|
||||
param0->unk_124[2] = MessageLoader_GetNewStrbuf(param0->unk_114, 16);
|
||||
param0->unk_124[3] = MessageLoader_GetNewStrbuf(param0->unk_114, 95);
|
||||
param0->unk_124[4] = MessageLoader_GetNewStrbuf(param0->unk_114, 96);
|
||||
param0->unk_124[5] = MessageLoader_GetNewStrbuf(param0->unk_114, 1);
|
||||
param0->unk_124[6] = MessageLoader_GetNewStrbuf(param0->unk_114, 2);
|
||||
param0->unk_124[7] = MessageLoader_GetNewStrbuf(param0->unk_114, 18);
|
||||
param0->unk_124[8] = MessageLoader_GetNewStrbuf(param0->unk_114, 3);
|
||||
param0->unk_124[9] = MessageLoader_GetNewStrbuf(param0->unk_114, 4);
|
||||
param0->unk_124[10] = MessageLoader_GetNewStrbuf(param0->unk_114, 5);
|
||||
param0->unk_124[11] = MessageLoader_GetNewStrbuf(param0->unk_114, 8);
|
||||
}
|
||||
|
||||
void ov84_0223FB50(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
u16 v0;
|
||||
|
||||
for (v0 = 0; v0 < 12; v0++) {
|
||||
Strbuf_Free(param0->unk_124[v0]);
|
||||
}
|
||||
}
|
||||
|
||||
void ov84_0223FB70(UnkStruct_ov84_0223B5A0 *param0, u8 *param1, u8 param2)
|
||||
{
|
||||
MenuTemplate v0;
|
||||
BagInterfacePocketInfo *v1;
|
||||
Strbuf *v2;
|
||||
Strbuf *v3;
|
||||
u16 v4;
|
||||
u16 v5;
|
||||
|
||||
if (param0->unk_C4->accessiblePockets[param0->unk_C4->currPocketIdx].pocketType == 4) {
|
||||
Window_Add(param0->unk_00, ¶m0->unk_B4[0], 0, 23, 23 - param2 * 2, 8, param2 * 2, 3, 823);
|
||||
v5 = 4;
|
||||
} else {
|
||||
Window_Add(param0->unk_00, ¶m0->unk_B4[0], 0, 23 + 1, 23 - param2 * 2, 8 - 1, param2 * 2, 3, 823);
|
||||
v5 = 3;
|
||||
}
|
||||
|
||||
param0->unk_154 = StringList_New(param2, HEAP_ID_6);
|
||||
|
||||
for (v4 = 0; v4 < param2; v4++) {
|
||||
StringList_AddFromStrbuf(param0->unk_154, param0->unk_124[param1[v4]], ov84_0223D84C(param1[v4]));
|
||||
}
|
||||
|
||||
v0.choices = param0->unk_154;
|
||||
v0.window = ¶m0->unk_B4[0];
|
||||
v0.fontID = FONT_SYSTEM;
|
||||
v0.xSize = 1;
|
||||
v0.ySize = param2;
|
||||
v0.lineSpacing = 0;
|
||||
v0.suppressCursor = FALSE;
|
||||
|
||||
if (param2 >= 4) {
|
||||
v0.loopAround = TRUE;
|
||||
} else {
|
||||
v0.loopAround = FALSE;
|
||||
}
|
||||
|
||||
param0->unk_158 = Menu_New(&v0, 8, 0, 0, HEAP_ID_6, PAD_BUTTON_B);
|
||||
|
||||
if (param0->unk_C4->accessiblePockets[param0->unk_C4->currPocketIdx].pocketType == 3) {
|
||||
Window_FillTilemap(¶m0->unk_04[1], 0);
|
||||
ov84_0223F584(param0, param0->unk_C4->selectedItem);
|
||||
Window_ScheduleCopyToVRAM(¶m0->unk_04[1]);
|
||||
ov84_02240D5C(param0, param0->unk_C4->selectedItem, 1);
|
||||
} else {
|
||||
Window_DrawMessageBoxWithScrollCursor(¶m0->unk_04[v5], 1, 1024 - 9 - (18 + 12), 12);
|
||||
Window_FillTilemap(¶m0->unk_04[v5], 15);
|
||||
|
||||
v2 = MessageLoader_GetNewStrbuf(param0->unk_114, 42);
|
||||
v3 = Strbuf_Init((14 * 2 * 2), HEAP_ID_6);
|
||||
v1 = ¶m0->unk_C4->accessiblePockets[param0->unk_C4->currPocketIdx];
|
||||
|
||||
ov84_0223F4E8(param0, v1->unk_06 + v1->unk_04 - 1, 0);
|
||||
StringTemplate_Format(param0->unk_118, v3, v2);
|
||||
Text_AddPrinterWithParams(¶m0->unk_04[v5], FONT_MESSAGE, v3, 0, 0, TEXT_SPEED_NO_TRANSFER, NULL);
|
||||
Strbuf_Free(v3);
|
||||
Strbuf_Free(v2);
|
||||
Window_ScheduleCopyToVRAM(¶m0->unk_04[v5]);
|
||||
}
|
||||
|
||||
Window_DrawStandardFrame(¶m0->unk_B4[0], 1, 1024 - 9, 14);
|
||||
Window_ScheduleCopyToVRAM(¶m0->unk_B4[0]);
|
||||
}
|
||||
|
||||
void ov84_0223FD84(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
u32 v0;
|
||||
|
||||
if (param0->unk_C4->accessiblePockets[param0->unk_C4->currPocketIdx].pocketType == 4) {
|
||||
v0 = 4;
|
||||
} else {
|
||||
v0 = 3;
|
||||
}
|
||||
|
||||
if (param0->unk_C4->accessiblePockets[param0->unk_C4->currPocketIdx].pocketType != 3) {
|
||||
Window_EraseMessageBox(¶m0->unk_04[v0], 1);
|
||||
Window_ClearAndScheduleCopyToVRAM(¶m0->unk_04[v0]);
|
||||
}
|
||||
|
||||
Window_EraseStandardFrame(¶m0->unk_B4[0], 1);
|
||||
Window_ClearAndScheduleCopyToVRAM(¶m0->unk_B4[0]);
|
||||
Menu_Free(param0->unk_158, NULL);
|
||||
StringList_Free(param0->unk_154);
|
||||
Window_Remove(¶m0->unk_B4[0]);
|
||||
Window_FillTilemap(¶m0->unk_04[1], 0);
|
||||
ov84_0223F528(param0, param0->unk_C4->selectedItem);
|
||||
Window_ScheduleCopyToVRAM(¶m0->unk_04[1]);
|
||||
ov84_02240D5C(param0, 0, 0);
|
||||
}
|
||||
|
||||
void ov84_0223FE18(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
Strbuf *v0;
|
||||
Strbuf *v1;
|
||||
|
||||
Window_FillTilemap(¶m0->unk_04[1], 0);
|
||||
|
||||
v0 = MessageLoader_GetNewStrbuf(param0->unk_114, 45);
|
||||
v1 = Strbuf_Init(130, HEAP_ID_6);
|
||||
|
||||
ov84_0223F4E8(param0, param0->unk_47B - 1, 0);
|
||||
|
||||
StringTemplate_Format(param0->unk_118, v1, v0);
|
||||
Text_AddPrinterWithParamsAndColor(¶m0->unk_04[1], FONT_SYSTEM, v1, 40, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(15, 14, 0), NULL);
|
||||
Window_ScheduleCopyToVRAM(¶m0->unk_04[1]);
|
||||
Strbuf_Free(v1);
|
||||
Strbuf_Free(v0);
|
||||
}
|
||||
|
||||
void ov84_0223FE94(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
BagInterfacePocketInfo *v0;
|
||||
Strbuf *v1;
|
||||
Strbuf *v2;
|
||||
u16 v3;
|
||||
|
||||
Window_DrawStandardFrame(¶m0->unk_04[9], 1, 1024 - 9, 14);
|
||||
ov84_0223FF44(param0);
|
||||
Window_DrawMessageBoxWithScrollCursor(¶m0->unk_04[3], 1, 1024 - 9 - (18 + 12), 12);
|
||||
Window_FillTilemap(¶m0->unk_04[3], 15);
|
||||
|
||||
v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 52);
|
||||
v2 = Strbuf_Init(14 * 2 * 2, HEAP_ID_6);
|
||||
v0 = ¶m0->unk_C4->accessiblePockets[param0->unk_C4->currPocketIdx];
|
||||
|
||||
ov84_0223F4E8(param0, v0->unk_06 + v0->unk_04 - 1, 0);
|
||||
|
||||
StringTemplate_Format(param0->unk_118, v2, v1);
|
||||
Text_AddPrinterWithParams(¶m0->unk_04[3], FONT_MESSAGE, v2, 0, 0, TEXT_SPEED_NO_TRANSFER, NULL);
|
||||
Window_ScheduleCopyToVRAM(¶m0->unk_04[3]);
|
||||
Strbuf_Free(v2);
|
||||
Strbuf_Free(v1);
|
||||
}
|
||||
|
||||
void ov84_0223FF44(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
Window *v0;
|
||||
Strbuf *v1;
|
||||
u32 v2;
|
||||
|
||||
v0 = ¶m0->unk_04[9];
|
||||
Window_FillTilemap(v0, 15);
|
||||
v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 84);
|
||||
|
||||
StringTemplate_SetNumber(param0->unk_118, 0, param0->unk_488, 3, 2, 1);
|
||||
StringTemplate_Format(param0->unk_118, param0->unk_3F8, v1);
|
||||
Text_AddPrinterWithParams(v0, FONT_SYSTEM, param0->unk_3F8, 16, 8, TEXT_SPEED_NO_TRANSFER, NULL);
|
||||
Window_ScheduleCopyToVRAM(v0);
|
||||
Strbuf_Free(v1);
|
||||
}
|
||||
|
||||
void ov84_0223FFC0(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
Window_EraseMessageBox(¶m0->unk_04[3], 1);
|
||||
Window_EraseStandardFrame(¶m0->unk_04[9], 1);
|
||||
Window_ClearAndScheduleCopyToVRAM(¶m0->unk_04[3]);
|
||||
Window_ClearAndScheduleCopyToVRAM(¶m0->unk_04[9]);
|
||||
Window_ScheduleCopyToVRAM(¶m0->unk_04[1]);
|
||||
}
|
||||
|
||||
void ov84_0223FFF0(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
BagInterfacePocketInfo *v0;
|
||||
Strbuf *v1;
|
||||
u16 v2;
|
||||
|
||||
Window_DrawMessageBoxWithScrollCursor(¶m0->unk_04[6], 1, 1024 - 9 - (18 + 12), 12);
|
||||
Window_FillTilemap(¶m0->unk_04[6], 15);
|
||||
|
||||
v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 54);
|
||||
v0 = ¶m0->unk_C4->accessiblePockets[param0->unk_C4->currPocketIdx];
|
||||
|
||||
if (param0->unk_488 == 1) {
|
||||
ov84_0223F4E8(param0, v0->unk_06 + v0->unk_04 - 1, 0);
|
||||
} else {
|
||||
ov84_0223F508(param0, v0->unk_06 + v0->unk_04 - 1, 0);
|
||||
}
|
||||
|
||||
StringTemplate_SetNumber(param0->unk_118, 1, param0->unk_488, 3, 0, 1);
|
||||
StringTemplate_Format(param0->unk_118, param0->unk_3F8, v1);
|
||||
Strbuf_Free(v1);
|
||||
|
||||
param0->unk_426 = ov84_022400A0(param0);
|
||||
}
|
||||
|
||||
u8 ov84_022400A0(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
u8 v0;
|
||||
|
||||
RenderControlFlags_SetCanABSpeedUpPrint(1);
|
||||
RenderControlFlags_SetAutoScrollFlags(0);
|
||||
v0 = Text_AddPrinterWithParams(¶m0->unk_04[6], FONT_MESSAGE, param0->unk_3F8, 0, 0, Options_TextFrameDelay(param0->options), ov84_022400E0);
|
||||
|
||||
return v0;
|
||||
}
|
||||
|
||||
static BOOL ov84_022400E0(TextPrinterTemplate *param0, u16 param1)
|
||||
{
|
||||
switch (param1) {
|
||||
case 1:
|
||||
return Sound_IsAnyEffectPlaying();
|
||||
case 2:
|
||||
return Sound_IsBGMPausedByFanfare();
|
||||
case 3:
|
||||
Sound_PlayEffect(SEQ_SE_DP_PC_LOGIN);
|
||||
break;
|
||||
case 4:
|
||||
return Sound_IsEffectPlaying(1549);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ov84_02240120(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
param0->unk_158 = Menu_MakeYesNoChoice(param0->unk_00, &Unk_ov84_02241150, 1024 - 9, 14, 6);
|
||||
}
|
||||
|
||||
void ov84_02240148(UnkStruct_ov84_0223B5A0 *param0, u8 param1)
|
||||
{
|
||||
Window *v0;
|
||||
Strbuf *v1;
|
||||
u32 v2;
|
||||
|
||||
v0 = ¶m0->unk_04[7];
|
||||
|
||||
if (param1 == 0) {
|
||||
Window_DrawStandardFrame(v0, 1, 1024 - 9, 14);
|
||||
}
|
||||
|
||||
Window_FillTilemap(v0, 15);
|
||||
|
||||
v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 80);
|
||||
|
||||
StringTemplate_SetNumber(param0->unk_118, 0, param0->unk_488, 2, 2, 1);
|
||||
StringTemplate_Format(param0->unk_118, param0->unk_3F8, v1);
|
||||
Text_AddPrinterWithParams(v0, FONT_SYSTEM, param0->unk_3F8, 0, 8, TEXT_SPEED_NO_TRANSFER, NULL);
|
||||
Strbuf_Free(v1);
|
||||
|
||||
v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 81);
|
||||
|
||||
StringTemplate_SetNumber(param0->unk_118, 0, param0->unk_48C * param0->unk_488, 6, 1, 1);
|
||||
StringTemplate_Format(param0->unk_118, param0->unk_3F8, v1);
|
||||
|
||||
v2 = Font_CalcStrbufWidth(FONT_SYSTEM, param0->unk_3F8, 0);
|
||||
|
||||
Text_AddPrinterWithParams(v0, FONT_SYSTEM, param0->unk_3F8, (12 * 8) - v2, 8, TEXT_SPEED_NO_TRANSFER, NULL);
|
||||
Window_ScheduleCopyToVRAM(v0);
|
||||
Strbuf_Free(v1);
|
||||
}
|
||||
|
||||
void ov84_02240248(UnkStruct_ov84_0223B5A0 *param0, u8 param1)
|
||||
{
|
||||
Window *v0;
|
||||
Strbuf *v1;
|
||||
u32 v2;
|
||||
|
||||
v0 = ¶m0->unk_04[8];
|
||||
|
||||
if (param1 == 0) {
|
||||
Window_FillTilemap(v0, 15);
|
||||
Window_DrawStandardFrame(v0, 1, 1024 - 9, 14);
|
||||
|
||||
v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 78);
|
||||
|
||||
Text_AddPrinterWithParams(v0, FONT_SYSTEM, v1, 0, 0, TEXT_SPEED_NO_TRANSFER, NULL);
|
||||
Strbuf_Free(v1);
|
||||
} else {
|
||||
Window_FillRectWithColor(v0, 15, 0, 16, (10 * 8), 16);
|
||||
}
|
||||
|
||||
v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 79);
|
||||
|
||||
StringTemplate_SetNumber(param0->unk_118, 0, TrainerInfo_Money(param0->unk_CC), 6, 1, 1);
|
||||
StringTemplate_Format(param0->unk_118, param0->unk_3F8, v1);
|
||||
|
||||
v2 = Font_CalcStrbufWidth(FONT_SYSTEM, param0->unk_3F8, 0);
|
||||
|
||||
Text_AddPrinterWithParams(v0, FONT_SYSTEM, param0->unk_3F8, (10 * 8) - v2, 16, TEXT_SPEED_NO_TRANSFER, NULL);
|
||||
Window_ScheduleCopyToVRAM(v0);
|
||||
Strbuf_Free(v1);
|
||||
}
|
||||
|
||||
void ov84_02240328(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
Window *v0;
|
||||
Strbuf *v1;
|
||||
u32 v2;
|
||||
|
||||
v0 = ¶m0->unk_04[10];
|
||||
Window_FillTilemap(v0, 15);
|
||||
Window_DrawStandardFrame(v0, 1, 1024 - 9, 14);
|
||||
|
||||
v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 108);
|
||||
Text_AddPrinterWithParams(v0, FONT_SYSTEM, v1, 0, 0, TEXT_SPEED_NO_TRANSFER, NULL);
|
||||
Strbuf_Free(v1);
|
||||
|
||||
v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 109);
|
||||
StringTemplate_SetNumber(param0->unk_118, 0, PoffinCase_CountFilledSlots(SaveData_GetPoffinCase(param0->unk_C4->saveData)), 3, 1, 1);
|
||||
StringTemplate_Format(param0->unk_118, param0->unk_3F8, v1);
|
||||
Strbuf_Free(v1);
|
||||
|
||||
v2 = Font_CalcStrbufWidth(FONT_SYSTEM, param0->unk_3F8, 0);
|
||||
Text_AddPrinterWithParams(v0, FONT_SYSTEM, param0->unk_3F8, 11 * 8 - v2, 16, TEXT_SPEED_NO_TRANSFER, NULL);
|
||||
Window_ScheduleCopyToVRAM(v0);
|
||||
}
|
||||
|
|
@ -1,470 +0,0 @@
|
|||
#include "overlay084/ov84_022403F4.h"
|
||||
|
||||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "generated/pokemon_types.h"
|
||||
|
||||
#include "overlay084/struct_ov84_0223B5A0.h"
|
||||
|
||||
#include "bag_system.h"
|
||||
#include "gx_layers.h"
|
||||
#include "item.h"
|
||||
#include "move_table.h"
|
||||
#include "sprite.h"
|
||||
#include "sprite_system.h"
|
||||
#include "type_icon.h"
|
||||
#include "vram_transfer.h"
|
||||
|
||||
static void ov84_02240424(UnkStruct_ov84_0223B5A0 *param0);
|
||||
static void ov84_022404C0(UnkStruct_ov84_0223B5A0 *param0);
|
||||
static void ov84_02240950(UnkStruct_ov84_0223B5A0 *param0);
|
||||
static void ov84_02240C48(UnkStruct_ov84_0223B5A0 *param0);
|
||||
static u8 ov84_02240C30(UnkStruct_ov84_0223B5A0 *param0, u8 param1);
|
||||
static void ov84_02240B98(UnkStruct_ov84_0223B5A0 *param0);
|
||||
|
||||
static const SpriteTemplate Unk_ov84_022411B0[] = {
|
||||
{
|
||||
0x30,
|
||||
0x32,
|
||||
0x0,
|
||||
0x0,
|
||||
0x1,
|
||||
0x0,
|
||||
NNS_G2D_VRAM_TYPE_2DMAIN,
|
||||
{ 0xC0F9, 0xC0F9, 0xC0F9, 0xC0F9, 0x0, 0x0 },
|
||||
0x1,
|
||||
0x0,
|
||||
},
|
||||
{
|
||||
0xD,
|
||||
0x61,
|
||||
0x0,
|
||||
0x0,
|
||||
0x0,
|
||||
0x0,
|
||||
NNS_G2D_VRAM_TYPE_2DMAIN,
|
||||
{ 0xC0FA, 0xC0FA, 0xC0FA, 0xC0FA, 0x0, 0x0 },
|
||||
0x0,
|
||||
0x0,
|
||||
},
|
||||
{
|
||||
0x2,
|
||||
0x60,
|
||||
0x0,
|
||||
0x1,
|
||||
0x0,
|
||||
0x0,
|
||||
NNS_G2D_VRAM_TYPE_2DMAIN,
|
||||
{ 0xC0FD, 0xC0FA, 0xC0FD, 0xC0FD, 0x0, 0x0 },
|
||||
0x0,
|
||||
0x0,
|
||||
},
|
||||
{
|
||||
0x62,
|
||||
0x60,
|
||||
0x0,
|
||||
0x0,
|
||||
0x0,
|
||||
0x0,
|
||||
NNS_G2D_VRAM_TYPE_2DMAIN,
|
||||
{ 0xC0FD, 0xC0FA, 0xC0FD, 0xC0FD, 0x0, 0x0 },
|
||||
0x0,
|
||||
0x0,
|
||||
},
|
||||
{
|
||||
0xB1,
|
||||
0x18,
|
||||
0x0,
|
||||
0x0,
|
||||
0x0,
|
||||
0x0,
|
||||
NNS_G2D_VRAM_TYPE_2DMAIN,
|
||||
{ 0xC0FB, 0xC0FA, 0xC0FB, 0xC0FB, 0x0, 0x0 },
|
||||
0x1,
|
||||
0x0,
|
||||
},
|
||||
{
|
||||
0xB1,
|
||||
0xE,
|
||||
0x0,
|
||||
0x0,
|
||||
0x0,
|
||||
0x0,
|
||||
NNS_G2D_VRAM_TYPE_2DMAIN,
|
||||
{ 0xC0FC, 0xC0FA, 0xC0FC, 0xC0FC, 0x0, 0x0 },
|
||||
0x1,
|
||||
0x0,
|
||||
},
|
||||
{
|
||||
0x0,
|
||||
0x0,
|
||||
0x0,
|
||||
0x0,
|
||||
0x0,
|
||||
0x0,
|
||||
NNS_G2D_VRAM_TYPE_2DSUB,
|
||||
{ 0xC0FE, 0xC0FB, 0xC0FE, 0xC0FE, 0x0, 0x0 },
|
||||
0x0,
|
||||
0x0,
|
||||
},
|
||||
{
|
||||
0x16,
|
||||
0xAC,
|
||||
0x0,
|
||||
0x0,
|
||||
0x0,
|
||||
0x0,
|
||||
NNS_G2D_VRAM_TYPE_2DMAIN,
|
||||
{ 0xC0FF, 0xC0FC, 0xC0FF, 0xC0FF, 0x0, 0x0 },
|
||||
0x1,
|
||||
0x0,
|
||||
},
|
||||
{
|
||||
0xDC,
|
||||
0x9C,
|
||||
0x0,
|
||||
0x0,
|
||||
0x0,
|
||||
0x0,
|
||||
NNS_G2D_VRAM_TYPE_2DMAIN,
|
||||
{ 0xC100, 0xC0FD, 0xC100, 0xC100, 0x0, 0x0 },
|
||||
0x0,
|
||||
0x0,
|
||||
},
|
||||
{
|
||||
0xDC,
|
||||
0xB4,
|
||||
0x0,
|
||||
0x1,
|
||||
0x0,
|
||||
0x0,
|
||||
NNS_G2D_VRAM_TYPE_2DMAIN,
|
||||
{ 0xC100, 0xC0FD, 0xC100, 0xC100, 0x0, 0x0 },
|
||||
0x0,
|
||||
0x0,
|
||||
},
|
||||
{
|
||||
0x40,
|
||||
0x98,
|
||||
0x0,
|
||||
0x0,
|
||||
0x0,
|
||||
0x0,
|
||||
NNS_G2D_VRAM_TYPE_2DMAIN,
|
||||
{ 0xC101, 0xC0FE, 0xC101, 0xC101, 0x0, 0x0 },
|
||||
0x0,
|
||||
0x0,
|
||||
},
|
||||
{
|
||||
0xA8,
|
||||
0x98,
|
||||
0x0,
|
||||
0x0,
|
||||
0x0,
|
||||
0x0,
|
||||
NNS_G2D_VRAM_TYPE_2DMAIN,
|
||||
{ 0xC102, 0xC0FE, 0xC101, 0xC101, 0x0, 0x0 },
|
||||
0x0,
|
||||
0x0,
|
||||
},
|
||||
};
|
||||
|
||||
void ov84_022403F4(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
GXLayers_EngineAToggleLayers(GX_PLANEMASK_OBJ, 1);
|
||||
GXLayers_EngineBToggleLayers(GX_PLANEMASK_OBJ, 1);
|
||||
VramTransfer_New(32, HEAP_ID_6);
|
||||
ov84_02240424(param0);
|
||||
ov84_022404C0(param0);
|
||||
ov84_02240950(param0);
|
||||
}
|
||||
|
||||
static void ov84_02240424(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
SpriteResourceCapacities v0 = { 10, 6, 9, 9, 0, 0 };
|
||||
|
||||
param0->unk_D8 = SpriteSystem_Alloc(6);
|
||||
param0->unk_DC = SpriteManager_New(param0->unk_D8);
|
||||
{
|
||||
RenderOamTemplate v1 = {
|
||||
0,
|
||||
128,
|
||||
0,
|
||||
32,
|
||||
0,
|
||||
128,
|
||||
0,
|
||||
32,
|
||||
};
|
||||
|
||||
CharTransferTemplateWithModes v2 = {
|
||||
12,
|
||||
1024 * 128,
|
||||
1024 * 16,
|
||||
GX_OBJVRAMMODE_CHAR_1D_32K,
|
||||
GX_OBJVRAMMODE_CHAR_1D_32K
|
||||
};
|
||||
|
||||
SpriteSystem_Init(param0->unk_D8, &v1, &v2, 32);
|
||||
}
|
||||
|
||||
SpriteSystem_InitSprites(param0->unk_D8, param0->unk_DC, 12);
|
||||
SpriteSystem_InitManagerWithCapacities(param0->unk_D8, param0->unk_DC, &v0);
|
||||
}
|
||||
|
||||
static void ov84_022404C0(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
u32 v0, v1;
|
||||
|
||||
if (param0->unk_425 == 0) {
|
||||
v0 = 2;
|
||||
v1 = 3;
|
||||
} else {
|
||||
v0 = 6;
|
||||
v1 = 7;
|
||||
}
|
||||
|
||||
SpriteSystem_LoadCharResObjFromOpenNarc(param0->unk_D8, param0->unk_DC, param0->unk_D4, v0, FALSE, NNS_G2D_VRAM_TYPE_2DMAIN, 49401);
|
||||
SpriteSystem_LoadCharResObjFromOpenNarc(param0->unk_D8, param0->unk_DC, param0->unk_D4, 25, FALSE, NNS_G2D_VRAM_TYPE_2DMAIN, 49402);
|
||||
SpriteSystem_LoadCharResObjFromOpenNarc(param0->unk_D8, param0->unk_DC, param0->unk_D4, 28, FALSE, NNS_G2D_VRAM_TYPE_2DMAIN, 49403);
|
||||
SpriteSystem_LoadCharResObjFromOpenNarc(param0->unk_D8, param0->unk_DC, param0->unk_D4, 31, FALSE, NNS_G2D_VRAM_TYPE_2DMAIN, 49404);
|
||||
SpriteSystem_LoadCharResObjFromOpenNarc(param0->unk_D8, param0->unk_DC, param0->unk_D4, 10, FALSE, NNS_G2D_VRAM_TYPE_2DMAIN, 49405);
|
||||
SpriteSystem_LoadCharResObjFromOpenNarc(param0->unk_D8, param0->unk_DC, param0->unk_D4, 36, FALSE, NNS_G2D_VRAM_TYPE_2DSUB, 49406);
|
||||
SpriteSystem_LoadCharResObj(param0->unk_D8, param0->unk_DC, 62, 4, FALSE, NNS_G2D_VRAM_TYPE_2DMAIN, 49408);
|
||||
SpriteSystem_LoadCharResObj(param0->unk_D8, param0->unk_DC, 16, Item_FileID(0, 1), FALSE, NNS_G2D_VRAM_TYPE_2DMAIN, 49407);
|
||||
TypeIcon_LoadChar(param0->unk_D8, param0->unk_DC, NNS_G2D_VRAM_TYPE_2DMAIN, TYPE_NORMAL, 49409);
|
||||
CategoryIcon_LoadChar(param0->unk_D8, param0->unk_DC, NNS_G2D_VRAM_TYPE_2DMAIN, 0, 49410);
|
||||
SpriteSystem_LoadPlttResObjFromOpenNarc(param0->unk_D8, param0->unk_DC, param0->unk_D4, v1, FALSE, 1, NNS_G2D_VRAM_TYPE_2DMAIN, 49401);
|
||||
SpriteSystem_LoadPlttResObjFromOpenNarc(param0->unk_D8, param0->unk_DC, param0->unk_D4, 20, FALSE, 2, NNS_G2D_VRAM_TYPE_2DMAIN, 49402);
|
||||
SpriteSystem_LoadPlttResObj(param0->unk_D8, param0->unk_DC, 16, Item_FileID(0, 2), 0, 1, NNS_G2D_VRAM_TYPE_2DMAIN, 49404);
|
||||
SpriteSystem_LoadPlttResObj(param0->unk_D8, param0->unk_DC, 62, 10, FALSE, 2, NNS_G2D_VRAM_TYPE_2DMAIN, 49405);
|
||||
TypeIcon_LoadPlttSrc(param0->unk_D8, param0->unk_DC, NNS_G2D_VRAM_TYPE_2DMAIN, 49406);
|
||||
SpriteSystem_LoadPlttResObjFromOpenNarc(param0->unk_D8, param0->unk_DC, param0->unk_D4, 37, FALSE, 1, NNS_G2D_VRAM_TYPE_2DSUB, 49403);
|
||||
SpriteSystem_LoadCellResObjFromOpenNarc(param0->unk_D8, param0->unk_DC, param0->unk_D4, 1, FALSE, 49401);
|
||||
SpriteSystem_LoadCellResObjFromOpenNarc(param0->unk_D8, param0->unk_DC, param0->unk_D4, 24, FALSE, 49402);
|
||||
SpriteSystem_LoadCellResObjFromOpenNarc(param0->unk_D8, param0->unk_DC, param0->unk_D4, 27, FALSE, 49403);
|
||||
SpriteSystem_LoadCellResObjFromOpenNarc(param0->unk_D8, param0->unk_DC, param0->unk_D4, 30, FALSE, 49404);
|
||||
SpriteSystem_LoadCellResObjFromOpenNarc(param0->unk_D8, param0->unk_DC, param0->unk_D4, 9, FALSE, 49405);
|
||||
SpriteSystem_LoadCellResObjFromOpenNarc(param0->unk_D8, param0->unk_DC, param0->unk_D4, 35, FALSE, 49406);
|
||||
SpriteSystem_LoadCellResObj(param0->unk_D8, param0->unk_DC, 16, Item_IconNCERFile(), FALSE, 49407);
|
||||
SpriteSystem_LoadCellResObj(param0->unk_D8, param0->unk_DC, 62, 5, FALSE, 49408);
|
||||
SpriteSystem_LoadAnimResObjFromOpenNarc(param0->unk_D8, param0->unk_DC, param0->unk_D4, 0, FALSE, 49401);
|
||||
SpriteSystem_LoadAnimResObjFromOpenNarc(param0->unk_D8, param0->unk_DC, param0->unk_D4, 23, FALSE, 49402);
|
||||
SpriteSystem_LoadAnimResObjFromOpenNarc(param0->unk_D8, param0->unk_DC, param0->unk_D4, 26, FALSE, 49403);
|
||||
SpriteSystem_LoadAnimResObjFromOpenNarc(param0->unk_D8, param0->unk_DC, param0->unk_D4, 29, FALSE, 49404);
|
||||
SpriteSystem_LoadAnimResObjFromOpenNarc(param0->unk_D8, param0->unk_DC, param0->unk_D4, 8, FALSE, 49405);
|
||||
SpriteSystem_LoadAnimResObjFromOpenNarc(param0->unk_D8, param0->unk_DC, param0->unk_D4, 34, FALSE, 49406);
|
||||
SpriteSystem_LoadAnimResObj(param0->unk_D8, param0->unk_DC, 16, Item_IconNANRFile(), FALSE, 49407);
|
||||
SpriteSystem_LoadAnimResObj(param0->unk_D8, param0->unk_DC, 62, 6, FALSE, 49408);
|
||||
TypeIcon_LoadAnim(param0->unk_D8, param0->unk_DC, 49409, 49409);
|
||||
}
|
||||
|
||||
static void ov84_02240950(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
u32 v0;
|
||||
|
||||
for (v0 = 0; v0 < 12; v0++) {
|
||||
param0->unk_E0[v0] = SpriteSystem_NewSprite(param0->unk_D8, param0->unk_DC, &Unk_ov84_022411B0[v0]);
|
||||
}
|
||||
|
||||
ManagedSprite_SetDrawFlag(param0->unk_E0[5], 0);
|
||||
ManagedSprite_SetDrawFlag(param0->unk_E0[6], 0);
|
||||
ManagedSprite_SetDrawFlag(param0->unk_E0[10], 0);
|
||||
ManagedSprite_SetDrawFlag(param0->unk_E0[11], 0);
|
||||
|
||||
if ((param0->unk_C4->mode == 4) || (param0->unk_C4->mode == 5)) {
|
||||
ManagedSprite_SetDrawFlag(param0->unk_E0[1], 0);
|
||||
}
|
||||
|
||||
if (param0->unk_424 == 1) {
|
||||
ManagedSprite_SetDrawFlag(param0->unk_E0[2], 0);
|
||||
ManagedSprite_SetDrawFlag(param0->unk_E0[3], 0);
|
||||
}
|
||||
|
||||
ov84_02240D3C(param0, 0);
|
||||
|
||||
ManagedSprite_SetAnim(param0->unk_E0[0], param0->unk_C4->accessiblePockets[param0->unk_C4->currPocketIdx].pocketType);
|
||||
ManagedSprite_SetPositionXY(param0->unk_E0[1], ov84_02240C30(param0, param0->unk_C4->currPocketIdx), 97);
|
||||
ManagedSprite_SetPositionXY(param0->unk_E0[4], 177, 24 + (param0->unk_C4->accessiblePockets[param0->unk_C4->currPocketIdx].unk_04 - 1) * 16);
|
||||
|
||||
{
|
||||
VecFx32 v1 = { FX32_ONE, FX32_ONE, FX32_ONE };
|
||||
Sprite_SetAffineScaleEx(param0->unk_E0[0]->sprite, &v1, 2);
|
||||
}
|
||||
}
|
||||
|
||||
void ov84_02240A88(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
u32 v0;
|
||||
|
||||
for (v0 = 0; v0 < 12; v0++) {
|
||||
Sprite_DeleteAndFreeResources(param0->unk_E0[v0]);
|
||||
}
|
||||
|
||||
SpriteSystem_FreeResourcesAndManager(param0->unk_D8, param0->unk_DC);
|
||||
SpriteSystem_Free(param0->unk_D8);
|
||||
}
|
||||
|
||||
void ov84_02240ABC(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
u32 v0;
|
||||
|
||||
for (v0 = 0; v0 < 12; v0++) {
|
||||
ManagedSprite_TickFrame(param0->unk_E0[v0]);
|
||||
}
|
||||
}
|
||||
|
||||
void ov84_02240AD8(UnkStruct_ov84_0223B5A0 *param0, u16 param1)
|
||||
{
|
||||
SpriteSystem_ReplaceCharResObj(param0->unk_D8, param0->unk_DC, 16, Item_FileID(param1, 1), 0, 49407);
|
||||
SpriteSystem_ReplacePlttResObj(param0->unk_D8, param0->unk_DC, 16, Item_FileID(param1, 2), 0, 49404);
|
||||
}
|
||||
|
||||
void ov84_02240B34(UnkStruct_ov84_0223B5A0 *param0, u8 param1)
|
||||
{
|
||||
ManagedSprite_SetExplicitPalette(param0->unk_E0[4], param1);
|
||||
ManagedSprite_SetExplicitPalette(param0->unk_E0[1], param1);
|
||||
}
|
||||
|
||||
u8 ov84_02240B50(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
if (param0->unk_454.unk_00 == 0) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ov84_02240B68(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
param0->unk_454.unk_03 = 0;
|
||||
param0->unk_454.unk_00 = 1;
|
||||
|
||||
ov84_02240C48(param0);
|
||||
}
|
||||
|
||||
void ov84_02240B80(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
switch (param0->unk_454.unk_00) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
ov84_02240B98(param0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void ov84_02240B98(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
VecFx32 v0;
|
||||
|
||||
v0 = *(Sprite_GetPosition(param0->unk_E0[1]->sprite));
|
||||
|
||||
if (param0->unk_454.unk_01 == 0) {
|
||||
v0.x -= param0->unk_454.unk_04[param0->unk_454.unk_03];
|
||||
} else {
|
||||
v0.x += param0->unk_454.unk_04[param0->unk_454.unk_03];
|
||||
}
|
||||
|
||||
Sprite_SetPosition(param0->unk_E0[1]->sprite, &v0);
|
||||
param0->unk_454.unk_03++;
|
||||
|
||||
if (param0->unk_454.unk_03 == 8) {
|
||||
v0.x = ov84_02240C30(param0, param0->unk_478) * FX32_ONE;
|
||||
Sprite_SetPosition(param0->unk_E0[1]->sprite, &v0);
|
||||
param0->unk_454.unk_00 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
static u8 ov84_02240C30(UnkStruct_ov84_0223B5A0 *param0, u8 param1)
|
||||
{
|
||||
return 0 * 8 + param0->unk_427 + param0->unk_428 * param1 + 6;
|
||||
}
|
||||
|
||||
static void ov84_02240C48(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
VecFx32 v0;
|
||||
fx32 v1;
|
||||
|
||||
v0 = *(Sprite_GetPosition(param0->unk_E0[1]->sprite));
|
||||
v1 = ov84_02240C30(param0, param0->unk_478) * FX32_ONE;
|
||||
|
||||
if (v1 < v0.x) {
|
||||
v1 = (v0.x - v1) / 100;
|
||||
param0->unk_454.unk_01 = 0;
|
||||
} else {
|
||||
v1 = (v1 - v0.x) / 100;
|
||||
param0->unk_454.unk_01 = 1;
|
||||
}
|
||||
|
||||
param0->unk_454.unk_04[0] = 0;
|
||||
param0->unk_454.unk_04[1] = v1 * 40;
|
||||
param0->unk_454.unk_04[2] = v1 * 25;
|
||||
param0->unk_454.unk_04[3] = v1 * 15;
|
||||
param0->unk_454.unk_04[4] = v1 * 10;
|
||||
param0->unk_454.unk_04[5] = v1 * 7;
|
||||
param0->unk_454.unk_04[6] = v1 * 3;
|
||||
param0->unk_454.unk_04[7] = 0;
|
||||
}
|
||||
|
||||
void ov84_02240CF0(UnkStruct_ov84_0223B5A0 *param0, u8 param1)
|
||||
{
|
||||
if (param1 == 0) {
|
||||
ManagedSprite_SetPositionXY(param0->unk_E0[8], 220, 156);
|
||||
ManagedSprite_SetPositionXY(param0->unk_E0[9], 220, 180);
|
||||
} else {
|
||||
ManagedSprite_SetPositionXY(param0->unk_E0[8], 162, 108);
|
||||
ManagedSprite_SetPositionXY(param0->unk_E0[9], 162, 132);
|
||||
}
|
||||
|
||||
ov84_02240D3C(param0, 1);
|
||||
}
|
||||
|
||||
void ov84_02240D3C(UnkStruct_ov84_0223B5A0 *param0, u8 param1)
|
||||
{
|
||||
ManagedSprite_SetDrawFlag(param0->unk_E0[8], param1);
|
||||
ManagedSprite_SetDrawFlag(param0->unk_E0[9], param1);
|
||||
}
|
||||
|
||||
void ov84_02240D5C(UnkStruct_ov84_0223B5A0 *param0, u16 param1, u8 param2)
|
||||
{
|
||||
u16 v0;
|
||||
u16 v1;
|
||||
u16 v2;
|
||||
|
||||
ManagedSprite_SetDrawFlag(param0->unk_E0[10], param2);
|
||||
ManagedSprite_SetDrawFlag(param0->unk_E0[11], param2);
|
||||
|
||||
if (param2 == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
v0 = Item_MoveForTMHM(param1);
|
||||
v1 = MoveTable_LoadParam(v0, MOVEATTRIBUTE_TYPE);
|
||||
v2 = MoveTable_LoadParam(v0, MOVEATTRIBUTE_CLASS);
|
||||
|
||||
SpriteSystem_ReplaceCharResObj(param0->unk_D8, param0->unk_DC, TypeIcon_GetNARC(), TypeIcon_GetChar(v1), 1, 49409);
|
||||
ManagedSprite_SetExplicitPalette(param0->unk_E0[10], TypeIcon_GetPltt(v1) + 6);
|
||||
SpriteSystem_ReplaceCharResObj(param0->unk_D8, param0->unk_DC, CategoryIcon_GetNARC(), CategoryIcon_GetChar(v2), 1, 49410);
|
||||
ManagedSprite_SetExplicitPalette(param0->unk_E0[11], CategoryIcon_GetPltt(v2) + 6);
|
||||
}
|
||||
|
||||
void ov84_02240E24(UnkStruct_ov84_0223B5A0 *param0, s16 param1, s16 param2)
|
||||
{
|
||||
ManagedSprite_SetDrawFlag(param0->unk_E0[6], 1);
|
||||
ManagedSprite_SetPositionXY(param0->unk_E0[6], param1, param2);
|
||||
ManagedSprite_SetAnimationFrame(param0->unk_E0[6], 0);
|
||||
ManagedSprite_SetAnim(param0->unk_E0[6], 0);
|
||||
}
|
||||
|
||||
void ov84_02240E5C(UnkStruct_ov84_0223B5A0 *param0)
|
||||
{
|
||||
if (ManagedSprite_GetDrawFlag(param0->unk_E0[6]) == 1) {
|
||||
ManagedSprite_TickNFrames(param0->unk_E0[6], FX32_ONE);
|
||||
|
||||
if (ManagedSprite_GetAnimationFrame(param0->unk_E0[6]) == 2) {
|
||||
ManagedSprite_SetDrawFlag(param0->unk_E0[6], 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -6,7 +6,7 @@
|
|||
#include "overlay005/fieldmap.h"
|
||||
#include "overlay007/shop_menu.h"
|
||||
|
||||
#include "bag_system.h"
|
||||
#include "bag_context.h"
|
||||
#include "field_task.h"
|
||||
#include "heap.h"
|
||||
|
||||
|
|
@ -36,7 +36,7 @@ static u8 ShopMisc_FreeUnk04AndReinitFieldMap(FieldSystem *fieldSystem, ShopMenu
|
|||
return SHOP_STATE_REINIT_FIELD_MAP;
|
||||
}
|
||||
|
||||
shopMenu->itemSoldCount = sub_0207CBAC(shopMenu->unk_04);
|
||||
shopMenu->itemSoldCount = BagContext_GetSoldAmount(shopMenu->unk_04);
|
||||
|
||||
Heap_Free(shopMenu->unk_04);
|
||||
FieldSystem_StartFieldMap(fieldSystem);
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
#include "overlay005/save_info_window.h"
|
||||
|
||||
#include "bag.h"
|
||||
#include "bag_system.h"
|
||||
#include "bag_context.h"
|
||||
#include "bg_window.h"
|
||||
#include "catching_show.h"
|
||||
#include "dexmode_checker.h"
|
||||
|
|
@ -1128,7 +1128,7 @@ BOOL sub_0203B7C0(FieldTask *taskMan)
|
|||
TrainerInfo *v12 = SaveData_GetTrainerInfo(fieldSystem->saveData);
|
||||
menu->taskData = sub_0207D824(bag, Unk_020EA020, HEAP_ID_FIELD2);
|
||||
|
||||
BagSystem_Init(menu->taskData, fieldSystem->saveData, 1, fieldSystem->bagCursor);
|
||||
BagContext_Init(menu->taskData, fieldSystem->saveData, 1, fieldSystem->bagCursor);
|
||||
|
||||
sub_0203D1E4(fieldSystem, menu->taskData);
|
||||
sub_0203B674(menu, sub_0203BC5C);
|
||||
|
|
@ -1188,9 +1188,9 @@ BOOL sub_0203B7C0(FieldTask *taskMan)
|
|||
menu->taskData = sub_0203D20C(fieldSystem, &menu->unk_230);
|
||||
|
||||
if (partyMenu->selectedMonSlot >= 6) {
|
||||
BagSystem_SetSelectedMonSlot(menu->taskData, 0);
|
||||
BagContext_SetSelectedMonSlot(menu->taskData, 0);
|
||||
} else {
|
||||
BagSystem_SetSelectedMonSlot(menu->taskData, partyMenu->selectedMonSlot);
|
||||
BagContext_SetSelectedMonSlot(menu->taskData, partyMenu->selectedMonSlot);
|
||||
}
|
||||
|
||||
sub_0203B674(menu, sub_0203BC5C);
|
||||
|
|
@ -1226,7 +1226,7 @@ static BOOL StartMenu_Bag(FieldTask *taskMan)
|
|||
StartMenu *menu = FieldTask_GetEnv(taskMan);
|
||||
|
||||
menu->taskData = sub_0203D20C(fieldSystem, &menu->unk_230);
|
||||
BagSystem_SetSelectedMonSlot(menu->taskData, 0);
|
||||
BagContext_SetSelectedMonSlot(menu->taskData, 0);
|
||||
menu->callback = sub_0203BC5C;
|
||||
|
||||
FieldSystem_SaveStateIfCommunicationOff(fieldSystem);
|
||||
|
|
@ -1238,26 +1238,26 @@ static BOOL sub_0203BC5C(FieldTask *taskMan)
|
|||
{
|
||||
FieldSystem *fieldSystem = FieldTask_GetFieldSystem(taskMan);
|
||||
StartMenu *menu = FieldTask_GetEnv(taskMan);
|
||||
BagSystem *v2 = BagSystem_New(HEAP_ID_FIELD2);
|
||||
BagContext *v2 = BagContext_New(HEAP_ID_FIELD2);
|
||||
|
||||
memcpy(v2, menu->taskData, BagSystem_GetSize());
|
||||
memcpy(v2, menu->taskData, BagContext_GetSize());
|
||||
Heap_Free(menu->taskData);
|
||||
|
||||
switch (BagSystem_GetExitCode(v2)) {
|
||||
switch (BagContext_GetExitCode(v2)) {
|
||||
case 0: {
|
||||
ItemMenuUseFunc v3;
|
||||
ItemMenuUseContext v4;
|
||||
s32 v5;
|
||||
|
||||
v4.item = BagSystem_GetItem(v2);
|
||||
v4.selectedMonSlot = BagSystem_GetSelectedMonSlot(v2);
|
||||
v4.item = BagContext_GetItem(v2);
|
||||
v4.selectedMonSlot = BagContext_GetSelectedMonSlot(v2);
|
||||
v4.fieldTask = taskMan;
|
||||
v5 = Item_LoadParam(v4.item, ITEM_PARAM_FIELD_USE_FUNC, HEAP_ID_FIELD2);
|
||||
v3 = (ItemMenuUseFunc)GetItemUseFunction(USE_ITEM_TASK_MENU, v5);
|
||||
v3(&v4, &menu->unk_230);
|
||||
} break;
|
||||
case 1:
|
||||
sub_0203C2D8(taskMan, BagSystem_GetItem(v2));
|
||||
sub_0203C2D8(taskMan, BagContext_GetItem(v2));
|
||||
break;
|
||||
case 2: {
|
||||
PartyMenu *partyMenu = Heap_Alloc(HEAP_ID_FIELD2, sizeof(PartyMenu));
|
||||
|
|
@ -1270,7 +1270,7 @@ static BOOL sub_0203BC5C(FieldTask *taskMan)
|
|||
partyMenu->fieldMoveContext = &menu->fieldMoveContext;
|
||||
partyMenu->type = PARTY_MENU_TYPE_BASIC;
|
||||
partyMenu->mode = PARTY_MENU_MODE_GIVE_ITEM;
|
||||
partyMenu->usedItemID = BagSystem_GetItem(v2);
|
||||
partyMenu->usedItemID = BagContext_GetItem(v2);
|
||||
partyMenu->fieldSystem = fieldSystem;
|
||||
|
||||
FieldSystem_StartChildProcess(fieldSystem, &gPokemonPartyAppTemplate, partyMenu);
|
||||
|
|
@ -1280,7 +1280,7 @@ static BOOL sub_0203BC5C(FieldTask *taskMan)
|
|||
case 4: {
|
||||
Party *party = SaveData_GetParty(fieldSystem->saveData);
|
||||
u32 v9 = *(u32 *)menu->unk_260;
|
||||
u16 item = BagSystem_GetItem(v2);
|
||||
u16 item = BagContext_GetItem(v2);
|
||||
Pokemon *v8 = Party_GetPokemonBySlotIndex(party, v9);
|
||||
|
||||
Heap_Free(menu->unk_260);
|
||||
|
|
@ -1303,7 +1303,7 @@ static BOOL sub_0203BC5C(FieldTask *taskMan)
|
|||
partyMenu->options = SaveData_GetOptions(fieldSystem->saveData);
|
||||
partyMenu->fieldMoveContext = &menu->fieldMoveContext;
|
||||
partyMenu->type = PARTY_MENU_TYPE_BASIC;
|
||||
partyMenu->usedItemID = BagSystem_GetItem(v2);
|
||||
partyMenu->usedItemID = BagContext_GetItem(v2);
|
||||
partyMenu->selectedMonSlot = v9; // Maybe selected slot?
|
||||
partyMenu->fieldSystem = fieldSystem;
|
||||
|
||||
|
|
@ -1869,7 +1869,7 @@ static void StartMenu_Evolve(FieldTask *taskMan)
|
|||
{
|
||||
u32 v2 = *((u32 *)menu->unk_260);
|
||||
|
||||
BagSystem_SetSelectedMonSlot(menu->taskData, (u8)v2);
|
||||
BagContext_SetSelectedMonSlot(menu->taskData, (u8)v2);
|
||||
Heap_Free(menu->unk_260);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
@ -79,7 +78,7 @@
|
|||
#include "trainer_card_screen/trainer_card_screen.h"
|
||||
|
||||
#include "bag.h"
|
||||
#include "bag_system.h"
|
||||
#include "bag_context.h"
|
||||
#include "coins.h"
|
||||
#include "dexmode_checker.h"
|
||||
#include "evolution.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 = {
|
||||
ov84_0223B5A0,
|
||||
ov84_0223B76C,
|
||||
ov84_0223B900,
|
||||
FS_OVERLAY_ID(overlay84)
|
||||
BagApplication_Init,
|
||||
BagApplication_Main,
|
||||
BagApplication_Exit,
|
||||
FS_OVERLAY_ID(bag)
|
||||
};
|
||||
|
||||
FieldSystem_StartChildProcess(fieldSystem, &Unk_ov84_02241130, param1);
|
||||
|
|
@ -283,14 +282,14 @@ void *sub_0203D20C(FieldSystem *fieldSystem, ItemUseContext *param1)
|
|||
Bag *v0 = SaveData_GetBag(fieldSystem->saveData);
|
||||
void *v1 = sub_0207D824(v0, Unk_020EA164, HEAP_ID_FIELD2);
|
||||
|
||||
BagSystem_Init(v1, fieldSystem->saveData, 0, fieldSystem->bagCursor);
|
||||
BagSystem_SetMapLoadType(v1, fieldSystem->mapLoadType);
|
||||
BagContext_Init(v1, fieldSystem->saveData, 0, fieldSystem->bagCursor);
|
||||
BagContext_SetMapLoadType(v1, fieldSystem->mapLoadType);
|
||||
|
||||
if (PlayerAvatar_GetPlayerState(fieldSystem->playerAvatar) == 0x1) {
|
||||
BagSystem_SetIsCycling(v1);
|
||||
BagContext_SetIsCycling(v1);
|
||||
}
|
||||
|
||||
sub_0207CB6C(v1, param1);
|
||||
BagContext_SetItemUseContext(v1, param1);
|
||||
sub_0203D1E4(fieldSystem, v1);
|
||||
|
||||
return v1;
|
||||
|
|
@ -317,7 +316,7 @@ void *sub_0203D264(FieldSystem *fieldSystem, int param1)
|
|||
|
||||
v0 = sub_0207D824(v4, v1, HEAP_ID_FIELD3);
|
||||
|
||||
BagSystem_Init(v0, fieldSystem->saveData, 3, fieldSystem->bagCursor);
|
||||
BagContext_Init(v0, fieldSystem->saveData, 3, fieldSystem->bagCursor);
|
||||
sub_0203D1E4(fieldSystem, v0);
|
||||
|
||||
return v0;
|
||||
|
|
@ -325,9 +324,9 @@ void *sub_0203D264(FieldSystem *fieldSystem, int param1)
|
|||
|
||||
u16 sub_0203D2C4(void *param0)
|
||||
{
|
||||
u16 v0 = BagSystem_GetItem(param0);
|
||||
u16 v0 = BagContext_GetItem(param0);
|
||||
|
||||
if ((v0 != 0) && (BagSystem_GetExitCode(param0) == 5)) {
|
||||
if ((v0 != 0) && (BagContext_GetExitCode(param0) == 5)) {
|
||||
GF_ASSERT(0);
|
||||
}
|
||||
|
||||
|
|
|
|||