mirror of
https://github.com/izzy2lost/2ship2harkinian-Android.git
synced 2026-06-19 01:20:08 -07:00
Match 9 Various NON_MATCHING functions (#811)
* Match func_80A3C8D8 (obj_vspinyroll OK) * `EnHorse_Update` OK * Match EnHorse_Init & EnHorse_FleePlayer (en_horse OK) * Fake match func_80BF43FC (en_rg OK) * func_80A66930 + func_80A671E0 (obj_driftice OK) * Match func_80940588 (goroiwa OK) * Match func_80ABBFC0 (@anon) Co-authored-by: hensldm <https://github.com/hensldm> * PR Suggestions * PR suggestions
This commit is contained in:
@@ -821,11 +821,7 @@ beginseg
|
||||
name "ovl_En_Horse"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_En_Horse/z_en_horse.o"
|
||||
#ifdef NON_MATCHING
|
||||
include "build/src/overlays/actors/ovl_En_Horse/ovl_En_Horse_reloc.o"
|
||||
#else
|
||||
include "build/data/ovl_En_Horse/ovl_En_Horse.reloc.o"
|
||||
#endif
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
@@ -1501,11 +1497,7 @@ beginseg
|
||||
name "ovl_En_Goroiwa"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.o"
|
||||
#ifdef NON_MATCHING
|
||||
include "build/src/overlays/actors/ovl_En_Goroiwa/ovl_En_Goroiwa_reloc.o"
|
||||
#else
|
||||
include "build/data/ovl_En_Goroiwa/ovl_En_Goroiwa.reloc.o"
|
||||
#endif
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
@@ -2765,11 +2757,7 @@ beginseg
|
||||
name "ovl_Obj_Vspinyroll"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_Obj_Vspinyroll/z_obj_vspinyroll.o"
|
||||
#ifdef NON_MATCHING
|
||||
include "build/src/overlays/actors/ovl_Obj_Vspinyroll/ovl_Obj_Vspinyroll_reloc.o"
|
||||
#else
|
||||
include "build/data/ovl_Obj_Vspinyroll/ovl_Obj_Vspinyroll.reloc.o"
|
||||
#endif
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
@@ -3001,11 +2989,7 @@ beginseg
|
||||
name "ovl_Obj_Driftice"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_Obj_Driftice/z_obj_driftice.o"
|
||||
#ifdef NON_MATCHING
|
||||
include "build/src/overlays/actors/ovl_Obj_Driftice/ovl_Obj_Driftice_reloc.o"
|
||||
#else
|
||||
include "build/data/ovl_Obj_Driftice/ovl_Obj_Driftice.reloc.o"
|
||||
#endif
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
@@ -3287,11 +3271,7 @@ beginseg
|
||||
name "ovl_Bg_Hakugin_Bombwall"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_Bg_Hakugin_Bombwall/z_bg_hakugin_bombwall.o"
|
||||
#ifdef NON_MATCHING
|
||||
include "build/src/overlays/actors/ovl_Bg_Hakugin_Bombwall/ovl_Bg_Hakugin_Bombwall_reloc.o"
|
||||
#else
|
||||
include "build/data/ovl_Bg_Hakugin_Bombwall/ovl_Bg_Hakugin_Bombwall.reloc.o"
|
||||
#endif
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
@@ -4878,11 +4858,7 @@ beginseg
|
||||
name "ovl_En_Rg"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_En_Rg/z_en_rg.o"
|
||||
#ifdef NON_MATCHING
|
||||
include "build/src/overlays/actors/ovl_En_Rg/ovl_En_Rg_reloc.o"
|
||||
#else
|
||||
include "build/data/ovl_En_Rg/ovl_En_Rg.reloc.o"
|
||||
#endif
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
|
||||
@@ -121,10 +121,8 @@ static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
// Breaks relocs
|
||||
void func_80ABBFC0(BgHakuginBombwall* this, GlobalContext* globalCtx) {
|
||||
s32 temp;
|
||||
f32 temp;
|
||||
Vec3f spF0;
|
||||
Vec3f spE4;
|
||||
Vec3f spD8;
|
||||
@@ -138,13 +136,13 @@ void func_80ABBFC0(BgHakuginBombwall* this, GlobalContext* globalCtx) {
|
||||
Matrix_RotateY(this->dyna.actor.shape.rot.y, MTXMODE_NEW);
|
||||
|
||||
for (i = 0; i < 6; i++) {
|
||||
temp = i + 1;
|
||||
temp = (i + 1) * (80.0f / 3.0f);
|
||||
for (j = 0; j < ARRAY_COUNT(D_80ABD020); j++) {
|
||||
spD8.x = D_80ABD020[j] + (s32)((u32)Rand_Next() >> 0x1C);
|
||||
spD8.y = ((Rand_ZeroOne() - 0.5f) * 15.0f) + (temp * 26.666666f);
|
||||
spD8.y = ((Rand_ZeroOne() - 0.5f) * 15.0f) + temp;
|
||||
spD8.z = (Rand_ZeroOne() * 20.0f) - 10.0f;
|
||||
|
||||
spCC.x = ((Rand_ZeroOne() - 0.5f) * 7.0f) + (spD8.x * 0.07777778f);
|
||||
spCC.x = ((Rand_ZeroOne() - 0.5f) * 7.0f) + (spD8.x * (7.0f / 90.0f));
|
||||
spCC.y = (Rand_ZeroOne() * 7.0f) - 2.0f;
|
||||
spCC.z = spD8.z * 0.3f;
|
||||
|
||||
@@ -176,9 +174,6 @@ void func_80ABBFC0(BgHakuginBombwall* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Bg_Hakugin_Bombwall/func_80ABBFC0.s")
|
||||
#endif
|
||||
|
||||
void func_80ABC2E0(BgHakuginBombwall* this, GlobalContext* globalCtx) {
|
||||
s32 pad;
|
||||
|
||||
@@ -512,7 +512,7 @@ void Boss06_Draw(Actor* thisx, GlobalContext* globalCtx2) {
|
||||
u16 pad;
|
||||
u8 spD3;
|
||||
u8 spD2;
|
||||
s32 maxColor = 255; // Possible FAKE MATCH
|
||||
s32 maxColor = 255; //! FAKE:
|
||||
f32 sp68;
|
||||
|
||||
OPEN_DISPS(globalCtx->state.gfxCtx);
|
||||
|
||||
@@ -603,7 +603,7 @@ void EnFsn_UpdateCursorAnim(EnFsn* this) {
|
||||
void EnFsn_UpdateStickDirectionPromptAnim(EnFsn* this) {
|
||||
f32 arrowAnimTween = this->arrowAnimTween;
|
||||
f32 stickAnimTween = this->stickAnimTween;
|
||||
s32 maxColor = 255; // POSSIBLY FAKE
|
||||
s32 maxColor = 255; //! FAKE:
|
||||
|
||||
if (this->arrowAnimState == 0) {
|
||||
arrowAnimTween += 0.05f;
|
||||
|
||||
@@ -739,24 +739,22 @@ void func_80940090(EnGoroiwa* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
// Stack
|
||||
void func_80940588(GlobalContext* globalCtx, Vec3f* arg1, Gfx* arg2[], Color_RGBA8* arg3, Color_RGBA8* arg4, f32 arg5) {
|
||||
Gfx* phi_s7;
|
||||
Vec3f sp100;
|
||||
Vec3f spF4;
|
||||
Vec3f spE8;
|
||||
f32 temp_f20;
|
||||
s32 phi_fp;
|
||||
f32 spB0;
|
||||
s32 j;
|
||||
s32 i;
|
||||
s32 phi_s0;
|
||||
s32 spD0;
|
||||
s16 spCE;
|
||||
s16 spC8;
|
||||
f32 spB0;
|
||||
f32 spAC;
|
||||
s16 spA8;
|
||||
s16 phi_fp;
|
||||
s16 spC8;
|
||||
f32 spAC;
|
||||
|
||||
spD0 = (s32)(arg5 * 35.0f) + 6;
|
||||
temp_f20 = (arg5 + 0.1f) * 0.5f;
|
||||
@@ -815,10 +813,6 @@ void func_80940588(GlobalContext* globalCtx, Vec3f* arg1, Gfx* arg2[], Color_RGB
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
void func_80940588(GlobalContext* globalCtx, Vec3f* arg1, Gfx* arg2[], Color_RGBA8* arg3, Color_RGBA8* arg4, f32 arg5);
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Goroiwa/func_80940588.s")
|
||||
#endif
|
||||
|
||||
void func_80940A1C(GlobalContext* globalCtx, Vec3f* arg1, Gfx** arg2, Color_RGBA8* arg3, Color_RGBA8* arg4, f32 arg5) {
|
||||
s32 i;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -170,7 +170,7 @@ void EnKakasi_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
i = 0;
|
||||
tempCutscene = this->actor.cutscene;
|
||||
while (tempCutscene != -1) {
|
||||
// This might be a fake match, no others found yet
|
||||
//! FAKE:
|
||||
tempCutscene = ActorCutscene_GetAdditionalCutscene(this->actorCutscenes[i] = tempCutscene);
|
||||
i++;
|
||||
}
|
||||
|
||||
@@ -1277,7 +1277,7 @@ void EnOssan_UpdateCursorAnim(EnOssan* this) {
|
||||
void EnOssan_UpdateStickDirectionPromptAnim(EnOssan* this) {
|
||||
f32 arrowAnimTween = this->arrowAnimTween;
|
||||
f32 stickAnimTween = this->stickAnimTween;
|
||||
s32 maxColor = 255; // POSSIBLY FAKE
|
||||
s32 maxColor = 255; //! FAKE:
|
||||
|
||||
if (this->arrowAnimState == 0) {
|
||||
arrowAnimTween += 0.05f;
|
||||
|
||||
@@ -368,7 +368,6 @@ s32 func_80BF42BC(EnRg* this, f32 arg1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
s32 func_80BF43FC(EnRg* this) {
|
||||
Vec3f sp9C;
|
||||
Vec3f sp90;
|
||||
@@ -378,11 +377,11 @@ s32 func_80BF43FC(EnRg* this) {
|
||||
f32 phi_f20 = 0.0f;
|
||||
s32 temp_s7 = ENRG_GET_7F80(&this->actor);
|
||||
s32 phi_s4 = -1;
|
||||
s16 phi_s6 = 0;
|
||||
s32 temp_s5 = this->unk_344;
|
||||
s16 phi_s6 = 0;
|
||||
s32 phi_s0 = D_80BF57E4[this->unk_344][temp_s7];
|
||||
|
||||
while (true) {
|
||||
do {
|
||||
SubS_CopyPointFromPathCheckBounds(this->path, phi_s0 - 1, &sp9C);
|
||||
SubS_CopyPointFromPathCheckBounds(this->path, phi_s0 + 1, &sp90);
|
||||
if (Math3D_PointDistToLine2D(this->actor.world.pos.x, this->actor.world.pos.z, sp9C.x, sp9C.z, sp90.x, sp90.z,
|
||||
@@ -393,17 +392,10 @@ s32 func_80BF43FC(EnRg* this) {
|
||||
phi_s4 = phi_s0;
|
||||
}
|
||||
phi_s0++;
|
||||
if ((temp_s5 == 18) || (phi_s0 >= D_80BF57E4[temp_s5 + 1][temp_s7])) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
} while ((temp_s5 != 18) && (phi_s0 < D_80BF57E4[temp_s5 + 1][temp_s7]));
|
||||
|
||||
return phi_s4;
|
||||
}
|
||||
#else
|
||||
s32 func_80BF43FC(EnRg* this);
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Rg/func_80BF43FC.s")
|
||||
#endif
|
||||
|
||||
s32 func_80BF4560(EnRg* this, GlobalContext* globalCtx) {
|
||||
s32 temp_v0 = SurfaceType_GetSceneExitIndex(&globalCtx->colCtx, this->actor.floorPoly, this->actor.floorBgId);
|
||||
|
||||
@@ -1191,7 +1191,7 @@ void EnSob1_UpdateCursorAnim(EnSob1* this) {
|
||||
void EnSob1_UpdateStickDirectionPromptAnim(EnSob1* this) {
|
||||
f32 arrowAnimTween = this->arrowAnimTween;
|
||||
f32 stickAnimTween = this->stickAnimTween;
|
||||
s32 maxColor = 255; // POSSIBLY FAKE
|
||||
s32 maxColor = 255; //! FAKE:
|
||||
|
||||
if (this->arrowAnimState == 0) {
|
||||
arrowAnimTween += 0.05f;
|
||||
|
||||
@@ -1221,7 +1221,7 @@ void EnTrt_UpdateCursorAnim(EnTrt* this) {
|
||||
void EnTrt_UpdateStickDirectionPromptAnim(EnTrt* this) {
|
||||
f32 arrowAnimTween = this->arrowAnimTween;
|
||||
f32 stickAnimTween = this->stickAnimTween;
|
||||
s32 maxColor = 255; // POSSIBLY FAKE
|
||||
s32 maxColor = 255; //! FAKE:
|
||||
|
||||
if (this->arrowAnimState == 0) {
|
||||
arrowAnimTween += 0.05f;
|
||||
|
||||
@@ -148,7 +148,6 @@ f32 func_80A667F0(ObjDrifticeStruct3* arg0, ObjDriftice* this) {
|
||||
return temp_f20;
|
||||
}
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
void func_80A66930(ObjDrifticeStruct2* arg0, ObjDriftice* this, s16* arg2, s16* arg3) {
|
||||
ObjDrifticeStruct3* temp_s0;
|
||||
f32 temp_f22 = 0.0f;
|
||||
@@ -157,6 +156,7 @@ void func_80A66930(ObjDrifticeStruct2* arg0, ObjDriftice* this, s16* arg2, s16*
|
||||
|
||||
if (this->unk_248 > 0) {
|
||||
f32 temp_f20 = this->dyna.actor.xzDistToPlayer * this->unk_240 * 0.0007075472f;
|
||||
|
||||
if (temp_f20 > 1.0f) {
|
||||
temp_f20 = 1.0f;
|
||||
} else if (temp_f20 < 0.01f) {
|
||||
@@ -195,12 +195,9 @@ void func_80A66930(ObjDrifticeStruct2* arg0, ObjDriftice* this, s16* arg2, s16*
|
||||
|
||||
temp_f22 *= arg0->unk_08;
|
||||
|
||||
*arg2 = (s32)temp_f22 + arg0->unk_00[2];
|
||||
//! FAKE:
|
||||
*arg2 = arg0->unk_00[2] + (s32)((void)0, temp_f22);
|
||||
}
|
||||
#else
|
||||
void func_80A66930(ObjDrifticeStruct2* arg0, ObjDriftice* this, s16* arg2, s16* arg3);
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Driftice/func_80A66930.s")
|
||||
#endif
|
||||
|
||||
void func_80A66C4C(ObjDrifticeStruct4* arg0, ObjDriftice* this, s16* arg2, s16* arg3) {
|
||||
ObjDrifticeStruct3* temp_s0;
|
||||
@@ -340,8 +337,6 @@ void func_80A671CC(ObjDriftice* this) {
|
||||
this->actionFunc = func_80A671E0;
|
||||
}
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
// stack
|
||||
void func_80A671E0(ObjDriftice* this, GlobalContext* globalCtx) {
|
||||
f32 phi_f0;
|
||||
Vec3f sp40;
|
||||
@@ -349,12 +344,12 @@ void func_80A671E0(ObjDriftice* this, GlobalContext* globalCtx) {
|
||||
f32 phi_f12;
|
||||
Vec3s* points;
|
||||
s32 sp30;
|
||||
Vec3s* points2;
|
||||
Actor* thisx = &this->dyna.actor;
|
||||
|
||||
Math_Vec3s_ToVec3f(&sp40, &(&this->unk_16C[this->unk_164])[this->unk_168]);
|
||||
Math_Vec3f_Diff(&sp40, &this->dyna.actor.world.pos, &this->dyna.actor.velocity);
|
||||
Math_Vec3f_Diff(&sp40, &this->dyna.actor.world.pos, &thisx->velocity);
|
||||
|
||||
sp3C = Math3D_Vec3fMagnitude(&this->dyna.actor.velocity);
|
||||
sp3C = Math3D_Vec3fMagnitude(&thisx->velocity);
|
||||
if (sp3C < (this->unk_23C * 8.0f)) {
|
||||
phi_f0 = this->unk_23C * 0.4f;
|
||||
phi_f12 = this->unk_23C * 0.05f;
|
||||
@@ -391,8 +386,8 @@ void func_80A671E0(ObjDriftice* this, GlobalContext* globalCtx) {
|
||||
this->unk_164 = this->unk_160;
|
||||
}
|
||||
|
||||
points2 = &this->unk_16C[0];
|
||||
if ((points2->x != points->x) || (points2->y != points->y) || (points2->z != points->z)) {
|
||||
if ((this->unk_16C[0].x != points->x) || (this->unk_16C[0].y != points->y) ||
|
||||
(this->unk_16C[0].z != points->z)) {
|
||||
func_80A6743C(this);
|
||||
func_800C62BC(globalCtx, &globalCtx->colCtx.dyna, this->dyna.bgId);
|
||||
sp30 = false;
|
||||
@@ -405,9 +400,6 @@ void func_80A671E0(ObjDriftice* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Driftice/func_80A671E0.s")
|
||||
#endif
|
||||
|
||||
void func_80A6743C(ObjDriftice* this) {
|
||||
this->actionFunc = func_80A67450;
|
||||
|
||||
@@ -557,7 +557,8 @@ void ObjSpidertent_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
ColliderTrisElementInit* element;
|
||||
Vec3f sp70[3];
|
||||
Vec3f sp64;
|
||||
s32 i, j;
|
||||
s32 i;
|
||||
s32 j;
|
||||
|
||||
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
|
||||
DynaPolyActor_Init(&this->dyna, 0);
|
||||
@@ -698,8 +699,9 @@ void func_80B30AD4(ObjSpidertent* this) {
|
||||
void func_80B30AF8(ObjSpidertent* this, GlobalContext* globalCtx) {
|
||||
ObjSpidertentStruct* temp_s0 = &D_80B31350[OBJSPIDERTENT_GET_1(&this->dyna.actor)];
|
||||
TriNorm* triNorm;
|
||||
s32 i, j;
|
||||
ObjSpidertentStruct2* ptr;
|
||||
s32 i;
|
||||
s32 j;
|
||||
s32 pad;
|
||||
Vec3f sp60;
|
||||
f32 sp5C;
|
||||
|
||||
|
||||
@@ -397,7 +397,8 @@ void ObjSwitch_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
}
|
||||
if (type == OBJSWITCH_TYPE_EYE) {
|
||||
if (sIsSegmentTableInit == false) {
|
||||
s32 i, j;
|
||||
s32 i;
|
||||
s32 j;
|
||||
|
||||
sIsSegmentTableInit = true;
|
||||
|
||||
|
||||
@@ -141,15 +141,15 @@ void func_80A3C7E8(ObjVspinyroll* this) {
|
||||
s32 index = D_80A3D450[OBJVSPINYROLL_GET_4000(&this->dyna.actor)] * 120.0f * (1.0f / 58.0f);
|
||||
|
||||
index += 2;
|
||||
this->unk_38C = index * 4;
|
||||
this->unk_1A8.unk_1E4 = index * 4;
|
||||
|
||||
tempf = ((D_80A3D450[OBJVSPINYROLL_GET_4000(&this->dyna.actor)] * 120.0f) - 2.0f) / (index - 1);
|
||||
phi_f2 = 1.0f;
|
||||
|
||||
for (i = 0, j = 0; i < this->unk_38C; i++) {
|
||||
this->unk_1A8[i].unk_00.x = D_80A3D4C4[j];
|
||||
this->unk_1A8[i].unk_00.y = phi_f2;
|
||||
this->unk_1A8[i].unk_00.z = D_80A3D4B4[j];
|
||||
for (i = 0, j = 0; i < this->unk_1A8.unk_1E4; i++) {
|
||||
this->unk_1A8.unk_000[i].unk_00.x = D_80A3D4C4[j];
|
||||
this->unk_1A8.unk_000[i].unk_00.y = phi_f2;
|
||||
this->unk_1A8.unk_000[i].unk_00.z = D_80A3D4B4[j];
|
||||
|
||||
j++;
|
||||
if (j >= 4) {
|
||||
@@ -159,11 +159,10 @@ void func_80A3C7E8(ObjVspinyroll* this) {
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
s32 func_80A3C8D8(ObjVspinyroll* this, GlobalContext* globalCtx, Vec3f* arg2, s32 arg3) {
|
||||
s32 pad;
|
||||
ObjVspinyrollStruct2* ptr = &this->unk_1A8[0];
|
||||
s32 pad2;
|
||||
ObjVspinyrollStruct3* unk_1A8 = &this->unk_1A8;
|
||||
ObjVspinyrollStruct2* ptr;
|
||||
s32 i;
|
||||
Vec3f spE4;
|
||||
Vec3f spD8;
|
||||
@@ -177,9 +176,11 @@ s32 func_80A3C8D8(ObjVspinyroll* this, GlobalContext* globalCtx, Vec3f* arg2, s3
|
||||
|
||||
spE4.z = 0.0f;
|
||||
sp9C = false;
|
||||
this->unk_388 = NULL;
|
||||
unk_1A8->unk_1E0 = NULL;
|
||||
|
||||
for (i = 0; i < unk_1A8->unk_1E4; i++) {
|
||||
ptr = &unk_1A8->unk_000[i];
|
||||
|
||||
for (i = 0; i < this->unk_38C; i++, ptr++) {
|
||||
spE4.x = ptr->unk_00.x;
|
||||
spE4.y = ptr->unk_00.y;
|
||||
func_80A3C4E0(&spD8, &spE4, this->dyna.actor.world.rot.y);
|
||||
@@ -193,8 +194,8 @@ s32 func_80A3C8D8(ObjVspinyroll* this, GlobalContext* globalCtx, Vec3f* arg2, s3
|
||||
spCC.x += 30.0f * this->unk_3B4.x;
|
||||
spCC.z += 30.0f * this->unk_3B4.z;
|
||||
|
||||
if (BgCheck_EntityLineTest3(&globalCtx->colCtx, &spD8, &spCC, &spC0, &this->unk_1A8[i].collisionPoly, true,
|
||||
false, false, true, &this->unk_1A8[i].bgId, &this->dyna.actor, 0.0f)) {
|
||||
if (BgCheck_EntityLineTest3(&globalCtx->colCtx, &spD8, &spCC, &spC0, &unk_1A8->unk_000[i].collisionPoly, true,
|
||||
false, false, true, &unk_1A8->unk_000[i].bgId, &this->dyna.actor, 0.0f)) {
|
||||
if ((arg3 != 0) && (this->dyna.actor.flags & ACTOR_FLAG_40)) {
|
||||
spA8.x = ptr->unk_00.x * 0.2f;
|
||||
spA8.y = ptr->unk_00.y;
|
||||
@@ -215,17 +216,13 @@ s32 func_80A3C8D8(ObjVspinyroll* this, GlobalContext* globalCtx, Vec3f* arg2, s3
|
||||
temp_f20 = temp_f0;
|
||||
sp9C = true;
|
||||
Math_Vec3f_Diff(&spC0, &spCC, arg2);
|
||||
this->unk_388 = ptr;
|
||||
unk_1A8->unk_1E0 = ptr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return sp9C;
|
||||
}
|
||||
#else
|
||||
s32 func_80A3C8D8(ObjVspinyroll* this, GlobalContext* globalCtx, Vec3f* arg2, s32 arg3);
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Vspinyroll/func_80A3C8D8.s")
|
||||
#endif
|
||||
|
||||
s32 func_80A3CB94(ObjVspinyroll* this, GlobalContext* globalCtx, s32 arg2) {
|
||||
Vec3f sp1C;
|
||||
@@ -239,8 +236,8 @@ s32 func_80A3CB94(ObjVspinyroll* this, GlobalContext* globalCtx, s32 arg2) {
|
||||
}
|
||||
|
||||
DynaPolyActor* func_80A3CBF0(ObjVspinyroll* this, GlobalContext* globalCtx) {
|
||||
if (this->unk_388 != NULL) {
|
||||
return DynaPoly_GetActor(&globalCtx->colCtx, this->unk_388->bgId);
|
||||
if (this->unk_1A8.unk_1E0 != NULL) {
|
||||
return DynaPoly_GetActor(&globalCtx->colCtx, this->unk_1A8.unk_1E0->bgId);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -21,12 +21,16 @@ typedef struct {
|
||||
/* 0x10 */ s32 bgId;
|
||||
} ObjVspinyrollStruct2; // size = 0x14
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ ObjVspinyrollStruct2 unk_000[24];
|
||||
/* 0x1E0 */ ObjVspinyrollStruct2* unk_1E0;
|
||||
/* 0x1E4 */ s32 unk_1E4;
|
||||
} ObjVspinyrollStruct3; // size = 0x1E8
|
||||
|
||||
typedef struct ObjVspinyroll {
|
||||
/* 0x0000 */ DynaPolyActor dyna;
|
||||
/* 0x015C */ ColliderCylinder collider;
|
||||
/* 0x01A8 */ ObjVspinyrollStruct2 unk_1A8[24];
|
||||
/* 0x0388 */ ObjVspinyrollStruct2* unk_388;
|
||||
/* 0x038C */ s32 unk_38C;
|
||||
/* 0x01A8 */ ObjVspinyrollStruct3 unk_1A8;
|
||||
/* 0x0390 */ ObjVspinyrollActionFunc actionFunc;
|
||||
/* 0x0394 */ f32 unk_394;
|
||||
/* 0x0398 */ s32 unk_398;
|
||||
|
||||
Reference in New Issue
Block a user