diff --git a/asm/include/overlay_01_021E8744.inc b/asm/include/overlay_01_021E8744.inc index 73d6a71e6..fc2cbf93b 100644 --- a/asm/include/overlay_01_021E8744.inc +++ b/asm/include/overlay_01_021E8744.inc @@ -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 diff --git a/asm/overlay_01_021E8744.s b/asm/overlay_01_021E8744.s index 3d63afb67..a69ef7e4d 100644 --- a/asm/overlay_01_021E8744.s +++ b/asm/overlay_01_021E8744.s @@ -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 diff --git a/include/field/map_prop_animation.h b/include/field/map_prop_animation.h index 52089df77..cc8a3b0ca 100644 --- a/include/field/map_prop_animation.h +++ b/include/field/map_prop_animation.h @@ -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); diff --git a/include/field/overlay_01_02204004.h b/include/field/overlay_01_02204004.h index 9fc4e9831..e88939ccf 100644 --- a/include/field/overlay_01_02204004.h +++ b/include/field/overlay_01_02204004.h @@ -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); diff --git a/src/field/legend_cutscene_camera.c b/src/field/legend_cutscene_camera.c index 49e0efbbb..4398f4125 100644 --- a/src/field/legend_cutscene_camera.c +++ b/src/field/legend_cutscene_camera.c @@ -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; } diff --git a/src/field/map_prop_animation.c b/src/field/map_prop_animation.c index edf78ed9d..309a5f9e4 100644 --- a/src/field/map_prop_animation.c +++ b/src/field/map_prop_animation.c @@ -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; -} \ No newline at end of file +} + +// 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; +} diff --git a/src/field/overlay_01_02204004.c b/src/field/overlay_01_02204004.c index 77cbb0b7e..174650c34 100644 --- a/src/field/overlay_01_02204004.c +++ b/src/field/overlay_01_02204004.c @@ -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]]); } } } diff --git a/src/overlay_03/shop_menu.c b/src/overlay_03/shop_menu.c index 4e9928a33..c49865fe3 100644 --- a/src/overlay_03/shop_menu.c +++ b/src/overlay_03/shop_menu.c @@ -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); } }