mirror of
https://github.com/zeldaret/oot.git
synced 2025-07-05 07:24:34 +00:00
Actor struct cleanup (#208)
* cleanup a few things * fix mistake * yawTowardsLink * run format * pr suggestion
This commit is contained in:
parent
06fc61c83d
commit
1c98ac27eb
37 changed files with 292 additions and 303 deletions
|
@ -8,7 +8,8 @@ u16 sMempakCompanyCode = 1;
|
|||
u32 sMempakGameCode = 1;
|
||||
|
||||
// "ZELDA DEMO TOOL "
|
||||
u8 sMempakGameName[0x10] = { 0x33, 0x1E, 0x25, 0x1D, 0x1A, 0x0F, 0x1D, 0x1E, 0x26, 0x28, 0x0F, 0x2D, 0x28, 0x28, 0x25, 0x0F };
|
||||
u8 sMempakGameName[0x10] = { 0x33, 0x1E, 0x25, 0x1D, 0x1A, 0x0F, 0x1D, 0x1E,
|
||||
0x26, 0x28, 0x0F, 0x2D, 0x28, 0x28, 0x25, 0x0F };
|
||||
u8 sMempakExtName[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
||||
|
||||
s32 Mempak_Init(s32 controllerNb) {
|
||||
|
|
|
@ -19,7 +19,7 @@ void func_8002B200(Actor* actor, LightMapper* lightMapper, GlobalContext* global
|
|||
Gfx* dispRefs[4];
|
||||
|
||||
if (actor->floorPoly != NULL) {
|
||||
temp1 = actor->posRot.pos.y - actor->unk_80;
|
||||
temp1 = actor->posRot.pos.y - actor->groundY;
|
||||
|
||||
if (temp1 >= -50.0f && temp1 < 500.0f) {
|
||||
gfxCtx = globalCtx->state.gfxCtx;
|
||||
|
@ -40,7 +40,7 @@ void func_8002B200(Actor* actor, LightMapper* lightMapper, GlobalContext* global
|
|||
gDPSetPrimColor(gfxCtx->polyOpa.p++, 0, 0, 0, 0, 0, (u32)(actor->shape.unk_14 * temp2) & 0xFF);
|
||||
}
|
||||
|
||||
func_80038A28(actor->floorPoly, actor->posRot.pos.x, actor->unk_80, actor->posRot.pos.z, &sp60);
|
||||
func_80038A28(actor->floorPoly, actor->posRot.pos.x, actor->groundY, actor->posRot.pos.z, &sp60);
|
||||
Matrix_Put(&sp60);
|
||||
|
||||
if (dlist != D_04049210) {
|
||||
|
@ -122,7 +122,7 @@ void ActorShadow_DrawFunc_Teardrop(Actor* actor, LightMapper* lightMapper, Globa
|
|||
s32 phi_s1;
|
||||
s32 phi_s2;
|
||||
|
||||
temp_f20 = actor->posRot.pos.y - actor->unk_80;
|
||||
temp_f20 = actor->posRot.pos.y - actor->groundY;
|
||||
|
||||
if (temp_f20 > 20.0f) {
|
||||
temp_10 = actor->shape.unk_10;
|
||||
|
@ -839,7 +839,7 @@ void Actor_Init(Actor* actor, GlobalContext* globalCtx) {
|
|||
Actor_SetScale(actor, 0.01f);
|
||||
actor->unk_1F = 3;
|
||||
actor->minVelocityY = -20.0f;
|
||||
actor->waterSurfaceDist = FLT_MAX;
|
||||
actor->xyzDistFromLinkSq = FLT_MAX;
|
||||
actor->naviEnemyId = 0xFF;
|
||||
actor->unk_F4 = 1000.0f;
|
||||
actor->unk_F8 = 350.0f;
|
||||
|
@ -1091,7 +1091,7 @@ void func_8002DFA4(DynaPolyActor* dynaActor, f32 arg1, s16 arg2) {
|
|||
|
||||
s32 func_8002DFC8(Actor* actor, s16 arg1, GlobalContext* globalCtx) {
|
||||
Player* player = PLAYER;
|
||||
s16 var = (s16)(actor->rotTowardsLinkY + 0x8000) - player->actor.shape.rot.y;
|
||||
s16 var = (s16)(actor->yawTowardsLink + 0x8000) - player->actor.shape.rot.y;
|
||||
|
||||
if (ABS(var) < arg1) {
|
||||
return 1;
|
||||
|
@ -1111,7 +1111,7 @@ s32 func_8002E020(Actor* actorA, Actor* actorB, s16 arg2) {
|
|||
}
|
||||
|
||||
s32 func_8002E084(Actor* actor, s16 arg1) {
|
||||
s16 var = actor->rotTowardsLinkY - actor->shape.rot.y;
|
||||
s16 var = actor->yawTowardsLink - actor->shape.rot.y;
|
||||
|
||||
if (ABS(var) < arg1) {
|
||||
return 1;
|
||||
|
@ -1131,10 +1131,10 @@ s32 func_8002E0D0(Actor* actorA, Actor* actorB, s16 arg2) {
|
|||
}
|
||||
|
||||
s32 func_8002E12C(Actor* actor, f32 arg1, s16 arg2) {
|
||||
s16 var = actor->rotTowardsLinkY - actor->shape.rot.y;
|
||||
s16 var = actor->yawTowardsLink - actor->shape.rot.y;
|
||||
|
||||
if (ABS(var) < arg2) {
|
||||
f32 xyzDistanceFromLink = sqrtf(SQ(actor->xzDistanceFromLink) + SQ(actor->yDistanceFromLink));
|
||||
f32 xyzDistanceFromLink = sqrtf(SQ(actor->xzDistFromLink) + SQ(actor->yDistFromLink));
|
||||
|
||||
if (xyzDistanceFromLink < arg1) {
|
||||
return 1;
|
||||
|
@ -1180,14 +1180,14 @@ s32 func_8002E2AC(GlobalContext* globalCtx, Actor* actor, Vec3f* arg2, s32 arg3)
|
|||
|
||||
arg2->y += 50.0f;
|
||||
|
||||
actor->unk_80 = func_8003CA0C(globalCtx, &globalCtx->colCtx, &actor->floorPoly, &sp30, actor, arg2);
|
||||
actor->groundY = func_8003CA0C(globalCtx, &globalCtx->colCtx, &actor->floorPoly, &sp30, actor, arg2);
|
||||
actor->bgCheckFlags &= ~0x0086;
|
||||
|
||||
if (actor->unk_80 <= -32000.0f) {
|
||||
if (actor->groundY <= -32000.0f) {
|
||||
return func_8002E234(actor, -32000.0f, arg3);
|
||||
}
|
||||
|
||||
sp34 = actor->unk_80 - actor->posRot.pos.y;
|
||||
sp34 = actor->groundY - actor->posRot.pos.y;
|
||||
actor->floorPolySource = sp30;
|
||||
|
||||
if (sp34 >= 0.0f) {
|
||||
|
@ -1204,7 +1204,7 @@ s32 func_8002E2AC(GlobalContext* globalCtx, Actor* actor, Vec3f* arg2, s32 arg3)
|
|||
}
|
||||
}
|
||||
|
||||
actor->posRot.pos.y = actor->unk_80;
|
||||
actor->posRot.pos.y = actor->groundY;
|
||||
|
||||
if (actor->velocity.y <= 0.0f) {
|
||||
if (!(actor->bgCheckFlags & 0x1)) {
|
||||
|
@ -1279,8 +1279,8 @@ void func_8002E4B4(GlobalContext* globalCtx, Actor* actor, f32 arg2, f32 arg3, f
|
|||
func_8002E2AC(globalCtx, actor, &sp64, arg5);
|
||||
sp50 = actor->posRot.pos.y;
|
||||
if (func_8004213C(globalCtx, &globalCtx->colCtx, actor->posRot.pos.x, actor->posRot.pos.z, &sp50, &sp54)) {
|
||||
actor->unk_84 = sp50 - actor->posRot.pos.y;
|
||||
if (actor->unk_84 < 0.0f) {
|
||||
actor->waterY = sp50 - actor->posRot.pos.y;
|
||||
if (actor->waterY < 0.0f) {
|
||||
actor->bgCheckFlags &= ~0x60;
|
||||
} else {
|
||||
if (!(actor->bgCheckFlags & 0x20)) {
|
||||
|
@ -1298,7 +1298,7 @@ void func_8002E4B4(GlobalContext* globalCtx, Actor* actor, f32 arg2, f32 arg3, f
|
|||
}
|
||||
} else {
|
||||
actor->bgCheckFlags &= ~0x60;
|
||||
actor->unk_84 = -32000.0f;
|
||||
actor->waterY = -32000.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1445,14 +1445,15 @@ f32 func_8002EFC0(Actor* actor, Player* player, s16 arg2) {
|
|||
s16 var;
|
||||
s16 abs_var;
|
||||
|
||||
var = (s16)(actor->rotTowardsLinkY - 0x8000) - arg2;
|
||||
var = (s16)(actor->yawTowardsLink - 0x8000) - arg2;
|
||||
abs_var = ABS(var);
|
||||
|
||||
if (player->unk_664 != NULL) {
|
||||
if ((abs_var > 0x4000) || (actor->flags & 0x8000000)) {
|
||||
return FLT_MAX;
|
||||
} else {
|
||||
return actor->waterSurfaceDist - actor->waterSurfaceDist * 0.8f * ((0x4000 - abs_var) * 3.0517578125e-05f);
|
||||
return actor->xyzDistFromLinkSq -
|
||||
actor->xyzDistFromLinkSq * 0.8f * ((0x4000 - abs_var) * 3.0517578125e-05f);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1460,7 +1461,7 @@ f32 func_8002EFC0(Actor* actor, Player* player, s16 arg2) {
|
|||
return FLT_MAX;
|
||||
}
|
||||
|
||||
return actor->waterSurfaceDist;
|
||||
return actor->xyzDistFromLinkSq;
|
||||
}
|
||||
#else
|
||||
extern f32 func_8002EFC0(Actor* actor, Player* player, s16 arg2);
|
||||
|
@ -1491,13 +1492,13 @@ s32 func_8002F0C8(Actor* actor, Player* player, s32 flag) {
|
|||
}
|
||||
|
||||
if (!flag) {
|
||||
var = (s16)(actor->rotTowardsLinkY - 0x8000) - player->actor.shape.rot.y;
|
||||
var = (s16)(actor->yawTowardsLink - 0x8000) - player->actor.shape.rot.y;
|
||||
abs_var = ABS(var);
|
||||
|
||||
if ((player->unk_664 == NULL) && (abs_var > 0x2AAA)) {
|
||||
dist = FLT_MAX;
|
||||
} else {
|
||||
dist = actor->waterSurfaceDist;
|
||||
dist = actor->xyzDistFromLinkSq;
|
||||
}
|
||||
|
||||
return !func_8002F090(actor, D_80115FF8[actor->unk_1F].unk_4 * dist);
|
||||
|
@ -1521,13 +1522,13 @@ s32 func_8002F1C4(Actor* actor, GlobalContext* globalCtx, f32 arg2, f32 arg3, u3
|
|||
// This is convoluted but it seems like it must be a single if statement to match
|
||||
if ((player->actor.flags & 0x100) || ((arg4 != 0) && func_8008E988(globalCtx)) ||
|
||||
((actor->unk_10C == 0) &&
|
||||
((arg3 < fabsf(actor->yDistanceFromLink)) || (player->targetActorDistance < actor->xzDistanceFromLink) ||
|
||||
(arg2 < actor->xzDistanceFromLink)))) {
|
||||
((arg3 < fabsf(actor->yDistFromLink)) || (player->targetActorDistance < actor->xzDistFromLink) ||
|
||||
(arg2 < actor->xzDistFromLink)))) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
player->naviTargetActor = actor;
|
||||
player->targetActorDistance = actor->xzDistanceFromLink;
|
||||
player->targetActorDistance = actor->xzDistFromLink;
|
||||
player->exchangeItemId = arg4;
|
||||
|
||||
return 1;
|
||||
|
@ -1585,8 +1586,8 @@ s32 func_8002F434(Actor* actor, GlobalContext* globalCtx, s32 getItemId, f32 xzR
|
|||
if ((((player->heldActor != NULL) || (actor == player->naviTargetActor)) && (getItemId > 0) &&
|
||||
(getItemId < 0x7E)) ||
|
||||
(!(player->stateFlags1 & 0x20000800))) {
|
||||
if ((actor->xzDistanceFromLink < xzRange) && (fabsf(actor->yDistanceFromLink) < yRange)) {
|
||||
var = actor->rotTowardsLinkY - player->actor.shape.rot.y;
|
||||
if ((actor->xzDistFromLink < xzRange) && (fabsf(actor->yDistFromLink) < yRange)) {
|
||||
var = actor->yawTowardsLink - player->actor.shape.rot.y;
|
||||
abs_var = ABS(var);
|
||||
if ((getItemId != 0) || (player->getItemDirection < abs_var)) {
|
||||
player->getItemId = getItemId;
|
||||
|
@ -1634,8 +1635,8 @@ void func_8002F5C4(Actor* actorA, Actor* actorB, GlobalContext* globalCtx) {
|
|||
void func_8002F5F0(Actor* actor, GlobalContext* globalCtx) {
|
||||
Player* player = PLAYER;
|
||||
|
||||
if (actor->waterSurfaceDist < player->unk_6A4) {
|
||||
player->unk_6A4 = actor->waterSurfaceDist;
|
||||
if (actor->xyzDistFromLinkSq < player->unk_6A4) {
|
||||
player->unk_6A4 = actor->xyzDistFromLinkSq;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1704,7 +1705,7 @@ void func_8002F850(GlobalContext* globalCtx, Actor* actor) {
|
|||
s32 sfxId;
|
||||
|
||||
if (actor->bgCheckFlags & 0x20) {
|
||||
if (actor->unk_84 < 20.0f) {
|
||||
if (actor->waterY < 20.0f) {
|
||||
sfxId = NA_SE_PL_WALK_WATER0;
|
||||
} else {
|
||||
sfxId = NA_SE_PL_WALK_WATER1;
|
||||
|
@ -1718,37 +1719,37 @@ void func_8002F850(GlobalContext* globalCtx, Actor* actor) {
|
|||
}
|
||||
|
||||
void func_8002F8F0(Actor* actor, u16 sfxId) {
|
||||
actor->soundEffect = sfxId;
|
||||
actor->sfx = sfxId;
|
||||
actor->flags |= 0x80000;
|
||||
actor->flags &= ~0x10300000;
|
||||
}
|
||||
|
||||
void func_8002F91C(Actor* actor, u16 sfxId) {
|
||||
actor->soundEffect = sfxId;
|
||||
actor->sfx = sfxId;
|
||||
actor->flags |= 0x100000;
|
||||
actor->flags &= ~0x10280000;
|
||||
}
|
||||
|
||||
void func_8002F948(Actor* actor, u16 sfxId) {
|
||||
actor->soundEffect = sfxId;
|
||||
actor->sfx = sfxId;
|
||||
actor->flags |= 0x200000;
|
||||
actor->flags &= ~0x10180000;
|
||||
}
|
||||
|
||||
void func_8002F974(Actor* actor, u16 sfxId) {
|
||||
actor->flags &= ~0x10380000;
|
||||
actor->soundEffect = sfxId;
|
||||
actor->sfx = sfxId;
|
||||
}
|
||||
|
||||
void func_8002F994(Actor* actor, s32 sfxId) {
|
||||
actor->flags |= 0x10000000;
|
||||
actor->flags &= ~0x00380000;
|
||||
if (sfxId < NA_SE_PL_LAND_GRASS) {
|
||||
actor->soundEffect = NA_SE_PL_WALK_DIRT;
|
||||
actor->sfx = NA_SE_PL_WALK_DIRT;
|
||||
} else if (sfxId < NA_SE_PL_DIVE_BUBBLE) {
|
||||
actor->soundEffect = NA_SE_PL_WALK_CONCRETE;
|
||||
actor->sfx = NA_SE_PL_WALK_CONCRETE;
|
||||
} else {
|
||||
actor->soundEffect = NA_SE_PL_WALK_SAND;
|
||||
actor->sfx = NA_SE_PL_WALK_SAND;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2085,7 +2086,7 @@ void Actor_UpdateAll(GlobalContext* globalCtx, ActorContext* actorCtx) {
|
|||
actor->posRot.pos.y = -25000.0f;
|
||||
}
|
||||
|
||||
actor->soundEffect = 0;
|
||||
actor->sfx = 0;
|
||||
|
||||
if (actor->init != NULL) {
|
||||
if (Object_IsLoaded(&globalCtx->objectCtx, actor->objBankIndex)) {
|
||||
|
@ -2111,11 +2112,11 @@ void Actor_UpdateAll(GlobalContext* globalCtx, ActorContext* actorCtx) {
|
|||
}
|
||||
} else {
|
||||
Math_Vec3f_Copy(&actor->pos4, &actor->posRot.pos);
|
||||
actor->xzDistanceFromLink = func_8002DB8C(actor, &player->actor);
|
||||
actor->yDistanceFromLink = Actor_HeightDiff(actor, &player->actor);
|
||||
actor->waterSurfaceDist = SQ(actor->xzDistanceFromLink) + SQ(actor->yDistanceFromLink);
|
||||
actor->xzDistFromLink = func_8002DB8C(actor, &player->actor);
|
||||
actor->yDistFromLink = Actor_HeightDiff(actor, &player->actor);
|
||||
actor->xyzDistFromLinkSq = SQ(actor->xzDistFromLink) + SQ(actor->yDistFromLink);
|
||||
|
||||
actor->rotTowardsLinkY = func_8002DA78(actor, &player->actor);
|
||||
actor->yawTowardsLink = func_8002DA78(actor, &player->actor);
|
||||
actor->flags &= ~0x1000000;
|
||||
|
||||
if ((DECR(actor->freeze) == 0) && (actor->flags & 0x50)) {
|
||||
|
@ -2130,8 +2131,8 @@ void Actor_UpdateAll(GlobalContext* globalCtx, ActorContext* actorCtx) {
|
|||
}
|
||||
|
||||
Actor_SetObjectDependency(globalCtx, actor);
|
||||
if (actor->unk_114 != 0) {
|
||||
actor->unk_114--;
|
||||
if (actor->dmgEffectTimer != 0) {
|
||||
actor->dmgEffectTimer--;
|
||||
}
|
||||
actor->update(actor, globalCtx);
|
||||
func_8003F8EC(globalCtx, &globalCtx->colCtx.dyna, actor);
|
||||
|
@ -2226,28 +2227,28 @@ void Actor_Draw(GlobalContext* globalCtx, Actor* actor) {
|
|||
gSPSegment(gfxCtx->polyOpa.p++, 0x06, globalCtx->objectCtx.status[actor->objBankIndex].segment);
|
||||
gSPSegment(gfxCtx->polyXlu.p++, 0x06, globalCtx->objectCtx.status[actor->objBankIndex].segment);
|
||||
|
||||
if (actor->unk_114 != 0) {
|
||||
if (actor->dmgEffectTimer != 0) {
|
||||
// Must be inline data to match
|
||||
Color_RGBA8 sp2C = { 0x00, 0x00, 0x00, 0xFF };
|
||||
if (actor->unk_112 & 0x8000) {
|
||||
sp2C.r = sp2C.g = sp2C.b = ((actor->unk_112 & 0x1F00) >> 5) | 7;
|
||||
} else if (actor->unk_112 & 0x4000) {
|
||||
sp2C.r = ((actor->unk_112 & 0x1F00) >> 5) | 7;
|
||||
if (actor->dmgEffectParams & 0x8000) {
|
||||
sp2C.r = sp2C.g = sp2C.b = ((actor->dmgEffectParams & 0x1F00) >> 5) | 7;
|
||||
} else if (actor->dmgEffectParams & 0x4000) {
|
||||
sp2C.r = ((actor->dmgEffectParams & 0x1F00) >> 5) | 7;
|
||||
} else {
|
||||
sp2C.b = ((actor->unk_112 & 0x1F00) >> 5) | 7;
|
||||
sp2C.b = ((actor->dmgEffectParams & 0x1F00) >> 5) | 7;
|
||||
}
|
||||
|
||||
if (actor->unk_112 & 0x2000) {
|
||||
func_80026860(globalCtx, &sp2C, actor->unk_114, actor->unk_112 & 0xFF);
|
||||
if (actor->dmgEffectParams & 0x2000) {
|
||||
func_80026860(globalCtx, &sp2C, actor->dmgEffectTimer, actor->dmgEffectParams & 0xFF);
|
||||
} else {
|
||||
func_80026400(globalCtx, &sp2C, actor->unk_114, actor->unk_112 & 0xFF);
|
||||
func_80026400(globalCtx, &sp2C, actor->dmgEffectTimer, actor->dmgEffectParams & 0xFF);
|
||||
}
|
||||
}
|
||||
|
||||
actor->draw(actor, globalCtx);
|
||||
|
||||
if (actor->unk_114 != 0) {
|
||||
if (actor->unk_112 & 0x2000) {
|
||||
if (actor->dmgEffectTimer != 0) {
|
||||
if (actor->dmgEffectParams & 0x2000) {
|
||||
func_80026A6C(globalCtx);
|
||||
} else {
|
||||
func_80026608(globalCtx);
|
||||
|
@ -2265,15 +2266,15 @@ void Actor_Draw(GlobalContext* globalCtx, Actor* actor) {
|
|||
|
||||
void func_80030ED8(Actor* actor) {
|
||||
if (actor->flags & 0x80000) {
|
||||
Audio_PlaySoundGeneral(actor->soundEffect, &actor->unk_E4, 4, &D_801333E0, &D_801333E0, &D_801333E8);
|
||||
Audio_PlaySoundGeneral(actor->sfx, &actor->unk_E4, 4, &D_801333E0, &D_801333E0, &D_801333E8);
|
||||
} else if (actor->flags & 0x100000) {
|
||||
func_80078884(actor->soundEffect);
|
||||
func_80078884(actor->sfx);
|
||||
} else if (actor->flags & 0x200000) {
|
||||
func_800788CC(actor->soundEffect);
|
||||
func_800788CC(actor->sfx);
|
||||
} else if (actor->flags & 0x10000000) {
|
||||
func_800F4C58(&D_801333D4, 0x2021, (s8)(actor->soundEffect - 1));
|
||||
func_800F4C58(&D_801333D4, 0x2021, (s8)(actor->sfx - 1));
|
||||
} else {
|
||||
func_80078914(&actor->unk_E4, actor->soundEffect);
|
||||
func_80078914(&actor->unk_E4, actor->sfx);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2421,7 +2422,7 @@ void func_800315AC(GlobalContext* globalCtx, ActorContext* actorCtx) {
|
|||
}
|
||||
|
||||
if ((HREG(64) != 1) || ((HREG(65) != -1) && (HREG(65) != HREG(66))) || (HREG(69) == 0)) {
|
||||
if (actor->soundEffect != 0) {
|
||||
if (actor->sfx != 0) {
|
||||
func_80030ED8(actor);
|
||||
}
|
||||
}
|
||||
|
@ -2968,10 +2969,10 @@ void func_800328D4(GlobalContext* globalCtx, ActorContext* actorCtx, Player* pla
|
|||
|
||||
while (actor != NULL) {
|
||||
if ((actor->update != NULL) && ((Player*)actor != player) && ((actor->flags & 1) == 1)) {
|
||||
if ((actorType == ACTORTYPE_ENEMY) && ((actor->flags & 5) == 5) && (actor->waterSurfaceDist < 250000.0f) &&
|
||||
(actor->waterSurfaceDist < D_8015BBF4)) {
|
||||
if ((actorType == ACTORTYPE_ENEMY) && ((actor->flags & 5) == 5) && (actor->xyzDistFromLinkSq < 250000.0f) &&
|
||||
(actor->xyzDistFromLinkSq < D_8015BBF4)) {
|
||||
actorCtx->targetCtx.unk_90 = actor;
|
||||
D_8015BBF4 = actor->waterSurfaceDist;
|
||||
D_8015BBF4 = actor->xyzDistFromLinkSq;
|
||||
}
|
||||
|
||||
if (actor != sp84) {
|
||||
|
@ -3199,7 +3200,7 @@ void func_80033260(GlobalContext* globalCtx, Actor* actor, Vec3f* arg2, f32 arg3
|
|||
s32 i;
|
||||
|
||||
var = (Math_Rand_ZeroOne() - 0.5f) * 6.28f;
|
||||
sp9C.y = actor->unk_80;
|
||||
sp9C.y = actor->groundY;
|
||||
sp84.y += (Math_Rand_ZeroOne() - 0.5f) * 0.2f;
|
||||
|
||||
for (i = arg4; i >= 0; i--) {
|
||||
|
@ -3517,9 +3518,9 @@ void func_80033E1C(GlobalContext* globalCtx, s16 arg1, s16 arg2, s16 arg3) {
|
|||
|
||||
void func_80033E88(Actor* actor, GlobalContext* globalCtx, s16 arg2, s16 arg3) {
|
||||
if (arg2 >= 5) {
|
||||
func_800AA000(actor->waterSurfaceDist, 0xFF, 0x14, 0x96);
|
||||
func_800AA000(actor->xyzDistFromLinkSq, 0xFF, 0x14, 0x96);
|
||||
} else {
|
||||
func_800AA000(actor->waterSurfaceDist, 0xB4, 0x14, 0x64);
|
||||
func_800AA000(actor->xyzDistFromLinkSq, 0xB4, 0x14, 0x64);
|
||||
}
|
||||
|
||||
func_80033DB8(globalCtx, arg2, arg3);
|
||||
|
@ -3613,8 +3614,8 @@ void func_8003426C(Actor* actor, s16 arg1, s16 arg2, s16 arg3, s16 arg4) {
|
|||
Audio_PlayActorSound2(actor, NA_SE_EN_LIGHT_ARROW_HIT);
|
||||
}
|
||||
|
||||
actor->unk_112 = arg1 | arg3 | ((arg2 & 0xF8) << 5) | arg4;
|
||||
actor->unk_114 = arg4;
|
||||
actor->dmgEffectParams = arg1 | arg3 | ((arg2 & 0xF8) << 5) | arg4;
|
||||
actor->dmgEffectTimer = arg4;
|
||||
}
|
||||
|
||||
Hilite* func_800342EC(Vec3f* object, GlobalContext* globalCtx) {
|
||||
|
@ -4004,11 +4005,10 @@ s32 func_800354B4(GlobalContext* globalCtx, Actor* actor, f32 range, s16 arg3, s
|
|||
s16 var1;
|
||||
s16 var2;
|
||||
|
||||
var1 = (s16)(actor->rotTowardsLinkY + 0x8000) - player->actor.shape.rot.y;
|
||||
var2 = actor->rotTowardsLinkY - arg5;
|
||||
var1 = (s16)(actor->yawTowardsLink + 0x8000) - player->actor.shape.rot.y;
|
||||
var2 = actor->yawTowardsLink - arg5;
|
||||
|
||||
if ((actor->xzDistanceFromLink <= range) && (player->swordState != 0) && (arg4 >= ABS(var1)) &&
|
||||
(arg3 >= ABS(var2))) {
|
||||
if ((actor->xzDistFromLink <= range) && (player->swordState != 0) && (arg4 >= ABS(var1)) && (arg3 >= ABS(var2))) {
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
|
@ -5473,18 +5473,18 @@ s32 func_80037D98(GlobalContext* globalCtx, Actor* actor, s16 arg2, s32* arg3) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
var = actor->rotTowardsLinkY - actor->shape.rot.y;
|
||||
var = actor->yawTowardsLink - actor->shape.rot.y;
|
||||
abs_var = ABS(var);
|
||||
|
||||
if (abs_var >= 0x4300) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((actor->waterSurfaceDist > 25600.0f) && (actor->unk_10C == 0)) {
|
||||
if ((actor->xyzDistFromLinkSq > 25600.0f) && (actor->unk_10C == 0)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (actor->waterSurfaceDist <= 6400.0f) {
|
||||
if (actor->xyzDistFromLinkSq <= 6400.0f) {
|
||||
if (func_8002F2CC(actor, globalCtx, 80.0f)) {
|
||||
actor->textId = func_80037C30(globalCtx, arg2);
|
||||
}
|
||||
|
@ -5540,7 +5540,7 @@ s32 func_80038154(GlobalContext* globalCtx, Actor* actor, Vec3s* arg2, Vec3s* ar
|
|||
actor->posRot2.pos.y += arg4;
|
||||
|
||||
if (!(((globalCtx->csCtx.state != 0) || (D_8011D394 != 0)) && (gSaveContext.entranceIndex == 0x00EE))) {
|
||||
var = actor->rotTowardsLinkY - actor->shape.rot.y;
|
||||
var = actor->yawTowardsLink - actor->shape.rot.y;
|
||||
abs_var = ABS(var);
|
||||
if (abs_var >= 0x4300) {
|
||||
func_80037F30(arg2, arg3);
|
||||
|
@ -5569,7 +5569,7 @@ s32 func_80038290(GlobalContext* globalCtx, Actor* actor, Vec3s* arg2, Vec3s* ar
|
|||
actor->posRot2.pos = arg4;
|
||||
|
||||
if (!(((globalCtx->csCtx.state != 0) || (D_8011D394 != 0)) && (gSaveContext.entranceIndex == 0x00EE))) {
|
||||
var = actor->rotTowardsLinkY - actor->shape.rot.y;
|
||||
var = actor->yawTowardsLink - actor->shape.rot.y;
|
||||
abs_var = ABS(var);
|
||||
if (abs_var >= 0x4300) {
|
||||
func_80037F30(arg2, arg3);
|
||||
|
|
|
@ -213,7 +213,7 @@ void func_8001D25C(EnAObj* this, GlobalContext* globalCtx) {
|
|||
s16 var;
|
||||
|
||||
if (this->dyna.actor.textId != 0) {
|
||||
var = this->dyna.actor.rotTowardsLinkY - this->dyna.actor.shape.rot.y;
|
||||
var = this->dyna.actor.yawTowardsLink - this->dyna.actor.shape.rot.y;
|
||||
if ((ABS(var) < 0x2800) || ((this->dyna.actor.params == 0xA) && (ABS(var) > 0x5800))) {
|
||||
if (func_8002F194(&this->dyna.actor, globalCtx)) {
|
||||
EnAObj_SetupAction(this, func_8001D204);
|
||||
|
@ -238,13 +238,13 @@ void func_8001D360(EnAObj* this, GlobalContext* globalCtx) {
|
|||
this->unk_16E++;
|
||||
this->unk_170 = 20;
|
||||
|
||||
if ((s16)(this->dyna.actor.rotTowardsLinkY + 0x4000) < 0) {
|
||||
if ((s16)(this->dyna.actor.yawTowardsLink + 0x4000) < 0) {
|
||||
this->unk_174 = -1000;
|
||||
} else {
|
||||
this->unk_174 = 1000;
|
||||
}
|
||||
|
||||
if (this->dyna.actor.rotTowardsLinkY < 0) {
|
||||
if (this->dyna.actor.yawTowardsLink < 0) {
|
||||
this->unk_172 = -this->unk_174;
|
||||
} else {
|
||||
this->unk_172 = this->unk_174;
|
||||
|
|
|
@ -413,9 +413,9 @@ void func_8001E304(EnItem00* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
this->actor.initPosRot.rot.z += (s16)((this->actor.velocity.y + 3.0f) * 1000.0f);
|
||||
this->actor.posRot.pos.x +=
|
||||
Math_Coss(this->actor.rotTowardsLinkY) * (-3.0f * Math_Coss(this->actor.initPosRot.rot.z));
|
||||
Math_Coss(this->actor.yawTowardsLink) * (-3.0f * Math_Coss(this->actor.initPosRot.rot.z));
|
||||
this->actor.posRot.pos.z +=
|
||||
Math_Sins(this->actor.rotTowardsLinkY) * (-3.0f * Math_Coss(this->actor.initPosRot.rot.z));
|
||||
Math_Sins(this->actor.yawTowardsLink) * (-3.0f * Math_Coss(this->actor.initPosRot.rot.z));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -539,7 +539,7 @@ void EnItem00_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
if (sp3A || D_80157D94) {
|
||||
func_8002E4B4(globalCtx, &this->actor, 10.0f, 15.0f, 15.0f, 0x1D);
|
||||
|
||||
if (this->actor.unk_80 <= -10000.0f) {
|
||||
if (this->actor.groundY <= -10000.0f) {
|
||||
Actor_Kill(&this->actor);
|
||||
return;
|
||||
}
|
||||
|
@ -564,8 +564,8 @@ void EnItem00_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
return;
|
||||
}
|
||||
|
||||
if (!((this->actor.xzDistanceFromLink <= 30.0f) && (this->actor.yDistanceFromLink >= -50.0f) &&
|
||||
(this->actor.yDistanceFromLink <= 50.0f))) {
|
||||
if (!((this->actor.xzDistFromLink <= 30.0f) && (this->actor.yDistFromLink >= -50.0f) &&
|
||||
(this->actor.yDistFromLink <= 50.0f))) {
|
||||
if (!func_8002F410(&this->actor, globalCtx)) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -225,7 +225,7 @@ void func_8008EDF0(Player* player) {
|
|||
|
||||
void func_8008EE08(Player* player) {
|
||||
if ((player->actor.bgCheckFlags & 1) || (player->stateFlags1 & 0x8A00000) ||
|
||||
((player->stateFlags1 & 0xC0000) == 0 && (player->actor.posRot.pos.y - player->actor.unk_80) < 100.0f)) {
|
||||
((player->stateFlags1 & 0xC0000) == 0 && (player->actor.posRot.pos.y - player->actor.groundY) < 100.0f)) {
|
||||
player->stateFlags1 &= 0xBFF07FFF;
|
||||
} else if ((player->stateFlags1 & 0x2C0000) == 0) {
|
||||
player->stateFlags1 |= 0x80000;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue