core2/code_75480.c progress

This commit is contained in:
Banjo Kazooie
2022-10-16 21:25:30 -05:00
parent 433a16c543
commit be29bb919c
6 changed files with 89 additions and 14 deletions

View File

@@ -306,7 +306,7 @@ void func_8024D2B0(f32 arg0[4], f32 arg1[4], f32 arg2[4], f32 arg3[4]){
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_EAF0/func_8024D374.s")
void func_8024D8F4(Cube *cube) {
bool func_8024D8F4(Cube *cube) {
f32 sp24[3];
f32 sp18[3];
@@ -316,11 +316,31 @@ void func_8024D8F4(Cube *cube) {
sp18[0] = sp24[0] + 1300.0f;
sp18[1] = sp24[1] + 1300.0f;
sp18[2] = sp24[2] + 1300.0f;
func_8024D374(sp24, sp18);
return func_8024D374(sp24, sp18);
}
bool func_8024D9B0(Cube *cube) {
f32 sp34[3];
f32 sp28[3];
f32 sp1C[3];
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_EAF0/func_8024D9B0.s")
if (cube->x == -0x10) {
return TRUE;
}
sp1C[0] = (f32) ((cube->x * 1000) + 500) - D_80280EB0[0];
sp1C[1] = (f32) ((cube->y * 1000) + 500) - D_80280EB0[1];
sp1C[2] = (f32) ((cube->z * 1000) + 500) - D_80280EB0[2];
if (LENGTH_SQ_VEC3F(sp1C) > 1.6e7f) {
return FALSE;
}
sp34[0] = (f32) ((cube->x * 1000) - 150);
sp34[1] = (f32) ((cube->y * 1000) - 150);
sp34[2] = (f32) ((cube->z * 1000) - 150);
sp28[0] = sp34[0] + 1300.0f;
sp28[1] = sp34[1] + 1300.0f;
sp28[2] = sp34[2] + 1300.0f;
return func_8024D374(sp34, sp28);
}
bool func_8024DB50(f32 arg0[3], f32 arg1) {
f32 sp3C[3];
@@ -355,7 +375,9 @@ bool func_8024DD0C(f32 arg0[3]){
return func_8024DC04(arg0[0], arg0[1], arg0[2]);
}
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_EAF0/func_8024DD34.s")
bool func_8024DD34(f32 arg0, f32 arg1, f32 arg2) {
return ((D_80280ED0[2][0]*arg0 + D_80280ED0[2][1]*arg1 + D_80280ED0[2][2]*arg2 + D_80280ED0[2][3]) <= 0.0f);
}
Mtx *func_8024DD90(void){
return &D_80280F98;

View File

@@ -3,8 +3,8 @@
#include "variables.h"
/* .data */
extern f32 D_80369890[];
extern s32 D_803698B4;
/* .bss */
struct8s *D_80381570[4];
@@ -61,4 +61,57 @@ void func_802FC630(s32 ag0, struct8s* arg1){
D_803698B4 = 0;
}
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_75480/func_802FC644.s")
void func_802FC644(void) {
f32 temp_f0;
struct8s *temp_s2;
s32 var_s1;
temp_s2 = D_80381570[0];
if (D_803698B4) {
switch (temp_s2->unk0) {
default:
break;
case 1:
temp_f0 = D_80369890[temp_s2->unk18];
temp_s2->unk1C += temp_s2->unk14 * temp_f0;
if (temp_f0 == 0.0) {
temp_s2->unk10 = 3.0f;
temp_s2->unk0 = 2;
} else {
temp_s2->unk18++;
}
break;
case 2:
if (getGameMode() != GAME_MODE_4_PAUSED) {
temp_s2->unk10 -= time_getDelta();
if (temp_s2->unk10 < 0.0f) {
temp_s2->unk0 = 3;
for(var_s1 = 1; var_s1 < D_803698B4; var_s1++){
func_802FC5C8(4, D_80381570[var_s1]);
func_802FB020(D_80381570[var_s1], temp_s2->unk0);
}
}
}
break;
case 3:
if (temp_s2->unk1C < -20.0f) {
func_802FB020(temp_s2, 0);
break;
} else {
temp_s2->unk18 = MAX(0, temp_s2->unk18 - 1);
temp_f0 = D_80369890[temp_s2->unk18];
temp_s2->unk1C -= temp_s2->unk14 * temp_f0;
}
break;
}
for(var_s1 = 1; var_s1 < D_803698B4; var_s1++){
if (temp_s2->unk0 == 2) {
D_80381570[var_s1]->unk0 = temp_s2->unk0;
}
}
}
}