Lots of moving stuff around to fix wrong structs

This commit is contained in:
Pixelstyx
2026-08-07 11:43:42 -04:00
parent b9096a9b8c
commit bad36f039f
8 changed files with 74 additions and 96 deletions

View File

@@ -19,6 +19,7 @@
.public MapPropOneShotAnimationManager_GetAnimation
.public MapPropOneShotAnimation_Init
.public MapPropOneShotAnimation_SetAnimation
.public MapPropOneShotAnimation_SwitchAnimation
.public ov01_021E8DB4
.public ov01_021E8DD4
.public ov01_021E8DE8
@@ -46,7 +47,7 @@
.public ov01_02204834
.public BicycleSlopeAnimation_Load
.public ov01_021E87A8
.public MapPropAnimation_GetAnimationObj
.public MapPropAnimationData_GetAnimation
.public MapPropAnimation_CheckDeferredLoadingFlag
.public MapPropAnimation_CheckDeferredAddToRenderObjFlag
.public MapPropAnimationManager_LoadPropAnimationForOneShot

View File

@@ -14,50 +14,6 @@
.text
thumb_func_start ov01_021E8CBC
ov01_021E8CBC: ; 0x021E8CBC
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r0, #0
ldr r0, [r5, #0x10]
add r4, r1, #0
cmp r4, r0
blt _021E8CCE
bl GF_AssertFail
_021E8CCE:
lsl r0, r4, #2
ldr r0, [r5, r0]
str r0, [sp, #4]
bl MapPropAnimation_GetAnimationObj
str r0, [sp]
ldr r0, [r5, #0x2c]
bl MapPropAnimation_GetAnimationObj
add r7, r0, #0
mov r4, #0
_021E8CE4:
lsl r0, r4, #2
add r6, r5, r0
ldr r0, [r6, #0x14]
cmp r0, #0
beq _021E8CFC
add r1, r7, #0
bl ov01_02204518
ldr r0, [r6, #0x14]
ldr r1, [sp]
bl ov01_0220450C
_021E8CFC:
add r0, r4, #1
lsl r0, r0, #0x18
lsr r4, r0, #0x18
cmp r4, #6
blo _021E8CE4
ldr r0, [sp, #4]
str r0, [r5, #0x2c]
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov01_021E8CBC
thumb_func_start ov01_021E8D10
ov01_021E8D10: ; 0x021E8D10
push {r3, r4, r5, r6, r7, lr}
@@ -114,7 +70,7 @@ ov01_021E8D6C: ; 0x021E8D6C
add r6, r1, #0
str r0, [sp]
ldr r0, [r6, #0x2c]
bl MapPropAnimation_GetAnimationObj
bl MapPropAnimationData_GetAnimation
add r7, r0, #0
mov r4, #0
add r5, r6, #0
@@ -268,7 +224,7 @@ _021E8E80:
add r1, r4, #0
bl MapPropOneShotAnimationManager_GetAnimation
add r1, r6, #0
bl ov01_021E8CBC
bl MapPropOneShotAnimation_SwitchAnimation
mov r1, #0
bl MapPropAnimationData_SetAnimationPaused
pop {r4, r5, r6, pc}
@@ -290,7 +246,7 @@ _021E8EAA:
add r1, r5, #0
bl MapPropOneShotAnimationManager_GetAnimation
add r1, r7, #0
bl ov01_021E8CBC
bl MapPropOneShotAnimation_SwitchAnimation
add r5, r0, #0
cmp r4, #0
beq _021E8EC6

View File

@@ -49,14 +49,14 @@ typedef struct MapPropAnimationManager {
} MapPropAnimationManager; // Size: 0x13C
typedef struct MapPropOneShotAnimationList {
MapPropAnimation *list[MAP_PROP_ONE_SHOT_ANIMATION_MAX_ANIMATIONS];
MapPropAnimationData *list[MAP_PROP_ONE_SHOT_ANIMATION_MAX_ANIMATIONS];
int count;
} MapPropOneShotAnimationList;
typedef struct MapPropOneShotAnimation {
MapPropOneShotAnimationList animations;
NNSG3dRenderObj *mapPropRenderObjs[MAP_PROP_ONE_SHOT_ANIMATION_MAX_RENDER_OBJS];
MapPropAnimation *currentAnimation;
NNSG3dRenderObj *mapPropRenderObjs[MAP_PROP_ONE_SHOT_ANIMATION_MAX_RENDER_OBJS]; // SubC?
MapPropAnimationData *currentAnimation;
int mapPropModelID;
u8 tag;
u8 unk35;
@@ -68,9 +68,9 @@ typedef struct MapPropOneShotAnimationManager {
} MapPropOneShotAnimationManager; // Size: 0x380
MapPropAnimationManager *MapPropAnimationManager_Init(NARC *narc, FieldSystemUnkSubC8 *unkSubC8);
BOOL MapPropAnimationManager_AddAnimationToRenderObj(const int mapPropModelID, const int mapPropAnimID, const BOOL isDeferred, UnkStruct_FieldSysC0_SubC *renderObj, MapPropAnimationManager *manager);
BOOL MapPropAnimationManager_AddAnimationToRenderObj(const int mapPropModelID, const int mapPropAnimID, const BOOL isDeferred, NNSG3dRenderObj *renderObj, MapPropAnimationManager *manager);
void MapPropAnimationManager_UnloadAllAnimations(MapPropAnimationManager *manager);
void MapPropAnimationManager_RemoveAnimationFromRenderObj(MapPropAnimationManager *mapPropAnimationManager, UnkStruct_FieldSysC0_SubC *unkC0_SubC, const int mapPropModelID, const int mapPropAnimIndex);
void MapPropAnimationManager_RemoveAnimationFromRenderObj(MapPropAnimationManager *mapPropAnimationManager, NNSG3dRenderObj *renderObj, const int mapPropModelID, const int mapPropAnimIndex);
void MapPropAnimationManager_Free(MapPropAnimationManager *manager);
MapPropAnimationData *MapPropAnimationManager_GetAnimationData(const int mapPropModelID, const int mapPropAnimIndex, MapPropAnimationManager *mapPropAnimationManager);
void MapPropAnimationData_SetAnimationPaused(MapPropAnimationData *animation, const BOOL paused);

View File

@@ -97,8 +97,8 @@ void ov01_02204470(FieldSystemUnkSubCC_Sub0 *unkCC_Sub0, MapPropAnimation *anima
void ov01_022044C8(MapPropAnimation *animation, int loopCount, BOOL paused, BOOL reversed);
void MapPropAnimation_GoToFirstFrame(MapPropAnimation *animation);
void ov01_02204500(FieldSystemUnkSubCC_Sub0 *unkCC_Sub0, MapPropAnimation *animation);
void ov01_0220450C(UnkStruct_FieldSysC0_SubC *unkC0_SubC, MapPropAnimation *animation);
BOOL ov01_02204518(UnkStruct_FieldSysC0_SubC *unkC0_SubC, MapPropAnimation *animation);
void ov01_0220450C(NNSG3dRenderObj *renderObj, MapPropAnimation *animation);
BOOL ov01_02204518(NNSG3dRenderObj *renderObj, MapPropAnimation *animation);
u16 MapPropAnimation_GetLoopCount(MapPropAnimation *animation);
void MapPropAnimation_SetPaused(MapPropAnimation *animation, BOOL paused);
BOOL MapPropAnimation_IsLoopFinished(MapPropAnimation *animation);
@@ -107,8 +107,8 @@ void MapPropAnimation_SetLoopCount(MapPropAnimation *animation, const int loopCo
FieldSystemUnkSubCC *ov01_0220460C(FieldSystemUnkSubC8 *unkSubC8); // UnkCC_Init
void ov01_02204634(FieldSystemUnkSubCC *unkCC); // UnkCC_Free
void ov01_0220463C(FieldSystemUnkSubCC *unkCC, int fileID); // UnkCC_Load
void ov01_02204678(FieldSystemUnkSubCC *unkCC, UnkStruct_FieldSysC0_SubC *unkC0_SubC);
void ov01_02204688(FieldSystemUnkSubCC *unkCC, UnkStruct_FieldSysC0_SubC *unkC0_SubC);
void ov01_02204678(FieldSystemUnkSubCC *unkCC, NNSG3dRenderObj *renderObj);
void ov01_02204688(FieldSystemUnkSubCC *unkCC, NNSG3dRenderObj *renderObj);
void ov01_02204698(FieldSystemUnkSubCC *unkCC);
FieldSystemUnkSub104 *ov01_02204744(enum HeapID heapID);
void ov01_02204764(FieldSystemUnkSub104 *unk104);

View File

@@ -551,16 +551,16 @@ static BOOL Task_LugiaEyeGlimmer(TaskManager *taskman) {
static BOOL ov02_02251320(TaskManager *taskman) {
FieldSystem *fieldSystem = TaskManager_GetFieldSystem(taskman);
u32 *pState = TaskManager_GetStatePtr(taskman);
UnkStruct_FieldSysC0_SubC *renderObj;
UnkStruct_FieldSysC0_SubC *unkC0_SubC;
u8 i;
ClearBellCutsceneCamera *cam = fieldSystem->unk4->legendCutsceneCamera;
ClearBellCutscene3dObjectTaskData *taskData = Field3dObjectTask_GetData(cam->draw3dTask);
switch (*pState) {
case UNUSED_HO_OH_ANIM_TASK_STATE_0:
renderObj = Field3dObjectList_GetRenderObjectByID(fieldSystem->unkC0, taskData->birdModelNum);
unkC0_SubC = Field3dObjectList_GetRenderObjectByID(fieldSystem->unkC0, taskData->birdModelNum);
for (i = 0; i < 2; ++i) {
MapPropAnimationManager_AddAnimationToRenderObj(taskData->birdModelNum, i, 1, renderObj, fieldSystem->mapPropAnimationManager);
MapPropAnimationManager_AddAnimationToRenderObj(taskData->birdModelNum, i, 1, &unkC0_SubC->renderObj, fieldSystem->mapPropAnimationManager);
}
for (i = 0; i < 2; ++i) {
MapPropAnimationData *animData = MapPropAnimationManager_GetAnimationData(taskData->birdModelNum, i, fieldSystem->mapPropAnimationManager);
@@ -570,13 +570,13 @@ static BOOL ov02_02251320(TaskManager *taskman) {
*pState = UNUSED_HO_OH_ANIM_TASK_STATE_1;
break;
case UNUSED_HO_OH_ANIM_TASK_STATE_1:
renderObj = Field3dObjectList_GetRenderObjectByID(fieldSystem->unkC0, taskData->birdModelNum);
unkC0_SubC = Field3dObjectList_GetRenderObjectByID(fieldSystem->unkC0, taskData->birdModelNum);
if (MapPropAnimationData_IsAnimationLoopFinished(MapPropAnimationManager_GetAnimationData(taskData->birdModelNum, 0, fieldSystem->mapPropAnimationManager))) {
for (i = 0; i < 2; ++i) {
MapPropAnimationManager_RemoveAnimationFromRenderObj(fieldSystem->mapPropAnimationManager, renderObj, taskData->birdModelNum, i);
MapPropAnimationManager_RemoveAnimationFromRenderObj(fieldSystem->mapPropAnimationManager, &unkC0_SubC->renderObj, taskData->birdModelNum, i);
}
for (i = 0; i < 2; ++i) {
MapPropAnimationManager_AddAnimationToRenderObj(taskData->birdModelNum, i + 2, 1, renderObj, fieldSystem->mapPropAnimationManager);
MapPropAnimationManager_AddAnimationToRenderObj(taskData->birdModelNum, i + 2, 1, &unkC0_SubC->renderObj, fieldSystem->mapPropAnimationManager);
}
*pState = UNUSED_HO_OH_ANIM_TASK_STATE_2;
}

View File

@@ -6,15 +6,15 @@
// Make static
void ov01_021E87A8(NARC *narc, FieldSystemUnkSubCC_Sub0 *unkCC_Sub0, MapPropAnimation *animation, int fileID, NNSG3dResMdl *resMdl, NNSG3dResTex *resTex);
BOOL BicycleSlopeAnimation_Load(BicycleSlopeAnimation *bicycleSlopeAnims, UnkStruct_FieldSysC0_SubC *unkC0_SubC, MapPropAnimation *animation, const u8 animID);
BOOL BicycleSlopeAnimation_Load(BicycleSlopeAnimation *bicycleSlopeAnims, NNSG3dRenderObj *renderObj, MapPropAnimation *animation, const u8 animID);
BOOL BicycleSlopeAnimation_Load(BicycleSlopeAnimation *bicycleSlopeAnims, UnkStruct_FieldSysC0_SubC *unkC0_SubC, MapPropAnimation *animation, const u8 animID) {
BOOL BicycleSlopeAnimation_Load(BicycleSlopeAnimation *bicycleSlopeAnims, NNSG3dRenderObj *renderObj, MapPropAnimation *animation, const u8 animID) {
int i;
GF_ASSERT(MapPropAnimation_GetLoopCount(animation) != -1);
for (i = 0; i < MAP_PROP_ANIMATION_MANAGER_MAX_BICYCLE_SLOPE_ANIMATIONS; i++) {
if (bicycleSlopeAnims[i].loaded && animID == bicycleSlopeAnims[i].animID && bicycleSlopeAnims[i].renderObj == &unkC0_SubC->renderObj) {
if (bicycleSlopeAnims[i].loaded && animID == bicycleSlopeAnims[i].animID && bicycleSlopeAnims[i].renderObj == renderObj) {
return FALSE;
}
}
@@ -24,7 +24,7 @@ BOOL BicycleSlopeAnimation_Load(BicycleSlopeAnimation *bicycleSlopeAnims, UnkStr
bicycleSlopeAnims[i].loaded = TRUE;
bicycleSlopeAnims[i].animID = animID;
bicycleSlopeAnims[i].animation = animation;
bicycleSlopeAnims[i].renderObj = &unkC0_SubC->renderObj;
bicycleSlopeAnims[i].renderObj = renderObj;
break;
}
}
@@ -66,14 +66,14 @@ MapPropAnimationManager *MapPropAnimationManager_Init(NARC *narc, FieldSystemUnk
}
// Make static
NNSG3dAnmObj *MapPropAnimation_GetAnimationObj(MapPropAnimation *animation);
MapPropAnimation *MapPropAnimationData_GetAnimation(MapPropAnimationData *animData);
NNSG3dAnmObj *MapPropAnimation_GetAnimationObj(MapPropAnimation *animation) {
if (animation == NULL) {
MapPropAnimation *MapPropAnimationData_GetAnimation(MapPropAnimationData *animData) {
if (animData == NULL) {
return NULL;
}
return animation->animObj;
return animData->animation;
}
// Make static
@@ -140,7 +140,7 @@ MapPropAnimationData *MapPropAnimationManager_LoadPropAnimationForOneShot(const
return NULL;
}
BOOL MapPropAnimationManager_AddAnimationToRenderObj(const int mapPropModelID, const int mapPropAnimID, const BOOL isDeferred, UnkStruct_FieldSysC0_SubC *unkC0_SubC, MapPropAnimationManager *manager) {
BOOL MapPropAnimationManager_AddAnimationToRenderObj(const int mapPropModelID, const int mapPropAnimID, const BOOL isDeferred, NNSG3dRenderObj *renderObj, MapPropAnimationManager *manager) {
if (manager == NULL) {
GF_ASSERT(FALSE);
return FALSE;
@@ -162,9 +162,9 @@ BOOL MapPropAnimationManager_AddAnimationToRenderObj(const int mapPropModelID, c
for (int i = 0; i < MAP_PROP_ANIMATION_MANAGER_MAX_ANIMATIONS; i++) {
if (animArchiveID == manager->animations[i].animArchiveID) {
BOOL addAnimationObj = animListFile.isBicycleSlope ? BicycleSlopeAnimation_Load(manager->bicycleSlopeAnimations, unkC0_SubC, manager->animations[i].animation, animArchiveID) : TRUE;
BOOL addAnimationObj = animListFile.isBicycleSlope ? BicycleSlopeAnimation_Load(manager->bicycleSlopeAnimations, renderObj, manager->animations[i].animation, animArchiveID) : TRUE;
if (addAnimationObj) {
ov01_0220450C(unkC0_SubC, manager->animations[i].animation);
ov01_0220450C(renderObj, manager->animations[i].animation);
}
return TRUE;
}
@@ -208,7 +208,7 @@ void MapPropAnimationManager_UnloadAnimation(MapPropAnimationData *animationData
}
}
void MapPropAnimationManager_RemoveAnimationFromRenderObj(MapPropAnimationManager *mapPropAnimationManager, UnkStruct_FieldSysC0_SubC *unkC0_SubC, const int mapPropModelID, const int mapPropAnimIndex) {
void MapPropAnimationManager_RemoveAnimationFromRenderObj(MapPropAnimationManager *mapPropAnimationManager, NNSG3dRenderObj *renderObj, const int mapPropModelID, const int mapPropAnimIndex) {
MapPropAnimListFile animListFile;
NARC_ReadWholeMember(mapPropAnimationManager->unk134, mapPropModelID, &animListFile);
@@ -218,7 +218,7 @@ void MapPropAnimationManager_RemoveAnimationFromRenderObj(MapPropAnimationManage
for (u8 i = 0; i < MAP_PROP_ANIMATION_MANAGER_MAX_ANIMATIONS; i++) {
if (mapPropAnimationManager->animations[i].loaded == TRUE && animArchiveID == mapPropAnimationManager->animations[i].animArchiveID) {
ov01_02204518(unkC0_SubC, mapPropAnimationManager->animations[i].animation);
ov01_02204518(renderObj, mapPropAnimationManager->animations[i].animation);
return;
}
}
@@ -363,9 +363,30 @@ void MapPropOneShotAnimation_Init(NNSG3dRenderObj *mapPropRenderObj, const int a
}
// Make static
void MapPropOneShotAnimation_SetAnimation(MapPropOneShotAnimation *oneShotAnimation, const int mapPropAnimIndex, MapPropAnimation *animation);
void MapPropOneShotAnimation_SetAnimation(MapPropOneShotAnimation *oneShotAnimation, const int mapPropAnimIndex, MapPropAnimationData *animation);
void MapPropOneShotAnimation_SetAnimation(MapPropOneShotAnimation *oneShotAnimation, const int mapPropAnimIndex, MapPropAnimation *animation) {
void MapPropOneShotAnimation_SetAnimation(MapPropOneShotAnimation *oneShotAnimation, const int mapPropAnimIndex, MapPropAnimationData *animation) {
GF_ASSERT(mapPropAnimIndex < oneShotAnimation->animations.count);
oneShotAnimation->animations.list[mapPropAnimIndex] = animation;
}
}
// Make static
MapPropAnimationData *MapPropOneShotAnimation_SwitchAnimation(MapPropOneShotAnimation *oneShotAnimation, const int mapPropAnimIndex);
MapPropAnimationData *MapPropOneShotAnimation_SwitchAnimation(MapPropOneShotAnimation *oneShotAnimation, const int mapPropAnimIndex) {
GF_ASSERT(mapPropAnimIndex < oneShotAnimation->animations.count);
MapPropAnimationData *newAnimData = oneShotAnimation->animations.list[mapPropAnimIndex];
MapPropAnimation *newAnimation = MapPropAnimationData_GetAnimation(newAnimData);
MapPropAnimation *currentAnimation = MapPropAnimationData_GetAnimation(oneShotAnimation->currentAnimation);
for (u8 i = 0; i < MAP_PROP_ONE_SHOT_ANIMATION_MAX_RENDER_OBJS; i++) {
if (oneShotAnimation->mapPropRenderObjs[i] != NULL) {
ov01_02204518(oneShotAnimation->mapPropRenderObjs[i], currentAnimation);
ov01_0220450C(oneShotAnimation->mapPropRenderObjs[i], newAnimation);
}
}
oneShotAnimation->currentAnimation = newAnimData;
return newAnimData;
}

View File

@@ -294,21 +294,21 @@ void MapPropAnimation_GoToFirstFrame(MapPropAnimation *animation) {
}
}
void ov01_02204500(FieldSystemUnkSubCC_Sub0 *unkCC_Sub0, MapPropAnimation *animation) { // UnkCC_Sub0_FreeMapPropAnimObjFromRenderObj
void ov01_02204500(FieldSystemUnkSubCC_Sub0 *unkCC_Sub0, MapPropAnimation *animation) { // FreeMapPropAnimObj
NNS_G3dFreeAnmObj(&unkCC_Sub0->unk0, animation->animObj);
}
void ov01_0220450C(UnkStruct_FieldSysC0_SubC *unkC0_SubC, MapPropAnimation *animation) { // UnkC0_SubC_AddMapPropAnimObjToRenderObj
NNS_G3dRenderObjAddAnmObj(&unkC0_SubC->renderObj, animation->animObj);
void ov01_0220450C(NNSG3dRenderObj *renderObj, MapPropAnimation *animation) { // AddMapPropAnimObjToRenderObj
NNS_G3dRenderObjAddAnmObj(renderObj, animation->animObj);
}
BOOL ov01_02204518(UnkStruct_FieldSysC0_SubC *unkC0_SubC, MapPropAnimation *animation) {
BOOL ov01_02204518(NNSG3dRenderObj *renderObj, MapPropAnimation *animation) {
if (animation == NULL) return FALSE;
if (animation->animObj == NULL) return FALSE;
if (unkC0_SubC == NULL) return FALSE;
if (unkC0_SubC->renderObj.anmMat == NULL && unkC0_SubC->renderObj.anmJnt == NULL && unkC0_SubC->renderObj.anmVis == NULL) return FALSE;
if (renderObj == NULL) return FALSE;
if (renderObj->anmMat == NULL && renderObj->anmJnt == NULL && renderObj->anmVis == NULL) return FALSE;
NNS_G3dRenderObjRemoveAnmObj(&unkC0_SubC->renderObj, animation->animObj);
NNS_G3dRenderObjRemoveAnmObj(renderObj, animation->animObj);
return TRUE;
}
@@ -380,12 +380,12 @@ void ov01_0220463C(FieldSystemUnkSubCC *unkCC, int fileID) {
unkCC->unk4 = animation;
}
void ov01_02204678(FieldSystemUnkSubCC *unkCC, UnkStruct_FieldSysC0_SubC *unkC0_SubC) {
ov01_0220450C(unkC0_SubC, unkCC->unk4);
void ov01_02204678(FieldSystemUnkSubCC *unkCC, NNSG3dRenderObj *renderObj) {
ov01_0220450C(renderObj, unkCC->unk4);
}
void ov01_02204688(FieldSystemUnkSubCC *unkCC, UnkStruct_FieldSysC0_SubC *unkC0_SubC) {
ov01_02204518(unkC0_SubC, unkCC->unk4);
void ov01_02204688(FieldSystemUnkSubCC *unkCC, NNSG3dRenderObj *renderObj) {
ov01_02204518(renderObj, unkCC->unk4);
}
void ov01_02204698(FieldSystemUnkSubCC *unkCC) {
@@ -477,9 +477,9 @@ void ov01_022047DC(FieldSystemUnkSub104 *unk104) {
unk104->timeOfDay = (TIMEOFDAY)currentTimeOfDay;
for (int i = 0; i < 4; i++) {
if (unk104->unkSub[i].unk0 != 0) {
FieldSystemUnkSub104_Sub8* sub = &unk104->unkSub[i];
ov01_02204518(sub->unk18, sub->animations[ov01_022095EC[previousTimeOfDay]]);
ov01_0220450C(sub->unk18, sub->animations[ov01_022095EC[currentTimeOfDay]]);
FieldSystemUnkSub104_Sub8 *sub = &unk104->unkSub[i];
ov01_02204518(&sub->unk18->renderObj, sub->animations[ov01_022095EC[previousTimeOfDay]]);
ov01_0220450C(&sub->unk18->renderObj, sub->animations[ov01_022095EC[currentTimeOfDay]]);
}
}
}

View File

@@ -153,11 +153,11 @@ BOOL ScrCmd_710(ScriptContext *ctx) {
static void ov03_02256BA8(FieldSystem *fieldSystem, u8 index) {
u16 modelID = ov03_0225945C[index];
UnkStruct_FieldSysC0_SubC *renderObject = Field3dObjectList_GetRenderObjectByID(fieldSystem->unkC0, modelID);
if (renderObject == NULL) {
UnkStruct_FieldSysC0_SubC *unkC0_SubC = Field3dObjectList_GetRenderObjectByID(fieldSystem->unkC0, modelID);
if (unkC0_SubC == NULL) {
GF_AssertFail();
} else {
MapPropAnimationManager_AddAnimationToRenderObj(modelID, sub_020669B4(Save_VarsFlags_Get(fieldSystem->saveData), index), 1, renderObject, fieldSystem->mapPropAnimationManager);
MapPropAnimationManager_AddAnimationToRenderObj(modelID, sub_020669B4(Save_VarsFlags_Get(fieldSystem->saveData), index), 1, &unkC0_SubC->renderObj, fieldSystem->mapPropAnimationManager);
}
}