commit
5240be5905
4 changed files with 1571 additions and 57 deletions
|
|
@ -1,11 +1,25 @@
|
|||
#include "dolphin.h"
|
||||
|
||||
#include "game/hsfformat.h"
|
||||
#include "game/hsfman.h"
|
||||
#include "game/object.h"
|
||||
|
||||
extern u8 texMtxTbl[];
|
||||
|
||||
#define FABS(x) ((x < 0.0f) ? -(x) : (x))
|
||||
|
||||
// types
|
||||
typedef struct _unkType2 {
|
||||
char unk[0x10];
|
||||
} unkType2;
|
||||
|
||||
typedef struct _unkType {
|
||||
unkType2 unk[0x10];
|
||||
} unkType;
|
||||
|
||||
typedef struct _unkType3 {
|
||||
Vec unk[4];
|
||||
} unkType3;
|
||||
|
||||
typedef struct _unkStruct {
|
||||
s16 unk0[3];
|
||||
s16 unk6;
|
||||
|
|
@ -90,111 +104,175 @@ typedef struct _unkStruct4 {
|
|||
f32 unk148;
|
||||
} unkStruct4;
|
||||
|
||||
typedef struct _unkSubStruct4 {
|
||||
s8 unk0;
|
||||
s8 unk1;
|
||||
char unk2[0x2];
|
||||
HsfVector2f unk4[4];
|
||||
u8 unk24;
|
||||
char unk25[0x3];
|
||||
f32 unk28;
|
||||
f32 unk2C;
|
||||
} unkSubStruct4;
|
||||
|
||||
// taken from m438
|
||||
typedef struct _unkSubStruct {
|
||||
Vec unk0;
|
||||
char unkC[0xC];
|
||||
Vec unkC;
|
||||
Vec unk18;
|
||||
char unk24[0x2C];
|
||||
char unk24[0xC];
|
||||
u8 unk30;
|
||||
u8 unk31;
|
||||
u8 unk32;
|
||||
u8 unk33;
|
||||
u32 unk34;
|
||||
s16 unk38;
|
||||
void* unk3C;
|
||||
Vec* unk40;
|
||||
GXColor* unk44;
|
||||
Vec* unk48;
|
||||
GXColor unk4C;
|
||||
GXColor unk50;
|
||||
char unk54[0x8];
|
||||
s8 unk5C;
|
||||
char unk5D[0xB];
|
||||
unkSubStruct4* unk54;
|
||||
u8 unk58;
|
||||
char unk59[0x3];
|
||||
Vec unk5C;
|
||||
Vec unk68;
|
||||
char unk74[0x20];
|
||||
s16 unk74[2];
|
||||
s16* unk78;
|
||||
s16* unk7C;
|
||||
char unk80[0x14];
|
||||
} unkSubStruct; /* size = 0x94 */
|
||||
|
||||
typedef void (*unkSubStruct2Func)(struct _unkSubStruct2*);
|
||||
|
||||
typedef struct _unkSubStruct2 {
|
||||
s16 unk0;
|
||||
s16 unk2;
|
||||
char unk4[0x2C];
|
||||
void *unk30; // TODO type
|
||||
char unk34[8];
|
||||
u8 unk4;
|
||||
u32 unk8;
|
||||
Vec unkC;
|
||||
Vec unk18;
|
||||
Vec unk24;
|
||||
void (*unk30)(struct _unkSubStruct2*);
|
||||
s16* unk34;
|
||||
s16 unk38;
|
||||
char unk3A[2];
|
||||
unkSubStruct *unk3C;
|
||||
char unk40[0x20];
|
||||
char unk40[0x8];
|
||||
s16 unk48;
|
||||
char* unk4C;
|
||||
Vec* unk50;
|
||||
GXColor* unk54;
|
||||
Vec* unk58;
|
||||
unkSubStruct4* unk5C;
|
||||
u8 unk60;
|
||||
char unk61[0x1A];
|
||||
s16 unk7C;
|
||||
s16 unk7E;
|
||||
float unk80;
|
||||
float unk84;
|
||||
float unk88;
|
||||
float unk8C;
|
||||
float unk90;
|
||||
char unk94[0x28];
|
||||
char unk61[0x3];
|
||||
Vec unk64;
|
||||
Vec unk70;
|
||||
union {
|
||||
s16 unk7C[0x20];
|
||||
struct {
|
||||
s16 unk7Cs;
|
||||
s16 unk7Es;
|
||||
float unk80;
|
||||
float unk84;
|
||||
float unk88;
|
||||
float unk8C;
|
||||
float unk90;
|
||||
char unk94[0x28];
|
||||
};
|
||||
};
|
||||
} unkSubStruct2; /* size = 0xBC */
|
||||
|
||||
typedef struct _unkSubStruct3 {
|
||||
AnimData* unk0;
|
||||
s16 unk4;
|
||||
s16 unk6;
|
||||
u32 unk8;
|
||||
Vec unkC;
|
||||
Mtx unk18;
|
||||
GXColor unk48;
|
||||
u8 unk4C;
|
||||
u8 unk4D;
|
||||
s16 unk4E;
|
||||
s16 unk50;
|
||||
char unk52[0x2];
|
||||
f32 unk54;
|
||||
f32 unk58;
|
||||
f32 unk5C;
|
||||
f32 unk60;
|
||||
} unkSubStruct3; /* size = 0x64 */
|
||||
|
||||
typedef struct _unkStruct5 {
|
||||
/* 0x00 */ char unk00[0x36];
|
||||
Mtx unk0;
|
||||
s16 unk30;
|
||||
s16 unk32;
|
||||
s16 unk34;
|
||||
s16 unk36;
|
||||
s16 unk38;
|
||||
s16 unk3A;
|
||||
char unk3C[4];
|
||||
unkSubStruct3 *unk3C;
|
||||
unkSubStruct2 *unk40;
|
||||
} unkStruct5; /* size = */
|
||||
|
||||
typedef struct _unkStruct6 {
|
||||
Vec unk0;
|
||||
Vec unkC;
|
||||
Vec unk18;
|
||||
Vec unk24;
|
||||
} unkStruct6;
|
||||
|
||||
// bss
|
||||
extern unkStruct5 lbl_1_bss_36C;
|
||||
|
||||
// prototypes
|
||||
void ObjectSetup(void);
|
||||
// main.c
|
||||
void fn_1_43C(omObjData* object);
|
||||
void fn_1_4B0(omObjData* object);
|
||||
void fn_1_7D8(omObjData* object);
|
||||
void fn_1_14C0(omObjData* object);
|
||||
void fn_1_1524(s16, char*, f32, Mtx);
|
||||
void fn_1_15D0(omObjData* object);
|
||||
void fn_1_1960(omObjData* object);
|
||||
void fn_1_1A60(unkStruct3*);
|
||||
void fn_1_2B18(omObjData* object);
|
||||
void fn_1_2C14(omObjData* object);
|
||||
void fn_1_2E88(f32, Vec*, Vec*, f32);
|
||||
void fn_1_2F28(f32, Vec*, Vec*, f32, Vec*, Vec*, f32);
|
||||
void fn_1_31E0(f32);
|
||||
void fn_1_3208(omObjData* object);
|
||||
void fn_1_3640(omObjData* object);
|
||||
void fn_1_3764(omObjData* object);
|
||||
void fn_1_3B44(omObjData* object);
|
||||
void fn_1_4660(omObjData* object);
|
||||
void fn_1_5B20(unkSubStruct2*);
|
||||
void fn_1_5FB0(omObjData* object);
|
||||
void fn_1_6304(omObjData* object);
|
||||
void fn_1_6368(void);
|
||||
void* fn_1_63A8(s32);
|
||||
void fn_1_6448(void*);
|
||||
void fn_1_64DC(void);
|
||||
void fn_1_6584(s16, char*, u8, u8, u8);
|
||||
AnimBmpData* fn_1_668C(s16);
|
||||
s16 fn_1_66AC(void);
|
||||
s32 fn_1_679C(void);
|
||||
f32 fn_1_67F0(f32, f32, f32);
|
||||
void fn_1_6958(Mtx, f32, f32, f32);
|
||||
void fn_1_6A78(Mtx, Vec*);
|
||||
f32 fn_1_6D84(f32, f32, f32, f32);
|
||||
void fn_1_6DFC(f32*, f32*, f32*, f32*, f32);
|
||||
f32 fn_1_6F18(f32, f32, f32, f32);
|
||||
void fn_1_6F90(f32*, f32*, f32*, f32*, f32);
|
||||
void fn_1_7268(f32*, f32*, f32*, s32);
|
||||
f32 fn_1_7520(f32, f32*, f32*, f32*, s32);
|
||||
void fn_1_7674(f32*, Vec*, Vec*, s32);
|
||||
// ...
|
||||
void fn_1_7A54(f32, Vec*, f32*, Vec*, Vec*, s32);
|
||||
void fn_1_8780(s32, s32);
|
||||
AnimData** fn_1_9734(s16); // *
|
||||
s16 fn_1_A2D0(s32, s32);
|
||||
// map.c
|
||||
void fn_1_95C0(ModelData*, Mtx);
|
||||
AnimData** fn_1_9734(s16);
|
||||
void fn_1_9DC8(unkSubStruct2*);
|
||||
s16 fn_1_A2D0(u8, u8);
|
||||
void fn_1_A800(s16);
|
||||
s16 fn_1_A94C(s32, s16, s16);
|
||||
s16 fn_1_A94C(u32, s16, s16);
|
||||
void fn_1_ACF4(s16, s16, s16, s16, s16, s16);
|
||||
void fn_1_AFC8(s16, s32, s32, s32, s32);
|
||||
void fn_1_B038(s16, s32, s32);
|
||||
void fn_1_B0B8(s16, s32, s16);
|
||||
void fn_1_B634(void);
|
||||
void fn_1_AF48(s16);
|
||||
u8 fn_1_AFC8(s16, u8, s32, s16, s16);
|
||||
s32 fn_1_B0B8(s16, u8, s16);
|
||||
void fn_1_B864(s16, f32, f32, f32);
|
||||
void fn_1_B8D0(s16, s16, f32, f32, f32);
|
||||
void fn_1_BB4C(s16, f32, f32, f32);
|
||||
void fn_1_BC9C(s16, f32, f32, f32);
|
||||
void fn_1_BD08(s16, s16, f32, f32, f32);
|
||||
void fn_1_BE30(s16, s16, s32);
|
||||
void fn_1_C110(s16, s16, u8, u8, u8, u8);
|
||||
void fn_1_C264(s16, s32);
|
||||
void fn_1_C2D0(s16, s32, s32);
|
||||
void fn_1_C264(s16, u8);
|
||||
void fn_1_C2D0(s16, s16, u8);
|
||||
void fn_1_C410(s16, s16, u8, u8);
|
||||
void fn_1_C58C(s16, s16, u8 , f32);
|
||||
void fn_1_C81C(s16, s32);
|
||||
void fn_1_C58C(s16, s16, u8, f32);
|
||||
void fn_1_C81C(s16, u8);
|
||||
|
|
@ -1109,7 +1109,7 @@ void fn_1_F1F4(s16 arg0, u8 arg1) {
|
|||
|
||||
if (arg0 != 0) {
|
||||
temp_r29 = &lbl_1_bss_F0.unk10[arg0];
|
||||
var_r31 = (unkStruct8Sub *)(&temp_r29->unk3C);
|
||||
var_r31 = (unkStruct8Sub *)(&temp_r29->unk3C); //! BAD WHY
|
||||
(void)temp_r29;
|
||||
|
||||
for (var_r28 = 0; var_r28 < temp_r29->unk2; var_r28++, var_r31++) {
|
||||
|
|
|
|||
|
|
@ -1333,12 +1333,12 @@ void fn_1_5B20(unkSubStruct2* arg0) {
|
|||
var_r31->unk0.y = 6.0f;
|
||||
var_r31->unk0.z = 65.0f * var_r31->unk68.z;
|
||||
}
|
||||
arg0->unk7C = 30;
|
||||
arg0->unk7Cs = 30;
|
||||
arg0->unk60++;
|
||||
case 1:
|
||||
arg0->unk7C--;
|
||||
temp_f31 = (30.0f - arg0->unk7C) / 30.0f;
|
||||
temp_f29 = arg0->unk7C / 30.0f;
|
||||
arg0->unk7Cs--;
|
||||
temp_f31 = (30.0f - arg0->unk7Cs) / 30.0f;
|
||||
temp_f29 = arg0->unk7Cs / 30.0f;
|
||||
var_r31 = arg0->unk3C;
|
||||
for (var_r29 = 0; var_r29 < arg0->unk2; var_r29++, var_r31++) {
|
||||
var_r31->unk0.x += 5.0f * temp_f29 * var_r31->unk68.x;
|
||||
|
|
@ -1352,7 +1352,7 @@ void fn_1_5B20(unkSubStruct2* arg0) {
|
|||
var_r31->unk50.b = 0xFF;
|
||||
var_r31->unk50.a = 96.0f * (1.0f - (temp_f31 * temp_f31));
|
||||
}
|
||||
if (arg0->unk7C == 0) {
|
||||
if (arg0->unk7Cs == 0) {
|
||||
arg0->unk60++;
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
1436
src/REL/m415Dll/map.c
Normal file
1436
src/REL/m415Dll/map.c
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue