From 4e03cfcb49f0ab85468b0a8baeaa778206de3ded Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Fri, 16 Jan 2026 20:13:37 -0300 Subject: [PATCH] Document Fashion Case + Dress Up Photos (#885) --- asm/macros/scrcmd.inc | 17 +- generated/accessories.txt | 6 +- generated/backdrops.txt | 1 + include/constants/accessories.h | 9 + include/constants/scrcmd.h | 2 +- include/overlay007/accessory_shop.h | 4 +- include/overlay017/ov17_02252A70.h | 2 +- include/overlay022/ov22_0225894C.h | 4 +- include/overlay022/ov22_02259098.h | 2 +- include/overlay022/ov22_0225AF8C.h | 6 +- include/overlay022/struct_ov22_0225899C.h | 6 +- include/overlay061/ov61_0222AE60.h | 6 +- include/overlay061/ov61_0222B008.h | 4 +- include/overlay061/struct_ov61_0222AE80.h | 7 +- .../overlay061/struct_ov61_0222AE80_sub1.h | 18 +- include/overlay061/struct_ov61_0222AFC0.h | 5 +- .../struct_ov61_0222BED8_sub2_sub1_sub1.h | 6 +- ...struct_ov61_0222BED8_sub2_sub1_sub1_sub1.h | 10 - .../struct_world_exchange_trainer.h | 4 +- include/scrcmd_amity_square.h | 2 +- include/string_template.h | 2 +- include/struct_decls/struct_02029C68_decl.h | 6 - include/struct_decls/struct_02029C88_decl.h | 6 - include/struct_decls/struct_02029D04_decl.h | 6 - include/struct_decls/struct_0202A138_decl.h | 6 - include/struct_decls/struct_0202A150_decl.h | 6 - include/struct_decls/struct_0202A750_decl.h | 6 - include/struct_defs/dress_up_photo.h | 20 + include/struct_defs/fashion_case.h | 10 + include/struct_defs/image_clips.h | 16 + include/struct_defs/photo_accessory.h | 11 + include/struct_defs/photo_pokemon.h | 19 + include/struct_defs/struct_02029C88.h | 16 + include/struct_defs/struct_0203DA00.h | 8 +- include/struct_defs/struct_02041DC8.h | 4 +- include/struct_defs/struct_02093800.h | 4 +- include/struct_defs/struct_02093BBC.h | 6 +- include/struct_defs/struct_02095C48.h | 4 +- include/struct_defs/struct_02095C48_sub1.h | 6 +- include/unk_02014A84.h | 4 +- include/unk_020298BC.h | 121 ++- include/unk_02095AF0.h | 2 +- res/field/scripts/scripts_amity_square.s | 6 +- .../scripts/scripts_jubilife_tv_2f_gallery.s | 2 +- src/bag_context.c | 12 +- src/overlay005/script_message.c | 4 +- src/overlay007/accessory_shop.c | 30 +- src/overlay017/ov17_0223B140.c | 2 +- src/overlay017/ov17_0223DAD0.c | 8 +- src/overlay017/ov17_0223F118.c | 2 +- src/overlay017/ov17_0223F7E4.c | 6 +- src/overlay017/ov17_02245F14.c | 8 +- src/overlay017/ov17_02246ECC.c | 6 +- src/overlay017/ov17_022492DC.c | 6 +- src/overlay017/ov17_0224A0FC.c | 4 +- src/overlay017/ov17_0224E930.c | 10 +- src/overlay017/ov17_02250744.c | 2 +- src/overlay017/ov17_02252A70.c | 2 +- src/overlay020/ov20_021D0D80.c | 4 +- src/overlay022/ov22_02255D44.c | 40 +- src/overlay022/ov22_0225894C.c | 29 +- src/overlay022/ov22_02259098.c | 6 +- src/overlay022/ov22_0225AF8C.c | 58 +- src/overlay022/ov22_0225B660.c | 20 +- src/overlay059/ov59_021D2F88.c | 20 +- src/overlay061/ov61_0222AE60.c | 10 +- src/overlay061/ov61_0222B008.c | 6 +- src/overlay062/ov62_0222F2C0.c | 8 +- src/overlay062/ov62_02237D24.c | 48 +- src/overlay104/ov104_02231F74.c | 4 +- src/savedata/save_table.c | 2 +- src/scrcmd.c | 89 +- src/scrcmd_amity_square.c | 10 +- src/scrcmd_mystery_gift.c | 4 +- src/scrcmd_tv_broadcast.c | 6 +- src/string_template.c | 2 +- src/tv_episode_segment.c | 66 +- src/unk_02014A84.c | 6 +- src/unk_020298BC.c | 831 ++++++++---------- src/unk_0203D1B8.c | 21 +- src/unk_02046C7C.c | 2 +- src/unk_0205B33C.c | 2 +- src/unk_020933F8.c | 187 ++-- src/unk_02094EDC.c | 8 +- src/unk_02095AF0.c | 2 +- src/unk_0209ACF4.c | 2 +- 86 files changed, 1006 insertions(+), 1007 deletions(-) create mode 100644 include/constants/accessories.h delete mode 100644 include/overlay061/struct_ov61_0222BED8_sub2_sub1_sub1_sub1.h delete mode 100644 include/struct_decls/struct_02029C68_decl.h delete mode 100644 include/struct_decls/struct_02029C88_decl.h delete mode 100644 include/struct_decls/struct_02029D04_decl.h delete mode 100644 include/struct_decls/struct_0202A138_decl.h delete mode 100644 include/struct_decls/struct_0202A150_decl.h delete mode 100644 include/struct_decls/struct_0202A750_decl.h create mode 100644 include/struct_defs/dress_up_photo.h create mode 100644 include/struct_defs/fashion_case.h create mode 100644 include/struct_defs/image_clips.h create mode 100644 include/struct_defs/photo_accessory.h create mode 100644 include/struct_defs/photo_pokemon.h create mode 100644 include/struct_defs/struct_02029C88.h diff --git a/asm/macros/scrcmd.inc b/asm/macros/scrcmd.inc index 136b37ad7a..c361db1d29 100644 --- a/asm/macros/scrcmd.inc +++ b/asm/macros/scrcmd.inc @@ -1,4 +1,4 @@ -#include "generated/accessories.h" +#include "constants/accessories.h" #include "generated/badges.h" #include "generated/battle_tower_modes.h" #include "generated/battle_tower_functions.h" @@ -1791,9 +1791,9 @@ .short \arg1 .endm - .macro ScrCmd_130 arg0 + .macro SetDressUpPhotoTitle word .short 304 - .short \arg0 + .short \word .endm .macro ScrCmd_131 @@ -3745,10 +3745,11 @@ .short \slot .endm - .macro ScrCmd_Unused_279 arg0, arg1 + /* Unused */ + .macro ScrCmd_RemoveAccessory accessoryID, amount .short 633 - .short \arg0 - .short \arg1 + .short \accessoryID + .short \amount .endm .macro ScrCmd_27A @@ -4329,8 +4330,8 @@ .short \destBerryAndAccessoryManOptionID .endm - .macro GoToIfAmitySquareManGiftIsNotAccesory giftID, offset - .short 736 /* CheckAmitySquareManGiftIsAccesory */ + .macro GoToIfAmitySquareManGiftIsNotAccessory giftID, offset + .short 736 /* CheckAmitySquareManGiftIsAccessory */ .short \giftID .short VAR_RESULT GoToIfEq VAR_RESULT, FALSE, \offset diff --git a/generated/accessories.txt b/generated/accessories.txt index e7be75df3f..5c5a727323 100644 --- a/generated/accessories.txt +++ b/generated/accessories.txt @@ -59,7 +59,8 @@ ACCESSORY_BLACK_SPECS ACCESSORY_GORGEOUS_SPECS ACCESSORY_SWEET_CANDY ACCESSORY_CONFETTI -ACCESSORY_COLORED_PARASOL +NON_UNIQUE_ACCESSORY_COUNT +ACCESSORY_COLORED_PARASOL = NON_UNIQUE_ACCESSORY_COUNT ACCESSORY_OLD_UMBRELLA ACCESSORY_SPOTLIGHT ACCESSORY_CAPE @@ -97,4 +98,5 @@ ACCESSORY_BIG_TREE ACCESSORY_FLAG ACCESSORY_CROWN ACCESSORY_TIARA -ACCESSORY_COMET \ No newline at end of file +ACCESSORY_COMET +ACCESSORY_COUNT diff --git a/generated/backdrops.txt b/generated/backdrops.txt index 101abf0862..fc45f72df7 100644 --- a/generated/backdrops.txt +++ b/generated/backdrops.txt @@ -16,3 +16,4 @@ BACKDROP_SEAFLOOR BACKDROP_UNDERGROUND BACKDROP_SKY BACKDROP_THEATER +BACKDROP_COUNT diff --git a/include/constants/accessories.h b/include/constants/accessories.h new file mode 100644 index 0000000000..f63f9b21ed --- /dev/null +++ b/include/constants/accessories.h @@ -0,0 +1,9 @@ +#ifndef POKEPLATINUM_CONSTANTS_ACCESSORIES_H +#define POKEPLATINUM_CONSTANTS_ACCESSORIES_H + +#include "generated/accessories.h" + +#define MAX_NON_UNIQUE_ACCESSORIES_PER_TYPE 9 +#define MAX_UNIQUE_ACCESSORIES_PER_TYPE 1 + +#endif // POKEPLATINUM_CONSTANTS_ACCESSORIES_H diff --git a/include/constants/scrcmd.h b/include/constants/scrcmd.h index eec568f801..e93a27306e 100644 --- a/include/constants/scrcmd.h +++ b/include/constants/scrcmd.h @@ -1,7 +1,7 @@ #ifndef POKEPLATINUM_CONSTANTS_SCRCMD_H #define POKEPLATINUM_CONSTANTS_SCRCMD_H -#include "generated/accessories.h" +#include "constants/accessories.h" #include "generated/backdrops.h" #define BERRY_WATERING_START 0 diff --git a/include/overlay007/accessory_shop.h b/include/overlay007/accessory_shop.h index 25296f8396..9dd7362823 100644 --- a/include/overlay007/accessory_shop.h +++ b/include/overlay007/accessory_shop.h @@ -3,7 +3,7 @@ #include "constants/heap.h" -#include "struct_decls/struct_02029D04_decl.h" +#include "struct_defs/fashion_case.h" #include "bag.h" #include "bg_window.h" @@ -113,7 +113,7 @@ typedef struct AccessoryShop { enum AccessoryShopState state; enum AccessoryShopState nextState; SaveData *saveData; - UnkStruct_02029D04 *unk_0C; + FashionCase *fashionCase; Bag *bag; BgConfig *bgConfig; enum HeapID heapID; diff --git a/include/overlay017/ov17_02252A70.h b/include/overlay017/ov17_02252A70.h index 0217e2df14..730c591f7f 100644 --- a/include/overlay017/ov17_02252A70.h +++ b/include/overlay017/ov17_02252A70.h @@ -1,7 +1,7 @@ #ifndef POKEPLATINUM_OV17_02252A70_H #define POKEPLATINUM_OV17_02252A70_H -#include "struct_decls/struct_02029C88_decl.h" +#include "struct_defs/struct_02029C88.h" u32 ov17_02252A70(const UnkStruct_02029C88 *param0, const u8 *param1); u8 *ov17_02252A9C(u32 param0, u32 param1); diff --git a/include/overlay022/ov22_0225894C.h b/include/overlay022/ov22_0225894C.h index 0be4f1e33c..5e90e4b04d 100644 --- a/include/overlay022/ov22_0225894C.h +++ b/include/overlay022/ov22_0225894C.h @@ -1,11 +1,11 @@ #ifndef POKEPLATINUM_OV22_0225894C_H #define POKEPLATINUM_OV22_0225894C_H -#include "struct_decls/struct_02029D04_decl.h" +#include "struct_defs/fashion_case.h" #include "overlay022/struct_ov22_0225899C.h" -void ov22_0225894C(const UnkStruct_02029D04 *param0, UnkStruct_ov22_0225899C *param1); +void ov22_0225894C(const FashionCase *fashionCase, UnkStruct_ov22_0225899C *param1); u32 ov22_0225899C(const UnkStruct_ov22_0225899C *param0, u32 param1); u32 ov22_022589B0(const UnkStruct_ov22_0225899C *param0, u32 param1); u32 ov22_022589BC(const UnkStruct_ov22_0225899C *param0, u32 param1); diff --git a/include/overlay022/ov22_02259098.h b/include/overlay022/ov22_02259098.h index 6fd543e1b0..ffd7e28921 100644 --- a/include/overlay022/ov22_02259098.h +++ b/include/overlay022/ov22_02259098.h @@ -19,7 +19,7 @@ int ov22_022591E0(UnkStruct_020298D8 *param0); void ov22_022591EC(UnkStruct_020298D8 *param0, int param1, int param2); BOOL ov22_02259238(UnkStruct_020298D8 *param0); BOOL ov22_02259244(UnkStruct_020298D8 *param0, int param1, int param2); -void ov22_02259250(UnkStruct_020298D8 *param0, int *param1, int *param2); +void ov22_02259250(UnkStruct_020298D8 *param0, int *xCenter, int *yCenter); void ov22_02259270(UnkStruct_020298D8 *param0, int *param1, int *param2); BOOL ov22_02259278(UnkStruct_020298D8 *param0, int *param1, int *param2, NNSG2dCharacterData *param3); BOOL ov22_022592F0(UnkStruct_020298D8 *param0, int param1, int param2, NNSG2dCharacterData *param3); diff --git a/include/overlay022/ov22_0225AF8C.h b/include/overlay022/ov22_0225AF8C.h index 3cd4f44444..4df1cb9ccc 100644 --- a/include/overlay022/ov22_0225AF8C.h +++ b/include/overlay022/ov22_0225AF8C.h @@ -3,13 +3,13 @@ #include -#include "struct_decls/struct_02029C68_decl.h" -#include "struct_decls/struct_02029C88_decl.h" +#include "struct_defs/dress_up_photo.h" +#include "struct_defs/struct_02029C88.h" #include "overlay022/struct_ov22_0225AF8C.h" #include "overlay022/struct_ov22_0225B1BC_decl.h" -UnkStruct_ov22_0225B1BC *ov22_0225AF8C(const UnkStruct_ov22_0225AF8C *param0, const UnkStruct_02029C68 *param1); +UnkStruct_ov22_0225B1BC *ov22_0225AF8C(const UnkStruct_ov22_0225AF8C *param0, const DressUpPhoto *photo); UnkStruct_ov22_0225B1BC *ov22_0225AFB0(const UnkStruct_ov22_0225AF8C *param0, const UnkStruct_02029C88 *param1); UnkStruct_ov22_0225B1BC *ov22_0225AFD4(const UnkStruct_ov22_0225AF8C *param0, const UnkStruct_02029C88 *param1); void ov22_0225AFF8(UnkStruct_ov22_0225B1BC *param0); diff --git a/include/overlay022/struct_ov22_0225899C.h b/include/overlay022/struct_ov22_0225899C.h index a1a772cdf9..8249c267cd 100644 --- a/include/overlay022/struct_ov22_0225899C.h +++ b/include/overlay022/struct_ov22_0225899C.h @@ -1,9 +1,11 @@ #ifndef POKEPLATINUM_STRUCT_OV22_0225899C_H #define POKEPLATINUM_STRUCT_OV22_0225899C_H +#include "generated/accessories.h" +#include "generated/backdrops.h" typedef struct { - u32 unk_00[100]; - u32 unk_190[18]; + u32 accessoryCounts[ACCESSORY_COUNT]; + u32 backdropCounts[BACKDROP_COUNT]; } UnkStruct_ov22_0225899C; #endif // POKEPLATINUM_STRUCT_OV22_0225899C_H diff --git a/include/overlay061/ov61_0222AE60.h b/include/overlay061/ov61_0222AE60.h index edfe1e7b37..186c91bb1f 100644 --- a/include/overlay061/ov61_0222AE60.h +++ b/include/overlay061/ov61_0222AE60.h @@ -2,8 +2,8 @@ #define POKEPLATINUM_OV61_0222AE60_H #include "struct_decls/pc_boxes_decl.h" -#include "struct_decls/struct_02029C68_decl.h" #include "struct_decls/struct_02030A80_decl.h" +#include "struct_defs/dress_up_photo.h" #include "overlay061/struct_ov61_0222AE80.h" #include "overlay061/struct_ov61_0222AFC0.h" @@ -12,8 +12,8 @@ #include "savedata.h" -void ov61_0222AE60(SaveData *saveData, const UnkStruct_02029C68 *param1, UnkStruct_ov61_0222AE80 *param2); -void ov61_0222AE80(const UnkStruct_ov61_0222AE80 *param0, UnkStruct_02029C68 *param1); +void ov61_0222AE60(SaveData *saveData, const DressUpPhoto *photo, UnkStruct_ov61_0222AE80 *param2); +void ov61_0222AE80(const UnkStruct_ov61_0222AE80 *param0, DressUpPhoto *photo); void ov61_0222AE88(SaveData *saveData, const PCBoxes *pcBoxes, int boxID, UnkStruct_ov62_02239DA4 *param3, enum HeapID heapID); void ov61_0222AF88(SaveData *saveData, UnkStruct_ov62_02239DA4 *param1, int param2); void ov61_0222AFA4(SaveData *saveData, const UnkStruct_02030A80 *param1, UnkStruct_ov61_0222AFC0 *param2); diff --git a/include/overlay061/ov61_0222B008.h b/include/overlay061/ov61_0222B008.h index e9dcd8fe56..2559e2a82d 100644 --- a/include/overlay061/ov61_0222B008.h +++ b/include/overlay061/ov61_0222B008.h @@ -2,8 +2,8 @@ #define POKEPLATINUM_OV61_0222B008_H #include "struct_decls/pc_boxes_decl.h" -#include "struct_decls/struct_02029C68_decl.h" #include "struct_decls/struct_02030A80_decl.h" +#include "struct_defs/dress_up_photo.h" #include "overlay061/struct_ov61_0222B2D8.h" #include "overlay062/struct_ov62_022349A8.h" @@ -12,7 +12,7 @@ int ov61_0222B008(UnkStruct_ov62_022349A8 *param0, const UnkStruct_ov62_02241130 *param1); void ov61_0222B0F0(UnkStruct_ov62_022349A8 *param0); -int ov61_0222B1B4(UnkStruct_ov62_022349A8 *param0, UnkStruct_02030A80 *param1, UnkStruct_02029C68 *param2); +int ov61_0222B1B4(UnkStruct_ov62_022349A8 *param0, UnkStruct_02030A80 *param1, DressUpPhoto *photo); int ov61_0222B1FC(UnkStruct_ov62_022349A8 *param0, int param1); int ov61_0222B224(UnkStruct_ov62_022349A8 *param0, int param1, UnkStruct_02030A80 *param2, const PCBoxes *pcBoxes, int param4); int ov61_0222B290(UnkStruct_ov62_022349A8 *param0, int param1); diff --git a/include/overlay061/struct_ov61_0222AE80.h b/include/overlay061/struct_ov61_0222AE80.h index 343d1e6e31..9be9776c05 100644 --- a/include/overlay061/struct_ov61_0222AE80.h +++ b/include/overlay061/struct_ov61_0222AE80.h @@ -1,16 +1,17 @@ #ifndef POKEPLATINUM_STRUCT_OV61_0222AE80_H #define POKEPLATINUM_STRUCT_OV61_0222AE80_H +#include "struct_defs/sentence.h" + #include "overlay061/struct_ov61_0222AE80_sub1.h" #include "overlay061/struct_ov61_0222AE80_sub2.h" -#include "overlay061/struct_ov61_0222BED8_sub2_sub1_sub1_sub1.h" #include "overlay062/struct_ov62_02239DA4_sub1.h" typedef struct { - u32 unk_00; + u32 integrity; UnkStruct_ov61_0222AE80_sub1 unk_04; u32 unk_24; - UnkStruct_ov61_0222BED8_sub2_sub1_sub1_sub1 unk_28; + Sentence title; UnkStruct_ov61_0222AE80_sub2 unk_30[10]; u8 unk_58; u8 unk_59; diff --git a/include/overlay061/struct_ov61_0222AE80_sub1.h b/include/overlay061/struct_ov61_0222AE80_sub1.h index 02cee82f32..3e336da2c5 100644 --- a/include/overlay061/struct_ov61_0222AE80_sub1.h +++ b/include/overlay061/struct_ov61_0222AE80_sub1.h @@ -1,15 +1,17 @@ #ifndef POKEPLATINUM_STRUCT_OV61_0222AE80_SUB1_H #define POKEPLATINUM_STRUCT_OV61_0222AE80_SUB1_H +#include "constants/string.h" + typedef struct { - u32 unk_00; - u32 unk_04; - u16 unk_08; - u16 unk_0A[8]; - s8 unk_1A; - u8 unk_1B; - u8 unk_1C; - u8 unk_1D; + u32 personality; + u32 otID; + u16 species; + u16 trainerName[TRAINER_NAME_LEN + 1]; + s8 priority; + u8 xPos; + u8 yPos; + u8 form; } UnkStruct_ov61_0222AE80_sub1; #endif // POKEPLATINUM_STRUCT_OV61_0222AE80_SUB1_H diff --git a/include/overlay061/struct_ov61_0222AFC0.h b/include/overlay061/struct_ov61_0222AFC0.h index 576d0d100d..44b1922dff 100644 --- a/include/overlay061/struct_ov61_0222AFC0.h +++ b/include/overlay061/struct_ov61_0222AFC0.h @@ -1,7 +1,8 @@ #ifndef POKEPLATINUM_STRUCT_OV61_0222AFC0_H #define POKEPLATINUM_STRUCT_OV61_0222AFC0_H -#include "overlay061/struct_ov61_0222BED8_sub2_sub1_sub1_sub1.h" +#include "struct_defs/sentence.h" + #include "overlay062/struct_ov62_02239DA4_sub1.h" typedef struct { @@ -20,7 +21,7 @@ typedef struct { u8 unk_1E; u8 unk_1F; union { - UnkStruct_ov61_0222BED8_sub2_sub1_sub1_sub1 unk_20_val1; + Sentence unk_20_val1; u16 unk_20_val2[40]; }; u8 unk_70[12]; diff --git a/include/overlay061/struct_ov61_0222BED8_sub2_sub1_sub1.h b/include/overlay061/struct_ov61_0222BED8_sub2_sub1_sub1.h index 1cd35a90c8..29688407e9 100644 --- a/include/overlay061/struct_ov61_0222BED8_sub2_sub1_sub1.h +++ b/include/overlay061/struct_ov61_0222BED8_sub2_sub1_sub1.h @@ -1,7 +1,7 @@ #ifndef POKEPLATINUM_STRUCT_OV61_0222BED8_SUB2_SUB1_SUB1_H #define POKEPLATINUM_STRUCT_OV61_0222BED8_SUB2_SUB1_SUB1_H -#include "overlay061/struct_ov61_0222BED8_sub2_sub1_sub1_sub1.h" +#include "struct_defs/sentence.h" typedef struct { u8 unk_00; @@ -12,8 +12,8 @@ typedef struct { u32 unk_0C; u32 unk_10; u16 unk_14[8]; - UnkStruct_ov61_0222BED8_sub2_sub1_sub1_sub1 unk_24; - UnkStruct_ov61_0222BED8_sub2_sub1_sub1_sub1 unk_2C; + Sentence unk_24; + Sentence unk_2C; } UnkStruct_ov61_0222BED8_sub2_sub1_sub1; #endif // POKEPLATINUM_STRUCT_OV61_0222BED8_SUB2_SUB1_SUB1_H diff --git a/include/overlay061/struct_ov61_0222BED8_sub2_sub1_sub1_sub1.h b/include/overlay061/struct_ov61_0222BED8_sub2_sub1_sub1_sub1.h deleted file mode 100644 index 0bf97ff5f5..0000000000 --- a/include/overlay061/struct_ov61_0222BED8_sub2_sub1_sub1_sub1.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV61_0222BED8_SUB2_SUB1_SUB1_SUB1_H -#define POKEPLATINUM_STRUCT_OV61_0222BED8_SUB2_SUB1_SUB1_SUB1_H - -typedef struct { - u16 unk_00; - u16 unk_02; - u16 unk_04[2]; -} UnkStruct_ov61_0222BED8_sub2_sub1_sub1_sub1; - -#endif // POKEPLATINUM_STRUCT_OV61_0222BED8_SUB2_SUB1_SUB1_SUB1_H diff --git a/include/overlay096/struct_world_exchange_trainer.h b/include/overlay096/struct_world_exchange_trainer.h index 5e4eb976f4..65ef1a827b 100644 --- a/include/overlay096/struct_world_exchange_trainer.h +++ b/include/overlay096/struct_world_exchange_trainer.h @@ -1,13 +1,15 @@ #ifndef POKEPLATINUM_STRUCT_WORLD_EXCHANGE_TRAINER_H #define POKEPLATINUM_STRUCT_WORLD_EXCHANGE_TRAINER_H +#include "constants/string.h" + typedef struct WorldExchangeTrainer { u8 gameCode; u8 languageCode; u8 country; u8 unk_03; u32 trainerId; - u16 trainerName[8]; + u16 trainerName[TRAINER_NAME_LEN + 1]; u32 unk_10; u8 macAddress[6]; u8 unk_1A[2]; diff --git a/include/scrcmd_amity_square.h b/include/scrcmd_amity_square.h index 9893825759..f4c3d90b02 100644 --- a/include/scrcmd_amity_square.h +++ b/include/scrcmd_amity_square.h @@ -10,7 +10,7 @@ BOOL ScrCmd_ClearAmitySquareStepCount(ScriptContext *ctx); BOOL ScrCmd_GetAmitySquareStepCount(ScriptContext *ctx); BOOL ScrCmd_CalcAmitySquareFoundAccessory(ScriptContext *ctx); BOOL ScrCmd_CalcAmitySquareBerryAndAccessoryManOptionID(ScriptContext *ctx); -BOOL ScrCmd_CheckAmitySquareManGiftIsAccesory(ScriptContext *ctx); +BOOL ScrCmd_CheckAmitySquareManGiftIsAccessory(ScriptContext *ctx); BOOL ScrCmd_GetAmitySquareBerryOrAccessoryIDFromMan(ScriptContext *ctx); #endif // POKEPLATINUM_SCRCMD_AMITY_SQUARE_H diff --git a/include/string_template.h b/include/string_template.h index 30a60ba6aa..6b76ce1a37 100644 --- a/include/string_template.h +++ b/include/string_template.h @@ -38,7 +38,7 @@ typedef struct StringTemplate { StringTemplate *StringTemplate_Default(u32 heapID); StringTemplate *StringTemplate_New(u32 maxArgs, u32 maxLen, u32 heapID); void StringTemplate_Free(StringTemplate *template); -void StringTemplate_SetString(StringTemplate *template, u32 idx, const String *argVal, u32 unused3, BOOL unused4, u32 unused5); +void StringTemplate_SetString(StringTemplate *template, u32 idx, const String *argVal, u32 unused_gender, BOOL unused4, u32 unused_language); void StringTemplate_SetPlayerName(StringTemplate *template, u32 idx, const TrainerInfo *playerInfo); void StringTemplate_SetRivalName(StringTemplate *template, u32 idx, const SaveData *saveData); void StringTemplate_SetCounterpartName(StringTemplate *template, u32 idx, const SaveData *saveData); diff --git a/include/struct_decls/struct_02029C68_decl.h b/include/struct_decls/struct_02029C68_decl.h deleted file mode 100644 index 04b64cd950..0000000000 --- a/include/struct_decls/struct_02029C68_decl.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_02029C68_DECL_H -#define POKEPLATINUM_STRUCT_02029C68_DECL_H - -typedef struct UnkStruct_02029C68_t UnkStruct_02029C68; - -#endif // POKEPLATINUM_STRUCT_02029C68_DECL_H diff --git a/include/struct_decls/struct_02029C88_decl.h b/include/struct_decls/struct_02029C88_decl.h deleted file mode 100644 index f8898961db..0000000000 --- a/include/struct_decls/struct_02029C88_decl.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_02029C88_DECL_H -#define POKEPLATINUM_STRUCT_02029C88_DECL_H - -typedef struct UnkStruct_02029C88_t UnkStruct_02029C88; - -#endif // POKEPLATINUM_STRUCT_02029C88_DECL_H diff --git a/include/struct_decls/struct_02029D04_decl.h b/include/struct_decls/struct_02029D04_decl.h deleted file mode 100644 index a89d005446..0000000000 --- a/include/struct_decls/struct_02029D04_decl.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_02029D04_DECL_H -#define POKEPLATINUM_STRUCT_02029D04_DECL_H - -typedef struct UnkStruct_02029D04_t UnkStruct_02029D04; - -#endif // POKEPLATINUM_STRUCT_02029D04_DECL_H diff --git a/include/struct_decls/struct_0202A138_decl.h b/include/struct_decls/struct_0202A138_decl.h deleted file mode 100644 index 14ba3fdabb..0000000000 --- a/include/struct_decls/struct_0202A138_decl.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_0202A138_DECL_H -#define POKEPLATINUM_STRUCT_0202A138_DECL_H - -typedef struct UnkStruct_0202A138_t UnkStruct_0202A138; - -#endif // POKEPLATINUM_STRUCT_0202A138_DECL_H diff --git a/include/struct_decls/struct_0202A150_decl.h b/include/struct_decls/struct_0202A150_decl.h deleted file mode 100644 index cb280903c4..0000000000 --- a/include/struct_decls/struct_0202A150_decl.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_0202A150_DECL_H -#define POKEPLATINUM_STRUCT_0202A150_DECL_H - -typedef struct UnkStruct_0202A150_t UnkStruct_0202A150; - -#endif // POKEPLATINUM_STRUCT_0202A150_DECL_H diff --git a/include/struct_decls/struct_0202A750_decl.h b/include/struct_decls/struct_0202A750_decl.h deleted file mode 100644 index 79873c6696..0000000000 --- a/include/struct_decls/struct_0202A750_decl.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_0202A750_DECL_H -#define POKEPLATINUM_STRUCT_0202A750_DECL_H - -typedef struct UnkStruct_0202A750_t UnkStruct_0202A750; - -#endif // POKEPLATINUM_STRUCT_0202A750_DECL_H diff --git a/include/struct_defs/dress_up_photo.h b/include/struct_defs/dress_up_photo.h new file mode 100644 index 0000000000..685ea25004 --- /dev/null +++ b/include/struct_defs/dress_up_photo.h @@ -0,0 +1,20 @@ +#ifndef POKEPLATINUM_STRUCT_DRESS_UP_PHOTO_H +#define POKEPLATINUM_STRUCT_DRESS_UP_PHOTO_H + +#include "struct_defs/photo_accessory.h" +#include "struct_defs/photo_pokemon.h" +#include "struct_defs/sentence.h" + +#define PHOTO_ACCESSORY_COUNT 10 + +typedef struct DressUpPhoto { + u32 integrity; + PhotoPokemon photoMon; + u32 unk_3C; + Sentence title; + PhotoAccessory accessories[PHOTO_ACCESSORY_COUNT]; + u8 unk_70; + u8 language; +} DressUpPhoto; + +#endif // POKEPLATINUM_STRUCT_DRESS_UP_PHOTO_H diff --git a/include/struct_defs/fashion_case.h b/include/struct_defs/fashion_case.h new file mode 100644 index 0000000000..6267465e2a --- /dev/null +++ b/include/struct_defs/fashion_case.h @@ -0,0 +1,10 @@ +#ifndef POKEPLATINUM_STRUCT_FASHION_CASE_H +#define POKEPLATINUM_STRUCT_FASHION_CASE_H + +typedef struct FashionCase { + u32 nonUniqueAccessoryFlags[8]; + u32 uniqueAccessoryFlags[2]; + u32 backdropFlags[6]; +} FashionCase; + +#endif // POKEPLATINUM_STRUCT_FASHION_CASE_H diff --git a/include/struct_defs/image_clips.h b/include/struct_defs/image_clips.h new file mode 100644 index 0000000000..6245aab756 --- /dev/null +++ b/include/struct_defs/image_clips.h @@ -0,0 +1,16 @@ +#ifndef POKEPLATINUM_STRUCT_IMAGE_CLIPS_H +#define POKEPLATINUM_STRUCT_IMAGE_CLIPS_H + +#include "struct_defs/dress_up_photo.h" +#include "struct_defs/fashion_case.h" +#include "struct_defs/struct_02029C88.h" + +#define SAVED_PHOTOS_COUNT 11 + +typedef struct ImageClips { + DressUpPhoto savedPhotos[SAVED_PHOTOS_COUNT]; + UnkStruct_02029C88 unk_4C8[5]; + FashionCase fashionCase; +} ImageClips; + +#endif // POKEPLATINUM_STRUCT_IMAGE_CLIPS_H diff --git a/include/struct_defs/photo_accessory.h b/include/struct_defs/photo_accessory.h new file mode 100644 index 0000000000..0e8845bde5 --- /dev/null +++ b/include/struct_defs/photo_accessory.h @@ -0,0 +1,11 @@ +#ifndef POKEPLATINUM_STRUCT_PHOTO_ACCESSORY_H +#define POKEPLATINUM_STRUCT_PHOTO_ACCESSORY_H + +typedef struct PhotoAccessory { + u8 unk_00; + u8 xPos; + u8 yPos; + s8 priority; +} PhotoAccessory; + +#endif // POKEPLATINUM_STRUCT_PHOTO_ACCESSORY_H diff --git a/include/struct_defs/photo_pokemon.h b/include/struct_defs/photo_pokemon.h new file mode 100644 index 0000000000..aa322e8cca --- /dev/null +++ b/include/struct_defs/photo_pokemon.h @@ -0,0 +1,19 @@ +#ifndef POKEPLATINUM_STRUCT_PHOTO_POKEMON_H +#define POKEPLATINUM_STRUCT_PHOTO_POKEMON_H + +#include "constants/string.h" + +typedef struct PhotoPokemon { + u32 personality; + u32 otID; + u16 species; + u16 nickname[MON_NAME_LEN + 1]; + u16 trainerName[TRAINER_NAME_LEN + 1]; + s8 priority; + u8 xPos; + u8 yPos; + u8 form; + u8 trainerGender; +} PhotoPokemon; + +#endif // POKEPLATINUM_STRUCT_PHOTO_POKEMON_H diff --git a/include/struct_defs/struct_02029C88.h b/include/struct_defs/struct_02029C88.h new file mode 100644 index 0000000000..2245faf8b7 --- /dev/null +++ b/include/struct_defs/struct_02029C88.h @@ -0,0 +1,16 @@ +#ifndef POKEPLATINUM_STRUCT_02029C88_DECL_H +#define POKEPLATINUM_STRUCT_02029C88_DECL_H + +#include "struct_defs/photo_accessory.h" +#include "struct_defs/photo_pokemon.h" + +typedef struct UnkStruct_02029C88_t { + u32 integrity; + u32 unk_04; + PhotoPokemon photoMon; + u32 unk_40; + PhotoAccessory accessories[20]; + u8 unk_94; +} UnkStruct_02029C88; + +#endif // POKEPLATINUM_STRUCT_02029C88_DECL_H diff --git a/include/struct_defs/struct_0203DA00.h b/include/struct_defs/struct_0203DA00.h index ec0dacff60..9702583529 100644 --- a/include/struct_defs/struct_0203DA00.h +++ b/include/struct_defs/struct_0203DA00.h @@ -1,8 +1,8 @@ #ifndef POKEPLATINUM_STRUCT_0203DA00_H #define POKEPLATINUM_STRUCT_0203DA00_H -#include "struct_decls/struct_02029C68_decl.h" -#include "struct_decls/struct_02029D04_decl.h" +#include "struct_defs/dress_up_photo.h" +#include "struct_defs/fashion_case.h" #include "game_options.h" #include "game_records.h" @@ -11,8 +11,8 @@ typedef struct { Pokemon *unk_00; - UnkStruct_02029C68 *unk_04; - const UnkStruct_02029D04 *unk_08; + DressUpPhoto *photo; + const FashionCase *fashionCase; const Options *options; GameRecords *records; const TrainerInfo *unk_14; diff --git a/include/struct_defs/struct_02041DC8.h b/include/struct_defs/struct_02041DC8.h index b4591f8ddb..3b83e8fdb2 100644 --- a/include/struct_defs/struct_02041DC8.h +++ b/include/struct_defs/struct_02041DC8.h @@ -1,10 +1,10 @@ #ifndef POKEPLATINUM_STRUCT_02041DC8_H #define POKEPLATINUM_STRUCT_02041DC8_H -#include "struct_decls/struct_0202A750_decl.h" +#include "struct_defs/image_clips.h" typedef struct { - UnkStruct_0202A750 *unk_00; + ImageClips *imageClips; u32 unk_04; u32 unk_08; } UnkStruct_02041DC8; diff --git a/include/struct_defs/struct_02093800.h b/include/struct_defs/struct_02093800.h index 1664d00905..e53961e47d 100644 --- a/include/struct_defs/struct_02093800.h +++ b/include/struct_defs/struct_02093800.h @@ -1,7 +1,7 @@ #ifndef POKEPLATINUM_STRUCT_02093800_H #define POKEPLATINUM_STRUCT_02093800_H -#include "struct_decls/struct_0202A750_decl.h" +#include "struct_defs/image_clips.h" #include "game_options.h" #include "pokemon.h" @@ -20,7 +20,7 @@ typedef struct { Pokemon *unk_08; const String *unk_0C; const TrainerInfo *unk_10; - UnkStruct_0202A750 *unk_14; + ImageClips *imageClips; const Options *options; SaveData *saveData; void *unk_20; diff --git a/include/struct_defs/struct_02093BBC.h b/include/struct_defs/struct_02093BBC.h index 14908df8db..34b0b72be4 100644 --- a/include/struct_defs/struct_02093BBC.h +++ b/include/struct_defs/struct_02093BBC.h @@ -1,8 +1,8 @@ #ifndef POKEPLATINUM_STRUCT_02093BBC_H #define POKEPLATINUM_STRUCT_02093BBC_H -#include "struct_decls/struct_02029C88_decl.h" -#include "struct_decls/struct_02029D04_decl.h" +#include "struct_defs/fashion_case.h" +#include "struct_defs/struct_02029C88.h" #include "struct_defs/struct_02095C60.h" #include "game_options.h" @@ -16,7 +16,7 @@ typedef struct { int unk_0C; int unk_10; int unk_14; - const UnkStruct_02029D04 *unk_18; + const FashionCase *fashionCase; UnkStruct_02095C60 *unk_1C; const Options *options; const TrainerInfo *unk_24; diff --git a/include/struct_defs/struct_02095C48.h b/include/struct_defs/struct_02095C48.h index 97e4105ed3..7d0b9b9230 100644 --- a/include/struct_defs/struct_02095C48.h +++ b/include/struct_defs/struct_02095C48.h @@ -1,7 +1,7 @@ #ifndef POKEPLATINUM_STRUCT_02095C48_H #define POKEPLATINUM_STRUCT_02095C48_H -#include "struct_decls/struct_0202A750_decl.h" +#include "struct_defs/image_clips.h" #include "struct_defs/struct_02094A58.h" #include "struct_defs/struct_02095C48_sub1.h" #include "struct_defs/struct_02095C60.h" @@ -39,7 +39,7 @@ typedef struct { u8 isGameCompleted; u8 isNatDexObtained; u8 padding_197F; - UnkStruct_0202A750 *unk_1980; + ImageClips *imageClips; UnkStruct_02095C60 unk_1984; void *unk_199C; UnkStruct_02094A58 *unk_19A0; diff --git a/include/struct_defs/struct_02095C48_sub1.h b/include/struct_defs/struct_02095C48_sub1.h index e996a52ed3..60eb32ee30 100644 --- a/include/struct_defs/struct_02095C48_sub1.h +++ b/include/struct_defs/struct_02095C48_sub1.h @@ -1,7 +1,7 @@ #ifndef POKEPLATINUM_STRUCT_02095C48_SUB1_H #define POKEPLATINUM_STRUCT_02095C48_SUB1_H -#include "struct_decls/struct_02029C88_decl.h" +#include "struct_defs/struct_02029C88.h" #include "struct_defs/struct_020954F0.h" #include "struct_defs/struct_02095C48_sub1_sub1.h" @@ -23,8 +23,8 @@ typedef struct { u8 unk_10C; u8 unk_10D; u8 unk_10E; - u8 unk_10F; - u8 unk_110; + u8 contestType; + u8 contestRank; u8 unk_111; u8 unk_112; u8 unk_113; diff --git a/include/unk_02014A84.h b/include/unk_02014A84.h index adb36fc24c..fe3923b24a 100644 --- a/include/unk_02014A84.h +++ b/include/unk_02014A84.h @@ -15,14 +15,14 @@ String *sub_02014B34(const Sentence *sentence, enum HeapID heapID); String *sub_02014BA0(const Sentence *sentence, u32 param1); BOOL sub_02014BBC(const Sentence *sentence); BOOL sub_02014BD0(const Sentence *sentence); -u16 sub_02014C78(const Sentence *sentence, int param1); +u16 Sentence_GetWord(const Sentence *sentence, int slot); u32 sub_02014C80(const Sentence *sentence); u32 sub_02014C84(const Sentence *sentence); BOOL sub_02014C88(const Sentence *param0, const Sentence *param1); void sub_02014CC0(Sentence *param0, const Sentence *param1); u32 sub_02014CD4(u32 param0); void sub_02014CE0(Sentence *sentence, u32 param1, u32 param2); -void sub_02014CF8(Sentence *sentence, u32 index, u16 word); +void Sentence_SetWord(Sentence *sentence, u32 index, u16 word); void sub_02014D10(Sentence *sentence); #endif // POKEPLATINUM_UNK_02014A84_H diff --git a/include/unk_020298BC.h b/include/unk_020298BC.h index 72f13a27a6..bd959a7fe7 100644 --- a/include/unk_020298BC.h +++ b/include/unk_020298BC.h @@ -1,13 +1,12 @@ #ifndef POKEPLATINUM_UNK_020298BC_H #define POKEPLATINUM_UNK_020298BC_H -#include "struct_decls/struct_02029C68_decl.h" -#include "struct_decls/struct_02029C88_decl.h" -#include "struct_decls/struct_02029D04_decl.h" -#include "struct_decls/struct_0202A138_decl.h" -#include "struct_decls/struct_0202A150_decl.h" -#include "struct_decls/struct_0202A750_decl.h" +#include "struct_defs/dress_up_photo.h" +#include "struct_defs/image_clips.h" +#include "struct_defs/photo_accessory.h" +#include "struct_defs/photo_pokemon.h" #include "struct_defs/struct_020298D8.h" +#include "struct_defs/struct_02029C88.h" #include "overlay022/struct_ov22_02255040.h" #include "overlay061/struct_ov61_0222AE80.h" @@ -16,44 +15,44 @@ #include "savedata.h" #include "string_gf.h" -void ImageClip_Init(UnkStruct_0202A750 *param0); -int ImageClip_SaveSize(void); -int sub_02029C60(void); +void ImageClips_Init(ImageClips *imageClips); +int ImageClips_SaveSize(void); +int DressUpPhoto_Size(void); int sub_02029C64(void); -UnkStruct_02029C68 *sub_02029C68(u32 heapID); +DressUpPhoto *DressUpPhoto_New(u32 heapID); UnkStruct_02029C88 *sub_02029C88(u32 heapID); -UnkStruct_02029C68 *sub_02029CA8(UnkStruct_0202A750 *param0, int param1); -UnkStruct_02029C88 *sub_02029CD0(UnkStruct_0202A750 *param0, int param1); -UnkStruct_02029D04 *sub_02029D04(UnkStruct_0202A750 *param0); -BOOL sub_02029D10(const UnkStruct_0202A750 *param0, int param1); -BOOL sub_02029D2C(const UnkStruct_0202A750 *param0, int param1); -BOOL sub_02029D50(const UnkStruct_02029D04 *param0, u32 param1, u32 param2); -BOOL sub_02029D80(const UnkStruct_02029D04 *param0, u32 param1); -u32 sub_02029D94(const UnkStruct_02029D04 *param0, u32 param1); -u32 sub_02029DD4(const UnkStruct_02029D04 *param0, u32 param1); -u32 sub_02029DF0(const UnkStruct_02029D04 *param0); -u32 sub_02029E0C(const UnkStruct_02029D04 *param0); -void sub_02029E2C(UnkStruct_02029D04 *param0, u32 param1, u32 param2); -void sub_02029EA0(UnkStruct_02029D04 *param0, u32 param1, u32 param2); -void sub_02029EFC(UnkStruct_02029D04 *param0, u32 param1); -BOOL sub_02029F34(const UnkStruct_02029C68 *param0); -void sub_02029F5C(UnkStruct_02029C68 *param0); -void sub_02029F84(UnkStruct_02029C68 *param0); -void sub_02029FAC(UnkStruct_02029C68 *param0, Pokemon *param1, UnkStruct_020298D8 *param2); -void sub_02029FD0(UnkStruct_02029C68 *param0, const UnkStruct_ov22_02255040 *param1, int param2); -void sub_0202A084(UnkStruct_02029C68 *param0, u8 param1); -void sub_0202A0A0(UnkStruct_02029C68 *param0, u16 param1); -void sub_0202A0CC(UnkStruct_02029C68 *param0, const UnkStruct_02029C68 *param1); -void sub_0202A0EC(UnkStruct_02029C68 *param0, const String *param1, int param2); -BOOL sub_0202A110(const UnkStruct_02029C68 *param0, int param1); -const UnkStruct_0202A138 *sub_0202A138(const UnkStruct_02029C68 *param0); -const UnkStruct_0202A150 *sub_0202A150(const UnkStruct_02029C68 *param0, int param1); -u16 sub_0202A184(const UnkStruct_02029C68 *param0); -void sub_0202A1A0(const UnkStruct_02029C68 *param0, String *param1); -u32 sub_0202A1C0(const UnkStruct_02029C68 *param0); -u8 sub_0202A1DC(const UnkStruct_02029C68 *param0); -u16 sub_0202A1F4(const UnkStruct_02029C68 *param0); -u8 sub_0202A200(const UnkStruct_02029C68 *param0); +DressUpPhoto *ImageClips_GetDressUpPhoto(ImageClips *imageClips, int slot); +UnkStruct_02029C88 *sub_02029CD0(ImageClips *imageClips, int param1); +FashionCase *ImageClips_GetFashionCase(ImageClips *imageClips); +BOOL ImageClips_DressUpPhotoHasData(const ImageClips *imageClips, int slot); +BOOL sub_02029D2C(const ImageClips *imageClips, int param1); +BOOL FashionCase_CanFitAccessoryCount(const FashionCase *fashionCase, u32 accessoryID, u32 count); +BOOL FashionCase_HasBackdrop(const FashionCase *fashionCase, u32 backdropID); +u32 FashionCase_GetAccessoryCount(const FashionCase *fashionCase, u32 accessoryID); +u32 FashionCase_GetBackdropCount(const FashionCase *fashionCase, u32 backdropID); +u32 FashionCase_GetTotalAccessories(const FashionCase *fashionCase); +u32 FashionCase_GetTotalBackdrops(const FashionCase *fashionCase); +void FashionCase_AddAccessory(FashionCase *fashionCase, u32 accessoryID, u32 amount); +void FashionCase_RemoveAccessory(FashionCase *fashionCase, u32 accessoryID, u32 amount); +void FashionCase_AddBackdrop(FashionCase *fashionCase, u32 backdropID); +BOOL DressUpPhoto_HasData(const DressUpPhoto *photo); +void DressUpPhoto_SetLanguageAndMagic(DressUpPhoto *photo); +void DressUpPhoto_Init(DressUpPhoto *photo); +void sub_02029FAC(DressUpPhoto *photo, Pokemon *mon, UnkStruct_020298D8 *param2); +void sub_02029FD0(DressUpPhoto *photo, const UnkStruct_ov22_02255040 *param1, int param2); +void sub_0202A084(DressUpPhoto *photo, u8 param1); +void DressUpPhoto_SetTitle(DressUpPhoto *photo, u16 word); +void DressUpPhoto_Copy(DressUpPhoto *dest, const DressUpPhoto *src); +void DressUpPhoto_SetTrainerNameAndGender(DressUpPhoto *photo, const String *name, int gender); +BOOL sub_0202A110(const DressUpPhoto *photo, int param1); +const PhotoPokemon *DressUpPhoto_GetPhotoMon(const DressUpPhoto *photo); +const PhotoAccessory *sub_0202A150(const DressUpPhoto *photo, int param1); +u16 DressUpPhoto_GetMonSpecies(const DressUpPhoto *photo); +void DressUpPhoto_SetTrainerName(const DressUpPhoto *photo, String *name); +u32 DressUpPhoto_GetTrainerGender(const DressUpPhoto *photo); +u8 sub_0202A1DC(const DressUpPhoto *photo); +u16 DressUpPhoto_GetTitleWord(const DressUpPhoto *photo); +u8 DressUpPhoto_GetLanguage(const DressUpPhoto *photo); BOOL sub_0202A218(const UnkStruct_02029C88 *param0); void sub_0202A240(UnkStruct_02029C88 *param0); void sub_0202A25C(UnkStruct_02029C88 *param0); @@ -62,32 +61,32 @@ void sub_0202A2A8(UnkStruct_02029C88 *param0, const UnkStruct_ov22_02255040 *par void sub_0202A35C(UnkStruct_02029C88 *param0, u8 param1); void sub_0202A378(UnkStruct_02029C88 *param0, u32 param1); void sub_0202A390(UnkStruct_02029C88 *param0, const UnkStruct_02029C88 *param1); -void sub_0202A3B0(UnkStruct_02029C88 *param0, Pokemon *param1, s8 param2); -void sub_0202A3EC(UnkStruct_02029C88 *param0, u32 param1, u8 param2, u8 param3, u8 param4, s8 param5); +void sub_0202A3B0(UnkStruct_02029C88 *param0, Pokemon *mon, s8 param2); +void sub_0202A3EC(UnkStruct_02029C88 *param0, u32 param1, u8 param2, u8 xPos, u8 yPos, s8 priority); BOOL sub_0202A488(const UnkStruct_02029C88 *param0, int param1); void sub_0202A4B4(UnkStruct_02029C88 *param0, const String *param1, int param2); -const UnkStruct_0202A138 *sub_0202A4D8(const UnkStruct_02029C88 *param0); -const UnkStruct_0202A150 *sub_0202A4F0(const UnkStruct_02029C88 *param0, int param1); +const PhotoPokemon *sub_0202A4D8(const UnkStruct_02029C88 *param0); +const PhotoAccessory *sub_0202A4F0(const UnkStruct_02029C88 *param0, int param1); void sub_0202A524(const UnkStruct_02029C88 *param0, String *param1); u32 sub_0202A544(const UnkStruct_02029C88 *param0); void sub_0202A560(const UnkStruct_02029C88 *param0, Pokemon *param1); u8 sub_0202A580(const UnkStruct_02029C88 *param0, int param1); u8 sub_0202A5B8(const UnkStruct_02029C88 *param0); u32 sub_0202A5D0(const UnkStruct_02029C88 *param0); -u16 sub_0202A5E8(const UnkStruct_0202A138 *param0); -void sub_0202A5EC(const UnkStruct_0202A138 *param0, String *param1); -u32 sub_0202A5FC(const UnkStruct_0202A138 *param0); -s8 sub_0202A604(const UnkStruct_0202A138 *param0); -u8 sub_0202A60C(const UnkStruct_0202A138 *param0); -u8 sub_0202A614(const UnkStruct_0202A138 *param0); -void sub_0202A61C(const UnkStruct_0202A138 *param0, Pokemon *param1); -u8 sub_0202A624(const UnkStruct_0202A150 *param0); -u8 sub_0202A628(const UnkStruct_0202A150 *param0); -u8 sub_0202A62C(const UnkStruct_0202A150 *param0); -s8 sub_0202A630(const UnkStruct_0202A150 *param0); -void sub_0202A6A8(u8 param0, int param1, UnkStruct_0202A750 *param2, const void **param3); -UnkStruct_0202A750 *sub_0202A750(SaveData *saveData); -void sub_0202A75C(const UnkStruct_02029C68 *param0, UnkStruct_ov61_0222AE80 *param1); -void sub_0202A824(const UnkStruct_ov61_0222AE80 *param0, UnkStruct_02029C68 *param1); +u16 PhotoPokemon_GetSpecies(const PhotoPokemon *photoMon); +void PhotoPokemon_SetTrainerName(const PhotoPokemon *photoMon, String *name); +u32 PhotoPokemon_GetTrainerGender(const PhotoPokemon *photoMon); +s8 PhotoPokemon_GetPriority(const PhotoPokemon *photoMon); +u8 PhotoPokemon_GetXPos(const PhotoPokemon *photoMon); +u8 PhotoPokemon_GetYPos(const PhotoPokemon *photoMon); +void PhotoPokemon_CopyToPokemon(const PhotoPokemon *photoMon, Pokemon *mon); +u8 sub_0202A624(const PhotoAccessory *accessory); +u8 PhotoAccessory_GetXPos(const PhotoAccessory *accessory); +u8 PhotoAccessory_GetYPos(const PhotoAccessory *accessory); +s8 PhotoAccessory_GetPriority(const PhotoAccessory *accessory); +void sub_0202A6A8(u8 param0, int param1, ImageClips *imageClips, const void **param3); +ImageClips *SaveData_GetImageClips(SaveData *saveData); +void sub_0202A75C(const DressUpPhoto *photo, UnkStruct_ov61_0222AE80 *param1); +void sub_0202A824(const UnkStruct_ov61_0222AE80 *param0, DressUpPhoto *photo); #endif // POKEPLATINUM_UNK_020298BC_H diff --git a/include/unk_02095AF0.h b/include/unk_02095AF0.h index 4ba33ddb8a..7050c2e669 100644 --- a/include/unk_02095AF0.h +++ b/include/unk_02095AF0.h @@ -1,7 +1,7 @@ #ifndef POKEPLATINUM_UNK_02095AF0_H #define POKEPLATINUM_UNK_02095AF0_H -#include "struct_decls/struct_02029C88_decl.h" +#include "struct_defs/struct_02029C88.h" #include "struct_defs/struct_02095C48.h" #include "struct_defs/struct_02095C60.h" diff --git a/res/field/scripts/scripts_amity_square.s b/res/field/scripts/scripts_amity_square.s index 0c5b3bad6f..f311b5a5ac 100644 --- a/res/field/scripts/scripts_amity_square.s +++ b/res/field/scripts/scripts_amity_square.s @@ -6,7 +6,7 @@ #define LOCALID_ITEM_OR_ACCESSORY_ID VAR_0x8004 #define LOCALID_COUNT VAR_0x8005 #define PICKUP_TYPE_ITEM 0 -#define PICKUP_TYPE_ACCESORY 1 +#define PICKUP_TYPE_ACCESSORY 1 ScriptEntry _00B6 @@ -290,7 +290,7 @@ AmitySquare_FollowerMon_SetNextPickUpType_Item: Return AmitySquare_FollowerMon_SetNextPickUpType_Accessory: - SetVar VAR_FOLLOWER_MON_NEXT_PICKUP_TYPE, PICKUP_TYPE_ACCESORY + SetVar VAR_FOLLOWER_MON_NEXT_PICKUP_TYPE, PICKUP_TYPE_ACCESSORY Return AmitySquare_FollowerMon_SetPickupItemVar: @@ -976,7 +976,7 @@ AmitySquare_GiftMan: GoToIfSet FLAG_AMITY_SQUARE_MAN_GIFT_RECEIVED, AmitySquare_GiftMan_ReceivedGift Message AmitySquare_Text_HelloHowDoYouDoILoveThisPark GetAmitySquareBerryOrAccessoryIDFromMan VAR_AMITY_SQUARE_GIFT_ID, LOCALID_ITEM_OR_ACCESSORY_ID - GoToIfAmitySquareManGiftIsNotAccesory VAR_AMITY_SQUARE_GIFT_ID, AmitySquare_GiftMan_ItemGift + GoToIfAmitySquareManGiftIsNotAccessory VAR_AMITY_SQUARE_GIFT_ID, AmitySquare_GiftMan_ItemGift GoTo AmitySquare_GiftMan_AccessoryGift End diff --git a/res/field/scripts/scripts_jubilife_tv_2f_gallery.s b/res/field/scripts/scripts_jubilife_tv_2f_gallery.s index fdfe2c20ad..9497170907 100644 --- a/res/field/scripts/scripts_jubilife_tv_2f_gallery.s +++ b/res/field/scripts/scripts_jubilife_tv_2f_gallery.s @@ -181,7 +181,7 @@ _02C7: FadeScreenIn WaitFadeScreen GoToIfEq VAR_RESULT, 0, _0328 - ScrCmd_130 VAR_0x8004 + SetDressUpPhotoTitle VAR_0x8004 IncrementGameRecord RECORD_UNK_054 ScrCmd_316 ScrCmd_245 0, VAR_0x8004 diff --git a/src/bag_context.c b/src/bag_context.c index a274aee798..c57156689e 100644 --- a/src/bag_context.c +++ b/src/bag_context.c @@ -6,7 +6,7 @@ #include "generated/string_padding_mode.h" #include "generated/text_banks.h" -#include "struct_decls/struct_02029D04_decl.h" +#include "struct_defs/image_clips.h" #include "struct_defs/seal_case.h" #include "bag.h" @@ -122,14 +122,16 @@ static u32 CalcTotalBallSeals(SaveData *saveData) static u32 GetNumAccessories(SaveData *saveData) { - UnkStruct_02029D04 *v0 = sub_02029D04(sub_0202A750(saveData)); - return sub_02029DF0(v0); + ImageClips *imageClips = SaveData_GetImageClips(saveData); + FashionCase *fashionCase = ImageClips_GetFashionCase(imageClips); + return FashionCase_GetTotalAccessories(fashionCase); } static u32 GetNumBackdrops(SaveData *saveData) { - UnkStruct_02029D04 *v0 = sub_02029D04(sub_0202A750(saveData)); - return sub_02029E0C(v0); + ImageClips *imageClips = SaveData_GetImageClips(saveData); + FashionCase *fashionCase = ImageClips_GetFashionCase(imageClips); + return FashionCase_GetTotalBackdrops(fashionCase); } static u32 GetNumBattlePoints(SaveData *saveData) diff --git a/src/overlay005/script_message.c b/src/overlay005/script_message.c index 01e18b5efe..c6f5342e58 100644 --- a/src/overlay005/script_message.c +++ b/src/overlay005/script_message.c @@ -151,8 +151,8 @@ static void GetStringFromSentence(ScriptMessage *msgData, u16 sentenceType, u16 sub_02014A84(&sentence); sub_02014CE0(&sentence, sentenceType, sentenceID); - sub_02014CF8(&sentence, 0, word1); - sub_02014CF8(&sentence, 1, word2); + Sentence_SetWord(&sentence, 0, word1); + Sentence_SetWord(&sentence, 1, word2); string = sub_02014B34(&sentence, HEAP_ID_FIELD3); diff --git a/src/overlay007/accessory_shop.c b/src/overlay007/accessory_shop.c index d530836a50..6942fe9d32 100644 --- a/src/overlay007/accessory_shop.c +++ b/src/overlay007/accessory_shop.c @@ -3,9 +3,9 @@ #include #include +#include "constants/accessories.h" #include "constants/field/window.h" #include "constants/scrcmd.h" -#include "generated/accessories.h" #include "overlay007/shop_menu.h" @@ -81,10 +81,10 @@ static void AccessoryShop_DeleteYesNoChoice(AccessoryShopYesNoChoice *yesNoChoic static u32 AccessoryShop_SelectYesNoChoice(AccessoryShopYesNoChoice *yesNoChoice); static void AccessoryShop_SetDataPointers(AccessoryShopDataPtrs *dataPtr, AccessoryShopDescBox *descBox, const AccessoryShopItem *items, Bag *bag, enum HeapID heapID, BgConfig *bgConfig); static void AccessoryShop_Update(void *ptr, u32 cursorPos); -static BOOL AccessoryShop_HasAllAccessories(const UnkStruct_02029D04 *param0, const AccessoryShopItem *items, u32 maxItems); +static BOOL AccessoryShop_HasAllAccessories(const FashionCase *fashionCase, const AccessoryShopItem *items, u32 maxItems); static BOOL AccessoryShop_HasEnoughBerries(Bag *bag, const AccessoryShopItem *items, u32 idx, enum HeapID heapID); -static BOOL ov7_0224CCE4(const UnkStruct_02029D04 *param0, const AccessoryShopItem *items, u32 idx); -static void AccessoryShop_DoPurchase(UnkStruct_02029D04 *param0, Bag *bag, const AccessoryShopItem *items, u32 idx, enum HeapID heapID); +static BOOL ov7_0224CCE4(const FashionCase *fashionCase, const AccessoryShopItem *items, u32 idx); +static void AccessoryShop_DoPurchase(FashionCase *fashionCase, Bag *bag, const AccessoryShopItem *items, u32 idx, enum HeapID heapID); AccessoryShop *AccessoryShop_New(enum HeapID heapID, SaveData *saveData, BgConfig *bgConfig) { @@ -95,7 +95,7 @@ AccessoryShop *AccessoryShop_New(enum HeapID heapID, SaveData *saveData, BgConfi shop->heapID = heapID; shop->bgConfig = bgConfig; shop->saveData = saveData; - shop->unk_0C = sub_02029D04(sub_0202A750(shop->saveData)); + shop->fashionCase = ImageClips_GetFashionCase(SaveData_GetImageClips(shop->saveData)); shop->bag = SaveData_GetBag(saveData); shop->msgLoader = MessageLoader_Init(MSG_LOADER_PRELOAD_ENTIRE_BANK, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_FLOWER_SHOP, shop->heapID); @@ -132,7 +132,7 @@ BOOL AccessoryShop_Main(AccessoryShop *shop) shop->nextState = ACCESSORY_SHOP_STATE_INIT_ITEM_LIST; break; case ACCESSORY_SHOP_STATE_INIT_ITEM_LIST: - if (AccessoryShop_HasAllAccessories(shop->unk_0C, sAccessoryShop_ItemLists, ACCESSORY_SHOP_ITEM_LIST_COUNT)) { + if (AccessoryShop_HasAllAccessories(shop->fashionCase, sAccessoryShop_ItemLists, ACCESSORY_SHOP_ITEM_LIST_COUNT)) { string = MessageLoader_GetNewString(shop->msgLoader, FlowerShop_Text_Thanks); AccessoryShop_PrintStringToMsgBox(&shop->msgbox, string, shop->heapID); String_Free(string); @@ -195,7 +195,7 @@ BOOL AccessoryShop_Main(AccessoryShop *shop) break; } - if (ov7_0224CCE4(shop->unk_0C, sAccessoryShop_ItemLists, shop->itemList.cursorPos) == FALSE) { + if (ov7_0224CCE4(shop->fashionCase, sAccessoryShop_ItemLists, shop->itemList.cursorPos) == FALSE) { string = MessageLoader_GetNewString(shop->msgLoader, FlowerShop_Text_CantCarryMoreAccessories); AccessoryShop_PrintStringToMsgBox(&shop->msgbox, string, shop->heapID); String_Free(string); @@ -218,10 +218,10 @@ BOOL AccessoryShop_Main(AccessoryShop *shop) } break; case ACCESSORY_SHOP_STATE_CONFIRM_PURCHASE: - AccessoryShop_DoPurchase(shop->unk_0C, shop->bag, sAccessoryShop_ItemLists, shop->itemList.cursorPos, shop->heapID); + AccessoryShop_DoPurchase(shop->fashionCase, shop->bag, sAccessoryShop_ItemLists, shop->itemList.cursorPos, shop->heapID); AccessoryShop_LoadSuccessfulPurchaseMsg(&shop->msgbox, shop->msgLoader, shop->heapID, sAccessoryShop_ItemLists, shop->itemList.cursorPos); - if (AccessoryShop_HasAllAccessories(shop->unk_0C, sAccessoryShop_ItemLists, ACCESSORY_SHOP_ITEM_LIST_COUNT)) { + if (AccessoryShop_HasAllAccessories(shop->fashionCase, sAccessoryShop_ItemLists, ACCESSORY_SHOP_ITEM_LIST_COUNT)) { shop->state = ACCESSORY_SHOP_STATE_WAIT_AB_INPUT; shop->nextState = ACCESSORY_SHOP_STATE_LOAD_SHOCKED_MSG; } else { @@ -718,10 +718,10 @@ static u32 AccessoryShop_SelectYesNoChoice(AccessoryShopYesNoChoice *yesNoChoice return Menu_ProcessInputAndHandleExit(yesNoChoice->menu, yesNoChoice->heapID); } -static BOOL AccessoryShop_HasAllAccessories(const UnkStruct_02029D04 *param0, const AccessoryShopItem *items, u32 maxItems) +static BOOL AccessoryShop_HasAllAccessories(const FashionCase *fashionCase, const AccessoryShopItem *items, u32 maxItems) { for (int i = 0; i < maxItems; i++) { - if (sub_02029D50(param0, items[i].accessoryID, 1) == TRUE) { + if (FashionCase_CanFitAccessoryCount(fashionCase, items[i].accessoryID, 1) == TRUE) { return FALSE; } } @@ -740,19 +740,19 @@ static BOOL AccessoryShop_HasEnoughBerries(Bag *bag, const AccessoryShopItem *it return FALSE; } -static BOOL ov7_0224CCE4(const UnkStruct_02029D04 *param0, const AccessoryShopItem *items, u32 idx) +static BOOL ov7_0224CCE4(const FashionCase *fashionCase, const AccessoryShopItem *items, u32 idx) { - return sub_02029D50(param0, items[idx].accessoryID, 1); + return FashionCase_CanFitAccessoryCount(fashionCase, items[idx].accessoryID, 1); } -static void AccessoryShop_DoPurchase(UnkStruct_02029D04 *param0, Bag *bag, const AccessoryShopItem *items, u32 idx, enum HeapID heapID) +static void AccessoryShop_DoPurchase(FashionCase *fashionCase, Bag *bag, const AccessoryShopItem *items, u32 idx, enum HeapID heapID) { u32 accessoryID = items[idx].accessoryID; u32 itemId = items[idx].itemBerryID + FIRST_BERRY_IDX; u32 count = items[idx].totalAmount; BOOL res; - sub_02029E2C(param0, accessoryID, 1); + FashionCase_AddAccessory(fashionCase, accessoryID, 1); res = Bag_TryRemoveItem(bag, itemId, count, heapID); GF_ASSERT(res == TRUE); diff --git a/src/overlay017/ov17_0223B140.c b/src/overlay017/ov17_0223B140.c index 588a220349..712d3c5c97 100644 --- a/src/overlay017/ov17_0223B140.c +++ b/src/overlay017/ov17_0223B140.c @@ -755,7 +755,7 @@ static int ov17_0223BDCC(UnkStruct_ov17_02246F24 *param0, UnkStruct_ov17_0223BCE if (sub_0209590C(param0->unk_00) == 1) { param0->unk_304.unk_C6.unk_0C = 45; } else { - param0->unk_304.unk_C6.unk_0C = ov17_02243944(param0->unk_00->unk_00.unk_10F); + param0->unk_304.unk_C6.unk_0C = ov17_02243944(param0->unk_00->unk_00.contestType); } param0->unk_304.unk_C6.unk_0E = 0; diff --git a/src/overlay017/ov17_0223DAD0.c b/src/overlay017/ov17_0223DAD0.c index e731d672ab..de41a4c69a 100644 --- a/src/overlay017/ov17_0223DAD0.c +++ b/src/overlay017/ov17_0223DAD0.c @@ -686,8 +686,8 @@ static BOOL ov17_0223E3CC(UnkStruct_ov17_0224DF54 *param0, int *param1, int *par *param2 = 0; return 1; } else { - *param1 = Unk_ov17_0225312C[param0->unk_00->unk_00.unk_110][param0->unk_00->unk_00.unk_10F].unk_00; - *param2 = Unk_ov17_0225312C[param0->unk_00->unk_00.unk_110][param0->unk_00->unk_00.unk_10F].unk_04; + *param1 = Unk_ov17_0225312C[param0->unk_00->unk_00.contestRank][param0->unk_00->unk_00.contestType].unk_00; + *param2 = Unk_ov17_0225312C[param0->unk_00->unk_00.contestRank][param0->unk_00->unk_00.contestType].unk_04; return 0; } } @@ -905,7 +905,7 @@ static int ov17_0223E8AC(UnkStruct_ov17_0224DF54 *param0, UnkStruct_ov17_0223E83 param0->unk_A6C.unk_37 = 0; param0->unk_A6C.unk_38 = 0; param0->unk_A6C.unk_30.unk_00 = param0->unk_00->unk_00.unk_113; - param0->unk_A6C.unk_30.unk_04 = ov17_0224C57C(param0->unk_00->unk_00.unk_110); + param0->unk_A6C.unk_30.unk_04 = ov17_0224C57C(param0->unk_00->unk_00.contestRank); if (sub_0209590C(param0->unk_00) == 1) { param0->unk_A6C.unk_36 = 2; @@ -1093,7 +1093,7 @@ static int ov17_0223ED1C(UnkStruct_ov17_0224DF54 *param0, UnkStruct_ov17_0223E83 } param0->unk_A6C.unk_30.unk_00 = param0->unk_A3C.unk_05[1]; - param0->unk_A6C.unk_30.unk_04 = ov17_0224C57C(param0->unk_00->unk_00.unk_110); + param0->unk_A6C.unk_30.unk_04 = ov17_0224C57C(param0->unk_00->unk_00.contestRank); param0->unk_A6C.unk_36 = 0; if (ov17_0224F30C(¶m0->unk_109C, param0, 6, ¶m0->unk_A6C) == 1) { diff --git a/src/overlay017/ov17_0223F118.c b/src/overlay017/ov17_0223F118.c index f76b6de94a..adbc4c4efb 100644 --- a/src/overlay017/ov17_0223F118.c +++ b/src/overlay017/ov17_0223F118.c @@ -212,7 +212,7 @@ void ov17_0223F374(UnkStruct_02095C48 *param0) v5 = Pokemon_GetValue(param0->unk_00.unk_00[v0], MON_DATA_HELD_ITEM, NULL); v6 = 100; - switch (param0->unk_00.unk_10F) { + switch (param0->unk_00.contestType) { case 0: v1 = Pokemon_GetValue(param0->unk_00.unk_00[v0], MON_DATA_COOL, NULL); v2 = Pokemon_GetValue(param0->unk_00.unk_00[v0], MON_DATA_TOUGH, NULL); diff --git a/src/overlay017/ov17_0223F7E4.c b/src/overlay017/ov17_0223F7E4.c index 4930380b27..613f75016f 100644 --- a/src/overlay017/ov17_0223F7E4.c +++ b/src/overlay017/ov17_0223F7E4.c @@ -794,8 +794,8 @@ BOOL ov17_0223FBC0(UnkStruct_ov17_0223F7E4 *param0) static void ov17_0223FBD4(UnkStruct_ov17_0223F7E4 *param0, int param1, int param2) { String *v0, *v1; - u32 v2 = sub_02095848(param0->unk_04->unk_00->unk_110, param0->unk_04->unk_00->unk_111, param0->unk_00->isLinkContest); - u32 v3 = sub_020958C4(param0->unk_04->unk_00->unk_10F, param0->unk_04->unk_00->unk_111); + u32 v2 = sub_02095848(param0->unk_04->unk_00->contestRank, param0->unk_04->unk_00->unk_111, param0->unk_00->isLinkContest); + u32 v3 = sub_020958C4(param0->unk_04->unk_00->contestType, param0->unk_04->unk_00->unk_111); v0 = MessageLoader_GetNewString(param0->unk_04->unk_38, v2); v1 = MessageLoader_GetNewString(param0->unk_04->unk_38, v3); @@ -804,7 +804,7 @@ static void ov17_0223FBD4(UnkStruct_ov17_0223F7E4 *param0, int param1, int param String_Free(v0); String_Free(v1); - PaletteData_LoadBufferFromFile(param0->unk_04->unk_50, 45, 38, 21, 1, 0x20, 2 * 16, 16 * param0->unk_04->unk_00->unk_10F); + PaletteData_LoadBufferFromFile(param0->unk_04->unk_50, 45, 38, 21, 1, 0x20, 2 * 16, 16 * param0->unk_04->unk_00->contestType); } static void ov17_0223FCAC(UnkStruct_ov17_0223F7E4 *param0, int param1, int param2) diff --git a/src/overlay017/ov17_02245F14.c b/src/overlay017/ov17_02245F14.c index ca8b5e4f60..5ddc456352 100644 --- a/src/overlay017/ov17_02245F14.c +++ b/src/overlay017/ov17_02245F14.c @@ -310,7 +310,7 @@ void ov17_022463C4(UnkStruct_ov17_02246F24 *param0, UnkStruct_ov17_02246540 *par param3->unk_0D = 0; v1 = param0->unk_220.unk_0E[param2]; - v2 = ov17_02243AF0(param0->unk_00->unk_00.unk_10F, param1->unk_00[param2].unk_00, v1, param0->unk_00->unk_00.unk_10E); + v2 = ov17_02243AF0(param0->unk_00->unk_00.contestType, param1->unk_00[param2].unk_00, v1, param0->unk_00->unk_00.unk_10E); if ((v2 > 0) && (param1->unk_00[param2].unk_28_1 == 0)) { param1->unk_B3[v1] += v2; @@ -532,7 +532,7 @@ static int ov17_022467CC(UnkStruct_ov17_02246F24 *param0, UnkStruct_ov17_0224654 int v1; v0 = param1->unk_00[param3].unk_03; - v1 = ov17_02243AF0(param0->unk_00->unk_00.unk_10F, param1->unk_00[param3].unk_00, v0, param0->unk_00->unk_00.unk_10E); + v1 = ov17_02243AF0(param0->unk_00->unk_00.contestType, param1->unk_00[param3].unk_00, v0, param0->unk_00->unk_00.unk_10E); if ((v1 > 0) && (param1->unk_00[param3].unk_28_1 == 0)) { param1->unk_00[param3].unk_1E += (10 * 2); @@ -784,8 +784,8 @@ static int ov17_02246CDC(UnkStruct_ov17_02246F24 *param0, UnkStruct_ov17_0224654 return 0; } - v1 = ov17_02243AF0(param0->unk_00->unk_00.unk_10F, param1->unk_00[param3].unk_00, param1->unk_00[param3].unk_03, param0->unk_00->unk_00.unk_10E); - v2 = ov17_02243AF0(param0->unk_00->unk_00.unk_10F, param1->unk_00[v0].unk_00, param1->unk_00[v0].unk_03, param0->unk_00->unk_00.unk_10E); + v1 = ov17_02243AF0(param0->unk_00->unk_00.contestType, param1->unk_00[param3].unk_00, param1->unk_00[param3].unk_03, param0->unk_00->unk_00.unk_10E); + v2 = ov17_02243AF0(param0->unk_00->unk_00.contestType, param1->unk_00[v0].unk_00, param1->unk_00[v0].unk_03, param0->unk_00->unk_00.unk_10E); if ((v2 > 0) && (v1 > 0)) { param1->unk_00[param3].unk_1E += (10 * 3); diff --git a/src/overlay017/ov17_02246ECC.c b/src/overlay017/ov17_02246ECC.c index da4761f7d1..18c1c7ec0e 100644 --- a/src/overlay017/ov17_02246ECC.c +++ b/src/overlay017/ov17_02246ECC.c @@ -1313,7 +1313,7 @@ static void ov17_02246F9C(UnkStruct_ov17_02246F24 *param0, UnkStruct_ov17_02246F v7[v4] = 0; } - v2 = Unk_ov17_02253BBC[Unk_ov17_02253C30[v1].unk_01](v5, param2, param1, v7, param0->unk_00->unk_00.unk_10F); + v2 = Unk_ov17_02253BBC[Unk_ov17_02253C30[v1].unk_01](v5, param2, param1, v7, param0->unk_00->unk_00.contestType); if (v2 == 1) { switch (Unk_ov17_02253C30[v1].unk_03) { @@ -1340,7 +1340,7 @@ static void ov17_02246F9C(UnkStruct_ov17_02246F24 *param0, UnkStruct_ov17_02246F switch (Unk_ov17_02253C30[v1].unk_02) { case 240: for (v3 = 0; v3 < 4; v3++) { - if (param0->unk_00->unk_00.unk_10F == param1->unk_00[v3].unk_0B) { + if (param0->unk_00->unk_00.contestType == param1->unk_00[v3].unk_0B) { param1->unk_00[v3].unk_02 += v6; for (v4 = 0; v4 < (1 + 2); v4++) { @@ -1435,7 +1435,7 @@ static void ov17_02246F9C(UnkStruct_ov17_02246F24 *param0, UnkStruct_ov17_02246F v18 = sub_02094E98(param0->unk_00) & 0xff; - if (v18 < v20[param0->unk_00->unk_00.unk_110]) { + if (v18 < v20[param0->unk_00->unk_00.contestRank]) { v19 = param0->unk_220.unk_0E[param0->unk_00->unk_00.unk_113]; param1->unk_00[v15].unk_04[v19] -= 100; } diff --git a/src/overlay017/ov17_022492DC.c b/src/overlay017/ov17_022492DC.c index fbbc390119..19c081c342 100644 --- a/src/overlay017/ov17_022492DC.c +++ b/src/overlay017/ov17_022492DC.c @@ -372,7 +372,7 @@ static void ov17_022493DC(UnkStruct_ov17_022492DC *param0) Heap_Free(v2); LoadPaletteFromFile(NARC_INDEX_CONTEST__GRAPHIC__CONTEST_BG, 31, HEAP_ID_23, 0x200, 0, param0->unk_E0[0]); - LoadPaletteFromFile(NARC_INDEX_CONTEST__GRAPHIC__CONTEST_BG, 38, HEAP_ID_23, 32, 16 * param0->unk_04->unk_00->unk_10F, ¶m0->unk_E0[0][2 * 16]); + LoadPaletteFromFile(NARC_INDEX_CONTEST__GRAPHIC__CONTEST_BG, 38, HEAP_ID_23, 32, 16 * param0->unk_04->unk_00->contestType, ¶m0->unk_E0[0][2 * 16]); LoadPaletteFromFile(NARC_INDEX_CONTEST__GRAPHIC__CONTEST_BG, 33, HEAP_ID_23, 0x200, 0, param0->unk_E0[1]); } @@ -515,8 +515,8 @@ static void ov17_02249828(UnkStruct_ov17_022492DC *param0) String *v0, *v1; u32 v2, v3; MessageLoader *v4 = MessageLoader_Init(MSG_LOADER_LOAD_ON_DEMAND, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_CONTEST_TEXT, HEAP_ID_23); - v2 = sub_02095848(param0->unk_04->unk_00->unk_110, param0->unk_04->unk_00->unk_111, param0->unk_00->isLinkContest); - v3 = sub_020958C4(param0->unk_04->unk_00->unk_10F, param0->unk_04->unk_00->unk_111); + v2 = sub_02095848(param0->unk_04->unk_00->contestRank, param0->unk_04->unk_00->unk_111, param0->unk_00->isLinkContest); + v3 = sub_020958C4(param0->unk_04->unk_00->contestType, param0->unk_04->unk_00->unk_111); v0 = MessageLoader_GetNewString(v4, v2); v1 = MessageLoader_GetNewString(v4, v3); diff --git a/src/overlay017/ov17_0224A0FC.c b/src/overlay017/ov17_0224A0FC.c index 2ac336c3e6..a770175d70 100644 --- a/src/overlay017/ov17_0224A0FC.c +++ b/src/overlay017/ov17_0224A0FC.c @@ -1879,7 +1879,7 @@ static void ov17_0224C0C0(UnkStruct_ov17_0224DF54 *param0, int param1, const Unk StringTemplate_SetNickname(param0->unk_14.unk_88, 0, Pokemon_GetBoxPokemon(param0->unk_14.unk_00->unk_00[param2->unk_00])); break; case 2: - v0 = sub_02095848(param0->unk_00->unk_00.unk_110, param0->unk_00->unk_00.unk_111, param0->unk_00->isLinkContest); + v0 = sub_02095848(param0->unk_00->unk_00.contestRank, param0->unk_00->unk_00.unk_111, param0->unk_00->isLinkContest); StringTemplate_SetContestRankName(param0->unk_14.unk_88, 0, v0); break; case 3: @@ -1894,7 +1894,7 @@ static void ov17_0224C0C0(UnkStruct_ov17_0224DF54 *param0, int param1, const Unk StringTemplate_SetNumber(param0->unk_14.unk_88, 1, param2->unk_04, 1, 0, 1); break; case 6: - v0 = sub_02095848(param0->unk_00->unk_00.unk_110, param0->unk_00->unk_00.unk_111, param0->unk_00->isLinkContest); + v0 = sub_02095848(param0->unk_00->unk_00.contestRank, param0->unk_00->unk_00.unk_111, param0->unk_00->isLinkContest); StringTemplate_SetContestRankName(param0->unk_14.unk_88, 0, v0); StringTemplate_SetNumber(param0->unk_14.unk_88, 1, param2->unk_04, 1, 0, 1); StringTemplate_SetString(param0->unk_14.unk_88, 2, param0->unk_00->unk_00.unk_D8[param2->unk_00], param0->unk_00->unk_00.unk_F8[param2->unk_00], 1, GAME_LANGUAGE); diff --git a/src/overlay017/ov17_0224E930.c b/src/overlay017/ov17_0224E930.c index 8153aad9ed..87c7adc140 100644 --- a/src/overlay017/ov17_0224E930.c +++ b/src/overlay017/ov17_0224E930.c @@ -77,7 +77,7 @@ void ov17_0224E990(UnkStruct_ov17_0224DF54 *param0, UnkStruct_ov17_0224E958 *par v9 = (param3 / 6 + 10000 / 2) / 10000; } - switch (param0->unk_00->unk_00.unk_110) { + switch (param0->unk_00->unk_00.contestRank) { case 0: case 1: v8 = 0; @@ -135,7 +135,7 @@ void ov17_0224E990(UnkStruct_ov17_0224DF54 *param0, UnkStruct_ov17_0224E958 *par } } - v4 = ov17_0224EBE0(param0->unk_00->unk_00.unk_110, param1->unk_39); + v4 = ov17_0224EBE0(param0->unk_00->unk_00.contestRank, param1->unk_39); for (v0 = 0; v0 < param0->unk_A3C.unk_2E; v0++) { s32 v11; @@ -157,7 +157,7 @@ void ov17_0224E990(UnkStruct_ov17_0224DF54 *param0, UnkStruct_ov17_0224E958 *par { int v12; - v12 = Unk_ov17_02254A84[param0->unk_00->unk_00.unk_110]; + v12 = Unk_ov17_02254A84[param0->unk_00->unk_00.contestRank]; param1->unk_00_val1.unk_20[0] = 0 + (sub_02094EA0(param1->unk_30, ¶m1->unk_30) % 4); for (v0 = 1; v0 < param0->unk_A3C.unk_2E; v0++) { @@ -397,8 +397,8 @@ static void ov17_0224EE90(UnkStruct_ov17_0224DF54 *param0, UnkStruct_ov17_0224E9 v9 = param0->unk_1AD4[param1->unk_36 - 1].unk_03; } - v6 = ov17_0224EC24(param0->unk_00->unk_00.unk_110, param0->unk_00->unk_00.unk_10F, param1->unk_39, v1->unk_06, v10, param0->unk_A3C.unk_2F, param0->unk_1B26); - v7 = ov17_0224ECC4(param0->unk_00->unk_00.unk_110, param0->unk_00->unk_00.unk_10F, param1->unk_39, v1->unk_06, v10, v1->unk_03, v9, param0->unk_1B26); + v6 = ov17_0224EC24(param0->unk_00->unk_00.contestRank, param0->unk_00->unk_00.contestType, param1->unk_39, v1->unk_06, v10, param0->unk_A3C.unk_2F, param0->unk_1B26); + v7 = ov17_0224ECC4(param0->unk_00->unk_00.contestRank, param0->unk_00->unk_00.contestType, param1->unk_39, v1->unk_06, v10, v1->unk_03, v9, param0->unk_1B26); v4 = (v1->unk_06 * v2 + 10000 / 2) / 10000; v5 = (sub_02094EA0(param1->unk_30, ¶m1->unk_30) % (2 + v6)) - (1 + v6 / 2); diff --git a/src/overlay017/ov17_02250744.c b/src/overlay017/ov17_02250744.c index 8019f8aa23..fabc8c42c4 100644 --- a/src/overlay017/ov17_02250744.c +++ b/src/overlay017/ov17_02250744.c @@ -217,7 +217,7 @@ static void ov17_022507F0(UnkStruct_ov17_0224FCA0 *param0, int param1, const Unk case 0: break; case 1: - v0 = sub_02095848(param0->unk_00->unk_00.unk_110, param0->unk_00->unk_00.unk_111, param0->unk_00->isLinkContest); + v0 = sub_02095848(param0->unk_00->unk_00.contestRank, param0->unk_00->unk_00.unk_111, param0->unk_00->isLinkContest); StringTemplate_SetContestRankName(param0->unk_10.unk_B8, 0, v0); break; case 2: diff --git a/src/overlay017/ov17_02252A70.c b/src/overlay017/ov17_02252A70.c index b76a018e08..8e4edf3aee 100644 --- a/src/overlay017/ov17_02252A70.c +++ b/src/overlay017/ov17_02252A70.c @@ -3,7 +3,7 @@ #include #include -#include "struct_decls/struct_02029C88_decl.h" +#include "struct_defs/struct_02029C88.h" #include "graphics.h" #include "unk_020298BC.h" diff --git a/src/overlay020/ov20_021D0D80.c b/src/overlay020/ov20_021D0D80.c index 6686a4d7fb..cadb4232f4 100644 --- a/src/overlay020/ov20_021D0D80.c +++ b/src/overlay020/ov20_021D0D80.c @@ -1053,7 +1053,7 @@ static BOOL ov20_021D1BB0(UnkStruct_ov20_021D16E8 *param0) param0->unk_10[param0->unk_4E] = v1; break; case 2: - sub_02014CF8(¶m0->unk_08, param0->unk_4E, v1); + Sentence_SetWord(¶m0->unk_08, param0->unk_4E, v1); break; } @@ -1302,7 +1302,7 @@ u32 ov20_021D1F9C(const UnkStruct_ov20_021D16E8 *param0) u16 ov20_021D1FA8(const UnkStruct_ov20_021D16E8 *param0, int param1) { if (param0->unk_04 == 2) { - return sub_02014C78(¶m0->unk_08, param1); + return Sentence_GetWord(¶m0->unk_08, param1); } else { return param0->unk_10[param1]; } diff --git a/src/overlay022/ov22_02255D44.c b/src/overlay022/ov22_02255D44.c index 69801c601f..fe91d0e663 100644 --- a/src/overlay022/ov22_02255D44.c +++ b/src/overlay022/ov22_02255D44.c @@ -6,9 +6,9 @@ #include "generated/trainer_score_events.h" #include "struct_decls/struct_02015920_decl.h" -#include "struct_decls/struct_02029C68_decl.h" -#include "struct_decls/struct_02029C88_decl.h" +#include "struct_defs/dress_up_photo.h" #include "struct_defs/struct_02015958.h" +#include "struct_defs/struct_02029C88.h" #include "struct_defs/struct_0203DA00.h" #include "struct_defs/struct_02093BBC.h" #include "struct_defs/struct_02095C60.h" @@ -155,7 +155,7 @@ static void ov22_02256C70(SysTask *param0, void *param1); static void ov22_02256DB8(UnkStruct_ov22_02255D44 *param0, BOOL *param1); static void ov22_02256DE0(SysTask *param0, void *param1); static BOOL ov22_02257098(UnkStruct_ov22_02256C48 *param0, int param1, int param2, int param3); -static void ov22_02256F38(UnkStruct_02029C68 *param0, UnkStruct_ov22_02257964 *param1, const TrainerInfo *param2); +static void ov22_02256F38(DressUpPhoto *photo, UnkStruct_ov22_02257964 *param1, const TrainerInfo *info); static void ov22_02256FD8(UnkStruct_02029C88 *param0, UnkStruct_ov22_02257964 *param1, int param2, const TrainerInfo *param3); static void ov22_02257104(UnkStruct_ov22_02255D44 *param0); static void ov22_0225718C(UnkStruct_ov22_02255D44 *param0); @@ -212,7 +212,7 @@ int ov22_02255D44(ApplicationManager *appMan, int *param1) (void)0; } - ov22_0225894C(v2->unk_08, &v0->unk_1E8); + ov22_0225894C(v2->fashionCase, &v0->unk_1E8); ov22_022566C0(v0); ov22_02259484(&v0->unk_3C0, (700 + 1 + 18), HEAP_ID_13); @@ -363,7 +363,7 @@ int ov22_02256098(ApplicationManager *appMan, int *param1) if (v0->unk_71C == 1) { GameRecords_IncrementTrainerScore(v2->records, TRAINER_SCORE_EVENT_UNK_07); - ov22_02256F38(v2->unk_04, &v0->unk_458, v2->unk_14); + ov22_02256F38(v2->photo, &v0->unk_458, v2->unk_14); } if (v2->unk_18 != NULL) { @@ -433,7 +433,7 @@ int ov22_02256174(ApplicationManager *appMan, int *param1) (void)0; } - ov22_0225894C(v2->unk_18, &v0->unk_1E8); + ov22_0225894C(v2->fashionCase, &v0->unk_1E8); ov22_022566C0(v0); SpriteList_SetActive(v0->unk_00.unk_44, 0); @@ -1124,21 +1124,21 @@ static void ov22_02256DE0(SysTask *param0, void *param1) } } -static void ov22_02256F38(UnkStruct_02029C68 *param0, UnkStruct_ov22_02257964 *param1, const TrainerInfo *param2) +static void ov22_02256F38(DressUpPhoto *photo, UnkStruct_ov22_02257964 *param1, const TrainerInfo *info) { UnkStruct_ov22_02259560 *v0; int v1; - String *v2; - int v3; + String *name; + int gender; - sub_02029F84(param0); - sub_02029FAC(param0, param1->unk_2C.unk_4C.unk_0C, ¶m1->unk_2C.unk_4C); + DressUpPhoto_Init(photo); + sub_02029FAC(photo, param1->unk_2C.unk_4C.unk_0C, ¶m1->unk_2C.unk_4C); - if (param2) { - v2 = TrainerInfo_NameNewString(param2, 13); - v3 = TrainerInfo_Gender(param2); - sub_0202A0EC(param0, v2, v3); - String_Free(v2); + if (info != NULL) { + name = TrainerInfo_NameNewString(info, HEAP_ID_13); + gender = TrainerInfo_Gender(info); + DressUpPhoto_SetTrainerNameAndGender(photo, name, gender); + String_Free(name); } v1 = 0; @@ -1146,7 +1146,7 @@ static void ov22_02256F38(UnkStruct_02029C68 *param0, UnkStruct_ov22_02257964 *p while (v0 != ¶m1->unk_00.unk_14) { if (v0->unk_04 == 0) { - sub_02029FD0(param0, v0->unk_00, v1); + sub_02029FD0(photo, v0->unk_00, v1); v1++; } @@ -1157,15 +1157,15 @@ static void ov22_02256F38(UnkStruct_02029C68 *param0, UnkStruct_ov22_02257964 *p while (v0 != ¶m1->unk_00.unk_04) { if (v0->unk_04 == 0) { - sub_02029FD0(param0, v0->unk_00, v1); + sub_02029FD0(photo, v0->unk_00, v1); v1++; } v0 = v0->unk_08; } - sub_0202A084(param0, param1->unk_2C.unk_48); - sub_02029F5C(param0); + sub_0202A084(photo, param1->unk_2C.unk_48); + DressUpPhoto_SetLanguageAndMagic(photo); } static void ov22_02256FD8(UnkStruct_02029C88 *param0, UnkStruct_ov22_02257964 *param1, int param2, const TrainerInfo *param3) diff --git a/src/overlay022/ov22_0225894C.c b/src/overlay022/ov22_0225894C.c index 7752953972..3f7769ebb6 100644 --- a/src/overlay022/ov22_0225894C.c +++ b/src/overlay022/ov22_0225894C.c @@ -3,30 +3,31 @@ #include #include -#include "struct_decls/struct_02029D04_decl.h" +#include "generated/accessories.h" +#include "generated/backdrops.h" #include "overlay022/struct_ov22_0225899C.h" #include "unk_020298BC.h" -void ov22_0225894C(const UnkStruct_02029D04 *param0, UnkStruct_ov22_0225899C *param1) +void ov22_0225894C(const FashionCase *fashionCase, UnkStruct_ov22_0225899C *param1) { - int v0; + int i; u32 v1; - for (v0 = 0; v0 < 100; v0++) { - param1->unk_00[v0] = sub_02029D94(param0, v0); + for (i = 0; i < ACCESSORY_COUNT; i++) { + param1->accessoryCounts[i] = FashionCase_GetAccessoryCount(fashionCase, i); } - for (v0 = 0; v0 < 18; v0++) { - param1->unk_190[v0] = 18; + for (i = 0; i < BACKDROP_COUNT; i++) { + param1->backdropCounts[i] = BACKDROP_COUNT; } - for (v0 = 0; v0 < 18; v0++) { - v1 = sub_02029DD4(param0, v0); + for (i = 0; i < BACKDROP_COUNT; i++) { + v1 = FashionCase_GetBackdropCount(fashionCase, i); - if (v1 != 18) { - param1->unk_190[v1] = v0; + if (v1 != BACKDROP_COUNT) { + param1->backdropCounts[v1] = i; } } } @@ -34,12 +35,12 @@ void ov22_0225894C(const UnkStruct_02029D04 *param0, UnkStruct_ov22_0225899C *pa u32 ov22_0225899C(const UnkStruct_ov22_0225899C *param0, u32 param1) { GF_ASSERT(param1 < 100); - return param0->unk_00[param1]; + return param0->accessoryCounts[param1]; } u32 ov22_022589B0(const UnkStruct_ov22_0225899C *param0, u32 param1) { - return param0->unk_190[param1]; + return param0->backdropCounts[param1]; } u32 ov22_022589BC(const UnkStruct_ov22_0225899C *param0, u32 param1) @@ -47,7 +48,7 @@ u32 ov22_022589BC(const UnkStruct_ov22_0225899C *param0, u32 param1) int v0; for (v0 = 0; v0 < 18; v0++) { - if (param0->unk_190[v0] == param1) { + if (param0->backdropCounts[v0] == param1) { return v0; } } diff --git a/src/overlay022/ov22_02259098.c b/src/overlay022/ov22_02259098.c index e4036b9038..7e16469619 100644 --- a/src/overlay022/ov22_02259098.c +++ b/src/overlay022/ov22_02259098.c @@ -121,10 +121,10 @@ BOOL ov22_02259244(UnkStruct_020298D8 *param0, int param1, int param2) return TouchScreen_IsTouchInHitTable(¶m0->unk_04, param1, param2); } -void ov22_02259250(UnkStruct_020298D8 *param0, int *param1, int *param2) +void ov22_02259250(UnkStruct_020298D8 *param0, int *xCenter, int *yCenter) { - *param1 = PokemonSprite_GetAttribute(param0->unk_00, MON_SPRITE_X_CENTER); - *param2 = PokemonSprite_GetAttribute(param0->unk_00, MON_SPRITE_Y_CENTER); + *xCenter = PokemonSprite_GetAttribute(param0->unk_00, MON_SPRITE_X_CENTER); + *yCenter = PokemonSprite_GetAttribute(param0->unk_00, MON_SPRITE_Y_CENTER); } void ov22_02259270(UnkStruct_020298D8 *param0, int *param1, int *param2) diff --git a/src/overlay022/ov22_0225AF8C.c b/src/overlay022/ov22_0225AF8C.c index d173faff73..464c16d69e 100644 --- a/src/overlay022/ov22_0225AF8C.c +++ b/src/overlay022/ov22_0225AF8C.c @@ -3,10 +3,10 @@ #include #include -#include "struct_decls/struct_02029C68_decl.h" -#include "struct_decls/struct_02029C88_decl.h" -#include "struct_decls/struct_0202A138_decl.h" -#include "struct_decls/struct_0202A150_decl.h" +#include "struct_defs/dress_up_photo.h" +#include "struct_defs/photo_accessory.h" +#include "struct_defs/photo_pokemon.h" +#include "struct_defs/struct_02029C88.h" #include "overlay022/ov22_02254DE0.h" #include "overlay022/ov22_02255094.h" @@ -52,8 +52,8 @@ typedef struct UnkStruct_ov22_0225B1BC_t { } UnkStruct_ov22_0225B1BC; typedef struct { - const UnkStruct_0202A138 *unk_00; - const UnkStruct_0202A150 *unk_04[20]; + const PhotoPokemon *photoMon; + const PhotoAccessory *unk_04[20]; int unk_54; BgConfig *unk_58; int unk_5C; @@ -73,17 +73,17 @@ static void ov22_0225B464(UnkStruct_ov22_0225B1BC *param0); static void ov22_0225B480(UnkStruct_ov22_0225B1BC *param0); static void ov22_0225B490(UnkStruct_ov22_0225B1BC *param0, const UnkStruct_ov22_0225B4E4 *param1); static void ov22_0225B4E4(UnkStruct_ov22_0225B4E4 *param0, const UnkStruct_ov22_0225AF8C *param1); -static void ov22_0225B4F8(UnkStruct_ov22_0225B4E4 *param0, const UnkStruct_02029C68 *param1); +static void ov22_0225B4F8(UnkStruct_ov22_0225B4E4 *param0, const DressUpPhoto *photo); static void ov22_0225B540(UnkStruct_ov22_0225B4E4 *param0, const UnkStruct_02029C88 *param1); static void ov22_0225B588(UnkStruct_ov22_0225A0E4 *param0, UnkStruct_ov22_02255CB8 *param1, const UnkStruct_ov22_0225B4E4 *param2, enum HeapID heapID); static void ov22_0225B5A8(UnkStruct_ov22_0225A0E4 *param0, UnkStruct_ov22_02255CB8 *param1, const UnkStruct_ov22_0225B4E4 *param2, enum HeapID heapID); -UnkStruct_ov22_0225B1BC *ov22_0225AF8C(const UnkStruct_ov22_0225AF8C *param0, const UnkStruct_02029C68 *param1) +UnkStruct_ov22_0225B1BC *ov22_0225AF8C(const UnkStruct_ov22_0225AF8C *param0, const DressUpPhoto *photo) { UnkStruct_ov22_0225B4E4 v0; ov22_0225B4E4(&v0, param0); - ov22_0225B4F8(&v0, param1); + ov22_0225B4F8(&v0, photo); return ov22_0225B1BC(&v0); } @@ -242,7 +242,7 @@ static UnkStruct_ov22_0225B1BC *ov22_0225B1BC(const UnkStruct_ov22_0225B4E4 *par v0->unk_29C = param0->heapID; v0->unk_298 = Pokemon_New(param0->heapID); - sub_0202A61C(param0->unk_00, v0->unk_298); + PhotoPokemon_CopyToPokemon(param0->photoMon, v0->unk_298); ov22_0225B2D4(v0, param0); ov22_022554A8(&v0->unk_00, param0->unk_58, param0->heapID); @@ -273,7 +273,7 @@ static UnkStruct_ov22_0225B1BC *ov22_0225B258(const UnkStruct_ov22_0225B4E4 *par v0->unk_29C = param0->heapID; v0->unk_298 = Pokemon_New(param0->heapID); - sub_0202A61C(param0->unk_00, v0->unk_298); + PhotoPokemon_CopyToPokemon(param0->photoMon, v0->unk_298); ov22_0225B2D4(v0, param0); ov22_02259484(&v0->unk_1E8, 21, param0->heapID); @@ -328,7 +328,7 @@ static void ov22_0225B35C(UnkStruct_ov22_0225B1BC *param0) static void ov22_0225B388(UnkStruct_ov22_0225B1BC *param0, const UnkStruct_ov22_0225B4E4 *param1) { UnkStruct_ov22_0225B388 v0; - int v1, v2, v3; + int xPos, yPos, priority; memset(&v0, 0, sizeof(UnkStruct_ov22_0225B388)); @@ -344,15 +344,13 @@ static void ov22_0225B388(UnkStruct_ov22_0225B1BC *param0, const UnkStruct_ov22_ ov22_022578F4(¶m0->unk_1F4, &v0); - { - PokemonSpriteTemplate v4; + PokemonSpriteTemplate v4; - v1 = sub_0202A60C(param1->unk_00); - v2 = sub_0202A614(param1->unk_00); - v3 = sub_0202A604(param1->unk_00); + xPos = PhotoPokemon_GetXPos(param1->photoMon); + yPos = PhotoPokemon_GetYPos(param1->photoMon); + priority = PhotoPokemon_GetPriority(param1->photoMon); - ov22_02257964(¶m0->unk_1F4, param0->unk_298, &v4, v1, v2, v3, param1->heapID); - } + ov22_02257964(¶m0->unk_1F4, param0->unk_298, &v4, xPos, yPos, priority, param1->heapID); { int v5; @@ -362,9 +360,9 @@ static void ov22_0225B388(UnkStruct_ov22_0225B1BC *param0, const UnkStruct_ov22_ for (v5 = 0; v5 < param1->unk_54; v5++) { v8 = sub_0202A624(param1->unk_04[v5]); - v6 = sub_0202A628(param1->unk_04[v5]); - v7 = sub_0202A62C(param1->unk_04[v5]); - v9 = sub_0202A630(param1->unk_04[v5]); + v6 = PhotoAccessory_GetXPos(param1->unk_04[v5]); + v7 = PhotoAccessory_GetYPos(param1->unk_04[v5]); + v9 = PhotoAccessory_GetPriority(param1->unk_04[v5]); ov22_022579FC(¶m0->unk_1F4, v8, v6, v7, v9); } @@ -411,28 +409,28 @@ static void ov22_0225B4E4(UnkStruct_ov22_0225B4E4 *param0, const UnkStruct_ov22_ param0->heapID = param1->heapID; } -static void ov22_0225B4F8(UnkStruct_ov22_0225B4E4 *param0, const UnkStruct_02029C68 *param1) +static void ov22_0225B4F8(UnkStruct_ov22_0225B4E4 *param0, const DressUpPhoto *photo) { - int v0; + int i; - param0->unk_00 = sub_0202A138(param1); + param0->photoMon = DressUpPhoto_GetPhotoMon(photo); param0->unk_54 = 0; - for (v0 = 0; v0 < (11 - 1); v0++) { - if (sub_0202A110(param1, v0)) { - param0->unk_04[param0->unk_54] = sub_0202A150(param1, v0); + for (i = 0; i < (11 - 1); i++) { + if (sub_0202A110(photo, i)) { + param0->unk_04[param0->unk_54] = sub_0202A150(photo, i); param0->unk_54++; } } - param0->unk_5C = sub_0202A1DC(param1); + param0->unk_5C = sub_0202A1DC(photo); } static void ov22_0225B540(UnkStruct_ov22_0225B4E4 *param0, const UnkStruct_02029C88 *param1) { int v0; - param0->unk_00 = sub_0202A4D8(param1); + param0->photoMon = sub_0202A4D8(param1); param0->unk_54 = 0; for (v0 = 0; v0 < (21 - 1); v0++) { diff --git a/src/overlay022/ov22_0225B660.c b/src/overlay022/ov22_0225B660.c index c9cae82f02..0ba60f1c2d 100644 --- a/src/overlay022/ov22_0225B660.c +++ b/src/overlay022/ov22_0225B660.c @@ -5,8 +5,8 @@ #include "constants/graphics.h" -#include "struct_decls/struct_02029C68_decl.h" -#include "struct_decls/struct_02029C88_decl.h" +#include "struct_defs/dress_up_photo.h" +#include "struct_defs/struct_02029C88.h" #include "struct_defs/struct_02041DC8.h" #include "overlay022/ov22_02255094.h" @@ -34,7 +34,7 @@ #include "unk_02094EDC.h" typedef struct { - const UnkStruct_02029C68 *unk_00; + const DressUpPhoto *photo; const UnkStruct_02029C88 *unk_04; u32 unk_08; u32 unk_0C; @@ -72,9 +72,9 @@ int ov22_0225B660(ApplicationManager *appMan, int *param1) v1 = ApplicationManager_Args(appMan); if (v1->unk_08 == 0) { - v0->unk_00 = sub_02029CA8(v1->unk_00, v1->unk_04); + v0->photo = ImageClips_GetDressUpPhoto(v1->imageClips, v1->unk_04); } else { - v0->unk_04 = sub_02029CD0(v1->unk_00, v1->unk_04); + v0->unk_04 = sub_02029CD0(v1->imageClips, v1->unk_04); } v0->unk_08 = v1->unk_04; @@ -94,7 +94,7 @@ int ov22_0225B660(ApplicationManager *appMan, int *param1) v2.heapID = HEAP_ID_14; if (v0->unk_0C == 0) { - v0->unk_10 = ov22_0225AF8C(&v2, v0->unk_00); + v0->unk_10 = ov22_0225AF8C(&v2, v0->photo); } else { v0->unk_10 = ov22_0225AFB0(&v2, v0->unk_04); } @@ -272,7 +272,7 @@ static void ov22_0225BB00(UnkStruct_ov22_0225B85C *param0) VecFx32 v0; int v1, v2; int v3; - u16 v4; + u16 word; StringTemplate *v5; String *v6; String *v7; @@ -287,7 +287,7 @@ static void ov22_0225BB00(UnkStruct_ov22_0225B85C *param0) Sprite_SetPosition(param0->unk_1FC, &v0); v7 = String_Init(12, HEAP_ID_13); - sub_0202A1A0(param0->unk_00, v7); + DressUpPhoto_SetTrainerName(param0->photo, v7); v3 = Font_CalcStringWidth(FONT_SYSTEM, v7, 0); v1 = 128 - (v3 / 2); @@ -296,8 +296,8 @@ static void ov22_0225BB00(UnkStruct_ov22_0225B85C *param0) Text_AddPrinterWithParamsAndColor(param0->unk_200, FONT_SYSTEM, v7, v1, v2, TEXT_SPEED_INSTANT, TEXT_COLOR(1, 2, 0), NULL); String_Free(v7); - v4 = sub_0202A1F4(param0->unk_00); - StringTemplate_SetCustomMessageWord(v5, 0, v4); + word = DressUpPhoto_GetTitleWord(param0->photo); + StringTemplate_SetCustomMessageWord(v5, 0, word); v7 = String_Init(200, HEAP_ID_13); v6 = MessageLoader_GetNewString(v8, 45); diff --git a/src/overlay059/ov59_021D2F88.c b/src/overlay059/ov59_021D2F88.c index ffcb4be278..635e870752 100644 --- a/src/overlay059/ov59_021D2F88.c +++ b/src/overlay059/ov59_021D2F88.c @@ -4,9 +4,9 @@ #include #include "struct_decls/struct_0202440C_decl.h" -#include "struct_decls/struct_02029C68_decl.h" -#include "struct_decls/struct_0202A750_decl.h" #include "struct_decls/struct_0202E8C0_decl.h" +#include "struct_defs/dress_up_photo.h" +#include "struct_defs/image_clips.h" #include "overlay059/ov59_021D2A2C.h" #include "overlay059/ov59_021D2B44.h" @@ -68,26 +68,26 @@ static void ov59_021D2FBC(const UnkStruct_ov59_021D2FBC *param0) static u32 ov59_021D2FD4(SaveData *saveData) { - UnkStruct_0202A750 *v0 = sub_0202A750(saveData); - return sub_02029C60(); + ImageClips *imageClips = SaveData_GetImageClips(saveData); + return DressUpPhoto_Size(); } static void *ov59_021D2FE0(SaveData *saveData, enum HeapID heapID, u32 param2) { - UnkStruct_02029C68 *v0; - UnkStruct_0202A750 *v1 = sub_0202A750(saveData); + DressUpPhoto *photo; + ImageClips *imageClips = SaveData_GetImageClips(saveData); void *v2 = Heap_AllocAtEnd(heapID, param2); - v0 = sub_02029CA8(v1, 0); - MI_CpuCopyFast(v0, v2, param2); + photo = ImageClips_GetDressUpPhoto(imageClips, 0); + MI_CpuCopyFast(photo, v2, param2); return v2; } static void ov59_021D300C(const UnkStruct_ov59_021D2FBC *param0) { - UnkStruct_0202A750 *v0 = sub_0202A750(param0->saveData); - sub_0202A6A8(param0->unk_08, param0->unk_0C, v0, param0->unk_10); + ImageClips *imageClips = SaveData_GetImageClips(param0->saveData); + sub_0202A6A8(param0->unk_08, param0->unk_0C, imageClips, param0->unk_10); } static void ov59_021D3028(const UnkStruct_ov59_021D2FBC *param0) diff --git a/src/overlay061/ov61_0222AE60.c b/src/overlay061/ov61_0222AE60.c index ba5ecb962c..d14a40aa98 100644 --- a/src/overlay061/ov61_0222AE60.c +++ b/src/overlay061/ov61_0222AE60.c @@ -6,7 +6,7 @@ #include "constants/species.h" #include "struct_decls/pc_boxes_decl.h" -#include "struct_decls/struct_02029C68_decl.h" +#include "struct_defs/dress_up_photo.h" #include "struct_defs/struct_02030A80.h" #include "overlay061/struct_ov61_0222AE80.h" @@ -20,15 +20,15 @@ #include "string_gf.h" #include "unk_020298BC.h" -void ov61_0222AE60(SaveData *saveData, const UnkStruct_02029C68 *param1, UnkStruct_ov61_0222AE80 *param2) +void ov61_0222AE60(SaveData *saveData, const DressUpPhoto *photo, UnkStruct_ov61_0222AE80 *param2) { - sub_0202A75C(param1, param2); + sub_0202A75C(photo, param2); param2->unk_5C.unk_00 = SaveData_CalculateChecksum(saveData, param2, sizeof(UnkStruct_ov61_0222AE80) - (sizeof(UnkStruct_ov62_02239DA4_sub1))); } -void ov61_0222AE80(const UnkStruct_ov61_0222AE80 *param0, UnkStruct_02029C68 *param1) +void ov61_0222AE80(const UnkStruct_ov61_0222AE80 *param0, DressUpPhoto *photo) { - sub_0202A824(param0, param1); + sub_0202A824(param0, photo); } void ov61_0222AE88(SaveData *saveData, const PCBoxes *pcBoxes, int boxID, UnkStruct_ov62_02239DA4 *param3, enum HeapID heapID) diff --git a/src/overlay061/ov61_0222B008.c b/src/overlay061/ov61_0222B008.c index 83ccddb198..d73ab54155 100644 --- a/src/overlay061/ov61_0222B008.c +++ b/src/overlay061/ov61_0222B008.c @@ -5,7 +5,7 @@ #include #include "struct_decls/pc_boxes_decl.h" -#include "struct_decls/struct_02029C68_decl.h" +#include "struct_defs/dress_up_photo.h" #include "struct_defs/struct_02030A80.h" #include "overlay004/ov4_021D0D80.h" @@ -163,14 +163,14 @@ static int ov61_0222B190(UnkStruct_ov62_022349A8 *param0, UnkStruct_ov61_0222B13 return 0; } -int ov61_0222B1B4(UnkStruct_ov62_022349A8 *param0, UnkStruct_02030A80 *param1, UnkStruct_02029C68 *param2) +int ov61_0222B1B4(UnkStruct_ov62_022349A8 *param0, UnkStruct_02030A80 *param1, DressUpPhoto *photo) { if (ov61_0222BBBC(param0) == 0) { return 0; } ov61_0222AFA4(param0->saveData, param1, ¶m0->unk_190.unk_00_val1.unk_00); - ov61_0222AE60(param0->saveData, param2, ¶m0->unk_190.unk_00_val1.unk_80); + ov61_0222AE60(param0->saveData, photo, ¶m0->unk_190.unk_00_val1.unk_80); param0->unk_40E = 60; param0->unk_3E8 = 20000; diff --git a/src/overlay062/ov62_0222F2C0.c b/src/overlay062/ov62_0222F2C0.c index 7c23559b4d..3b7910be6e 100644 --- a/src/overlay062/ov62_0222F2C0.c +++ b/src/overlay062/ov62_0222F2C0.c @@ -3,7 +3,7 @@ #include #include -#include "struct_decls/struct_02029C68_decl.h" +#include "struct_defs/dress_up_photo.h" #include "struct_defs/struct_0208B284.h" #include "struct_defs/struct_0208C06C.h" #include "struct_defs/struct_02099F80.h" @@ -697,10 +697,10 @@ BOOL ov62_0222FD3C(UnkStruct_0208C06C *param0) break; case 5: if (v0 == 0) { - UnkStruct_02029C68 *v2 = sub_02029CA8(sub_0202A750(param0->saveData), v0); - v1 = sub_02029F34(v2); + DressUpPhoto *photo = ImageClips_GetDressUpPhoto(SaveData_GetImageClips(param0->saveData), v0); + v1 = DressUpPhoto_HasData(photo); - if (v1 == 0) { + if (v1 == FALSE) { ov62_0223197C(param0, 290); } } diff --git a/src/overlay062/ov62_02237D24.c b/src/overlay062/ov62_02237D24.c index 9534dba9af..fa0dfb5f90 100644 --- a/src/overlay062/ov62_02237D24.c +++ b/src/overlay062/ov62_02237D24.c @@ -4,7 +4,7 @@ #include #include "struct_decls/pokedexdata_decl.h" -#include "struct_decls/struct_02029C68_decl.h" +#include "struct_defs/dress_up_photo.h" #include "struct_defs/struct_02030A80.h" #include "struct_defs/struct_0208C06C.h" @@ -57,7 +57,7 @@ FS_EXTERN_OVERLAY(overlay22); typedef struct { int unk_00; int unk_04; - UnkStruct_02029C68 *unk_08; + DressUpPhoto *photo; UnkStruct_ov61_0222BC90 *unk_0C[5]; } UnkStruct_ov62_02237D24_sub1; @@ -77,7 +77,7 @@ typedef struct { UnkStruct_ov62_02248CDC unk_1EC; UnkStruct_ov22_0225AF8C unk_218; UnkStruct_ov22_0225B1BC *unk_228; - UnkStruct_02029C68 *unk_22C; + DressUpPhoto *photo; UnkStruct_ov62_02237D24_sub1 unk_230; UnkStruct_ov62_022323B8 unk_250; UnkStruct_02030A80 *unk_2DC; @@ -217,7 +217,7 @@ static BOOL ov62_02237D24(UnkStruct_0208C06C *param0) } { - v0->unk_230.unk_08 = sub_02029C68(HEAP_ID_102); + v0->unk_230.photo = DressUpPhoto_New(HEAP_ID_102); v0->unk_250.unk_00 = sub_02030A80(HEAP_ID_102); } @@ -295,10 +295,10 @@ static BOOL ov62_02237F08(UnkStruct_0208C06C *param0) GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG3, 1); ov62_02234540(param0, 1); - v0->unk_22C = sub_02029CA8(sub_0202A750(param0->saveData), 0); + v0->photo = ImageClips_GetDressUpPhoto(SaveData_GetImageClips(param0->saveData), 0); if (v0->unk_228 == NULL) { - v0->unk_228 = ov22_0225AF8C(&v0->unk_218, v0->unk_22C); + v0->unk_228 = ov22_0225AF8C(&v0->unk_218, v0->photo); ov22_0225B074(v0->unk_228, 1); } @@ -381,7 +381,7 @@ static BOOL ov62_022380B0(UnkStruct_0208C06C *param0) Bg_SetPriority(BG_LAYER_SUB_3, 1); { - Heap_Free(v0->unk_230.unk_08); + Heap_Free(v0->unk_230.photo); sub_02030A98(v0->unk_250.unk_00); } @@ -417,7 +417,7 @@ static BOOL ov62_022380B0(UnkStruct_0208C06C *param0) param0->unk_08++; break; case 3: - if (ov61_0222B1B4(ov62_0224112C(param0), v0->unk_2DC, v0->unk_22C) == 1) { + if (ov61_0222B1B4(ov62_0224112C(param0), v0->unk_2DC, v0->photo) == 1) { sub_02030A98(v0->unk_2DC); param0->unk_08++; } @@ -505,7 +505,7 @@ static BOOL ov62_022383E4(UnkStruct_0208C06C *param0) Bg_SetPriority(BG_LAYER_SUB_3, 1); { - Heap_Free(v0->unk_230.unk_08); + Heap_Free(v0->unk_230.photo); sub_02030A98(v0->unk_250.unk_00); } @@ -756,7 +756,7 @@ static BOOL ov62_0223896C(UnkStruct_0208C06C *param0) Bg_SetPriority(BG_LAYER_SUB_3, 1); { - Heap_Free(v0->unk_230.unk_08); + Heap_Free(v0->unk_230.photo); sub_02030A98(v0->unk_250.unk_00); } @@ -906,8 +906,8 @@ static BOOL ov62_02238D04(UnkStruct_0208C06C *param0) case 0: v0->unk_0C = 0; - ov61_0222AE80(&v0->unk_230.unk_0C[v0->unk_230.unk_04]->unk_80, v0->unk_230.unk_08); - v0->unk_228 = ov22_0225AF8C(&v0->unk_218, v0->unk_230.unk_08); + ov61_0222AE80(&v0->unk_230.unk_0C[v0->unk_230.unk_04]->unk_80, v0->unk_230.photo); + v0->unk_228 = ov22_0225AF8C(&v0->unk_218, v0->unk_230.photo); ov22_0225B074(v0->unk_228, 0); ov62_02239518(); @@ -1088,8 +1088,8 @@ static BOOL ov62_0223900C(UnkStruct_0208C06C *param0) ov62_02234540(param0, 0); ov62_022343B8(param0, 80, 3); } else { - ov61_0222AE80(&v0->unk_230.unk_0C[v0->unk_230.unk_04]->unk_80, v0->unk_230.unk_08); - v0->unk_228 = ov22_0225AF8C(&v0->unk_218, v0->unk_230.unk_08); + ov61_0222AE80(&v0->unk_230.unk_0C[v0->unk_230.unk_04]->unk_80, v0->unk_230.photo); + v0->unk_228 = ov22_0225AF8C(&v0->unk_218, v0->unk_230.photo); ov22_0225B074(v0->unk_228, 0); ov62_02239518(); ov62_022343B8(param0, 35, 3); @@ -1175,8 +1175,8 @@ static BOOL ov62_0223921C(UnkStruct_0208C06C *param0) ov62_02234540(param0, 1); if (v0->unk_0C == 0) { - ov61_0222AE80(&v0->unk_230.unk_0C[v0->unk_230.unk_04]->unk_80, v0->unk_230.unk_08); - v0->unk_228 = ov22_0225AF8C(&v0->unk_218, v0->unk_230.unk_08); + ov61_0222AE80(&v0->unk_230.unk_0C[v0->unk_230.unk_04]->unk_80, v0->unk_230.photo); + v0->unk_228 = ov22_0225AF8C(&v0->unk_218, v0->unk_230.photo); ov22_0225B074(v0->unk_228, 0); ov62_02239518(); ov62_022343B8(param0, 35, 3); @@ -1362,7 +1362,7 @@ static void ov62_02239724(UnkStruct_0208C06C *param0) String *v3; StringTemplate *v4; UnkStruct_ov62_02237D24 *v5 = param0->unk_860; - u16 v6; + u16 word; u32 v7; int v8, v9; @@ -1380,12 +1380,12 @@ static void ov62_02239724(UnkStruct_0208C06C *param0) v2 = MessageLoader_GetNewString(param0->unk_14.unk_34, 56); v1 = String_Init(255, HEAP_ID_102); - sub_0202A1A0(v5->unk_22C, v1); + DressUpPhoto_SetTrainerName(v5->photo, v1); ov62_022349A8(param0, v1); - v6 = sub_0202A1F4(v5->unk_22C); + word = DressUpPhoto_GetTitleWord(v5->photo); StringTemplate_SetString(v4, 0, v1, 0, 1, 2); - StringTemplate_SetCustomMessageWord(v4, 1, v6); + StringTemplate_SetCustomMessageWord(v4, 1, word); StringTemplate_Format(v4, v3, v2); v7 = String_NumLines(v3); @@ -1411,7 +1411,7 @@ static void ov62_02239854(UnkStruct_0208C06C *param0, int param1) String *v3; StringTemplate *v4; UnkStruct_ov62_02237D24 *v5 = param0->unk_860; - u16 v6; + u16 word; u32 v7; int v8, v9; @@ -1429,12 +1429,12 @@ static void ov62_02239854(UnkStruct_0208C06C *param0, int param1) v2 = MessageLoader_GetNewString(param0->unk_14.unk_34, 56); v1 = String_Init(255, HEAP_ID_102); - sub_0202A1A0(v5->unk_230.unk_08, v1); + DressUpPhoto_SetTrainerName(v5->unk_230.photo, v1); ov62_022349A8(param0, v1); - v6 = sub_0202A1F4(v5->unk_230.unk_08); + word = DressUpPhoto_GetTitleWord(v5->unk_230.photo); StringTemplate_SetString(v4, 0, v1, 0, 1, 2); - StringTemplate_SetCustomMessageWord(v4, 1, v6); + StringTemplate_SetCustomMessageWord(v4, 1, word); StringTemplate_Format(v4, v3, v2); v7 = String_NumLines(v3); diff --git a/src/overlay104/ov104_02231F74.c b/src/overlay104/ov104_02231F74.c index 65407af52f..bccb46514a 100644 --- a/src/overlay104/ov104_02231F74.c +++ b/src/overlay104/ov104_02231F74.c @@ -201,8 +201,8 @@ static void ov104_022320FC(String *param0, u16 param1, u16 param2, u16 param3, u sub_02014A84(&v0); sub_02014CE0(&v0, param1, param2); - sub_02014CF8(&v0, 0, param3); - sub_02014CF8(&v0, 1, param4); + Sentence_SetWord(&v0, 0, param3); + Sentence_SetWord(&v0, 1, param4); v1 = sub_02014B34(&v0, HEAP_ID_FIELD3); String_Copy(param0, v1); diff --git a/src/savedata/save_table.c b/src/savedata/save_table.c index c6f18a6404..578e7bc6b3 100644 --- a/src/savedata/save_table.c +++ b/src/savedata/save_table.c @@ -60,7 +60,7 @@ const SaveTableEntry gSaveTable[] = { { SAVE_TABLE_ENTRY_FIELD_OVERWORLD_STATE, SAVE_BLOCK_ID_NORMAL, (SaveEntrySizeFunc)FieldOverworldSave_Size, (SaveEntryInitFunc)FieldOverworldSave_Init }, { SAVE_TABLE_ENTRY_UNDERGROUND, SAVE_BLOCK_ID_NORMAL, (SaveEntrySizeFunc)Underground_SaveSize, (SaveEntryInitFunc)Underground_Init }, { SAVE_TABLE_ENTRY_REGULATION_BATTLES, SAVE_BLOCK_ID_NORMAL, (SaveEntrySizeFunc)BattleRegulation_SaveSize, (SaveEntryInitFunc)RegulationBattles_Init }, - { SAVE_TABLE_ENTRY_IMAGE_CLIPS, SAVE_BLOCK_ID_NORMAL, (SaveEntrySizeFunc)ImageClip_SaveSize, (SaveEntryInitFunc)ImageClip_Init }, + { SAVE_TABLE_ENTRY_IMAGE_CLIPS, SAVE_BLOCK_ID_NORMAL, (SaveEntrySizeFunc)ImageClips_SaveSize, (SaveEntryInitFunc)ImageClips_Init }, { SAVE_TABLE_ENTRY_MAILBOX, SAVE_BLOCK_ID_NORMAL, (SaveEntrySizeFunc)Mailbox_SaveSize, (SaveEntryInitFunc)Mailbox_Init }, { SAVE_TABLE_ENTRY_POFFINS, SAVE_BLOCK_ID_NORMAL, (SaveEntrySizeFunc)PoffinCase_SaveSize, (SaveEntryInitFunc)PoffinCase_Init }, { SAVE_TABLE_ENTRY_RECORD_MIXED_RNG, SAVE_BLOCK_ID_NORMAL, (SaveEntrySizeFunc)RecordMixedRNG_SaveSize, (SaveEntryInitFunc)RecordMixedRNG_Init }, diff --git a/src/scrcmd.c b/src/scrcmd.c index ad3b1a917e..b32544abb0 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -4,6 +4,7 @@ #include #include +#include "constants/accessories.h" #include "constants/battle.h" #include "constants/daycare.h" #include "constants/field/dynamic_map_features.h" @@ -14,7 +15,6 @@ #include "constants/scrcmd.h" #include "constants/species.h" #include "constants/string.h" -#include "generated/accessories.h" #include "generated/comm_club_ret_codes.h" #include "generated/first_arrival_to_zones.h" #include "generated/journal_location_events.h" @@ -27,10 +27,6 @@ #include "struct_decls/pokedexdata_decl.h" #include "struct_decls/struct_02014EC4_decl.h" #include "struct_decls/struct_0202440C_decl.h" -#include "struct_decls/struct_02029C68_decl.h" -#include "struct_decls/struct_02029C88_decl.h" -#include "struct_decls/struct_02029D04_decl.h" -#include "struct_decls/struct_0202A750_decl.h" #include "struct_decls/struct_0203A790_decl.h" #include "struct_decls/struct_0205C22C_decl.h" #include "struct_decls/struct_0205E884_decl.h" @@ -39,9 +35,12 @@ #include "struct_defs/battle_tower.h" #include "struct_defs/choose_starter_data.h" #include "struct_defs/daycare.h" +#include "struct_defs/dress_up_photo.h" +#include "struct_defs/image_clips.h" #include "struct_defs/mail.h" #include "struct_defs/seal_case.h" #include "struct_defs/special_encounter.h" +#include "struct_defs/struct_02029C88.h" #include "struct_defs/struct_0203E608.h" #include "struct_defs/struct_02041DC8.h" #include "struct_defs/underground.h" @@ -384,7 +383,7 @@ static BOOL ScrCmd_0A7(ScriptContext *ctx); static BOOL ScrCmd_0A8(ScriptContext *ctx); static BOOL ScrCmd_12E(ScriptContext *ctx); static BOOL ScrCmd_12F(ScriptContext *ctx); -static BOOL ScrCmd_130(ScriptContext *ctx); +static BOOL ScrCmd_SetDressUpPhotoTitle(ScriptContext *ctx); static BOOL ScrCmd_OpenSealCapsuleEditor(ScriptContext *ctx); static BOOL ScrCmd_OpenRegionMap(ScriptContext *ctx); static BOOL ScrCmd_1D7(ScriptContext *ctx); @@ -657,7 +656,7 @@ static BOOL ScrCmd_SetHiddenLocation(ScriptContext *ctx); static BOOL ScrCmd_BufferContestBackdropName(ScriptContext *ctx); static BOOL ScrCmd_CheckBonusRoundStreak(ScriptContext *ctx); static BOOL ScrCmd_GetDailyRandomLevel(ScriptContext *ctx); -static BOOL ScrCmd_Unused_279(ScriptContext *ctx); +static BOOL ScrCmd_RemoveAccessory(ScriptContext *ctx); static BOOL ScrCmd_27A(ScriptContext *ctx); static BOOL ScrCmd_InitDailyRandomLevel(ScriptContext *ctx); static BOOL ScrCmd_27D(ScriptContext *ctx); @@ -1073,7 +1072,7 @@ const ScrCmdFunc Unk_020EAC58[] = { ScrCmd_TrySaveGame, ScrCmd_12E, ScrCmd_12F, - ScrCmd_130, + ScrCmd_SetDressUpPhotoTitle, ScrCmd_131, ScrCmd_132, ScrCmd_RegisterPoketchApp, @@ -1402,7 +1401,7 @@ const ScrCmdFunc Unk_020EAC58[] = { ScrCmd_CanAddCoins, ScrCmd_GetDailyRandomLevel, ScrCmd_GetPartyMonLevel, - ScrCmd_Unused_279, + ScrCmd_RemoveAccessory, ScrCmd_27A, ScrCmd_InitDailyRandomLevel, ScrCmd_27C, @@ -1505,7 +1504,7 @@ const ScrCmdFunc Unk_020EAC58[] = { ScrCmd_FindPartySlotWithSpecies, ScrCmd_2DE, ScrCmd_CalcAmitySquareBerryAndAccessoryManOptionID, - ScrCmd_CheckAmitySquareManGiftIsAccesory, + ScrCmd_CheckAmitySquareManGiftIsAccessory, ScrCmd_GetAmitySquareBerryOrAccessoryIDFromMan, ScrCmd_2E2, ScrCmd_2E3, @@ -3780,14 +3779,14 @@ static BOOL ScrCmd_WaitForTransition(ScriptContext *ctx) static BOOL sub_02041D98(FieldSystem *fieldSystem, int param1, int param2) { - UnkStruct_0202A750 *v0 = sub_0202A750(fieldSystem->saveData); + ImageClips *imageClips = SaveData_GetImageClips(fieldSystem->saveData); if (param1 == 0) { - if (!sub_02029D10(v0, param2)) { + if (!ImageClips_DressUpPhotoHasData(imageClips, param2)) { return FALSE; } } else { - if (!sub_02029D2C(v0, param2)) { + if (!sub_02029D2C(imageClips, param2)) { return FALSE; } } @@ -3797,7 +3796,7 @@ static BOOL sub_02041D98(FieldSystem *fieldSystem, int param1, int param2) static UnkStruct_02041DC8 *sub_02041DC8(enum HeapID heapID, FieldSystem *fieldSystem, int param2, int param3) { - UnkStruct_0202A750 *v3 = sub_0202A750(fieldSystem->saveData); + ImageClips *imageClips = SaveData_GetImageClips(fieldSystem->saveData); if (!sub_02041D98(fieldSystem, param2, param3)) { return NULL; @@ -3806,7 +3805,7 @@ static UnkStruct_02041DC8 *sub_02041DC8(enum HeapID heapID, FieldSystem *fieldSy UnkStruct_02041DC8 *v0 = Heap_Alloc(heapID, sizeof(UnkStruct_02041DC8)); memset(v0, 0, sizeof(UnkStruct_02041DC8)); - v0->unk_00 = v3; + v0->imageClips = imageClips; v0->unk_08 = param2; v0->unk_04 = param3; @@ -4039,13 +4038,13 @@ static BOOL ScrCmd_12F(ScriptContext *ctx) return TRUE; } -static BOOL ScrCmd_130(ScriptContext *ctx) +static BOOL ScrCmd_SetDressUpPhotoTitle(ScriptContext *ctx) { - u16 v0 = ScriptContext_GetVar(ctx); - UnkStruct_0202A750 *v1 = sub_0202A750(ctx->fieldSystem->saveData); - UnkStruct_02029C68 *v2 = sub_02029CA8(v1, 0); + u16 word = ScriptContext_GetVar(ctx); + ImageClips *imageClips = SaveData_GetImageClips(ctx->fieldSystem->saveData); + DressUpPhoto *photo = ImageClips_GetDressUpPhoto(imageClips, 0); - sub_0202A0A0(v2, v0); + DressUpPhoto_SetTitle(photo, word); return TRUE; } @@ -5929,10 +5928,10 @@ static BOOL ScrCmd_AddAccessory(ScriptContext *ctx) u16 accessoryID = ScriptContext_GetVar(ctx); u16 amount = ScriptContext_GetVar(ctx); - UnkStruct_0202A750 *v0 = sub_0202A750(ctx->fieldSystem->saveData); - UnkStruct_02029D04 *v1 = sub_02029D04(v0); + ImageClips *imageClips = SaveData_GetImageClips(ctx->fieldSystem->saveData); + FashionCase *fashionCase = ImageClips_GetFashionCase(imageClips); - sub_02029E2C(v1, accessoryID, amount); + FashionCase_AddAccessory(fashionCase, accessoryID, amount); return FALSE; } @@ -5942,9 +5941,9 @@ static BOOL ScrCmd_CanFitAccessory(ScriptContext *ctx) u16 count = ScriptContext_GetVar(ctx); u16 *destVar = ScriptContext_GetVarPointer(ctx); - UnkStruct_0202A750 *v0 = sub_0202A750(ctx->fieldSystem->saveData); - UnkStruct_02029D04 *v1 = sub_02029D04(v0); - *destVar = sub_02029D50(v1, accessory, count); + ImageClips *imageClips = SaveData_GetImageClips(ctx->fieldSystem->saveData); + FashionCase *fashionCase = ImageClips_GetFashionCase(imageClips); + *destVar = FashionCase_CanFitAccessoryCount(fashionCase, accessory, count); return FALSE; } @@ -5955,10 +5954,10 @@ static BOOL ScrCmd_Unused_1D4(ScriptContext *ctx) u16 v3 = ScriptContext_GetVar(ctx); u16 *v4 = ScriptContext_GetVarPointer(ctx); - UnkStruct_0202A750 *v0 = sub_0202A750(ctx->fieldSystem->saveData); - UnkStruct_02029D04 *v1 = sub_02029D04(v0); + ImageClips *imageClips = SaveData_GetImageClips(ctx->fieldSystem->saveData); + FashionCase *fashionCase = ImageClips_GetFashionCase(imageClips); - if (v3 <= sub_02029D94(v1, v2)) { + if (v3 <= FashionCase_GetAccessoryCount(fashionCase, v2)) { *v4 = 1; } else { *v4 = 0; @@ -5969,12 +5968,12 @@ static BOOL ScrCmd_Unused_1D4(ScriptContext *ctx) static BOOL ScrCmd_ObtainContestBackdrop(ScriptContext *ctx) { - u16 v2 = ScriptContext_GetVar(ctx); + u16 backdropID = ScriptContext_GetVar(ctx); - UnkStruct_0202A750 *v0 = sub_0202A750(ctx->fieldSystem->saveData); - UnkStruct_02029D04 *v1 = sub_02029D04(v0); + ImageClips *imageClips = SaveData_GetImageClips(ctx->fieldSystem->saveData); + FashionCase *fashionCase = ImageClips_GetFashionCase(imageClips); - sub_02029EFC(v1, v2); + FashionCase_AddBackdrop(fashionCase, backdropID); return FALSE; } @@ -5983,9 +5982,9 @@ static BOOL ScrCmd_CheckBackdrop(ScriptContext *ctx) u16 backdrop = ScriptContext_GetVar(ctx); u16 *destVar = ScriptContext_GetVarPointer(ctx); - UnkStruct_0202A750 *v0 = sub_0202A750(ctx->fieldSystem->saveData); - UnkStruct_02029D04 *v1 = sub_02029D04(v0); - *destVar = sub_02029D80(v1, backdrop); + ImageClips *imageClips = SaveData_GetImageClips(ctx->fieldSystem->saveData); + FashionCase *fashionCase = ImageClips_GetFashionCase(imageClips); + *destVar = FashionCase_HasBackdrop(fashionCase, backdrop); return FALSE; } @@ -6737,13 +6736,13 @@ static BOOL ScrCmd_TryGetRandomMassageGirlAccessory(ScriptContext *ctx) int i; u16 *destAccessoryID = ScriptContext_GetVarPointer(ctx); - UnkStruct_0202A750 *v0 = sub_0202A750(ctx->fieldSystem->saveData); - UnkStruct_02029D04 *v1 = sub_02029D04(v0); + ImageClips *imageClips = SaveData_GetImageClips(ctx->fieldSystem->saveData); + FashionCase *fashionCase = ImageClips_GetFashionCase(imageClips); int unobtainedAccessoryCount = 0; for (i = 0; i < NUM_MASSAGE_GIRL_ACCESSORIES; i++) { - if (sub_02029D50(v1, ACCESSORY_PRETTY_DEWDROP + i, 1) == TRUE) { + if (FashionCase_CanFitAccessoryCount(fashionCase, ACCESSORY_PRETTY_DEWDROP + i, 1) == TRUE) { hasAccessory[i] = TRUE; unobtainedAccessoryCount++; } @@ -6833,15 +6832,15 @@ static BOOL ScrCmd_GetDailyRandomLevel(ScriptContext *ctx) return FALSE; } -static BOOL ScrCmd_Unused_279(ScriptContext *ctx) +static BOOL ScrCmd_RemoveAccessory(ScriptContext *ctx) { - u16 v2 = ScriptContext_GetVar(ctx); - u16 v3 = ScriptContext_GetVar(ctx); + u16 accessoryID = ScriptContext_GetVar(ctx); + u16 amount = ScriptContext_GetVar(ctx); - UnkStruct_0202A750 *v0 = sub_0202A750(ctx->fieldSystem->saveData); - UnkStruct_02029D04 *v1 = sub_02029D04(v0); + ImageClips *imageClips = SaveData_GetImageClips(ctx->fieldSystem->saveData); + FashionCase *fashionCase = ImageClips_GetFashionCase(imageClips); - sub_02029EA0(v1, v2, v3); + FashionCase_RemoveAccessory(fashionCase, accessoryID, amount); return FALSE; } diff --git a/src/scrcmd_amity_square.c b/src/scrcmd_amity_square.c index b16cd48b75..350195af90 100644 --- a/src/scrcmd_amity_square.c +++ b/src/scrcmd_amity_square.c @@ -3,8 +3,8 @@ #include #include +#include "constants/accessories.h" #include "constants/species.h" -#include "generated/accessories.h" #include "field_script_context.h" #include "inlines.h" @@ -145,7 +145,7 @@ BOOL ScrCmd_CalcAmitySquareFoundAccessory(ScriptContext *ctx) return FALSE; } -static const u16 sBerryAndAccesoryManOptions[] = { +static const u16 sBerryAndAccessoryManOptions[] = { ITEM_MAGOST_BERRY, ITEM_CORNN_BERRY, ITEM_RABUTA_BERRY, @@ -168,11 +168,11 @@ BOOL ScrCmd_CalcAmitySquareBerryAndAccessoryManOptionID(ScriptContext *ctx) { u16 *destBerryAndAccessoryManOptionID = ScriptContext_GetVarPointer(ctx); - *destBerryAndAccessoryManOptionID = LCRNG_Next() % (NELEMS(sBerryAndAccesoryManOptions)); + *destBerryAndAccessoryManOptionID = LCRNG_Next() % (NELEMS(sBerryAndAccessoryManOptions)); return FALSE; } -BOOL ScrCmd_CheckAmitySquareManGiftIsAccesory(ScriptContext *ctx) +BOOL ScrCmd_CheckAmitySquareManGiftIsAccessory(ScriptContext *ctx) { u16 giftID = ScriptContext_GetVar(ctx); u16 *destVar = ScriptContext_GetVarPointer(ctx); @@ -191,6 +191,6 @@ BOOL ScrCmd_GetAmitySquareBerryOrAccessoryIDFromMan(ScriptContext *ctx) u16 berryAndAccessoryManOptionID = ScriptContext_GetVar(ctx); u16 *destBerryOrAccessoryID = ScriptContext_GetVarPointer(ctx); - *destBerryOrAccessoryID = sBerryAndAccesoryManOptions[berryAndAccessoryManOptionID]; + *destBerryOrAccessoryID = sBerryAndAccessoryManOptions[berryAndAccessoryManOptionID]; return FALSE; } diff --git a/src/scrcmd_mystery_gift.c b/src/scrcmd_mystery_gift.c index 10772833ee..3daa6d5504 100644 --- a/src/scrcmd_mystery_gift.c +++ b/src/scrcmd_mystery_gift.c @@ -484,10 +484,10 @@ static void GiveCosmetic(FieldSystem *fieldSystem, GiftData *dummy) GiveOrTakeSeal(SaveData_GetSealCase(fieldSystem->saveData), id, 1); break; case MG_COSMETICS_ACCESSORY: - sub_02029E2C(sub_02029D04(sub_0202A750(fieldSystem->saveData)), id, 1); + FashionCase_AddAccessory(ImageClips_GetFashionCase(SaveData_GetImageClips(fieldSystem->saveData)), id, 1); break; case MG_COSMETICS_BACKDROP: - sub_02029EFC(sub_02029D04(sub_0202A750(fieldSystem->saveData)), id); + FashionCase_AddBackdrop(ImageClips_GetFashionCase(SaveData_GetImageClips(fieldSystem->saveData)), id); break; } } diff --git a/src/scrcmd_tv_broadcast.c b/src/scrcmd_tv_broadcast.c index 2b20a06a83..f771b1d06a 100644 --- a/src/scrcmd_tv_broadcast.c +++ b/src/scrcmd_tv_broadcast.c @@ -7,7 +7,7 @@ #include "generated/trainer_score_events.h" #include "struct_decls/struct_0202440C_decl.h" -#include "struct_decls/struct_0202A750_decl.h" +#include "struct_defs/image_clips.h" #include "struct_defs/struct_0202E7D8.h" #include "struct_defs/struct_0202E7E4.h" #include "struct_defs/struct_0202E7F0.h" @@ -327,8 +327,8 @@ static BOOL sub_02049368(FieldSystem *fieldSystem) static BOOL sub_02049378(FieldSystem *fieldSystem) { - UnkStruct_0202A750 *v0 = sub_0202A750(fieldSystem->saveData); - return sub_02029D10(v0, 0); + ImageClips *imageClips = SaveData_GetImageClips(fieldSystem->saveData); + return ImageClips_DressUpPhotoHasData(imageClips, 0); } static BOOL sub_02049388(FieldSystem *fieldSystem) diff --git a/src/string_template.c b/src/string_template.c index 81f61f1559..4b387a5a33 100644 --- a/src/string_template.c +++ b/src/string_template.c @@ -136,7 +136,7 @@ static inline MessageLoader *InitMessageLoader(u32 bankID, u32 heapID) return MessageLoader_Init(MSG_LOADER_LOAD_ON_DEMAND, NARC_INDEX_MSGDATA__PL_MSG, bankID, heapID); } -void StringTemplate_SetString(StringTemplate *template, u32 idx, const String *argVal, u32 unused3, BOOL unused4, u32 unused5) +void StringTemplate_SetString(StringTemplate *template, u32 idx, const String *argVal, u32 unused_gender, BOOL unused4, u32 unused_language) { SetStringTemplateArg(template, idx, argVal, NULL); } diff --git a/src/tv_episode_segment.c b/src/tv_episode_segment.c index 290386ecda..5de9b50f95 100644 --- a/src/tv_episode_segment.c +++ b/src/tv_episode_segment.c @@ -14,8 +14,8 @@ #include "struct_decls/pokedexdata_decl.h" #include "struct_decls/struct_0202440C_decl.h" -#include "struct_decls/struct_02029C68_decl.h" -#include "struct_decls/struct_0202A750_decl.h" +#include "struct_defs/dress_up_photo.h" +#include "struct_defs/image_clips.h" #include "struct_defs/special_encounter.h" #include "struct_defs/struct_0202E7D8.h" #include "struct_defs/struct_0202E7E4.h" @@ -1772,10 +1772,10 @@ void FieldSystem_SaveTVEpisodeSegment_RightOnPhotoCorner(FieldSystem *fieldSyste rightOnPhotoCorner->customMessageWord = customMessageWord; - UnkStruct_0202A750 *v2 = sub_0202A750(fieldSystem->saveData); - UnkStruct_02029C68 *v3 = sub_02029CA8(v2, 0); + ImageClips *imageClips = SaveData_GetImageClips(fieldSystem->saveData); + DressUpPhoto *photo = ImageClips_GetDressUpPhoto(imageClips, 0); - rightOnPhotoCorner->species = sub_0202A184(v3); + rightOnPhotoCorner->species = DressUpPhoto_GetMonSpecies(photo); FieldSystem_SaveTVEpisodeSegment(fieldSystem, TV_PROGRAM_TYPE_INTERVIEWS, TV_PROGRAM_SEGMENT_RIGHT_ON_PHOTO_CORNER, rightOnPhotoCorner); } @@ -2583,37 +2583,37 @@ static BOOL TVEpisodeSegment_IsEligible_RoamerNewsFlash(FieldSystem *fieldSystem return FALSE; } -static int sub_0206EE9C(UnkStruct_0202A750 *param0) +static int ImageClips_CountDressUpPhotosWithData(ImageClips *imageClips) { - int v0, v1; + int i, count; - for (v0 = 0, v1 = 0; v0 < 11; v0++) { - if (sub_02029D10(param0, v0) == 1) { - v1++; + for (i = 0, count = 0; i < SAVED_PHOTOS_COUNT; i++) { + if (ImageClips_DressUpPhotoHasData(imageClips, i) == TRUE) { + count++; } } - return v1; + return count; } static int sub_0206EEBC(FieldSystem *fieldSystem, StringTemplate *param1, UnkStruct_ov6_022465F4 *param2) { - UnkStruct_02029C68 *v0; - int v1, v2, v3, v4; - UnkStruct_0202A750 *v5 = sub_0202A750(fieldSystem->saveData); + DressUpPhoto *photo; + int i, count, v3, v4; + ImageClips *imageClips = SaveData_GetImageClips(fieldSystem->saveData); - v2 = sub_0206EE9C(v5); + count = ImageClips_CountDressUpPhotosWithData(imageClips); - if (v2 > 1) { - v3 = MTRNG_Next() % v2; + if (count > 1) { + v3 = MTRNG_Next() % count; } else { v3 = 0; } - for (v1 = 0; v1 < 11; v1++) { - if (sub_02029D10(v5, v1) == 1) { + for (i = 0; i < SAVED_PHOTOS_COUNT; i++) { + if (ImageClips_DressUpPhotoHasData(imageClips, i) == TRUE) { if (v3 == 0) { - v4 = v1; + v4 = i; break; } else { v3--; @@ -2621,30 +2621,28 @@ static int sub_0206EEBC(FieldSystem *fieldSystem, StringTemplate *param1, UnkStr } } - GF_ASSERT(v1 < 11); - v0 = sub_02029CA8(v5, v4); + GF_ASSERT(i < SAVED_PHOTOS_COUNT); + photo = ImageClips_GetDressUpPhoto(imageClips, v4); - { - u16 v6; - String *v7 = String_Init(7 + 1, HEAP_ID_FIELD1); - int v8 = sub_0202A1C0(v0); + u16 word; + String *v7 = String_Init(7 + 1, HEAP_ID_FIELD1); + int gender = DressUpPhoto_GetTrainerGender(photo); - sub_0202A1A0(v0, v7); - StringTemplate_SetString(param1, 0, v7, v8, 1, sub_0202A200(v0)); - String_Free(v7); + DressUpPhoto_SetTrainerName(photo, v7); + StringTemplate_SetString(param1, 0, v7, gender, 1, DressUpPhoto_GetLanguage(photo)); + String_Free(v7); - v6 = sub_0202A1F4(v0); - StringTemplate_SetCustomMessageWord(param1, 1, v6); - } + word = DressUpPhoto_GetTitleWord(photo); + StringTemplate_SetCustomMessageWord(param1, 1, word); return 52; } static BOOL sub_0206EF64(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) { - UnkStruct_0202A750 *v0 = sub_0202A750(fieldSystem->saveData); + ImageClips *imageClips = SaveData_GetImageClips(fieldSystem->saveData); - if (sub_0206EE9C(v0) != 0) { + if (ImageClips_CountDressUpPhotosWithData(imageClips) != 0) { return 1; } else { return 0; diff --git a/src/unk_02014A84.c b/src/unk_02014A84.c index 256de2c50e..482a2e1f75 100644 --- a/src/unk_02014A84.c +++ b/src/unk_02014A84.c @@ -165,9 +165,9 @@ static u32 sub_02014C00(u32 param0, u32 param1) return v2; } -u16 sub_02014C78(const Sentence *sentence, int param1) +u16 Sentence_GetWord(const Sentence *sentence, int slot) { - return sentence->words[param1]; + return sentence->words[slot]; } u32 sub_02014C80(const Sentence *sentence) @@ -219,7 +219,7 @@ void sub_02014CE0(Sentence *sentence, u32 param1, u32 param2) sentence->id = param2; } -void sub_02014CF8(Sentence *sentence, u32 index, u16 word) +void Sentence_SetWord(Sentence *sentence, u32 index, u16 word) { GF_ASSERT(index < 2); sentence->words[index] = word; diff --git a/src/unk_020298BC.c b/src/unk_020298BC.c index 787bd25a8c..66544708f7 100644 --- a/src/unk_020298BC.c +++ b/src/unk_020298BC.c @@ -3,6 +3,11 @@ #include #include +#include "constants/accessories.h" +#include "constants/charcode.h" +#include "generated/backdrops.h" + +#include "struct_defs/image_clips.h" #include "struct_defs/sentence.h" #include "struct_defs/struct_020298D8.h" @@ -10,7 +15,6 @@ #include "overlay022/struct_ov22_02255040.h" #include "overlay061/struct_ov61_0222AE80.h" #include "overlay061/struct_ov61_0222AE80_sub2.h" -#include "overlay061/struct_ov61_0222BED8_sub2_sub1_sub1_sub1.h" #include "heap.h" #include "inlines.h" @@ -20,315 +24,261 @@ #include "string_gf.h" #include "unk_02014A84.h" -typedef struct UnkStruct_0202A138_t { - u32 unk_00; - u32 unk_04; - u16 unk_08; - u16 unk_0A[11]; - u16 unk_20[8]; - s8 unk_30; - u8 unk_31; - u8 unk_32; - u8 unk_33; - u8 unk_34; -} UnkStruct_0202A138; +#define PHOTO_EMPTY_MAGIC (0x1234) // Photo is initialized but without proper data. +#define PHOTO_FULL_MAGIC (0x2345) // Photo has data written to it -typedef struct UnkStruct_0202A150_t { - u8 unk_00; - u8 unk_01; - u8 unk_02; - s8 unk_03; -} UnkStruct_0202A150; - -typedef struct UnkStruct_02029C68_t { - u32 unk_00; - UnkStruct_0202A138 unk_04; - u32 unk_3C; - Sentence unk_40; - UnkStruct_0202A150 unk_48[10]; - u8 unk_70; - u8 unk_71; -} UnkStruct_02029C68; - -typedef struct UnkStruct_02029C88_t { - u32 unk_00; - u32 unk_04; - UnkStruct_0202A138 unk_08; - u32 unk_40; - UnkStruct_0202A150 unk_44[20]; - u8 unk_94; -} UnkStruct_02029C88; - -typedef struct UnkStruct_02029D04_t { - u32 unk_00[8]; - u32 unk_20[2]; - u32 unk_28[6]; -} UnkStruct_02029D04; - -typedef struct UnkStruct_0202A750_t { - UnkStruct_02029C68 unk_00[11]; - UnkStruct_02029C88 unk_4C8[5]; - UnkStruct_02029D04 unk_7A4; -} UnkStruct_0202A750; - -static BOOL sub_020298BC(u32 param0) +static BOOL IsValidMagic(u32 value) { - if ((param0 == 0x1234) || (param0 == 0x2345)) { - return 1; + if (value == PHOTO_EMPTY_MAGIC || value == PHOTO_FULL_MAGIC) { + return TRUE; } - return 0; + return FALSE; } -static inline BOOL inline_02029CA8(const UnkStruct_02029C68 *param0) +static inline BOOL DressUpPhoto_IsValid(const DressUpPhoto *photo) { - return sub_020298BC(param0->unk_00); + return IsValidMagic(photo->integrity); } static inline BOOL inline_02029CD0(const UnkStruct_02029C88 *param0) { - return sub_020298BC(param0->unk_00); + return IsValidMagic(param0->integrity); } -static inline void inline_02029BFC(UnkStruct_02029C68 *param0) +static inline void DressUpPhoto_InitInternal(DressUpPhoto *photo) { - memset(param0, 0, sizeof(UnkStruct_02029C68)); - param0->unk_00 = 0x1234; + memset(photo, 0, sizeof(DressUpPhoto)); + photo->integrity = PHOTO_EMPTY_MAGIC; } static inline void inline_02029BFC_1(UnkStruct_02029C88 *param0) { memset(param0, 0, sizeof(UnkStruct_02029C88)); - param0->unk_00 = 0x1234; + param0->integrity = PHOTO_EMPTY_MAGIC; } -static void sub_020298D8(UnkStruct_020298D8 *param0, u8 *param1, u8 *param2, s8 *param3) +static void sub_020298D8(UnkStruct_020298D8 *param0, u8 *xPos, u8 *yPos, s8 *priority) { - int v0, v1; - int v2; + int spriteX, spriteY; + int spritePriority; - ov22_02259250(param0, &v0, &v1); - v2 = ov22_022591E0(param0); + ov22_02259250(param0, &spriteX, &spriteY); + spritePriority = ov22_022591E0(param0); - GF_ASSERT(v0 < 256); - GF_ASSERT(v1 < 256); - GF_ASSERT(v2 > -128); + GF_ASSERT(spriteX < 256); + GF_ASSERT(spriteY < 256); + GF_ASSERT(spritePriority > -128); - *param1 = v0; - *param2 = v1; - *param3 = v2; + *xPos = spriteX; + *yPos = spriteY; + *priority = spritePriority; } -static void sub_0202992C(UnkStruct_0202A138 *param0, Pokemon *param1, u8 param2, u8 param3, s8 param4) +static void PhotoPokemon_SetDataFromMon(PhotoPokemon *photoMon, Pokemon *mon, u8 xPos, u8 yPos, s8 priority) { - param0->unk_08 = Pokemon_GetValue(param1, MON_DATA_SPECIES, NULL); - Pokemon_GetValue(param1, MON_DATA_NICKNAME, param0->unk_0A); + photoMon->species = Pokemon_GetValue(mon, MON_DATA_SPECIES, NULL); + Pokemon_GetValue(mon, MON_DATA_NICKNAME, photoMon->nickname); - param0->unk_00 = Pokemon_GetValue(param1, MON_DATA_PERSONALITY, NULL); - param0->unk_04 = Pokemon_GetValue(param1, MON_DATA_OT_ID, NULL); - param0->unk_33 = Pokemon_GetValue(param1, MON_DATA_FORM, NULL); + photoMon->personality = Pokemon_GetValue(mon, MON_DATA_PERSONALITY, NULL); + photoMon->otID = Pokemon_GetValue(mon, MON_DATA_OT_ID, NULL); + photoMon->form = Pokemon_GetValue(mon, MON_DATA_FORM, NULL); - param0->unk_31 = param2; - param0->unk_32 = param3; - param0->unk_30 = param4; + photoMon->xPos = xPos; + photoMon->yPos = yPos; + photoMon->priority = priority; } -static void sub_02029990(UnkStruct_0202A138 *param0, Pokemon *param1, UnkStruct_020298D8 *param2) +static void sub_02029990(PhotoPokemon *photoMon, Pokemon *mon, UnkStruct_020298D8 *param2) { - u8 v0, v1; - s8 v2; + u8 xPos, yPos; + s8 priority; - sub_020298D8(param2, &v0, &v1, &v2); - sub_0202992C(param0, param1, v0, v1, v2); + sub_020298D8(param2, &xPos, &yPos, &priority); + PhotoPokemon_SetDataFromMon(photoMon, mon, xPos, yPos, priority); } -static void sub_020299C0(UnkStruct_0202A138 *param0, const String *param1, int param2) +static void PhotoPokemon_SetTrainerNameAndGender(PhotoPokemon *photoMon, const String *name, int gender) { - String_ToChars(param1, param0->unk_20, 8); // Possibly TRAINER_NAME_LEN + 1 - param0->unk_34 = param2; + String_ToChars(name, photoMon->trainerName, TRAINER_NAME_LEN + 1); + photoMon->trainerGender = gender; } -static void sub_020299D8(const UnkStruct_0202A138 *param0, Pokemon *param1) +static void PhotoPokemon_CopyToPokemonInternal(const PhotoPokemon *photoMon, Pokemon *mon) { - Pokemon_InitWith(param1, param0->unk_08, 0, 0, TRUE, param0->unk_00, OTID_SET, param0->unk_04); - Pokemon_SetValue(param1, MON_DATA_NICKNAME, param0->unk_0A); - Pokemon_SetValue(param1, MON_DATA_FORM, ¶m0->unk_33); + Pokemon_InitWith(mon, photoMon->species, 0, 0, TRUE, photoMon->personality, OTID_SET, photoMon->otID); + Pokemon_SetValue(mon, MON_DATA_NICKNAME, photoMon->nickname); + Pokemon_SetValue(mon, MON_DATA_FORM, &photoMon->form); } -static void sub_02029A18(UnkStruct_0202A150 *param0, u8 param1, u8 param2, u8 param3, u8 param4) +static void PhotoAccessory_SetData(PhotoAccessory *accessory, u8 param1, u8 xPos, u8 yPos, u8 priority) { - param0->unk_00 = param1; - param0->unk_01 = param2; - param0->unk_02 = param3; - param0->unk_03 = param4; + accessory->unk_00 = param1; + accessory->xPos = xPos; + accessory->yPos = yPos; + accessory->priority = priority; } -static void sub_02029A2C(u32 *param0, u8 param1, u8 param2) +static void NonUniqueAccessoryFlags_SetCount(u32 *flags, u8 count, u8 accessoryID) { - u8 v0; - u8 v1; + GF_ASSERT(accessoryID < NON_UNIQUE_ACCESSORY_COUNT); - GF_ASSERT(param2 < 61); - - v0 = param2 / 8; - v1 = param2 % 8; + u8 v0 = accessoryID / 8; + u8 v1 = accessoryID % 8; v1 *= 4; - param0[v0] &= ~(0xf << v1); - param0[v0] |= (param1 << v1); + flags[v0] &= ~(0xf << v1); + flags[v0] |= (count << v1); } -static u8 sub_02029A70(const u32 *param0, u8 param1) +static u8 NonUniqueAccessoryFlags_GetCount(const u32 *flags, u8 accessoryID) { u8 v0; u8 v1; u8 v2; - GF_ASSERT(param1 < 61); + GF_ASSERT(accessoryID < NON_UNIQUE_ACCESSORY_COUNT); - v1 = param1 / 8; - v2 = param1 % 8; + v1 = accessoryID / 8; + v2 = accessoryID % 8; v2 *= 4; - v0 = (param0[v1] >> v2) & 0xf; + v0 = (flags[v1] >> v2) & 0xf; - if (v0 > 9) { - v0 = 9; + if (v0 > MAX_NON_UNIQUE_ACCESSORIES_PER_TYPE) { + v0 = MAX_NON_UNIQUE_ACCESSORIES_PER_TYPE; } return v0; } -static void sub_02029AB0(u32 *param0, u8 param1, u8 param2) +static void UniqueAccessoryFlags_SetCount(u32 *flags, u8 count, u8 accessoryID) { - u8 v0; - u8 v1; + GF_ASSERT(count < MAX_UNIQUE_ACCESSORIES_PER_TYPE + 1); - GF_ASSERT(param1 < 2); - - v0 = param2 / 32; - v1 = param2 % 32; + u8 v0 = accessoryID / 32; + u8 v1 = accessoryID % 32; v1 *= 1; - param0[v0] &= ~(0x1 << v1); - param0[v0] |= (param1 << v1); + flags[v0] &= ~(0x1 << v1); + flags[v0] |= (count << v1); } -static u8 sub_02029AF0(const u32 *param0, u8 param1) +static u8 UniqueAccessoryFlags_GetCount(const u32 *flags, u8 accessoryID) { u8 v0; u8 v1; - v0 = param1 / 32; - v1 = param1 % 32; + v0 = accessoryID / 32; + v1 = accessoryID % 32; v1 *= 1; - return (param0[v0] >> v1) & 0x1; + return (flags[v0] >> v1) & 0x1; } -static void sub_02029B18(u32 *param0, u8 param1, u8 param2) +static void BackdropFlags_SetCount(u32 *flags, u8 count, u8 backdropID) { u8 v0; u8 v1; - GF_ASSERT(param1 <= 18); + GF_ASSERT(count <= BACKDROP_COUNT); - v0 = param2 / 4; - v1 = param2 % 4; + v0 = backdropID / 4; + v1 = backdropID % 4; v1 *= 8; - param0[v0] &= ~(0xff << v1); - param0[v0] |= (param1 << v1); + flags[v0] &= ~(0xff << v1); + flags[v0] |= (count << v1); } -static u8 sub_02029B5C(const u32 *param0, u8 param1) +static u8 BackdropFlags_GetCount(const u32 *flags, u8 backdropID) { u8 v0; u8 v1; - v0 = param1 / 4; - v1 = param1 % 4; + v0 = backdropID / 4; + v1 = backdropID % 4; v1 *= 8; - return (param0[v0] >> v1) & 0xff; + return (flags[v0] >> v1) & 0xff; } -static u8 sub_02029B80(const u32 *param0) +static u8 BackdropFlags_GetTotalCount(const u32 *flags) { - int v0; - int v1 = 0; + int i; + int count = 0; - for (v0 = 0; v0 < 18; v0++) { - if (sub_02029B5C(param0, v0) != 18) { - v1++; + for (i = 0; i < BACKDROP_COUNT; i++) { + if (BackdropFlags_GetCount(flags, i) != BACKDROP_COUNT) { + count++; } } - return v1; + return count; } -static BOOL sub_02029BA4(u32 param0) +static BOOL Accessory_CanHaveMultiple(u32 accessoryID) { - if (param0 < 61) { - return 1; + if (accessoryID < NON_UNIQUE_ACCESSORY_COUNT) { + return TRUE; } - return 0; + return FALSE; } -static inline u8 inline_02029D94(u32 param0) +static inline u8 Accessory_ToUniqueID(u32 accessoryID) { - GF_ASSERT(param0 >= 61); - return param0 - 61; + GF_ASSERT(accessoryID >= NON_UNIQUE_ACCESSORY_COUNT); + return accessoryID - NON_UNIQUE_ACCESSORY_COUNT; } -static void sub_02029BB0(UnkStruct_02029D04 *param0) +static void FashionCase_Init(FashionCase *fashionCase) { - int v0; + int i; - memset(param0, 0, sizeof(UnkStruct_02029D04)); + memset(fashionCase, 0, sizeof(FashionCase)); - for (v0 = 0; v0 < 18; v0++) { - sub_02029B18(param0->unk_28, 18, v0); + for (i = 0; i < BACKDROP_COUNT; i++) { + BackdropFlags_SetCount(fashionCase->backdropFlags, BACKDROP_COUNT, i); } } -static void sub_02029BD8(Pokemon *param0, u8 *param1, u8 *param2) +static void GetMonXYPositions(Pokemon *mon, u8 *xPos, u8 *yPos) { - u8 v0 = Pokemon_DPSpriteYOffset(param0, 2); + u8 yOffset = Pokemon_DPSpriteYOffset(mon, FACE_FRONT); - *param1 = 192 - (8 * 8); - *param2 = (16 + 129) - ((80 / 2) - v0) + -4; - *param2 += (5 * 8); + *xPos = 192 - (8 * 8); + *yPos = (16 + 129) - ((80 / 2) - yOffset) + -4; + *yPos += (5 * 8); } -void ImageClip_Init(UnkStruct_0202A750 *param0) +void ImageClips_Init(ImageClips *imageClips) { - int v0; + int i; - for (v0 = 0; v0 < 11; v0++) { - inline_02029BFC(¶m0->unk_00[v0]); + for (i = 0; i < SAVED_PHOTOS_COUNT; i++) { + DressUpPhoto_InitInternal(&imageClips->savedPhotos[i]); } - for (v0 = 0; v0 < 5; v0++) { - inline_02029BFC_1(¶m0->unk_4C8[v0]); + for (i = 0; i < 5; i++) { + inline_02029BFC_1(&imageClips->unk_4C8[i]); } - sub_02029BB0(¶m0->unk_7A4); + FashionCase_Init(&imageClips->fashionCase); } -int ImageClip_SaveSize(void) +int ImageClips_SaveSize(void) { - return sizeof(UnkStruct_0202A750); + return sizeof(ImageClips); } -int sub_02029C60(void) +int DressUpPhoto_Size(void) { - return sizeof(UnkStruct_02029C68); + return sizeof(DressUpPhoto); } int sub_02029C64(void) @@ -336,12 +286,12 @@ int sub_02029C64(void) return sizeof(UnkStruct_02029C88); } -UnkStruct_02029C68 *sub_02029C68(u32 heapID) +DressUpPhoto *DressUpPhoto_New(u32 heapID) { - UnkStruct_02029C68 *v0 = Heap_Alloc(heapID, sizeof(UnkStruct_02029C68)); - inline_02029BFC(v0); + DressUpPhoto *photo = Heap_Alloc(heapID, sizeof(DressUpPhoto)); + DressUpPhoto_InitInternal(photo); - return v0; + return photo; } UnkStruct_02029C88 *sub_02029C88(u32 heapID) @@ -352,223 +302,219 @@ UnkStruct_02029C88 *sub_02029C88(u32 heapID) return v0; } -UnkStruct_02029C68 *sub_02029CA8(UnkStruct_0202A750 *param0, int param1) +DressUpPhoto *ImageClips_GetDressUpPhoto(ImageClips *imageClips, int slot) { - GF_ASSERT(param1 < 11); - GF_ASSERT(inline_02029CA8(¶m0->unk_00[param1])); + GF_ASSERT(slot < SAVED_PHOTOS_COUNT); + GF_ASSERT(DressUpPhoto_IsValid(&imageClips->savedPhotos[slot])); - return ¶m0->unk_00[param1]; + return &imageClips->savedPhotos[slot]; } -UnkStruct_02029C88 *sub_02029CD0(UnkStruct_0202A750 *param0, int param1) +UnkStruct_02029C88 *sub_02029CD0(ImageClips *imageClips, int param1) { GF_ASSERT(param1 < 5); - GF_ASSERT(inline_02029CD0(¶m0->unk_4C8[param1])); + GF_ASSERT(inline_02029CD0(&imageClips->unk_4C8[param1])); - return ¶m0->unk_4C8[param1]; + return &imageClips->unk_4C8[param1]; } -UnkStruct_02029D04 *sub_02029D04(UnkStruct_0202A750 *param0) +FashionCase *ImageClips_GetFashionCase(ImageClips *imageClips) { - return ¶m0->unk_7A4; + return &imageClips->fashionCase; } -BOOL sub_02029D10(const UnkStruct_0202A750 *param0, int param1) +BOOL ImageClips_DressUpPhotoHasData(const ImageClips *imageClips, int slot) { - GF_ASSERT(param1 < 11); - return sub_02029F34(¶m0->unk_00[param1]); + GF_ASSERT(slot < SAVED_PHOTOS_COUNT); + return DressUpPhoto_HasData(&imageClips->savedPhotos[slot]); } -BOOL sub_02029D2C(const UnkStruct_0202A750 *param0, int param1) +BOOL sub_02029D2C(const ImageClips *imageClips, int param1) { GF_ASSERT(param1 < 5); - return sub_0202A218(¶m0->unk_4C8[param1]); + return sub_0202A218(&imageClips->unk_4C8[param1]); } -BOOL sub_02029D50(const UnkStruct_02029D04 *param0, u32 param1, u32 param2) +BOOL FashionCase_CanFitAccessoryCount(const FashionCase *fashionCase, u32 accessoryID, u32 count) { - u32 v0; - BOOL v1 = 1; + u32 currentCount; + BOOL canFit = TRUE; - v0 = sub_02029D94(param0, param1); + currentCount = FashionCase_GetAccessoryCount(fashionCase, accessoryID); - if (sub_02029BA4(param1)) { - v0 += param2; + if (Accessory_CanHaveMultiple(accessoryID)) { + currentCount += count; - if (v0 > 9) { - v1 = 0; + if (currentCount > MAX_NON_UNIQUE_ACCESSORIES_PER_TYPE) { + canFit = FALSE; } } else { - v0 += param2; + currentCount += count; - if (v0 > 1) { - v1 = 0; + if (currentCount > MAX_UNIQUE_ACCESSORIES_PER_TYPE) { + canFit = FALSE; } } - return v1; + return canFit; } -BOOL sub_02029D80(const UnkStruct_02029D04 *param0, u32 param1) +BOOL FashionCase_HasBackdrop(const FashionCase *fashionCase, u32 backdropID) { - u32 v0 = sub_02029DD4(param0, param1); + u32 count = FashionCase_GetBackdropCount(fashionCase, backdropID); - if (v0 != 18) { - return 1; + if (count != BACKDROP_COUNT) { + return TRUE; } - return 0; + return FALSE; } -u32 sub_02029D94(const UnkStruct_02029D04 *param0, u32 param1) +u32 FashionCase_GetAccessoryCount(const FashionCase *fashionCase, u32 accessoryID) { - u32 v0; + u32 count; - GF_ASSERT(param1 < 100); + GF_ASSERT(accessoryID < ACCESSORY_COUNT); - if (sub_02029BA4(param1)) { - v0 = sub_02029A70(param0->unk_00, param1); + if (Accessory_CanHaveMultiple(accessoryID)) { + count = NonUniqueAccessoryFlags_GetCount(fashionCase->nonUniqueAccessoryFlags, accessoryID); } else { - param1 = inline_02029D94(param1); - v0 = sub_02029AF0(param0->unk_20, param1); + accessoryID = Accessory_ToUniqueID(accessoryID); + count = UniqueAccessoryFlags_GetCount(fashionCase->uniqueAccessoryFlags, accessoryID); } - return v0; + return count; } -u32 sub_02029DD4(const UnkStruct_02029D04 *param0, u32 param1) +u32 FashionCase_GetBackdropCount(const FashionCase *fashionCase, u32 backdropID) { - BOOL v0; - - GF_ASSERT(param1 < 18); - v0 = sub_02029B5C(param0->unk_28, param1); - - return v0; + GF_ASSERT(backdropID < BACKDROP_COUNT); + return BackdropFlags_GetCount(fashionCase->backdropFlags, backdropID); } -u32 sub_02029DF0(const UnkStruct_02029D04 *param0) +u32 FashionCase_GetTotalAccessories(const FashionCase *fashionCase) { - int v0; - int v1 = 0; + int i; + int count = 0; - for (v0 = 0; v0 < 100; v0++) { - v1 += sub_02029D94(param0, v0); + for (i = 0; i < ACCESSORY_COUNT; i++) { + count += FashionCase_GetAccessoryCount(fashionCase, i); } - return v1; + return count; } -u32 sub_02029E0C(const UnkStruct_02029D04 *param0) +u32 FashionCase_GetTotalBackdrops(const FashionCase *fashionCase) { - int v0; - int v1 = 0; + int i; + int count = 0; - for (v0 = 0; v0 < 18; v0++) { - if (sub_02029DD4(param0, v0) != 18) { - v1++; + for (i = 0; i < BACKDROP_COUNT; i++) { + if (FashionCase_GetBackdropCount(fashionCase, i) != BACKDROP_COUNT) { + count++; } } - return v1; + return count; } -void sub_02029E2C(UnkStruct_02029D04 *param0, u32 param1, u32 param2) +void FashionCase_AddAccessory(FashionCase *fashionCase, u32 accessoryID, u32 amount) { - u8 v0; + u8 count; - GF_ASSERT(param1 < 100); + GF_ASSERT(accessoryID < ACCESSORY_COUNT); - if (sub_02029BA4(param1)) { - v0 = sub_02029A70(param0->unk_00, param1); - v0 += param2; + if (Accessory_CanHaveMultiple(accessoryID)) { + count = NonUniqueAccessoryFlags_GetCount(fashionCase->nonUniqueAccessoryFlags, accessoryID); + count += amount; - if (v0 > 9) { - v0 = 9; + if (count > MAX_NON_UNIQUE_ACCESSORIES_PER_TYPE) { + count = MAX_NON_UNIQUE_ACCESSORIES_PER_TYPE; } - sub_02029A2C(param0->unk_00, v0, param1); + NonUniqueAccessoryFlags_SetCount(fashionCase->nonUniqueAccessoryFlags, count, accessoryID); } else { - v0 = sub_02029AF0(param0->unk_20, param1); - v0 += param2; + count = UniqueAccessoryFlags_GetCount(fashionCase->uniqueAccessoryFlags, accessoryID); + count += amount; - if (v0 > 1) { - v0 = 1; + if (count > MAX_UNIQUE_ACCESSORIES_PER_TYPE) { + count = MAX_UNIQUE_ACCESSORIES_PER_TYPE; } - param1 = inline_02029D94(param1); - sub_02029AB0(param0->unk_20, v0, param1); + accessoryID = Accessory_ToUniqueID(accessoryID); + UniqueAccessoryFlags_SetCount(fashionCase->uniqueAccessoryFlags, count, accessoryID); } } -void sub_02029EA0(UnkStruct_02029D04 *param0, u32 param1, u32 param2) +void FashionCase_RemoveAccessory(FashionCase *fashionCase, u32 accessoryID, u32 amount) { - u8 v0; + u8 count; - GF_ASSERT(param1 < 100); + GF_ASSERT(accessoryID < ACCESSORY_COUNT); - if (sub_02029BA4(param1)) { - v0 = sub_02029A70(param0->unk_00, param1); + if (Accessory_CanHaveMultiple(accessoryID)) { + count = NonUniqueAccessoryFlags_GetCount(fashionCase->nonUniqueAccessoryFlags, accessoryID); - if (v0 > param2) { - v0 -= param2; + if (count > amount) { + count -= amount; } else { - v0 = 0; + count = 0; } - sub_02029A2C(param0->unk_00, v0, param1); + NonUniqueAccessoryFlags_SetCount(fashionCase->nonUniqueAccessoryFlags, count, accessoryID); } else { - v0 = 0; - param1 = inline_02029D94(param1); + count = 0; + accessoryID = Accessory_ToUniqueID(accessoryID); - sub_02029AB0(param0->unk_20, v0, param1); + UniqueAccessoryFlags_SetCount(fashionCase->uniqueAccessoryFlags, count, accessoryID); } } -void sub_02029EFC(UnkStruct_02029D04 *param0, u32 param1) +void FashionCase_AddBackdrop(FashionCase *fashionCase, u32 backdropID) { - u8 v0; + u8 count; - GF_ASSERT(param1 < 18); + GF_ASSERT(backdropID < BACKDROP_COUNT); - if (sub_02029B5C(param0->unk_28, param1) == 18) { - v0 = sub_02029B80(param0->unk_28); + if (BackdropFlags_GetCount(fashionCase->backdropFlags, backdropID) == BACKDROP_COUNT) { + count = BackdropFlags_GetTotalCount(fashionCase->backdropFlags); - sub_02029B18(param0->unk_28, v0, param1); + BackdropFlags_SetCount(fashionCase->backdropFlags, count, backdropID); } } -BOOL sub_02029F34(const UnkStruct_02029C68 *param0) +BOOL DressUpPhoto_HasData(const DressUpPhoto *photo) { - GF_ASSERT(inline_02029CA8(param0)); + GF_ASSERT(DressUpPhoto_IsValid(photo)); - if (param0->unk_00 == 0x2345) { - return 1; + if (photo->integrity == PHOTO_FULL_MAGIC) { + return TRUE; } - return 0; + return FALSE; } -void sub_02029F5C(UnkStruct_02029C68 *param0) +void DressUpPhoto_SetLanguageAndMagic(DressUpPhoto *photo) { - GF_ASSERT(inline_02029CA8(param0)); + GF_ASSERT(DressUpPhoto_IsValid(photo)); - param0->unk_00 = 0x2345; - param0->unk_71 = gGameLanguage; + photo->integrity = PHOTO_FULL_MAGIC; + photo->language = gGameLanguage; } -void sub_02029F84(UnkStruct_02029C68 *param0) +void DressUpPhoto_Init(DressUpPhoto *photo) { - GF_ASSERT(inline_02029CA8(param0)); - inline_02029BFC(param0); + GF_ASSERT(DressUpPhoto_IsValid(photo)); + DressUpPhoto_InitInternal(photo); } -void sub_02029FAC(UnkStruct_02029C68 *param0, Pokemon *param1, UnkStruct_020298D8 *param2) +void sub_02029FAC(DressUpPhoto *photo, Pokemon *mon, UnkStruct_020298D8 *param2) { - GF_ASSERT(inline_02029CA8(param0)); - sub_02029990(¶m0->unk_04, param1, param2); + GF_ASSERT(DressUpPhoto_IsValid(photo)); + sub_02029990(&photo->photoMon, mon, param2); } -void sub_02029FD0(UnkStruct_02029C68 *param0, const UnkStruct_ov22_02255040 *param1, int param2) +void sub_02029FD0(DressUpPhoto *photo, const UnkStruct_ov22_02255040 *param1, int param2) { NNSG2dSVec2 v0 = SoftwareSprite_GetPosition(param1->unk_04); int v1 = SoftwareSprite_GetPriority(param1->unk_04); @@ -577,114 +523,113 @@ void sub_02029FD0(UnkStruct_02029C68 *param0, const UnkStruct_ov22_02255040 *par GF_ASSERT(v0.x < 256); GF_ASSERT(v0.y < 256); GF_ASSERT(v1 > -128); - GF_ASSERT(!(param0->unk_3C & (1 << param2))); - GF_ASSERT(inline_02029CA8(param0)); + GF_ASSERT(!(photo->unk_3C & (1 << param2))); + GF_ASSERT(DressUpPhoto_IsValid(photo)); - sub_02029A18(¶m0->unk_48[param2], param1->unk_00, v0.x, v0.y, v1); + PhotoAccessory_SetData(&photo->accessories[param2], param1->unk_00, v0.x, v0.y, v1); - param0->unk_3C |= 1 << param2; + photo->unk_3C |= 1 << param2; } -void sub_0202A084(UnkStruct_02029C68 *param0, u8 param1) +void sub_0202A084(DressUpPhoto *photo, u8 param1) { - GF_ASSERT(inline_02029CA8(param0)); - param0->unk_70 = param1; + GF_ASSERT(DressUpPhoto_IsValid(photo)); + photo->unk_70 = param1; } -void sub_0202A0A0(UnkStruct_02029C68 *param0, u16 param1) +void DressUpPhoto_SetTitle(DressUpPhoto *photo, u16 word) { - GF_ASSERT(inline_02029CA8(param0)); + GF_ASSERT(DressUpPhoto_IsValid(photo)); - sub_02014A84(¶m0->unk_40); - sub_02014CF8(¶m0->unk_40, 0, param1); + sub_02014A84(&photo->title); + Sentence_SetWord(&photo->title, 0, word); } -void sub_0202A0CC(UnkStruct_02029C68 *param0, const UnkStruct_02029C68 *param1) +void DressUpPhoto_Copy(DressUpPhoto *dest, const DressUpPhoto *src) { - GF_ASSERT(inline_02029CA8(param0)); - memcpy(param0, param1, sizeof(UnkStruct_02029C68)); + GF_ASSERT(DressUpPhoto_IsValid(dest)); + memcpy(dest, src, sizeof(DressUpPhoto)); } -void sub_0202A0EC(UnkStruct_02029C68 *param0, const String *param1, int param2) +void DressUpPhoto_SetTrainerNameAndGender(DressUpPhoto *photo, const String *name, int gender) { - GF_ASSERT(inline_02029CA8(param0)); - sub_020299C0(¶m0->unk_04, param1, param2); + GF_ASSERT(DressUpPhoto_IsValid(photo)); + PhotoPokemon_SetTrainerNameAndGender(&photo->photoMon, name, gender); } -BOOL sub_0202A110(const UnkStruct_02029C68 *param0, int param1) +BOOL sub_0202A110(const DressUpPhoto *photo, int param1) { GF_ASSERT(param1 < (11 - 1)); - GF_ASSERT(inline_02029CA8(param0)); + GF_ASSERT(DressUpPhoto_IsValid(photo)); - return param0->unk_3C & (1 << param1); + return photo->unk_3C & (1 << param1); } -const UnkStruct_0202A138 *sub_0202A138(const UnkStruct_02029C68 *param0) +const PhotoPokemon *DressUpPhoto_GetPhotoMon(const DressUpPhoto *photo) { - GF_ASSERT(inline_02029CA8(param0)); - return ¶m0->unk_04; + GF_ASSERT(DressUpPhoto_IsValid(photo)); + return &photo->photoMon; } -const UnkStruct_0202A150 *sub_0202A150(const UnkStruct_02029C68 *param0, int param1) +const PhotoAccessory *sub_0202A150(const DressUpPhoto *photo, int param1) { GF_ASSERT(param1 < (11 - 1)); - GF_ASSERT(param0->unk_3C & (1 << param1)); - GF_ASSERT(inline_02029CA8(param0)); + GF_ASSERT(photo->unk_3C & (1 << param1)); + GF_ASSERT(DressUpPhoto_IsValid(photo)); - return ¶m0->unk_48[param1]; + return &photo->accessories[param1]; } -u16 sub_0202A184(const UnkStruct_02029C68 *param0) +u16 DressUpPhoto_GetMonSpecies(const DressUpPhoto *photo) { - GF_ASSERT(inline_02029CA8(param0)); - return sub_0202A5E8(¶m0->unk_04); + GF_ASSERT(DressUpPhoto_IsValid(photo)); + return PhotoPokemon_GetSpecies(&photo->photoMon); } -void sub_0202A1A0(const UnkStruct_02029C68 *param0, String *param1) +void DressUpPhoto_SetTrainerName(const DressUpPhoto *photo, String *name) { - GF_ASSERT(inline_02029CA8(param0)); - sub_0202A5EC(¶m0->unk_04, param1); + GF_ASSERT(DressUpPhoto_IsValid(photo)); + PhotoPokemon_SetTrainerName(&photo->photoMon, name); } -u32 sub_0202A1C0(const UnkStruct_02029C68 *param0) +u32 DressUpPhoto_GetTrainerGender(const DressUpPhoto *photo) { - GF_ASSERT(inline_02029CA8(param0)); - return sub_0202A5FC(¶m0->unk_04); + GF_ASSERT(DressUpPhoto_IsValid(photo)); + return PhotoPokemon_GetTrainerGender(&photo->photoMon); } -u8 sub_0202A1DC(const UnkStruct_02029C68 *param0) +u8 sub_0202A1DC(const DressUpPhoto *photo) { - GF_ASSERT(inline_02029CA8(param0)); - return param0->unk_70; + GF_ASSERT(DressUpPhoto_IsValid(photo)); + return photo->unk_70; } -u16 sub_0202A1F4(const UnkStruct_02029C68 *param0) +u16 DressUpPhoto_GetTitleWord(const DressUpPhoto *photo) { - u16 v0 = sub_02014C78(¶m0->unk_40, 0); - return v0; + return Sentence_GetWord(&photo->title, 0); } -u8 sub_0202A200(const UnkStruct_02029C68 *param0) +u8 DressUpPhoto_GetLanguage(const DressUpPhoto *photo) { - GF_ASSERT(inline_02029CA8(param0)); - return param0->unk_71; + GF_ASSERT(DressUpPhoto_IsValid(photo)); + return photo->language; } BOOL sub_0202A218(const UnkStruct_02029C88 *param0) { GF_ASSERT(inline_02029CD0(param0)); - if (param0->unk_00 == 0x2345) { - return 1; + if (param0->integrity == PHOTO_FULL_MAGIC) { + return TRUE; } - return 0; + return FALSE; } void sub_0202A240(UnkStruct_02029C88 *param0) { GF_ASSERT(inline_02029CD0(param0)); - param0->unk_00 = 0x2345; + param0->integrity = PHOTO_FULL_MAGIC; } void sub_0202A25C(UnkStruct_02029C88 *param0) @@ -696,7 +641,7 @@ void sub_0202A25C(UnkStruct_02029C88 *param0) void sub_0202A284(UnkStruct_02029C88 *param0, Pokemon *param1, UnkStruct_020298D8 *param2) { GF_ASSERT(inline_02029CD0(param0)); - sub_02029990(¶m0->unk_08, param1, param2); + sub_02029990(¶m0->photoMon, param1, param2); } void sub_0202A2A8(UnkStruct_02029C88 *param0, const UnkStruct_ov22_02255040 *param1, int param2) @@ -711,7 +656,7 @@ void sub_0202A2A8(UnkStruct_02029C88 *param0, const UnkStruct_ov22_02255040 *par GF_ASSERT(!(param0->unk_40 & (1 << param2))); GF_ASSERT(inline_02029CD0(param0)); - sub_02029A18(¶m0->unk_44[param2], param1->unk_00, v0.x, v0.y, v1); + PhotoAccessory_SetData(¶m0->accessories[param2], param1->unk_00, v0.x, v0.y, v1); param0->unk_40 |= 1 << param2; } @@ -734,32 +679,32 @@ void sub_0202A390(UnkStruct_02029C88 *param0, const UnkStruct_02029C88 *param1) memcpy(param0, param1, sizeof(UnkStruct_02029C88)); } -void sub_0202A3B0(UnkStruct_02029C88 *param0, Pokemon *param1, s8 param2) +void sub_0202A3B0(UnkStruct_02029C88 *param0, Pokemon *mon, s8 priority) { - u8 v0; - u8 v1; + u8 xPos; + u8 yPos; GF_ASSERT(inline_02029CD0(param0)); - sub_02029BD8(param1, &v0, &v1); - sub_0202992C(¶m0->unk_08, param1, v0, v1, param2); + GetMonXYPositions(mon, &xPos, &yPos); + PhotoPokemon_SetDataFromMon(¶m0->photoMon, mon, xPos, yPos, priority); } -void sub_0202A3EC(UnkStruct_02029C88 *param0, u32 param1, u8 param2, u8 param3, u8 param4, s8 param5) +void sub_0202A3EC(UnkStruct_02029C88 *param0, u32 param1, u8 param2, u8 xPos, u8 yPos, s8 priority) { GF_ASSERT(param1 < (21 - 1)); GF_ASSERT(param2 < 100); - GF_ASSERT(param3 < 256); - GF_ASSERT(param4 < 256); - GF_ASSERT(param5 > -128); + GF_ASSERT(xPos < 256); + GF_ASSERT(yPos < 256); + GF_ASSERT(priority > -128); GF_ASSERT(!(param0->unk_40 & (1 << param1))); GF_ASSERT(inline_02029CD0(param0)); - if (param0->unk_08.unk_30 >= param5) { - param5 = param0->unk_08.unk_30 + 1; + if (param0->photoMon.priority >= priority) { + priority = param0->photoMon.priority + 1; } - sub_02029A18(¶m0->unk_44[param1], param2, param3, param4, param5); + PhotoAccessory_SetData(¶m0->accessories[param1], param2, xPos, yPos, priority); param0->unk_40 |= 1 << param1; } @@ -775,43 +720,43 @@ BOOL sub_0202A488(const UnkStruct_02029C88 *param0, int param1) return 0; } -void sub_0202A4B4(UnkStruct_02029C88 *param0, const String *param1, int param2) +void sub_0202A4B4(UnkStruct_02029C88 *param0, const String *name, int gender) { GF_ASSERT(inline_02029CD0(param0)); - sub_020299C0(¶m0->unk_08, param1, param2); + PhotoPokemon_SetTrainerNameAndGender(¶m0->photoMon, name, gender); } -const UnkStruct_0202A138 *sub_0202A4D8(const UnkStruct_02029C88 *param0) +const PhotoPokemon *sub_0202A4D8(const UnkStruct_02029C88 *param0) { GF_ASSERT(inline_02029CD0(param0)); - return ¶m0->unk_08; + return ¶m0->photoMon; } -const UnkStruct_0202A150 *sub_0202A4F0(const UnkStruct_02029C88 *param0, int param1) +const PhotoAccessory *sub_0202A4F0(const UnkStruct_02029C88 *param0, int param1) { GF_ASSERT(param1 < (21 - 1)); GF_ASSERT(param0->unk_40 & (1 << param1)); GF_ASSERT(inline_02029CD0(param0)); - return ¶m0->unk_44[param1]; + return ¶m0->accessories[param1]; } void sub_0202A524(const UnkStruct_02029C88 *param0, String *param1) { GF_ASSERT(inline_02029CD0(param0)); - sub_0202A5EC(¶m0->unk_08, param1); + PhotoPokemon_SetTrainerName(¶m0->photoMon, param1); } u32 sub_0202A544(const UnkStruct_02029C88 *param0) { GF_ASSERT(inline_02029CD0(param0)); - return sub_0202A5FC(¶m0->unk_08); + return PhotoPokemon_GetTrainerGender(¶m0->photoMon); } void sub_0202A560(const UnkStruct_02029C88 *param0, Pokemon *param1) { GF_ASSERT(inline_02029CD0(param0)); - sub_020299D8(¶m0->unk_08, param1); + PhotoPokemon_CopyToPokemonInternal(¶m0->photoMon, param1); } u8 sub_0202A580(const UnkStruct_02029C88 *param0, int param1) @@ -820,7 +765,7 @@ u8 sub_0202A580(const UnkStruct_02029C88 *param0, int param1) GF_ASSERT(param0->unk_40 & (1 << param1)); GF_ASSERT(inline_02029CD0(param0)); - return sub_0202A624(¶m0->unk_44[param1]); + return sub_0202A624(¶m0->accessories[param1]); } u8 sub_0202A5B8(const UnkStruct_02029C88 *param0) @@ -835,77 +780,77 @@ u32 sub_0202A5D0(const UnkStruct_02029C88 *param0) return param0->unk_04; } -u16 sub_0202A5E8(const UnkStruct_0202A138 *param0) +u16 PhotoPokemon_GetSpecies(const PhotoPokemon *photoMon) { - return param0->unk_08; + return photoMon->species; } -void sub_0202A5EC(const UnkStruct_0202A138 *param0, String *param1) +void PhotoPokemon_SetTrainerName(const PhotoPokemon *photoMon, String *name) { - String_CopyChars(param1, param0->unk_20); + String_CopyChars(name, photoMon->trainerName); } -u32 sub_0202A5FC(const UnkStruct_0202A138 *param0) +u32 PhotoPokemon_GetTrainerGender(const PhotoPokemon *photoMon) { - return param0->unk_34; + return photoMon->trainerGender; } -s8 sub_0202A604(const UnkStruct_0202A138 *param0) +s8 PhotoPokemon_GetPriority(const PhotoPokemon *photoMon) { - return param0->unk_30; + return photoMon->priority; } -u8 sub_0202A60C(const UnkStruct_0202A138 *param0) +u8 PhotoPokemon_GetXPos(const PhotoPokemon *photoMon) { - return param0->unk_31; + return photoMon->xPos; } -u8 sub_0202A614(const UnkStruct_0202A138 *param0) +u8 PhotoPokemon_GetYPos(const PhotoPokemon *photoMon) { - return param0->unk_32; + return photoMon->yPos; } -void sub_0202A61C(const UnkStruct_0202A138 *param0, Pokemon *param1) +void PhotoPokemon_CopyToPokemon(const PhotoPokemon *photoMon, Pokemon *mon) { - sub_020299D8(param0, param1); + PhotoPokemon_CopyToPokemonInternal(photoMon, mon); } -u8 sub_0202A624(const UnkStruct_0202A150 *param0) +u8 sub_0202A624(const PhotoAccessory *accessory) { - return param0->unk_00; + return accessory->unk_00; } -u8 sub_0202A628(const UnkStruct_0202A150 *param0) +u8 PhotoAccessory_GetXPos(const PhotoAccessory *accessory) { - return param0->unk_01; + return accessory->xPos; } -u8 sub_0202A62C(const UnkStruct_0202A150 *param0) +u8 PhotoAccessory_GetYPos(const PhotoAccessory *accessory) { - return param0->unk_02; + return accessory->yPos; } -s8 sub_0202A630(const UnkStruct_0202A150 *param0) +s8 PhotoAccessory_GetPriority(const PhotoAccessory *accessory) { - return param0->unk_03; + return accessory->priority; } -static BOOL sub_0202A638(UnkStruct_0202A750 *param0, const UnkStruct_02029C68 *param1) +static BOOL sub_0202A638(ImageClips *imageClips, const DressUpPhoto *photo) { - int v0; + int i; const void *v1; u32 v2, v3; MATHCRC32Table v4; BOOL v5 = 1; - if (sub_02029F34(param1) == 1) { + if (DressUpPhoto_HasData(photo) == TRUE) { MATH_CRC32InitTable(&v4); - v2 = MATH_CalcCRC32(&v4, param1, sizeof(UnkStruct_02029C68)); + v2 = MATH_CalcCRC32(&v4, photo, sizeof(DressUpPhoto)); - for (v0 = 0; v0 < 11; v0++) { - v1 = sub_02029CA8(param0, v0); + for (i = 0; i < SAVED_PHOTOS_COUNT; i++) { + v1 = ImageClips_GetDressUpPhoto(imageClips, i); MATH_CRC32InitTable(&v4); - v3 = MATH_CalcCRC32(&v4, v1, sizeof(UnkStruct_02029C68)); + v3 = MATH_CalcCRC32(&v4, v1, sizeof(DressUpPhoto)); if (v3 == v2) { v5 = 0; @@ -919,11 +864,11 @@ static BOOL sub_0202A638(UnkStruct_0202A750 *param0, const UnkStruct_02029C68 *p return v5; } -void sub_0202A6A8(u8 param0, int param1, UnkStruct_0202A750 *param2, const void **param3) +void sub_0202A6A8(u8 param0, int param1, ImageClips *imageClips, const void **param3) { int v0; - UnkStruct_02029C68 *v1; - const UnkStruct_02029C68 *v2; + DressUpPhoto *v1; + const DressUpPhoto *v2; int v3; int v4; @@ -937,7 +882,7 @@ void sub_0202A6A8(u8 param0, int param1, UnkStruct_0202A750 *param2, const void if (param3[v3] != NULL) { v2 = param3[v3]; - if (sub_0202A638(param2, v2) == 1) { + if (sub_0202A638(imageClips, v2) == 1) { v0++; } } @@ -945,10 +890,10 @@ void sub_0202A6A8(u8 param0, int param1, UnkStruct_0202A750 *param2, const void for (v3 = 11 - 1; v3 >= 1; v3--) { if (v3 + v0 < 11) { - v1 = sub_02029CA8(param2, v3 + v0); - v2 = sub_02029CA8(param2, v3); + v1 = ImageClips_GetDressUpPhoto(imageClips, v3 + v0); + v2 = ImageClips_GetDressUpPhoto(imageClips, v3); - sub_0202A0CC(v1, v2); + DressUpPhoto_Copy(v1, v2); } } @@ -962,92 +907,88 @@ void sub_0202A6A8(u8 param0, int param1, UnkStruct_0202A750 *param2, const void if (param3[v3] != NULL) { v2 = param3[v3]; - if (sub_0202A638(param2, v2) == 1) { - v1 = sub_02029CA8(param2, v4); + if (sub_0202A638(imageClips, v2) == 1) { + v1 = ImageClips_GetDressUpPhoto(imageClips, v4); v4++; - sub_0202A0CC(v1, v2); + DressUpPhoto_Copy(v1, v2); } } } } -UnkStruct_0202A750 *sub_0202A750(SaveData *saveData) +ImageClips *SaveData_GetImageClips(SaveData *saveData) { return SaveData_SaveTable(saveData, SAVE_TABLE_ENTRY_IMAGE_CLIPS); } -void sub_0202A75C(const UnkStruct_02029C68 *param0, UnkStruct_ov61_0222AE80 *param1) +void sub_0202A75C(const DressUpPhoto *photo, UnkStruct_ov61_0222AE80 *param1) { - int v0; + int i; MI_CpuClear8(param1, sizeof(UnkStruct_ov61_0222AE80)); - param1->unk_00 = param0->unk_00; + param1->integrity = photo->integrity; - { - param1->unk_04.unk_00 = param0->unk_04.unk_00; - param1->unk_04.unk_04 = param0->unk_04.unk_04; - param1->unk_04.unk_08 = param0->unk_04.unk_08; + param1->unk_04.personality = photo->photoMon.personality; + param1->unk_04.otID = photo->photoMon.otID; + param1->unk_04.species = photo->photoMon.species; - for (v0 = 0; v0 < 8; v0++) { - param1->unk_04.unk_0A[v0] = param0->unk_04.unk_20[v0]; - } - - param1->unk_04.unk_1A = param0->unk_04.unk_30; - param1->unk_04.unk_1B = param0->unk_04.unk_31; - param1->unk_04.unk_1C = param0->unk_04.unk_32; - param1->unk_04.unk_1D = param0->unk_04.unk_33; + for (i = 0; i < TRAINER_NAME_LEN + 1; i++) { + param1->unk_04.trainerName[i] = photo->photoMon.trainerName[i]; } - param1->unk_24 = param0->unk_3C; - param1->unk_28 = *((UnkStruct_ov61_0222BED8_sub2_sub1_sub1_sub1 *)(¶m0->unk_40)); + param1->unk_04.priority = photo->photoMon.priority; + param1->unk_04.xPos = photo->photoMon.xPos; + param1->unk_04.yPos = photo->photoMon.yPos; + param1->unk_04.form = photo->photoMon.form; - for (v0 = 0; v0 < (11 - 1); v0++) { - param1->unk_30[v0] = *((UnkStruct_ov61_0222AE80_sub2 *)(¶m0->unk_48[v0])); + param1->unk_24 = photo->unk_3C; + param1->title = photo->title; + + for (i = 0; i < (11 - 1); i++) { + param1->unk_30[i] = *((UnkStruct_ov61_0222AE80_sub2 *)(&photo->accessories[i])); } - param1->unk_58 = param0->unk_70; - param1->unk_59 = param0->unk_71; + param1->unk_58 = photo->unk_70; + param1->unk_59 = photo->language; } -void sub_0202A824(const UnkStruct_ov61_0222AE80 *param0, UnkStruct_02029C68 *param1) +void sub_0202A824(const UnkStruct_ov61_0222AE80 *param0, DressUpPhoto *photo) { int v0; - int v1; + int i; - v0 = sub_02029C60(); - MI_CpuClear8(param1, v0); + v0 = DressUpPhoto_Size(); + MI_CpuClear8(photo, v0); - param1->unk_00 = param0->unk_00; + photo->integrity = param0->integrity; - { - param1->unk_04.unk_00 = param0->unk_04.unk_00; - param1->unk_04.unk_04 = param0->unk_04.unk_04; - param1->unk_04.unk_08 = param0->unk_04.unk_08; + photo->photoMon.personality = param0->unk_04.personality; + photo->photoMon.otID = param0->unk_04.otID; + photo->photoMon.species = param0->unk_04.species; - for (v1 = 0; v1 < 8; v1++) { - param1->unk_04.unk_20[v1] = param0->unk_04.unk_0A[v1]; - } - - param1->unk_04.unk_30 = param0->unk_04.unk_1A; - param1->unk_04.unk_31 = param0->unk_04.unk_1B; - param1->unk_04.unk_32 = param0->unk_04.unk_1C; - param1->unk_04.unk_33 = param0->unk_04.unk_1D; + for (i = 0; i < TRAINER_NAME_LEN + 1; i++) { + photo->photoMon.trainerName[i] = param0->unk_04.trainerName[i]; } - param1->unk_3C = param0->unk_24; - param1->unk_40 = *((Sentence *)(¶m0->unk_28)); + photo->photoMon.priority = param0->unk_04.priority; + photo->photoMon.xPos = param0->unk_04.xPos; + photo->photoMon.yPos = param0->unk_04.yPos; + photo->photoMon.form = param0->unk_04.form; - for (v1 = 0; v1 < (11 - 1); v1++) { - param1->unk_48[v1] = *((UnkStruct_0202A150 *)(¶m0->unk_30[v1])); + photo->unk_3C = param0->unk_24; + photo->title = *((Sentence *)(¶m0->title)); + + for (i = 0; i < (11 - 1); i++) { + photo->accessories[i] = *((PhotoAccessory *)(¶m0->unk_30[i])); } - param1->unk_70 = param0->unk_58; - param1->unk_71 = param0->unk_59; + photo->unk_70 = param0->unk_58; + photo->language = param0->unk_59; - for (v1 = 0; v1 < 11; v1++) { - param1->unk_04.unk_0A[v1] = 0xffff; + for (i = 0; i < MON_NAME_LEN + 1; i++) { + photo->photoMon.nickname[i] = CHAR_EOS; } - param1->unk_04.unk_34 = 0; + photo->photoMon.trainerGender = 0; } diff --git a/src/unk_0203D1B8.c b/src/unk_0203D1B8.c index b36c11a587..6ddc27285a 100644 --- a/src/unk_0203D1B8.c +++ b/src/unk_0203D1B8.c @@ -8,13 +8,12 @@ #include "generated/pokemon_contest_types.h" #include "generated/trainer_score_events.h" -#include "struct_decls/struct_02029C68_decl.h" -#include "struct_decls/struct_02029D04_decl.h" -#include "struct_decls/struct_0202A750_decl.h" #include "struct_decls/struct_0209747C_decl.h" #include "struct_defs/choose_starter_data.h" #include "struct_defs/clear_game_player_info.h" +#include "struct_defs/dress_up_photo.h" #include "struct_defs/gts_player_data.h" +#include "struct_defs/image_clips.h" #include "struct_defs/struct_0203DA00.h" #include "struct_defs/struct_0203DDFC.h" #include "struct_defs/struct_0203DE34.h" @@ -822,9 +821,9 @@ static UnkStruct_0203DA00 *sub_0203DA00(enum HeapID heapID, SaveData *saveData, UnkStruct_0203DA00 *v0; Pokemon *v1; int v2; - UnkStruct_0202A750 *v3; - UnkStruct_02029C68 *v4; - UnkStruct_02029D04 *v5; + ImageClips *imageClips; + DressUpPhoto *photo; + FashionCase *fashionCase; v0 = Heap_Alloc(heapID, sizeof(UnkStruct_0203DA00)); memset(v0, 0, sizeof(UnkStruct_0203DA00)); @@ -832,12 +831,12 @@ static UnkStruct_0203DA00 *sub_0203DA00(enum HeapID heapID, SaveData *saveData, v0->unk_00 = v1; - v3 = sub_0202A750(saveData); - v4 = sub_02029CA8(v3, 0); - v5 = sub_02029D04(v3); + imageClips = SaveData_GetImageClips(saveData); + photo = ImageClips_GetDressUpPhoto(imageClips, 0); + fashionCase = ImageClips_GetFashionCase(imageClips); - v0->unk_04 = v4; - v0->unk_08 = v5; + v0->photo = photo; + v0->fashionCase = fashionCase; v0->options = SaveData_GetOptions(saveData); v0->records = SaveData_GetGameRecords(saveData); v0->unk_14 = SaveData_GetTrainerInfo(saveData); diff --git a/src/unk_02046C7C.c b/src/unk_02046C7C.c index 73e977c621..caf1740585 100644 --- a/src/unk_02046C7C.c +++ b/src/unk_02046C7C.c @@ -79,7 +79,7 @@ BOOL ScrCmd_0FA(ScriptContext *param0) v8.unk_08 = v1; v8.unk_0C = v0; v8.unk_10 = v3; - v8.unk_14 = sub_0202A750(param0->fieldSystem->saveData); + v8.imageClips = SaveData_GetImageClips(param0->fieldSystem->saveData); v8.options = SaveData_GetOptions(param0->fieldSystem->saveData); v8.saveData = param0->fieldSystem->saveData; v8.unk_20 = SaveData_GetChatotCry(param0->fieldSystem->saveData); diff --git a/src/unk_0205B33C.c b/src/unk_0205B33C.c index c3e2f4fbb5..ce9815eb06 100644 --- a/src/unk_0205B33C.c +++ b/src/unk_0205B33C.c @@ -1226,7 +1226,7 @@ int sub_0205BF44(UnkStruct_0205B43C *param0, StringTemplate *param1) v2 = 0; } - if ((v3 = sub_02014C78(¶m0->unk_178, 0)) != 0xffff) { + if ((v3 = Sentence_GetWord(¶m0->unk_178, 0)) != 0xffff) { StringTemplate_SetCustomMessageWord(param1, 0, v3); } diff --git a/src/unk_020933F8.c b/src/unk_020933F8.c index 837901021a..927fb7ba99 100644 --- a/src/unk_020933F8.c +++ b/src/unk_020933F8.c @@ -4,15 +4,15 @@ #include #include "constants/heap.h" +#include "generated/accessories.h" #include "generated/game_records.h" #include "generated/pokemon_contest_ranks.h" #include "generated/trainer_score_events.h" #include "struct_decls/pokedexdata_decl.h" #include "struct_decls/struct_0202440C_decl.h" -#include "struct_decls/struct_02029C88_decl.h" -#include "struct_decls/struct_02029D04_decl.h" -#include "struct_decls/struct_0202A750_decl.h" +#include "struct_defs/image_clips.h" +#include "struct_defs/struct_02029C88.h" #include "struct_defs/struct_02093800.h" #include "struct_defs/struct_02093BBC.h" #include "struct_defs/struct_02094A58.h" @@ -411,15 +411,15 @@ UnkStruct_02095C48 *sub_02093800(const UnkStruct_02093800 *param0) sub_02094E7C(v0); - v0->unk_00.unk_10F = param0->unk_00; - v0->unk_00.unk_110 = param0->unk_01; + v0->unk_00.contestType = param0->unk_00; + v0->unk_00.contestRank = param0->unk_01; v0->unk_00.unk_111 = param0->unk_02; v0->unk_00.unk_112 = sub_02095A74(param0->unk_01, 0); v0->unk_00.unk_10C = v0->unk_00.unk_113; v0->unk_00.unk_115 = 110; v0->unk_00.unk_10D = v0->unk_00.unk_115; v0->unk_00.unk_10E = 1; - v0->unk_1980 = param0->unk_14; + v0->imageClips = param0->imageClips; v0->options = param0->options; v0->saveData = param0->saveData; v0->unk_1974 = param0->unk_08; @@ -432,7 +432,7 @@ UnkStruct_02095C48 *sub_02093800(const UnkStruct_02093800 *param0) v0->unk_00.unk_E8[v2] = sub_02029C88(HEAP_ID_20); } - sub_020954F0(v0, HEAP_ID_FIELD2, v0->unk_00.unk_10E, v0->unk_00.unk_10F, v0->unk_00.unk_110); + sub_020954F0(v0, HEAP_ID_FIELD2, v0->unk_00.unk_10E, v0->unk_00.contestType, v0->unk_00.contestRank); v0->unk_148 = Party_New(HEAP_ID_20); for (v2 = 0; v2 < 4; v2++) { @@ -452,7 +452,7 @@ UnkStruct_02095C48 *sub_02093800(const UnkStruct_02093800 *param0) v0->unk_00.unk_F8[0] = TrainerInfo_Gender(param0->unk_10); v0->unk_00.unk_FC[0] = 0; - v0->unk_00.unk_100[0] = sub_02093B2C(v0->unk_00.unk_00[0], v0->unk_00.unk_10F); + v0->unk_00.unk_100[0] = sub_02093B2C(v0->unk_00.unk_00[0], v0->unk_00.contestType); if (sub_0209590C(v0) == 0) { if (TrainerInfo_Gender(param0->unk_10) == 0) { @@ -489,7 +489,7 @@ static void sub_020939E0(UnkStruct_02095C48 *param0, int param1, int param2) int v0 = 4 - 1; int v1; - sub_02094F04(param0, HEAP_ID_FIELD2, v0, param0->unk_00.unk_10F, param0->unk_00.unk_110, param0->unk_00.unk_111, param1, param2); + sub_02094F04(param0, HEAP_ID_FIELD2, v0, param0->unk_00.contestType, param0->unk_00.contestRank, param0->unk_00.unk_111, param1, param2); for (v1 = 1; v1 < 4; v1++) { sub_02095380(¶m0->unk_00.unk_10[v1], param0->unk_00.unk_00[v1], HEAP_ID_20); @@ -594,12 +594,12 @@ void sub_02093BBC(UnkStruct_02095C48 *param0) if (param0->isLinkContest == TRUE) { v0->unk_0C = CONTEST_RANK_LINK; } else { - v0->unk_0C = param0->unk_00.unk_110; + v0->unk_0C = param0->unk_00.contestRank; } v0->unk_10 = param0->unk_00.unk_111; - v0->unk_14 = param0->unk_00.unk_10F; - v0->unk_18 = sub_02029D04(param0->unk_1980); + v0->unk_14 = param0->unk_00.contestType; + v0->fashionCase = ImageClips_GetFashionCase(param0->imageClips); v0->unk_1C = ¶m0->unk_1984; v0->options = param0->options; v0->unk_24 = param0->unk_1978; @@ -1031,7 +1031,7 @@ BOOL sub_020943B0(UnkStruct_02095C48 *param0) param0->unk_00.unk_117 = connectionCount; param0->unk_00.unk_113 = netID; param0->unk_00.unk_115 = 110; - param0->unk_00.unk_112 = sub_02095A74(param0->unk_00.unk_110, TRUE); + param0->unk_00.unk_112 = sub_02095A74(param0->unk_00.contestRank, TRUE); sub_02095AF0(param0); @@ -1145,13 +1145,13 @@ void sub_02094680(UnkStruct_02095C48 *param0, int param1, StringTemplate *param2 void sub_020946A4(UnkStruct_02095C48 *param0, StringTemplate *param1, u32 param2) { - u32 v0 = sub_02095848(param0->unk_00.unk_110, param0->unk_00.unk_111, param0->isLinkContest); + u32 v0 = sub_02095848(param0->unk_00.contestRank, param0->unk_00.unk_111, param0->isLinkContest); StringTemplate_SetContestRankName(param1, param2, v0); } void sub_020946CC(UnkStruct_02095C48 *param0, StringTemplate *param1, u32 param2) { - u32 v0 = sub_020958C4(param0->unk_00.unk_10F, param0->unk_00.unk_111); + u32 v0 = sub_020958C4(param0->unk_00.contestType, param0->unk_00.unk_111); StringTemplate_SetContestTypeName(param1, param2, v0); } @@ -1280,8 +1280,8 @@ int sub_02094804(UnkStruct_02095C48 *param0) void sub_02094828(UnkStruct_02095C48 *param0, u16 *param1, u16 *param2, u16 *param3, u16 *param4) { - *param1 = param0->unk_00.unk_110; - *param2 = param0->unk_00.unk_10F; + *param1 = param0->unk_00.contestRank; + *param2 = param0->unk_00.contestType; *param3 = param0->unk_00.unk_111; *param4 = param0->unk_197C; } @@ -1298,7 +1298,7 @@ void sub_02094860(UnkStruct_02095C48 *param0) BOOL sub_02094868(UnkStruct_02095C48 *param0) { - u32 v0 = CalcMonDataRibbon(param0->unk_00.unk_110, param0->unk_00.unk_10F); + u32 v0 = CalcMonDataRibbon(param0->unk_00.contestRank, param0->unk_00.contestType); if (Pokemon_GetValue(param0->unk_1974, v0, NULL) == 0) { return 0; @@ -1311,21 +1311,21 @@ void sub_02094898(UnkStruct_02095C48 *param0, StringTemplate *param1, u32 param2 { u32 v0, v1; - switch (param0->unk_00.unk_10F) { + switch (param0->unk_00.contestType) { case 0: - v0 = 33 + param0->unk_00.unk_110; + v0 = 33 + param0->unk_00.contestRank; break; case 1: - v0 = 37 + param0->unk_00.unk_110; + v0 = 37 + param0->unk_00.contestRank; break; case 2: - v0 = 41 + param0->unk_00.unk_110; + v0 = 41 + param0->unk_00.contestRank; break; case 3: - v0 = 45 + param0->unk_00.unk_110; + v0 = 45 + param0->unk_00.contestRank; break; case 4: - v0 = 49 + param0->unk_00.unk_110; + v0 = 49 + param0->unk_00.contestRank; break; default: GF_ASSERT(0); @@ -1338,110 +1338,105 @@ void sub_02094898(UnkStruct_02095C48 *param0, StringTemplate *param1, u32 param2 u32 sub_02094904(UnkStruct_02095C48 *param0) { - u32 v0 = 100; + u32 accessoryID = ACCESSORY_COUNT; if (param0->unk_00.unk_118[param0->unk_00.unk_113].unk_08 > 0) { return 0xffff; } - switch (param0->unk_00.unk_10F) { - case 0: - switch (param0->unk_00.unk_110) { - case 0: - v0 = 73; + switch (param0->unk_00.contestType) { + case CONTEST_TYPE_COOL: + switch (param0->unk_00.contestRank) { + case CONTEST_RANK_NORMAL: + accessoryID = ACCESSORY_RED_BARRETTE; break; - case 1: - v0 = 78; + case CONTEST_RANK_GREAT: + accessoryID = ACCESSORY_RED_BALLOONS; break; - case 2: - v0 = 83; + case CONTEST_RANK_ULTRA: + accessoryID = ACCESSORY_TOP_HAT; break; - case 3: - v0 = 88; + case CONTEST_RANK_MASTER: + accessoryID = ACCESSORY_GOLD_PEDESTAL; break; } break; - case 1: - switch (param0->unk_00.unk_110) { - case 0: - v0 = 74; + case CONTEST_TYPE_BEAUTY: + switch (param0->unk_00.contestRank) { + case CONTEST_RANK_NORMAL: + accessoryID = ACCESSORY_BLUE_BARRETTE; break; - case 1: - v0 = 79; + case CONTEST_RANK_GREAT: + accessoryID = ACCESSORY_BLUE_BALLOONS; break; - case 2: - v0 = 84; + case CONTEST_RANK_ULTRA: + accessoryID = ACCESSORY_SILK_VEIL; break; - case 3: - v0 = 89; + case CONTEST_RANK_MASTER: + accessoryID = ACCESSORY_GLASS_STAGE; break; } break; - case 2: - switch (param0->unk_00.unk_110) { - case 0: - v0 = 72; + case CONTEST_TYPE_CUTE: + switch (param0->unk_00.contestRank) { + case CONTEST_RANK_NORMAL: + accessoryID = ACCESSORY_PINK_BARRETTE; break; - case 1: - v0 = 77; + case CONTEST_RANK_GREAT: + accessoryID = ACCESSORY_PINK_BALLOON; break; - case 2: - v0 = 82; + case CONTEST_RANK_ULTRA: + accessoryID = ACCESSORY_LACE_HEADDRESS; break; - case 3: - v0 = 87; + case CONTEST_RANK_MASTER: + accessoryID = ACCESSORY_FLOWER_STAGE; break; } break; - case 3: - switch (param0->unk_00.unk_110) { - case 0: - v0 = 76; + case CONTEST_TYPE_SMART: + switch (param0->unk_00.contestRank) { + case CONTEST_RANK_NORMAL: + accessoryID = ACCESSORY_GREEN_BARRETTE; break; - case 1: - v0 = 81; + case CONTEST_RANK_GREAT: + accessoryID = ACCESSORY_GREEN_BALLOONS; break; - case 2: - v0 = 86; + case CONTEST_RANK_ULTRA: + accessoryID = ACCESSORY_PROFESSOR_HAT; break; - case 3: - v0 = 91; + case CONTEST_RANK_MASTER: + accessoryID = ACCESSORY_CUBE_STAGE; break; } break; - case 4: - switch (param0->unk_00.unk_110) { - case 0: - v0 = 75; + case CONTEST_TYPE_TOUGH: + switch (param0->unk_00.contestRank) { + case CONTEST_RANK_NORMAL: + accessoryID = ACCESSORY_YELLOW_BARRETTE; break; - case 1: - v0 = 80; + case CONTEST_RANK_GREAT: + accessoryID = ACCESSORY_YELLOW_BALLOONS; break; - case 2: - v0 = 85; + case CONTEST_RANK_ULTRA: + accessoryID = ACCESSORY_HEROIC_HEADBAND; break; - case 3: - v0 = 90; + case CONTEST_RANK_MASTER: + accessoryID = ACCESSORY_AWARD_PODIUM; break; } break; } - GF_ASSERT(v0 != 100); + GF_ASSERT(accessoryID != ACCESSORY_COUNT); - { - UnkStruct_0202A750 *v1; - UnkStruct_02029D04 *v2; + ImageClips *imageClips = SaveData_GetImageClips(param0->saveData); + FashionCase *fashionCase = ImageClips_GetFashionCase(imageClips); - v1 = sub_0202A750(param0->saveData); - v2 = sub_02029D04(v1); - - if (sub_02029D50(v2, v0, 1) == 0) { - return 0xffff; - } + if (!FashionCase_CanFitAccessoryCount(fashionCase, accessoryID, 1)) { + return 0xffff; } - return v0; + return accessoryID; } void sub_02094A58(UnkStruct_02095C48 *param0, int param1) @@ -1462,7 +1457,7 @@ void sub_02094A58(UnkStruct_02095C48 *param0, int param1) if (param0->isLinkContest == TRUE) { v0->unk_04 = Unk_020F55D0[v1]; } else { - switch (param0->unk_00.unk_110) { + switch (param0->unk_00.contestRank) { case CONTEST_RANK_NORMAL: v0->unk_04 = Unk_020F55B4[v1]; break; @@ -1581,14 +1576,14 @@ void sub_02094C44(UnkStruct_02095C48 *param0, SaveData *saveData, u32 param2, Jo if (param0->isLinkContest == FALSE) { VarsFlags *v1 = SaveData_GetVarsFlags(param0->saveData); - if (param0->unk_00.unk_111 == 2 && param0->unk_00.unk_110 >= 3 && sub_02094790(param0) == 0 - && SystemFlag_CheckContestMaster(v1, param0->unk_00.unk_10F) == 0) { - SystemFlag_SetContestMaster(v1, param0->unk_00.unk_10F); + if (param0->unk_00.unk_111 == 2 && param0->unk_00.contestRank >= 3 && sub_02094790(param0) == 0 + && SystemFlag_CheckContestMaster(v1, param0->unk_00.contestType) == 0) { + SystemFlag_SetContestMaster(v1, param0->unk_00.contestType); } if (sub_02094790(param0) == 0) { u8 v3 = 1; - int v2 = CalcMonDataRibbon(param0->unk_00.unk_110, param0->unk_00.unk_10F); + int v2 = CalcMonDataRibbon(param0->unk_00.contestRank, param0->unk_00.contestType); if (Pokemon_GetValue(param0->unk_1974, v2, NULL) == 0) { v0 = 1; @@ -1599,7 +1594,7 @@ void sub_02094C44(UnkStruct_02095C48 *param0, SaveData *saveData, u32 param2, Jo } TVBroadcast *broadcast = SaveData_GetTVBroadcast(param0->saveData); - sub_0206CF14(broadcast, param0->unk_1974, param0->unk_00.unk_10F, param0->unk_00.unk_110, param0->unk_00.unk_118[param0->unk_00.unk_113].unk_08 + 1); + sub_0206CF14(broadcast, param0->unk_1974, param0->unk_00.contestType, param0->unk_00.contestRank, param0->unk_00.unk_118[param0->unk_00.unk_113].unk_08 + 1); GameRecords *v5 = SaveData_GetGameRecords(param0->saveData); GameRecords_IncrementRecordValue(v5, RECORD_UNK_090); @@ -1620,7 +1615,7 @@ void sub_02094C44(UnkStruct_02095C48 *param0, SaveData *saveData, u32 param2, Jo Pokedex_Encounter(pokedex, param0->unk_00.unk_00[i]); } } else { - LinkContestRecords_IncrementSavaData(param0->saveData, param0->unk_00.unk_10F, param0->unk_00.unk_118[param0->unk_00.unk_113].unk_08); + LinkContestRecords_IncrementSavaData(param0->saveData, param0->unk_00.contestType, param0->unk_00.unk_118[param0->unk_00.unk_113].unk_08); GameRecords *records = SaveData_GetGameRecords(param0->saveData); GameRecords_IncrementRecordValue(records, RECORD_UNK_091); @@ -1637,8 +1632,8 @@ void sub_02094C44(UnkStruct_02095C48 *param0, SaveData *saveData, u32 param2, Jo } if (sub_02094790(param0) == 0) { - UnkStruct_0202A750 *v11 = sub_0202A750(param0->saveData); - UnkStruct_02029C88 *v12 = sub_02029CD0(v11, param0->unk_00.unk_10F); + ImageClips *imageClips = SaveData_GetImageClips(param0->saveData); + UnkStruct_02029C88 *v12 = sub_02029CD0(imageClips, param0->unk_00.contestType); sub_0202A25C(v12); sub_0202A390(v12, param0->unk_00.unk_E8[param0->unk_00.unk_113]); diff --git a/src/unk_02094EDC.c b/src/unk_02094EDC.c index 5ac6e98a98..b07d4b234f 100644 --- a/src/unk_02094EDC.c +++ b/src/unk_02094EDC.c @@ -606,7 +606,7 @@ void sub_020951B0(UnkStruct_02095C48 *param0, enum HeapID heapID) } sub_0202A35C(param0->unk_00.unk_E8[v0], v3->unk_52); - sub_0202A378(param0->unk_00.unk_E8[v0], param0->unk_00.unk_110); + sub_0202A378(param0->unk_00.unk_E8[v0], param0->unk_00.contestRank); } Heap_Free(v2); @@ -620,7 +620,7 @@ void sub_02095338(UnkStruct_02095C48 *param0) sub_0202A25C(param0->unk_00.unk_E8[i]); sub_0202A3B0(param0->unk_00.unk_E8[i], param0->unk_00.unk_00[i], -1); sub_0202A35C(param0->unk_00.unk_E8[i], 0); - sub_0202A378(param0->unk_00.unk_E8[i], param0->unk_00.unk_110); + sub_0202A378(param0->unk_00.unk_E8[i], param0->unk_00.contestRank); } } @@ -955,7 +955,7 @@ int sub_02095928(UnkStruct_02095C48 *param0, int param1) if (param0->isLinkContest == TRUE) { v3 = v4[CONTEST_RANK_LINK]; } else { - v3 = v4[param0->unk_00.unk_110]; + v3 = v4[param0->unk_00.contestRank]; } for (v2 = 0; v2 < 8; v2++) { @@ -991,7 +991,7 @@ int sub_0209598C(UnkStruct_02095C48 *param0, int param1) if (param0->isLinkContest == TRUE) { v3 = v4[CONTEST_RANK_LINK]; } else { - v3 = v4[param0->unk_00.unk_110]; + v3 = v4[param0->unk_00.contestRank]; } v0 = 1; diff --git a/src/unk_02095AF0.c b/src/unk_02095AF0.c index 7e6bb5d579..87ff8a1401 100644 --- a/src/unk_02095AF0.c +++ b/src/unk_02095AF0.c @@ -3,7 +3,7 @@ #include #include -#include "struct_decls/struct_02029C88_decl.h" +#include "struct_defs/struct_02029C88.h" #include "struct_defs/struct_02039A58.h" #include "struct_defs/struct_02095B28.h" #include "struct_defs/struct_02095C48.h" diff --git a/src/unk_0209ACF4.c b/src/unk_0209ACF4.c index 64a7f35917..7c3adee4ab 100644 --- a/src/unk_0209ACF4.c +++ b/src/unk_0209ACF4.c @@ -218,7 +218,7 @@ static BOOL sub_0209AE14(FieldTask *param0) break; case 1: default: { - u16 v1 = sub_02014C78(&v0->unk_48, 0); + u16 v1 = Sentence_GetWord(&v0->unk_48, 0); sub_0209B27C(v0); if (v1 != 0xffff) {