Complete m438Dll (#542)

* get halfway through m424/ball

* get halfway through m424/ball

* get halfway through m424/ball

* complete m424/ball

* fix merge errors

* Revert "complete m424/ball"

This reverts commit acbc3196c5.

* fix up ball, start claw

* get halfway through m424/ball

* complete m424/ball

* Revert "complete m424/ball"

This reverts commit acbc3196c5.

* fix up ball, start claw

* complete m424Dll

* fix m424, begin m438/map

* Start m438/map

* complete m438/map

* fix m424

* start fire.c

* adapt main.c

* continued work on fire.c

* complete fire.c
This commit is contained in:
CreateSource 2025-01-19 19:51:03 -05:00 committed by GitHub
parent 6575f573f6
commit 4943808263
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 1758 additions and 123 deletions

10
.vscode/settings.json vendored
View file

@ -39,7 +39,15 @@
"chrman.h": "c", "chrman.h": "c",
"os.h": "c", "os.h": "c",
"type_traits": "cpp", "type_traits": "cpp",
"xutility": "cpp" "xutility": "cpp",
"xtr1common": "c",
"hsfdraw.h": "c",
"dolphin.h": "c",
"hsfman.h": "c",
"hsfformat.h": "c",
"hsfanim.h": "c",
"memory.h": "c",
"animdata.h": "c"
}, },
"search.useIgnoreFiles": false, "search.useIgnoreFiles": false,
"search.exclude": { "search.exclude": {

View file

@ -1,6 +1,8 @@
#ifndef M438DLL_H #ifndef M438DLL_H
#define M438DLL_H #define M438DLL_H
#include "game/animdata.h"
#include "game/hsfformat.h"
#include "game/object.h" #include "game/object.h"
typedef struct M438MainWork4 { typedef struct M438MainWork4 {
@ -16,6 +18,141 @@ typedef struct M438MainWork4 {
char unk40[0xC]; char unk40[0xC];
} M438MainWork4; /* size = 0x4C */ } M438MainWork4; /* size = 0x4C */
typedef struct M438UnkSubStruct {
s8 unk_00;
s8 unk_01;
char unk02[0x2];
f32 unk_04;
f32 unk_08;
f32 unk_0C;
f32 unk_10;
f32 unk_14;
f32 unk_18;
f32 unk_1C;
f32 unk_20;
u8 unk_24;
float unk_28;
float unk_2C;
} M438UnkSubStruct;
typedef struct M438UnkStruct {
Vec unk_00;
Vec unk_0C;
Vec unk_18;
Vec unk_24;
u8 unk_30;
u8 unk_31;
u8 unk_32;
u8 unk_33;
u8 unk_34;
u32 unk_38;
s16 unk_3C;
void* unk_40;
Vec* unk_44;
GXColor* unk_48;
Vec* unk_4C;
GXColor unk_50;
GXColor unk_54;
M438UnkSubStruct* unk_58;
u8 unk_5C;
char unk5D[0x3];
Vec unk_60;
Vec unk_6C;
s16 unk_78[0x10];
} M438UnkStruct; /* size = 0x98 */
typedef struct M438FireStruct {
Vec unk0;
Vec unkC;
Vec unk18;
Vec unk24;
} M438FireStruct; // sizeof 0x30
typedef struct M438FireStruct2 {
GXColor unk0;
GXColor unk4;
GXColor unk8;
GXColor unkC;
} M438FireStruct2; // sizeof 0x10
typedef struct M438FireStruct3 {
HsfVector2f unk0;
HsfVector2f unk8;
HsfVector2f unk10;
HsfVector2f unk18;
} M438FireStruct3; // sizeof 0x20
typedef struct M438UnkStruct2 {
s16 unk_00;
s16 unk_02;
u8 unk_04;
u32 unk_08;
Vec unk_0C;
Vec unk_18;
Vec unk_24;
void (*unk_30)(struct M438UnkStruct2*);
s16* unk_34;
char unk_38[0x4];
M438UnkStruct *unk_3C;
char unk40[0x8];
s16 unk_48;
void* unk_4C;
Vec* unk_50;
GXColor* unk_54;
Vec* unk_58;
M438UnkSubStruct* unk_5C;
u8 unk_60;
char unk61[0x3];
Vec unk_64;
Vec unk_70;
union {
s16 unk_7Ca[0x20];
struct {
s16 unk_7C;
s16 unk_7E;
float unk_80;
float unk_84;
float unk_88;
float unk_8C;
float unk_90;
char unk94[0x28];
};
};
} M438UnkStruct2; /* size = 0xBC */
typedef struct M438UnkStruct3 {
AnimData* unk_00;
s16 unk_04;
s16 unk_06;
u32 unk_08;
Vec unk_0C;
Mtx unk_18;
GXColor unk_48;
u8 unk_4C;
u8 unk_4D;
s16 unk_4E;
s16 unk_50;
char unk52[0x2];
f32 unk_54;
f32 unk_58;
f32 unk_5C;
f32 unk_60;
} M438UnkStruct3; /* size = 0x64 */
typedef struct M438StructBssDE4 {
Mtx unk_00;
s16 unk_30;
s16 unk_32;
s16 unk_34;
s16 unk_36;
s16 unk_38;
s16 unk_3A;
M438UnkStruct3 *unk_3C;
M438UnkStruct2 *unk_40;
} M438StructBssDE4; /* size = */
extern M438StructBssDE4 lbl_1_bss_DE4;
void fn_1_B4D8(Process *arg0); void fn_1_B4D8(Process *arg0);
void fn_1_B548(); void fn_1_B548();
s32 fn_1_DA64(float arg8); s32 fn_1_DA64(float arg8);
@ -24,11 +161,11 @@ float fn_1_E488(float arg8, float arg9, float argA);
float fn_1_E5A4(float arg8, float arg9); float fn_1_E5A4(float arg8, float arg9);
void fn_1_E658(s16 arg0, s16 arg1); void fn_1_E658(s16 arg0, s16 arg1);
s16 fn_1_10258(s32 arg0, s32 arg1); s16 fn_1_10258(u8 arg0, u8 arg1);
void fn_1_107BC(s16 arg0); void fn_1_107BC(s16 arg0);
void fn_1_108E4(s16 arg0, s32 arg1, s32 arg2); void fn_1_108E4(s16 arg0, s16 arg1, u8 arg2);
s16 fn_1_10910(u32 arg0, s16 arg1, s16 arg2); s16 fn_1_10910(u32 arg0, s16 arg1, s16 arg2);
s8 fn_1_11018(s16 arg0, u8 arg1, u32 arg2); u8 fn_1_11018(s16 arg0, u8 arg1, u32 arg2);
void fn_1_11658(void); void fn_1_11658(void);
void fn_1_11890(s16 arg0, float arg8, float arg9, float argA); void fn_1_11890(s16 arg0, float arg8, float arg9, float argA);
void fn_1_118FC(s16 arg0, s16 arg1, float arg8, float arg9, float argA); void fn_1_118FC(s16 arg0, s16 arg1, float arg8, float arg9, float argA);
@ -39,11 +176,11 @@ void fn_1_11F68(s16 arg0, s16 arg1, float arg8, float arg9, float argA);
void fn_1_1204C(s16 arg0, s32 arg1); void fn_1_1204C(s16 arg0, s32 arg1);
void fn_1_12090(s16 arg0, s16 arg1, s32 arg2); void fn_1_12090(s16 arg0, s16 arg1, s32 arg2);
void fn_1_12100(s16 arg0, s32 arg1); void fn_1_12100(s16 arg0, s32 arg1);
void fn_1_12174(s16 arg0, s32 arg1); void fn_1_12174(s16 arg0, u32 arg1);
void fn_1_12378(s16 arg0, s16 arg1, s8 arg2, s8 arg3, s8 arg4, u8 arg5); void fn_1_12378(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5);
void fn_1_124CC(s16 arg0, s8 arg1); void fn_1_124CC(s16 arg0, u8 arg1);
void fn_1_12538(s16 arg0, s16 arg1, s8 arg2); void fn_1_12538(s16 arg0, s16 arg1, u8 arg2);
void fn_1_1274C(s16 arg0, s16 arg1, u8 arg2, s8 arg3); void fn_1_1274C(s16 arg0, s16 arg1, u8 arg2, u8 arg3);
void fn_1_128C8(s16 arg0, s16 arg1, u8 arg2, float arg8); void fn_1_128C8(s16 arg0, s16 arg1, u8 arg2, float arg8);
#endif #endif

View file

@ -1,5 +1,6 @@
#include "REL/m424Dll.h" #include "REL/m424Dll.h"
#include "math.h"
#include "ext_math.h" #include "ext_math.h"
#include "game/audio.h" #include "game/audio.h"
#include "game/chrman.h" #include "game/chrman.h"
@ -7,8 +8,6 @@
#include "game/hsfman.h" #include "game/hsfman.h"
#include "game/hsfmotion.h" #include "game/hsfmotion.h"
#include "game/pad.h" #include "game/pad.h"
#include "math.h"
// STRUCT // STRUCT
typedef struct _M424DllClawStruct { typedef struct _M424DllClawStruct {
@ -67,8 +66,8 @@ typedef struct _M424DllClawStruct3 {
} M424DllClawStruct3; // sizeof 0x8 } M424DllClawStruct3; // sizeof 0x8
// BSS // BSS
Process *lbl_1_bss_6DC; Process* lbl_1_bss_6DC;
omObjData *lbl_1_bss_6D8; omObjData* lbl_1_bss_6D8;
s32 lbl_1_bss_6D0[2]; s32 lbl_1_bss_6D0[2];
s32 lbl_1_bss_6CC; s32 lbl_1_bss_6CC;
s32 lbl_1_bss_6C8; s32 lbl_1_bss_6C8;
@ -179,7 +178,7 @@ void fn_1_94D0(omObjData *arg0)
} }
var_r31->unk184 = -1; var_r31->unk184 = -1;
var_r31->unk30 = lbl_1_data_30C; var_r31->unk30 = lbl_1_data_30C;
for (var_r29 = 0; var_r29 < 0xC; var_r29++) { for (var_r29 = 0; var_r29 < 0xC; var_r29++) {
var_r31->unk3C[var_r29] = lbl_1_data_30C; var_r31->unk3C[var_r29] = lbl_1_data_30C;
var_r31->unkCC[var_r29] = lbl_1_data_30C; var_r31->unkCC[var_r29] = lbl_1_data_30C;

File diff suppressed because it is too large Load diff

View file

@ -137,70 +137,6 @@ typedef struct M438StructBss298 {
Vec unk_24; Vec unk_24;
} M438StructBss298; /* size = 0x30 */ } M438StructBss298; /* size = 0x30 */
typedef struct M438UnkSubStruct {
u8 unk_00;
char unk01[0x23];
u8 unk_24;
float unk_28;
float unk_2C;
} M438UnkSubStruct;
typedef struct M438UnkStruct {
Vec unk_00;
char unk0C[0xC];
Vec unk_18;
char unk24[0xF];
s8 unk_33;
char unk34[0x4];
s32 unk_38;
char unk_3C[0x18];
s8 unk_54;
s8 unk_55;
s8 unk_56;
u8 unk_57;
M438UnkSubStruct *unk_58;
u8 unk_5C;
char unk5D[0x3];
Vec unk_60;
Vec unk_6C;
s16 unk_78;
s16 unk_7A;
char unk7C[0x1C];
} M438UnkStruct; /* size = 0x98 */
typedef struct M438UnkStruct2 {
s16 unk_00;
s16 unk_02;
char unk04[0x8];
Vec unk_0C;
char unk18[0xC];
Vec unk_24;
void (*unk_30)(struct M438UnkStruct2 *);
char unk34[8];
M438UnkStruct *unk_3C;
char unk40[0x20];
u8 unk_60;
char unk61[0x3];
char unk64[0x18];
s16 unk_7C;
s16 unk_7E;
float unk_80;
float unk_84;
float unk_88;
float unk_8C;
float unk_90;
char unk94[0x28];
} M438UnkStruct2; /* size = 0xBC */
typedef struct M438StructBssDE4 {
/* 0x00 */ char unk00[0x36];
s16 unk_36;
s16 unk_38;
s16 unk_3A;
char unk3C[4];
M438UnkStruct2 *unk_40;
} M438StructBssDE4; /* size = */
typedef u8 M438UnkType[0x30]; typedef u8 M438UnkType[0x30];
void fn_1_4DC(omObjData *object); void fn_1_4DC(omObjData *object);
@ -1872,9 +1808,9 @@ void fn_1_5D4C(M438UnkStruct2 *arg0)
var_r31->unk_00.y = 6.0f; var_r31->unk_00.y = 6.0f;
var_r31->unk_00.z = (40.0f * var_r31->unk_6C.z); var_r31->unk_00.z = (40.0f * var_r31->unk_6C.z);
temp_f29 = 0.01f * (100.0f * ((1.0f / 65536.0f) * fn_1_7DB4())); temp_f29 = 0.01f * (100.0f * ((1.0f / 65536.0f) * fn_1_7DB4()));
var_r31->unk_54 = (80.0f + 60.0f * temp_f29); var_r31->unk_54.r = (80.0f + 60.0f * temp_f29);
var_r31->unk_55 = (64.0f + 60.0f * temp_f29); var_r31->unk_54.g = (64.0f + 60.0f * temp_f29);
var_r31->unk_56 = (56.0f + 60.0f * temp_f29); var_r31->unk_54.b = (56.0f + 60.0f * temp_f29);
} }
arg0->unk_7C = 0x30; arg0->unk_7C = 0x30;
arg0->unk_60++; arg0->unk_60++;
@ -1891,7 +1827,7 @@ void fn_1_5D4C(M438UnkStruct2 *arg0)
var_r31->unk_18.x = temp_f30; var_r31->unk_18.x = temp_f30;
var_r31->unk_18.y = temp_f30; var_r31->unk_18.y = temp_f30;
var_r31->unk_18.z = temp_f30; var_r31->unk_18.z = temp_f30;
var_r31->unk_57 = (96.0f * (1.0f - (temp_f31 * temp_f31))); var_r31->unk_54.a = (96.0f * (1.0f - (temp_f31 * temp_f31)));
} }
if (arg0->unk_7C == 0) { if (arg0->unk_7C == 0) {
arg0->unk_60++; arg0->unk_60++;
@ -1965,29 +1901,29 @@ void fn_1_63B0(M438UnkStruct2 *arg0)
var_r31->unk_6C.z = 0.0f; var_r31->unk_6C.z = 0.0f;
if ((fn_1_7DB4() & 7) != 0) { if ((fn_1_7DB4() & 7) != 0) {
var_r31->unk_33 = 1; var_r31->unk_33 = 1;
var_r31->unk_54 = 0x40; var_r31->unk_54.r = 0x40;
var_r31->unk_55 = 0x10; var_r31->unk_54.g = 0x10;
var_r31->unk_56 = 4; var_r31->unk_54.b = 4;
var_r31->unk_57 = 0xFF; var_r31->unk_54.a = 0xFF;
temp_f30 = 3.75f + (1.75f * ((1.0f / 65536.0f) * fn_1_7DB4())); temp_f30 = 3.75f + (1.75f * ((1.0f / 65536.0f) * fn_1_7DB4()));
var_r31->unk_60.x = (temp_f30 * (0.1f + ((0.9f * var_f29) / 90.0f))); var_r31->unk_60.x = (temp_f30 * (0.1f + ((0.9f * var_f29) / 90.0f)));
var_r31->unk_60.y = var_r31->unk_60.z = temp_f30; var_r31->unk_60.y = var_r31->unk_60.z = temp_f30;
} }
else { else {
var_r31->unk_33 = 0; var_r31->unk_33 = 0;
var_r31->unk_54 = 0; var_r31->unk_54.r = 0;
var_r31->unk_55 = 0; var_r31->unk_54.g = 0;
var_r31->unk_56 = 0; var_r31->unk_54.b = 0;
var_r31->unk_57 = 0xFF; var_r31->unk_54.a = 0xFF;
temp_f30 = 0.25f + (0.25f * ((1.0f / 65536.0f) * fn_1_7DB4())); temp_f30 = 0.25f + (0.25f * ((1.0f / 65536.0f) * fn_1_7DB4()));
var_r31->unk_60.y = (1.5f * temp_f30); var_r31->unk_60.y = (1.5f * temp_f30);
var_r31->unk_60.x = var_r31->unk_60.z = temp_f30; var_r31->unk_60.x = var_r31->unk_60.z = temp_f30;
} }
var_r31->unk_58->unk_24 = 0; var_r31->unk_58->unk_24 = 0;
var_r31->unk_78 = (s32)((60.0f * ((1.0f / 65536.0f) * fn_1_7DB4()))) + 1; var_r31->unk_78[0] = (s32)((60.0f * ((1.0f / 65536.0f) * fn_1_7DB4()))) + 1;
var_r31->unk_5C++; var_r31->unk_5C++;
case 1: case 1:
if (--var_r31->unk_78 == 0) { if (--var_r31->unk_78[0] == 0) {
var_r31->unk_58->unk_24 = 0x11U; var_r31->unk_58->unk_24 = 0x11U;
var_r31->unk_58->unk_28 = 0.5f; var_r31->unk_58->unk_28 = 0.5f;
var_r31->unk_58->unk_2C = 0.0f; var_r31->unk_58->unk_2C = 0.0f;
@ -2032,7 +1968,7 @@ void fn_1_6A3C(M438UnkStruct2 *arg0)
var_r28 = 0; var_r28 = 0;
for (var_r27 = 0; var_r27 < arg0->unk_02; var_r27++, var_r31++) { for (var_r27 = 0; var_r27 < arg0->unk_02; var_r27++, var_r31++) {
if ((arg0->unk_7C != 0) && (var_r31->unk_7A == 0)) { if ((arg0->unk_7C != 0) && (var_r31->unk_78[1] == 0)) {
var_r31->unk_5C = 0; var_r31->unk_5C = 0;
} }
switch (var_r31->unk_5C) { switch (var_r31->unk_5C) {
@ -2049,8 +1985,8 @@ void fn_1_6A3C(M438UnkStruct2 *arg0)
var_r31->unk_6C.x = 100.0f * (0.1f * sp8.x); var_r31->unk_6C.x = 100.0f * (0.1f * sp8.x);
var_r31->unk_6C.y = sp8.y + (2.5f * ((1.0f / 65536.0f) * fn_1_7DB4())); var_r31->unk_6C.y = sp8.y + (2.5f * ((1.0f / 65536.0f) * fn_1_7DB4()));
var_r31->unk_6C.z = 100.0f * (0.1f * sp8.z); var_r31->unk_6C.z = 100.0f * (0.1f * sp8.z);
var_r31->unk_78 = (s32)(24.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) + 1; var_r31->unk_78[0] = (s32)(24.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) + 1;
var_r31->unk_7A = 1; var_r31->unk_78[1] = 1;
} }
else { else {
temp_f30 = (180.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) - 90.0f; temp_f30 = (180.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) - 90.0f;
@ -2064,16 +2000,16 @@ void fn_1_6A3C(M438UnkStruct2 *arg0)
var_r31->unk_6C.x = (100.0 * (0.015 * sp8.x)); var_r31->unk_6C.x = (100.0 * (0.015 * sp8.x));
var_r31->unk_6C.y = sp8.y + ((1.0f / 65536.0f) * fn_1_7DB4()); var_r31->unk_6C.y = sp8.y + ((1.0f / 65536.0f) * fn_1_7DB4());
var_r31->unk_6C.z = 100.0f * (0.015f * sp8.z); var_r31->unk_6C.z = 100.0f * (0.015f * sp8.z);
var_r31->unk_78 = (s32)(60.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) + 1; var_r31->unk_78[0] = (s32)(60.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) + 1;
var_r31->unk_7A = 0; var_r31->unk_78[1] = 0;
} }
var_r31->unk_38 &= ~4; var_r31->unk_38 &= ~4;
if ((fn_1_7DB4() & 0xF) != 0) { if ((fn_1_7DB4() & 0xF) != 0) {
var_r31->unk_33 = 1; var_r31->unk_33 = 1;
var_r31->unk_54 = 0x40; var_r31->unk_54.r = 0x40;
var_r31->unk_55 = 0x10; var_r31->unk_54.g = 0x10;
var_r31->unk_56 = 4; var_r31->unk_54.b = 4;
var_r31->unk_57 = 0xFF; var_r31->unk_54.a = 0xFF;
temp_f31 = 1.8f + ((1.0f / 65536.0f) * fn_1_7DB4()); temp_f31 = 1.8f + ((1.0f / 65536.0f) * fn_1_7DB4());
var_r31->unk_18.x = temp_f31; var_r31->unk_18.x = temp_f31;
var_r31->unk_18.y = temp_f31; var_r31->unk_18.y = temp_f31;
@ -2081,10 +2017,10 @@ void fn_1_6A3C(M438UnkStruct2 *arg0)
} }
else if (arg0->unk_7C != 0) { else if (arg0->unk_7C != 0) {
var_r31->unk_33 = 0; var_r31->unk_33 = 0;
var_r31->unk_54 = 0; var_r31->unk_54.r = 0;
var_r31->unk_55 = 0; var_r31->unk_54.g = 0;
var_r31->unk_56 = 0; var_r31->unk_54.b = 0;
var_r31->unk_57 = 0xFF; var_r31->unk_54.a = 0xFF;
temp_f31 = 0.25f + (0.25f * ((1.0f / 65536.0f) * fn_1_7DB4())); temp_f31 = 0.25f + (0.25f * ((1.0f / 65536.0f) * fn_1_7DB4()));
var_r31->unk_18.x = temp_f31; var_r31->unk_18.x = temp_f31;
var_r31->unk_18.y = 1.5f * temp_f31; var_r31->unk_18.y = 1.5f * temp_f31;
@ -2104,12 +2040,12 @@ void fn_1_6A3C(M438UnkStruct2 *arg0)
var_r31->unk_5C++; var_r31->unk_5C++;
break; break;
case 1: case 1:
if (var_r31->unk_7A != 0) { if (var_r31->unk_78[1] != 0) {
var_r31->unk_6C.y -= 0.5f; var_r31->unk_6C.y -= 0.5f;
} }
if (--var_r31->unk_78 == 0) { if (--var_r31->unk_78[0] == 0) {
var_r31->unk_58->unk_24 = 0x11; var_r31->unk_58->unk_24 = 0x11;
if (var_r31->unk_7A != 0) { if (var_r31->unk_78[1] != 0) {
var_r31->unk_58->unk_28 = 0.5f; var_r31->unk_58->unk_28 = 0.5f;
} }
else { else {
@ -2132,7 +2068,7 @@ void fn_1_6A3C(M438UnkStruct2 *arg0)
var_r31->unk_18.z *= 0.95f; var_r31->unk_18.z *= 0.95f;
var_r31->unk_6C.y -= 1.5f; var_r31->unk_6C.y -= 1.5f;
if ((var_r31->unk_58->unk_24 & 8) != 0) { if ((var_r31->unk_58->unk_24 & 8) != 0) {
if (var_r31->unk_7A != 0) { if (var_r31->unk_78[1] != 0) {
var_r31->unk_5C = 3; var_r31->unk_5C = 3;
} }
else { else {
@ -2200,10 +2136,10 @@ void fn_1_7300(M438UnkStruct2 *arg0)
case 1: case 1:
var_r31->unk_38 &= ~4; var_r31->unk_38 &= ~4;
var_r31->unk_33 = 1; var_r31->unk_33 = 1;
var_r31->unk_54 = 0x60; var_r31->unk_54.r = 0x60;
var_r31->unk_55 = 0x20; var_r31->unk_54.g = 0x20;
var_r31->unk_56 = 0x10; var_r31->unk_54.b = 0x10;
var_r31->unk_57 = 0xFF; var_r31->unk_54.a = 0xFF;
temp_f31 = 0.4f + (0.15f * ((1.0f / 65536.0f) * fn_1_7DB4())); temp_f31 = 0.4f + (0.15f * ((1.0f / 65536.0f) * fn_1_7DB4()));
var_r31->unk_18.x = temp_f31; var_r31->unk_18.x = temp_f31;
var_r31->unk_18.y = temp_f31; var_r31->unk_18.y = temp_f31;

View file

@ -112,7 +112,7 @@ void fn_1_B54C(omObjData *arg0)
var_r29 = Hu3DTexScrollCreate(arg0->model[1], "lafall"); var_r29 = Hu3DTexScrollCreate(arg0->model[1], "lafall");
Hu3DTexScrollPosMoveSet(var_r29, 0.0f, -(1.0f / 60.0f), 0.0f); Hu3DTexScrollPosMoveSet(var_r29, 0.0f, -(1.0f / 60.0f), 0.0f);
var_r29 = 0; var_r29 = 0;
var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000C), 0x32); var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000C), 0x32);
arg0->model[3] = var_r27; arg0->model[3] = var_r27;
Hu3DModelLayerSet(var_r27, 3); Hu3DModelLayerSet(var_r27, 3);
@ -151,7 +151,7 @@ void fn_1_B54C(omObjData *arg0)
lbl_1_bss_E34[var_r30]->unk40.a = 0; lbl_1_bss_E34[var_r30]->unk40.a = 0;
lbl_1_bss_E34[var_r30]->unk00 = 0; lbl_1_bss_E34[var_r30]->unk00 = 0;
} }
var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000F), 0x32); var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000F), 0x32);
arg0->model[6] = var_r27; arg0->model[6] = var_r27;
Hu3DModelLayerSet(var_r27, 3); Hu3DModelLayerSet(var_r27, 3);
@ -162,7 +162,7 @@ void fn_1_B54C(omObjData *arg0)
var_r25->unk40.a = 0; var_r25->unk40.a = 0;
var_r25->unk00 = 0; var_r25->unk00 = 0;
} }
var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x450010), 0x1F4); var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x450010), 0x1F4);
arg0->model[7] = var_r27; arg0->model[7] = var_r27;
Hu3DModelLayerSet(var_r27, 2); Hu3DModelLayerSet(var_r27, 2);
@ -437,7 +437,7 @@ void fn_1_CAB0(f32 arg8)
temp_f28 = 20.0f; temp_f28 = 20.0f;
temp_f27 = 7.0f; temp_f27 = 7.0f;
var_r29 = 0x19; var_r29 = 0x19;
for (var_r30 = 0; var_r30 < 0x96; var_r30++) { for (var_r30 = 0; var_r30 < 0x96; var_r30++) {
var_r31 = lbl_1_bss_E34[var_r30]; var_r31 = lbl_1_bss_E34[var_r30];
if (var_r31->unk00_s16 == 0) { if (var_r31->unk00_s16 == 0) {
@ -447,12 +447,12 @@ void fn_1_CAB0(f32 arg8)
sp8.x = sind(temp_f31); sp8.x = sind(temp_f31);
sp8.y = 0.0f; sp8.y = 0.0f;
sp8.z = cosd(temp_f31); sp8.z = cosd(temp_f31);
temp_f31 = arg8 + (((0.002f * frandmod(0x3E8)) - 1.0f)) * temp_f27; temp_f31 = arg8 + (((0.002f * frandmod(0x3E8)) - 1.0f)) * temp_f27;
var_r31->unk34.x = 7.5 * sind(temp_f31) * 100.0; var_r31->unk34.x = 7.5 * sind(temp_f31) * 100.0;
var_r31->unk34.y = 0.2f * frandmod(0x3E8); var_r31->unk34.y = 0.2f * frandmod(0x3E8);
var_r31->unk34.z = 7.5 * cosd(temp_f31) * 100.0; var_r31->unk34.z = 7.5 * cosd(temp_f31) * 100.0;
temp_f30 = 1.6666667f * (4.0f + (0.014f * frandmod(0x3E8))); temp_f30 = 1.6666667f * (4.0f + (0.014f * frandmod(0x3E8)));
var_r31->unk08.x = sp8.x * temp_f30; var_r31->unk08.x = sp8.x * temp_f30;
var_r31->unk08.z = sp8.z * temp_f30; var_r31->unk08.z = sp8.z * temp_f30;
@ -478,12 +478,12 @@ void fn_1_CAB0(f32 arg8)
sp8.x = sind(temp_f31); sp8.x = sind(temp_f31);
sp8.y = 0.0f; sp8.y = 0.0f;
sp8.z = cosd(temp_f31); sp8.z = cosd(temp_f31);
temp_f31 = arg8 + (((0.002f * frandmod(0x3E8)) - 1.0f)) * temp_f27; temp_f31 = arg8 + (((0.002f * frandmod(0x3E8)) - 1.0f)) * temp_f27;
var_r31->unk34.x = 7.5 * sind(temp_f31) * 100.0; var_r31->unk34.x = 7.5 * sind(temp_f31) * 100.0;
var_r31->unk34.y = 0.2f * frandmod(0x3E8); var_r31->unk34.y = 0.2f * frandmod(0x3E8);
var_r31->unk34.z = 7.5 * cosd(temp_f31) * 100.0; var_r31->unk34.z = 7.5 * cosd(temp_f31) * 100.0;
temp_f30 = 1.6666667f * -(0.01f * frandmod(0x3E8)); temp_f30 = 1.6666667f * -(0.01f * frandmod(0x3E8));
var_r31->unk08.x = sp8.x * temp_f30; var_r31->unk08.x = sp8.x * temp_f30;
var_r31->unk08.z = sp8.z * temp_f30; var_r31->unk08.z = sp8.z * temp_f30;
@ -586,7 +586,7 @@ s32 fn_1_DA64(f32 arg8)
var_r28 = lbl_1_bss_108C[0]->data; var_r28 = lbl_1_bss_108C[0]->data;
var_r29 = 0; var_r29 = 0;
var_r31 = &var_r28->unk4; var_r31 = &var_r28->unk4;
for (var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) { for (var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) {
var_f31 = fn_1_E5A4(var_r31->unk8, arg8); var_f31 = fn_1_E5A4(var_r31->unk8, arg8);
if ((fabs(var_f31) < 12.0) && (var_r31->unk0 != 0)) { if ((fabs(var_f31) < 12.0) && (var_r31->unk0 != 0)) {
@ -627,7 +627,7 @@ s32 fn_1_DEA0(f32 arg8)
var_r28 = lbl_1_bss_108C[0]->data; var_r28 = lbl_1_bss_108C[0]->data;
var_r29 = 0; var_r29 = 0;
var_r31 = &var_r28->unk4; var_r31 = &var_r28->unk4;
for (var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) { for (var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) {
var_f31 = fn_1_E5A4(var_r31->unk8, arg8); var_f31 = fn_1_E5A4(var_r31->unk8, arg8);
if ((fabs(var_f31) < 8.0) && (var_r31->unk0 != 0)) { if ((fabs(var_f31) < 8.0) && (var_r31->unk0 != 0)) {
@ -647,6 +647,7 @@ f32 fn_1_DF70(f32 arg8, f32 arg9)
var_f31 = 180.0 * (atan2f(arg9, arg8) / M_PI); var_f31 = 180.0 * (atan2f(arg9, arg8) / M_PI);
if (var_f31 < 0.0f) { if (var_f31 < 0.0f) {
var_f31 += temp_f30; var_f31 += temp_f30;
} }
else if (var_f31 >= temp_f30) { else if (var_f31 >= temp_f30) {
var_f31 -= temp_f30; var_f31 -= temp_f30;