diff options
| author | Ethan Roseman <ethteck@gmail.com> | 2020-07-05 11:51:48 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-07-05 17:51:48 +0200 |
| commit | e6ca2dfd70ef4f76af85b8492e67fb17b1e4dc71 (patch) | |
| tree | d6ac339227888100069696d45882d11c9b005a8c /src/code | |
| parent | 61544b873d1ab559918ed022b97a6ffcb2d2c76a (diff) | |
Fixed one non-matching in z_actor (#240)
Diffstat (limited to 'src/code')
| -rw-r--r-- | src/code/z_actor.c | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/src/code/z_actor.c b/src/code/z_actor.c index fabe0c5a9..8ec7dd0b7 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -1430,34 +1430,30 @@ PosRot* func_8002EF44(PosRot* arg0, Actor* actor) { return arg0; } -#ifdef NON_MATCHING -// single regalloc difference f32 func_8002EFC0(Actor* actor, Player* player, s16 arg2) { - s16 var; - s16 abs_var; + s16 yawTemp; + s16 yawTempAbs; + f32 ret; - var = (s16)(actor->yawTowardsLink - 0x8000) - arg2; - abs_var = ABS(var); + yawTemp = (s16)(actor->yawTowardsLink - 0x8000) - arg2; + yawTempAbs = ABS(yawTemp); if (player->unk_664 != NULL) { - if ((abs_var > 0x4000) || (actor->flags & 0x8000000)) { + if ((yawTempAbs > 0x4000) || (actor->flags & 0x8000000)) { return FLT_MAX; } else { - return actor->xyzDistFromLinkSq - - actor->xyzDistFromLinkSq * 0.8f * ((0x4000 - abs_var) * 3.0517578125e-05f); + ret = actor->xyzDistFromLinkSq - + actor->xyzDistFromLinkSq * 0.8f * ((0x4000 - yawTempAbs) * 3.0517578125e-05f); + return ret; } } - if (abs_var > 0x2AAA) { + if (yawTempAbs > 0x2AAA) { return FLT_MAX; } return actor->xyzDistFromLinkSq; } -#else -extern f32 func_8002EFC0(Actor* actor, Player* player, s16 arg2); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_actor/func_8002EFC0.s") -#endif typedef struct { f32 unk_0, unk_4; @@ -2370,7 +2366,8 @@ s32 func_800314D4(GlobalContext* globalCtx, Actor* actor, Vec3f* arg2, f32 arg3) if ((arg2->z > -actor->uncullZoneScale) && (arg2->z < (actor->uncullZoneForward + actor->uncullZoneScale))) { var = (arg3 < 1.0f) ? 1.0f : 1.0f / arg3; - if ((((fabsf(arg2->x) - actor->uncullZoneScale) * var) < 1.0f) && (((arg2->y + actor->uncullZoneDownward) * var) > -1.0f) && + if ((((fabsf(arg2->x) - actor->uncullZoneScale) * var) < 1.0f) && + (((arg2->y + actor->uncullZoneDownward) * var) > -1.0f) && (((arg2->y - actor->uncullZoneScale) * var) < 1.0f)) { return 1; } |
