mirror of
https://github.com/HarbourMasters/Starship.git
synced 2025-02-02 16:23:57 +03:00
Wip on sf_77E40 (#42)
* Match func_80077240 * Apply changes from style guide * Match func_8007729C and style guide changes * Further style guide changes * Several matches courtesy of petrie911 * Match func_80077B84 * Run make format * Match func_80078038 * Match func_800780F8 * Match func_800783C0 * Match func_80078438 and func_800784B4 * Match func_80078550 * Match func_80078604 * Match func_8007868C * WIP func_80084194 * Rename funcs as required from merge with master. * Match func_8007879C * Match func_800788B0 and func_80084194 * Match func_80078A64 * Match 3 more funcs * Match func_80078C84 * Match func_80078D60 and func_80078CE8 * Match func_80078E50 * Match func_80078EBC * Match func_80078F78 * Add function prototypes to functions.h * (M_PI / 180.0f) to M_DTOR * Match func_8007905C * Match func_800794CC * Match func_8007953C * Match func_80079618 * Fix changes from master * Match func_8007968C * Match func_800798C4 * Match func_800798F0 * return -> break * Match func_8007A28C * Match func_8007A3C0 * Match func_8007A4B8 * Match func_8007A568 * Match two more funcs
This commit is contained in:
parent
3e1c0db70b
commit
80053694ea
@ -233,14 +233,51 @@ void func_8006B74C(Object_2F4 *);
|
||||
void func_8006EEFC(s32, f32, f32, f32, f32, f32, f32, f32, f32, f32);
|
||||
void func_800763A4(Object_2F4 *, s32);
|
||||
void func_8007717C(Object_2F4 *, s32);
|
||||
|
||||
void func_80077240(f32, f32, f32, s32);
|
||||
void func_80078E50(f32, f32, f32, f32);
|
||||
void func_800794CC(f32, f32, f32, f32);
|
||||
void func_80077240(f32 posX, f32 posY, f32 posZ, s32 arg3);
|
||||
void func_8007729C(void);
|
||||
void func_80077790(void);
|
||||
Object_8C* func_8007783C(s32 objId);
|
||||
void func_8007797C(f32 posX, f32 posY, f32 posZ, f32 arg3, f32 arg4, f32 arg5, f32 arg6);
|
||||
void func_80077A00(Object_8C* arg0);
|
||||
void func_80077A7C(Object_8C* arg0);
|
||||
void func_80077B78(void* arg0);
|
||||
void func_80077B84(Object_8C* arg0);
|
||||
void func_80078038(Object_8C* arg0);
|
||||
void func_800780F8(Object_8C* arg0);
|
||||
void func_800783C0(Object_8C* arg0);
|
||||
void func_80078438(Object_8C* arg0);
|
||||
void func_800784B4(Object_8C* arg0);
|
||||
void func_80078550(Object_8C* arg0);
|
||||
void func_80078604(Object_8C* arg0);
|
||||
void func_8007868C(Object_8C* arg0);
|
||||
void func_8007879C(Object_8C* arg0);
|
||||
void func_800788B0(Object_8C* arg0);
|
||||
void func_80078A64(Object_8C* arg0);
|
||||
void func_80078AEC(Object_8C* arg0);
|
||||
void func_80078B8C(void *unused);
|
||||
void func_80078BE0(Object_8C* arg0);
|
||||
void func_80078C84(Object_8C* arg0);
|
||||
void func_80078CE8(Object_8C* arg0);
|
||||
void func_80078E50(f32 posX, f32 posY, f32 posZ, f32 arg3);
|
||||
void func_80078EBC(Object_8C* arg0);
|
||||
void func_80078F78(Object_8C* arg0);
|
||||
void func_8007905C(Object_8C* arg0, f32 posX, f32 posY, f32 posZ, f32 arg4, u8 arg5);
|
||||
void func_800794CC(f32 posX, f32 posY, f32 posZ, f32 arg3);
|
||||
void func_8007953C(f32 posX, f32 posY, f32 posZ, f32 arg3);
|
||||
void func_800795AC(f32 posX, f32 posY, f32 posZ, f32 arg3);
|
||||
void func_80079618(f32 posX, f32 posY, f32 posZ, f32 arg3);
|
||||
void func_8007968C(Object_8C *arg0);
|
||||
s32 func_800798C4(s32 arg0, Gfx** arg1, Vec3f* arg2, Vec3f* arg3, void* arg4); //OverrideLimbDraw
|
||||
void func_800798F0(Object_8C* arg0);
|
||||
void func_8007A28C(Object_8C* arg0);
|
||||
void func_8007A3C0(Object_8C* arg0);
|
||||
void func_8007A568(f32 xPos, f32 yPos, f32 zPos, f32 arg3);
|
||||
void func_8007A6F0(Vec3f *, u32);
|
||||
void func_8007ACE0(f32, f32, f32, f32, f32, f32);
|
||||
void func_8007AFD0(f32, f32, f32, s32, f32);
|
||||
void func_8007B228(f32, f32, f32, f32);
|
||||
void func_8007B2BC(Object_8C* arg0, f32 xPos, f32 yPos, f32 zPos, f32 arg4, s32 arg5);
|
||||
void func_8007B344(f32 xPos, f32 yPos, f32 zPos, f32 arg3, s32 arg4);
|
||||
void func_8007BC7C(f32, f32, f32, f32);
|
||||
void func_8007BFFC(f32, f32, f32, f32, f32, f32, f32, s32);
|
||||
void func_8007C120(f32, f32, f32, f32, f32, f32, f32, s32);
|
||||
|
@ -302,10 +302,6 @@ typedef struct {
|
||||
/* 0x14 */ char pad14[0x14];
|
||||
} UnkStruct_D_80175A10; // size = 0x28
|
||||
|
||||
typedef struct {
|
||||
char unk_00[0x1C];
|
||||
} UnkStruct_D_80176438;
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ Object obj;
|
||||
/* 0x1C */ char pad1C[0x1C];
|
||||
@ -392,7 +388,7 @@ typedef struct {
|
||||
/* 0x46 */ s16 unk_46;
|
||||
/* 0x48 */ s16 unk_48;
|
||||
/* 0x4A */ s16 unk_4A;
|
||||
/* 0x4C */ char pad4C[0x2];
|
||||
/* 0x4C */ u8 unk_4C;
|
||||
/* 0x4E */ s16 unk_4E;
|
||||
/* 0x50 */ u16 unk_50;
|
||||
/* 0x50 */ char pad50[0x2];
|
||||
@ -542,4 +538,12 @@ typedef struct {
|
||||
/* 0x2E8 */ Vec3f unk_2E8;
|
||||
} Object_2F4; // size = 0x2F4
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 unk_00;
|
||||
/* 0x04 */ Vec3f pos; //May be a Vec4f
|
||||
/* 0x10 */ f32 unk_10;
|
||||
/* 0x14 */ char pad14[0x4];
|
||||
/* 0x18 */ u16 unk_18;
|
||||
} UnkStruct_D_80176438; // size = 0x1C
|
||||
|
||||
#endif
|
||||
|
@ -192,6 +192,13 @@ extern s32 D_800CFF90;
|
||||
extern s16 D_800CFF94[];
|
||||
extern u8 D_800CFFB4[];
|
||||
extern f32 D_800CFFC4[];
|
||||
extern Gfx* D_800D14E0[][2];
|
||||
extern Gfx* D_800D14FC[];
|
||||
extern Vec3f D_800D1528;
|
||||
extern f32 D_800D1534[10][10];
|
||||
extern s32 D_800D173C[];
|
||||
extern s32 D_800D18F0[]; //[6][4]?
|
||||
extern s32 D_800D1950[];
|
||||
extern f32 D_800D19AC[];
|
||||
extern f32 D_800D19E0[];
|
||||
extern Gfx D_800D1A40[];
|
||||
@ -435,10 +442,10 @@ extern s32 D_801782FC;
|
||||
extern s32 D_80178300;
|
||||
extern u16* D_80178308;
|
||||
extern ObjectInit* D_80178310;
|
||||
extern s32 D_80178320;
|
||||
extern s32 D_80178328;
|
||||
extern s32 D_80178330;
|
||||
extern s32 D_80178338;
|
||||
extern s32 D_80178320; //red
|
||||
extern s32 D_80178328; //green
|
||||
extern s32 D_80178330; //blue
|
||||
extern s32 D_80178338; //alpha
|
||||
extern s32 D_80178340;
|
||||
extern s32 D_80178348;
|
||||
extern s32 D_80178350;
|
||||
@ -458,8 +465,8 @@ extern s32 D_801783A0[];
|
||||
extern s32 D_801783B0[];
|
||||
extern f32 D_801783D0;
|
||||
extern f32 D_801783D4;
|
||||
extern s32 D_801783D8;
|
||||
extern s32 D_801783DC;
|
||||
extern s32 D_801783D8; //near
|
||||
extern s32 D_801783DC; //far
|
||||
extern s32 D_80178410;
|
||||
extern f32 D_80178420;
|
||||
extern f32 D_80178424;
|
||||
@ -591,12 +598,16 @@ extern u16 D_8038F080[];
|
||||
extern u16 D_8038F300[];
|
||||
extern FrameBuffer gFrameBuffers[3]; // 8038F800
|
||||
|
||||
extern Gfx D_1011F20[];
|
||||
extern u8 D_1013170[];
|
||||
extern u16 D_1013570[];
|
||||
extern u16 D_10041C0[];
|
||||
extern Gfx D_1015980[];
|
||||
extern u16 D_1006000[];
|
||||
extern Gfx D_1016580[];
|
||||
extern u16 D_1006F20[];
|
||||
extern u16 D_1007E40[];
|
||||
extern Gfx D_10182C0[];
|
||||
extern u16 D_1008D60[];
|
||||
extern u16 D_1009C80[];
|
||||
extern u16 D_100ABA0[];
|
||||
@ -607,7 +618,9 @@ extern u16 D_10050E0[];
|
||||
extern u16 D_100BAC0[];
|
||||
extern u16 D_100D900[];
|
||||
extern u16 D_10032A0[];
|
||||
extern void *D_10190C0; // A texture of some sort.
|
||||
extern Gfx D_10194C0[];
|
||||
extern Gfx D_1021E20[];
|
||||
extern Gfx D_1024290[];
|
||||
extern u8 D_1011A40[];
|
||||
extern u16 D_1011AB0[];
|
||||
@ -630,18 +643,23 @@ extern u8 D_1024A58[];
|
||||
extern Gfx D_102A8A0[];
|
||||
extern Gfx D_1024AC0[];
|
||||
extern Gfx D_1028230[];
|
||||
extern Gfx D_101C2E0[];
|
||||
extern Gfx D_101CAE0[];
|
||||
extern Gfx D_1023C80[];
|
||||
extern Gfx D_101A570[];
|
||||
extern Gfx D_1019CA0[];
|
||||
extern Gfx D_1016870[];
|
||||
extern Gfx D_1022E80[];
|
||||
extern Gfx D_1029780[];
|
||||
extern Gfx D_102A010[];
|
||||
extern Gfx D_1032780[];
|
||||
extern Gfx D_1019820[];
|
||||
extern Gfx D_101A8E0[];
|
||||
extern Gfx D_102FE80[];
|
||||
extern Gfx D_101ABD0[];
|
||||
extern Gfx D_10231A0[];
|
||||
extern Gfx D_102ED50[];
|
||||
extern Gfx D_102F5E0[];
|
||||
extern Gfx D_102FE80[];
|
||||
|
||||
extern Gfx D_2000000[];
|
||||
extern Gfx D_2000890[];
|
||||
@ -661,19 +679,23 @@ extern Gfx D_20055A0[];
|
||||
extern Gfx D_2005E30[];
|
||||
extern Gfx D_2006360[];
|
||||
extern Gfx D_20066C0[];
|
||||
extern Gfx D_2006F50[];
|
||||
extern Gfx D_20073F0[];
|
||||
extern Gfx D_2008480[];
|
||||
extern Gfx D_2009510[];
|
||||
extern Gfx D_200A5A0[];
|
||||
extern Gfx D_200B630[];
|
||||
extern Gfx D_200C6C0[];
|
||||
extern Gfx D_200D750[];
|
||||
extern Gfx D_200E7F0[];
|
||||
extern Gfx D_200F080[];
|
||||
extern Gfx D_200F910[];
|
||||
extern Gfx D_20101A0[];
|
||||
extern Gfx D_20112C0[];
|
||||
|
||||
extern u8 D_3000000[];
|
||||
extern u16 D_3000080[];
|
||||
extern Gfx D_3000660[];
|
||||
extern u16 D_3000BC0[];
|
||||
extern u8 D_300D350[];
|
||||
extern u16 D_300D398[];
|
||||
@ -684,6 +706,7 @@ extern u16 D_300D500[];
|
||||
extern Gfx D_30155E0[];
|
||||
extern Gfx D_3015D80[];
|
||||
extern Gfx D_3016660[];
|
||||
extern Gfx D_3016B30[];
|
||||
extern Gfx D_3011720[];
|
||||
extern Gfx D_3005980[];
|
||||
extern ObjectInit D_302DE3C[];
|
||||
@ -752,6 +775,7 @@ extern Gfx D_602E380[];
|
||||
extern Gfx D_60320E0[];
|
||||
extern Gfx D_6032580[];
|
||||
extern Gfx D_6032BC0[];
|
||||
extern Gfx D_6033000[];
|
||||
extern Gfx D_6034B90[];
|
||||
extern Gfx D_6035DA0[];
|
||||
extern Gfx D_60361F0[];
|
||||
@ -767,7 +791,20 @@ extern u16 D_600D5C0[];
|
||||
extern Gfx D_600D730[];
|
||||
extern Gfx D_600DBC0[];
|
||||
extern u8 D_600DDC0[];
|
||||
extern Gfx D_600F160[];
|
||||
extern Gfx D_600F2F0[];
|
||||
extern Gfx D_600F3D0[];
|
||||
extern Gfx D_600F6C0[];
|
||||
extern Gfx D_600F8A0[];
|
||||
extern u8 D_600F940[];
|
||||
extern Gfx D_600F9B0[];
|
||||
extern Gfx D_601A7A0[];
|
||||
extern Gfx D_60200E0[];
|
||||
extern Gfx D_6020A30[];
|
||||
extern Gfx D_6020E60[];
|
||||
extern Gfx D_60223C0[];
|
||||
extern Gfx D_6022450[];
|
||||
extern Gfx D_6022530[];
|
||||
extern Gfx D_60363B0[];
|
||||
extern Gfx D_6036840[];
|
||||
extern Gfx D_6036CD0[];
|
||||
@ -790,6 +827,8 @@ extern AnimationHeader D_601E8C4;
|
||||
extern Limb* D_601E9D0[];
|
||||
extern Gfx D_6018C00[];
|
||||
extern Gfx D_6018D40[];
|
||||
extern Gfx D_601FF80[];
|
||||
extern Gfx D_6024220[];
|
||||
extern Gfx D_6024B60[];
|
||||
extern Gfx D_6025B50[];
|
||||
extern Gfx D_6007CF0[];
|
||||
@ -802,8 +841,10 @@ extern Gfx D_6004570[];
|
||||
extern u8 D_6001B80[];
|
||||
extern u8 D_60020D0[];
|
||||
extern u16 D_6000900[];
|
||||
extern Gfx D_6000A80[];
|
||||
extern u16 D_6000B60[];
|
||||
extern u16 D_6001820[];
|
||||
extern Gfx D_6001A60[];
|
||||
extern u16 D_6001A80[];
|
||||
extern u16 D_60029A0[];
|
||||
extern u16 D_60038C0[];
|
||||
@ -823,11 +864,14 @@ extern u16 D_6021ED0[];
|
||||
extern u16 D_60245E0[];
|
||||
extern u16 D_6025500[];
|
||||
extern u16 D_6026420[];
|
||||
extern AnimationHeader D_6027320;
|
||||
extern u16 D_6027340[];
|
||||
extern Limb* D_602742C;
|
||||
extern Gfx D_605C230[];
|
||||
extern Vtx D_6001C50[];
|
||||
extern Vtx D_6004500[];
|
||||
extern Vtx D_6009ED0[];
|
||||
extern Gfx D_600A220[];
|
||||
extern Vtx D_600C780[];
|
||||
extern u16 D_6022760[];
|
||||
extern u16 D_602AC50[];
|
||||
|
@ -1,92 +1,824 @@
|
||||
#include "common.h"
|
||||
#include "global.h"
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_80077240.s")
|
||||
void func_80077240(f32 posX, f32 posY, f32 posZ, s32 arg3) {
|
||||
s32 i;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_8007729C.s")
|
||||
for (i = 0; i < ARRAY_COUNT(D_80176438); i++) {
|
||||
if (D_80176438[i].unk_00 == 0) {
|
||||
D_80176438[i].unk_00 = arg3;
|
||||
D_80176438[i].pos.x = posX;
|
||||
D_80176438[i].pos.y = posY;
|
||||
D_80176438[i].pos.z = posZ;
|
||||
D_80176438[i].unk_10 = 0.0f;
|
||||
D_80176438[i].unk_18 = 65;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_80077404.s")
|
||||
void func_8007729C(void) {
|
||||
UnkStruct_D_80176438* var_s0;
|
||||
s32 i;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_80077790.s")
|
||||
for (i = 0, var_s0 = D_80176438; i < ARRAY_COUNT(D_80176438); i++, var_s0++) {
|
||||
if (var_s0->unk_00 != 0) {
|
||||
if (var_s0->unk_18 != 0) {
|
||||
var_s0->unk_18 -= 1;
|
||||
}
|
||||
if (var_s0->unk_18 == 0) {
|
||||
var_s0->unk_00 = 0;
|
||||
}
|
||||
if (D_80177880 == 0) {
|
||||
var_s0->pos.z -= D_80177D08;
|
||||
} else if (D_80178280->unk_1C8 == 3) {
|
||||
var_s0->pos.x += D_80178280->unk_0C0.x;
|
||||
var_s0->pos.z += D_80178280->unk_0C0.z;
|
||||
}
|
||||
if (var_s0->unk_18 < 45) {
|
||||
Math_SmoothStepToF(&var_s0->unk_10, 300.0f, 0.1f, 20.0f, 0.0f);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_8007783C.s")
|
||||
void func_80077404(UnkStruct_D_80176438* arg0) {
|
||||
s32 var_a2;
|
||||
Vec3f sp60;
|
||||
Vec3f sp54;
|
||||
f32 sp50;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_800778C4.s")
|
||||
sp60 = D_800D1528;
|
||||
if (arg0->unk_18 <= 45) {
|
||||
Matrix_Translate(gGfxMatrix, arg0->pos.x, arg0->pos.y, arg0->pos.z + D_80177D20, 1);
|
||||
Matrix_MultVec3f(gGfxMatrix, &sp60, &sp54);
|
||||
if ((fabsf(sp54.x) < 20000.0f) && (fabsf(sp54.y) < 20000.0f)) {
|
||||
if ((sp54.z < 0.0f) && (sp54.z > -20000.0f)) {
|
||||
sp50 = sqrtf(VEC3F_SQ(sp54)) * 0.0015f * 0.2f;
|
||||
Matrix_RotateY(gGfxMatrix, -D_80178280[D_801778A0].unk_058, 1);
|
||||
Matrix_RotateX(gGfxMatrix, D_80178280[D_801778A0].unk_05C, 1);
|
||||
Matrix_Scale(gGfxMatrix, sp50, sp50, 1.0f, 1);
|
||||
Matrix_Translate(gGfxMatrix, 0.0f, arg0->unk_10, 0.0f, 1);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
if (arg0->unk_00 < 11) {
|
||||
gSPDisplayList(gMasterDisp++, D_1015980);
|
||||
gSPDisplayList(gMasterDisp++, D_800D14FC[arg0->unk_00]);
|
||||
} else if (arg0->unk_00 == 101) {
|
||||
gSPDisplayList(gMasterDisp++, D_1011F20);
|
||||
} else if (arg0->unk_00 == 100) {
|
||||
gSPDisplayList(gMasterDisp++, D_1016580);
|
||||
} else {
|
||||
gSPDisplayList(gMasterDisp++, D_1015980);
|
||||
switch (arg0->unk_00) {
|
||||
case 20:
|
||||
var_a2 = 0;
|
||||
break;
|
||||
case 30:
|
||||
var_a2 = 1;
|
||||
break;
|
||||
case 40:
|
||||
var_a2 = 2;
|
||||
break;
|
||||
case 50:
|
||||
default:
|
||||
var_a2 = 3;
|
||||
break;
|
||||
}
|
||||
gSPDisplayList(gMasterDisp++, D_800D14E0[var_a2][0]);
|
||||
gSPDisplayList(gMasterDisp++, D_800D14E0[var_a2][1]);
|
||||
}
|
||||
} else {
|
||||
arg0->unk_00 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_8007797C.s")
|
||||
void func_80077790(void) {
|
||||
UnkStruct_D_80176438* var_s0;
|
||||
s32 i;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_80077A00.s")
|
||||
RCP_SetupDL(&gMasterDisp, 0x3E);
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
|
||||
for (i = 0, var_s0 = D_80176438; i < ARRAY_COUNT(D_80176438); i++, var_s0++) {
|
||||
if (var_s0->unk_00 != 0) {
|
||||
Matrix_Push(&gGfxMatrix);
|
||||
func_80077404(var_s0);
|
||||
Matrix_Pop(&gGfxMatrix);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_80077A7C.s")
|
||||
Object_8C* func_8007783C(s32 objId) {
|
||||
Object_8C* var_a2;
|
||||
s32 i;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_80077B78.s")
|
||||
for (i = 0, var_a2 = D_80170130; i < ARRAY_COUNT(D_80170130); i++, var_a2++) {
|
||||
if (var_a2->obj.status == 0) {
|
||||
func_80061474(var_a2);
|
||||
var_a2->obj.status = 2;
|
||||
var_a2->obj.id = objId;
|
||||
func_800612B8(&var_a2->unk_1C, var_a2->obj.id);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (i == ARRAY_COUNT(D_80170130)) {
|
||||
var_a2 = NULL;
|
||||
}
|
||||
return var_a2;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_80077B84.s")
|
||||
void func_800778C4(Object_8C* arg0, f32 posX, f32 posY, f32 posZ, f32 arg4, f32 arg5, f32 arg6, f32 arg7) {
|
||||
func_80061474(arg0);
|
||||
arg0->obj.status = 1;
|
||||
arg0->obj.id = 0x153;
|
||||
arg0->obj.pos.x = posX;
|
||||
arg0->obj.pos.y = posY;
|
||||
arg0->obj.pos.z = posZ;
|
||||
arg0->unk_54 = arg4;
|
||||
arg0->unk_58 = arg5;
|
||||
arg0->unk_5C = arg6;
|
||||
arg0->unk_70 = arg7;
|
||||
arg0->unk_4C = 0;
|
||||
arg0->unk_6C = 0.5f;
|
||||
arg0->obj.rot.z = Rand_ZeroOne() * 360.0f;
|
||||
func_800612B8(&arg0->unk_1C, arg0->obj.id);
|
||||
arg0->unk_44 = 0xFF;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_80078038.s")
|
||||
void func_8007797C(f32 posX, f32 posY, f32 posZ, f32 arg3, f32 arg4, f32 arg5, f32 arg6) {
|
||||
s32 i;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_800780F8.s")
|
||||
for (i = ARRAY_COUNT(D_80170130) - 1; i >= 0; i--) {
|
||||
if (D_80170130[i].obj.status == 0) {
|
||||
func_800778C4(&D_80170130[i], posX, posY, posZ, arg3, arg4, arg5, arg6);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_800783C0.s")
|
||||
void func_80077A00(Object_8C* arg0) {
|
||||
func_8005980C(arg0->unk_70);
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, arg0->unk_44);
|
||||
gSPDisplayList(gMasterDisp++, D_3016B30);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_80078438.s")
|
||||
void func_80077A7C(Object_8C* arg0) {
|
||||
RCP_SetupDL_49();
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, arg0->unk_44);
|
||||
gDPSetEnvColor(gMasterDisp++, 255, 255, 255, arg0->unk_44);
|
||||
Matrix_Scale(gGfxMatrix, arg0->unk_6C, arg0->unk_70, 1.0f, 1);
|
||||
Matrix_Translate(gGfxMatrix, 0.0f, 20.0f, 0.0f, 1);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
gSPDisplayList(gMasterDisp++, D_6024220);
|
||||
RCP_SetupDL(&gMasterDisp, 0x40);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_800784B4.s")
|
||||
void func_80077B78(void* arg0) {
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_80078550.s")
|
||||
void func_80077B84(Object_8C* arg0) {
|
||||
func_8005980C(arg0->unk_70);
|
||||
if ((arg0->unk_6C == 71.0f) || ((D_80178280->unk_1C8 == 7) && (D_80178234 == 0))) {
|
||||
RCP_SetupDL(&gMasterDisp, 0x26);
|
||||
} else {
|
||||
RCP_SetupDL(&gMasterDisp, 0x43);
|
||||
}
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, arg0->unk_44);
|
||||
switch (arg0->unk_4C) {
|
||||
case 0:
|
||||
gDPSetEnvColor(gMasterDisp++, 0, 128, 255, arg0->unk_44);
|
||||
break;
|
||||
case 1:
|
||||
gDPSetEnvColor(gMasterDisp++, 255, 64, 255, arg0->unk_44);
|
||||
break;
|
||||
case 2:
|
||||
gDPSetEnvColor(gMasterDisp++, 255, 128, 0, arg0->unk_44);
|
||||
break;
|
||||
case 3:
|
||||
gDPSetEnvColor(gMasterDisp++, 255, 48, 48, arg0->unk_44);
|
||||
break;
|
||||
case 4:
|
||||
gDPSetEnvColor(gMasterDisp++, 255, 255, 48, arg0->unk_44);
|
||||
break;
|
||||
case 5:
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 0, arg0->unk_44);
|
||||
gDPSetEnvColor(gMasterDisp++, 255, 32, 32, arg0->unk_44);
|
||||
break;
|
||||
case 6:
|
||||
if (D_80178234 == 0x11) {
|
||||
RCP_SetupDL(&gMasterDisp, 0x26);
|
||||
}
|
||||
switch ((arg0->unk_40 + D_80177DB0) & 3) {
|
||||
case 0:
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 0, 0, arg0->unk_44);
|
||||
break;
|
||||
case 1:
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 0, 255, 0, arg0->unk_44);
|
||||
break;
|
||||
case 2:
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 0, 0, 255, arg0->unk_44);
|
||||
break;
|
||||
case 3:
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 0, arg0->unk_44);
|
||||
break;
|
||||
}
|
||||
gDPSetEnvColor(gMasterDisp++, 0, 0, 0, arg0->unk_44);
|
||||
break;
|
||||
case 7:
|
||||
gDPSetEnvColor(gMasterDisp++, 48, 48, 255, arg0->unk_44);
|
||||
break;
|
||||
case 10:
|
||||
gDPSetEnvColor(gMasterDisp++, 255, 255, 32, arg0->unk_44);
|
||||
break;
|
||||
case 11:
|
||||
gDPSetEnvColor(gMasterDisp++, 255, 32, 32, arg0->unk_44);
|
||||
break;
|
||||
case 12:
|
||||
gDPSetEnvColor(gMasterDisp++, 32, 255, 32, arg0->unk_44);
|
||||
break;
|
||||
case 13:
|
||||
gDPSetEnvColor(gMasterDisp++, 32, 32, 255, arg0->unk_44);
|
||||
break;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_80078604.s")
|
||||
gSPDisplayList(gMasterDisp++, D_1024AC0);
|
||||
RCP_SetupDL(&gMasterDisp, 0x40);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_8007868C.s")
|
||||
void func_80078038(Object_8C* arg0) {
|
||||
func_8005980C(arg0->unk_70);
|
||||
RCP_SetupDL_49();
|
||||
RCP_SetupDL(&gMasterDisp, 0x26);
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 64, 192, 255, arg0->unk_44);
|
||||
gDPSetEnvColor(gMasterDisp++, 0, 0, 0, arg0->unk_44);
|
||||
gSPDisplayList(gMasterDisp++, D_1024AC0);
|
||||
RCP_SetupDL(&gMasterDisp, 0x40);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_8007879C.s")
|
||||
void func_800780F8(Object_8C* arg0) {
|
||||
s32 i;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_800788B0.s")
|
||||
if (arg0->unk_4A >= 0xB) {
|
||||
if (!((arg0->unk_40 + D_80177DB0) & 1)) {
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 128, 128, 32);
|
||||
} else {
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 128, 128, 128);
|
||||
}
|
||||
} else if (!((arg0->unk_40 + D_80177DB0) & 1)) {
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
|
||||
} else {
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 96, 96, 255, 255);
|
||||
}
|
||||
func_8005980C(arg0->unk_70);
|
||||
for (i = 0; i < 10; i++) {
|
||||
if ((i >= arg0->unk_48) && (i < arg0->unk_46)) {
|
||||
Matrix_Push(&gGfxMatrix);
|
||||
Matrix_Translate(gGfxMatrix, 0.0f, -60.0f, 0.0f, 1);
|
||||
Matrix_Scale(gGfxMatrix, 0.8f, 3.0f, 1.0f, 1);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
gSPDisplayList(gMasterDisp++, D_102F5E0);
|
||||
Matrix_Pop(&gGfxMatrix);
|
||||
}
|
||||
Matrix_Translate(gGfxMatrix, 0.0f, -120.0f, 0.0f, 1);
|
||||
Matrix_RotateZ(gGfxMatrix, D_800D1534[arg0->unk_4C][i] * M_DTOR, 1);
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_80078A64.s")
|
||||
void func_800783C0(Object_8C* arg0) {
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, arg0->unk_44);
|
||||
func_8005980C(arg0->unk_70);
|
||||
gSPDisplayList(gMasterDisp++, D_2006F50);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_80078AE0.s")
|
||||
void func_80078438(Object_8C* arg0) {
|
||||
func_8005980C(arg0->unk_70);
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, arg0->unk_4A);
|
||||
gSPDisplayList(gMasterDisp++, D_102A8A0);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_80078AEC.s")
|
||||
void func_800784B4(Object_8C* arg0) {
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, arg0->unk_46);
|
||||
func_8005980C(arg0->unk_70);
|
||||
Matrix_RotateX(gGfxMatrix, (M_PI / 2.0f), 1);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
gSPDisplayList(gMasterDisp++, D_200D750);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_80078B8C.s")
|
||||
void func_80078550(Object_8C* arg0) {
|
||||
RCP_SetupDL(&gMasterDisp, 0x43);
|
||||
func_8005980C(arg0->unk_70);
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, arg0->unk_4A);
|
||||
gDPSetEnvColor(gMasterDisp++, 101, 138, 153, 255);
|
||||
gSPDisplayList(gMasterDisp++, D_3000660);
|
||||
RCP_SetupDL(&gMasterDisp, 0x40);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_80078BE0.s")
|
||||
void func_80078604(Object_8C* arg0) {
|
||||
if (arg0->unk_50 == 0) {
|
||||
func_8005980C(arg0->unk_70);
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, arg0->unk_44);
|
||||
gSPDisplayList(gMasterDisp++, D_20112C0);
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_80078C84.s")
|
||||
void func_8007868C(Object_8C* arg0) {
|
||||
RCP_SetupDL_60(D_80178320, D_80178328, D_80178330, D_80178338, D_801783D8, D_801783DC);
|
||||
gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK);
|
||||
Matrix_Scale(gGfxMatrix, arg0->unk_70, arg0->unk_70, arg0->unk_70, 1);
|
||||
if (arg0->unk_44 >= 2) {
|
||||
Matrix_RotateX(gGfxMatrix, (M_PI / 2.0f), 1);
|
||||
}
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
gSPDisplayList(gMasterDisp++, D_1029780);
|
||||
RCP_SetupDL(&gMasterDisp, 0x40);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_80078CE8.s")
|
||||
void func_8007879C(Object_8C* arg0) {
|
||||
RCP_SetupDL_60(D_80178320, D_80178328, D_80178330, D_80178338, D_801783D8, D_801783DC);
|
||||
gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK);
|
||||
Matrix_Scale(gGfxMatrix, arg0->unk_70 * 0.6f, 1.0f, arg0->unk_70 * 3.5f, 1);
|
||||
Matrix_RotateX(gGfxMatrix, (M_PI / 2.0f), 1);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
gSPDisplayList(gMasterDisp++, D_1029780);
|
||||
RCP_SetupDL(&gMasterDisp, 0x40);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_80078D60.s")
|
||||
void func_800788B0(Object_8C* arg0) {
|
||||
s32 temp_ft3;
|
||||
s32* tmp;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_80078E50.s")
|
||||
switch (D_80178234) {
|
||||
case 1:
|
||||
func_8005980C(arg0->unk_70);
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 128, 128, 128, 255);
|
||||
gSPDisplayList(gMasterDisp++, D_601FF80);
|
||||
break;
|
||||
case 13:
|
||||
RCP_SetupDL(&gMasterDisp, 0x43);
|
||||
temp_ft3 = Math_ModF(arg0->unk_40, 4.0f);
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, (s32) arg0->unk_6C);
|
||||
tmp = &D_800D173C[(s32) (temp_ft3 * 4.0f)];
|
||||
gDPSetEnvColor(gMasterDisp++, tmp[0], tmp[1], tmp[2], 255);
|
||||
func_8005980C(arg0->unk_70);
|
||||
gSPDisplayList(gMasterDisp++, D_1024AC0);
|
||||
RCP_SetupDL(&gMasterDisp, 0x40);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_80078EBC.s")
|
||||
void func_80078A64(Object_8C* arg0) {
|
||||
func_8005980C(arg0->unk_70);
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, arg0->unk_44);
|
||||
gSPDisplayList(gMasterDisp++, D_20112C0);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_80078F78.s")
|
||||
void func_80078AE0(void* arg0) {
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_8007905C.s")
|
||||
void func_80078AEC(Object_8C* arg0) {
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 180);
|
||||
func_8005980C(arg0->unk_70 * (13.0f + ((D_80177DB0 & 1) * 2.5f)));
|
||||
gSPDisplayList(gMasterDisp++, D_102ED50);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_800794CC.s")
|
||||
void func_80078B8C(void* unused) {
|
||||
RCP_SetupDL_21();
|
||||
gSPDisplayList(gMasterDisp++, D_101ABD0);
|
||||
RCP_SetupDL(&gMasterDisp, 0x40);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_8007953C.s")
|
||||
void func_80078BE0(Object_8C* arg0) {
|
||||
f32 var_fv0;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_800795AC.s")
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 160);
|
||||
var_fv0 = 3.0f;
|
||||
if (D_80177DB0 & 1) {
|
||||
var_fv0 *= 1.2f;
|
||||
}
|
||||
func_8005980C(arg0->unk_70 * var_fv0);
|
||||
gSPDisplayList(gMasterDisp++, D_600F8A0);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_80079618.s")
|
||||
void func_80078C84(Object_8C* arg0) {
|
||||
func_8005980C(arg0->unk_70);
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 192);
|
||||
gSPDisplayList(gMasterDisp++, D_6000A80);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_8007968C.s")
|
||||
void func_80078CE8(Object_8C* arg0) {
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, arg0->unk_4A);
|
||||
func_8005980C(arg0->unk_70);
|
||||
gSPDisplayList(gMasterDisp++, D_6033000);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_800798C4.s")
|
||||
void func_80078D60(Object_8C* arg0, f32 posX, f32 posY, f32 posZ, f32 arg4) {
|
||||
func_80061474(arg0);
|
||||
arg0->obj.status = 1;
|
||||
arg0->obj.id = 0x189;
|
||||
arg0->obj.pos.x = posX;
|
||||
arg0->obj.pos.y = posY;
|
||||
arg0->obj.pos.z = posZ;
|
||||
arg0->unk_70 = arg4;
|
||||
if (arg4 == 3.1f) {
|
||||
arg0->unk_54 = D_80163FE0[8].unk_0E8;
|
||||
arg0->unk_58 = D_80163FE0[8].unk_0EC;
|
||||
arg0->unk_5C = D_80163FE0[8].unk_0F0;
|
||||
}
|
||||
if (arg4 != 30.0f) {
|
||||
arg0->unk_4E = 1;
|
||||
}
|
||||
if (arg4 == 3.5f) {
|
||||
arg0->unk_4E = 2;
|
||||
}
|
||||
arg0->unk_50 = 0xE;
|
||||
func_800612B8(&arg0->unk_1C, arg0->obj.id);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_800798F0.s")
|
||||
void func_80078E50(f32 posX, f32 posY, f32 posZ, f32 arg3) {
|
||||
s32 i;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_8007A28C.s")
|
||||
for (i = ARRAY_COUNT(D_80170130) - 1; i >= 0; i--) {
|
||||
if (D_80170130[i].obj.status == 0) {
|
||||
func_80078D60(&D_80170130[i], posX, posY, posZ, arg3);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_8007A3C0.s")
|
||||
void func_80078EBC(Object_8C* arg0) {
|
||||
if (arg0->unk_4E == 2) {
|
||||
arg0->unk_54 = D_80178280->unk_0C0.x;
|
||||
arg0->unk_58 = D_80178280->unk_0C0.y;
|
||||
arg0->unk_5C = D_80178280->unk_0C0.z;
|
||||
}
|
||||
arg0->obj.rot.z += 35.0f;
|
||||
if (arg0->unk_50 >= 7) {
|
||||
arg0->unk_6C += 0.25f;
|
||||
} else {
|
||||
arg0->unk_6C -= 0.25f;
|
||||
}
|
||||
if (arg0->unk_6C <= 0.0f) {
|
||||
func_80060FBC(&arg0->obj, &arg0->unk_80);
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_8007A4B8.s")
|
||||
void func_80078F78(Object_8C* arg0) {
|
||||
if (arg0->unk_4E != 0) {
|
||||
RCP_SetupDL(&gMasterDisp, 0x43);
|
||||
} else {
|
||||
RCP_SetupDL(&gMasterDisp, 0x3F);
|
||||
}
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
|
||||
gDPSetEnvColor(gMasterDisp++, 255, 255, 0, 255);
|
||||
func_8005980C(arg0->unk_70 * arg0->unk_6C);
|
||||
gSPDisplayList(gMasterDisp++, D_101C2E0);
|
||||
RCP_SetupDL(&gMasterDisp, 0x40);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_8007A568.s")
|
||||
void func_8007905C(Object_8C* arg0, f32 posX, f32 posY, f32 posZ, f32 arg4, u8 arg5) {
|
||||
Vec3f sp54;
|
||||
Vec3f sp48;
|
||||
Vec3f sp3C;
|
||||
f32 sp38;
|
||||
f32 xAng;
|
||||
f32 yAng;
|
||||
|
||||
func_80061474(arg0);
|
||||
arg0->obj.status = 2;
|
||||
arg0->obj.id = 0x165;
|
||||
arg0->obj.pos.x = posX;
|
||||
arg0->obj.pos.y = posY;
|
||||
arg0->obj.pos.z = posZ;
|
||||
arg0->unk_4C = arg5;
|
||||
if (arg4 == 1.6f) {
|
||||
arg0->unk_54 = (posX - D_8016F110[1].obj.pos.x) * 0.1f;
|
||||
arg0->unk_5C = (posZ - D_8016F110[1].obj.pos.z) * 0.1f;
|
||||
} else if (arg4 == 1.3f) {
|
||||
arg0->unk_54 = ((Rand_ZeroOne() * 0.05f) + 0.03f) * posX;
|
||||
arg0->unk_5C = ((Rand_ZeroOne() * 0.05f) + 0.03f) * posZ;
|
||||
arg0->unk_58 = 5.0f;
|
||||
} else if (arg4 == 1.55f) {
|
||||
arg0->unk_54 = (Rand_ZeroOne() - 0.5f) * 10.0f;
|
||||
arg0->unk_5C = (Rand_ZeroOne() - 0.5f) * 10.0f;
|
||||
} else if ((D_80178234 == 0x11) && ((arg4 == 5.11f) || (arg4 == 7.22f))) {
|
||||
sp3C.x = D_80178280->unk_074;
|
||||
sp3C.y = D_80178280->unk_078;
|
||||
sp3C.z = D_80178280->unk_07C;
|
||||
yAng = Math_Atan2F(sp3C.x - posX, sp3C.z - posZ);
|
||||
sp38 = sqrtf(SQ(sp3C.x - posX) + SQ(sp3C.z - posZ));
|
||||
xAng = -Math_Atan2F(sp3C.y - posY, sp38);
|
||||
Matrix_RotateY(gCalcMatrix, yAng, 0);
|
||||
Matrix_RotateX(gCalcMatrix, xAng, 1);
|
||||
sp54.x = (Rand_ZeroOne() - 0.5f) * 50.0f;
|
||||
sp54.y = (Rand_ZeroOne() - 0.5f) * 50.0f;
|
||||
sp54.z = (Rand_ZeroOne() * 10.0f) + 150.0f;
|
||||
Matrix_MultVec3f(gCalcMatrix, &sp54, &sp48);
|
||||
arg0->unk_54 = sp48.x;
|
||||
arg0->unk_58 = sp48.y;
|
||||
arg0->unk_5C = sp48.z;
|
||||
} else {
|
||||
arg0->unk_58 = (D_80177C98 == 0) ? (Rand_ZeroOne() * 7.0f) + 7.0f : (Rand_ZeroOne() - 0.5f) * 10.0f;
|
||||
arg0->unk_54 = (Rand_ZeroOne() - 0.5f) * 10.0f;
|
||||
arg0->unk_5C = (Rand_ZeroOne() - 0.5f) * 10.0f;
|
||||
}
|
||||
arg0->unk_70 = ((Rand_ZeroOne() * 0.8f) + 0.3f) * arg4;
|
||||
arg0->unk_50 = (s32) (Rand_ZeroOne() * 50.0f) + 0x46;
|
||||
arg0->obj.rot.x = Rand_ZeroOne() * 360.0f;
|
||||
arg0->unk_60.x = (Rand_ZeroOne() - 0.5f) * 30.0f;
|
||||
arg0->unk_60.y = (Rand_ZeroOne() - 0.5f) * 30.0f;
|
||||
arg0->unk_60.z = (Rand_ZeroOne() - 0.5f) * 30.0f;
|
||||
func_800612B8(&arg0->unk_1C, arg0->obj.id);
|
||||
}
|
||||
|
||||
void func_800794CC(f32 posX, f32 posY, f32 posZ, f32 arg3) {
|
||||
s32 i;
|
||||
|
||||
for (i = 50; i >= 0; i--) {
|
||||
if (D_80170130[i].obj.status == 0) {
|
||||
func_8007905C(&D_80170130[i], posX, posY, posZ, arg3, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_8007953C(f32 posX, f32 posY, f32 posZ, f32 arg3) {
|
||||
s32 i;
|
||||
|
||||
for (i = 79; i >= 0; i--) {
|
||||
if (D_80170130[i].obj.status == 0) {
|
||||
func_8007905C(&D_80170130[i], posX, posY, posZ, arg3, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_800795AC(f32 posX, f32 posY, f32 posZ, f32 arg3) {
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < 95; i++) {
|
||||
if (D_80170130[i].obj.status == 0) {
|
||||
func_8007905C(&D_80170130[i], posX, posY, posZ, arg3, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_80079618(f32 posX, f32 posY, f32 posZ, f32 arg3) {
|
||||
s32 i;
|
||||
|
||||
for (i = 50; i >= 0; i--) {
|
||||
if (D_80170130[i].obj.status == 0) {
|
||||
func_8007905C(&D_80170130[i], posX, posY, posZ, arg3, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_8007968C(Object_8C* arg0) {
|
||||
if ((D_80178234 != 0xB) || (arg0->unk_44 != 7)) {
|
||||
if ((arg0->unk_50 == 0) || (arg0->obj.pos.y < D_80177940)) {
|
||||
func_80060FBC(&arg0->obj, &arg0->unk_80);
|
||||
}
|
||||
} else {
|
||||
if (!(D_80177DB0 & 3)) {
|
||||
func_8007D2C8(arg0->obj.pos.x, arg0->obj.pos.y + 550.0f, arg0->obj.pos.z, 10.0f);
|
||||
}
|
||||
if ((arg0->unk_50 == 0) || (arg0->obj.pos.y < (D_80177940 - 100.0f))) {
|
||||
func_80060FBC(&arg0->obj, &arg0->unk_80);
|
||||
}
|
||||
}
|
||||
arg0->obj.rot.x += arg0->unk_60.x;
|
||||
arg0->obj.rot.y += arg0->unk_60.y;
|
||||
arg0->obj.rot.z += arg0->unk_60.z;
|
||||
if (D_80177C98 == 0) {
|
||||
arg0->unk_58 -= 0.5f;
|
||||
}
|
||||
if ((D_80178234 == 0x11) && (D_80178280->unk_1C8 == 7) && (D_80177A80 >= 0xB0)) {
|
||||
arg0->unk_54 *= 0.95f;
|
||||
arg0->unk_58 *= 0.95f;
|
||||
arg0->unk_5C *= 0.95f;
|
||||
}
|
||||
if ((D_80178234 == 0xB) && (arg0->unk_44 == 0xA)) {
|
||||
arg0->obj.rot.x = 0.0f;
|
||||
arg0->obj.rot.y = 0.0f;
|
||||
if (arg0->unk_50 >= 25) {
|
||||
arg0->unk_6C = 0.5f;
|
||||
} else if (arg0->unk_6C > 0.03) {
|
||||
arg0->unk_6C -= 0.02f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
s32 func_800798C4(s32 arg0, Gfx** arg1, Vec3f* arg2, Vec3f* arg3, void* arg4) {
|
||||
if ((arg0 != 1) && (arg0 != 5)) {
|
||||
*arg1 = NULL;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void func_800798F0(Object_8C* arg0) {
|
||||
Vec3f frameJointTable[50];
|
||||
|
||||
if ((D_80178234 == 0x11) && (D_80178280->unk_1C8 == 7)) {
|
||||
func_8005F670(&arg0->obj.pos);
|
||||
}
|
||||
RCP_SetupDL(&gMasterDisp, 0x1D);
|
||||
if (D_80178234 == 0x10) {
|
||||
gSPFogPosition(gMasterDisp++, D_801783D8, 1005);
|
||||
}
|
||||
func_8005980C(arg0->unk_70);
|
||||
switch (D_80178234) {
|
||||
case 11:
|
||||
switch (arg0->unk_44) {
|
||||
case 1:
|
||||
if (arg0->unk_40 & 1) {
|
||||
gSPDisplayList(gMasterDisp++, D_6022530);
|
||||
} else {
|
||||
gSPDisplayList(gMasterDisp++, D_6022450);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
RCP_SetupDL(&gMasterDisp, 0x39);
|
||||
if (arg0->unk_40 & 1) {
|
||||
gSPDisplayList(gMasterDisp++, D_601A7A0);
|
||||
} else {
|
||||
gSPDisplayList(gMasterDisp++, D_60223C0);
|
||||
}
|
||||
RCP_SetupDL(&gMasterDisp, 0x1D);
|
||||
break;
|
||||
case 7:
|
||||
Animation_GetFrameData(&D_6027320, 0, frameJointTable);
|
||||
Animation_DrawSkeleton(1, &D_602742C, frameJointTable, func_800798C4, NULL, arg0, &gIdentityMatrix);
|
||||
break;
|
||||
case 8:
|
||||
gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK);
|
||||
gSPDisplayList(gMasterDisp++, D_6020E60);
|
||||
gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK);
|
||||
break;
|
||||
case 9:
|
||||
gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK);
|
||||
gSPDisplayList(gMasterDisp++, D_6020A30);
|
||||
gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK);
|
||||
break;
|
||||
case 10:
|
||||
RCP_SetupDL(&gMasterDisp, 0x43);
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
|
||||
gDPSetEnvColor(gMasterDisp++, 255, 80, 0, 255);
|
||||
func_8005980C(arg0->unk_6C);
|
||||
gSPDisplayList(gMasterDisp++, D_1024AC0);
|
||||
break;
|
||||
case 11:
|
||||
gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK);
|
||||
gSPDisplayList(gMasterDisp++, D_60200E0);
|
||||
gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK);
|
||||
break;
|
||||
case 12:
|
||||
gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK);
|
||||
gSPDisplayList(gMasterDisp++, D_600F2F0);
|
||||
gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK);
|
||||
break;
|
||||
case 13:
|
||||
gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK);
|
||||
gSPDisplayList(gMasterDisp++, D_6001A60);
|
||||
gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK);
|
||||
break;
|
||||
case 14:
|
||||
gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK);
|
||||
gSPDisplayList(gMasterDisp++, D_600F160);
|
||||
gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK);
|
||||
break;
|
||||
case 15:
|
||||
gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK);
|
||||
gSPDisplayList(gMasterDisp++, D_600F3D0);
|
||||
gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK);
|
||||
break;
|
||||
case 16:
|
||||
gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK);
|
||||
gSPDisplayList(gMasterDisp++, D_600F6C0);
|
||||
gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK);
|
||||
break;
|
||||
case 17:
|
||||
gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK);
|
||||
gSPDisplayList(gMasterDisp++, D_600F9B0);
|
||||
gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK);
|
||||
break;
|
||||
default:
|
||||
if (arg0->unk_40 & 1) {
|
||||
gSPDisplayList(gMasterDisp++, D_10194C0);
|
||||
} else {
|
||||
gSPDisplayList(gMasterDisp++, D_1024290);
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 13:
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
RCP_SetupDL(&gMasterDisp, 0x3C);
|
||||
gSPDisplayList(gMasterDisp++, D_600A220);
|
||||
break;
|
||||
default:
|
||||
switch (arg0->unk_4C) {
|
||||
case 0:
|
||||
if (arg0->unk_40 & 1) {
|
||||
gSPDisplayList(gMasterDisp++, D_10194C0);
|
||||
} else {
|
||||
gSPDisplayList(gMasterDisp++, D_1024290);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
switch (arg0->unk_40 & 3) {
|
||||
case 0:
|
||||
Matrix_Scale(gGfxMatrix, 1.0f, 0.3f, 1.0f, 1);
|
||||
break;
|
||||
case 1:
|
||||
Matrix_Scale(gGfxMatrix, 0.3f, 1.0f, 1.0f, 1);
|
||||
break;
|
||||
case 2:
|
||||
Matrix_Scale(gGfxMatrix, 1.0f, 0.5f, 1.0f, 1);
|
||||
break;
|
||||
case 3:
|
||||
Matrix_Scale(gGfxMatrix, 0.5f, 1.0f, 1.0f, 1);
|
||||
break;
|
||||
}
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
RCP_SetupDL(&gMasterDisp, 0x39);
|
||||
gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK);
|
||||
gSPDisplayList(gMasterDisp++, D_1021E20);
|
||||
RCP_SetupDL(&gMasterDisp, 0x40);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
RCP_SetupDL(&gMasterDisp, 0x40);
|
||||
if (D_80178234 == 0x10) {
|
||||
gSPFogPosition(gMasterDisp++, D_801783D8, D_801783DC);
|
||||
}
|
||||
}
|
||||
|
||||
void func_8007A28C(Object_8C* arg0) {
|
||||
Texture_Scroll(&D_10190C0, 16, 32, 0);
|
||||
D_8017812C = 2;
|
||||
arg0->obj.rot.y += 1.0f;
|
||||
Math_SmoothStepToF(&arg0->unk_70, arg0->unk_6C, 0.05f, 1.5f, 0.001f);
|
||||
if (arg0->unk_50 >= 0xB) {
|
||||
D_801779A8[0] = 60.0f;
|
||||
}
|
||||
if (arg0->unk_50 == 0x30) {
|
||||
D_80178340 = 0x96;
|
||||
}
|
||||
if (arg0->unk_50 >= 0x2E) {
|
||||
D_80178358 = 0;
|
||||
D_80178348 = D_80178350 = D_80178354 = 0xFF;
|
||||
}
|
||||
D_8017835C = 3;
|
||||
if (arg0->unk_50 == 0) {
|
||||
arg0->unk_44 -= 2;
|
||||
if (arg0->unk_44 < 0) {
|
||||
arg0->unk_44 = 0;
|
||||
func_80060FBC(&arg0->obj, &arg0->unk_80);
|
||||
D_8017812C = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_8007A3C0(Object_8C* arg0) {
|
||||
if (D_80161410 > 0) {
|
||||
Matrix_Scale(gGfxMatrix, arg0->unk_70, arg0->unk_70, arg0->unk_70, 1);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
RCP_SetupDL_64_2();
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, arg0->unk_44);
|
||||
gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK);
|
||||
gSPDisplayList(gMasterDisp++, D_10182C0);
|
||||
gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK);
|
||||
RCP_SetupDL_64_2();
|
||||
}
|
||||
}
|
||||
|
||||
void func_8007A4B8(Object_8C* arg0, f32 xPos, f32 yPos, f32 zPos, f32 arg4) {
|
||||
func_80061474(arg0);
|
||||
arg0->obj.status = 1;
|
||||
arg0->obj.id = 0x17F;
|
||||
arg0->unk_6C = arg4;
|
||||
arg0->unk_50 = 50;
|
||||
arg0->unk_44 = 200;
|
||||
arg0->obj.pos.x = xPos;
|
||||
arg0->obj.pos.y = yPos;
|
||||
arg0->obj.pos.z = zPos;
|
||||
func_80019218(0x2940F026, &arg0->unk_80, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C);
|
||||
func_800612B8(&arg0->unk_1C, arg0->obj.id);
|
||||
}
|
||||
|
||||
void func_8007A568(f32 xPos, f32 yPos, f32 zPos, f32 arg3) {
|
||||
s32 i;
|
||||
|
||||
for (i = ARRAY_COUNT(D_80170130) - 1; i >= 0; i--) {
|
||||
if (D_80170130[i].obj.status == 0) {
|
||||
func_8007A4B8(&D_80170130[i], xPos, yPos, zPos, arg3);
|
||||
break;
|
||||
}
|
||||
}
|
||||
func_8007B344(xPos, yPos, zPos, 80.0f, 4);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_8007A5F8.s")
|
||||
|
||||
@ -126,9 +858,29 @@
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_8007B228.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_8007B2BC.s")
|
||||
void func_8007B2BC(Object_8C* arg0, f32 xPos, f32 yPos, f32 zPos, f32 arg4, s32 arg5) {
|
||||
func_80061474(arg0);
|
||||
arg0->obj.status = 1;
|
||||
arg0->obj.id = 0x180;
|
||||
arg0->obj.pos.x = xPos;
|
||||
arg0->obj.pos.y = yPos;
|
||||
arg0->obj.pos.z = zPos;
|
||||
arg0->unk_6C = arg4;
|
||||
arg0->unk_44 = 0xFF;
|
||||
arg0->unk_4C = arg5;
|
||||
func_800612B8(&arg0->unk_1C, arg0->obj.id);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_8007B344.s")
|
||||
void func_8007B344(f32 xPos, f32 yPos, f32 zPos, f32 arg3, s32 arg4) {
|
||||
s32 i;
|
||||
|
||||
for (i = ARRAY_COUNT(D_80170130) - 1; i >= 0; i--) {
|
||||
if (D_80170130[i].obj.status == 0) {
|
||||
func_8007B2BC(&D_80170130[i], xPos, yPos, zPos, arg3, arg4);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_8007B3B8.s")
|
||||
|
||||
@ -340,6 +1092,25 @@
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_80083FA8.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/func_80084194.s")
|
||||
void func_80084194(Object_8C* arg0) {
|
||||
s32 tmp;
|
||||
|
||||
if (D_80178234 != 0xD) {
|
||||
RCP_SetupDL(&gMasterDisp, 0x31);
|
||||
Matrix_Scale(gGfxMatrix, arg0->unk_70, arg0->unk_70, arg0->unk_70, 1);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
|
||||
tmp = arg0->unk_44 * 4;
|
||||
gDPSetEnvColor(gMasterDisp++, D_800D18F0[tmp + 0], D_800D18F0[tmp + 1], D_800D18F0[tmp + 2], 255);
|
||||
} else {
|
||||
RCP_SetupDL(&gMasterDisp, 0x31);
|
||||
Matrix_Scale(gGfxMatrix, arg0->unk_70, arg0->unk_70, arg0->unk_70, 1);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, D_800D1950[arg0->unk_44]);
|
||||
gDPSetEnvColor(gMasterDisp++, 255, 0, 0, 255);
|
||||
}
|
||||
gSPDisplayList(gMasterDisp++, D_1024AC0);
|
||||
RCP_SetupDL(&gMasterDisp, 0x40);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_77E40/D_800D7230.s")
|
||||
|
@ -5,4 +5,4 @@ compiler_type = "ido"
|
||||
"gs[DS]P.*" = "void"
|
||||
|
||||
[decompme.compilers]
|
||||
"tools/ido_recomp/linux/5.3/cc" = "ido5.3"
|
||||
"tools/ido-recomp/linux/cc" = "ido5.3"
|
Loading…
Reference in New Issue
Block a user