summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorinspectredc <inspectredc@gmail.com>2023-11-05 01:56:25 +0000
committerinspectredc <inspectredc@gmail.com>2023-11-05 01:56:25 +0000
commitcb7a9e9cf16645f7ee9d2a59021e869c19302461 (patch)
tree1c008f9f1d3dd006da62638d33aabfea02fefc13
parente3358cf2f295c9d7c4075186556e76e08d708c1f (diff)
func_80AF5820
-rw-r--r--src/overlays/actors/ovl_En_Wdhand/z_en_wdhand.c73
1 files changed, 37 insertions, 36 deletions
diff --git a/src/overlays/actors/ovl_En_Wdhand/z_en_wdhand.c b/src/overlays/actors/ovl_En_Wdhand/z_en_wdhand.c
index b7b229cd4..43b318380 100644
--- a/src/overlays/actors/ovl_En_Wdhand/z_en_wdhand.c
+++ b/src/overlays/actors/ovl_En_Wdhand/z_en_wdhand.c
@@ -178,8 +178,6 @@ static DamageTable D_80AF64F4 = {
/* Powder Keg */ DMG_ENTRY(1, 0x0),
};
-Vec3f D_80AF6514 = { 0.0f, 0.0f, 0.0f };
-Vec3f D_80AF6520 = { 0.0f, 0.05f, 0.0f };
void EnWdhand_Init(Actor* thisx, PlayState* play) {
EnWdhand* this = THIS;
@@ -609,79 +607,85 @@ void func_80AF56A0(EnWdhand* this) {
this->actionFunc = func_80AF5820;
}
-#ifdef NON_MATCHING
void func_80AF5820(EnWdhand* this, PlayState* play) {
+ static Vec3f D_80AF6514 = { 0.0f, 0.0f, 0.0f };
+ static Vec3f D_80AF6520 = { 0.0f, 0.05f, 0.0f };
+ Vec3s* temp;
Vec3f spA0;
Vec3f sp94;
- Vec3f sp70;
s16 temp_s0_6;
- s32 temp_s5;
s32 var_s0;
s32 var_s2;
- Vec3s* temp;
+ s32 var_s3;
+ Vec3f* temp_s1;
+ s32 tmp;
+ Vec3f sp70;
temp = &this->unk274.elements[6].dim.worldSphere.center;
+ temp_s1 = &this->unk25C[1];
- spA0.x = (this->unk25C[1].x - temp->x) * 0.5f;
- spA0.y = (this->unk25C[1].y - temp->y) * 0.5f;
- spA0.z = (this->unk25C[1].z - temp->z) * 0.5f;
+ spA0.x = (temp_s1->x - temp->x) * 0.5f;
+ spA0.y = (temp_s1->y - temp->y) * 0.5f;
+ spA0.z = (temp_s1->z - temp->z) * 0.5f;
Matrix_RotateXS(0x100, MTXMODE_NEW);
Matrix_MultVec3f(&spA0, &sp94);
- this->unk25C[1].x = spA0.x + sp94.x + temp->x;
- this->unk25C[1].y = spA0.y + sp94.y + temp->y;
- this->unk25C[1].z = spA0.z + sp94.z + temp->z;
+ temp_s1->x = spA0.x + sp94.x + temp->x;
+ temp_s1->y = spA0.y + sp94.y + temp->y;
+ temp_s1->z = spA0.z + sp94.z + temp->z;
if (this->actor.velocity.y > -2.0f) {
this->actor.velocity.y += -0.15f;
}
- Math_Vec3f_Sum(&this->unk25C[1], &this->actor.velocity, &this->unk25C[1]);
+ Math_Vec3f_Sum(temp_s1, &this->actor.velocity, temp_s1);
this->actor.world.rot.x += 0x100;
if (this->unk1EC[0].x >= 0 && func_80AF5650(this, this->unk1EC[0].x)) {
- this->unk1EC[0].x -= 1;
+ this->unk1EC[0].x--;
}
+ tmp = this->unk1EC[0].y;
if (this->unk1EC[0].y < 3) {
if (func_80AF5650(this, this->unk1EC[0].y)) {
- this->unk1EC[0].y += 1;
+ this->unk1EC[0].y++;
}
Matrix_RotateZYX(this->actor.world.rot.x, this->actor.world.rot.z, 0, MTXMODE_NEW);
Matrix_RotateYS(-this->actor.world.rot.z, MTXMODE_APPLY);
Matrix_Mult(&this->unk21C, MTXMODE_APPLY);
- func_80AF46F0(this, this->unk1EC[0].y, 0, &this->unk25C[1]);
- Matrix_MultVecY(2.3f / this->unk210[this->unk1EC[0].y], &this->unk25C[1]);
+ func_80AF46F0(this, tmp, 0, temp_s1);
+ Matrix_MultVecY(2.3f / this->unk210[tmp], temp_s1);
}
this->unk1EC[0].z--;
- temp_s5 = this->unk1EC[0].x + 1;
- for (var_s2 = 0; var_s2 < temp_s5; var_s2++) {
+ tmp = this->unk1EC[0].x + 1;
+ var_s3 = this->unk1EC[0].z;
+ for (var_s2 = 0; var_s2 < tmp; var_s2++) {
if (this->unk1EC[0].z > 0) {
- Math_ScaledStepToS(&this->unk1EC[1 + var_s2].x,
- (s16)(s32)(Math_SinF(this->unk1EC[var_s2].z * 0.8975979f) * this->unk1EC[1 + var_s2].y),
- 0x200);
+ Math_ScaledStepToS(&this->unk1EC[1 + var_s2].x, this->unk1EC[1 + var_s2].z * (Math_SinF(var_s3 * 0.8975979f)), 0x200);
} else if (Rand_ZeroOne() < 0.65f) {
- this->unk1EC[1 + var_s2].x = this->unk1EC[1 + var_s2].y + Math_SinF(this->unk1EC[var_s2].z * 0.8975979f);
+ this->unk1EC[1 + var_s2].x = this->unk1EC[1 + var_s2].z * Math_SinF(var_s3 * 0.8975979f);
}
- if ((this->unk1EC[var_s2].z % 7) == 0) {
+ if ((var_s3 % 7) == 0) {
if (var_s2 != 0) {
- this->unk1EC[1 + var_s2].x = this->unk1EC[var_s2].y + (s32)Rand_CenteredFloat(12288.0f);
+ this->unk1EC[1 + var_s2].y = this->unk1EC[var_s2].y + (s32)Rand_CenteredFloat(12288.0f);
} else {
- this->unk1EC[1].y += (s32)Rand_CenteredFloat(12288.0f);
+ this->unk1EC[1].y += (s16)Rand_CenteredFloat(12288.0f);
}
- this->unk1EC[1 + var_s2].y = Rand_S16Offset((s16)((var_s2 << 8) + 0xC00), 0x800);
+ this->unk1EC[1 + var_s2].z = Rand_S16Offset((s16) ((var_s2 * 0x100) + 0xC00), 0x800);
}
+ var_s3 += 2;
}
if ((this->unk1EC[0].x < 0) && (this->unk1EC[0].y >= 3)) {
if (Math_StepToF(&this->actor.scale.x, 0.0f, 0.001f) != 0) {
for (var_s0 = 0; var_s0 < 2; var_s0++) {
for (var_s2 = 0; var_s2 < 5; var_s2++) {
+ temp_s1 = &this->unk25C[var_s0];
D_80AF6514.y = Rand_ZeroOne() + 1.0f;
temp_s0_6 = Rand_S16Offset(0x28, 0x28);
- sp70.x = Rand_CenteredFloat(12.0f) + this->unk25C[var_s2].x;
- sp70.y = Rand_CenteredFloat(12.0f) + this->unk25C[var_s2].y;
- sp70.z = Rand_CenteredFloat(12.0f) + this->unk25C[var_s2].z;
+ sp70.x = temp_s1->x + Rand_CenteredFloat(12.0f);
+ sp70.y = temp_s1->y + Rand_CenteredFloat(12.0f);
+ sp70.z = temp_s1->z + Rand_CenteredFloat(12.0f);
EffectSsDtBubble_SpawnColorProfile(play, &sp70, &D_80AF6514, &D_80AF6520, temp_s0_6, 25, 2, 1);
}
}
@@ -693,15 +697,12 @@ void func_80AF5820(EnWdhand* this, PlayState* play) {
}
}
- for (var_s0 = 0; var_s0 < 2; var_s0++) {
+ for (var_s2 = 0; var_s2 < 2; var_s2++) {
D_80AF6514.y = Rand_ZeroOne() + 1.0f;
- EffectSsDtBubble_SpawnColorProfile(play, &this->unk25C[var_s0], &D_80AF6514, &D_80AF6520,
- Rand_S16Offset(40, 40), 25, 2, 1);
+ EffectSsDtBubble_SpawnColorProfile(play, &this->unk25C[var_s2], &D_80AF6514, &D_80AF6520, Rand_S16Offset(40, 40), 25, 2, 1);
}
}
-#else
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Wdhand/func_80AF5820.s")
-#endif
+
void func_80AF5E3C(EnWdhand* this, PlayState* play) {