fn_1_57B4
This commit is contained in:
parent
f1a6f5ef3c
commit
72d0807af1
3 changed files with 92 additions and 6 deletions
|
|
@ -67,9 +67,12 @@ typedef void (*m440Func5)(omObjData*, unkStruct5*, Mtx*);
|
||||||
typedef void (*m440Func6)(struct _unkStruct6*);
|
typedef void (*m440Func6)(struct _unkStruct6*);
|
||||||
|
|
||||||
typedef struct _unkStruct8 {
|
typedef struct _unkStruct8 {
|
||||||
char unk0[0x7C];
|
s16 unk0[3][4];
|
||||||
|
s16 unk18[3];
|
||||||
|
s16 unk1E;
|
||||||
|
char unk20[0x5C];
|
||||||
Vec unk7C;
|
Vec unk7C;
|
||||||
char unk88[0xC];
|
Vec unk88;
|
||||||
Vec unk94;
|
Vec unk94;
|
||||||
Vec unkA0;
|
Vec unkA0;
|
||||||
Vec unkAC;
|
Vec unkAC;
|
||||||
|
|
@ -82,7 +85,10 @@ typedef struct _unkStruct6 {
|
||||||
u16 unk2;
|
u16 unk2;
|
||||||
s16 unk4;
|
s16 unk4;
|
||||||
s16 unk6;
|
s16 unk6;
|
||||||
char unk8[0x18];
|
u32 unk8;
|
||||||
|
Vec* unkC;
|
||||||
|
Vec* unk10;
|
||||||
|
char unk14[0xC];
|
||||||
s32 unk20;
|
s32 unk20;
|
||||||
unkStruct8* unk24;
|
unkStruct8* unk24;
|
||||||
char unk28[0x10];
|
char unk28[0x10];
|
||||||
|
|
@ -184,5 +190,6 @@ extern u16 fn_1_4EA8(u16);
|
||||||
extern void fn_1_4EEC(u16, u16);
|
extern void fn_1_4EEC(u16, u16);
|
||||||
extern void fn_1_4F34(unkStruct6*);
|
extern void fn_1_4F34(unkStruct6*);
|
||||||
extern void fn_1_5010(unkStruct6*, Vec*, f32);
|
extern void fn_1_5010(unkStruct6*, Vec*, f32);
|
||||||
|
extern void fn_1_57B4(unkStruct6*);
|
||||||
// ...
|
// ...
|
||||||
extern f32 fn_1_93C0(f32, f32, f32);
|
extern f32 fn_1_93C0(f32, f32, f32);
|
||||||
|
|
@ -214,7 +214,7 @@ void fn_1_DEC(omObjData *object)
|
||||||
{
|
{
|
||||||
fn_1_5A8(object);
|
fn_1_5A8(object);
|
||||||
if (!WipeStatGet()) {
|
if (!WipeStatGet()) {
|
||||||
fn_1_806C();
|
();
|
||||||
fn_1_3484();
|
fn_1_3484();
|
||||||
fn_1_31F8();
|
fn_1_31F8();
|
||||||
MGSeqKillAll();
|
MGSeqKillAll();
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,6 @@
|
||||||
#include "game/sprite.h"
|
#include "game/sprite.h"
|
||||||
|
|
||||||
// prototypes
|
// prototypes
|
||||||
void fn_1_5010(unkStruct6*, Vec*, f32);
|
|
||||||
void fn_1_57B4(unkStruct6*);
|
void fn_1_57B4(unkStruct6*);
|
||||||
void fn_1_5C2C(s16, HsfObject*, unkStruct6*, s32);
|
void fn_1_5C2C(s16, HsfObject*, unkStruct6*, s32);
|
||||||
f32 fn_1_93C0(f32, f32, f32);
|
f32 fn_1_93C0(f32, f32, f32);
|
||||||
|
|
@ -1187,4 +1186,84 @@ void fn_1_5010(unkStruct6* arg0, Vec* arg1, f32 arg8) {
|
||||||
var_r31->unkB8.z = (120.0f * (-sp14.x * ABS(sp14.y)));
|
var_r31->unkB8.z = (120.0f * (-sp14.x * ABS(sp14.y)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void fn_1_57B4(unkStruct6* arg0) {
|
||||||
|
Mtx sp14;
|
||||||
|
Vec sp8;
|
||||||
|
s16 var_r29;
|
||||||
|
Vec* temp_r26;
|
||||||
|
s32 var_r27;
|
||||||
|
s32 var_r28;
|
||||||
|
unkStruct8* var_r31;
|
||||||
|
|
||||||
|
var_r31 = arg0->unk24;
|
||||||
|
temp_r26 = arg0->unk10;
|
||||||
|
|
||||||
|
for (var_r27 = 0; var_r27 < arg0->unk20; var_r27++, var_r31++) {
|
||||||
|
var_r31->unkAC.y = (var_r31->unkAC.y - var_r31->unkC4.y);
|
||||||
|
var_r31->unk94.x = (var_r31->unk94.x + var_r31->unkAC.x);
|
||||||
|
var_r31->unk94.y = (var_r31->unk94.y + var_r31->unkAC.y);
|
||||||
|
var_r31->unk94.z = (var_r31->unk94.z + var_r31->unkAC.z);
|
||||||
|
var_r31->unkA0.x = (var_r31->unkA0.x + var_r31->unkB8.x);
|
||||||
|
var_r31->unkA0.y = (var_r31->unkA0.y + var_r31->unkB8.y);
|
||||||
|
var_r31->unkA0.z = (var_r31->unkA0.z + var_r31->unkB8.z);
|
||||||
|
if ((var_r31->unk94.x < -500.0f) || (var_r31->unk94.x > 500.0f)) {
|
||||||
|
var_r31->unkAC.x = (0.5f * -var_r31->unkAC.x);
|
||||||
|
var_r31->unkB8.x = (0.5f * -var_r31->unkB8.x);
|
||||||
|
}
|
||||||
|
if (var_r31->unk94.z < -500.0f) {
|
||||||
|
var_r31->unkAC.z = (0.5f * -var_r31->unkAC.z);
|
||||||
|
var_r31->unkB8.z = (0.5f * -var_r31->unkB8.z);
|
||||||
|
}
|
||||||
|
if ((var_r31->unk7C.y + var_r31->unk94.y) < -250.0f) {
|
||||||
|
if (var_r31->unkAC.y > -2.0f) {
|
||||||
|
var_r31->unk94.y = (-250.0f - var_r31->unk7C.y);
|
||||||
|
var_r31->unkAC.x = 0.0f;
|
||||||
|
var_r31->unkAC.y = 0.0f;
|
||||||
|
var_r31->unkAC.z = 0.0f;
|
||||||
|
var_r31->unkB8.x = 0.0f;
|
||||||
|
var_r31->unkB8.z = 0.0f;
|
||||||
|
} else {
|
||||||
|
var_r31->unkAC.x *= 0.5f;
|
||||||
|
var_r31->unkAC.y = -(0.3f * var_r31->unkAC.y);
|
||||||
|
var_r31->unkAC.z *= 0.5f;
|
||||||
|
var_r31->unkB8.x *= 0.5f;
|
||||||
|
var_r31->unkB8.z *= 0.5f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PSMTXScale(sp14, var_r31->unk88.x, var_r31->unk88.y, var_r31->unk88.z);
|
||||||
|
mtxTransCat(sp14, -var_r31->unk7C.x, -var_r31->unk7C.y, -var_r31->unk7C.z);
|
||||||
|
mtxRotCat(sp14, var_r31->unkA0.x, var_r31->unkA0.y, var_r31->unkA0.z);
|
||||||
|
mtxTransCat(sp14, var_r31->unk94.x + var_r31->unk7C.x, var_r31->unk94.y + var_r31->unk7C.y, var_r31->unk94.z + var_r31->unk7C.z);
|
||||||
|
|
||||||
|
for (var_r28 = 0; var_r28 < 3; var_r28++) {
|
||||||
|
if ((arg0->unk2 & 1) != 0) {
|
||||||
|
var_r29 = var_r31->unk0[var_r28][0];
|
||||||
|
} else {
|
||||||
|
var_r29 = var_r31->unk18[var_r28];
|
||||||
|
}
|
||||||
|
PSMTXMultVec(sp14, &temp_r26[var_r29], &sp8);
|
||||||
|
arg0->unkC[var_r29].x = sp8.x;
|
||||||
|
arg0->unkC[var_r29].y = sp8.y;
|
||||||
|
arg0->unkC[var_r29].z = sp8.z;
|
||||||
|
}
|
||||||
|
if ((arg0->unk2 & 2) != 0) {
|
||||||
|
var_r29 = var_r31->unk1E;
|
||||||
|
PSMTXMultVec(sp14, &temp_r26[var_r29], &sp8);
|
||||||
|
arg0->unkC[var_r29].x = sp8.x;
|
||||||
|
arg0->unkC[var_r29].y = sp8.y;
|
||||||
|
arg0->unkC[var_r29].z = sp8.z;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((arg0->unk2 & 4) != 0) {
|
||||||
|
if (++arg0->unk3E > 0x50) {
|
||||||
|
arg0->unk3C = ((arg0->unk3C - 10) < 0) ? 0 : arg0->unk3C - 10;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
DCFlushRangeNoSync(arg0->unkC, arg0->unk8 * 0xC);
|
||||||
|
}
|
||||||
|
|
||||||
|
static const GXColor lbl_1_rodata_148 = {
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF
|
||||||
|
};
|
||||||
Loading…
Add table
Add a link
Reference in a new issue