diff --git a/include/struct_decls/struct_020218BC_decl.h b/include/struct_decls/struct_020218BC_decl.h index 4e8e5c9d3b..f0db683c00 100644 --- a/include/struct_decls/struct_020218BC_decl.h +++ b/include/struct_decls/struct_020218BC_decl.h @@ -1,6 +1,6 @@ #ifndef POKEPLATINUM_STRUCT_020218BC_DECL_H #define POKEPLATINUM_STRUCT_020218BC_DECL_H -typedef struct GraphicElementManager_t GraphicElementManager; +typedef struct GraphicElementManager GraphicElementManager; #endif // POKEPLATINUM_STRUCT_020218BC_DECL_H diff --git a/include/struct_decls/struct_02022550_decl.h b/include/struct_decls/struct_02022550_decl.h index b097e21fe6..6b68557017 100644 --- a/include/struct_decls/struct_02022550_decl.h +++ b/include/struct_decls/struct_02022550_decl.h @@ -1,6 +1,6 @@ #ifndef POKEPLATINUM_STRUCT_02022550_DECL_H #define POKEPLATINUM_STRUCT_02022550_DECL_H -typedef struct GraphicElementData_t GraphicElementData; +typedef struct GraphicElementData GraphicElementData; #endif // POKEPLATINUM_STRUCT_02022550_DECL_H diff --git a/include/unk_020218BC.h b/include/unk_020218BC.h index b7c15ab7b7..7bf02c6702 100644 --- a/include/unk_020218BC.h +++ b/include/unk_020218BC.h @@ -41,7 +41,7 @@ void SpriteActor_SetSpriteAnimActive(GraphicElementData * param0, u32 param1); void sub_02021DCC(GraphicElementData * param0, u32 param1); void sub_02021DE0(GraphicElementData * param0); u32 sub_02021E24(const GraphicElementData * param0); -void sub_02021E2C(GraphicElementData * param0, fx32 param1); +void GraphicElementData_UpdateAnim(GraphicElementData * param0, fx32 param1); void SpriteActor_SetAnimFrame(GraphicElementData * param0, u16 param1); u16 sub_02021E74(const GraphicElementData * param0); void sub_02021E80(GraphicElementData * param0, u8 param1); diff --git a/src/field_menu.c b/src/field_menu.c index 48eee87c01..313475c63f 100644 --- a/src/field_menu.c +++ b/src/field_menu.c @@ -849,7 +849,7 @@ static void sub_0203B520 (FieldMenu * menu) u16 v0; for (v0 = 0; v0 < menu->unk_220; v0++) { - sub_02021E2C(menu->unk_200[v0]->unk_00, FX32_ONE); + GraphicElementData_UpdateAnim(menu->unk_200[v0]->unk_00, FX32_ONE); } } diff --git a/src/overlay007/ov7_0224CD28.c b/src/overlay007/ov7_0224CD28.c index cf66f04517..ec57e7800d 100644 --- a/src/overlay007/ov7_0224CD28.c +++ b/src/overlay007/ov7_0224CD28.c @@ -303,8 +303,8 @@ BOOL ov7_0224CEAC (TaskManager * param0) } if ((v1->unk_297 >= 4) && (v1->unk_297 <= 11)) { - sub_02021E2C(v1->unk_25C[0], FX32_ONE); - sub_02021E2C(v1->unk_25C[1], FX32_ONE); + GraphicElementData_UpdateAnim(v1->unk_25C[0], FX32_ONE); + GraphicElementData_UpdateAnim(v1->unk_25C[1], FX32_ONE); sub_020219F8(v1->unk_94.unk_00); } diff --git a/src/overlay010/ov10_0221F800.c b/src/overlay010/ov10_0221F800.c index 808b9037f4..e5e8988376 100644 --- a/src/overlay010/ov10_0221F800.c +++ b/src/overlay010/ov10_0221F800.c @@ -1259,7 +1259,7 @@ static void ov10_02220C2C (UnkStruct_ov10_0221FB28 * param0) u16 v0; for (v0 = 0; v0 < param0->unk_210; v0++) { - sub_02021E2C(param0->unk_198[v0]->unk_00, FX32_ONE); + GraphicElementData_UpdateAnim(param0->unk_198[v0]->unk_00, FX32_ONE); } } diff --git a/src/overlay021/ov21_021D0D80.c b/src/overlay021/ov21_021D0D80.c index 606a2332bb..3269a641bd 100644 --- a/src/overlay021/ov21_021D0D80.c +++ b/src/overlay021/ov21_021D0D80.c @@ -555,7 +555,7 @@ void ov21_021D144C (GraphicElementData * param0, int param1) case 3: case (3 + 1): if (sub_02021E74(param0) > 0) { - sub_02021E2C(param0, -(FX32_ONE * 2)); + GraphicElementData_UpdateAnim(param0, -(FX32_ONE * 2)); } break; default: diff --git a/src/overlay023/ov23_0224F294.c b/src/overlay023/ov23_0224F294.c index 74452ec4e2..d3ce8e56f0 100644 --- a/src/overlay023/ov23_0224F294.c +++ b/src/overlay023/ov23_0224F294.c @@ -245,7 +245,7 @@ static void ov23_0224F498 (UnkStruct_ov23_02250CD4 * param0) u16 v0; for (v0 = 0; v0 < param0->unk_25C; v0++) { - sub_02021E2C(param0->unk_23C[v0]->unk_00, FX32_ONE); + GraphicElementData_UpdateAnim(param0->unk_23C[v0]->unk_00, FX32_ONE); } } diff --git a/src/overlay063/ov63_0222AE60.c b/src/overlay063/ov63_0222AE60.c index 07c91c2edd..8d1a7d741f 100644 --- a/src/overlay063/ov63_0222AE60.c +++ b/src/overlay063/ov63_0222AE60.c @@ -1069,12 +1069,12 @@ static void ov63_0222BBD0 (UnkStruct_ov63_0222BB38 * param0, int param1) static void ov63_0222BBE0 (UnkStruct_ov63_0222BB38 * param0) { - sub_02021E2C(param0->unk_04, (2 * FX32_ONE)); + GraphicElementData_UpdateAnim(param0->unk_04, (2 * FX32_ONE)); } static void ov63_0222BBF0 (UnkStruct_ov63_0222BB38 * param0) { - sub_02021E2C(param0->unk_04, (2 * FX32_ONE)); + GraphicElementData_UpdateAnim(param0->unk_04, (2 * FX32_ONE)); } static void ov63_0222BC00 (UnkStruct_ov63_0222BB38 * param0) @@ -1088,27 +1088,27 @@ static void ov63_0222BC00 (UnkStruct_ov63_0222BB38 * param0) static void ov63_0222BC20 (UnkStruct_ov63_0222BB38 * param0) { - sub_02021E2C(param0->unk_04, (2 * FX32_ONE)); + GraphicElementData_UpdateAnim(param0->unk_04, (2 * FX32_ONE)); } static void ov63_0222BC30 (UnkStruct_ov63_0222BB38 * param0) { - sub_02021E2C(param0->unk_04, (FX32_ONE)); + GraphicElementData_UpdateAnim(param0->unk_04, (FX32_ONE)); } static void ov63_0222BC40 (UnkStruct_ov63_0222BB38 * param0) { - sub_02021E2C(param0->unk_04, (FX32_ONE)); + GraphicElementData_UpdateAnim(param0->unk_04, (FX32_ONE)); } static void ov63_0222BC50 (UnkStruct_ov63_0222BB38 * param0) { - sub_02021E2C(param0->unk_04, (8 * FX32_ONE)); + GraphicElementData_UpdateAnim(param0->unk_04, (8 * FX32_ONE)); } static void ov63_0222BC60 (UnkStruct_ov63_0222BB38 * param0) { - sub_02021E2C(param0->unk_04, (6 * FX32_ONE)); + GraphicElementData_UpdateAnim(param0->unk_04, (6 * FX32_ONE)); } static BOOL ov63_0222BC70 (const UnkStruct_ov63_0222BB38 * param0) diff --git a/src/overlay065/ov65_0222DCE0.c b/src/overlay065/ov65_0222DCE0.c index bfbe86c5fe..2b88e9f95e 100644 --- a/src/overlay065/ov65_0222DCE0.c +++ b/src/overlay065/ov65_0222DCE0.c @@ -6860,7 +6860,7 @@ static BOOL ov65_02234E8C (UnkStruct_ov65_02234E50 * param0, u32 param1, u32 par } if (v1 < 3) { - sub_02021E2C(param0->unk_21C[param1], FX32_CONST(2)); + GraphicElementData_UpdateAnim(param0->unk_21C[param1], FX32_CONST(2)); v1 = sub_02021E74(param0->unk_21C[param1]); if (param1 == 1) { @@ -6885,7 +6885,7 @@ static BOOL ov65_02234E8C (UnkStruct_ov65_02234E50 * param0, u32 param1, u32 par SpriteActor_SetAnimFrame(param0->unk_21C[param1], (5 - 1) - v1); } - sub_02021E2C(param0->unk_21C[param1], FX32_CONST(2)); + GraphicElementData_UpdateAnim(param0->unk_21C[param1], FX32_CONST(2)); } return v0; diff --git a/src/overlay080/ov80_021D1458.c b/src/overlay080/ov80_021D1458.c index 2105e737d7..32665e712f 100644 --- a/src/overlay080/ov80_021D1458.c +++ b/src/overlay080/ov80_021D1458.c @@ -627,7 +627,7 @@ static void ov80_021D1C24 (UnkStruct_ov80_021D2A08 * param0) if (v1->unk_13-- == 3) { SpriteActor_SetPositionXY(v1->unk_104, v1->unk_18 * 7 + (48 - 23), v1->unk_1C * 7 + (6 - 40)); - sub_02021E2C(v1->unk_104, FX32_ONE); + GraphicElementData_UpdateAnim(v1->unk_104, FX32_ONE); ov80_021D1A30(param0); ov80_021D1AB0(param0, &(v1->unk_28[0]), sub_02039F04((const UnkStruct_02039EBC *)param0->unk_30, v1->unk_18, v1->unk_1C), v1->unk_18, v1->unk_1C); diff --git a/src/overlay080/ov80_021D2AF4.c b/src/overlay080/ov80_021D2AF4.c index 97c3906713..5368641754 100644 --- a/src/overlay080/ov80_021D2AF4.c +++ b/src/overlay080/ov80_021D2AF4.c @@ -81,7 +81,7 @@ UnkStruct_ov80_021D2C1C * ov80_021D2AF4 (SpriteRenderer * param0, SpriteGfxHandl } } - sub_02021E2C(v1->unk_18, FX32_CONST(v1->unk_00.unk_08)); + GraphicElementData_UpdateAnim(v1->unk_18, FX32_CONST(v1->unk_00.unk_08)); SpriteActor_SetPositionXY(v1->unk_18, v1->unk_00.unk_0C + 25, v1->unk_00.unk_10 + -34); } diff --git a/src/overlay091/ov91_021D0D80.c b/src/overlay091/ov91_021D0D80.c index e69d36206e..60cd9d0c4d 100644 --- a/src/overlay091/ov91_021D0D80.c +++ b/src/overlay091/ov91_021D0D80.c @@ -1335,7 +1335,7 @@ static void ov91_021D20E8 (UnkStruct_ov91_021D0ED8 * param0) u16 v0; for (v0 = 0; v0 < 13; v0++) { - sub_02021E2C(param0->unk_118[v0]->unk_00, FX32_ONE); + GraphicElementData_UpdateAnim(param0->unk_118[v0]->unk_00, FX32_ONE); } } diff --git a/src/overlay097/ov97_0222D30C.c b/src/overlay097/ov97_0222D30C.c index ba77e08208..b1c0119d35 100644 --- a/src/overlay097/ov97_0222D30C.c +++ b/src/overlay097/ov97_0222D30C.c @@ -1268,20 +1268,20 @@ static void ov97_0222E694 (UnkStruct_ov97_0222E398 * param0) for (v0 = 0; v0 < 80; v0++) { if (param0->unk_88[v0].unk_0C) { - sub_02021E2C(param0->unk_88[v0].unk_0C, FX32_CONST(2)); + GraphicElementData_UpdateAnim(param0->unk_88[v0].unk_0C, FX32_CONST(2)); } if (param0->unk_1848[v0].unk_0C) { - sub_02021E2C(param0->unk_1848[v0].unk_0C, FX32_CONST(2)); + GraphicElementData_UpdateAnim(param0->unk_1848[v0].unk_0C, FX32_CONST(2)); } } if (param0->unk_3008.unk_0C) { - sub_02021E2C(param0->unk_3008.unk_0C, FX32_CONST(2)); + GraphicElementData_UpdateAnim(param0->unk_3008.unk_0C, FX32_CONST(2)); } if (param0->unk_3054.unk_0C) { - sub_02021E2C(param0->unk_3054.unk_0C, FX32_CONST(2)); + GraphicElementData_UpdateAnim(param0->unk_3054.unk_0C, FX32_CONST(2)); } } diff --git a/src/overlay101/ov101_021D59AC.c b/src/overlay101/ov101_021D59AC.c index 6d2dfa53b1..54e26f128e 100644 --- a/src/overlay101/ov101_021D59AC.c +++ b/src/overlay101/ov101_021D59AC.c @@ -1166,7 +1166,7 @@ static int ov101_021D6908 (UnkStruct_ov101_021D66D0 * param0) static int ov101_021D6968 (UnkStruct_ov101_021D66D0 * param0) { - sub_02021E2C(param0->unk_24.unk_04, (FX32_ONE * 1)); + GraphicElementData_UpdateAnim(param0->unk_24.unk_04, (FX32_ONE * 1)); param0->unk_14++; if (param0->unk_14 >= 9) { @@ -1364,7 +1364,7 @@ static int ov101_021D6C74 (UnkStruct_ov101_021D66D0 * param0) static int ov101_021D6CE0 (UnkStruct_ov101_021D66D0 * param0) { - sub_02021E2C(param0->unk_24.unk_04, FX32_ONE); + GraphicElementData_UpdateAnim(param0->unk_24.unk_04, FX32_ONE); if (sub_02021FD0(param0->unk_24.unk_04) == 0) { param0->unk_14++; diff --git a/src/overlay104/ov104_0222DCE0.c b/src/overlay104/ov104_0222DCE0.c index 8c91eef7bf..338a6f6d51 100644 --- a/src/overlay104/ov104_0222DCE0.c +++ b/src/overlay104/ov104_0222DCE0.c @@ -392,7 +392,7 @@ void ov104_0222E1D8 (GraphicElementData * param0, u8 param1) SpriteActor_SetAnimFrame(param0, 0); SpriteActor_SetSpriteAnimActive(param0, param1); - sub_02021E2C(param0, FX32_ONE); + GraphicElementData_UpdateAnim(param0, FX32_ONE); return; } diff --git a/src/overlay114/ov114_0225C700.c b/src/overlay114/ov114_0225C700.c index 2c7e48850b..0c36b623c8 100644 --- a/src/overlay114/ov114_0225C700.c +++ b/src/overlay114/ov114_0225C700.c @@ -3857,7 +3857,7 @@ static void ov114_0225FDC8 (SysTask * param0, void * param1) break; case 3: v2 = sub_02021E74(v0->unk_30); - sub_02021E2C(v0->unk_30, FX32_CONST(2)); + GraphicElementData_UpdateAnim(v0->unk_30, FX32_CONST(2)); v3 = sub_02021E74(v0->unk_30); if (v2 != v3) { diff --git a/src/overlay115/ov115_02260CEC.c b/src/overlay115/ov115_02260CEC.c index db5f257789..005284349a 100644 --- a/src/overlay115/ov115_02260CEC.c +++ b/src/overlay115/ov115_02260CEC.c @@ -2744,7 +2744,7 @@ static BOOL ov115_02263150 (UnkStruct_ov115_02263130 * param0, UnkStruct_ov115_0 param0->unk_3A++; break; case 1: - sub_02021E2C(param0->unk_34, FX32_CONST(2)); + GraphicElementData_UpdateAnim(param0->unk_34, FX32_CONST(2)); { u32 v0; diff --git a/src/unk_0200C6E4.c b/src/unk_0200C6E4.c index bf52155819..391d38c1d8 100644 --- a/src/unk_0200C6E4.c +++ b/src/unk_0200C6E4.c @@ -790,7 +790,7 @@ static BOOL sub_0200D2D0 (UnkStruct_02009714 * param0, UnkStruct_02009CFC * para void SpriteActor_UpdateObject (GraphicElementData * param0) { - sub_02021E2C(param0, FX32_ONE); + GraphicElementData_UpdateAnim(param0, FX32_ONE); } void sub_0200D330 (CellActorData * param0) @@ -800,12 +800,12 @@ void sub_0200D330 (CellActorData * param0) void sub_0200D33C (CellActorData * param0) { - sub_02021E2C(param0->unk_00, FX32_CONST(2)); + GraphicElementData_UpdateAnim(param0->unk_00, FX32_CONST(2)); } void sub_0200D34C (CellActorData * param0, fx32 param1) { - sub_02021E2C(param0->unk_00, param1); + GraphicElementData_UpdateAnim(param0->unk_00, param1); } u32 sub_0200D358 (CellActorData * param0) diff --git a/src/unk_0200DA60.c b/src/unk_0200DA60.c index 636af5803f..70d5076cec 100644 --- a/src/unk_0200DA60.c +++ b/src/unk_0200DA60.c @@ -597,7 +597,7 @@ static void sub_0200EC9C (SysTask * param0, void * param1) } } - sub_02021E2C(v0->unk_1C8->unk_00, FX32_ONE); + GraphicElementData_UpdateAnim(v0->unk_1C8->unk_00, FX32_ONE); sub_020219F8(v0->unk_00.unk_00); } diff --git a/src/unk_020218BC.c b/src/unk_020218BC.c index 58b808ee33..36fa2bc6aa 100644 --- a/src/unk_020218BC.c +++ b/src/unk_020218BC.c @@ -11,9 +11,9 @@ #include "heap.h" #include "unk_020218BC.h" -#define GRAPHIC_ELEMENT_DATA_FLIP_NONE 0 -#define GRAPHIC_ELEMENT_DATA_FLIP_H 1 -#define GRAPHIC_ELEMENT_DATA_FLIP_V 2 +#define GRAPHIC_ELEMENT_DATA_FLIP_NONE 0 +#define GRAPHIC_ELEMENT_DATA_FLIP_H 1 +#define GRAPHIC_ELEMENT_DATA_FLIP_V 2 enum CellType { CELL_TYPE_NONE = 0, @@ -22,30 +22,30 @@ enum CellType { CELL_TYPE_VRAM_CELL, }; -typedef struct { - const NNSG2dCellDataBank * cellBank; - const NNSG2dCellAnimBankData * unk_04; +typedef struct CellAnimationData { + const NNSG2dCellDataBank *cellBank; + const NNSG2dCellAnimBankData *unk_04; NNSG2dCellAnimation anim; } CellAnimationData; -typedef struct { - NNSG2dCellDataBank * cellBank; - const NNSG2dCellAnimBankData * unk_04; +typedef struct VRamCellAnimationData { + NNSG2dCellDataBank *cellBank; + const NNSG2dCellAnimBankData *unk_04; NNSG2dCellAnimation anim; u32 transferHandle; } VRamCellAnimationData; -typedef struct { - const NNSG2dCellDataBank * individualCellBank; - const NNSG2dCellAnimBankData * individualAnimBank; +typedef struct MultiCellAnimationData { + const NNSG2dCellDataBank *individualCellBank; + const NNSG2dCellAnimBankData *individualAnimBank; NNSG2dMultiCellAnimation anim; - const NNSG2dMultiCellDataBank * cellBank; - const NNSG2dMultiCellAnimBankData * animBank; - NNSG2dNode * nodes; - NNSG2dCellAnimation * cellAnims; + const NNSG2dMultiCellDataBank *cellBank; + const NNSG2dMultiCellAnimBankData *animBank; + NNSG2dNode *nodes; + NNSG2dCellAnimation *cellAnims; } MultiCellAnimationData; -typedef struct GraphicElementData_t { +typedef struct GraphicElementData { VecFx32 position; VecFx32 affineTranslation; VecFx32 affineScale; @@ -58,9 +58,9 @@ typedef struct GraphicElementData_t { BOOL explicitMosaic; GXOamMode explicitOamMode; u8 draw; - u8 unk_35; - fx32 unk_38; - GraphicElementManager * manager; + u8 animate; + fx32 animSpeed; + GraphicElementManager *manager; u32 animData[29]; NNSG2dImageProxy imageProxy; NNSG2dImagePaletteProxy paletteProxy; @@ -69,45 +69,46 @@ typedef struct GraphicElementData_t { u8 explicitPriority; u16 priority; NNS_G2D_VRAM_TYPE vramType; - struct GraphicElementData_t *prev; - struct GraphicElementData_t *next; + struct GraphicElementData *prev; + struct GraphicElementData *next; } GraphicElementData; -typedef struct GraphicElementManager_t { - GraphicElementData * elements; +typedef struct GraphicElementManager { + GraphicElementData *elements; int maxElements; - GraphicElementData ** elementStack; // Stack of currently unused elements + GraphicElementData **elementStack; // Stack of currently unused elements int stackPointer; GraphicElementData sentinelData; - NNSG2dRendererInstance * renderer; - void * rawAnimData; - NNSG2dCellAnimBankData * defaultAnimBank; + NNSG2dRendererInstance *renderer; + void *rawAnimData; + NNSG2dCellAnimBankData *defaultAnimBank; BOOL active; } GraphicElementManager; typedef void (* GraphicElementDrawFunc)(const GraphicElementManager *, GraphicElementData *); -typedef void (* GraphicElementInitializeFunc)(GraphicElementData *); +typedef void (* GraphicElementAnimUpdateFunc)(GraphicElementData *); -static void GraphicElementManager_Reset(GraphicElementManager * param0); -static enum CellType CellActorResourceData_GetCellType(const CellActorResourceData * param0); +static void GraphicElementManager_Reset(GraphicElementManager *gfxElemMgr); +static enum CellType CellActorResourceData_GetCellType(const CellActorResourceData *resourceData); static void GraphicElementData_SetCellBank(const NNSG2dCellDataBank * param0, GraphicElementData * param1); -static void GraphicElementData_SetCellAnimBank(const NNSG2dCellAnimBankData * param0, GraphicElementData * param1); -static void GraphicElementData_SetMultiCellBank(const NNSG2dMultiCellDataBank * param0, GraphicElementData * param1); -static void GraphicElementData_SetMultiCellAnimBank(const NNSG2dMultiCellAnimBankData * param0, GraphicElementData * param1); -static void GraphicElementData_CreateCellAnim(GraphicElementData * param0, enum HeapId param1); -static void GraphicElementData_CreateVRamCellAnim(const CellActorResourceData * param0, GraphicElementData * param1, enum HeapId param2); -static void GraphicElementData_CreateMultiCellAnim(GraphicElementData * param0, enum HeapId param1); -static BOOL GraphicElementManager_InitElement(const GraphicElementManager * param0, const CellActorResourceData * param1, GraphicElementData * param2, enum HeapId param3); +static void GraphicElementData_SetCellAnimBank(const NNSG2dCellAnimBankData *cellAnimBank, GraphicElementData *elem); +static void GraphicElementData_SetMultiCellBank(const NNSG2dMultiCellDataBank *multiCellBank, GraphicElementData *elem); +static void GraphicElementData_SetMultiCellAnimBank(const NNSG2dMultiCellAnimBankData *multiCellAnimBank, GraphicElementData *elem); +static void GraphicElementData_CreateCellAnim(GraphicElementData *elem, enum HeapId heapID); +static void GraphicElementData_CreateVRamCellAnim(const CellActorResourceData *resourceData, GraphicElementData *elem, enum HeapId heapID); +static void GraphicElementData_CreateMultiCellAnim(GraphicElementData *elem, enum HeapId heapID); +static BOOL GraphicElementManager_InitElement(const GraphicElementManager *gfxElemMgr, + const CellActorResourceData *resourceData, GraphicElementData *elem, enum HeapId heapID); static u32 GetPaletteIndexForProxy(const NNSG2dImagePaletteProxy * param0, u32 param1); -static void GraphicElementManager_DrawElement(const GraphicElementManager * param0, GraphicElementData * param1); -static void GraphicElementManager_DrawElement_Stub(const GraphicElementManager * param0, GraphicElementData * param1); -static void sub_02022454(GraphicElementData * param0); -static void sub_02022460(GraphicElementData * param0); -static void GraphicElementManager_InsertElement(GraphicElementManager * param0, GraphicElementData * param1); -static void GraphicElementManager_RemoveElement(GraphicElementData * param0); -static void GraphicElementManager_InitElements(GraphicElementManager * param0); -static GraphicElementData * GraphicElementManager_AllocElement(GraphicElementManager * param0); -static BOOL GraphicElementManager_FreeElement(GraphicElementManager * param0, GraphicElementData * param1); +static void GraphicElementManager_DrawElement(const GraphicElementManager *gfxElemMgr, GraphicElementData *elem); +static void GraphicElementManager_DrawElement_Stub(const GraphicElementManager *gfxElemMgr, GraphicElementData *elem); +static void GraphicElementData_UpdateAnimInternal(GraphicElementData *gfxElemMgr); +static void GraphicElementData_UpdateAnimInternal_Stub(GraphicElementData *gfxElemMgr); +static void GraphicElementManager_InsertElement(GraphicElementManager *gfxElemMgr, GraphicElementData *elem); +static void GraphicElementManager_RemoveElement(GraphicElementData *elem); +static void GraphicElementManager_InitElements(GraphicElementManager *gfxElemMgr); +static GraphicElementData *GraphicElementManager_AllocElement(GraphicElementManager *gfxElemMgr); +static BOOL GraphicElementManager_FreeElement(GraphicElementManager *gfxElemMgr, GraphicElementData *elem); GraphicElementManager *GraphicElementManager_New(const GraphicElementManagerParams *params) { @@ -201,14 +202,13 @@ BOOL GraphicElementManager_DeleteAll(GraphicElementManager *gfxElemMgr) void sub_020219F8 (const GraphicElementManager *gfxElemMgr) { - GraphicElementData * elem; static const GraphicElementDrawFunc sDrawFuncs[] = { GraphicElementManager_DrawElement_Stub, GraphicElementManager_DrawElement }; - static const GraphicElementInitializeFunc v2[] = { - sub_02022460, - sub_02022454 + static const GraphicElementAnimUpdateFunc sAnimUpdateFuncs[] = { + GraphicElementData_UpdateAnimInternal_Stub, + GraphicElementData_UpdateAnimInternal }; GF_ASSERT(gfxElemMgr); @@ -217,11 +217,11 @@ void sub_020219F8 (const GraphicElementManager *gfxElemMgr) return; } - elem = gfxElemMgr->sentinelData.next; + GraphicElementData *elem = gfxElemMgr->sentinelData.next; while (elem != &gfxElemMgr->sentinelData) { sDrawFuncs[elem->draw](gfxElemMgr, elem); - v2[elem->unk_35](elem); + sAnimUpdateFuncs[elem->animate](elem); elem = elem->next; } } @@ -280,8 +280,8 @@ GraphicElementData *GraphicElementManager_AddElementEx(const CellActorInitParams ); elem->draw = TRUE; - elem->unk_35 = 0; - elem->unk_38 = (FX32_ONE * 2); + elem->animate = 0; + elem->animSpeed = (FX32_ONE * 2); if (GraphicElementManager_InitElement(params->manager, params->resourceData, elem, params->heapID) == FALSE) { GraphicElementData_Delete(elem); @@ -394,14 +394,14 @@ void sub_02021CC8 (GraphicElementData * param0, int param1) GF_ASSERT(param0); GF_ASSERT(param1 < 2); - param0->unk_35 = param1; + param0->animate = param1; } void sub_02021CE4 (GraphicElementData * param0, fx32 param1) { GF_ASSERT(param0); - param0->unk_38 = param1; + param0->animSpeed = param1; } void sub_02021CF8 (GraphicElementData * param0, int param1) @@ -441,7 +441,7 @@ int sub_02021D34 (const GraphicElementData * param0) int sub_02021D3C (const GraphicElementData * param0) { - return param0->unk_35; + return param0->animate; } u32 sub_02021D44 (const GraphicElementData * param0) @@ -512,14 +512,14 @@ u32 sub_02021E24 (const GraphicElementData * param0) return param0->unk_F0; } -void sub_02021E2C (GraphicElementData * param0, fx32 param1) +void GraphicElementData_UpdateAnim(GraphicElementData *elem, fx32 frames) { - if ((param0->type == 1) || (param0->type == 3)) { - CellAnimationData * v0 = (CellAnimationData *)¶m0->animData; - NNS_G2dTickCellAnimation(&v0->anim, param1); + if (elem->type == CELL_TYPE_CELL || elem->type == CELL_TYPE_VRAM_CELL) { + CellAnimationData *cellAnim = (CellAnimationData *)&elem->animData; + NNS_G2dTickCellAnimation(&cellAnim->anim, frames); } else { - MultiCellAnimationData * v1 = (MultiCellAnimationData *)¶m0->animData; - NNS_G2dTickMCAnimation(&v1->anim, param1); + MultiCellAnimationData *multiCellAnim = (MultiCellAnimationData *)&elem->animData; + NNS_G2dTickMCAnimation(&multiCellAnim->anim, frames); } } @@ -741,7 +741,7 @@ u32 sub_020220F4 (const GraphicElementData * param0) } static BOOL GraphicElementManager_InitElement(const GraphicElementManager *gfxElemMgr, - const CellActorResourceData *resourceData, GraphicElementData *elem, enum HeapId param3) + const CellActorResourceData *resourceData, GraphicElementData *elem, enum HeapId heapID) { elem->type = CellActorResourceData_GetCellType(resourceData); elem->imageProxy = *resourceData->unk_00; @@ -758,11 +758,11 @@ static BOOL GraphicElementManager_InitElement(const GraphicElementManager *gfxEl if (elem->type == CELL_TYPE_MULTI_CELL) { GraphicElementData_SetMultiCellBank(resourceData->multiCellBank, elem); GraphicElementData_SetMultiCellAnimBank(resourceData->unk_18, elem); - GraphicElementData_CreateMultiCellAnim(elem, param3); + GraphicElementData_CreateMultiCellAnim(elem, heapID); } else if (elem->type == CELL_TYPE_VRAM_CELL) { - GraphicElementData_CreateVRamCellAnim(resourceData, elem, param3); + GraphicElementData_CreateVRamCellAnim(resourceData, elem, heapID); } else { - GraphicElementData_CreateCellAnim(elem, param3); + GraphicElementData_CreateCellAnim(elem, heapID); } elem->explicitPriority = resourceData->unk_20; @@ -942,12 +942,12 @@ static void GraphicElementManager_DrawElement_Stub(const GraphicElementManager * return; } -static void sub_02022454 (GraphicElementData * param0) +static void GraphicElementData_UpdateAnimInternal(GraphicElementData *elem) { - sub_02021E2C(param0, param0->unk_38); + GraphicElementData_UpdateAnim(elem, elem->animSpeed); } -static void sub_02022460 (GraphicElementData * param0) +static void GraphicElementData_UpdateAnimInternal_Stub(GraphicElementData *elem) { return; } diff --git a/src/unk_0205CA94.c b/src/unk_0205CA94.c index bba773436d..a54cf1aff2 100644 --- a/src/unk_0205CA94.c +++ b/src/unk_0205CA94.c @@ -624,7 +624,7 @@ int sub_0205D424 (struct UnkStruct_0205D3AC_t * param0) sub_02021C50(v1->unk_0C, &v0); v1->unk_10 += (0x8000 / 16); - sub_02021E2C(v1->unk_0C, FX32_ONE); + GraphicElementData_UpdateAnim(v1->unk_0C, FX32_ONE); if (v1->unk_10 == ((0x8000 / 16) * 16)) { return 2; @@ -667,7 +667,7 @@ int sub_0205D500 (struct UnkStruct_0205D3AC_t * param0) UnkStruct_0205D4A4 * v0 = (UnkStruct_0205D4A4 *)param0->unk_00; if (v0->unk_10 < 7) { - sub_02021E2C(v0->unk_0C, FX32_ONE); + GraphicElementData_UpdateAnim(v0->unk_0C, FX32_ONE); v0->unk_10++; return 1; } @@ -707,7 +707,7 @@ int sub_0205D584 (struct UnkStruct_0205D3AC_t * param0) v0->unk_00.y += (FX32_ONE * 8); sub_02021C50(v0->unk_0C, &v0->unk_00); - sub_02021E2C(v0->unk_0C, FX32_ONE); + GraphicElementData_UpdateAnim(v0->unk_0C, FX32_ONE); if (v0->unk_10 == 0) { if (v0->unk_00.y >= (384 * FX32_ONE)) { @@ -761,7 +761,7 @@ int sub_0205D644 (struct UnkStruct_0205D3AC_t * param0) switch (v0->unk_10) { case 0: v0->unk_14 += (FX32_CONST(0.20f)); - sub_02021E2C(v0->unk_0C, v0->unk_14); + GraphicElementData_UpdateAnim(v0->unk_0C, v0->unk_14); if (v0->unk_14 >= (2 * FX32_ONE)) { v0->unk_10++; @@ -771,7 +771,7 @@ int sub_0205D644 (struct UnkStruct_0205D3AC_t * param0) if (v0->unk_00.y > (-32 * FX32_ONE)) { v0->unk_00.y -= (FX32_ONE * 8); sub_02021C50(v0->unk_0C, &v0->unk_00); - sub_02021E2C(v0->unk_0C, v0->unk_14); + GraphicElementData_UpdateAnim(v0->unk_0C, v0->unk_14); } else { v0->unk_00.y = (384 * FX32_ONE); v0->unk_10++; @@ -781,7 +781,7 @@ int sub_0205D644 (struct UnkStruct_0205D3AC_t * param0) v0->unk_00.y -= (FX32_ONE * 8); sub_02021C50(v0->unk_0C, &v0->unk_00); - sub_02021E2C(v0->unk_0C, v0->unk_14); + GraphicElementData_UpdateAnim(v0->unk_0C, v0->unk_14); if ((v0->unk_00.y < (300 * FX32_ONE))) { v1 = 2; @@ -792,7 +792,7 @@ int sub_0205D644 (struct UnkStruct_0205D3AC_t * param0) if (v0->unk_00.y > (192 * FX32_ONE)) { v0->unk_00.y -= (FX32_ONE * 8); sub_02021C50(v0->unk_0C, &v0->unk_00); - sub_02021E2C(v0->unk_0C, v0->unk_14); + GraphicElementData_UpdateAnim(v0->unk_0C, v0->unk_14); } else { v0->unk_10++; } @@ -852,14 +852,14 @@ int sub_0205D788 (struct UnkStruct_0205D3AC_t * param0) sub_02021C50(v1->unk_0C, &v0); v1->unk_14 += (0x8000 / 8); - sub_02021E2C(v1->unk_0C, FX32_ONE); + GraphicElementData_UpdateAnim(v1->unk_0C, FX32_ONE); } else { v1->unk_10++; } break; case 2: v1->unk_14 -= (FX32_CONST(0.40f)); - sub_02021E2C(v1->unk_0C, v1->unk_14); + GraphicElementData_UpdateAnim(v1->unk_0C, v1->unk_14); if (v1->unk_14 <= 0) { v1->unk_10++; @@ -905,7 +905,7 @@ int sub_0205D8A8 (struct UnkStruct_0205D3AC_t * param0) UnkStruct_0205D4A4 * v0 = (UnkStruct_0205D4A4 *)param0->unk_00; if (v0->unk_10 < 8) { - sub_02021E2C(v0->unk_0C, FX32_ONE); + GraphicElementData_UpdateAnim(v0->unk_0C, FX32_ONE); v0->unk_10++; return 1; } diff --git a/src/unk_0206A780.c b/src/unk_0206A780.c index 6521002d9c..2a6468610b 100644 --- a/src/unk_0206A780.c +++ b/src/unk_0206A780.c @@ -90,7 +90,7 @@ void sub_0206A870 (UnkStruct_0206A844 * param0) for (v0 = 0; v0 < 2; v0++) { if (param0->unk_1C8[v0] != NULL) { - sub_02021E2C(param0->unk_1C8[v0]->unk_00, FX32_ONE); + GraphicElementData_UpdateAnim(param0->unk_1C8[v0]->unk_00, FX32_ONE); } } diff --git a/src/unk_02082C2C.c b/src/unk_02082C2C.c index e826229748..f2edc22fad 100644 --- a/src/unk_02082C2C.c +++ b/src/unk_02082C2C.c @@ -325,7 +325,7 @@ void sub_020831B4 (GameWindowLayout * param0) } sub_02083138(v0->unk_24, v2); - sub_02021E2C(v0->unk_24, FX32_ONE); + GraphicElementData_UpdateAnim(v0->unk_24, FX32_ONE); if ((param0->unk_B11 == v1) && (v2 != 0) && (v2 != 5)) { if (sub_02021E74(v0->unk_24) == 0) { @@ -370,7 +370,7 @@ void sub_020832E4 (GameWindowLayout * param0, s16 param1, s16 param2) void sub_02083334 (GameWindowLayout * param0) { if (sub_02021D34(param0->unk_5B0[28]) == 1) { - sub_02021E2C(param0->unk_5B0[28], FX32_ONE); + GraphicElementData_UpdateAnim(param0->unk_5B0[28], FX32_ONE); if (sub_02021E74(param0->unk_5B0[28]) == 2) { sub_02021CAC(param0->unk_5B0[28], 0); diff --git a/src/unk_0208EA44.c b/src/unk_0208EA44.c index 282c19bb9c..0f3895c9e8 100644 --- a/src/unk_0208EA44.c +++ b/src/unk_0208EA44.c @@ -183,11 +183,11 @@ void sub_0208EAF4 (PokemonSummaryApp * param0) void sub_0208EB14 (PokemonSummaryApp * param0) { - sub_02021E2C(param0->unk_41C[21], FX32_ONE); - sub_02021E2C(param0->unk_41C[22], FX32_ONE); - sub_02021E2C(param0->unk_41C[41], FX32_ONE); - sub_02021E2C(param0->unk_41C[68], FX32_ONE); - sub_02021E2C(param0->unk_41C[69], FX32_ONE); + GraphicElementData_UpdateAnim(param0->unk_41C[21], FX32_ONE); + GraphicElementData_UpdateAnim(param0->unk_41C[22], FX32_ONE); + GraphicElementData_UpdateAnim(param0->unk_41C[41], FX32_ONE); + GraphicElementData_UpdateAnim(param0->unk_41C[68], FX32_ONE); + GraphicElementData_UpdateAnim(param0->unk_41C[69], FX32_ONE); } void sub_0208EB64 (PokemonSummaryApp * param0) @@ -580,7 +580,7 @@ void sub_0208F3B0 (PokemonSummaryApp * param0) continue; } - sub_02021E2C(param0->unk_41C[v0], FX32_ONE); + GraphicElementData_UpdateAnim(param0->unk_41C[v0], FX32_ONE); if (sub_02021E74(param0->unk_41C[v0]) == 6) { sub_02021CAC(param0->unk_41C[v0], 0); @@ -784,7 +784,7 @@ void sub_0208FB00 (PokemonSummaryApp * param0) void sub_0208FB30 (PokemonSummaryApp * param0) { if (sub_02021D34(param0->unk_41C[70]) == 1) { - sub_02021E2C(param0->unk_41C[70], FX32_ONE); + GraphicElementData_UpdateAnim(param0->unk_41C[70], FX32_ONE); } } @@ -864,6 +864,6 @@ void sub_0208FCD4 (PokemonSummaryApp * param0) u32 v0; for (v0 = 0; v0 < 5; v0++) { - sub_02021E2C(param0->unk_41C[71 + v0], FX32_ONE); + GraphicElementData_UpdateAnim(param0->unk_41C[71 + v0], FX32_ONE); } }