1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-04 06:54:33 +00:00

Fixed one non-matching in z_actor (#240)

This commit is contained in:
Ethan Roseman 2020-07-05 11:51:48 -04:00 committed by GitHub
parent 61544b873d
commit e6ca2dfd70
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 86 deletions

View file

@ -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;
}