mirror of
https://github.com/HarbourMasters/Starship.git
synced 2025-02-03 00:33:55 +03:00
sf_hud functions (#11)
* space * decompile func_80090CCC * unk_ format * Rand_ZeroOne * decompile func_80090E8C * decompile func_800910C0 * decompile func_80091298 * decompile func_80091368 * dec * false * decompile func_800914FC * decompile func_80091864 * decompile func_80091B90
This commit is contained in:
parent
bf55772bd9
commit
a194fd2109
@ -5,7 +5,7 @@
|
||||
|
||||
f32 func_80004E20(f32 arg0, f32 arg1);
|
||||
void func_80004E4C(void);
|
||||
f32 func_80004EB0(void);
|
||||
f32 Rand_ZeroOne(void);
|
||||
void func_80004FC8(s32 arg0, s32 arg1, s32 arg2);
|
||||
f32 func_80004FE8(void);
|
||||
f32 func_80005100(f32 arg0, f32 arg1);
|
||||
@ -72,11 +72,16 @@ void func_8008D0DC(f32, f32, f32, f32, f32);
|
||||
void func_8008E9EC(f32 arg0, f32 arg1);
|
||||
void func_8008EA14(f32, f32);
|
||||
void func_8008FFF0(UnkStruct_D_8016F110* arg0, s32);
|
||||
s32 func_8009092C(UnkStruct_func_80090A00*);
|
||||
s32 func_800915FC(UnkStruct_func_80090A00*);
|
||||
void func_80094D20(f32, f32);
|
||||
f32 func_8009BC2C(f32*, f32, f32, f32, f32);
|
||||
f32 func_8009BD38(f32*, f32, f32, f32, f32);
|
||||
void func_8009D418(Gfx**, void*, u32, u32, f32, f32, f32, f32);
|
||||
void func_8009D994(Gfx**, void*, u32, u32, f32, f32, f32, f32);
|
||||
void func_8009F6CC(Vec3f*, f32, f32, f32);
|
||||
void func_8009FC0C(s32, s32, s32);
|
||||
f32 func_8009F768(f32);
|
||||
void func_8009FEA0(s32, s32, s32);
|
||||
void func_800A1200(s32, s32, f32, f32, char*);
|
||||
s32 func_800A3F50(s32);
|
||||
@ -84,6 +89,7 @@ void func_800A5D6C(void);
|
||||
void func_800B8DD0(Gfx**, s16);
|
||||
void func_800BA490(void);
|
||||
void func_800BA4F0(void);
|
||||
void func_800BA808(u16*, s32);
|
||||
void func_800BB5D0(void);
|
||||
void func_800B6F50(f32, f32, f32, f32, f32, f32);
|
||||
void func_800B9358(void);
|
||||
|
@ -34,8 +34,8 @@ void func_8008D7F4(void);
|
||||
void func_8008D984(void);
|
||||
void func_8008DC34(void);
|
||||
void func_8008E5E8(void);
|
||||
void func_80090E8C(void);
|
||||
void func_800910C0(void);
|
||||
s32 func_80090E8C(UnkStruct_func_80090A00* arg0);
|
||||
s32 func_800910C0(UnkStruct_func_80090A00* arg0);
|
||||
void func_8009C320(Gfx**, void*, void*, s32, s32, f32, f32, f32, f32);
|
||||
void func_8009D0BC(Gfx**, void*, void*, u32, u32, f32, f32, f32, f32);
|
||||
void func_8009D994(Gfx**, void*, u32, u32, f32, f32, f32, f32);
|
||||
|
@ -16,7 +16,7 @@ typedef struct {
|
||||
/* 0x01 */ char pad_01;
|
||||
/* 0x02 */ u16 unk_02;
|
||||
/* 0x04 */ Vec3f pos;
|
||||
/* 0x10 */ Vec3f unk10;
|
||||
/* 0x10 */ Vec3f unk_10;
|
||||
} ElementType1; // size = 0x1C
|
||||
|
||||
typedef struct UnkStruct_D_80178280 {
|
||||
@ -24,9 +24,11 @@ typedef struct UnkStruct_D_80178280 {
|
||||
/* 0x00C */ f32 unk_00C;
|
||||
/* 0x010 */ char pad_010[0x64];
|
||||
/* 0x074 */ f32 unk_074;
|
||||
/* 0x078 */ char pad_078[0x4];
|
||||
/* 0x078 */ f32 unk_078;
|
||||
/* 0x07C */ f32 unk_07C;
|
||||
/* 0x080 */ char pad_080[0xB8];
|
||||
/* 0x080 */ char pad_080[0x50];
|
||||
/* 0x0D0 */ f32 unk_0D0;
|
||||
/* 0x0D4 */ char pad_0D4[0x64];
|
||||
/* 0x138 */ f32 unk_138;
|
||||
/* 0x13C */ char pad_13C[0x8C];
|
||||
/* 0x1C8 */ s32 unk_1C8;
|
||||
@ -47,24 +49,34 @@ typedef struct UnkStruct_D_80178280 {
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ ElementType1 unk_000;
|
||||
/* 0x01C */ char pad_0[0x32];
|
||||
/* 0x4E */ s16 unk4E;
|
||||
/* 0x50 */ char pad_50[0x88];
|
||||
/* 0xD8 */ f32 unkD8[50];
|
||||
} UnkStruct_D_8016F110;
|
||||
/* 0x01C */ char pad_01C[0x32];
|
||||
/* 0x04E */ s16 unk_04E;
|
||||
/* 0x050 */ char pad_050[0x88];
|
||||
/* 0x0D8 */ f32 unk_0D8[50];
|
||||
/* 0x1A0 */ char pad_1A0[0x268];
|
||||
} UnkStruct_D_8016F110; // size = 0x408
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ ElementType1 unk_000;
|
||||
/* 0x01C */ char pad_01C[0x34];
|
||||
/* 0x050 */ s32 unk_050[25];
|
||||
/* 0x0B4 */ char pad_0B4[0x8];
|
||||
/* 0x0B4 */ char pad_0B4[0x4];
|
||||
/* 0x0B8 */ s16 unk_0B8;
|
||||
/* 0x0BA */ char pad_0BA[0x2];
|
||||
/* 0x0BC */ u16 unk_0BC;
|
||||
/* 0x0BE */ char pad_0BE[0x36];
|
||||
/* 0x0BC */ u16 unk_0BE;
|
||||
/* 0x0C0 */ char pad_0C0[0x24];
|
||||
/* 0x0E4 */ s16 unk_0E4;
|
||||
/* 0x0E6 */ s16 unk_0E6;
|
||||
/* 0x0E8 */ f32 unk_0E8;
|
||||
/* 0x0EC */ f32 unk_0EC;
|
||||
/* 0x0F0 */ f32 unk_0F0;
|
||||
/* 0x0F4 */ f32 unk_0F4;
|
||||
/* 0x0F8 */ f32 unk_0F8;
|
||||
/* 0x0FC */ char pad_0FC[0x4];
|
||||
/* 0x100 */ f32 unk_100[5];
|
||||
/* 0x114 */ f32 unk_114[30];
|
||||
/* 0x18C */ Vec3f unk_18C[30];
|
||||
} UnkStruct_func_80090A00;
|
||||
|
||||
#endif
|
||||
|
@ -70,6 +70,7 @@ extern s32 D_801778A0;
|
||||
extern s32 D_801778A8;
|
||||
extern s32 D_801778B8;
|
||||
extern s32 D_801778E8;
|
||||
extern f32 D_80177940;
|
||||
extern f32 D_80177978;
|
||||
extern f32 D_80177980;
|
||||
extern f32 D_80177988;
|
||||
@ -79,6 +80,7 @@ extern f32 D_801779C0;
|
||||
extern s32 D_80177AE0;
|
||||
extern s32 D_80177AF8;
|
||||
extern u8 D_80177C98;
|
||||
extern f32 D_80177D08;
|
||||
extern f32 D_80177D68;
|
||||
extern s32 D_80177DA0[];
|
||||
extern s32 D_80177DB0;
|
||||
@ -102,6 +104,10 @@ extern s32 D_80178554;
|
||||
extern s32 D_80178558;
|
||||
extern s32 D_8017855C;
|
||||
|
||||
extern u16 D_801839B8[];
|
||||
extern u16 D_80183A08[];
|
||||
extern u16 D_80183A64[];
|
||||
|
||||
extern f32 D_801B7BC8;
|
||||
extern f32 D_801B7BCC;
|
||||
extern s32 D_801B8220[];
|
||||
|
@ -1,4 +1,5 @@
|
||||
bootproc = 0x80004DA8;
|
||||
Rand_ZeroOne = 0x80004EB0;
|
||||
D_800C90F0 = 0x800C90F0;
|
||||
|
||||
D_800D934C = 0x800D934C; // force_migration:True
|
||||
|
@ -17,7 +17,7 @@ void func_80004E4C(void) {
|
||||
D_8013B3AC = (s32) osGetTime() % 30000;
|
||||
}
|
||||
|
||||
f32 func_80004EB0(void) {
|
||||
f32 Rand_ZeroOne(void) {
|
||||
D_8013B3A4 = (D_8013B3A4 * 0xAB) % 30269;
|
||||
D_8013B3A8 = (D_8013B3A8 * 0xAC) % 30307;
|
||||
D_8013B3AC = (D_8013B3AC * 0xAA) % 30323;
|
||||
|
@ -1103,9 +1103,6 @@ void func_8008DE68(void) {
|
||||
void func_8008E2C8(f32 arg0, f32 arg1, s32* arg2, f32 arg3) {
|
||||
f32 var_fs0 = 0.0f;
|
||||
s32 var_s2 = 0;
|
||||
f32 temp_fs2;
|
||||
f32 temp_fs3;
|
||||
f32 temp_fv0;
|
||||
s32 i;
|
||||
|
||||
arg0 -= (arg3 - 1.0f) * 34.0f;
|
||||
@ -1291,23 +1288,23 @@ void func_8008F96C(void) {
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_hud/func_80090200.s")
|
||||
|
||||
void func_800907C4(UnkStruct_D_8016F110* arg0) {
|
||||
switch (arg0->unk4E) {
|
||||
switch (arg0->unk_04E) {
|
||||
case 0:
|
||||
if ((arg0->unkD8[1] == 255.0f) && (arg0->unkD8[2] == 212.0f)) {
|
||||
arg0->unk4E = 1;
|
||||
if ((arg0->unk_0D8[1] == 255.0f) && (arg0->unk_0D8[2] == 212.0f)) {
|
||||
arg0->unk_04E = 1;
|
||||
|
||||
} else {
|
||||
func_8009BC2C(&arg0->unkD8[1], 255.0f, 0.3f, 6.0f, 6.0f);
|
||||
func_8009BC2C(&arg0->unkD8[2], 212.0f, 0.3f, 4.98f, 4.98f);
|
||||
func_8009BC2C(&arg0->unk_0D8[1], 255.0f, 0.3f, 6.0f, 6.0f);
|
||||
func_8009BC2C(&arg0->unk_0D8[2], 212.0f, 0.3f, 4.98f, 4.98f);
|
||||
}
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if ((arg0->unkD8[1] == 28.0f) && (arg0->unkD8[2] == 23.0f)) {
|
||||
arg0->unk4E = 0;
|
||||
if ((arg0->unk_0D8[1] == 28.0f) && (arg0->unk_0D8[2] == 23.0f)) {
|
||||
arg0->unk_04E = 0;
|
||||
} else {
|
||||
func_8009BC2C(&arg0->unkD8[1], 28.0f, 0.3f, 6.0f, 6.0f);
|
||||
func_8009BC2C(&arg0->unkD8[2], 23.0f, 0.3f, 4.98f, 4.98f);
|
||||
func_8009BC2C(&arg0->unk_0D8[1], 28.0f, 0.3f, 6.0f, 6.0f);
|
||||
func_8009BC2C(&arg0->unk_0D8[2], 23.0f, 0.3f, 4.98f, 4.98f);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -1338,6 +1335,7 @@ s32 func_80090A00(UnkStruct_func_80090A00* arg0) {
|
||||
arg0->unk_000.pos.y -= 8.0f;
|
||||
break;
|
||||
}
|
||||
|
||||
case 2:
|
||||
arg0->unk_114[4] = D_8016F110[0].unk_000.pos.x + 1000.0f;
|
||||
arg0->unk_114[5] = 300.0f;
|
||||
@ -1389,31 +1387,315 @@ s32 func_80090A00(UnkStruct_func_80090A00* arg0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_hud/func_80090CCC.s")
|
||||
s32 func_80090CCC(UnkStruct_func_80090A00* arg0) {
|
||||
s32 ret = 0;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_hud/func_80090E8C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_hud/func_800910C0.s")
|
||||
|
||||
void func_80091254(void) {
|
||||
if (D_80177880 == 1) {
|
||||
func_80090E8C();
|
||||
if (func_8009092C(arg0) != 0) {
|
||||
arg0->unk_114[6] = D_8016F110[arg0->unk_0E6].unk_000.pos.z;
|
||||
arg0->unk_114[5] = D_8016F110[arg0->unk_0E6].unk_000.pos.y;
|
||||
arg0->unk_114[4] = D_8016F110[arg0->unk_0E6].unk_000.pos.x;
|
||||
} else {
|
||||
func_800910C0();
|
||||
arg0->unk_114[6] = D_8016F110[0].unk_000.pos.z;
|
||||
arg0->unk_114[5] = D_8016F110[0].unk_000.pos.y;
|
||||
arg0->unk_114[4] = D_8016F110[0].unk_000.pos.x;
|
||||
}
|
||||
|
||||
if ((fabsf(arg0->unk_000.pos.x - arg0->unk_114[4]) < 2000.0f) &&
|
||||
(fabsf(arg0->unk_000.pos.z - arg0->unk_114[6]) < 2000.0f)) {
|
||||
arg0->unk_050[6]++;
|
||||
if (arg0->unk_050[6] >= 9) {
|
||||
arg0->unk_050[0] = 1;
|
||||
arg0->unk_050[6] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if ((fabsf(arg0->unk_000.pos.x - arg0->unk_114[4]) < 700.0f) &&
|
||||
(fabsf(arg0->unk_000.pos.x - arg0->unk_114[4]) < 700.0f)) {
|
||||
arg0->unk_0B8 = 1;
|
||||
arg0->unk_050[6] = 0;
|
||||
ret = 1;
|
||||
}
|
||||
|
||||
if (arg0->unk_0BE == 0) {
|
||||
arg0->unk_0BE = (s32) (Rand_ZeroOne() * 200.0f) + 200;
|
||||
arg0->unk_114[10] = 30.0f;
|
||||
}
|
||||
|
||||
if (D_8016F110[arg0->unk_0E6].unk_000.unk_00 == 0) {
|
||||
arg0->unk_0B8 = 1;
|
||||
arg0->unk_0E6 = 0;
|
||||
arg0->unk_050[6] = 0;
|
||||
ret = 1;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
s32 func_80090E8C(UnkStruct_func_80090A00* arg0) {
|
||||
f32 x;
|
||||
f32 y;
|
||||
f32 z;
|
||||
f32 var_fv1_2;
|
||||
|
||||
if (arg0->unk_0BC == 0) {
|
||||
if (D_80177C98 == 1) {
|
||||
x = (Rand_ZeroOne() - 0.5f) * 20000.0f;
|
||||
y = (Rand_ZeroOne() - 0.5f) * 5000.0f;
|
||||
z = (Rand_ZeroOne() - 0.5f) * 20000.0f;
|
||||
} else {
|
||||
x = (Rand_ZeroOne() - 0.5f) * 10000.0f;
|
||||
y = Rand_ZeroOne() * 1000.0f;
|
||||
z = (Rand_ZeroOne() - 0.5f) * 10000.0f;
|
||||
}
|
||||
|
||||
if ((fabsf(arg0->unk_000.pos.x - x) > 2000.0f) && (fabsf(arg0->unk_000.pos.z - z) > 2000.0f)) {
|
||||
arg0->unk_114[4] = x;
|
||||
arg0->unk_114[5] = y;
|
||||
arg0->unk_114[6] = z;
|
||||
arg0->unk_0BC = (s32) (Rand_ZeroOne() * 20.0f) + 10;
|
||||
}
|
||||
}
|
||||
|
||||
if (arg0->unk_0E4 == 1) {
|
||||
var_fv1_2 = 3000.0f;
|
||||
} else {
|
||||
var_fv1_2 = 5000.0f;
|
||||
}
|
||||
|
||||
if ((var_fv1_2 < fabsf(arg0->unk_000.pos.x - D_8016F110->unk_000.pos.x)) &&
|
||||
(var_fv1_2 < fabsf(arg0->unk_000.pos.z - D_8016F110->unk_000.pos.z))) {
|
||||
arg0->unk_0B8 = 0;
|
||||
}
|
||||
|
||||
if (arg0->unk_0BE == 0) {
|
||||
arg0->unk_0BE = (s32) (Rand_ZeroOne() * 200.0f) + 200;
|
||||
arg0->unk_114[10] = 30.0f;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
s32 func_800910C0(UnkStruct_func_80090A00* arg0) {
|
||||
f32 var_fv1;
|
||||
|
||||
if (arg0->unk_0BC == 0) {
|
||||
arg0->unk_18C[28].x = (Rand_ZeroOne() - 0.5f) * 2000.0f;
|
||||
arg0->unk_18C[28].y = (Rand_ZeroOne() * 1000.0f) + 200.0f;
|
||||
arg0->unk_18C[28].z = (Rand_ZeroOne() - 0.5f) * 2000.0f;
|
||||
arg0->unk_0BC = (s32) (Rand_ZeroOne() * 20.0f) + 10;
|
||||
}
|
||||
|
||||
arg0->unk_114[4] = arg0->unk_18C[28].x + D_8016F110->unk_000.pos.x;
|
||||
arg0->unk_114[5] = arg0->unk_18C[28].y;
|
||||
arg0->unk_114[6] = arg0->unk_18C[28].z + D_8016F110->unk_000.pos.z;
|
||||
|
||||
if (arg0->unk_0E4 == 1) {
|
||||
var_fv1 = 1500.0f;
|
||||
} else {
|
||||
var_fv1 = 3000.0f;
|
||||
}
|
||||
|
||||
if ((var_fv1 < fabsf(arg0->unk_000.pos.x - arg0->unk_114[4])) &&
|
||||
(var_fv1 < fabsf(arg0->unk_000.pos.z - arg0->unk_114[6]))) {
|
||||
arg0->unk_0B8 = 0;
|
||||
}
|
||||
|
||||
if (arg0->unk_0BE == 0) {
|
||||
arg0->unk_0BE = (s32) (Rand_ZeroOne() * 200.0f) + 200;
|
||||
arg0->unk_114[10] = 30.0f;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void func_80091254(UnkStruct_func_80090A00* arg0) {
|
||||
if (D_80177880 == 1) {
|
||||
func_80090E8C(arg0);
|
||||
} else {
|
||||
func_800910C0(arg0);
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_hud/func_80091298.s")
|
||||
s32 func_80091298(UnkStruct_func_80090A00* arg0) {
|
||||
arg0->unk_114[1] = D_80178280->unk_0D0 + 10.0f;
|
||||
arg0->unk_114[3] = 3.6f;
|
||||
arg0->unk_114[4] = D_80178280->unk_074 + ((f32) (arg0->unk_0E4 - 2) * 700.0f);
|
||||
arg0->unk_114[5] = D_80178280->unk_078;
|
||||
arg0->unk_114[6] = D_80178280->unk_138;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_hud/func_80091368.s")
|
||||
if ((fabsf(arg0->unk_000.pos.x - arg0->unk_114[4]) < 700.0f) ||
|
||||
(fabsf(arg0->unk_000.pos.z - arg0->unk_114[6]) < 700.0f)) {
|
||||
arg0->unk_114[1] = D_80178280->unk_0D0 - 10.0f;
|
||||
arg0->unk_114[3] = 1.2f;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_hud/func_800914FC.s")
|
||||
s32 func_80091368(UnkStruct_func_80090A00* arg0) {
|
||||
switch (arg0->unk_050[5]) {
|
||||
case 0:
|
||||
arg0->unk_114[5] = 20000.0f;
|
||||
arg0->unk_050[1] = 1;
|
||||
arg0->unk_050[5] = 1;
|
||||
D_801778B0[arg0->unk_0E4] = 1;
|
||||
|
||||
switch (arg0->unk_0E4) {
|
||||
case 1:
|
||||
func_800BA808(D_801839B8, 10);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
func_800BA808(D_80183A08, 30);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
func_800BA808(D_80183A64, 20);
|
||||
break;
|
||||
}
|
||||
D_801778B0[arg0->unk_0E4] = -1;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if (arg0->unk_114[29] < 2.0f) {
|
||||
arg0->unk_114[29] = 2.0f;
|
||||
}
|
||||
|
||||
if (arg0->unk_0BC == 0) {
|
||||
arg0->unk_0BC = (s32) (Rand_ZeroOne() * 20.0f) + 30;
|
||||
arg0->unk_114[7] = 360.0f;
|
||||
arg0->unk_114[8] = 0.0f;
|
||||
}
|
||||
|
||||
if (arg0->unk_000.pos.y > 3000.0f) {
|
||||
func_80060FBC(&arg0->unk_000.unk_00, arg0->unk_100);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void func_800914FC(UnkStruct_func_80090A00* arg0) {
|
||||
switch (arg0->unk_0B8) {
|
||||
case 0:
|
||||
if (func_80090CCC(arg0) == 0) {
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
func_80091254(arg0);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
func_80091298(arg0);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
func_80091368(arg0);
|
||||
break;
|
||||
|
||||
case 7:
|
||||
func_80090A00(arg0);
|
||||
break;
|
||||
}
|
||||
|
||||
if ((D_801778B0[arg0->unk_0E4] <= 0) && (arg0->unk_0B8 != 3)) {
|
||||
arg0->unk_050[5] = 0;
|
||||
arg0->unk_0B8 = 3;
|
||||
}
|
||||
|
||||
if (D_80178280->unk_1C8 == 7) {
|
||||
if ((arg0->unk_0B8 != 2) && (arg0->unk_0B8 != 3)) {
|
||||
arg0->unk_050[4] = 1;
|
||||
arg0->unk_0B8 = 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_hud/func_800915FC.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_hud/func_80091864.s")
|
||||
s32 func_80091864(UnkStruct_func_80090A00* arg0) {
|
||||
f32 sp44;
|
||||
f32 sp40;
|
||||
f32 sp3C;
|
||||
f32 x;
|
||||
f32 y;
|
||||
f32 z;
|
||||
f32 sp2C;
|
||||
f32 sp28;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_hud/func_80091B90.s")
|
||||
x = arg0->unk_114[4] - arg0->unk_000.pos.x;
|
||||
y = arg0->unk_114[5] - arg0->unk_000.pos.y;
|
||||
z = arg0->unk_114[6] - arg0->unk_000.pos.z;
|
||||
|
||||
sp40 = func_8009F768(func_80005100(x, z));
|
||||
sp44 = func_8009F768(func_80005100(y, sqrtf(SQ(x) + SQ(z))));
|
||||
|
||||
if ((func_800915FC(arg0) != 0) && (arg0->unk_050[4] == 0)) {
|
||||
sp44 += 40.0f;
|
||||
if (sp44 >= 360.0f) {
|
||||
sp44 -= 360.0f;
|
||||
} else if ((arg0->unk_000.pos.y < (D_80177940 + 50.0f)) && (D_80177C98 == 0) && (sp44 > 180.0f)) {
|
||||
sp44 = 0.0f;
|
||||
}
|
||||
arg0->unk_050[0] = 0;
|
||||
}
|
||||
|
||||
sp3C = func_8009BD38(&arg0->unk_0F8, sp40, 0.5f, arg0->unk_114[2], 0.001f) * 30.0f;
|
||||
func_8009BD38(&arg0->unk_0F4, sp44, 0.5f, arg0->unk_114[2], 0.0001f);
|
||||
sp2C = sp28 = 0.0f;
|
||||
|
||||
if (sp3C < 0.0f) {
|
||||
sp2C = -sp3C;
|
||||
} else {
|
||||
sp28 = sp3C;
|
||||
}
|
||||
|
||||
func_8009BC2C(&arg0->unk_114[15], sp2C, 0.2f, 30.0f, 0.00f);
|
||||
func_8009BC2C(&arg0->unk_114[26], -sp2C, 0.2f, 30.0f, 0.00f);
|
||||
func_8009BC2C(&arg0->unk_114[16], sp28, 0.2f, 30.0f, 0.00f);
|
||||
func_8009BC2C(&arg0->unk_114[27], -sp28, 0.2f, 30.0f, 0.00f);
|
||||
|
||||
if (sp3C < 0.0f) {
|
||||
sp3C *= -1.0f;
|
||||
} else {
|
||||
sp3C = 360.0f - sp3C;
|
||||
}
|
||||
|
||||
func_8009BC2C(&arg0->unk_114[7], arg0->unk_114[8], 0.2f, 30.0f, 0.0001f);
|
||||
|
||||
if ((arg0->unk_114[7] > 0.01f) && (arg0->unk_114[7] < 359.9f)) {
|
||||
func_8009BD38(&arg0->unk_000.unk_10.z, arg0->unk_114[7], 0.2f, 100.0f, 0.01f);
|
||||
} else {
|
||||
func_8009BD38(&arg0->unk_000.unk_10.z, sp3C, 0.1f, 3.0f, 0.01f);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
s32 func_80091B90(UnkStruct_func_80090A00* arg0) {
|
||||
Vec3f vec;
|
||||
|
||||
arg0->unk_000.unk_10.x = -arg0->unk_0F4;
|
||||
arg0->unk_000.unk_10.y = arg0->unk_0F8;
|
||||
|
||||
func_8009BC2C(arg0->unk_114, arg0->unk_114[1], 0.2f, 1.0f, 0.0f);
|
||||
func_8009BC2C(&arg0->unk_114[2], arg0->unk_114[3], 1.0f, 1.0f, 0.0f);
|
||||
|
||||
func_8009F6CC(&vec, arg0->unk_000.unk_10.x, arg0->unk_000.unk_10.y, arg0->unk_114[0] + arg0->unk_114[9]);
|
||||
|
||||
arg0->unk_0EC = arg0->unk_114[14] + vec.y;
|
||||
arg0->unk_0E8 = arg0->unk_114[13] + vec.x;
|
||||
arg0->unk_0F0 = arg0->unk_114[12] + vec.z;
|
||||
|
||||
arg0->unk_114[13] -= arg0->unk_114[13] * 0.1f;
|
||||
arg0->unk_114[14] -= arg0->unk_114[14] * 0.1f;
|
||||
arg0->unk_114[12] -= arg0->unk_114[12] * 0.1f;
|
||||
|
||||
if ((arg0->unk_000.pos.y < D_80177940 + 40.0f) && (arg0->unk_0EC < 0.0f) && (D_80177C98 == 0)) {
|
||||
arg0->unk_000.pos.y = D_80177940 + 40.0f;
|
||||
arg0->unk_0EC = 0.0f;
|
||||
}
|
||||
arg0->unk_0F0 -= D_80177D08;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_hud/func_80091CF8.s")
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user