Document box user input handling (#533)

Co-authored-by: narf0708@gmail.com <narf0708@gmail.com>
This commit is contained in:
CharlesFolz4
2025-06-22 16:59:52 -04:00
committed by GitHub
parent c2b903fb6c
commit 8bbd22ef3e
41 changed files with 2631 additions and 2338 deletions

View File

@@ -11,8 +11,8 @@ enum HeapId {
HEAP_ID_6,
HEAP_ID_POKETCH_MAIN,
HEAP_ID_POKETCH_APP,
HEAP_ID_9,
HEAP_ID_10,
HEAP_ID_BOX_DATA,
HEAP_ID_BOX_GRAPHICS,
HEAP_ID_FIELDMAP,
HEAP_ID_12,
HEAP_ID_13,

View File

@@ -43,71 +43,6 @@ typedef enum {
UnkEnum_0202F510_38 = 0xff,
} UnkEnum_0202F510;
typedef enum {
UnkEnum_021DFB94_00,
UnkEnum_021DFB94_01,
UnkEnum_021DFB94_02,
UnkEnum_021DFB94_03,
UnkEnum_021DFB94_04,
UnkEnum_021DFB94_05,
UnkEnum_021DFB94_06,
UnkEnum_021DFB94_07,
UnkEnum_021DFB94_08,
UnkEnum_021DFB94_09,
UnkEnum_021DFB94_10,
UnkEnum_021DFB94_11,
UnkEnum_021DFB94_12,
UnkEnum_021DFB94_13,
UnkEnum_021DFB94_14,
UnkEnum_021DFB94_15,
UnkEnum_021DFB94_16,
UnkEnum_021DFB94_17,
UnkEnum_021DFB94_18,
UnkEnum_021DFB94_19,
UnkEnum_021DFB94_20,
UnkEnum_021DFB94_21,
UnkEnum_021DFB94_22,
UnkEnum_021DFB94_23,
UnkEnum_021DFB94_24,
UnkEnum_021DFB94_25,
UnkEnum_021DFB94_26,
UnkEnum_021DFB94_27,
UnkEnum_021DFB94_28,
UnkEnum_021DFB94_29,
UnkEnum_021DFB94_30,
UnkEnum_021DFB94_31,
UnkEnum_021DFB94_32,
UnkEnum_021DFB94_33,
UnkEnum_021DFB94_34,
UnkEnum_021DFB94_35,
UnkEnum_021DFB94_36,
UnkEnum_021DFB94_37,
UnkEnum_021DFB94_38,
UnkEnum_021DFB94_39,
UnkEnum_021DFB94_40,
UnkEnum_021DFB94_41,
UnkEnum_021DFB94_42,
UnkEnum_021DFB94_43,
UnkEnum_021DFB94_44,
UnkEnum_021DFB94_45,
UnkEnum_021DFB94_46,
UnkEnum_021DFB94_47,
UnkEnum_021DFB94_48,
UnkEnum_021DFB94_49,
UnkEnum_021DFB94_50,
UnkEnum_021DFB94_51,
UnkEnum_021DFB94_52,
UnkEnum_021DFB94_53,
UnkEnum_021DFB94_54,
UnkEnum_021DFB94_55,
UnkEnum_021DFB94_56,
UnkEnum_021DFB94_57,
UnkEnum_021DFB94_58,
UnkEnum_021DFB94_59,
UnkEnum_021DFB94_60,
UnkEnum_021DFB94_61,
} UnkEnum_021DFB94;
typedef enum {
UnkEnum_ov87_021D12C0_0,
UnkEnum_ov87_021D12C0_1,

View File

@@ -0,0 +1,18 @@
#ifndef POKEPLATINUM_BOX_MENU_H
#define POKEPLATINUM_BOX_MENU_H
#include "overlay019/struct_ov19_021D4DF0.h"
void BoxMenu_FillYesNo(UnkStruct_ov19_021D4DF0 *param0, u32 menuItemIndex);
void BoxMenu_FillTopLevelMenuItems(UnkStruct_ov19_021D4DF0 *param0);
void BoxMenu_FillItemsMenu(UnkStruct_ov19_021D4DF0 *param0);
void BoxMenu_FillHeaderMenu(UnkStruct_ov19_021D4DF0 *param0);
void BoxMenu_FillWallpaperMenu(UnkStruct_ov19_021D4DF0 *param0, enum BoxMenuItem menuItem);
void BoxMenu_FillWallpaperSelectionMenu(UnkStruct_ov19_021D4DF0 *param0, enum BoxMenuItem menuItem);
void BoxMenu_FillMarkingsMenu(UnkStruct_ov19_021D4DF0 *param0);
void BoxMenu_ToggleMarking(UnkStruct_ov19_021D4DF0 *param0, u32 marking);
enum BoxMenuItem BoxMenu_GetMenuNavigation(UnkStruct_ov19_021D4DF0 *param0);
enum BoxMenuItem BoxMenu_GetSelectedMenuItem(UnkStruct_ov19_021D4DF0 *param0);
enum BoxMenuItem BoxMenu_GetDefaultMenuItem(UnkStruct_ov19_021D4DF0 *param0);
#endif // POKEPLATINUM_BOX_MENU_H

View File

@@ -50,10 +50,10 @@ enum CursorMovementState {
int ov19_021D0D80(ApplicationManager *appMan, int *param1);
int ov19_021D0DEC(ApplicationManager *appMan, int *param1);
int ov19_021D0E58(ApplicationManager *appMan, int *param1);
BOOL ov19_021D3B18(const UnkStruct_ov19_021D5DF8 *param0);
BOOL ov19_021D3B20(const UnkStruct_ov19_021D5DF8 *param0);
BOOL ov19_HasCheckedCanReleaseMon(const UnkStruct_ov19_021D5DF8 *param0);
BOOL ov19_CanReleaseMon(const UnkStruct_ov19_021D5DF8 *param0);
MessageLoader *ov19_GetBoxMessagesLoader(const UnkStruct_ov19_021D5DF8 *param0);
const StringTemplate *ov19_021D5DF0(const UnkStruct_ov19_021D5DF8 *param0);
const StringTemplate *ov19_GetMessageVariableBuffer(const UnkStruct_ov19_021D5DF8 *param0);
int ov19_GetOptionsFrame(const UnkStruct_ov19_021D5DF8 *param0);
enum BoxMode ov19_GetBoxMode(const UnkStruct_ov19_021D4DF0 *param0);
enum CursorLocation ov19_GetCursorLocation(const UnkStruct_ov19_021D4DF0 *param0);
@@ -73,19 +73,19 @@ const PCBoxes *ov19_GetPCBoxes(const UnkStruct_ov19_021D4DF0 *param0);
u32 ov19_GetBoxMessageID(const UnkStruct_ov19_021D4DF0 *param0);
BoxPokemon *ov19_GetPreviewedBoxMon(const UnkStruct_ov19_021D4DF0 *param0);
u32 ov19_GetPreviewedMonMarkings(const UnkStruct_ov19_021D4DF0 *param0);
u32 ov19_021D5EA8(const UnkStruct_ov19_021D4DF0 *param0);
u32 ov19_GetBoxSelectionBoxID(const UnkStruct_ov19_021D4DF0 *param0);
s32 ov19_021D5EB0(const UnkStruct_ov19_021D4DF0 *param0);
u32 ov19_021D5EB8(const UnkStruct_ov19_021D4DF0 *param0);
u32 ov19_GetMarkingsButtonsScrollOffset(const UnkStruct_ov19_021D4DF0 *param0);
u32 ov19_GetMonSpriteTransparencyMask(const UnkStruct_ov19_021D4DF0 *param0);
BOOL ov19_IsCursorFastMode(const UnkStruct_ov19_021D4DF0 *param0);
void ov19_GetMultiSelectBoundingBox(const UnkStruct_ov19_021D4DF0 *param0, u32 *leftCol, u32 *rightCol, u32 *topCol, u32 *bottomCol);
void ov19_GetMultiSelectBoundingBox(const UnkStruct_ov19_021D4DF0 *param0, u32 *leftCol, u32 *rightCol, u32 *topRow, u32 *bottomRow);
BOOL ov19_IsMultiSelectSingleSelect(const UnkStruct_ov19_021D4DF0 *param0);
u32 ov19_GetMultiSelectTopLeftPos(const UnkStruct_ov19_021D4DF0 *param0);
u32 ov19_GetRelativeMonPosInMultiSelection(const UnkStruct_ov19_021D4DF0 *param0, u32 param1);
u32 ov19_GetCursorItem(const UnkStruct_ov19_021D4DF0 *param0);
u32 ov19_GetCursorOrPreviewedItem(const UnkStruct_ov19_021D4DF0 *param0);
u32 ov19_021D5F9C(const UnkStruct_ov19_021D4DF0 *param0);
u32 ov19_GetCompareMonSlot(const UnkStruct_ov19_021D4DF0 *param0);
u32 ov19_021D5FA4(const UnkStruct_ov19_021D4DF0 *param0);
const PCCompareMon *ov19_GetCompareMonFrom(const UnkStruct_ov19_021D4DF0 *param0, int compareSlot);
BOOL ov19_021D5FB8(const UnkStruct_ov19_021D4DF0 *param0, int param1);

View File

@@ -17,11 +17,66 @@
#include "sprite.h"
#include "sys_task_manager.h"
BOOL ov19_021D61B0(UnkStruct_ov19_021D61B0 **param0, const UnkStruct_ov19_021D4DF0 *param1, const UnkStruct_ov19_021D5DF8 *param2);
void ov19_021D64A0(UnkStruct_ov19_021D61B0 *param0);
void ov19_021D6594(UnkStruct_ov19_021D61B0 *param0, u32 param1);
BOOL ov19_021D6600(UnkStruct_ov19_021D61B0 *param0, u32 param1);
BOOL ov19_021D6628(UnkStruct_ov19_021D61B0 *param0);
enum BoxGraphicsFunctions {
FUNC_ov19_021D6694,
FUNC_BoxGraphics_ScreenFadeBothToBlack0,
FUNC_BoxGraphics_ScreenFadeBothToBlack1,
FUNC_BoxGraphics_ScreenFadeBothToBlack2,
FUNC_BoxGraphics_ChangeToNewBox,
FUNC_BoxGraphics_MoveCursor,
FUNC_BoxGraphics_PreviewMon,
FUNC_ov19_021D69BC,
FUNC_ov19_021D6A1C,
FUNC_BoxGraphics_PickUpMonIntoCursor,
FUNC_BoxGraphics_PlaceMonDownFromCursor,
FUNC_ov19_021D6AB0,
FUNC_ov19_021D6AEC,
FUNC_ov19_021D6B1C,
FUNC_BoxGraphics_PlayReleaseCursorMonAnimation,
FUNC_BoxGraphics_PlayReleaseBoxMonAnimation,
FUNC_BoxGraphics_PlayReleasePartyMonAnimation,
FUNC_BoxGraphics_DisplayItemInfo,
FUNC_BoxGraphics_CloseItemInfo,
FUNC_ov19_021D6CB0,
FUNC_ov19_021D6CF8,
FUNC_ov19_021D6D40,
FUNC_ov19_021D6D88,
FUNC_BoxGraphics_ItemShrinkToNothing,
FUNC_BoxGraphics_DisplayBoxMessage,
FUNC_BoxGraphics_ShowMenu,
FUNC_BoxGraphics_CloseMessageBox,
FUNC_ov19_021D6EC0,
FUNC_BoxGraphics_UpdateMenuCursor,
FUNC_ov19_021D6F0C,
FUNC_BoxGraphics_ShowBoxSelectionPopup,
FUNC_BoxGraphics_ScrollBoxSelectionPopup,
FUNC_ov19_021D6FB0,
FUNC_BoxGraphics_TransitionWallpaper,
FUNC_BoxGraphics_PressBoxButton,
FUNC_BoxGraphics_OpenPartyPopup,
FUNC_ov19_021D7138,
FUNC_BoxGraphics_PlayAdjustPartyAnimation,
FUNC_ov19_021D71F8,
FUNC_ov19_021D7248,
FUNC_ov19_021D7278,
FUNC_ov19_021D72E8,
FUNC_ov19_021D7324,
FUNC_ov19_021D7340,
FUNC_BoxGraphics_StartDrawMultiSelect,
FUNC_ov19_021D7380,
FUNC_BoxGraphics_ApplyMultiSelectMonShadingTask,
FUNC_ov19_021D73B0,
FUNC_ov19_021D73EC,
FUNC_ov19_021D7408,
FUNC_ov19_021D7424,
FUNC_BoxGraphics_ScreenFadeBothToBlackLogOff,
};
BOOL BoxGraphics_Load(UnkStruct_ov19_021D61B0 **param0, const UnkStruct_ov19_021D4DF0 *param1, const UnkStruct_ov19_021D5DF8 *param2);
void BoxGraphics_Free(UnkStruct_ov19_021D61B0 *param0);
void ov19_BoxTaskHandler(UnkStruct_ov19_021D61B0 *param0, enum BoxGraphicsFunctions function);
BOOL ov19_IsSysTaskDone(UnkStruct_ov19_021D61B0 *param0, enum BoxGraphicsFunctions function);
BOOL ov19_CheckAllTasksDone(UnkStruct_ov19_021D61B0 *param0);
SysTask *ov19_021D77C8(SysTaskFunc param0, void *param1, u32 param2);
NNSG2dImagePaletteProxy *ov19_021D77D0(UnkStruct_ov19_021D61B0 *param0);
UnkStruct_ov19_021DA384 *ov19_021D77D8(UnkStruct_ov19_021D61B0 *param0);
@@ -34,7 +89,7 @@ PokemonSpriteManager *ov19_021D7818(UnkStruct_ov19_021D61B0 *param0);
int ov19_021D7820(UnkStruct_ov19_021D61B0 *param0);
void ov19_021D783C(SpriteResourcesHeader *param0, NNSG2dImageProxy *param1, NNSG2dImagePaletteProxy *param2, NNSG2dCellDataBank *param3, NNSG2dCellAnimBankData *param4, u32 param5);
Sprite *ov19_021D785C(SpriteList *param0, SpriteResourcesHeader *param1, u32 param2, u32 param3, u32 param4, int param5);
void ov19_021D78AC(Sprite *param0, u32 param1);
void BoxGraphics_SetSpritePriority(Sprite *sprite, u32 priority);
void ov19_021D78C8(const u16 *param0, u16 *param1, u32 param2, u16 param3, u32 param4);
const UnkStruct_ov19_021D5DF8 *ov19_021D7964(UnkStruct_ov19_021D61B0 *param0);
void ov19_021D79B8(void *param0, UnkFuncPtr_ov19_021D79B8 param1, void *param2);

View File

@@ -28,7 +28,7 @@ void ov19_021D8938(UnkStruct_ov19_021D8318 *param0);
void ov19_021D8988(UnkStruct_ov19_021D8318 *param0, u32 param1, u32 param2);
void ov19_021D89F4(UnkStruct_ov19_021D8318 *param0, u32 param1);
void ov19_021D8A24(UnkStruct_ov19_021D8318 *param0);
void ov19_021D8A6C(UnkStruct_ov19_021D8318 *param0);
void BoxGraphics_ApplyMultiSelectMonShading(UnkStruct_ov19_021D8318 *param0);
void ov19_021D8B14(UnkStruct_ov19_021D8318 *param0);
#endif // POKEPLATINUM_OV19_021D79F8_H

View File

@@ -34,7 +34,7 @@ void ov19_021D9A64(UnkStruct_ov19_021D8E00 *param0);
void ov19_021D9A8C(UnkStruct_ov19_021D8E00 *param0);
void ov19_021D9AB0(UnkStruct_ov19_021D8E00 *param0, u32 param1);
void ov19_021D9AEC(UnkStruct_ov19_021D8E00 *param0);
void ov19_021D9B10(UnkStruct_ov19_021D8E00 *param0);
void BoxGraphics_OpenMultiSelectCursor(UnkStruct_ov19_021D8E00 *param0);
void ov19_021D9B1C(UnkStruct_ov19_021D8E00 *param0, VecFx32 *param1);
void ov19_021D9B34(UnkStruct_ov19_021D8E00 *param0);
BOOL ov19_021D9B64(UnkStruct_ov19_021D8E00 *param0);

View File

@@ -27,7 +27,7 @@ void ov19_021DA744(UnkStruct_ov19_021DA384 *param0, void *param1, u32 param2, u3
void ov19_021DA754(UnkStruct_ov19_021DA384 *param0, UnkStruct_ov19_021DCD18 *param1, u32 param2);
void ov19_021DA7B8(UnkStruct_ov19_021DA384 *param0, UnkStruct_ov19_021DCD18 *param1, u32 param2);
BOOL ov19_021DA7E0(UnkStruct_ov19_021DA384 *param0, UnkStruct_ov19_021DCD18 *param1);
void ov19_021DA7F4(UnkStruct_ov19_021DA384 *param0, UnkStruct_ov19_021DCD18 *param1, BOOL param2);
void BoxGraphics_ApplyMonInMultiSelectShading(UnkStruct_ov19_021DA384 *param0, UnkStruct_ov19_021DCD18 *param1, BOOL isSelected);
NNSG2dCellDataBank *ov19_021DA80C(UnkStruct_ov19_021DA384 *param0);
NNSG2dAnimBankData *ov19_021DA810(UnkStruct_ov19_021DA384 *param0);

View File

@@ -1,10 +1,10 @@
#ifndef POKEPLATINUM_OV19_021DB2FC_H
#define POKEPLATINUM_OV19_021DB2FC_H
#include "overlay019/struct_box_menu.h"
#include "overlay019/struct_ov19_021D4DF0.h"
#include "overlay019/struct_ov19_021D61B0_decl.h"
#include "overlay019/struct_ov19_021DB6F0.h"
#include "overlay019/struct_ov19_021DF964.h"
#include "bg_window.h"
#include "message.h"
@@ -15,10 +15,10 @@ BOOL ov19_021DB2FC(UnkStruct_ov19_021DB6F0 *param0, UnkStruct_ov19_021D61B0 *par
void ov19_021DB370(UnkStruct_ov19_021DB6F0 *param0);
void ov19_021DB3C4(UnkStruct_ov19_021DB6F0 *param0);
void ov19_021DB448(UnkStruct_ov19_021DB6F0 *param0, u32 boxMessageID);
void ov19_021DB57C(UnkStruct_ov19_021DB6F0 *param0, const UnkStruct_ov19_021DF964 *param1);
void ov19_021DB57C(UnkStruct_ov19_021DB6F0 *param0, const BoxMenu *menu);
void ov19_021DB6F0(UnkStruct_ov19_021DB6F0 *param0);
void ov19_021DB724(UnkStruct_ov19_021DB6F0 *param0);
void ov19_021DB748(UnkStruct_ov19_021DB6F0 *param0, const UnkStruct_ov19_021DF964 *param1);
void ov19_021DB790(UnkStruct_ov19_021DB6F0 *param0, const UnkStruct_ov19_021DF964 *param1);
void BoxGraphics_DrawMenuCursorBox(UnkStruct_ov19_021DB6F0 *param0, const BoxMenu *menu);
void ov19_021DB790(UnkStruct_ov19_021DB6F0 *param0, const BoxMenu *menu);
#endif // POKEPLATINUM_OV19_021DB2FC_H

View File

@@ -1,20 +0,0 @@
#ifndef POKEPLATINUM_OV19_021DF964_H
#define POKEPLATINUM_OV19_021DF964_H
#include "overlay019/struct_ov19_021D4DF0.h"
#include "enums.h"
void ov19_021DF964(UnkStruct_ov19_021D4DF0 *param0, u32 param1);
void ov19_021DF990(UnkStruct_ov19_021D4DF0 *param0);
void ov19_021DFAD0(UnkStruct_ov19_021D4DF0 *param0);
void ov19_021DFB50(UnkStruct_ov19_021D4DF0 *param0);
void ov19_021DFB94(UnkStruct_ov19_021D4DF0 *param0, UnkEnum_021DFB94 param1);
void ov19_021DFC04(UnkStruct_ov19_021D4DF0 *param0, UnkEnum_021DFB94 param1);
void ov19_021DFC80(UnkStruct_ov19_021D4DF0 *param0);
void ov19_021DFCE4(UnkStruct_ov19_021D4DF0 *param0, u32 param1);
int ov19_021DFD2C(UnkStruct_ov19_021D4DF0 *param0);
UnkEnum_021DFB94 ov19_021DFDDC(UnkStruct_ov19_021D4DF0 *param0);
UnkEnum_021DFB94 ov19_021DFDEC(UnkStruct_ov19_021D4DF0 *param0);
#endif // POKEPLATINUM_OV19_021DF964_H

View File

@@ -0,0 +1,91 @@
#ifndef POKEPLATINUM_STRUCT_BOX_MENU_H
#define POKEPLATINUM_STRUCT_BOX_MENU_H
enum BoxMenuItem {
BOX_MENU_NAVIGATION_NONE = -3,
BOX_MENU_NAVIGATION_UP_DOWN,
BOX_MENU_NAVIGATION_B,
BOX_MENU_JUMP,
BOX_MENU_WALLPAPER,
BOX_MENU_NAME,
BOX_MENU_HEADER_CANCEL,
BOX_MENU_FIRST_WALLPAPER_PAGE,
BOX_MENU_SCENERY_1 = BOX_MENU_FIRST_WALLPAPER_PAGE,
BOX_MENU_SCENERY_2,
BOX_MENU_SCENERY_3,
BOX_MENU_ETCETERA,
BOX_MENU_LAST_DEFAULT_WALLPAPER_PAGE = BOX_MENU_ETCETERA,
BOX_MENU_FRIENDS_1,
BOX_MENU_FRIENDS_2,
BOX_MENU_LAST_WALLPAPER_PAGE = BOX_MENU_FRIENDS_2,
BOX_MENU_FIRST_WALLPAPER,
BOX_MENU_FOREST = BOX_MENU_FIRST_WALLPAPER,
BOX_MENU_CITY,
BOX_MENU_DESERT,
BOX_MENU_SAVANNA,
BOX_MENU_CRAG,
BOX_MENU_VOLCANO,
BOX_MENU_SNOW,
BOX_MENU_CAVE,
BOX_MENU_BEACH,
BOX_MENU_SEAFLOOR,
BOX_MENU_RIVER,
BOX_MENU_SKY,
BOX_MENU_POKECENTER,
BOX_MENU_MACHINE,
BOX_MENU_CHECKS,
BOX_MENU_SIMPLE,
BOX_MENU_FIRST_UNLOCKABLE_WALLPAPER,
BOX_MENU_DISTORTION = BOX_MENU_FIRST_UNLOCKABLE_WALLPAPER,
BOX_MENU_CONTEST,
BOX_MENU_NOSTALGIC,
BOX_MENU_CROAGUNK,
BOX_MENU_TRIO,
BOX_MENU_PIKAPIKA,
BOX_MENU_LEGEND,
BOX_MENU_TEAM_GALACTIC,
BOX_MENU_LAST_WALLPAPER = BOX_MENU_TEAM_GALACTIC,
BOX_MENU_MOVE,
BOX_MENU_PLACE,
BOX_MENU_SHIFT,
BOX_MENU_SUMMARY,
BOX_MENU_WITHDRAW,
BOX_MENU_STORE,
BOX_MENU_ITEM,
BOX_MENU_MARK,
BOX_MENU_RELEASE,
BOX_MENU_CANCEL,
BOX_MENU_CONFIRM,
BOX_MENU_MARK_CANCEL,
BOX_MENU_GIVE,
BOX_MENU_TAKE,
BOX_MENU_INFO,
BOX_MENU_SWITCH,
BOX_MENU_BAG,
BOX_MENU_ITEMS_CANCEL,
BOX_MENU_SET_ON_LEFT,
BOX_MENU_SET_ON_RIGHT,
BOX_MENU_YES,
BOX_MENU_NO,
BOX_MENU_FIRST_MARKING,
BOX_MENU_CIRCLE = BOX_MENU_FIRST_MARKING,
BOX_MENU_TRIANGLE,
BOX_MENU_SQUARE,
BOX_MENU_HEART,
BOX_MENU_STAR,
BOX_MENU_DIAMOND,
BOX_MENU_LAST_MARKING = BOX_MENU_DIAMOND
};
#define MAX_MENU_ITEMS 8
#define MAX_WALLPAPERS_PER_PAGE 4
typedef struct BoxMenu {
enum BoxMenuItem menuItems[MAX_MENU_ITEMS];
u8 selectedMenuItemIndex;
u8 totalMenuItems;
u8 markings;
u8 unused; // only assigned to, never read from
} BoxMenu;
#endif // POKEPLATINUM_STRUCT_BOX_MENU_H

View File

@@ -8,10 +8,9 @@
#include "overlay019/box_mon_selection.h"
#include "overlay019/box_settings.h"
#include "overlay019/pc_mon_preview.h"
#include "overlay019/struct_box_menu.h"
#include "overlay019/struct_ov19_021D4EE4.h"
#include "overlay019/struct_ov19_021D4F34.h"
#include "overlay019/struct_ov19_021D5D20.h"
#include "overlay019/struct_ov19_021DF964.h"
#include "party.h"
@@ -23,8 +22,8 @@ typedef struct {
BoxCustomization customization;
BoxSettings boxSettings;
PCMonPreview pcMonPreview;
UnkStruct_ov19_021DF964 unk_74;
UnkStruct_ov19_021D5D20 unk_98;
BoxMenu boxMenu;
u32 boxSelectionBoxID;
UnkStruct_ov19_021D4F34 unk_9C;
u8 padding_A2[2];
UnkStruct_ov19_021D4EE4 unk_A4;

View File

@@ -4,7 +4,7 @@
#include "overlay019/pc_compare_mon.h"
typedef struct {
u8 unk_00;
u8 compareMonSlot;
u8 unk_01;
u8 unk_02[2];
BOOL compareButtonAnimationPressed;

View File

@@ -1,8 +0,0 @@
#ifndef POKEPLATINUM_STRUCT_OV19_021D5D20_H
#define POKEPLATINUM_STRUCT_OV19_021D5D20_H
typedef struct {
u32 unk_00;
} UnkStruct_ov19_021D5D20;
#endif // POKEPLATINUM_STRUCT_OV19_021D5D20_H

View File

@@ -1,14 +0,0 @@
#ifndef POKEPLATINUM_STRUCT_OV19_021DF964_H
#define POKEPLATINUM_STRUCT_OV19_021DF964_H
#include "enums.h"
typedef struct {
UnkEnum_021DFB94 unk_00[8];
u8 unk_20;
u8 unk_21;
u8 unk_22;
u8 unk_23;
} UnkStruct_ov19_021DF964;
#endif // POKEPLATINUM_STRUCT_OV19_021DF964_H

View File

@@ -8,7 +8,7 @@
typedef struct {
SaveData *saveData;
enum BoxMode boxMode;
BOOL unk_08;
BOOL recordBoxUseInJournal;
} UnkStruct_02042434;
#endif // POKEPLATINUM_STRUCT_02042434_H

View File

@@ -13,7 +13,7 @@ typedef struct {
int unk_0C;
int unk_10;
int unk_14;
Strbuf *unk_18;
Strbuf *textInputStr;
u16 unk_1C[20];
int unk_44;
PCBoxes *unk_48;

View File

@@ -761,7 +761,7 @@ Overlay overlay19
Object main.nef.p/src_overlay019_ov19_021DCF88.c.o
Object main.nef.p/src_overlay019_ov19_021DE3E8.c.o
Object main.nef.p/src_overlay019_ov19_021DEC04.c.o
Object main.nef.p/src_overlay019_ov19_021DF964.c.o
Object main.nef.p/src_overlay019_box_menu.c.o
}
Overlay overlay20

View File

@@ -10907,7 +10907,7 @@ static void BattleScript_CatchMonTask(SysTask *param0, void *param1)
v3 = BattleSystem_PartyPokemon(v2->battleSys, v1, v2->battleCtx->selectedPartySlot[v1]);
if (v19->unk_14 == 0) {
Pokemon_SetValue(v3, MON_DATA_NICKNAME_STRBUF_AND_FLAG, v19->unk_18);
Pokemon_SetValue(v3, MON_DATA_NICKNAME_STRBUF_AND_FLAG, v19->textInputStr);
ov16_0223F24C(v2->battleSys, (1 + 48));
}

View File

@@ -582,7 +582,7 @@ pokeplatinum_c = files(
'overlay019/ov19_021DCF88.c',
'overlay019/ov19_021DE3E8.c',
'overlay019/ov19_021DEC04.c',
'overlay019/ov19_021DF964.c',
'overlay019/box_menu.c',
'overlay020/ov20_021D0D80.c',
'overlay020/ov20_021D2098.c',
'overlay020/ov20_021D2EA4.c',

299
src/overlay019/box_menu.c Normal file
View File

@@ -0,0 +1,299 @@
#include "overlay019/box_menu.h"
#include <nitro.h>
#include <string.h>
#include "constants/items.h"
#include "struct_decls/pc_boxes_decl.h"
#include "overlay019/ov19_021D0D80.h"
#include "overlay019/pc_mon_preview.h"
#include "overlay019/struct_box_menu.h"
#include "overlay019/struct_ov19_021D4DF0.h"
#include "enums.h"
#include "pc_boxes.h"
#include "sound_playback.h"
#include "system.h"
static void BoxMenu_ClearMenuItems(BoxMenu *menu);
static void BoxMenu_AddMenuItem(BoxMenu *menu, enum BoxMenuItem menuItem);
void BoxMenu_FillYesNo(UnkStruct_ov19_021D4DF0 *param0, u32 menuItemIndex)
{
BoxMenu *menu = &param0->boxMenu;
BoxMenu_ClearMenuItems(menu);
BoxMenu_AddMenuItem(menu, BOX_MENU_YES);
BoxMenu_AddMenuItem(menu, BOX_MENU_NO);
menu->selectedMenuItemIndex = menuItemIndex;
menu->unused = 0;
}
void BoxMenu_FillTopLevelMenuItems(UnkStruct_ov19_021D4DF0 *param0)
{
BoxMenu *menu = &(param0->boxMenu);
BoxMenu_ClearMenuItems(menu);
menu->unused = 1;
switch (ov19_GetBoxMode(param0)) {
case PC_MODE_MOVE_MONS:
default:
if (ov19_GetPreviewMonSource(param0) == PREVIEW_MON_IN_CURSOR) {
BoxMenu_AddMenuItem(menu, ov19_IsMonUnderCursor(param0) ? BOX_MENU_SHIFT : BOX_MENU_PLACE);
} else {
BoxMenu_AddMenuItem(menu, BOX_MENU_MOVE);
}
BoxMenu_AddMenuItem(menu, BOX_MENU_SUMMARY);
const PCMonPreview *preview = ov19_GetPCMonPreview(param0);
if (preview->isEgg == FALSE) {
BoxMenu_AddMenuItem(menu, BOX_MENU_ITEM);
}
BoxMenu_AddMenuItem(menu, (ov19_GetCursorLocation(param0) == CURSOR_IN_BOX) ? BOX_MENU_WITHDRAW : BOX_MENU_STORE);
BoxMenu_AddMenuItem(menu, BOX_MENU_MARK);
BoxMenu_AddMenuItem(menu, BOX_MENU_RELEASE);
BoxMenu_AddMenuItem(menu, BOX_MENU_CANCEL);
break;
case PC_MODE_DEPOSIT:
BoxMenu_AddMenuItem(menu, BOX_MENU_STORE);
BoxMenu_AddMenuItem(menu, BOX_MENU_SUMMARY);
BoxMenu_AddMenuItem(menu, BOX_MENU_MARK);
BoxMenu_AddMenuItem(menu, BOX_MENU_RELEASE);
BoxMenu_AddMenuItem(menu, BOX_MENU_CANCEL);
break;
case PC_MODE_WITHDRAW:
BoxMenu_AddMenuItem(menu, BOX_MENU_WITHDRAW);
BoxMenu_AddMenuItem(menu, BOX_MENU_SUMMARY);
BoxMenu_AddMenuItem(menu, BOX_MENU_MARK);
BoxMenu_AddMenuItem(menu, BOX_MENU_RELEASE);
BoxMenu_AddMenuItem(menu, BOX_MENU_CANCEL);
break;
case PC_MODE_COMPARE:
BoxMenu_AddMenuItem(menu, (ov19_GetCompareMonSlot(param0) == 0) ? BOX_MENU_SET_ON_LEFT : BOX_MENU_SET_ON_RIGHT);
BoxMenu_AddMenuItem(menu, (ov19_GetCursorLocation(param0) == CURSOR_IN_BOX) ? BOX_MENU_WITHDRAW : BOX_MENU_STORE);
BoxMenu_AddMenuItem(menu, BOX_MENU_MARK);
BoxMenu_AddMenuItem(menu, BOX_MENU_CANCEL);
}
}
void BoxMenu_FillItemsMenu(UnkStruct_ov19_021D4DF0 *param0)
{
BoxMenu *menu;
u32 cursorItem, monItem;
menu = &(param0->boxMenu);
cursorItem = ov19_GetCursorItem(param0);
monItem = ov19_GetPreviewedMonHeldItem(param0);
BoxMenu_ClearMenuItems(menu);
menu->unused = 1;
if (cursorItem != ITEM_NONE) {
if (monItem != ITEM_NONE) {
BoxMenu_AddMenuItem(menu, BOX_MENU_SWITCH);
} else {
BoxMenu_AddMenuItem(menu, BOX_MENU_GIVE);
}
BoxMenu_AddMenuItem(menu, BOX_MENU_BAG);
BoxMenu_AddMenuItem(menu, BOX_MENU_INFO);
} else {
if (monItem != ITEM_NONE) {
BoxMenu_AddMenuItem(menu, BOX_MENU_TAKE);
BoxMenu_AddMenuItem(menu, BOX_MENU_BAG);
BoxMenu_AddMenuItem(menu, BOX_MENU_INFO);
} else {
BoxMenu_AddMenuItem(menu, BOX_MENU_GIVE);
}
}
BoxMenu_AddMenuItem(menu, BOX_MENU_ITEMS_CANCEL);
}
void BoxMenu_FillHeaderMenu(UnkStruct_ov19_021D4DF0 *param0)
{
BoxMenu *menu = &(param0->boxMenu);
const PCBoxes *unused = ov19_GetPCBoxes(param0);
BoxMenu_ClearMenuItems(menu);
BoxMenu_AddMenuItem(menu, BOX_MENU_JUMP);
if (ov19_GetBoxMode(param0) != PC_MODE_COMPARE) {
BoxMenu_AddMenuItem(menu, BOX_MENU_WALLPAPER);
BoxMenu_AddMenuItem(menu, BOX_MENU_NAME);
}
BoxMenu_AddMenuItem(menu, BOX_MENU_HEADER_CANCEL);
menu->unused = 2;
}
void BoxMenu_FillWallpaperMenu(UnkStruct_ov19_021D4DF0 *param0, enum BoxMenuItem menuItem)
{
BoxMenu *menu = &(param0->boxMenu);
const PCBoxes *pcBoxes = ov19_GetPCBoxes(param0);
u32 numUnlockedWallpapers;
BoxMenu_ClearMenuItems(menu);
BoxMenu_AddMenuItem(menu, BOX_MENU_SCENERY_1);
BoxMenu_AddMenuItem(menu, BOX_MENU_SCENERY_2);
BoxMenu_AddMenuItem(menu, BOX_MENU_SCENERY_3);
BoxMenu_AddMenuItem(menu, BOX_MENU_ETCETERA);
numUnlockedWallpapers = PCBoxes_CountUnlockedWallpapers(pcBoxes);
if (numUnlockedWallpapers > 0) {
BoxMenu_AddMenuItem(menu, BOX_MENU_FRIENDS_1);
}
if (numUnlockedWallpapers > 4) {
BoxMenu_AddMenuItem(menu, BOX_MENU_FRIENDS_2);
}
menu->unused = 3;
if (menuItem >= BOX_MENU_FIRST_WALLPAPER_PAGE && menuItem <= BOX_MENU_LAST_WALLPAPER_PAGE) {
menu->selectedMenuItemIndex = menuItem - BOX_MENU_FIRST_WALLPAPER_PAGE;
} else {
GF_ASSERT(0);
}
}
void BoxMenu_FillWallpaperSelectionMenu(UnkStruct_ov19_021D4DF0 *param0, enum BoxMenuItem menuItem)
{
static const u16 sWallpaperPages[][MAX_WALLPAPERS_PER_PAGE] = {
{ BOX_MENU_FOREST, BOX_MENU_CITY, BOX_MENU_DESERT, BOX_MENU_SAVANNA },
{ BOX_MENU_CRAG, BOX_MENU_VOLCANO, BOX_MENU_SNOW, BOX_MENU_CAVE },
{ BOX_MENU_BEACH, BOX_MENU_SEAFLOOR, BOX_MENU_RIVER, BOX_MENU_SKY },
{ BOX_MENU_POKECENTER, BOX_MENU_MACHINE, BOX_MENU_CHECKS, BOX_MENU_SIMPLE },
};
BoxMenu *menu = &(param0->boxMenu);
const PCBoxes *pcBoxes = ov19_GetPCBoxes(param0);
int i;
BoxMenu_ClearMenuItems(menu);
if (menuItem >= BOX_MENU_FIRST_WALLPAPER_PAGE && menuItem <= BOX_MENU_LAST_DEFAULT_WALLPAPER_PAGE) {
menuItem -= BOX_MENU_FIRST_WALLPAPER_PAGE;
for (i = 0; i < MAX_WALLPAPERS_PER_PAGE; i++) {
BoxMenu_AddMenuItem(menu, sWallpaperPages[menuItem][i]);
}
} else { // unlockable wallpapers
int firstUnlockedWallpaperPageCount = 0;
int addedWallpaperCount = 0;
if (menuItem == BOX_MENU_FRIENDS_2) {
firstUnlockedWallpaperPageCount = 4;
}
for (i = 0; i < MAX_UNLOCKABLE_WALLPAPERS; i++) {
if (PCBoxes_CheckHasUnlockedWallpaper(pcBoxes, i)) {
if (firstUnlockedWallpaperPageCount) {
firstUnlockedWallpaperPageCount--;
} else {
BoxMenu_AddMenuItem(menu, BOX_MENU_FIRST_UNLOCKABLE_WALLPAPER + i);
if (++addedWallpaperCount >= MAX_WALLPAPERS_PER_PAGE) {
break;
}
}
}
}
}
menu->unused = 3;
}
void BoxMenu_FillMarkingsMenu(UnkStruct_ov19_021D4DF0 *param0)
{
BoxMenu *menu = &(param0->boxMenu);
BoxMenu_ClearMenuItems(menu);
menu->unused = 4;
menu->markings = param0->pcMonPreview.markings;
BoxMenu_AddMenuItem(menu, BOX_MENU_CIRCLE);
BoxMenu_AddMenuItem(menu, BOX_MENU_TRIANGLE);
BoxMenu_AddMenuItem(menu, BOX_MENU_SQUARE);
BoxMenu_AddMenuItem(menu, BOX_MENU_HEART);
BoxMenu_AddMenuItem(menu, BOX_MENU_STAR);
BoxMenu_AddMenuItem(menu, BOX_MENU_DIAMOND);
BoxMenu_AddMenuItem(menu, BOX_MENU_CONFIRM);
BoxMenu_AddMenuItem(menu, BOX_MENU_MARK_CANCEL);
}
void BoxMenu_ToggleMarking(UnkStruct_ov19_021D4DF0 *param0, u32 marking)
{
BoxMenu *menu = &(param0->boxMenu);
menu->markings ^= (1 << marking);
}
static void BoxMenu_ClearMenuItems(BoxMenu *menu)
{
menu->totalMenuItems = 0;
menu->selectedMenuItemIndex = 0;
}
static void BoxMenu_AddMenuItem(BoxMenu *menu, enum BoxMenuItem menuItem)
{
if (menu->totalMenuItems < MAX_MENU_ITEMS) {
menu->menuItems[menu->totalMenuItems++] = menuItem;
}
}
enum BoxMenuItem BoxMenu_GetMenuNavigation(UnkStruct_ov19_021D4DF0 *param0)
{
BoxMenu *menu = &(param0->boxMenu);
if (JOY_NEW(PAD_KEY_UP)) {
if (menu->selectedMenuItemIndex) {
menu->selectedMenuItemIndex--;
return BOX_MENU_NAVIGATION_UP_DOWN;
} else if (menu->totalMenuItems >= 3) {
menu->selectedMenuItemIndex = menu->totalMenuItems - 1;
return BOX_MENU_NAVIGATION_UP_DOWN;
}
}
if (JOY_NEW(PAD_KEY_DOWN)) {
if (menu->selectedMenuItemIndex < (menu->totalMenuItems - 1)) {
menu->selectedMenuItemIndex++;
return BOX_MENU_NAVIGATION_UP_DOWN;
} else if (menu->totalMenuItems >= 3) {
menu->selectedMenuItemIndex = 0;
return BOX_MENU_NAVIGATION_UP_DOWN;
}
}
if (JOY_NEW(PAD_BUTTON_B)) {
Sound_PlayEffect(SEQ_SE_DP_DECIDE);
return BOX_MENU_NAVIGATION_B;
}
if (JOY_NEW(PAD_BUTTON_A)) {
Sound_PlayEffect(SEQ_SE_DP_DECIDE);
return menu->menuItems[menu->selectedMenuItemIndex];
}
return BOX_MENU_NAVIGATION_NONE;
}
enum BoxMenuItem BoxMenu_GetSelectedMenuItem(UnkStruct_ov19_021D4DF0 *param0)
{
BoxMenu *menu = &(param0->boxMenu);
return menu->menuItems[menu->selectedMenuItemIndex];
}
enum BoxMenuItem BoxMenu_GetDefaultMenuItem(UnkStruct_ov19_021D4DF0 *param0)
{
BoxMenu *menu = &(param0->boxMenu);
return menu->menuItems[0];
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -153,18 +153,18 @@ static void ov19_021D7AF4(const UnkStruct_ov19_021D8318 *param0, int param1, u32
}
}
void ov19_021D7B4C(UnkStruct_ov19_021D8318 *param0, const BoxCustomization *customization, int param2, BOOL param3)
void ov19_021D7B4C(UnkStruct_ov19_021D8318 *param0, const BoxCustomization *customization, int boxChangeDirection, BOOL param3)
{
u32 v0, v1, v2;
ov19_021D7AF4(param0, param2, &v0, &v1, &v2);
ov19_021D7AF4(param0, boxChangeDirection, &v0, &v1, &v2);
ov19_021D7BC0(param0, customization, v2, param3);
ov19_021D7C58(param0, customization, v0);
ov19_021D7D00(param0, customization, v1, v0, v2);
if (param3) {
if (param2 == 0) {
ov19_021D85C4(param0, param0->unk_58F0, customization->boxID, param0->unk_02, param2 * ((21 + 2) * 8), param0->unk_A8[param0->unk_02]);
if (boxChangeDirection == 0) {
ov19_021D85C4(param0, param0->unk_58F0, customization->boxID, param0->unk_02, boxChangeDirection * ((21 + 2) * 8), param0->unk_A8[param0->unk_02]);
}
}
}
@@ -172,7 +172,7 @@ void ov19_021D7B4C(UnkStruct_ov19_021D8318 *param0, const BoxCustomization *cust
static void ov19_021D7BC0(UnkStruct_ov19_021D8318 *param0, const BoxCustomization *customization, int param2, BOOL param3)
{
NNSG2dPaletteData *v0;
void *v1 = Graphics_GetPlttData(NARC_INDEX_GRAPHIC__BOX, Unk_ov19_021E0178[customization->wallpaper].unk_02, &v0, HEAP_ID_10);
void *v1 = Graphics_GetPlttData(NARC_INDEX_GRAPHIC__BOX, Unk_ov19_021E0178[customization->wallpaper].unk_02, &v0, HEAP_ID_BOX_GRAPHICS);
if (v1) {
int v2;
@@ -196,7 +196,7 @@ static void ov19_021D7BC0(UnkStruct_ov19_021D8318 *param0, const BoxCustomizatio
static void ov19_021D7C58(UnkStruct_ov19_021D8318 *param0, const BoxCustomization *customization, int param2)
{
void *v0 = LoadMemberFromNARC(NARC_INDEX_GRAPHIC__BOX, Unk_ov19_021E0178[customization->wallpaper].unk_01, TRUE, HEAP_ID_10, TRUE);
void *v0 = LoadMemberFromNARC(NARC_INDEX_GRAPHIC__BOX, Unk_ov19_021E0178[customization->wallpaper].unk_01, TRUE, HEAP_ID_BOX_GRAPHICS, TRUE);
if (v0 != NULL) {
NNSG2dCharacterData *v1;
@@ -204,7 +204,7 @@ static void ov19_021D7C58(UnkStruct_ov19_021D8318 *param0, const BoxCustomizatio
if (NNS_G2dGetUnpackedBGCharacterData(v0, &v1)) {
Window *v2;
v2 = Window_New(HEAP_ID_10, 1);
v2 = Window_New(HEAP_ID_BOX_GRAPHICS, 1);
if (v2) {
u32 v3, v4;
@@ -230,7 +230,7 @@ static void ov19_021D7C58(UnkStruct_ov19_021D8318 *param0, const BoxCustomizatio
static void ov19_021D7D00(UnkStruct_ov19_021D8318 *param0, const BoxCustomization *customization, u32 param2, u32 param3, u32 param4)
{
void *v0 = LoadMemberFromNARC(NARC_INDEX_GRAPHIC__BOX, Unk_ov19_021E0178[customization->wallpaper].unk_00, TRUE, HEAP_ID_10, TRUE);
void *v0 = LoadMemberFromNARC(NARC_INDEX_GRAPHIC__BOX, Unk_ov19_021E0178[customization->wallpaper].unk_00, TRUE, HEAP_ID_BOX_GRAPHICS, TRUE);
if (v0) {
u16 *v1;
@@ -248,22 +248,22 @@ static void ov19_021D7D00(UnkStruct_ov19_021D8318 *param0, const BoxCustomizatio
}
}
void ov19_021D7D70(UnkStruct_ov19_021D8318 *param0, const BoxCustomization *customization, int param2)
void ov19_021D7D70(UnkStruct_ov19_021D8318 *param0, const BoxCustomization *customization, int boxChangeDirection)
{
param0->unk_08 = (Bg_GetXOffset(param0->unk_58F4, 3) & (REG_G2_BG3HOFS_OFFSET_MASK)) << FX32_SHIFT;
param0->unk_14 = param0->unk_08 + ((((21 + 2) * 8) * param2) << FX32_SHIFT);
param0->unk_14 = param0->unk_08 + ((((21 + 2) * 8) * boxChangeDirection) << FX32_SHIFT);
param0->unk_10 = (param0->unk_14 - param0->unk_08) / (15 * 2);
param0->unk_14 >>= FX32_SHIFT;
param0->unk_14 &= (REG_G2_BG3HOFS_OFFSET_MASK);
param0->unk_04 = (15 * 2);
param0->unk_03 = param0->unk_02;
param0->unk_01 += ((21 + 2) * param2);
param0->unk_01 += ((21 + 2) * boxChangeDirection);
param0->unk_01 &= 63;
param0->unk_02 ^= 1;
{
ov19_021D813C(param0, customization->boxID);
ov19_021D7F14(param0, param0->unk_10, param2 * ((21 + 2) * 8));
ov19_021D7F14(param0, param0->unk_10, boxChangeDirection * ((21 + 2) * 8));
param0->unk_30 = customization->boxID;
param0->unk_34 = param0->unk_02;
@@ -438,7 +438,7 @@ static void ov19_021D81B8(UnkStruct_ov19_021D8318 *param0, int param1, int param
UnkStruct_ov19_021D81B8 *v0;
param0->unk_A3 = 0;
v0 = Heap_AllocFromHeap(HEAP_ID_10, sizeof(UnkStruct_ov19_021D81B8));
v0 = Heap_AllocFromHeap(HEAP_ID_BOX_GRAPHICS, sizeof(UnkStruct_ov19_021D81B8));
if (v0) {
v0->unk_00 = param0;
@@ -569,16 +569,16 @@ void ov19_021D845C(UnkStruct_ov19_021D8318 *param0, u32 param1, const UnkStruct_
v0 = 88 + (param0->unk_02 * 480) + ((4 * 4) * param1);
v1 = &param0->unk_A8[param0->unk_02][param1];
ov19_021DA418(param2, v1, 1);
ov19_021DA7F4(param0->unk_58F0, v1, 0);
BoxGraphics_ApplyMonInMultiSelectShading(param0->unk_58F0, v1, FALSE);
ov19_021DA754(param0->unk_58F0, v1, v0);
ov19_021D78AC(v1->unk_00, ov19_021D85B4(param1));
BoxGraphics_SetSpritePriority(v1->unk_00, ov19_021D85B4(param1));
ov19_021D89F4(param0, param1);
}
UnkStruct_ov19_021DCD18 *ov19_021D84C8(UnkStruct_ov19_021D8318 *param0, u32 param1)
UnkStruct_ov19_021DCD18 *ov19_021D84C8(UnkStruct_ov19_021D8318 *param0, u32 posInBox)
{
return &param0->unk_A8[param0->unk_02][param1];
return &param0->unk_A8[param0->unk_02][posInBox];
}
void ov19_021D84E0(UnkStruct_ov19_021D8318 *param0)
@@ -782,12 +782,12 @@ static void ov19_021D8764(u16 *param0, const u16 *param1, u32 param2, u32 param3
}
}
void ov19_021D8860(UnkStruct_ov19_021D8318 *param0, u32 param1)
void ov19_021D8860(UnkStruct_ov19_021D8318 *param0, u32 boxCursorPosition)
{
param0->unk_A0 = param1;
param0->unk_A0 = boxCursorPosition;
param0->unk_A4 = 0;
ov19_021DA7B8(param0->unk_58F0, &(param0->unk_A8[param0->unk_02][param1]), 1);
ov19_021DA7B8(param0->unk_58F0, &(param0->unk_A8[param0->unk_02][boxCursorPosition]), 1);
}
BOOL ov19_021D8898(UnkStruct_ov19_021D8318 *param0)
@@ -799,10 +799,10 @@ BOOL ov19_021D8898(UnkStruct_ov19_021D8318 *param0)
if (ov19_021DA7E0(param0->unk_58F0, v0)) {
const UnkStruct_ov19_021D5DF8 *v1 = ov19_021D7964(param0->unk_58FC);
if (ov19_021D3B18(v1)) {
if (ov19_021D3B20(v1)) {
if (ov19_HasCheckedCanReleaseMon(v1)) {
if (ov19_CanReleaseMon(v1)) {
ov19_021DA3F0(param0->unk_58F0, v0, 1);
return 1;
return TRUE;
} else {
ov19_021DA7B8(param0->unk_58F0, v0, 2);
param0->unk_A4++;
@@ -814,12 +814,12 @@ BOOL ov19_021D8898(UnkStruct_ov19_021D8318 *param0)
case 1:
if (ov19_021DA7E0(param0->unk_58F0, v0)) {
return 1;
return TRUE;
}
break;
}
return 0;
return FALSE;
}
void ov19_021D8938(UnkStruct_ov19_021D8318 *param0)
@@ -862,36 +862,34 @@ void ov19_021D8A24(UnkStruct_ov19_021D8318 *param0)
}
}
void ov19_021D8A6C(UnkStruct_ov19_021D8318 *param0)
void BoxGraphics_ApplyMultiSelectMonShading(UnkStruct_ov19_021D8318 *param0)
{
u32 v0, v1, v2, v3, v4, v5, v6;
u32 leftCol, rightCol, topRow, bottomRow, col, row, posInBox;
ov19_GetMultiSelectBoundingBox(param0->unk_58F8, &v0, &v1, &v2, &v3);
ov19_GetMultiSelectBoundingBox(param0->unk_58F8, &leftCol, &rightCol, &topRow, &bottomRow);
v6 = 0;
posInBox = 0;
for (v5 = 0; v5 < 5; v5++) {
for (v4 = 0; v4 < 6; v4++) {
if (param0->unk_A8[param0->unk_02][v6].unk_00 != NULL) {
if (((u32)(v4 - v0) <= (u32)(v1 - v0)) & ((u32)(v5 - v2) <= (u32)(v3 - v2))) {
ov19_021DA7F4(param0->unk_58F0, &(param0->unk_A8[param0->unk_02][v6]), 1);
for (row = 0; row < MAX_PC_ROWS; row++) {
for (col = 0; col < MAX_PC_COLS; col++) {
if (param0->unk_A8[param0->unk_02][posInBox].unk_00 != NULL) {
if (((u32)(col - leftCol) <= (u32)(rightCol - leftCol)) & ((u32)(row - topRow) <= (u32)(bottomRow - topRow))) {
BoxGraphics_ApplyMonInMultiSelectShading(param0->unk_58F0, &(param0->unk_A8[param0->unk_02][posInBox]), TRUE);
} else {
ov19_021DA7F4(param0->unk_58F0, &(param0->unk_A8[param0->unk_02][v6]), 0);
BoxGraphics_ApplyMonInMultiSelectShading(param0->unk_58F0, &(param0->unk_A8[param0->unk_02][posInBox]), FALSE);
}
}
v6++;
posInBox++;
}
}
}
void ov19_021D8B14(UnkStruct_ov19_021D8318 *param0)
{
int v0;
for (v0 = 0; v0 < (5 * 6); v0++) {
if (param0->unk_A8[param0->unk_02][v0].unk_00 != NULL) {
ov19_021DA7F4(param0->unk_58F0, &(param0->unk_A8[param0->unk_02][v0]), 0);
for (int i = 0; i < MAX_MONS_PER_BOX; i++) {
if (param0->unk_A8[param0->unk_02][i].unk_00 != NULL) {
BoxGraphics_ApplyMonInMultiSelectShading(param0->unk_58F0, &(param0->unk_A8[param0->unk_02][i]), FALSE);
}
}
}

View File

@@ -82,8 +82,8 @@ BOOL ov19_021D8B54(UnkStruct_ov19_021D8E00 *param0, UnkStruct_ov19_021D61B0 *par
param0->unk_10 = NULL;
param0->unk_754 = 0;
param0->unk_78E = 1;
param0->unk_14 = Graphics_GetCellBankFromOpenNARC(param4, 13, 1, &(param0->unk_1C), HEAP_ID_10);
param0->unk_18 = Graphics_GetAnimBankFromOpenNARC(param4, 14, 1, &(param0->unk_20), HEAP_ID_10);
param0->unk_14 = Graphics_GetCellBankFromOpenNARC(param4, 13, 1, &(param0->unk_1C), HEAP_ID_BOX_GRAPHICS);
param0->unk_18 = Graphics_GetAnimBankFromOpenNARC(param4, 14, 1, &(param0->unk_20), HEAP_ID_BOX_GRAPHICS);
if ((param0->unk_14 == NULL) || (param0->unk_18 == NULL)) {
return 0;
@@ -535,7 +535,7 @@ BOOL ov19_021D9530(UnkStruct_ov19_021D8E00 *param0)
static void ov19_021D9554(UnkStruct_ov19_021D8E00 *param0, Sprite *param1, fx32 param2, s32 param3, u32 param4)
{
UnkStruct_ov19_021D9554 *v0 = Heap_AllocFromHeap(HEAP_ID_10, sizeof(UnkStruct_ov19_021D9554));
UnkStruct_ov19_021D9554 *v0 = Heap_AllocFromHeap(HEAP_ID_BOX_GRAPHICS, sizeof(UnkStruct_ov19_021D9554));
if (v0) {
VecFx32 v1;
@@ -588,7 +588,7 @@ static void ov19_021D9600(SysTask *param0, void *param1)
v0->unk_04--;
if (v0->unk_04 == v0->unk_06) {
ov19_021D78AC(v0->unk_00, v0->unk_08);
BoxGraphics_SetSpritePriority(v0->unk_00, v0->unk_08);
}
v0->unk_0C += v0->unk_1C;
@@ -749,8 +749,8 @@ BOOL ov19_021D995C(UnkStruct_ov19_021D8E00 *param0)
}
break;
case 1:
if (ov19_021D3B18(v0)) {
if (ov19_021D3B20(v0)) {
if (ov19_HasCheckedCanReleaseMon(v0)) {
if (ov19_CanReleaseMon(v0)) {
Sprite_SetAnim(param0->unk_04, 0);
ov19_021DA204(param0);
return 1;
@@ -833,7 +833,7 @@ void ov19_021D9AEC(UnkStruct_ov19_021D8E00 *param0)
}
}
void ov19_021D9B10(UnkStruct_ov19_021D8E00 *param0)
void BoxGraphics_OpenMultiSelectCursor(UnkStruct_ov19_021D8E00 *param0)
{
Sprite_SetAnim(param0->unk_04, 1);
}
@@ -1069,7 +1069,7 @@ static void ov19_021DA038(UnkStruct_ov19_021D8E00 *param0)
int v0;
for (v0 = 0; v0 < param0->unk_754; v0++) {
ov19_021D78AC(param0->unk_4C[v0].unk_00, 2);
BoxGraphics_SetSpritePriority(param0->unk_4C[v0].unk_00, 2);
}
param0->unk_78C = 1;

View File

@@ -23,12 +23,12 @@ BOOL ov19_021DA270(UnkStruct_ov19_021DA384 *param0, UnkStruct_ov19_021D61B0 *par
NNSG2dPaletteData *v1;
void *v2;
param0->unk_48 = NARC_ctor(NARC_INDEX_POKETOOL__ICONGRA__PL_POKE_ICON, HEAP_ID_10);
param0->unk_48 = NARC_ctor(NARC_INDEX_POKETOOL__ICONGRA__PL_POKE_ICON, HEAP_ID_BOX_GRAPHICS);
NNS_G2dInitImagePaletteProxy(&v0);
Graphics_LoadPartialPaletteFromOpenNARC(param0->unk_48, PokeIconPalettesFileIndex(), NNS_G2D_VRAM_TYPE_2DMAIN, 2 * 0x20, 10, &v0);
v2 = Graphics_GetPlttDataFromOpenNARC(param0->unk_48, PokeIconPalettesFileIndex(), &v1, HEAP_ID_10);
v2 = Graphics_GetPlttDataFromOpenNARC(param0->unk_48, PokeIconPalettesFileIndex(), &v1, HEAP_ID_BOX_GRAPHICS);
if (v2) {
BOOL v3;
@@ -47,10 +47,10 @@ BOOL ov19_021DA270(UnkStruct_ov19_021DA384 *param0, UnkStruct_ov19_021D61B0 *par
Heap_FreeToHeap(v2);
}
param0->unk_08 = Graphics_GetCellBankFromOpenNARC(param4, 21, 1, &(param0->unk_10), HEAP_ID_10);
param0->unk_00 = Graphics_GetAnimBankFromOpenNARC(param4, 22, 1, &(param0->unk_04), HEAP_ID_10);
param0->unk_14 = Graphics_GetCellBankFromOpenNARC(param4, 23, 1, &(param0->unk_1C), HEAP_ID_10);
param0->unk_18 = Graphics_GetAnimBankFromOpenNARC(param4, 24, 1, &(param0->unk_20), HEAP_ID_10);
param0->unk_08 = Graphics_GetCellBankFromOpenNARC(param4, 21, 1, &(param0->unk_10), HEAP_ID_BOX_GRAPHICS);
param0->unk_00 = Graphics_GetAnimBankFromOpenNARC(param4, 22, 1, &(param0->unk_04), HEAP_ID_BOX_GRAPHICS);
param0->unk_14 = Graphics_GetCellBankFromOpenNARC(param4, 23, 1, &(param0->unk_1C), HEAP_ID_BOX_GRAPHICS);
param0->unk_18 = Graphics_GetAnimBankFromOpenNARC(param4, 24, 1, &(param0->unk_20), HEAP_ID_BOX_GRAPHICS);
if ((param0->unk_08 == NULL) || (param0->unk_00 == NULL) || (param0->unk_48 == NULL)) {
return 0;
@@ -282,9 +282,9 @@ BOOL ov19_021DA7E0(UnkStruct_ov19_021DA384 *param0, UnkStruct_ov19_021DCD18 *par
return Sprite_IsAnimated(param1->unk_00) == 0;
}
void ov19_021DA7F4(UnkStruct_ov19_021DA384 *param0, UnkStruct_ov19_021DCD18 *param1, BOOL param2)
void BoxGraphics_ApplyMonInMultiSelectShading(UnkStruct_ov19_021DA384 *param0, UnkStruct_ov19_021DCD18 *param1, BOOL isSelected)
{
u32 v0 = ((param2) ? 6 : 2) + param1->unk_2C;
u32 v0 = ((isSelected) ? 6 : 2) + param1->unk_2C;
Sprite_SetExplicitPalette(param1->unk_00, v0);
}

View File

@@ -20,8 +20,8 @@ BOOL ov19_021DA814(UnkStruct_ov19_021DA8D8 *param0, UnkStruct_ov19_021D61B0 *par
param0->unk_40 = param2;
param0->unk_00 = param3;
param0->unk_04 = NULL;
param0->unk_08 = Graphics_GetCellBankFromOpenNARC(param4, 10, 1, &(param0->unk_10), HEAP_ID_10);
param0->unk_0C = Graphics_GetAnimBankFromOpenNARC(param4, 11, 1, &(param0->unk_14), HEAP_ID_10);
param0->unk_08 = Graphics_GetCellBankFromOpenNARC(param4, 10, 1, &(param0->unk_10), HEAP_ID_BOX_GRAPHICS);
param0->unk_0C = Graphics_GetAnimBankFromOpenNARC(param4, 11, 1, &(param0->unk_14), HEAP_ID_BOX_GRAPHICS);
if ((param0->unk_08 == NULL) || (param0->unk_0C == NULL)) {
return 0;

View File

@@ -64,13 +64,13 @@ BOOL ov19_021DA92C(UnkStruct_ov19_021DA9E0 *param0, UnkStruct_ov19_021D61B0 *par
param0->unk_4C = NULL;
param0->unk_24 = NULL;
param0->unk_20 = ov19_021D7818(param1);
param0->unk_18 = sub_0200C440(9, 6, 15, HEAP_ID_10);
param0->unk_1C = sub_0200C440(1, 2, 15, HEAP_ID_10);
param0->unk_28 = Graphics_GetCellBankFromOpenNARC(param6, 16, 1, &(param0->unk_2C), HEAP_ID_10);
param0->unk_18 = sub_0200C440(9, 6, 15, HEAP_ID_BOX_GRAPHICS);
param0->unk_1C = sub_0200C440(1, 2, 15, HEAP_ID_BOX_GRAPHICS);
param0->unk_28 = Graphics_GetCellBankFromOpenNARC(param6, 16, 1, &(param0->unk_2C), HEAP_ID_BOX_GRAPHICS);
param0->unk_30 = NULL;
param0->unk_44 = MessageLoader_GetNewStrbuf(param5, 21);
param0->unk_48 = MessageLoader_GetNewStrbuf(param5, 22);
param0->unk_34 = Graphics_GetCellBank(TypeIcon_GetNARC(), TypeIcon_GetCell(), 1, &(param0->unk_38), HEAP_ID_10);
param0->unk_34 = Graphics_GetCellBank(TypeIcon_GetNARC(), TypeIcon_GetCell(), 1, &(param0->unk_38), HEAP_ID_BOX_GRAPHICS);
for (v0 = 0; v0 < 2; v0++) {
param0->unk_3C[v0] = NULL;
@@ -179,7 +179,7 @@ void ov19_021DAADC(UnkStruct_ov19_021DA9E0 *param0)
return;
}
param0->unk_04 = Window_New(HEAP_ID_10, 4);
param0->unk_04 = Window_New(HEAP_ID_BOX_GRAPHICS, 4);
if (param0->unk_04) {
int v1;
@@ -211,7 +211,7 @@ static void ov19_021DAB44(UnkStruct_ov19_021DA9E0 *param0)
narcID = TypeIcon_GetNARC();
v3 = TypeIcon_GetChar(2);
Graphics_LoadPalette(narcID, TypeIcon_GetPlttSrc(), 1, 10 * 0x20, 0x20 * 3, HEAP_ID_10);
Graphics_LoadPalette(narcID, TypeIcon_GetPlttSrc(), 1, 10 * 0x20, 0x20 * 3, HEAP_ID_BOX_GRAPHICS);
for (i = 0; i < 2; i++) {
NNS_G2dInitImageProxy(&v0);
@@ -235,7 +235,7 @@ static void ov19_021DAB44(UnkStruct_ov19_021DA9E0 *param0)
static void ov19_021DAC4C(UnkStruct_ov19_021DA9E0 *param0)
{
if (param0->unk_4C == NULL) {
UnkStruct_ov19_021DAE2C *v0 = Heap_AllocFromHeap(HEAP_ID_10, sizeof(UnkStruct_ov19_021DAE2C));
UnkStruct_ov19_021DAE2C *v0 = Heap_AllocFromHeap(HEAP_ID_BOX_GRAPHICS, sizeof(UnkStruct_ov19_021DAE2C));
if (v0) {
const PCMonPreview *preview = ov19_GetPCMonPreview(param0->unk_10);
@@ -405,7 +405,7 @@ static void ov19_021DAE60(Window *param0, UnkStruct_ov19_021DA9E0 *param1, u32 p
v3 = TypeIcon_GetNARC();
v4 = TypeIcon_GetChar(param1->unk_10->pcMonPreview.type1);
Graphics_LoadObjectTiles(TypeIcon_GetNARC(), TypeIcon_GetChar(param1->unk_10->pcMonPreview.type1), 0, 1504 * 0x20, 0, 1, HEAP_ID_10);
Graphics_LoadObjectTiles(TypeIcon_GetNARC(), TypeIcon_GetChar(param1->unk_10->pcMonPreview.type1), 0, 1504 * 0x20, 0, 1, HEAP_ID_BOX_GRAPHICS);
v2 = *Sprite_GetPosition(param1->unk_3C[0]);
v2.y = (176 + (16 * param3)) << FX32_SHIFT;
@@ -415,7 +415,7 @@ static void ov19_021DAE60(Window *param0, UnkStruct_ov19_021DA9E0 *param1, u32 p
Sprite_SetDrawFlag(param1->unk_3C[0], 1);
if (param1->unk_10->pcMonPreview.type1 != param1->unk_10->pcMonPreview.type2) {
Graphics_LoadObjectTiles(TypeIcon_GetNARC(), TypeIcon_GetChar(param1->unk_10->pcMonPreview.type2), 0, (1504 + 8) * 0x20, 0, 1, HEAP_ID_10);
Graphics_LoadObjectTiles(TypeIcon_GetNARC(), TypeIcon_GetChar(param1->unk_10->pcMonPreview.type2), 0, (1504 + 8) * 0x20, 0, 1, HEAP_ID_BOX_GRAPHICS);
v2.x += (36 << FX32_SHIFT);

View File

@@ -3,10 +3,10 @@
#include <nitro.h>
#include <string.h>
#include "overlay019/struct_box_menu.h"
#include "overlay019/struct_ov19_021D4DF0.h"
#include "overlay019/struct_ov19_021D61B0_decl.h"
#include "overlay019/struct_ov19_021DB6F0.h"
#include "overlay019/struct_ov19_021DF964.h"
#include "bg_window.h"
#include "enums.h"
@@ -22,27 +22,27 @@
#include "text.h"
static void ov19_021DB4B4(BgConfig *param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5);
static void ov19_021DB638(UnkStruct_ov19_021DB6F0 *param0, Window *param1, u8 param2, u32 param3);
static void ov19_021DB638(UnkStruct_ov19_021DB6F0 *param0, Window *param1, u8 markings, u32 param3);
static void ov19_021DB684(UnkStruct_ov19_021DB6F0 *param0, u32 param1);
static void ov19_021DB7BC(BgConfig *param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5);
static void ov19_021DB84C(BgConfig *param0, Window *param1);
static void ov19_021DB898(BgConfig *param0, Window *param1);
BOOL ov19_021DB2FC(UnkStruct_ov19_021DB6F0 *param0, UnkStruct_ov19_021D61B0 *param1, const UnkStruct_ov19_021D4DF0 *param2, BgConfig *param3, SpriteList *param4, MessageLoader *param5, const StringTemplate *param6, int param7, NARC *param8)
BOOL ov19_021DB2FC(UnkStruct_ov19_021DB6F0 *param0, UnkStruct_ov19_021D61B0 *param1, const UnkStruct_ov19_021D4DF0 *param2, BgConfig *param3, SpriteList *param4, MessageLoader *boxMessagesLoader, const StringTemplate *messageVariableBuffer, int optionsFrame, NARC *param8)
{
param0->unk_0C = param1;
param0->unk_00 = param3;
param0->unk_08 = param2;
param0->unk_2C = param6;
param0->unk_20 = param7;
param0->unk_10 = param5;
param0->unk_14 = MessageLoader_Init(MESSAGE_LOADER_BANK_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_POKEMON_STORAGE_SYSTEM, HEAP_ID_10);
param0->unk_30 = Strbuf_Init(64, HEAP_ID_10);
param0->unk_34 = Strbuf_Init(64, HEAP_ID_10);
param0->unk_2C = messageVariableBuffer;
param0->unk_20 = optionsFrame;
param0->unk_10 = boxMessagesLoader;
param0->unk_14 = MessageLoader_Init(MESSAGE_LOADER_BANK_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_POKEMON_STORAGE_SYSTEM, HEAP_ID_BOX_GRAPHICS);
param0->unk_30 = Strbuf_Init(64, HEAP_ID_BOX_GRAPHICS);
param0->unk_34 = Strbuf_Init(64, HEAP_ID_BOX_GRAPHICS);
param0->unk_1C = 0;
param0->unk_1E = 0;
param0->unk_18 = NULL;
param0->unk_24 = Graphics_GetCharDataFromOpenNARC(param8, 25, 1, &(param0->unk_28), HEAP_ID_10);
param0->unk_24 = Graphics_GetCharDataFromOpenNARC(param8, 25, 1, &(param0->unk_28), HEAP_ID_BOX_GRAPHICS);
if ((param0->unk_24 == NULL) || (param0->unk_30 == NULL) || (param0->unk_34 == NULL)) {
return 0;
@@ -88,7 +88,7 @@ void ov19_021DB3C4(UnkStruct_ov19_021DB6F0 *param0)
{ 1, 19, 3, 12, 16, 4, 593 }
};
param0->unk_18 = Window_New(HEAP_ID_10, 2);
param0->unk_18 = Window_New(HEAP_ID_BOX_GRAPHICS, 2);
if (param0->unk_18) {
int v1;
@@ -98,9 +98,9 @@ void ov19_021DB3C4(UnkStruct_ov19_021DB6F0 *param0)
}
}
Graphics_LoadTilesToBgLayer(NARC_INDEX_GRAPHIC__PL_WINFRAME, 0, param0->unk_00, 1, 512, 0, 0, HEAP_ID_10);
Graphics_LoadPalette(NARC_INDEX_GRAPHIC__PL_WINFRAME, 24, 0, 7 * 0x20, 0x20, HEAP_ID_10);
LoadMessageBoxGraphics(param0->unk_00, 1, 521, 8, param0->unk_20, HEAP_ID_10);
Graphics_LoadTilesToBgLayer(NARC_INDEX_GRAPHIC__PL_WINFRAME, 0, param0->unk_00, 1, 512, 0, 0, HEAP_ID_BOX_GRAPHICS);
Graphics_LoadPalette(NARC_INDEX_GRAPHIC__PL_WINFRAME, 24, 0, 7 * 0x20, 0x20, HEAP_ID_BOX_GRAPHICS);
LoadMessageBoxGraphics(param0->unk_00, 1, 521, 8, param0->unk_20, HEAP_ID_BOX_GRAPHICS);
}
void ov19_021DB448(UnkStruct_ov19_021DB6F0 *param0, u32 boxMessageID)
@@ -159,10 +159,10 @@ static void ov19_021DB4B4(BgConfig *param0, u32 param1, u32 param2, u32 param3,
v0[4 + param4] = (8 << 12) | (521 + 17);
}
void ov19_021DB57C(UnkStruct_ov19_021DB6F0 *param0, const UnkStruct_ov19_021DF964 *param1)
void ov19_021DB57C(UnkStruct_ov19_021DB6F0 *param0, const BoxMenu *menu)
{
Window *v0;
u32 v1, v2;
u32 v1, i;
if (param0->unk_1E) {
ov19_021DB84C(param0->unk_00, &param0->unk_18[1]);
@@ -170,21 +170,21 @@ void ov19_021DB57C(UnkStruct_ov19_021DB6F0 *param0, const UnkStruct_ov19_021DF96
v0 = &(param0->unk_18[1]);
Window_FillTilemap(v0, 15);
v1 = (8 - param1->unk_21) * 16;
v1 = (8 - menu->totalMenuItems) * 16;
for (v2 = 0; v2 < param1->unk_21; v2++) {
if ((param1->unk_00[v2] >= UnkEnum_021DFB94_56) && (param1->unk_00[v2] <= UnkEnum_021DFB94_61)) {
ov19_021DB638(param0, v0, param1->unk_22, param1->unk_00[v2] - UnkEnum_021DFB94_56);
for (i = 0; i < menu->totalMenuItems; i++) {
if ((menu->menuItems[i] >= BOX_MENU_FIRST_MARKING) && (menu->menuItems[i] <= BOX_MENU_LAST_MARKING)) {
ov19_021DB638(param0, v0, menu->markings, menu->menuItems[i] - BOX_MENU_FIRST_MARKING);
} else {
MessageLoader_GetStrbuf(param0->unk_14, 24 + param1->unk_00[v2], param0->unk_30);
MessageLoader_GetStrbuf(param0->unk_14, 24 + menu->menuItems[i], param0->unk_30);
Text_AddPrinterWithParamsAndColor(v0, FONT_SYSTEM, param0->unk_30, 10, v1, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(11, 12, 15), NULL);
}
v1 += 16;
}
ov19_021DB748(param0, param1);
ov19_021DB684(param0, param1->unk_21);
BoxGraphics_DrawMenuCursorBox(param0, menu);
ov19_021DB684(param0, menu->totalMenuItems);
Window_LoadTiles(v0);
Bg_CopyTilemapBufferToVRAM(param0->unk_00, 1);
@@ -192,9 +192,9 @@ void ov19_021DB57C(UnkStruct_ov19_021DB6F0 *param0, const UnkStruct_ov19_021DF96
param0->unk_1E = 1;
}
static void ov19_021DB638(UnkStruct_ov19_021DB6F0 *param0, Window *param1, u8 param2, u32 param3)
static void ov19_021DB638(UnkStruct_ov19_021DB6F0 *param0, Window *param1, u8 markings, u32 markingID)
{
Window_BlitBitmapRectWithTransparency(param1, param0->unk_28->pRawData, param3 * 8, ((param2 & (1 << param3)) ? 0 : 8), 48, 16, 44, param3 * 16 + 4, 8, 8, 0xff);
Window_BlitBitmapRectWithTransparency(param1, param0->unk_28->pRawData, markingID * 8, ((markings & (1 << markingID)) ? 0 : 8), 48, 16, 44, markingID * 16 + 4, 8, 8, 0xff);
}
static void ov19_021DB684(UnkStruct_ov19_021DB6F0 *param0, u32 param1)
@@ -246,20 +246,20 @@ void ov19_021DB724(UnkStruct_ov19_021DB6F0 *param0)
Bg_CopyTilemapBufferToVRAM(param0->unk_00, 1);
}
void ov19_021DB748(UnkStruct_ov19_021DB6F0 *param0, const UnkStruct_ov19_021DF964 *param1)
void BoxGraphics_DrawMenuCursorBox(UnkStruct_ov19_021DB6F0 *param0, const BoxMenu *menu)
{
Window *v0;
Window *menuWindow;
u32 v1;
v0 = &(param0->unk_18[1]);
v1 = (8 - param1->unk_21) * 16;
menuWindow = &(param0->unk_18[1]);
v1 = (8 - menu->totalMenuItems) * 16;
Window_FillRectWithColor(v0, 15, 0, v1, 10, param1->unk_21 * 16);
Window_DrawMenuCursor(v0, 0, v1 + (param1->unk_20 * 16));
Window_LoadTiles(v0);
Window_FillRectWithColor(menuWindow, 15, 0, v1, 10, menu->totalMenuItems * 16);
Window_DrawMenuCursor(menuWindow, 0, v1 + (menu->selectedMenuItemIndex * 16));
Window_LoadTiles(menuWindow);
}
void ov19_021DB790(UnkStruct_ov19_021DB6F0 *param0, const UnkStruct_ov19_021DF964 *param1)
void ov19_021DB790(UnkStruct_ov19_021DB6F0 *param0, const BoxMenu *menu)
{
Window *v0;
int v1;
@@ -267,7 +267,7 @@ void ov19_021DB790(UnkStruct_ov19_021DB6F0 *param0, const UnkStruct_ov19_021DF96
v0 = &(param0->unk_18[1]);
for (v1 = 0; v1 < 6; v1++) {
ov19_021DB638(param0, v0, param1->unk_22, v1);
ov19_021DB638(param0, v0, menu->markings, v1);
}
Window_LoadTiles(v0);

View File

@@ -79,17 +79,17 @@ BOOL ov19_021DB8E4(UnkStruct_ov19_021DBA9C *param0, UnkStruct_ov19_021D61B0 *par
param0->unk_0C = param2;
param0->unk_08 = param4;
Graphics_LoadTilesToBgLayerFromOpenNARC(param5, 4, param3, 1, 0, 0, 1, HEAP_ID_10);
Graphics_LoadTilesToBgLayerFromOpenNARC(param5, 4, param3, 1, 0, 0, 1, HEAP_ID_BOX_GRAPHICS);
{
NNSG2dPaletteData *v1;
void *v2;
v2 = Graphics_GetPlttDataFromOpenNARC(param5, 27, &v1, HEAP_ID_10);
v2 = Graphics_GetPlttDataFromOpenNARC(param5, 27, &v1, HEAP_ID_BOX_GRAPHICS);
MI_CpuCopy16(v1->pRawData, &(param0->unk_E4[0][0]), 0x40);
Heap_FreeToHeap(v2);
v2 = Graphics_GetPlttDataFromOpenNARC(param5, 20, &v1, HEAP_ID_10);
v2 = Graphics_GetPlttDataFromOpenNARC(param5, 20, &v1, HEAP_ID_BOX_GRAPHICS);
MI_CpuCopy16(v1->pRawData, &(param0->unk_E4[0][32]), 0x20);
Heap_FreeToHeap(v2);
@@ -112,17 +112,17 @@ BOOL ov19_021DB8E4(UnkStruct_ov19_021DBA9C *param0, UnkStruct_ov19_021D61B0 *par
GXS_LoadOBJPltt(param0->unk_E4[0], 13 * 0x20, 96);
}
param0->unk_14 = Graphics_GetCharDataFromOpenNARC(param5, 17, 1, &(param0->unk_18), HEAP_ID_10);
param0->unk_1C = Graphics_GetCellBankFromOpenNARC(param5, 18, 1, &(param0->unk_20), HEAP_ID_10);
param0->unk_34 = Graphics_GetScrnDataFromOpenNARC(param5, 2, 1, &(param0->unk_38), HEAP_ID_10);
param0->unk_2C = Graphics_GetScrnDataFromOpenNARC(param5, 3, 1, &(param0->unk_30), HEAP_ID_10);
param0->unk_44 = sub_0200C440(2, 13, 4, HEAP_ID_10);
param0->unk_4BFC = Strbuf_Init(500, HEAP_ID_10);
param0->unk_14 = Graphics_GetCharDataFromOpenNARC(param5, 17, 1, &(param0->unk_18), HEAP_ID_BOX_GRAPHICS);
param0->unk_1C = Graphics_GetCellBankFromOpenNARC(param5, 18, 1, &(param0->unk_20), HEAP_ID_BOX_GRAPHICS);
param0->unk_34 = Graphics_GetScrnDataFromOpenNARC(param5, 2, 1, &(param0->unk_38), HEAP_ID_BOX_GRAPHICS);
param0->unk_2C = Graphics_GetScrnDataFromOpenNARC(param5, 3, 1, &(param0->unk_30), HEAP_ID_BOX_GRAPHICS);
param0->unk_44 = sub_0200C440(2, 13, 4, HEAP_ID_BOX_GRAPHICS);
param0->unk_4BFC = Strbuf_Init(500, HEAP_ID_BOX_GRAPHICS);
param0->unk_10 = NULL;
param0->unk_3C.pixels = param0->unk_18->pRawData;
param0->unk_3C.width = 32;
param0->unk_3C.height = 32;
param0->unk_4BF8 = MessageLoader_Init(MESSAGE_LOADER_NARC_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_UNK_0391, HEAP_ID_10);
param0->unk_4BF8 = MessageLoader_Init(MESSAGE_LOADER_NARC_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_UNK_0391, HEAP_ID_BOX_GRAPHICS);
for (v0 = 0; v0 < 18; v0++) {
param0->unk_48[v0] = NULL;
@@ -143,7 +143,7 @@ void ov19_021DBA9C(UnkStruct_ov19_021DBA9C *param0)
{ 1, 5, 25, 27, 6, 2, 178 }
};
param0->unk_10 = Window_New(HEAP_ID_10, NELEMS(v0));
param0->unk_10 = Window_New(HEAP_ID_BOX_GRAPHICS, NELEMS(v0));
if (param0->unk_10) {
int v1;
@@ -197,7 +197,7 @@ void ov19_021DBAD0(UnkStruct_ov19_021DBA9C *param0)
void ov19_021DBB48(UnkStruct_ov19_021DBA9C *param0)
{
param0->unk_E0 = ov19_021D5EA8(param0->unk_0C);
param0->unk_E0 = ov19_GetBoxSelectionBoxID(param0->unk_0C);
ov19_021DBDF4(param0);
ov19_021DC034(param0, 0);
}
@@ -209,7 +209,7 @@ BOOL ov19_021DBB68(UnkStruct_ov19_021DBA9C *param0)
void ov19_021DBB70(UnkStruct_ov19_021DBA9C *param0)
{
param0->unk_E0 = ov19_021D5EA8(param0->unk_0C);
param0->unk_E0 = ov19_GetBoxSelectionBoxID(param0->unk_0C);
ov19_021DBF18(param0);
ov19_021DBF4C(param0);
@@ -479,7 +479,7 @@ static void ov19_021DC034(UnkStruct_ov19_021DBA9C *param0, int param1)
ov19_021DC0A0,
ov19_021DC1CC,
};
UnkStruct_ov19_021DC034 *v1 = Heap_AllocFromHeap(HEAP_ID_10, sizeof(UnkStruct_ov19_021DC034));
UnkStruct_ov19_021DC034 *v1 = Heap_AllocFromHeap(HEAP_ID_BOX_GRAPHICS, sizeof(UnkStruct_ov19_021DC034));
if (v1) {
v1->unk_00 = param0;
@@ -592,7 +592,7 @@ static void ov19_021DC1CC(SysTask *param0, void *param1)
void ov19_021DC29C(UnkStruct_ov19_021DBA9C *param0)
{
UnkStruct_ov19_021DC29C *v0 = Heap_AllocFromHeap(HEAP_ID_10, sizeof(UnkStruct_ov19_021DC29C));
UnkStruct_ov19_021DC29C *v0 = Heap_AllocFromHeap(HEAP_ID_BOX_GRAPHICS, sizeof(UnkStruct_ov19_021DC29C));
if (v0) {
u32 v1 = ov19_GetCursorOrPreviewedItem(param0->unk_0C);
@@ -655,7 +655,7 @@ static void ov19_021DC37C(SysTask *param0, void *param1)
void ov19_021DC3F4(UnkStruct_ov19_021DBA9C *param0)
{
UnkStruct_ov19_021DC29C *v0 = Heap_AllocFromHeap(HEAP_ID_10, sizeof(UnkStruct_ov19_021DC29C));
UnkStruct_ov19_021DC29C *v0 = Heap_AllocFromHeap(HEAP_ID_BOX_GRAPHICS, sizeof(UnkStruct_ov19_021DC29C));
if (v0) {
v0->unk_16 = 0;
@@ -718,11 +718,11 @@ static void ov19_021DC4F8(UnkStruct_ov19_021DBA9C *param0, u32 param1)
ov19_021D783C(&v0, &v2, ov19_021D77D0(param0->unk_00), v1->unk_1C, v1->unk_20, 0);
NNS_G2dInitImageProxy(&v2);
v4 = Graphics_GetCharData(NARC_INDEX_ITEMTOOL__ITEMDATA__ITEM_ICON, Item_FileID(param1, 1), 0, &v3, HEAP_ID_10);
v4 = Graphics_GetCharData(NARC_INDEX_ITEMTOOL__ITEMDATA__ITEM_ICON, Item_FileID(param1, 1), 0, &v3, HEAP_ID_BOX_GRAPHICS);
v3->mapingType = GX_GetOBJVRamModeChar();
NNS_G2dLoadImage1DMapping(v3, 1520 * 0x20, NNS_G2D_VRAM_TYPE_2DMAIN, &v2);
Graphics_LoadPalette(NARC_INDEX_ITEMTOOL__ITEMDATA__ITEM_ICON, Item_FileID(param1, 2), 1, 6 * 0x20, 0x20, HEAP_ID_10);
Graphics_LoadPalette(NARC_INDEX_ITEMTOOL__ITEMDATA__ITEM_ICON, Item_FileID(param1, 2), 1, 6 * 0x20, 0x20, HEAP_ID_BOX_GRAPHICS);
param0->unk_90 = ov19_021D785C(param0->unk_08, &v0, 18, 224, 0, NNS_G2D_VRAM_TYPE_2DMAIN);
if (param0->unk_90) {

View File

@@ -67,8 +67,8 @@ BOOL ov19_021DC5F0(UnkStruct_ov19_021DC680 *param0, UnkStruct_ov19_021D61B0 *par
ov19_021DA3CC(param0->unk_38, param0->unk_3C, 6);
param0->unk_1C = Heap_AllocFromHeap(HEAP_ID_10, sizeof(VecFx32) * 6 * 8);
param0->unk_14 = Graphics_GetScrnDataFromOpenNARC(param5, 6, 1, &(param0->unk_18), HEAP_ID_10);
param0->unk_1C = Heap_AllocFromHeap(HEAP_ID_BOX_GRAPHICS, sizeof(VecFx32) * 6 * 8);
param0->unk_14 = Graphics_GetScrnDataFromOpenNARC(param5, 6, 1, &(param0->unk_18), HEAP_ID_BOX_GRAPHICS);
if ((param0->unk_14 == NULL) || (param0->unk_1C == NULL)) {
return 0;
@@ -185,14 +185,12 @@ static void ov19_021DC79C(SysTask *param0, void *param1)
void ov19_021DC834(UnkStruct_ov19_021DC680 *param0)
{
int v0 = Party_GetCurrentCount(param0->unk_0C->party);
int partyCount = Party_GetCurrentCount(param0->unk_0C->party);
if (param0->unk_28 < v0) {
int v1, v2;
if (param0->unk_28 < partyCount) {
int v2 = partyCount - param0->unk_28;
v2 = v0 - param0->unk_28;
for (v1 = param0->unk_28; v1 < (6 - 1); v1++) {
for (int v1 = param0->unk_28; v1 < MAX_PARTY_SIZE - 1; v1++) {
ov19_021DA418(&(param0->unk_3C[v1 + 1]), &(param0->unk_3C[v1]), 1);
ov19_021DA3CC(param0->unk_38, &(param0->unk_3C[v1 + 1]), 1);
@@ -319,8 +317,8 @@ BOOL ov19_021DCB20(UnkStruct_ov19_021DC680 *param0)
if (ov19_021DA7E0(param0->unk_38, v0)) {
const UnkStruct_ov19_021D5DF8 *v1 = ov19_021D7964(param0->unk_00);
if (ov19_021D3B18(v1)) {
if (ov19_021D3B20(v1)) {
if (ov19_HasCheckedCanReleaseMon(v1)) {
if (ov19_CanReleaseMon(v1)) {
ov19_021DA3F0(param0->unk_38, v0, 1);
return 1;
} else {
@@ -397,7 +395,7 @@ void ov19_021DCC80(UnkStruct_ov19_021DC680 *param0, u32 param1, const UnkStruct_
ov19_021DA418(param2, v2, 1);
ov19_021DA754(param0->unk_38, v2, v1);
Sprite_SetExplicitPriority(v2->unk_00, 1);
ov19_021D78AC(v2->unk_00, 4 + v0);
BoxGraphics_SetSpritePriority(v2->unk_00, 4 + v0);
param0->unk_28 = param1;
}
@@ -415,7 +413,7 @@ void ov19_021DCCD4(UnkStruct_ov19_021DC680 *param0, u32 param1, const UnkStruct_
ov19_021DA418(param2, v2, 1);
ov19_021DA754(param0->unk_38, v2, v1);
Sprite_SetExplicitPriority(v2->unk_00, 1);
ov19_021D78AC(v2->unk_00, 4 + v0);
BoxGraphics_SetSpritePriority(v2->unk_00, 4 + v0);
param0->unk_28 = param1;
}

View File

@@ -305,7 +305,7 @@ BOOL ov19_021DCF88(UnkStruct_ov19_021DCF88 **param0, UnkStruct_ov19_021D61B0 *pa
*param0 = NULL;
return 1;
} else {
UnkStruct_ov19_021DCF88 *v0 = Heap_AllocFromHeap(HEAP_ID_10, sizeof(UnkStruct_ov19_021DCF88));
UnkStruct_ov19_021DCF88 *v0 = Heap_AllocFromHeap(HEAP_ID_BOX_GRAPHICS, sizeof(UnkStruct_ov19_021DCF88));
if (v0) {
int v1;
@@ -315,7 +315,7 @@ BOOL ov19_021DCF88(UnkStruct_ov19_021DCF88 **param0, UnkStruct_ov19_021D61B0 *pa
v0->unk_04 = param2;
v0->unk_0C = param4;
v0->unk_14 = NULL;
v0->unk_84 = Strbuf_Init(32, HEAP_ID_10);
v0->unk_84 = Strbuf_Init(32, HEAP_ID_BOX_GRAPHICS);
v0->unk_10 = param2->unk_9C.unk_00;
v0->unk_98 = NULL;
v0->unk_A0 = NULL;
@@ -418,10 +418,10 @@ void ov19_021DD078(UnkStruct_ov19_021DCF88 *param0)
void ov19_021DD114(UnkStruct_ov19_021DCF88 *param0, NARC *param1)
{
if (param0) {
Graphics_LoadTilesToBgLayerFromOpenNARC(param1, 127, param0->unk_08, 7, 0, 0, 1, HEAP_ID_10);
Graphics_LoadTilemapToBgLayerFromOpenNARC(param1, 124, param0->unk_08, 7, 0, 0, 1, HEAP_ID_10);
Graphics_LoadTilemapToBgLayerFromOpenNARC(param1, 125, param0->unk_08, 6, 0, 0, 1, HEAP_ID_10);
Graphics_LoadTilemapToBgLayerFromOpenNARC(param1, 126, param0->unk_08, 5, 0, 0, 1, HEAP_ID_10);
Graphics_LoadTilesToBgLayerFromOpenNARC(param1, 127, param0->unk_08, 7, 0, 0, 1, HEAP_ID_BOX_GRAPHICS);
Graphics_LoadTilemapToBgLayerFromOpenNARC(param1, 124, param0->unk_08, 7, 0, 0, 1, HEAP_ID_BOX_GRAPHICS);
Graphics_LoadTilemapToBgLayerFromOpenNARC(param1, 125, param0->unk_08, 6, 0, 0, 1, HEAP_ID_BOX_GRAPHICS);
Graphics_LoadTilemapToBgLayerFromOpenNARC(param1, 126, param0->unk_08, 5, 0, 0, 1, HEAP_ID_BOX_GRAPHICS);
Bg_FillTilesRange(param0->unk_08, 4, 0x0, 1, 0);
Bg_FillTilemapRect(param0->unk_08, 4, 0x0, 0, 0, 32, 32, 17);
Bg_CopyTilemapBufferToVRAM(param0->unk_08, 4);
@@ -430,7 +430,7 @@ void ov19_021DD114(UnkStruct_ov19_021DCF88 *param0, NARC *param1)
Window_FillTilemap(&(param0->unk_88), 0x0);
Window_CopyToVRAM(&param0->unk_88);
ov19_021DE324(param0);
Graphics_LoadPaletteFromOpenNARC(param1, 128, 4, 0, 0x20 * 3, HEAP_ID_10);
Graphics_LoadPaletteFromOpenNARC(param1, 128, 4, 0, 0x20 * 3, HEAP_ID_BOX_GRAPHICS);
ov19_021DD224(param0, param1);
}
}
@@ -459,10 +459,10 @@ static void ov19_021DD224(UnkStruct_ov19_021DCF88 *param0, NARC *param1)
static void ov19_021DD2BC(UnkStruct_ov19_021DCF88 *param0, NARC *param1)
{
param0->unk_98 = Graphics_GetCellBankFromOpenNARC(param1, 139, 1, &(param0->unk_9C), HEAP_ID_10);
param0->unk_A0 = Graphics_GetAnimBankFromOpenNARC(param1, 140, 1, &(param0->unk_A4), HEAP_ID_10);
param0->unk_A8 = Graphics_GetCellBankFromOpenNARC(param1, 142, 1, &(param0->unk_AC), HEAP_ID_10);
param0->unk_B0 = Graphics_GetAnimBankFromOpenNARC(param1, 143, 1, &(param0->unk_B4), HEAP_ID_10);
param0->unk_98 = Graphics_GetCellBankFromOpenNARC(param1, 139, 1, &(param0->unk_9C), HEAP_ID_BOX_GRAPHICS);
param0->unk_A0 = Graphics_GetAnimBankFromOpenNARC(param1, 140, 1, &(param0->unk_A4), HEAP_ID_BOX_GRAPHICS);
param0->unk_A8 = Graphics_GetCellBankFromOpenNARC(param1, 142, 1, &(param0->unk_AC), HEAP_ID_BOX_GRAPHICS);
param0->unk_B0 = Graphics_GetAnimBankFromOpenNARC(param1, 143, 1, &(param0->unk_B4), HEAP_ID_BOX_GRAPHICS);
NNS_G2dInitImagePaletteProxy(&(param0->unk_18));
Graphics_LoadPartialPaletteFromOpenNARC(param1, 144, NNS_G2D_VRAM_TYPE_2DSUB, 0, 10, &(param0->unk_18));
@@ -1142,7 +1142,7 @@ static void ov19_021DDD80(UnkStruct_ov19_021DCF88 *param0)
UnkStruct_ov19_021DDBF8 *v0;
int v1;
v0 = Heap_AllocFromHeap(HEAP_ID_10, sizeof(UnkStruct_ov19_021DDBF8));
v0 = Heap_AllocFromHeap(HEAP_ID_BOX_GRAPHICS, sizeof(UnkStruct_ov19_021DDBF8));
if (v0) {
SysTask *v2;
@@ -1257,7 +1257,7 @@ static void ov19_021DDFA8(UnkStruct_ov19_021DCF88 *param0)
UnkStruct_ov19_021DDBF8 *v0;
int v1;
v0 = Heap_AllocFromHeap(HEAP_ID_10, sizeof(UnkStruct_ov19_021DDBF8));
v0 = Heap_AllocFromHeap(HEAP_ID_BOX_GRAPHICS, sizeof(UnkStruct_ov19_021DDBF8));
if (v0) {
SysTask *v2;
@@ -1316,7 +1316,7 @@ static void ov19_021DE0A0(UnkStruct_ov19_021DCF88 *param0)
UnkStruct_ov19_021DDBF8 *v0;
int v1;
v0 = Heap_AllocFromHeap(HEAP_ID_10, sizeof(UnkStruct_ov19_021DDBF8));
v0 = Heap_AllocFromHeap(HEAP_ID_BOX_GRAPHICS, sizeof(UnkStruct_ov19_021DDBF8));
if (v0) {
SysTask *v2;
@@ -1440,7 +1440,7 @@ static void ov19_021DE2A4(UnkStruct_ov19_021DCF88 *param0)
UnkStruct_ov19_021DDBF8 *v0;
int v1;
v0 = Heap_AllocFromHeap(HEAP_ID_10, sizeof(UnkStruct_ov19_021DDBF8));
v0 = Heap_AllocFromHeap(HEAP_ID_BOX_GRAPHICS, sizeof(UnkStruct_ov19_021DDBF8));
if (v0) {
SysTask *v2;

View File

@@ -72,7 +72,7 @@ static void ov19_021DE8E0(SysTask *param0, void *param1);
BOOL ov19_021DE3E8(UnkStruct_ov19_021DE3E8 **param0, UnkStruct_ov19_021D61B0 *param1, const UnkStruct_ov19_021D4DF0 *param2, BgConfig *param3, SpriteList *param4)
{
UnkStruct_ov19_021DE3E8 *v0 = Heap_AllocFromHeap(HEAP_ID_10, sizeof(UnkStruct_ov19_021DE3E8));
UnkStruct_ov19_021DE3E8 *v0 = Heap_AllocFromHeap(HEAP_ID_BOX_GRAPHICS, sizeof(UnkStruct_ov19_021DE3E8));
if (v0) {
v0->unk_04 = param1;
@@ -109,7 +109,7 @@ static void ov19_021DE450(UnkStruct_ov19_021DE3E8 *param0)
int v4;
ov19_021D783C(&v0, &v1, ov19_021D77D0(param0->unk_04), param0->unk_14->unk_1C, param0->unk_14->unk_20, 0);
v3 = Graphics_GetCharData(NARC_INDEX_ITEMTOOL__ITEMDATA__ITEM_ICON, Item_FileID(1, 1), 0, &v2, HEAP_ID_10);
v3 = Graphics_GetCharData(NARC_INDEX_ITEMTOOL__ITEMDATA__ITEM_ICON, Item_FileID(1, 1), 0, &v2, HEAP_ID_BOX_GRAPHICS);
if (v3) {
int v5;
@@ -227,11 +227,11 @@ static void ov19_021DE5D4(UnkStruct_ov19_021DE3E8 *param0)
v2 = 2;
}
Graphics_LoadObjectTiles(16, Item_FileID(item, 1), 0, Unk_ov19_021E04CC[v3].unk_00, 0, 0, HEAP_ID_10);
Graphics_LoadPalette(NARC_INDEX_ITEMTOOL__ITEMDATA__ITEM_ICON, Item_FileID(item, 2), 1, Unk_ov19_021E04CC[v3].unk_04 * 0x20, 0x20, HEAP_ID_10);
Graphics_LoadObjectTiles(16, Item_FileID(item, 1), 0, Unk_ov19_021E04CC[v3].unk_00, 0, 0, HEAP_ID_BOX_GRAPHICS);
Graphics_LoadPalette(NARC_INDEX_ITEMTOOL__ITEMDATA__ITEM_ICON, Item_FileID(item, 2), 1, Unk_ov19_021E04CC[v3].unk_04 * 0x20, 0x20, HEAP_ID_BOX_GRAPHICS);
Sprite_SetExplicitPriority(param0->unk_1C[v3], v2);
ov19_021D78AC(param0->unk_1C[v3], 2);
BoxGraphics_SetSpritePriority(param0->unk_1C[v3], 2);
Sprite_SetPosition(param0->unk_1C[v3], &v1);
Sprite_SetAnim(param0->unk_1C[v3], 0);
@@ -268,11 +268,11 @@ static void ov19_021DE718(UnkStruct_ov19_021DE3E8 *param0, int param1, int param
ov19_021DE694(param0, &v0, &v1);
Graphics_LoadObjectTiles(16, Item_FileID(param2, 1), 0, Unk_ov19_021E04CC[param1].unk_00, 0, 0, HEAP_ID_10);
Graphics_LoadPalette(NARC_INDEX_ITEMTOOL__ITEMDATA__ITEM_ICON, Item_FileID(param2, 2), 1, Unk_ov19_021E04CC[param1].unk_04 * 0x20, 0x20, HEAP_ID_10);
Graphics_LoadObjectTiles(16, Item_FileID(param2, 1), 0, Unk_ov19_021E04CC[param1].unk_00, 0, 0, HEAP_ID_BOX_GRAPHICS);
Graphics_LoadPalette(NARC_INDEX_ITEMTOOL__ITEMDATA__ITEM_ICON, Item_FileID(param2, 2), 1, Unk_ov19_021E04CC[param1].unk_04 * 0x20, 0x20, HEAP_ID_BOX_GRAPHICS);
Sprite_SetExplicitPriority(param0->unk_1C[param1], v1);
ov19_021D78AC(param0->unk_1C[param1], 3);
BoxGraphics_SetSpritePriority(param0->unk_1C[param1], 3);
Sprite_SetPosition(param0->unk_1C[param1], &v0);
}
}
@@ -332,7 +332,7 @@ BOOL ov19_021DE800(UnkStruct_ov19_021DE3E8 *param0)
static void ov19_021DE858(UnkStruct_ov19_021DE3E8 *param0, int param1, const VecFx32 *param2, int param3, int param4)
{
UnkStruct_ov19_021DE858 *v0 = Heap_AllocFromHeap(HEAP_ID_10, sizeof(UnkStruct_ov19_021DE858));
UnkStruct_ov19_021DE858 *v0 = Heap_AllocFromHeap(HEAP_ID_BOX_GRAPHICS, sizeof(UnkStruct_ov19_021DE858));
if (v0) {
v0->unk_00 = param0;
@@ -371,7 +371,7 @@ static void ov19_021DE8E0(SysTask *param0, void *param1)
break;
case 1:
if (Sprite_IsAnimated(v0->unk_04) == 0) {
ov19_021D78AC(v0->unk_04, v0->unk_28);
BoxGraphics_SetSpritePriority(v0->unk_04, v0->unk_28);
v0->unk_00->unk_34--;
SysTask_Done(param0);
ov19_021D79B8(v0, NULL, NULL);

View File

@@ -91,7 +91,7 @@ BOOL ov19_021DEC04(UnkStruct_ov19_021DEC04 **param0, UnkStruct_ov19_021D61B0 *pa
*param0 = NULL;
return 1;
} else {
UnkStruct_ov19_021DEC04 *v0 = Heap_AllocFromHeap(HEAP_ID_10, sizeof(UnkStruct_ov19_021DEC04));
UnkStruct_ov19_021DEC04 *v0 = Heap_AllocFromHeap(HEAP_ID_BOX_GRAPHICS, sizeof(UnkStruct_ov19_021DEC04));
if (v0) {
v0->unk_04 = param1;
@@ -99,11 +99,11 @@ BOOL ov19_021DEC04(UnkStruct_ov19_021DEC04 **param0, UnkStruct_ov19_021D61B0 *pa
v0->unk_0C = param3;
v0->unk_10 = param4;
v0->unk_14 = ov19_021D77D8(param1);
v0->unk_370 = Graphics_GetScrnDataFromOpenNARC(param6, 7, 1, &(v0->unk_368), HEAP_ID_10);
v0->unk_374 = Graphics_GetScrnDataFromOpenNARC(param6, 8, 1, &(v0->unk_36C), HEAP_ID_10);
v0->unk_370 = Graphics_GetScrnDataFromOpenNARC(param6, 7, 1, &(v0->unk_368), HEAP_ID_BOX_GRAPHICS);
v0->unk_374 = Graphics_GetScrnDataFromOpenNARC(param6, 8, 1, &(v0->unk_36C), HEAP_ID_BOX_GRAPHICS);
v0->unk_6C = param5;
v0->unk_70 = MessageLoader_Init(MESSAGE_LOADER_NARC_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_MOVE_NAMES, HEAP_ID_10);
v0->boxDisplayText = Strbuf_Init(32, HEAP_ID_10);
v0->unk_70 = MessageLoader_Init(MESSAGE_LOADER_NARC_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_MOVE_NAMES, HEAP_ID_BOX_GRAPHICS);
v0->boxDisplayText = Strbuf_Init(32, HEAP_ID_BOX_GRAPHICS);
v0->unk_380 = NULL;
*param0 = v0;
return 1;
@@ -131,13 +131,13 @@ void ov19_021DECE8(UnkStruct_ov19_021DEC04 *param0, NARC *param1)
if (param0) {
ov19_021DEEFC(param0);
Graphics_LoadTilesToBgLayerFromOpenNARC(param1, 132, param0->unk_0C, 5, 0, 0, 1, HEAP_ID_10);
Graphics_LoadTilemapToBgLayerFromOpenNARC(param1, 129, param0->unk_0C, 5, 0, 0, 1, HEAP_ID_10);
Graphics_LoadTilemapToBgLayerFromOpenNARC(param1, 130, param0->unk_0C, 6, 0, 0, 1, HEAP_ID_10);
Graphics_LoadTilemapToBgLayerFromOpenNARC(param1, 131, param0->unk_0C, 7, 0, 0, 1, HEAP_ID_10);
Graphics_LoadPaletteFromOpenNARC(param1, 133, 4, 0, 0x20 * 4, HEAP_ID_10);
Graphics_LoadPalette(NARC_INDEX_POKETOOL__ICONGRA__PL_POKE_ICON, PokeIconPalettesFileIndex(), 5, 4 * 0x20, 4 * 0x20, HEAP_ID_10);
Bg_ClearTilesRange(4, 0x20, 0, HEAP_ID_10);
Graphics_LoadTilesToBgLayerFromOpenNARC(param1, 132, param0->unk_0C, 5, 0, 0, 1, HEAP_ID_BOX_GRAPHICS);
Graphics_LoadTilemapToBgLayerFromOpenNARC(param1, 129, param0->unk_0C, 5, 0, 0, 1, HEAP_ID_BOX_GRAPHICS);
Graphics_LoadTilemapToBgLayerFromOpenNARC(param1, 130, param0->unk_0C, 6, 0, 0, 1, HEAP_ID_BOX_GRAPHICS);
Graphics_LoadTilemapToBgLayerFromOpenNARC(param1, 131, param0->unk_0C, 7, 0, 0, 1, HEAP_ID_BOX_GRAPHICS);
Graphics_LoadPaletteFromOpenNARC(param1, 133, 4, 0, 0x20 * 4, HEAP_ID_BOX_GRAPHICS);
Graphics_LoadPalette(NARC_INDEX_POKETOOL__ICONGRA__PL_POKE_ICON, PokeIconPalettesFileIndex(), 5, 4 * 0x20, 4 * 0x20, HEAP_ID_BOX_GRAPHICS);
Bg_ClearTilesRange(4, 0x20, 0, HEAP_ID_BOX_GRAPHICS);
Bg_FillTilemapRect(param0->unk_0C, 4, 0x0, 0, 0, 32, 32, 17);
ov19_021DEF64(param0);
@@ -153,7 +153,7 @@ void ov19_021DECE8(UnkStruct_ov19_021DEC04 *param0, NARC *param1)
void ov19_021DEDDC(UnkStruct_ov19_021DEC04 *param0, BOOL param1)
{
if (param0) {
int v0 = ov19_021D5F9C(param0->unk_08);
int v0 = ov19_GetCompareMonSlot(param0->unk_08);
if (param1) {
Sprite_SetAnim(param0->unk_28[v0 ^ 1], 2);
@@ -172,19 +172,19 @@ void ov19_021DEE34(UnkStruct_ov19_021DEC04 *param0)
ov19_021DF834(param0);
if (param0) {
int v0 = ov19_021D5F9C(param0->unk_08);
int compareMonSlot = ov19_GetCompareMonSlot(param0->unk_08);
ov19_021DF8C8(param0, v0);
ov19_021DF8C8(param0, compareMonSlot);
switch (ov19_021D5FA4(param0->unk_08)) {
case 0:
ov19_021DF3AC(param0, v0);
ov19_021DF3AC(param0, compareMonSlot);
break;
case 1:
ov19_021DF178(param0, v0);
ov19_021DF178(param0, compareMonSlot);
break;
case 2:
ov19_021DF4D0(param0, v0);
ov19_021DF4D0(param0, compareMonSlot);
break;
}
}
@@ -229,7 +229,7 @@ BOOL ov19_021DEEA8(UnkStruct_ov19_021DEC04 *param0)
static void ov19_021DEEFC(UnkStruct_ov19_021DEC04 *param0)
{
NNSG2dScreenData *v0 = (ov19_021D5F9C(param0->unk_08) == 0) ? param0->unk_368 : param0->unk_36C;
NNSG2dScreenData *v0 = (ov19_GetCompareMonSlot(param0->unk_08) == 0) ? param0->unk_368 : param0->unk_36C;
Bg_CopyToTilemapRect(param0->unk_0C, 2, 0, 0, 6, 32, v0->rawData, 0, 0, 32, 32);
Bg_CopyToTilemapRect(param0->unk_0C, 2, 26, 0, 6, 32, v0->rawData, 26, 0, 32, 32);
@@ -367,7 +367,7 @@ static void ov19_021DF140(UnkStruct_ov19_021DEC04 *param0)
}
}
static void ov19_021DF178(UnkStruct_ov19_021DEC04 *param0, int param1)
static void ov19_021DF178(UnkStruct_ov19_021DEC04 *param0, int compareMonSlot)
{
#define DEFINE_00(tx) ((128 << FX32_SHIFT) + (((((tx) - 128) << FX32_SHIFT) * 10) / 100))
#define DEFINE_01(ty) ((484 << FX32_SHIFT) + (((((ty) - 484) << FX32_SHIFT) * 10) / 100))
@@ -388,10 +388,10 @@ static void ov19_021DF178(UnkStruct_ov19_021DEC04 *param0, int param1)
const PCCompareMon *compareMon;
BOOL isMonUnderCursor, v3, v4;
compareMon = ov19_GetCompareMonFrom(param0->unk_08, param1);
compareMon = ov19_GetCompareMonFrom(param0->unk_08, compareMonSlot);
isMonUnderCursor = ov19_IsMonUnderCursor(param0->unk_08);
v3 = (ov19_021D5F9C(param0->unk_08) == param1);
v4 = ov19_021D5FB8(param0->unk_08, param1);
v3 = ov19_GetCompareMonSlot(param0->unk_08) == compareMonSlot;
v4 = ov19_021D5FB8(param0->unk_08, compareMonSlot);
if ((((isMonUnderCursor == TRUE) && (v3 == 1)) || ((v3 == 0) && (v4 == 1))) && (compareMon->isEgg == FALSE)) {
int i;
@@ -403,26 +403,26 @@ static void ov19_021DF178(UnkStruct_ov19_021DEC04 *param0, int param1)
for (i = 0; i < CONTEST_TYPE_MAX; i++) {
v6.x = v0[i].unk_00 + (((v0[i].unk_08 - v0[i].unk_00) / 256) * (int)(*contestStat));
v6.y = v0[i].unk_04 + (((v0[i].unk_0C - v0[i].unk_04) / 256) * (int)(*contestStat));
Sprite_SetPosition(param0->unk_34[param1][i], &v6);
ov19_021D78AC(param0->unk_34[param1][i], 0);
ov19_021D78AC(param0->unk_34[param1 ^ 1][i], 1);
Sprite_SetDrawFlag(param0->unk_34[param1][i], 1);
Sprite_SetPosition(param0->unk_34[compareMonSlot][i], &v6);
BoxGraphics_SetSpritePriority(param0->unk_34[compareMonSlot][i], 0);
BoxGraphics_SetSpritePriority(param0->unk_34[compareMonSlot ^ 1][i], 1);
Sprite_SetDrawFlag(param0->unk_34[compareMonSlot][i], 1);
contestStat++;
}
} else {
ov19_021DF250(param0, param1);
ov19_021DF250(param0, compareMonSlot);
}
#undef DEFINE_00
#undef DEFINE_01
}
static void ov19_021DF250(UnkStruct_ov19_021DEC04 *param0, int param1)
static void ov19_021DF250(UnkStruct_ov19_021DEC04 *param0, int compareMonSlot)
{
int v0;
for (v0 = 0; v0 < 5; v0++) {
Sprite_SetDrawFlag(param0->unk_34[param1][v0], 0);
Sprite_SetDrawFlag(param0->unk_34[compareMonSlot][v0], 0);
}
}
@@ -509,7 +509,7 @@ static void ov19_021DF3AC(UnkStruct_ov19_021DEC04 *param0, int compareMonSlot)
window = &(param0->unk_78[3 + compareMonSlot]);
compareMon = ov19_GetCompareMonFrom(param0->unk_08, compareMonSlot);
isMonUnderCursor = ov19_IsMonUnderCursor(param0->unk_08);
compareSlot = ov19_021D5F9C(param0->unk_08) == compareMonSlot;
compareSlot = ov19_GetCompareMonSlot(param0->unk_08) == compareMonSlot;
v4 = ov19_021D5FB8(param0->unk_08, compareMonSlot);
Window_FillTilemap(window, 0);
@@ -547,7 +547,7 @@ static void ov19_021DF4D0(UnkStruct_ov19_021DEC04 *param0, int compareMonSlot)
v0 = &(param0->unk_78[5 + compareMonSlot]);
compareMon = ov19_GetCompareMonFrom(param0->unk_08, compareMonSlot);
isMonUnderCursor = ov19_IsMonUnderCursor(param0->unk_08);
v3 = (ov19_021D5F9C(param0->unk_08) == compareMonSlot);
v3 = (ov19_GetCompareMonSlot(param0->unk_08) == compareMonSlot);
v4 = ov19_021D5FB8(param0->unk_08, compareMonSlot);
Window_FillTilemap(v0, 0);
@@ -587,10 +587,10 @@ static void ov19_021DF5D0(UnkStruct_ov19_021DEC04 *param0, NARC *param1)
SpriteResourcesHeader v2;
u32 v3, v4, v5;
param0->unk_5C = Graphics_GetCellBankFromOpenNARC(param1, 135, 1, &(param0->unk_60), HEAP_ID_10);
param0->unk_64 = Graphics_GetAnimBankFromOpenNARC(param1, 136, 1, &(param0->unk_68), HEAP_ID_10);
param0->unk_5C = Graphics_GetCellBankFromOpenNARC(param1, 135, 1, &(param0->unk_60), HEAP_ID_BOX_GRAPHICS);
param0->unk_64 = Graphics_GetAnimBankFromOpenNARC(param1, 136, 1, &(param0->unk_68), HEAP_ID_BOX_GRAPHICS);
Graphics_LoadPaletteFromOpenNARC(param1, 137, 5, 0, 0x20 * 3, HEAP_ID_10);
Graphics_LoadPaletteFromOpenNARC(param1, 137, 5, 0, 0x20 * 3, HEAP_ID_BOX_GRAPHICS);
NNS_G2dInitImageProxy(&v1);
v3 = Graphics_LoadImageMappingFromOpenNARC(param1, 134, 1, 0, 0, NNS_G2D_VRAM_TYPE_2DSUB, 0, 10, &v1);
ov19_021D783C(&v2, &v1, ov19_021D77D0(param0->unk_04), param0->unk_60, param0->unk_68, 1);
@@ -629,17 +629,16 @@ static void ov19_021DF730(UnkStruct_ov19_021DEC04 *param0, u32 param1)
};
NNSG2dImageProxy v1;
SpriteResourcesHeader v2;
int v3;
ov19_021D783C(&v2, &v1, ov19_021D77D0(param0->unk_04), ov19_021DA80C(param0->unk_14), ov19_021DA810(param0->unk_14), 1);
for (v3 = 0; v3 < 2; v3++) {
param0->unk_18[v3] = param1 + (v3 * (4 * 4) * 0x20);
for (int i = 0; i < 2; i++) {
param0->unk_18[i] = param1 + (i * (4 * 4) * 0x20);
NNS_G2dInitImageProxy(&v1);
NNS_G2dSetImageLocation(&v1, NNS_G2D_VRAM_TYPE_2DSUB, param0->unk_18[v3]);
NNS_G2dSetImageLocation(&v1, NNS_G2D_VRAM_TYPE_2DSUB, param0->unk_18[i]);
v1.attr.mappingType = GXS_GetOBJVRamModeChar();
param0->unk_20[v3] = ov19_021D785C(param0->unk_10, &v2, v0[v3].unk_00, v0[v3].unk_02, 1 - v3, NNS_G2D_VRAM_TYPE_2DSUB);
Sprite_SetDrawFlag(param0->unk_20[v3], 0);
param0->unk_20[i] = ov19_021D785C(param0->unk_10, &v2, v0[i].unk_00, v0[i].unk_02, 1 - i, NNS_G2D_VRAM_TYPE_2DSUB);
Sprite_SetDrawFlag(param0->unk_20[i], FALSE);
}
}
@@ -667,7 +666,7 @@ static void ov19_021DF7D0(UnkStruct_ov19_021DEC04 *param0)
static void ov19_021DF834(UnkStruct_ov19_021DEC04 *param0)
{
int compareMonSlot = ov19_021D5F9C(param0->unk_08);
int compareMonSlot = ov19_GetCompareMonSlot(param0->unk_08);
const PCCompareMon *compareMon = ov19_GetCompareMonFrom(param0->unk_08, compareMonSlot);
Sprite *v2 = param0->unk_20[compareMonSlot];
BoxPokemon *boxMon = compareMon->mon;
@@ -693,7 +692,7 @@ static void ov19_021DF8C8(UnkStruct_ov19_021DEC04 *param0, int compareMonSlot)
{
Window *window;
compareMonSlot = ov19_021D5F9C(param0->unk_08);
compareMonSlot = ov19_GetCompareMonSlot(param0->unk_08);
window = &(param0->unk_78[0 + compareMonSlot]);
Window_FillTilemap(window, 0);

View File

@@ -1,300 +0,0 @@
#include "overlay019/ov19_021DF964.h"
#include <nitro.h>
#include <string.h>
#include "struct_decls/pc_boxes_decl.h"
#include "overlay019/ov19_021D0D80.h"
#include "overlay019/pc_mon_preview.h"
#include "overlay019/struct_ov19_021D4DF0.h"
#include "overlay019/struct_ov19_021DF964.h"
#include "enums.h"
#include "pc_boxes.h"
#include "sound_playback.h"
#include "system.h"
static void ov19_021DFCF8(UnkStruct_ov19_021DF964 *param0);
static void ov19_021DFD08(UnkStruct_ov19_021DF964 *param0, UnkEnum_021DFB94 param1);
void ov19_021DF964(UnkStruct_ov19_021D4DF0 *param0, u32 param1)
{
UnkStruct_ov19_021DF964 *v0 = &(param0->unk_74);
ov19_021DFCF8(v0);
ov19_021DFD08(v0, UnkEnum_021DFB94_54);
ov19_021DFD08(v0, UnkEnum_021DFB94_55);
v0->unk_20 = param1;
v0->unk_23 = 0;
}
void ov19_021DF990(UnkStruct_ov19_021D4DF0 *param0)
{
UnkStruct_ov19_021DF964 *v0 = &(param0->unk_74);
ov19_021DFCF8(v0);
v0->unk_23 = 1;
switch (ov19_GetBoxMode(param0)) {
case PC_MODE_MOVE_MONS:
default:
if (ov19_GetPreviewMonSource(param0) == PREVIEW_MON_IN_CURSOR) {
ov19_021DFD08(v0, ov19_IsMonUnderCursor(param0) ? UnkEnum_021DFB94_36 : UnkEnum_021DFB94_35);
} else {
ov19_021DFD08(v0, UnkEnum_021DFB94_34);
}
ov19_021DFD08(v0, UnkEnum_021DFB94_37);
{
const PCMonPreview *preview = ov19_GetPCMonPreview(param0);
if (preview->isEgg == FALSE) {
ov19_021DFD08(v0, UnkEnum_021DFB94_40);
}
}
ov19_021DFD08(v0, (ov19_GetCursorLocation(param0) == CURSOR_IN_BOX) ? UnkEnum_021DFB94_38 : UnkEnum_021DFB94_39);
ov19_021DFD08(v0, UnkEnum_021DFB94_41);
ov19_021DFD08(v0, UnkEnum_021DFB94_42);
ov19_021DFD08(v0, UnkEnum_021DFB94_43);
break;
case PC_MODE_DEPOSIT:
ov19_021DFD08(v0, UnkEnum_021DFB94_39);
ov19_021DFD08(v0, UnkEnum_021DFB94_37);
ov19_021DFD08(v0, UnkEnum_021DFB94_41);
ov19_021DFD08(v0, UnkEnum_021DFB94_42);
ov19_021DFD08(v0, UnkEnum_021DFB94_43);
break;
case PC_MODE_WITHDRAW:
ov19_021DFD08(v0, UnkEnum_021DFB94_38);
ov19_021DFD08(v0, UnkEnum_021DFB94_37);
ov19_021DFD08(v0, UnkEnum_021DFB94_41);
ov19_021DFD08(v0, UnkEnum_021DFB94_42);
ov19_021DFD08(v0, UnkEnum_021DFB94_43);
break;
case PC_MODE_COMPARE:
ov19_021DFD08(v0, (ov19_021D5F9C(param0) == 0) ? UnkEnum_021DFB94_52 : UnkEnum_021DFB94_53);
ov19_021DFD08(v0, (ov19_GetCursorLocation(param0) == CURSOR_IN_BOX) ? UnkEnum_021DFB94_38 : UnkEnum_021DFB94_39);
ov19_021DFD08(v0, UnkEnum_021DFB94_41);
ov19_021DFD08(v0, UnkEnum_021DFB94_43);
}
}
void ov19_021DFAD0(UnkStruct_ov19_021D4DF0 *param0)
{
UnkStruct_ov19_021DF964 *v0;
u32 v1, v2;
v0 = &(param0->unk_74);
v1 = ov19_GetCursorItem(param0);
v2 = ov19_GetPreviewedMonHeldItem(param0);
ov19_021DFCF8(v0);
v0->unk_23 = 1;
if (v1 != 0) {
if (v2 != 0) {
ov19_021DFD08(v0, UnkEnum_021DFB94_49);
} else {
ov19_021DFD08(v0, UnkEnum_021DFB94_46);
}
ov19_021DFD08(v0, UnkEnum_021DFB94_50);
ov19_021DFD08(v0, UnkEnum_021DFB94_48);
} else {
if (v2 != 0) {
ov19_021DFD08(v0, UnkEnum_021DFB94_47);
ov19_021DFD08(v0, UnkEnum_021DFB94_50);
ov19_021DFD08(v0, UnkEnum_021DFB94_48);
} else {
ov19_021DFD08(v0, UnkEnum_021DFB94_46);
}
}
ov19_021DFD08(v0, UnkEnum_021DFB94_51);
}
void ov19_021DFB50(UnkStruct_ov19_021D4DF0 *param0)
{
UnkStruct_ov19_021DF964 *v0 = &(param0->unk_74);
const PCBoxes *unused = ov19_GetPCBoxes(param0);
ov19_021DFCF8(v0);
ov19_021DFD08(v0, UnkEnum_021DFB94_00);
if (ov19_GetBoxMode(param0) != PC_MODE_COMPARE) {
ov19_021DFD08(v0, UnkEnum_021DFB94_01);
ov19_021DFD08(v0, UnkEnum_021DFB94_02);
}
ov19_021DFD08(v0, UnkEnum_021DFB94_03);
v0->unk_23 = 2;
}
void ov19_021DFB94(UnkStruct_ov19_021D4DF0 *param0, UnkEnum_021DFB94 param1)
{
UnkStruct_ov19_021DF964 *v0 = &(param0->unk_74);
const PCBoxes *pcBoxes = ov19_GetPCBoxes(param0);
u32 numUnlockedWallpapers;
ov19_021DFCF8(v0);
ov19_021DFD08(v0, UnkEnum_021DFB94_04);
ov19_021DFD08(v0, UnkEnum_021DFB94_05);
ov19_021DFD08(v0, UnkEnum_021DFB94_06);
ov19_021DFD08(v0, UnkEnum_021DFB94_07);
numUnlockedWallpapers = PCBoxes_CountUnlockedWallpapers(pcBoxes);
if (numUnlockedWallpapers > 0) {
ov19_021DFD08(v0, UnkEnum_021DFB94_08);
}
if (numUnlockedWallpapers > 4) {
ov19_021DFD08(v0, UnkEnum_021DFB94_09);
}
v0->unk_23 = 3;
if ((param1 >= UnkEnum_021DFB94_04) && (param1 <= UnkEnum_021DFB94_09)) {
v0->unk_20 = param1 - UnkEnum_021DFB94_04;
} else {
GF_ASSERT(0);
}
}
void ov19_021DFC04(UnkStruct_ov19_021D4DF0 *param0, UnkEnum_021DFB94 param1)
{
static const u16 v0[][4] = {
{ UnkEnum_021DFB94_10, UnkEnum_021DFB94_11, UnkEnum_021DFB94_12, UnkEnum_021DFB94_13 },
{ UnkEnum_021DFB94_14, UnkEnum_021DFB94_15, UnkEnum_021DFB94_16, UnkEnum_021DFB94_17 },
{ UnkEnum_021DFB94_18, UnkEnum_021DFB94_19, UnkEnum_021DFB94_20, UnkEnum_021DFB94_21 },
{ UnkEnum_021DFB94_22, UnkEnum_021DFB94_23, UnkEnum_021DFB94_24, UnkEnum_021DFB94_25 },
};
UnkStruct_ov19_021DF964 *v1 = &(param0->unk_74);
const PCBoxes *pcBoxes = ov19_GetPCBoxes(param0);
int v3;
ov19_021DFCF8(v1);
if ((param1 >= UnkEnum_021DFB94_04) && (param1 <= UnkEnum_021DFB94_07)) {
param1 -= UnkEnum_021DFB94_04;
for (v3 = 0; v3 < 4; v3++) {
ov19_021DFD08(v1, v0[param1][v3]);
}
} else {
int v4 = 0;
int v5 = 0;
if (param1 == UnkEnum_021DFB94_09) {
v4 = 4;
}
for (v3 = 0; v3 < 8; v3++) {
if (PCBoxes_CheckHasUnlockedWallpaper(pcBoxes, v3)) {
if (v4) {
v4--;
} else {
ov19_021DFD08(v1, UnkEnum_021DFB94_26 + v3);
if (++v5 >= 4) {
break;
}
}
}
}
}
v1->unk_23 = 3;
}
void ov19_021DFC80(UnkStruct_ov19_021D4DF0 *param0)
{
UnkStruct_ov19_021DF964 *v0 = &(param0->unk_74);
ov19_021DFCF8(v0);
v0->unk_23 = 4;
v0->unk_22 = param0->pcMonPreview.markings;
ov19_021DFD08(v0, UnkEnum_021DFB94_56);
ov19_021DFD08(v0, UnkEnum_021DFB94_57);
ov19_021DFD08(v0, UnkEnum_021DFB94_58);
ov19_021DFD08(v0, UnkEnum_021DFB94_59);
ov19_021DFD08(v0, UnkEnum_021DFB94_60);
ov19_021DFD08(v0, UnkEnum_021DFB94_61);
ov19_021DFD08(v0, UnkEnum_021DFB94_44);
ov19_021DFD08(v0, UnkEnum_021DFB94_45);
}
void ov19_021DFCE4(UnkStruct_ov19_021D4DF0 *param0, u32 param1)
{
UnkStruct_ov19_021DF964 *v0 = &(param0->unk_74);
v0->unk_22 ^= (1 << param1);
}
static void ov19_021DFCF8(UnkStruct_ov19_021DF964 *param0)
{
param0->unk_21 = 0;
param0->unk_20 = 0;
}
static void ov19_021DFD08(UnkStruct_ov19_021DF964 *param0, UnkEnum_021DFB94 param1)
{
if (param0->unk_21 < 8) {
param0->unk_00[param0->unk_21++] = param1;
}
}
int ov19_021DFD2C(UnkStruct_ov19_021D4DF0 *param0)
{
UnkStruct_ov19_021DF964 *v0 = &(param0->unk_74);
if (gSystem.pressedKeys & PAD_KEY_UP) {
if (v0->unk_20) {
v0->unk_20--;
return -2;
} else if (v0->unk_21 >= 3) {
v0->unk_20 = v0->unk_21 - 1;
return -2;
}
}
if (gSystem.pressedKeys & PAD_KEY_DOWN) {
if (v0->unk_20 < (v0->unk_21 - 1)) {
v0->unk_20++;
return -2;
} else if (v0->unk_21 >= 3) {
v0->unk_20 = 0;
return -2;
}
}
if (gSystem.pressedKeys & PAD_BUTTON_B) {
Sound_PlayEffect(SEQ_SE_DP_DECIDE);
return -1;
}
if (gSystem.pressedKeys & PAD_BUTTON_A) {
Sound_PlayEffect(SEQ_SE_DP_DECIDE);
return v0->unk_00[v0->unk_20];
}
return -3;
}
UnkEnum_021DFB94 ov19_021DFDDC(UnkStruct_ov19_021D4DF0 *param0)
{
UnkStruct_ov19_021DF964 *v0 = &(param0->unk_74);
return v0->unk_00[v0->unk_20];
}
UnkEnum_021DFB94 ov19_021DFDEC(UnkStruct_ov19_021D4DF0 *param0)
{
UnkStruct_ov19_021DF964 *v0 = &(param0->unk_74);
return v0->unk_00[0];
}

View File

@@ -2794,7 +2794,7 @@ static int ov64_0223044C (UnkStruct_ov64_02230444 * param0, UnkStruct_ov64_0222D
}
ApplicationManager_Free(param0->appMan);
ov64_0222E07C(param2, param0->unk_04->unk_18, param0->unk_08->unk_1C);
ov64_0222E07C(param2, param0->unk_04->textInputStr, param0->unk_08->unk_1C);
ov64_0222E074(param2, 0, 6);
param2->unk_04 = 3;
break;
@@ -2818,7 +2818,7 @@ static int ov64_0223044C (UnkStruct_ov64_02230444 * param0, UnkStruct_ov64_0222D
if (param0->unk_04->unk_14 == 0) {
ov64_0222E074(param2, 1, 12);
ov64_0222E07C(param2, param0->unk_04->unk_18, NULL);
ov64_0222E07C(param2, param0->unk_04->textInputStr, NULL);
param2->unk_04 = 6;
} else {
ov64_0222E074(param2, 1, 13);
@@ -2858,9 +2858,9 @@ static UnkStruct_0208737C * ov64_022305DC (UnkStruct_ov64_02230444 * param0, Unk
if (param1->unk_34.unk_04 == 1) {
{
if (IsFullWidthChar(*param1->unk_34.unk_00) == 0) {
Strbuf_CopyChars(v0->unk_18, param1->unk_34.unk_00);
Strbuf_CopyChars(v0->textInputStr, param1->unk_34.unk_00);
} else {
Strbuf_Clear(v0->unk_18);
Strbuf_Clear(v0->textInputStr);
}
}

View File

@@ -235,13 +235,13 @@ int ov73_021D0F7C(ApplicationManager *appMan, int *param1)
Heap_FreeToHeap(v0->unk_B8);
Heap_FreeToHeap(v0->unk_BC);
TrainerInfo_SetNameFromStrbuf(SaveData_GetTrainerInfo(v0->saveData), v0->unk_70->unk_18);
TrainerInfo_SetNameFromStrbuf(SaveData_GetTrainerInfo(v0->saveData), v0->unk_70->textInputStr);
TrainerInfo_SetGender(SaveData_GetTrainerInfo(v0->saveData), v0->unk_70->unk_04);
{
MiscSaveBlock *v2 = SaveData_MiscSaveBlock(v0->saveData);
MiscSaveBlock_SetRivalName(v2, v0->unk_74->unk_18);
MiscSaveBlock_SetRivalName(v2, v0->unk_74->textInputStr);
}
sub_0208716C(v0->unk_70);
@@ -706,8 +706,8 @@ static BOOL ov73_021D1510(UnkStruct_ov73_021D1058 *param0, u32 param1, int param
param0->unk_5C = Strbuf_Init(0x400, param0->heapID);
MessageLoader_GetStrbuf(param0->unk_4C, param1, v1);
StringTemplate_SetStrbuf(param0->unk_64, 0, param0->unk_70->unk_18, param0->unk_84, 1, GAME_LANGUAGE);
StringTemplate_SetStrbuf(param0->unk_64, 1, param0->unk_74->unk_18, 0, 1, GAME_LANGUAGE);
StringTemplate_SetStrbuf(param0->unk_64, 0, param0->unk_70->textInputStr, param0->unk_84, 1, GAME_LANGUAGE);
StringTemplate_SetStrbuf(param0->unk_64, 1, param0->unk_74->textInputStr, 0, 1, GAME_LANGUAGE);
StringTemplate_Format(param0->unk_64, param0->unk_5C, v1);
Strbuf_Free(v1);
}
@@ -2025,7 +2025,7 @@ static BOOL ov73_021D2318(UnkStruct_ov73_021D1058 *param0)
break;
case 2:
case 0xfffffffe:
Strbuf_Clear(param0->unk_70->unk_18);
Strbuf_Clear(param0->unk_70->textInputStr);
param0->unk_10 = 63;
param0->unk_0C = 81;
break;
@@ -2110,7 +2110,7 @@ static BOOL ov73_021D2318(UnkStruct_ov73_021D1058 *param0)
{
Strbuf *v10 = MessageLoader_GetNewStrbuf(param0->unk_4C, v9);
Strbuf_Copy(param0->unk_74->unk_18, v10);
Strbuf_Copy(param0->unk_74->textInputStr, v10);
Strbuf_Free(v10);
}
}
@@ -2157,7 +2157,7 @@ static BOOL ov73_021D2318(UnkStruct_ov73_021D1058 *param0)
break;
case 2:
case 0xfffffffe:
Strbuf_Clear(param0->unk_74->unk_18);
Strbuf_Clear(param0->unk_74->textInputStr);
param0->unk_0C = 88;
break;
}

View File

@@ -3735,7 +3735,7 @@ static BOOL sub_02041CF4(ScriptContext *ctx)
return FALSE;
}
if (v2->unk_08 == 1) {
if (v2->recordBoxUseInJournal == TRUE) {
void *journalEntryLocationEvent;
journalEntryLocationEvent = JournalEntry_CreateEventUsedPCBox(HEAP_ID_FIELDMAP);

View File

@@ -1179,11 +1179,11 @@ static BOOL sub_0203DE98(FieldTask *param0)
break;
case 3:
if (v2->unk_0C->unk_00 == 1) {
if (Strbuf_Compare(v2->unk_0C->unk_18, v2->unk_10) == 0) {
if (Strbuf_Compare(v2->unk_0C->textInputStr, v2->unk_10) == 0) {
v2->unk_0C->unk_14 = 1;
}
} else if (v2->unk_0C->unk_00 == 5) {
const u16 *v3 = Strbuf_GetData(v2->unk_0C->unk_18);
const u16 *v3 = Strbuf_GetData(v2->unk_0C->textInputStr);
RecordMixedRNG *v4 = SaveData_GetRecordMixedRNG(fieldSystem->saveData);
if (RecordMixedRNG_DoesCollectionContainGroup(v4, v3)) {
@@ -1228,11 +1228,11 @@ static void sub_0203DF68(FieldTask *param0)
} break;
case 5: {
RecordMixedRNG *v5 = SaveData_GetRecordMixedRNG(fieldSystem->saveData);
RecordMixedRNG_GetEntryNameAsStrbuf(v5, 0, 0, v1->unk_0C->unk_18);
RecordMixedRNG_GetEntryNameAsStrbuf(v5, 0, 0, v1->unk_0C->textInputStr);
} break;
case 6: {
MiscSaveBlock *v6 = SaveData_MiscSaveBlock(fieldSystem->saveData);
MiscSaveBlock_SetTabletName(v6, v1->unk_0C->unk_18);
MiscSaveBlock_SetTabletName(v6, v1->unk_0C->textInputStr);
} break;
}
@@ -1266,7 +1266,7 @@ void sub_0203DFE8(FieldTask *param0, int param1, int param2, int param3, int par
break;
default:
if (param5 != NULL) {
Strbuf_CopyChars(v2->unk_0C->unk_18, param5);
Strbuf_CopyChars(v2->unk_0C->textInputStr, param5);
}
break;
}

View File

@@ -1074,17 +1074,17 @@ static void sub_02086E6C(UnkStruct_02087A10 *param0, UnkStruct_0208737C *param1)
v0 = MessageLoader_GetNewStrbuf(param0->unk_170, 18 + LCRNG_Next() % 18);
}
Strbuf_Copy(param1->unk_18, v0);
Strbuf_Copy(param1->textInputStr, v0);
Strbuf_Free(v0);
Strbuf_ToChars(param1->unk_18, param1->unk_1C, 10);
Strbuf_ToChars(param1->textInputStr, param1->unk_1C, 10);
} else if (param0->unk_00 == 3) {
Strbuf *v1;
v1 = MessageLoader_GetNewStrbuf(param0->unk_170, 88 + (LCRNG_Next() % 2));
Strbuf_Copy(param1->unk_18, v1);
Strbuf_Copy(param1->textInputStr, v1);
Strbuf_Free(v1);
Strbuf_ToChars(param1->unk_18, param1->unk_1C, 10);
Strbuf_ToChars(param1->textInputStr, param1->unk_1C, 10);
} else {
param1->unk_14 = 1;
}
@@ -1130,7 +1130,7 @@ static int sub_02086F3C(ApplicationManager *appMan, int *param1)
} else {
CharCode_Copy(v0->unk_118, v0->unk_D8);
CharCode_Copy(v1->unk_1C, v0->unk_D8);
Strbuf_CopyChars(v1->unk_18, v0->unk_D8);
Strbuf_CopyChars(v1->textInputStr, v0->unk_D8);
}
Strbuf_Free(v0->unk_184);
@@ -1198,7 +1198,7 @@ UnkStruct_0208737C *sub_0208712C(int heapID, int param1, int param2, int param3,
v0->unk_0C = param3;
v0->unk_14 = 0;
v0->unk_1C[0] = 0xffff;
v0->unk_18 = Strbuf_Init(32, heapID);
v0->textInputStr = Strbuf_Init(32, heapID);
v0->unk_44 = 0;
v0->unk_48 = NULL;
v0->unk_10 = 0;
@@ -1210,10 +1210,10 @@ UnkStruct_0208737C *sub_0208712C(int heapID, int param1, int param2, int param3,
void sub_0208716C(UnkStruct_0208737C *param0)
{
GF_ASSERT((param0->unk_18) != NULL);
GF_ASSERT((param0->textInputStr) != NULL);
GF_ASSERT((param0) != NULL);
Strbuf_Free(param0->unk_18);
Strbuf_Free(param0->textInputStr);
Heap_FreeToHeap(param0);
}
@@ -1387,8 +1387,8 @@ static void sub_0208737C(UnkStruct_02087A10 *param0, ApplicationManager *appMan)
param0->unk_118[0] = 0xffff;
if (v0->unk_18) {
Strbuf_ToChars(v0->unk_18, param0->unk_118, 32);
if (v0->textInputStr) {
Strbuf_ToChars(v0->textInputStr, param0->unk_118, 32);
}
MI_CpuFill16(param0->unk_D8, 0x1, 32 * 2);

View File

@@ -244,7 +244,7 @@ static BOOL sub_0209843C(FieldTask *param0)
} break;
case 4:
if (v0->unk_08->unk_14 == 0) {
Pokemon_SetValue(v0->unk_0C.unk_00, MON_DATA_NICKNAME_STRBUF_AND_FLAG, v0->unk_08->unk_18);
Pokemon_SetValue(v0->unk_0C.unk_00, MON_DATA_NICKNAME_STRBUF_AND_FLAG, v0->unk_08->textInputStr);
{
FieldSystem *fieldSystem = FieldTask_GetFieldSystem(param0);