diff options
| author | Zelllll <56516451+Zelllll@users.noreply.github.com> | 2021-09-18 21:45:41 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-09-18 22:45:41 -0400 |
| commit | 50095d427c21465b7560d7178906a3dee3eea090 (patch) | |
| tree | 9ddb7f29fd61fbdebd0c80bcd7e6cd7be9a5a54c /src/code | |
| parent | 8ac359fda56924c7f50e5ddbf38026a78c09494e (diff) | |
Match `z_actor` (#973)
* matched first function, currently unclear why the other match doesn't appear to work anymore
* matched other function, issue was bss
* remove asm
Diffstat (limited to 'src/code')
| -rw-r--r-- | src/code/z_actor.c | 393 |
1 files changed, 181 insertions, 212 deletions
diff --git a/src/code/z_actor.c b/src/code/z_actor.c index a0dc3d788..87686f852 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -5,6 +5,9 @@ #include "overlays/actors/ovl_En_Part/z_en_part.h" #include "objects/gameplay_keep/gameplay_keep.h" +static CollisionPoly* sCurCeilingPoly; +static s32 sCurCeilingBgId; + void ActorShape_Init(ActorShape* shape, f32 yOffset, ActorShadowFunc shadowDraw, f32 shadowScale) { shape->yOffset = yOffset; shape->shadowDraw = shadowDraw; @@ -95,123 +98,109 @@ void ActorShadow_DrawFoot(GlobalContext* globalCtx, Light* light, MtxF* arg2, s3 CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_actor.c", 1693); } -#ifdef NON_MATCHING -// saved register, stack usage and minor ordering differences void ActorShadow_DrawFeet(Actor* actor, Lights* lights, GlobalContext* globalCtx) { - MtxF spE8; - f32 spE0[2]; - s32 i; - f32* spAC; - f32 temp_10; - u8 temp_14; - f32 temp_f0; - f32 temp_f20; - f32 temp_f20_2; - f32 temp_f22_2; - f32 temp_f24; - s32 temp_a3; - s32 temp_lo; - u8 temp_s6; - Vec3f* phi_s7; - f32 phi_f2; - Light* phi_s0; - s32 phi_s1; - s32 phi_s2; - - temp_f20 = actor->world.pos.y - actor->floorHeight; - - if (temp_f20 > 20.0f) { - temp_10 = actor->shape.shadowScale; - temp_14 = actor->shape.shadowAlpha; + f32 distToFloor = actor->world.pos.y - actor->floorHeight; + + if (distToFloor > 20.0f) { + f32 shadowScale = actor->shape.shadowScale; + u8 shadowAlpha = actor->shape.shadowAlpha; + f32 alphaRatio; + actor->shape.shadowScale *= 0.3f; - actor->shape.shadowAlpha *= ((temp_f20 - 20.0f) * 0.02f) > 1.0f ? 1.0f : ((temp_f20 - 20.0f) * 0.02f); + alphaRatio = (distToFloor - 20.0f) * 0.02f; + actor->shape.shadowAlpha = (f32)actor->shape.shadowAlpha * CLAMP_MAX(alphaRatio, 1.0f); ActorShadow_DrawCircle(actor, lights, globalCtx); - actor->shape.shadowScale = temp_10; - actor->shape.shadowAlpha = temp_14; - } - - if (temp_f20 < 200.0f) { - phi_s7 = &actor->shape.feetPos[FOOT_LEFT]; - spAC = &spE0[0]; - temp_s6 = lights->numLights; - temp_s6 -= 2; + actor->shape.shadowScale = shadowScale; + actor->shape.shadowAlpha = shadowAlpha; + } + + if (distToFloor < 200.0f) { + MtxF floorMtx; + f32 floorHeight[2]; // One for each foot + f32 distToFloor; + f32 shadowAlpha; + f32 shadowScaleX; + f32 shadowScaleZ; + Light* lightPtr; + s32 lightNum; + s32 lightNumMax; + s32 i; + s32 j; + s32 numLights = lights->numLights - 2; + Light* firstLightPtr = &lights->l.l[0]; + Vec3f* feetPosPtr = actor->shape.feetPos; + f32* floorHeightPtr = floorHeight; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_actor.c", 1741); POLY_OPA_DISP = Gfx_CallSetupDL(POLY_OPA_DISP, 0x2C); + actor->shape.feetFloorFlags = 0; for (i = 0; i < 2; i++) { - phi_s7->y += 50.0f; - *spAC = func_800BFCB8(globalCtx, &spE8, phi_s7); - phi_s7->y -= 50.0f; - - actor->shape.feetFloorFlags *= 2; - - phi_f2 = phi_s7->y - *spAC; - - if ((phi_f2 >= -1.0f) && (phi_f2 < 500.0f)) { - phi_s0 = &lights->l.l[0]; - - if (phi_f2 <= 0.0f) { + feetPosPtr->y += 50.0f; + *floorHeightPtr = func_800BFCB8(globalCtx, &floorMtx, feetPosPtr); + feetPosPtr->y -= 50.0f; + actor->shape.feetFloorFlags <<= 1; + distToFloor = feetPosPtr->y - *floorHeightPtr; + + if ((-1.0f <= distToFloor) && (distToFloor < 500.0f)) { + if (distToFloor <= 0.0f) { actor->shape.feetFloorFlags++; } - - if (30.0f < phi_f2) { - phi_f2 = 30.0f; - } - - temp_f24 = actor->shape.shadowAlpha * (1.0f - (phi_f2 * (1.0f / 30))); - - if (30.0f < phi_f2) { - phi_f2 = 30.0f; - } - - temp_f20_2 = 1.0f - (phi_f2 * (1.0f / 70)); - temp_f22_2 = (actor->shape.shadowScale * temp_f20_2) * actor->scale.x; - - phi_s2 = 0; - - for (phi_s1 = 0; phi_s1 < temp_s6; phi_s1++) { - if (phi_s0->l.dir[1] > 0) { - temp_lo = ABS(phi_s0->l.dir[1]) * ((phi_s0->l.col[0] + phi_s0->l.col[1]) + phi_s0->l.col[2]); - if (temp_lo > 0) { - ActorShadow_DrawFoot(globalCtx, phi_s0, &spE8, temp_lo, temp_f24, temp_f22_2, temp_f20_2); - phi_s2 += temp_lo; + distToFloor = CLAMP_MAX(distToFloor, 30.0f); + shadowAlpha = (f32)actor->shape.shadowAlpha * (1.0f - (distToFloor * (1.0f / 30.0f))); + distToFloor = CLAMP_MAX(distToFloor, 30.0f); + shadowScaleZ = 1.0f - (distToFloor * (1.0f / (30.0f + 40.0f))); + shadowScaleX = shadowScaleZ * actor->shape.shadowScale * actor->scale.x; + lightNumMax = 0; + lightPtr = firstLightPtr; + + for (j = 0; j < numLights; j++) { + if (lightPtr->l.dir[1] > 0) { + lightNum = + (lightPtr->l.col[0] + lightPtr->l.col[1] + lightPtr->l.col[2]) * ABS(lightPtr->l.dir[1]); + if (lightNum > 0) { + lightNumMax += lightNum; + ActorShadow_DrawFoot(globalCtx, lightPtr, &floorMtx, lightNum, shadowAlpha, shadowScaleX, + shadowScaleZ); } } - phi_s0++; + lightPtr++; } - for (phi_s1 = 0; phi_s1 < 2; phi_s1++) { - if (phi_s0->l.dir[1] > 0) { - temp_a3 = (ABS(phi_s0->l.dir[1]) * ((phi_s0->l.col[0] + phi_s0->l.col[1]) + phi_s0->l.col[2])) - - (phi_s2 * 8); - if (temp_a3 > 0) { - ActorShadow_DrawFoot(globalCtx, phi_s0, &spE8, temp_a3, temp_f24, temp_f22_2, temp_f20_2); + for (j = 0; j < 2; j++) { + if (lightPtr->l.dir[1] > 0) { + lightNum = + ((lightPtr->l.col[0] + lightPtr->l.col[1] + lightPtr->l.col[2]) * ABS(lightPtr->l.dir[1])) - + (lightNumMax * 8); + if (lightNum > 0) { + ActorShadow_DrawFoot(globalCtx, lightPtr, &floorMtx, lightNum, shadowAlpha, shadowScaleX, + shadowScaleZ); } } - phi_s0++; + lightPtr++; } } - - spAC++; - phi_s7++; + feetPosPtr++; + floorHeightPtr++; } if (!(actor->bgCheckFlags & 1)) { actor->shape.feetFloorFlags = 0; } else if (actor->shape.feetFloorFlags == 3) { - temp_f0 = actor->shape.feetPos[FOOT_LEFT].y - actor->shape.feetPos[FOOT_RIGHT].y; - actor->shape.feetFloorFlags = ((spE0[0] + temp_f0) < (spE0[1] - temp_f0)) ? 2 : 1; + f32 footDistY = actor->shape.feetPos[FOOT_LEFT].y - actor->shape.feetPos[FOOT_RIGHT].y; + + if ((floorHeight[0] + footDistY) < (floorHeight[1] - footDistY)) { + actor->shape.feetFloorFlags = 2; + } else { + actor->shape.feetFloorFlags = 1; + } } CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_actor.c", 1831); } } -#else -#pragma GLOBAL_ASM("asm/non_matchings/code/z_actor/ActorShadow_DrawFeet.s") -#endif void Actor_SetFeetPos(Actor* actor, s32 limbIndex, s32 leftFootIndex, Vec3f* leftFootPos, s32 rightFootIndex, Vec3f* rightFootPos) { @@ -1173,9 +1162,6 @@ s32 func_8002E234(Actor* actor, f32 arg1, s32 arg2) { return true; } -CollisionPoly* sCurCeilingPoly; -s32 sCurCeilingBgId; - s32 func_8002E2AC(GlobalContext* globalCtx, Actor* actor, Vec3f* arg2, s32 arg3) { f32 floorHeightDiff; s32 floorBgId; @@ -1802,68 +1788,67 @@ void func_8002FA60(GlobalContext* globalCtx) { D_8015BC18 = 0.0f; } -#ifdef NON_MATCHING -// some regalloc and odd loading of gSaveContext -void func_8002FBAC(GlobalContext* globalCtx) { - static Vec3f D_80116048 = { 0.0f, -0.05f, 0.0f }; - static Vec3f D_80116054 = { 0.0f, -0.025f, 0.0f }; - static Color_RGBA8 D_80116060 = { 255, 255, 255, 0 }; - static Color_RGBA8 D_80116064 = { 100, 200, 0, 0 }; - Vec3f* temp = &gSaveContext.respawn[RESPAWN_MODE_TOP].pos; - s32 spF0; +void Actor_DrawFaroresWindPointer(GlobalContext* globalCtx) { + s32 lightRadius = -1; + s32 params; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_actor.c", 5308); - spF0 = gSaveContext.respawn[RESPAWN_MODE_TOP].data; + params = gSaveContext.respawn[RESPAWN_MODE_TOP].data; - if (spF0 != 0) { - f32 spD8 = LINK_IS_ADULT ? 80.0f : 60.0f; - f32 spD4 = 1.0f; - s32 spD0 = 0xFF; - s32 spCC = spF0 - 40; - s32 temp2; - s32 pad; + if (params) { + f32 yOffset = LINK_IS_ADULT ? 80.0f : 60.0f; + f32 ratio = 1.0f; + s32 alpha = 255; + s32 temp = params - 40; - if (spCC < 0) { - gSaveContext.respawn[RESPAWN_MODE_TOP].data = ++spF0; - spD4 = ABS(spF0) * 0.025f; + if (temp < 0) { + gSaveContext.respawn[RESPAWN_MODE_TOP].data = ++params; + ratio = ABS(params) * 0.025f; D_8015BC14 = 60; D_8015BC18 = 1.0f; - } else if (D_8015BC14 != 0) { + } else if (D_8015BC14) { D_8015BC14--; } else if (D_8015BC18 > 0.0f) { - f32 spC0 = D_8015BC18; - Vec3f spB4; - f32 spB0 = Math_Vec3f_DistXYZAndStoreDiff(&gSaveContext.respawn[RESPAWN_MODE_DOWN].pos, temp, &spB4); - Vec3f spA4; - - if (spB0 < 20.0f) { + static Vec3f effectVel = { 0.0f, -0.05f, 0.0f }; + static Vec3f effectAccel = { 0.0f, -0.025f, 0.0f }; + static Color_RGBA8 effectPrimCol = { 255, 255, 255, 0 }; + static Color_RGBA8 effectEnvCol = { 100, 200, 0, 0 }; + Vec3f* curPos = &gSaveContext.respawn[RESPAWN_MODE_TOP].pos; + Vec3f* nextPos = &gSaveContext.respawn[RESPAWN_MODE_DOWN].pos; + f32 prevNum = D_8015BC18; + Vec3f dist; + f32 diff = Math_Vec3f_DistXYZAndStoreDiff(nextPos, curPos, &dist); + Vec3f effectPos; + f32 factor; + f32 length; + f32 dx; + f32 speed; + + if (diff < 20.0f) { D_8015BC18 = 0.0f; - Math_Vec3f_Copy(temp, &gSaveContext.respawn[RESPAWN_MODE_DOWN].pos); + Math_Vec3f_Copy(curPos, nextPos); } else { - f32 temp_f2; - f32 sp9C = spB0 * (1.0f / D_8015BC18); - f32 phi_f14 = 20.0f / sp9C; - - phi_f14 = CLAMP_MIN(phi_f14, 0.05f); - Math_StepToF(&D_8015BC18, 0.0f, phi_f14); - - temp_f2 = ((D_8015BC18 / spC0) * spB0) / spB0; - - temp->x = gSaveContext.respawn[RESPAWN_MODE_DOWN].pos.x + (spB4.x * temp_f2); - temp->y = gSaveContext.respawn[RESPAWN_MODE_DOWN].pos.y + (spB4.y * temp_f2); - temp->z = gSaveContext.respawn[RESPAWN_MODE_DOWN].pos.z + (spB4.z * temp_f2); - spD8 += sqrtf(SQ(sp9C / 2.0f) - SQ(spB0 - sp9C / 2.0f)) * 0.2f; - - osSyncPrintf("-------- DISPLAY Y=%f\n", spD8); - } - - spA4.x = temp->x + Rand_CenteredFloat(6.0f); - spA4.y = temp->y + 80.0f + Rand_ZeroOne() * 6.0f; - spA4.z = temp->z + Rand_CenteredFloat(6.0f); - - EffectSsKiraKira_SpawnDispersed(globalCtx, &spA4, &D_80116048, &D_80116054, &D_80116060, &D_80116064, 1000, - 16); + length = diff * (1.0f / D_8015BC18); + speed = 20.0f / length; + speed = CLAMP_MIN(speed, 0.05f); + Math_StepToF(&D_8015BC18, 0.0f, speed); + factor = (diff * (D_8015BC18 / prevNum)) / diff; + curPos->x = nextPos->x + (dist.x * factor); + curPos->y = nextPos->y + (dist.y * factor); + curPos->z = nextPos->z + (dist.z * factor); + length *= 0.5f; + dx = diff - length; + yOffset += sqrtf(SQ(length) - SQ(dx)) * 0.2f; + osSyncPrintf("-------- DISPLAY Y=%f\n", yOffset); + } + + effectPos.x = curPos->x + Rand_CenteredFloat(6.0f); + effectPos.y = curPos->y + 80.0f + (6.0f * Rand_ZeroOne()); + effectPos.z = curPos->z + Rand_CenteredFloat(6.0f); + + EffectSsKiraKira_SpawnDispersed(globalCtx, &effectPos, &effectVel, &effectAccel, &effectPrimCol, + &effectEnvCol, 1000, 16); if (D_8015BC18 == 0.0f) { gSaveContext.respawn[RESPAWN_MODE_TOP] = gSaveContext.respawn[RESPAWN_MODE_DOWN]; @@ -1871,97 +1856,81 @@ void func_8002FBAC(GlobalContext* globalCtx) { gSaveContext.respawn[RESPAWN_MODE_TOP].data = 40; } - gSaveContext.respawn[RESPAWN_MODE_TOP].pos = *temp; - } else if (spCC > 0) { - if (spCC * 0.1f < 1.0f) { - s32 pad2; - s32 pad3; - f32 temp3; - f32 temp4; - Vec3f sp7C; - Vec3f sp70; - - sp7C.x = globalCtx->view.eye.x; - sp7C.y = globalCtx->view.eye.y - spD8; - sp7C.z = globalCtx->view.eye.z; - temp4 = Math_Vec3f_DistXYZAndStoreDiff(&sp7C, temp, &sp70); - temp3 = (((1.0f - spCC * 0.1f) / (1.0f - ((f32)(spCC - 1) * 0.1f))) * temp4) / temp4; - temp->x = sp70.x * temp3 + sp7C.x; - temp->y = sp70.y * temp3 + sp7C.y; - temp->z = sp70.z * temp3 + sp7C.z; + gSaveContext.respawn[RESPAWN_MODE_TOP].pos = *curPos; + } else if (temp > 0) { + Vec3f* curPos = &gSaveContext.respawn[RESPAWN_MODE_TOP].pos; + f32 nextRatio = 1.0f - temp * 0.1f; + f32 curRatio = 1.0f - (f32)(temp - 1) * 0.1f; + Vec3f eye; + Vec3f dist; + f32 diff; - gSaveContext.respawn[RESPAWN_MODE_TOP].pos = *temp; + if (nextRatio > 0.0f) { + eye.x = globalCtx->view.eye.x; + eye.y = globalCtx->view.eye.y - yOffset; + eye.z = globalCtx->view.eye.z; + diff = Math_Vec3f_DistXYZAndStoreDiff(&eye, curPos, &dist); + diff = (diff * (nextRatio / curRatio)) / diff; + curPos->x = eye.x + (dist.x * diff); + curPos->y = eye.y + (dist.y * diff); + curPos->z = eye.z + (dist.z * diff); + gSaveContext.respawn[RESPAWN_MODE_TOP].pos = *curPos; } - spD0 = 0xFF - 30 * spCC; + alpha = 255 - (temp * 30); - if (spD0 < 0) { + if (alpha < 0) { gSaveContext.fw.set = 0; gSaveContext.respawn[RESPAWN_MODE_TOP].data = 0; - spD0 = 0; + alpha = 0; } else { - gSaveContext.respawn[RESPAWN_MODE_TOP].data = ++spF0; + gSaveContext.respawn[RESPAWN_MODE_TOP].data = ++params; } - spD4 = (f32)spCC * 0.2 + 1.0f; + ratio = 1.0f + ((f32)temp * 0.2); // required to match } - if (globalCtx->csCtx.state == CS_STATE_IDLE) { - temp2 = gSaveContext.respawn[RESPAWN_MODE_TOP].entranceIndex; - if ((temp2 == gSaveContext.entranceIndex) && - (globalCtx->roomCtx.curRoom.num == gSaveContext.respawn[RESPAWN_MODE_TOP].roomIndex)) { - f32 phi_f10; - f32 phi_f6; + lightRadius = 500.0f * ratio; - POLY_XLU_DISP = Gfx_CallSetupDL(POLY_XLU_DISP, 0x19); - // bad gSaveContext load here - Matrix_Translate(temp->x, temp->y + spD8, temp->z, MTXMODE_NEW); - Matrix_Scale(0.025f * spD4, 0.025f * spD4, 0.025f * spD4, MTXMODE_APPLY); - Matrix_Mult(&globalCtx->mf_11DA0, MTXMODE_APPLY); - Matrix_Push(); + if ((globalCtx->csCtx.state == CS_STATE_IDLE) && + (((void)0, gSaveContext.respawn[RESPAWN_MODE_TOP].entranceIndex) == + ((void)0, gSaveContext.entranceIndex)) && + (((void)0, gSaveContext.respawn[RESPAWN_MODE_TOP].roomIndex) == globalCtx->roomCtx.curRoom.num)) { + f32 scale = 0.025f * ratio; - gDPPipeSync(POLY_XLU_DISP++); - gDPSetPrimColor(POLY_XLU_DISP++, 0x80, 0x80, 255, 255, 200, spD0); - gDPSetEnvColor(POLY_XLU_DISP++, 100, 200, 0, 255); + POLY_XLU_DISP = Gfx_CallSetupDL(POLY_XLU_DISP, 0x19); - phi_f10 = (globalCtx->gameplayFrames * 1500) & 0xFFFF; - Matrix_RotateZ((phi_f10 * M_PI) / 32768.0f, MTXMODE_APPLY); + Matrix_Translate(((void)0, gSaveContext.respawn[RESPAWN_MODE_TOP].pos.x), + ((void)0, gSaveContext.respawn[RESPAWN_MODE_TOP].pos.y) + yOffset, + ((void)0, gSaveContext.respawn[RESPAWN_MODE_TOP].pos.z), MTXMODE_NEW); + Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); + Matrix_Mult(&globalCtx->mf_11DA0, MTXMODE_APPLY); + Matrix_Push(); - gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_actor.c", 5458), - G_MTX_MODELVIEW | G_MTX_LOAD); - gSPDisplayList(POLY_XLU_DISP++, &gEffFlash1DL); + gDPPipeSync(POLY_XLU_DISP++); + gDPSetPrimColor(POLY_XLU_DISP++, 128, 128, 255, 255, 200, alpha); + gDPSetEnvColor(POLY_XLU_DISP++, 100, 200, 0, 255); - Matrix_Pop(); - phi_f6 = ~((globalCtx->gameplayFrames * 1200) & 0xFFFF); - Matrix_RotateZ((phi_f6 * M_PI) / 32768.0f, MTXMODE_APPLY); - - gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_actor.c", 5463), - G_MTX_MODELVIEW | G_MTX_LOAD); - gSPDisplayList(POLY_XLU_DISP++, &gEffFlash1DL); - } - { - Vec3f lightPos; + Matrix_RotateZ(((globalCtx->gameplayFrames * 1500) & 0xFFFF) * M_PI / 32768.0f, MTXMODE_APPLY); + gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_actor.c", 5458), + G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH); + gSPDisplayList(POLY_XLU_DISP++, gEffFlash1DL); - lightPos.x = gSaveContext.respawn[RESPAWN_MODE_TOP].pos.x; - lightPos.y = gSaveContext.respawn[RESPAWN_MODE_TOP].pos.y + spD8; - lightPos.z = gSaveContext.respawn[RESPAWN_MODE_TOP].pos.z; + Matrix_Pop(); + Matrix_RotateZ(~((globalCtx->gameplayFrames * 1200) & 0xFFFF) * M_PI / 32768.0f, MTXMODE_APPLY); - Lights_PointNoGlowSetInfo(&D_8015BC00, lightPos.x, lightPos.y, lightPos.z, 0xFF, 0xFF, 0xFF, - 500.0f * spD4); - } - CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_actor.c", 5474); + gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_actor.c", 5463), + G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH); + gSPDisplayList(POLY_XLU_DISP++, gEffFlash1DL); } - } -} -#else -static Vec3f D_80116048 = { 0.0f, -0.05f, 0.0f }; -static Vec3f D_80116054 = { 0.0f, -0.025f, 0.0f }; -static Color_RGBA8 D_80116060 = { 255, 255, 255, 0 }; -static Color_RGBA8 D_80116064 = { 100, 200, 0, 0 }; + Lights_PointNoGlowSetInfo(&D_8015BC00, ((void)0, gSaveContext.respawn[RESPAWN_MODE_TOP].pos.x), + ((void)0, gSaveContext.respawn[RESPAWN_MODE_TOP].pos.y) + yOffset, + ((void)0, gSaveContext.respawn[RESPAWN_MODE_TOP].pos.z), 255, 255, 255, lightRadius); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_actor/func_8002FBAC.s") -#endif + CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_actor.c", 5474); + } +} void func_80030488(GlobalContext* globalCtx) { LightContext_RemoveLight(globalCtx, &globalCtx->lightCtx, D_8015BC10); @@ -2447,7 +2416,7 @@ void func_800315AC(GlobalContext* globalCtx, ActorContext* actorCtx) { } } - func_8002FBAC(globalCtx); + Actor_DrawFaroresWindPointer(globalCtx); if (IREG(32) == 0) { Lights_DrawGlow(globalCtx); |
