Match func_i1_80192518 (#105)

* Match func_i1_80192518

* Match func_i1_8019AA4

* A bunch of small functions

* format

* Update src/overlays/ovl_i1/sf_ve1.c

Co-authored-by: Alejandro Asenjo Nitti <96613413+sonicdcer@users.noreply.github.com>

* Update src/overlays/ovl_i1/sf_ve1.c

Co-authored-by: Alejandro Asenjo Nitti <96613413+sonicdcer@users.noreply.github.com>

* Update src/overlays/ovl_i1/sf_ve1.c

Co-authored-by: Alejandro Asenjo Nitti <96613413+sonicdcer@users.noreply.github.com>

* Update src/overlays/ovl_i1/sf_ve1.c

Co-authored-by: Alejandro Asenjo Nitti <96613413+sonicdcer@users.noreply.github.com>

* fix PR

* fake variable removed

---------

Co-authored-by: Alejandro Asenjo Nitti <96613413+sonicdcer@users.noreply.github.com>
Co-authored-by: Alejandro Javier Asenjo Nitti <alejandro.asenjo88@gmail.com>
This commit is contained in:
Jefferson
2024-01-25 00:50:42 -03:00
committed by GitHub
parent c197daf499
commit 66bf56c2fd
2 changed files with 217 additions and 9 deletions
+4
View File
@@ -607,6 +607,10 @@ s32 Save_Read(void);
void func_menu_80187520(u32, void*);
void func_menu_8019E8D0(void);
void func_i1_80198414(void);
s32 func_i1_801937F4(s32, Gfx**, Vec3f*, Vec3f*, void*);
void func_i1_80193D64(s32, Vec3f*, void*);
void func_ending_8018A96C(void);
void func_ending_8018AAC4(void);
+213 -9
View File
@@ -1,9 +1,18 @@
#include "global.h"
#include "sf_ve1.h"
//! TODO: IMPORT BSS
extern s32 D_i1_8019C0B8;
extern s32 D_i1_8019C0BC;
extern s32 D_i1_8019C0C0;
extern Vec3f D_i1_80199FFC;
extern Limb* D_900D164;
extern Limb* D_901C0F4;
const char D_i1_8019B2B0[] = "--アタックオフ!!\n";
const char D_i1_8019B2C4[] = "--レベルアップ!!\n";
const char D_i1_8019B2D8[] = "wk_f00=<%10.3f>\n";
f32 func_i1_801920F0(f32* arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32* arg5) {
f32 temp;
@@ -141,9 +150,183 @@ void func_i1_801924A8(Object_80* obj80) {
void func_i1_8019250C(Actor* actor) {
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_i1/sf_ve1/func_i1_80192518.s")
void func_i1_80192518(Actor* actor) {
Object_80* obj80;
f32 temp_fv0;
f32 var_ft5;
s32 i;
Vec3f src;
Vec3f dest;
f32 temp_fv1_2;
Effect* effect;
f32 var_ft4;
if (actor->unk_0D0 == 1) {
actor->unk_0D0 = 0;
func_8007A6F0(&actor->obj.pos, 0x29121007);
}
if ((actor->state == 1) || (actor->state == 2) || (actor->state == 3)) {
Matrix_RotateY(gCalcMatrix, actor->obj.rot.y * M_DTOR, 0);
Matrix_RotateX(gCalcMatrix, actor->obj.rot.x * M_DTOR, 1);
Matrix_RotateZ(gCalcMatrix, actor->obj.rot.z * M_DTOR, 1);
}
switch (actor->state) {
case 0:
case 4:
break;
case 1:
var_ft5 = 450.0f;
var_ft4 = 0.0f;
obj80 = &gObjects80[0];
for (i = 0; i < 50; i++, obj80++) {
if ((obj80->obj.id == 128) || (obj80->obj.id == 129) || (obj80->obj.id == 130)) {
temp_fv0 = actor->obj.pos.z + 1100.0f;
if ((temp_fv0 - obj80->obj.pos.z) < 2200.0f) {
if (obj80->obj.pos.z < temp_fv0) {
switch (obj80->obj.id) {
case 128:
case 130:
break;
case 129:
var_ft5 = 600.0f;
break;
}
var_ft4 = obj80->obj.pos.x;
break;
}
}
}
}
temp_fv1_2 = actor->obj.pos.x;
actor->fwork[0] = 0.0f;
if ((temp_fv1_2 + var_ft4) < 0.0f) {
actor->obj.pos.x = var_ft4 - var_ft5;
actor->fwork[1] = 896.0f - (actor->obj.pos.x - temp_fv1_2);
} else {
actor->obj.pos.x = var_ft4 + var_ft5;
actor->fwork[1] = actor->obj.pos.x - temp_fv1_2 + 896.0f;
}
actor->timer_0BC = actor->iwork[2];
Audio_PlaySfx(0x1903205BU, actor->sfxPos, 0U, &D_800C5D34, &D_800C5D34, &D_800C5D3C);
actor->state = 2;
case 2:
if (actor->timer_0BC == 0) {
src.x = temp_fv1_2 = Math_SmoothStepToF(actor->fwork, actor->fwork[1], 0.7f, 80.0f, 0.01f);
src.y = 0.0f;
src.z = 0.0f;
Matrix_MultVec3f(gCalcMatrix, &src, &dest);
actor->obj.pos.x += dest.x;
actor->obj.pos.y += dest.y;
actor->obj.pos.z += dest.z;
effect = func_8007783C(OBJ_EFFECT_394);
if (effect != NULL) {
effect->unk_7A = 11;
effect->unk_78 = effect->unk_7A;
effect->obj.status = 2;
effect->obj.pos.x = (Rand_ZeroOne() - 0.5f) * 3.0f + actor->obj.pos.x;
effect->obj.pos.y = (Rand_ZeroOne() - 0.5f) * 3.0f + actor->obj.pos.y;
effect->obj.pos.z = (Rand_ZeroOne() - 0.5f) * 3.0f + actor->obj.pos.z + 80.0f;
effect->scale2 = 8.0f;
effect->obj.rot.z = Rand_ZeroOne() * 360.0f;
effect->vel.x = (Rand_ZeroOne() - 0.5f) * 5.0f;
effect->vel.y = (Rand_ZeroOne() - 0.5f) * 3.0f + 10.0f;
effect->unk_44 = 100;
effect->unk_46 = -5;
effect->unk_60.z = 3;
if (Rand_ZeroOne() < 0.5f) {
effect->unk_60.z = -effect->unk_60.z;
}
if (actor->iwork[0] & 1) {
effect->vel.y = -effect->vel.y;
}
}
if (fabs(temp_fv1_2) <= 5.0) {
actor->timer_0BE = 30;
actor->state++;
actor->fwork[2] = actor->obj.pos.x;
actor->fwork[3] = actor->obj.pos.y;
actor->fwork[4] = actor->obj.pos.z;
}
}
break;
case 3:
src.x = __sinf(((((30 - actor->timer_0BE) % 10) / 10.0f) * M_PI) * 2) * 5.0f;
src.y = 0.0f;
src.z = 0.0f;
Matrix_MultVec3f(gCalcMatrix, &src, &dest);
actor->obj.pos.x = actor->fwork[2] + dest.x;
actor->obj.pos.y = actor->fwork[3] + dest.y;
actor->obj.pos.z = actor->fwork[4] + dest.z;
if (actor->timer_0BE == 0) {
actor->state++;
}
break;
}
actor->iwork[0]++;
}
#if defined(IMPORT_BSS)
void func_i1_80192AA4(Actor* actor) {
static Vec3f temp;
Vec3f src;
Vec3f dest;
f32 var_fs0;
Matrix_RotateY(gCalcMatrix, actor->obj.rot.y * 0.017453292f, 0U);
Matrix_RotateX(gCalcMatrix, actor->obj.rot.x * 0.017453292f, 1U);
if ((actor->obj.rot.y <= 30.0f) || (actor->obj.rot.y >= 330.0f)) {
temp.x = D_i1_80199FFC.x;
for (temp.x = -80.0f; temp.x <= 80.0f; temp.x += 40.0f) {
Matrix_MultVec3fNoTranslate(gCalcMatrix, &D_i1_80199FFC, &dest);
}
} else {
src.z = 0.0f;
src.x = -80.0f;
if (actor->obj.rot.y > 90.0f) {
src.x = 80.0f;
}
if (0.0f <= 450.0f) {
for (var_fs0 = 0.0f; var_fs0 <= 450.0f; var_fs0 += 50.0f) {
Matrix_RotateY(gCalcMatrix, actor->obj.rot.y * 0.017453292f, 0U);
Matrix_RotateX(gCalcMatrix, actor->obj.rot.x * 0.017453292f, 1U);
src.y = var_fs0;
Matrix_MultVec3fNoTranslate(gCalcMatrix, &src, &dest);
}
}
}
}
#else
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_i1/sf_ve1/func_i1_80192AA4.s")
#endif
void func_i1_80192CB0(Actor* actor) {
actor->iwork[0] = actor->obj.rot.x;
@@ -154,17 +337,30 @@ void func_i1_80192CB0(Actor* actor) {
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_i1/sf_ve1/func_i1_80192E2C.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_i1/sf_ve1/func_i1_80192EA4.s")
void func_i1_80192EA4(Actor* actor) {
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_i1/sf_ve1/func_i1_80192EB0.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_i1/sf_ve1/func_i1_801933B4.s")
void func_i1_801933B4(Actor* arg0) {
arg0->scale = -1.0f;
arg0->obj.pos.y += 488.0f;
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_i1/sf_ve1/func_i1_801933DC.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_i1/sf_ve1/func_i1_801934D0.s")
void func_i1_801934D0(Actor* actor) {
Matrix_Translate(gGfxMatrix, 0.0f, -488.0f, 0.0f, 1U);
Animation_DrawSkeleton(0, &D_900D164, actor->vwork, NULL, NULL, actor, &gIdentityMatrix);
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_i1/sf_ve1/func_i1_80193540.s")
void func_i1_80193540(Object_80* arg0) {
arg0->obj.pos.z;
if (((gPlayer->unk_138 - arg0->obj.pos.z) <= 3500.0f) && !(gGameFrameCount & 3)) {
func_8007C120(arg0->obj.pos.x, arg0->obj.pos.y, arg0->obj.pos.z, 0.0f, 0.0f, 0.0f, 0.2f, 0xA);
}
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_i1/sf_ve1/func_i1_801935CC.s")
@@ -178,12 +374,20 @@ void func_i1_80192CB0(Actor* actor) {
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_i1/sf_ve1/func_i1_80198414.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_i1/sf_ve1/func_i1_80198594.s")
void func_i1_80198594(Boss* boss) {
boss->obj.pos.z = gPlayer->pos.z;
if ((boss->timer_052 <= 0) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_3)) {
func_i1_80198414();
}
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_i1/sf_ve1/func_i1_801985E4.s")
void func_i1_801985E4(Boss* boss) {
if (boss->swork[26] == 0) {
Animation_DrawSkeleton(0, &D_901C0F4, boss->vwork, func_i1_801937F4, func_i1_80193D64, boss, &gIdentityMatrix);
}
boss->state = boss->swork[9];
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_i1/sf_ve1/func_i1_8019864C.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_i1/sf_ve1/func_i1_801988B8.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_i1/sf_ve1/D_i1_8019B2B0.s")