Merge pull request #362 from dbalatoni13/main

Finished m406Dll and small changes
This commit is contained in:
Liam Coleman 2024-06-25 21:16:25 -05:00 committed by GitHub
commit 99dd7b41fb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 2344 additions and 210 deletions

View file

@ -372,23 +372,23 @@ lbl_1_data_8DC = .data:0x000008DC; // type:object size:0x4
lbl_1_data_8E0 = .data:0x000008E0; // type:object size:0x30 lbl_1_data_8E0 = .data:0x000008E0; // type:object size:0x30
lbl_1_data_910 = .data:0x00000910; // type:object size:0x20 lbl_1_data_910 = .data:0x00000910; // type:object size:0x20
lbl_1_data_930 = .data:0x00000930; // type:object size:0x30 lbl_1_data_930 = .data:0x00000930; // type:object size:0x30
lbl_1_data_960 = .data:0x00000960; // type:object size:0x348 lbl_1_data_960 = .data:0x00000960; // type:object size:0x348 data:float
lbl_1_data_CA8 = .data:0x00000CA8; // type:object size:0x348 lbl_1_data_CA8 = .data:0x00000CA8; // type:object size:0x348 data:float
lbl_1_data_FF0 = .data:0x00000FF0; // type:object size:0x10 lbl_1_data_FF0 = .data:0x00000FF0; // type:object size:0x10
lbl_1_data_1000 = .data:0x00001000; // type:object size:0x19 data:string lbl_1_data_1000 = .data:0x00001000; // type:object size:0x19 data:string
lbl_1_data_1019 = .data:0x00001019; // type:object size:0x19 data:string lbl_1_data_1019 = .data:0x00001019; // type:object size:0x19 data:string
lbl_1_data_1032 = .data:0x00001032; // type:object size:0x1A data:string lbl_1_data_1032 = .data:0x00001032; // type:object size:0x1A data:string
lbl_1_data_104C = .data:0x0000104C; // type:object size:0x1C lbl_1_data_104C = .data:0x0000104C; // type:object size:0x1C data:string
lbl_1_data_1068 = .data:0x00001068; // type:object size:0x10 lbl_1_data_1068 = .data:0x00001068; // type:object size:0x10
lbl_1_data_1078 = .data:0x00001078; // type:object size:0x28 lbl_1_data_1078 = .data:0x00001078; // type:object size:0x28
lbl_1_data_10A0 = .data:0x000010A0; // type:object size:0x80 lbl_1_data_10A0 = .data:0x000010A0; // type:object size:0x80 data:4byte
lbl_1_data_1120 = .data:0x00001120; // type:object size:0x20 lbl_1_data_1120 = .data:0x00001120; // type:object size:0x20
lbl_1_data_1140 = .data:0x00001140; // type:object size:0x8 lbl_1_data_1140 = .data:0x00001140; // type:object size:0x8
lbl_1_data_1148 = .data:0x00001148; // type:object size:0x1C data:string lbl_1_data_1148 = .data:0x00001148; // type:object size:0x1C data:string
lbl_1_data_1164 = .data:0x00001164; // type:object size:0x90 lbl_1_data_1164 = .data:0x00001164; // type:object size:0x90 data:float
lbl_1_data_11F4 = .data:0x000011F4; // type:object size:0x4 data:4byte lbl_1_data_11F4 = .data:0x000011F4; // type:object size:0x4 data:4byte
lbl_1_data_11F8 = .data:0x000011F8; // type:object size:0x20 lbl_1_data_11F8 = .data:0x000011F8; // type:object size:0x20 data:float
lbl_1_data_1218 = .data:0x00001218; // type:object size:0x18 lbl_1_data_1218 = .data:0x00001218; // type:object size:0x18 data:float
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte
lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte
lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte
@ -421,7 +421,8 @@ lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte
lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x4 data:4byte lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x4 data:4byte
lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x4 data:4byte lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x4 data:4byte
lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x4 data:4byte lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x4 data:4byte
lbl_1_bss_D8 = .bss:0x000000D8; // type:object size:0x8 data:4byte lbl_1_bss_D8 = .bss:0x000000D8; // type:object size:0x4 data:4byte
lbl_1_bss_DC = .bss:0x000000DC; // type:object size:0x4 data:4byte
lbl_1_bss_E0 = .bss:0x000000E0; // type:object size:0x18 data:float lbl_1_bss_E0 = .bss:0x000000E0; // type:object size:0x18 data:float
lbl_1_bss_F8 = .bss:0x000000F8; // type:object size:0x8 data:4byte lbl_1_bss_F8 = .bss:0x000000F8; // type:object size:0x8 data:4byte
lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 data:float lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 data:float

View file

@ -9,10 +9,8 @@ ShowPicture = .text:0x00000BCC; // type:function size:0x1C4 scope:local
MainProc = .text:0x00000D90; // type:function size:0x500 scope:local MainProc = .text:0x00000D90; // type:function size:0x500 scope:local
_ctors = .ctors:0x00000000; // type:label scope:global data:4byte _ctors = .ctors:0x00000000; // type:label scope:global data:4byte
_dtors = .dtors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte
lbl_1_rodata_0 = .rodata:0x00000000; // type:object size:0x4 scope:local data:float __fakeHalf = .rodata:0x00000000; // type:object size:0x8 data:double
lbl_1_rodata_4 = .rodata:0x00000004; // type:object size:0x4 scope:local data:float __fakeThree = .rodata:0x00000008; // type:object size:0x8 data:double
lbl_1_rodata_8 = .rodata:0x00000008; // type:object size:0x4 scope:local data:float
lbl_1_rodata_C = .rodata:0x0000000C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float
lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float
lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float

View file

@ -862,7 +862,7 @@ config.libs = [
Object(Matching, "REL/executor.c"), Object(Matching, "REL/executor.c"),
Object(Matching, "REL/m406Dll/main.c"), Object(Matching, "REL/m406Dll/main.c"),
Object(Matching, "REL/m406Dll/map.c"), Object(Matching, "REL/m406Dll/map.c"),
Object(NonMatching, "REL/m406Dll/player.c"), Object(Matching, "REL/m406Dll/player.c"),
}, },
), ),
Rel( Rel(

View file

@ -4,16 +4,36 @@
#include "game/object.h" #include "game/object.h"
#include "game/process.h" #include "game/process.h"
typedef struct UnkM406Struct2 {
/* 0x00 */ float unk_00;
/* 0x04 */ float unk_04;
/* 0x08 */ Vec unk_08;
/* 0x14 */ Vec unk_14;
} UnkM406Struct2; /* size = 0x20 */
s32 fn_1_122C(void); s32 fn_1_122C(void);
void fn_1_123C(void);
void fn_1_1274(s32 arg0);
void fn_1_1284(void);
void fn_1_12BC(void);
omObjData *fn_1_2308(Process *arg0); omObjData *fn_1_2308(Process *arg0);
void fn_1_2BEC(void); void fn_1_2BEC(void);
void fn_1_3064(s32 arg0); void fn_1_3064(s32 arg0);
void fn_1_696C(float arg8); void fn_1_696C(float arg8);
void fn_1_6B5C(void); void fn_1_6B5C(void);
void fn_1_69C0(Vec *arg0);
s32 fn_1_6A44(Vec arg0);
void fn_1_6BB4(Vec *arg0);
void fn_1_82C8(Mtx arg0, s32 arg1, float arg8);
s32 fn_1_94C0(Mtx arg0, s32 arg1, s32 arg2);
void fn_1_B104(float arg8); void fn_1_B104(float arg8);
void fn_1_B25C(void); void fn_1_B25C(void);
void fn_1_B41C(void); void fn_1_B41C(void);
void fn_1_D65C(Process *arg0); void fn_1_D65C(Process *arg0);
void fn_1_D8B0(void); void fn_1_D8B0(void);
extern UnkM406Struct2 *lbl_1_bss_B8;
extern s32 lbl_1_bss_B4;
#endif #endif

View file

@ -1,15 +0,0 @@
#ifndef STAFFDLL_H
#define STAFFDLL_H
#include "dolphin/types.h"
typedef struct UnkStaffDllStruct {
/* 0x00 */ u32 unk_00;
/* 0x04 */ s32 unk_04;
/* 0x08 */ float unk_08;
/* 0x0C */ u32 unk_0C;
/* 0x10 */ s32 unk_10;
/* 0x14 */ s32 unk_14;
} UnkStaffDllStruct;
#endif

View file

@ -156,7 +156,7 @@ typedef struct hsf_face {
} strip; } strip;
s16 indices[4][4]; s16 indices[4][4];
}; };
float nbt[3]; Vec nbt;
} HsfFace; } HsfFace;
typedef struct hsf_transform { typedef struct hsf_transform {

View file

@ -21,13 +21,6 @@ typedef struct UnkM406Struct {
/* 0x2C */ float unk_2C; /* 0x2C */ float unk_2C;
} UnkM406Struct; /* size = 0x30 */ } UnkM406Struct; /* size = 0x30 */
typedef struct UnkM406Struct2 {
/* 0x00 */ float unk_00;
/* 0x04 */ float unk_04;
/* 0x08 */ Vec unk_08;
/* 0x14 */ Vec unk_14;
} UnkM406Struct2; /* size = 0x20 */
typedef struct UnkM406Struct3 { typedef struct UnkM406Struct3 {
/* 0x00 */ s32 unk_00; /* 0x00 */ s32 unk_00;
/* 0x04 */ float unk_04; /* 0x04 */ float unk_04;
@ -492,7 +485,8 @@ omObjData *fn_1_2308(Process *arg0)
if (var_r31 < 6) { if (var_r31 < 6) {
var_r30 = Hu3DModelCreateFile(lbl_1_data_7C4[var_r31]); var_r30 = Hu3DModelCreateFile(lbl_1_data_7C4[var_r31]);
lbl_1_bss_CC->model[var_r31 + 7] = var_r30; lbl_1_bss_CC->model[var_r31 + 7] = var_r30;
} else { }
else {
var_r30 = -1; var_r30 = -1;
lbl_1_bss_CC->model[var_r31 + 7] = var_r30; lbl_1_bss_CC->model[var_r31 + 7] = var_r30;
} }
@ -519,7 +513,8 @@ omObjData *fn_1_2308(Process *arg0)
for (var_r31 = 0; var_r31 < 3; var_r31++) { for (var_r31 = 0; var_r31 < 3; var_r31++) {
if (var_r31 == 0) { if (var_r31 == 0) {
lbl_1_bss_C4->model[var_r31] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M406, 34)); lbl_1_bss_C4->model[var_r31] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M406, 34));
} else { }
else {
lbl_1_bss_C4->model[var_r31] = Hu3DModelLink(*lbl_1_bss_C4->model); lbl_1_bss_C4->model[var_r31] = Hu3DModelLink(*lbl_1_bss_C4->model);
} }
Hu3DModelShadowSet(lbl_1_bss_C4->model[var_r31]); Hu3DModelShadowSet(lbl_1_bss_C4->model[var_r31]);
@ -599,7 +594,8 @@ void fn_1_2C24(omObjData *object)
if (object->model[var_r29] != -1) { if (object->model[var_r29] != -1) {
Hu3DModelAttrSet(object->model[var_r29], 1); Hu3DModelAttrSet(object->model[var_r29], 1);
} }
} else { }
else {
if (object->model[var_r30] != -1) { if (object->model[var_r30] != -1) {
Hu3DModelAttrReset(object->model[var_r30], 1); Hu3DModelAttrReset(object->model[var_r30], 1);
} }
@ -614,7 +610,8 @@ void fn_1_2C24(omObjData *object)
var_f31 = 25000.0f; var_f31 = 25000.0f;
if (fabs(Center.z - var_f31) < 15000.0) { if (fabs(Center.z - var_f31) < 15000.0) {
Hu3DModelAttrSet(object->model[var_r29], 1); Hu3DModelAttrSet(object->model[var_r29], 1);
} else { }
else {
Hu3DModelAttrReset(object->model[var_r29], 1); Hu3DModelAttrReset(object->model[var_r29], 1);
} }
} }
@ -625,7 +622,8 @@ void fn_1_2C24(omObjData *object)
for (var_r30 = 0; var_r30 < 3; var_r30++) { for (var_r30 = 0; var_r30 < 3; var_r30++) {
if (fabs(Center.z - lbl_1_data_780[var_r30].z) > 10000.0) { if (fabs(Center.z - lbl_1_data_780[var_r30].z) > 10000.0) {
Hu3DModelAttrSet(lbl_1_bss_C4->model[var_r30], 1); Hu3DModelAttrSet(lbl_1_bss_C4->model[var_r30], 1);
} else { }
else {
Hu3DModelAttrReset(lbl_1_bss_C4->model[var_r30], 1); Hu3DModelAttrReset(lbl_1_bss_C4->model[var_r30], 1);
} }
} }
@ -749,7 +747,8 @@ void fn_1_3158(void)
} }
if (var_r29 == 1 || var_r29 == 103) { if (var_r29 == 1 || var_r29 == 103) {
var_r27->unk_14 = 0.6f; var_r27->unk_14 = 0.6f;
} else { }
else {
var_r27->unk_14 = 1.0f; var_r27->unk_14 = 1.0f;
} }
var_r27->unk_18.x = var_r27->unk_18.y = var_r27->unk_18.z = 0.0f; var_r27->unk_18.x = var_r27->unk_18.y = var_r27->unk_18.z = 0.0f;
@ -842,22 +841,26 @@ void fn_1_3158(void)
var_r30->unk_01 = 1; var_r30->unk_01 = 1;
if (var_r29 < 6) { if (var_r29 < 6) {
var_r30->unk_08 = (6 - var_r29) / 6.0f; var_r30->unk_08 = (6 - var_r29) / 6.0f;
} else { }
else {
var_r30->unk_08 = 1.0f; var_r30->unk_08 = 1.0f;
} }
} else { }
else {
var_r30->unk_01 = 0; var_r30->unk_01 = 0;
var_r30->unk_08 = 0.0f; var_r30->unk_08 = 0.0f;
} }
if (!var_r25 || var_r25 == 34 || !var_r29) { if (!var_r25 || var_r25 == 34 || !var_r29) {
var_r30->unk_00 = 0; var_r30->unk_00 = 0;
var_r30->unk_04 = 0.0f; var_r30->unk_04 = 0.0f;
} else { }
else {
var_r30->unk_00 = 1; var_r30->unk_00 = 1;
if (var_r29 < 3) { if (var_r29 < 3) {
var_r30->unk_04 = 0.5f + (0.5f * (var_r29 / 3.0f)); var_r30->unk_04 = 0.5f + (0.5f * (var_r29 / 3.0f));
var_r30->unk_04 = sind(90.0f * var_r30->unk_04); var_r30->unk_04 = sind(90.0f * var_r30->unk_04);
} else { }
else {
var_r30->unk_04 = 1.0f; var_r30->unk_04 = 1.0f;
} }
} }
@ -870,7 +873,8 @@ void fn_1_3158(void)
var_f31 = var_r25 / 6.0f; var_f31 = var_r25 / 6.0f;
var_r30->unk_04 = var_r30->unk_04 * sind(90.0f * var_f31); var_r30->unk_04 = var_r30->unk_04 * sind(90.0f * var_f31);
var_r30->unk_0C = var_r30->unk_0C * sind(90.0f * var_f31); var_r30->unk_0C = var_r30->unk_0C * sind(90.0f * var_f31);
} else if (var_r25 > 28) { }
else if (var_r25 > 28) {
var_f31 = (var_r25 - 28) / 6.0f; var_f31 = (var_r25 - 28) / 6.0f;
var_r30->unk_04 = var_r30->unk_04 * cosd(90.0f * var_f31); var_r30->unk_04 = var_r30->unk_04 * cosd(90.0f * var_f31);
var_r30->unk_0C = var_r30->unk_0C * cosd(90.0f * var_f31); var_r30->unk_0C = var_r30->unk_0C * cosd(90.0f * var_f31);
@ -996,13 +1000,15 @@ void fn_1_4084(void)
sp28.y = 0.5f * (var_r31->unk_34.y + var_r31->unk_40.y); sp28.y = 0.5f * (var_r31->unk_34.y + var_r31->unk_40.y);
sp28.z = 0.5f * (var_r31->unk_34.z + var_r31->unk_40.z); sp28.z = 0.5f * (var_r31->unk_34.z + var_r31->unk_40.z);
var_r31->unk_20 = HuAudFXEmiterPlay(1337, &sp28); var_r31->unk_20 = HuAudFXEmiterPlay(1337, &sp28);
} else if (var_r31->unk_20 != -1) { }
else if (var_r31->unk_20 != -1) {
sp28.x = 0.5f * (var_r31->unk_34.x + var_r31->unk_40.x); sp28.x = 0.5f * (var_r31->unk_34.x + var_r31->unk_40.x);
sp28.y = 0.5f * (var_r31->unk_34.y + var_r31->unk_40.y); sp28.y = 0.5f * (var_r31->unk_34.y + var_r31->unk_40.y);
sp28.z = 0.5f * (var_r31->unk_34.z + var_r31->unk_40.z); sp28.z = 0.5f * (var_r31->unk_34.z + var_r31->unk_40.z);
HuAudFXEmiterUpDate(var_r31->unk_20, &sp28); HuAudFXEmiterUpDate(var_r31->unk_20, &sp28);
} }
} else if (var_r31->unk_20 != -1) { }
else if (var_r31->unk_20 != -1) {
HuAudFXStop(var_r31->unk_20); HuAudFXStop(var_r31->unk_20);
var_r31->unk_20 = -1; var_r31->unk_20 = -1;
} }
@ -1010,7 +1016,8 @@ void fn_1_4084(void)
if (var_r31->unk_0C > var_r31->unk_18) { if (var_r31->unk_0C > var_r31->unk_18) {
var_r31->unk_1C = var_r31->unk_0C - var_r31->unk_18; var_r31->unk_1C = var_r31->unk_0C - var_r31->unk_18;
var_r31->unk_0C = var_r31->unk_18; var_r31->unk_0C = var_r31->unk_18;
} else { }
else {
var_r31->unk_1C = 0.0f; var_r31->unk_1C = 0.0f;
} }
var_r28 = var_r31->unk_84; var_r28 = var_r31->unk_84;
@ -1025,10 +1032,12 @@ void fn_1_4084(void)
var_r30 = 0; var_r30 = 0;
sp1C = lbl_1_data_F0[var_r30]; sp1C = lbl_1_data_F0[var_r30];
sp10 = lbl_1_data_438[var_r30]; sp10 = lbl_1_data_438[var_r30];
} else if (var_r30 < (lbl_1_bss_B4 - 1)) { }
else if (var_r30 < (lbl_1_bss_B4 - 1)) {
fn_1_D488(sp8, &lbl_1_data_F0[var_r30], &lbl_1_data_F0[var_r30 + 1], &sp1C); fn_1_D488(sp8, &lbl_1_data_F0[var_r30], &lbl_1_data_F0[var_r30 + 1], &sp1C);
fn_1_D488(sp8, &lbl_1_data_438[var_r30], &lbl_1_data_438[var_r30 + 1], &sp10); fn_1_D488(sp8, &lbl_1_data_438[var_r30], &lbl_1_data_438[var_r30 + 1], &sp10);
} else { }
else {
var_r30 = lbl_1_bss_B4 - 1; var_r30 = lbl_1_bss_B4 - 1;
sp1C = lbl_1_data_F0[var_r30]; sp1C = lbl_1_data_F0[var_r30];
sp10 = lbl_1_data_438[var_r30]; sp10 = lbl_1_data_438[var_r30];
@ -1246,7 +1255,8 @@ void fn_1_4964(ModelData *arg0)
fn_1_D488(var_r29->unk_04, &var_r30->unk_84[var_r29->unk_00], &var_r30->unk_84[var_r29->unk_00 + 1], &var_r29->unk_18); fn_1_D488(var_r29->unk_04, &var_r30->unk_84[var_r29->unk_00], &var_r30->unk_84[var_r29->unk_00 + 1], &var_r29->unk_18);
if (var_r29->unk_08 >= 0) { if (var_r29->unk_08 >= 0) {
var_r29->unk_08--; var_r29->unk_08--;
} else { }
else {
var_r29->unk_24 = fn_1_7B2C(var_r29->unk_0C); var_r29->unk_24 = fn_1_7B2C(var_r29->unk_0C);
if (var_r29->unk_24 == NULL) { if (var_r29->unk_24 == NULL) {
var_r29->unk_24 = &lbl_1_bss_48; var_r29->unk_24 = &lbl_1_bss_48;
@ -1261,12 +1271,14 @@ void fn_1_4964(ModelData *arg0)
sp3C.a = 0xFF; sp3C.a = 0xFF;
if (frand() & 1) { if (frand() & 1) {
var_f31 = 0.05f; var_f31 = 0.05f;
} else { }
else {
var_f31 = -0.05f; var_f31 = -0.05f;
} }
var_r29->unk_10 = 0.01f * (100.0f * (0.007874016f * (frand() & 0x7F))); var_r29->unk_10 = 0.01f * (100.0f * (0.007874016f * (frand() & 0x7F)));
var_r29->unk_0C = fn_1_79F8(spC4, spA0, 75.0f + (var_r29->unk_14 * (75.0f * (0.007874016f * (frand() & 0x7F)))), var_f31, sp3C); var_r29->unk_0C = fn_1_79F8(spC4, spA0, 75.0f + (var_r29->unk_14 * (75.0f * (0.007874016f * (frand() & 0x7F)))), var_f31, sp3C);
} else { }
else {
var_r29->unk_18.y += var_r29->unk_10; var_r29->unk_18.y += var_r29->unk_10;
var_r29->unk_24->unk_30 = var_r29->unk_18; var_r29->unk_24->unk_30 = var_r29->unk_18;
} }
@ -1277,13 +1289,15 @@ void fn_1_4964(ModelData *arg0)
if ((frand() & 3) == 0) { if ((frand() & 3) == 0) {
var_f31 = 45.0f + (30.0f * (0.007874016f * (frand() & 0x7F))); var_f31 = 45.0f + (30.0f * (0.007874016f * (frand() & 0x7F)));
var_f29 = 0.75f + (0.75f * (0.007874016f * (frand() & 0x7F))); var_f29 = 0.75f + (0.75f * (0.007874016f * (frand() & 0x7F)));
} else { }
else {
var_f31 = -(15.0f * (0.007874016f * (frand() & 0x7F))); var_f31 = -(15.0f * (0.007874016f * (frand() & 0x7F)));
var_f29 = 1.75f + (0.75f * (0.007874016f * (frand() & 0x7F))); var_f29 = 1.75f + (0.75f * (0.007874016f * (frand() & 0x7F)));
} }
if (var_r30->unk_10 != 0.0f) { if (var_r30->unk_10 != 0.0f) {
var_f30 = 15.000001f / var_r30->unk_10; var_f30 = 15.000001f / var_r30->unk_10;
} else { }
else {
var_f30 = 1.0f; var_f30 = 1.0f;
} }
spA0.y = var_f30 * ((7.5000005f * var_f29) * sind(var_f31)); spA0.y = var_f30 * ((7.5000005f * var_f29) * sind(var_f31));
@ -1324,19 +1338,22 @@ void fn_1_4964(ModelData *arg0)
default: default:
break; break;
} }
} else { }
else {
Hu3DModelAttrSet(var_r31->unk_00, 1); Hu3DModelAttrSet(var_r31->unk_00, 1);
var_r31->unk_08 = -1; var_r31->unk_08 = -1;
var_r31->unk_0C--; var_r31->unk_0C--;
} }
} else if (var_r31->unk_08 >= 0) { }
else if (var_r31->unk_08 >= 0) {
var_r24 = fn_1_66F4(var_r30->unk_0C + var_r31->unk_18, &sp38); var_r24 = fn_1_66F4(var_r30->unk_0C + var_r31->unk_18, &sp38);
if (var_r24 >= 0 && var_r24 < (lbl_1_bss_B4 - 1)) { if (var_r24 >= 0 && var_r24 < (lbl_1_bss_B4 - 1)) {
fn_1_D488(sp38, &lbl_1_data_F0[var_r24], &lbl_1_data_F0[var_r24 + 1], &spB8); fn_1_D488(sp38, &lbl_1_data_F0[var_r24], &lbl_1_data_F0[var_r24 + 1], &spB8);
fn_1_D488(sp38, &lbl_1_data_438[var_r24], &lbl_1_data_438[var_r24 + 1], &spAC); fn_1_D488(sp38, &lbl_1_data_438[var_r24], &lbl_1_data_438[var_r24 + 1], &spAC);
fn_1_D488(var_r31->unk_10, &spB8, &spAC, &var_r31->unk_3C); fn_1_D488(var_r31->unk_10, &spB8, &spAC, &var_r31->unk_3C);
Hu3DModelAttrReset(var_r31->unk_00, 1); Hu3DModelAttrReset(var_r31->unk_00, 1);
} else { }
else {
Hu3DModelAttrSet(var_r31->unk_00, 1); Hu3DModelAttrSet(var_r31->unk_00, 1);
var_r31->unk_08 = -1; var_r31->unk_08 = -1;
continue; continue;
@ -1444,7 +1461,8 @@ void fn_1_64F8(UnkM406Struct2 *arg0)
PSVECSubtract(&var_r28->unk_14, &var_r31->unk_14, &var_r31->unk_08); PSVECSubtract(&var_r28->unk_14, &var_r31->unk_14, &var_r31->unk_08);
var_r31->unk_00 = PSVECMag(&var_r31->unk_08); var_r31->unk_00 = PSVECMag(&var_r31->unk_08);
PSVECNormalize(&var_r31->unk_08, &var_r31->unk_08); PSVECNormalize(&var_r31->unk_08, &var_r31->unk_08);
} else { }
else {
var_r31->unk_00 = 100000.0f; var_r31->unk_00 = 100000.0f;
var_r31->unk_08.x = 0.0f; var_r31->unk_08.x = 0.0f;
var_r31->unk_08.y = 0.0f; var_r31->unk_08.y = 0.0f;
@ -1490,7 +1508,8 @@ void fn_1_67CC(ModelData *arg0)
if (var_r31->unk_04 != 3 || var_r31->unk_0C > 0) { if (var_r31->unk_04 != 3 || var_r31->unk_0C > 0) {
Hu3DModelAttrSet(var_r31->unk_00, 1); Hu3DModelAttrSet(var_r31->unk_00, 1);
var_r31->unk_0C--; var_r31->unk_0C--;
} else { }
else {
var_r31->unk_20 = var_r31->unk_20 - var_r31->unk_2C; var_r31->unk_20 = var_r31->unk_20 - var_r31->unk_2C;
var_r31->unk_3C.x += var_r31->unk_30.x; var_r31->unk_3C.x += var_r31->unk_30.x;
var_r31->unk_3C.y += var_r31->unk_30.y; var_r31->unk_3C.y += var_r31->unk_30.y;
@ -1533,7 +1552,7 @@ void fn_1_69C0(Vec *arg0)
} }
} }
s32 fn_1_6A44(Vec *arg0) s32 fn_1_6A44(Vec arg0)
{ {
Vec sp20; Vec sp20;
Vec sp14; Vec sp14;
@ -1553,7 +1572,7 @@ s32 fn_1_6A44(Vec *arg0)
PSVECScale(&sp8, &sp8, 0.5f); PSVECScale(&sp8, &sp8, 0.5f);
PSVECSubtract(&var_r31->unk_34, &sp8, &sp20); PSVECSubtract(&var_r31->unk_34, &sp8, &sp20);
PSVECSubtract(&var_r31->unk_40, &sp8, &sp14); PSVECSubtract(&var_r31->unk_40, &sp8, &sp14);
var_f31 = fn_1_D5CC(&sp20, &sp14, arg0->x - sp8.x, arg0->z - sp8.z); var_f31 = fn_1_D5CC(&sp20, &sp14, arg0.x - sp8.x, arg0.z - sp8.z);
if (var_f31 <= 0.0f) { if (var_f31 <= 0.0f) {
return 0; return 0;
} }
@ -1795,7 +1814,8 @@ void fn_1_77F0(void)
var_r31 = var_r29->unk_3C; var_r31 = var_r29->unk_3C;
if (fn_1_122C() < 3) { if (fn_1_122C() < 3) {
var_r29->unk_22 |= 1; var_r29->unk_22 |= 1;
} else { }
else {
var_r29->unk_22 &= 0xFFFFFFFE; var_r29->unk_22 &= 0xFFFFFFFE;
} }
for (var_r28 = 0; var_r28 < var_r29->unk_26; var_r28++, var_r31++) { for (var_r28 = 0; var_r28 < var_r29->unk_26; var_r28++, var_r31++) {
@ -2039,7 +2059,6 @@ void fn_1_7F80(void)
void fn_1_8100(void) { } void fn_1_8100(void) { }
s32 fn_1_8104(Vec arg0, Vec arg1, float arg8, GXColor arg2) s32 fn_1_8104(Vec arg0, Vec arg1, float arg8, GXColor arg2)
{ {
UnkM406Struct5 *var_r31; UnkM406Struct5 *var_r31;
@ -2090,7 +2109,6 @@ s32 fn_1_8104(Vec arg0, Vec arg1, float arg8, GXColor arg2)
return var_r29; return var_r29;
} }
void fn_1_8244(s32 arg0, s32 arg1, float arg8, float arg9) void fn_1_8244(s32 arg0, s32 arg1, float arg8, float arg9)
{ {
UnkM406Struct5 *var_r31; UnkM406Struct5 *var_r31;
@ -2212,7 +2230,8 @@ void fn_1_8F98(void)
PSMTXIdentity(var_r31->unk_1C); PSMTXIdentity(var_r31->unk_1C);
if (var_r30 == 0) { if (var_r30 == 0) {
var_r31->unk_04 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M406, 59)); var_r31->unk_04 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M406, 59));
} else { }
else {
var_r31->unk_04 = Hu3DModelLink(lbl_1_bss_A0->unk_04); var_r31->unk_04 = Hu3DModelLink(lbl_1_bss_A0->unk_04);
} }
Hu3DModelLayerSet(var_r31->unk_04, 3); Hu3DModelLayerSet(var_r31->unk_04, 3);
@ -2230,7 +2249,8 @@ void fn_1_8F98(void)
PSMTXIdentity(var_r31->unk_1C); PSMTXIdentity(var_r31->unk_1C);
if (var_r30 == 0) { if (var_r30 == 0) {
var_r31->unk_04 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M406, 60)); var_r31->unk_04 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M406, 60));
} else { }
else {
var_r31->unk_04 = Hu3DModelLink(lbl_1_bss_A0[64].unk_04); var_r31->unk_04 = Hu3DModelLink(lbl_1_bss_A0[64].unk_04);
} }
Hu3DModelLayerSet(var_r31->unk_04, 3); Hu3DModelLayerSet(var_r31->unk_04, 3);
@ -2338,7 +2358,8 @@ s32 fn_1_94C0(Mtx arg0, s32 arg1, s32 arg2)
sp40.y += sp64.y; sp40.y += sp64.y;
sp40.z += sp64.z; sp40.z += sp64.z;
mtxRotCat(spA0, 0.0f, 180.0f + (45.0f * (0.007874016f * (frand() & 0x7F))), 0.0f); mtxRotCat(spA0, 0.0f, 180.0f + (45.0f * (0.007874016f * (frand() & 0x7F))), 0.0f);
} else { }
else {
sp4C = sp64; sp4C = sp64;
sp4C.x = -25.0f; sp4C.x = -25.0f;
sp4C.z = -50.0f; sp4C.z = -50.0f;
@ -2380,7 +2401,8 @@ s32 fn_1_94C0(Mtx arg0, s32 arg1, s32 arg2)
if (var_r28 >= 64) { if (var_r28 >= 64) {
return -1; return -1;
} }
} else { }
else {
for (var_r28 = 0, var_r31 = &lbl_1_bss_A0[64]; var_r28 < 64; var_r28++, var_r31++) { for (var_r28 = 0, var_r31 = &lbl_1_bss_A0[64]; var_r28 < 64; var_r28++, var_r31++) {
if (!var_r31->unk_00) { if (!var_r31->unk_00) {
break; break;
@ -2533,15 +2555,17 @@ void fn_1_A2C8(ModelData *arg0, UnkM406Unk120Struct2 *arg1, Mtx arg2)
var_r31->unk_30.y = -27000.0f + (var_f26 * sp18.y); var_r31->unk_30.y = -27000.0f + (var_f26 * sp18.y);
var_r31->unk_30.z = -63000.0f + (var_f26 * sp18.z); var_r31->unk_30.z = -63000.0f + (var_f26 * sp18.z);
var_r31->unk_28 = (0.3f + (0.7f * (var_f25 * var_f25))) var_r31->unk_28 = (0.3f + (0.7f * (var_f25 * var_f25)))
* (lbl_1_data_8A4[var_r29->unk_02] * (0.699999988079071 + (0.30000001192092896 * (1.52587890625e-05 * (float)(frand() & 0xFFFF))))); * (lbl_1_data_8A4[var_r29->unk_02]
* (0.699999988079071 + (0.30000001192092896 * (1.52587890625e-05 * (float)(frand() & 0xFFFF)))));
var_r31->unk_3C.r = (s32)(160.0 * (1.52587890625e-05 * (float)(frand() & 0xFFFF))) + 0x20; var_r31->unk_3C.r = (s32)(160.0 * (1.52587890625e-05 * (float)(frand() & 0xFFFF))) + 0x20;
var_r31->unk_3C.g = (s32)(96.0 * (1.52587890625e-05 * (float)(frand() & 0xFFFF))) + 0x20; var_r31->unk_3C.g = (s32)(96.0 * (1.52587890625e-05 * (float)(frand() & 0xFFFF))) + 0x20;
var_r31->unk_3C.b = (s32)(128.0 * (1.52587890625e-05 * (float)(frand() & 0xFFFF))) + 0x20; var_r31->unk_3C.b = (s32)(128.0 * (1.52587890625e-05 * (float)(frand() & 0xFFFF))) + 0x20;
var_r31->unk_3C.a var_r31->unk_3C.a = ((1.0 - (0.4 * var_f25)) * (255.0f * lbl_1_data_8B4[var_r29->unk_02]))
= ((1.0 - (0.4 * var_f25)) * (255.0f * lbl_1_data_8B4[var_r29->unk_02])) - (int)(16.0 * (1.52587890625e-05 * (float)(frand() & 0xFFFF))); - (int)(16.0 * (1.52587890625e-05 * (float)(frand() & 0xFFFF)));
} }
var_r29->unk_04++; var_r29->unk_04++;
} else { }
else {
var_r31->unk_30.x = 0.0f; var_r31->unk_30.x = 0.0f;
var_r31->unk_30.y = -27000.0f; var_r31->unk_30.y = -27000.0f;
var_r31->unk_30.z = -63000.0f; var_r31->unk_30.z = -63000.0f;
@ -2881,18 +2905,22 @@ void fn_1_BC18(ModelData *arg0, float (*arg1)[4])
if (shadowModelDrawF) { if (shadowModelDrawF) {
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ONE, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ONE, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO);
GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE);
} else { }
else {
var_r21 = var_r31->unk_38->bmp->dataFmt & 0xF; var_r21 = var_r31->unk_38->bmp->dataFmt & 0xF;
if (var_r21 == 7 || var_r21 == 8) { if (var_r21 == 7 || var_r21 == 8) {
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO);
} else { }
else {
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO);
} }
if (var_r31->unk_22 & 1) { if (var_r31->unk_22 & 1) {
GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE);
} else if (arg0->attr & 2) { }
else if (arg0->attr & 2) {
GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE);
} else { }
else {
GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE);
} }
} }
@ -2947,7 +2975,8 @@ void fn_1_BC18(ModelData *arg0, float (*arg1)[4])
var_r30++; var_r30++;
var_r30->x = var_r30->y = var_r30->z = 0.0f; var_r30->x = var_r30->y = var_r30->z = 0.0f;
var_r30++; var_r30++;
} else if (!var_r29->unk_2C) { }
else if (!var_r29->unk_2C) {
var_r27 = &sp98[0]; var_r27 = &sp98[0];
var_r24 = &sp38[0]; var_r24 = &sp38[0];
PSVECScale(var_r24++, var_r27, var_r29->unk_28); PSVECScale(var_r24++, var_r27, var_r29->unk_28);
@ -2958,7 +2987,8 @@ void fn_1_BC18(ModelData *arg0, float (*arg1)[4])
PSVECAdd(var_r27++, &var_r29->unk_30, var_r30++); PSVECAdd(var_r27++, &var_r29->unk_30, var_r30++);
PSVECScale(var_r24++, var_r27, var_r29->unk_28); PSVECScale(var_r24++, var_r27, var_r29->unk_28);
PSVECAdd(var_r27++, &var_r29->unk_30, var_r30++); PSVECAdd(var_r27++, &var_r29->unk_30, var_r30++);
} else { }
else {
PSVECScale(lbl_1_data_8E0, &sp98[0], var_r29->unk_28); PSVECScale(lbl_1_data_8E0, &sp98[0], var_r29->unk_28);
PSVECScale(&lbl_1_data_8E0[1], &sp98[1], var_r29->unk_28); PSVECScale(&lbl_1_data_8E0[1], &sp98[1], var_r29->unk_28);
PSVECScale(&lbl_1_data_8E0[2], &sp98[2], var_r29->unk_28); PSVECScale(&lbl_1_data_8E0[2], &sp98[2], var_r29->unk_28);
@ -2983,7 +3013,8 @@ void fn_1_BC18(ModelData *arg0, float (*arg1)[4])
var_r28->y = (0.25f * var_r19) + lbl_1_data_910[var_r25].y; var_r28->y = (0.25f * var_r19) + lbl_1_data_910[var_r25].y;
} }
} }
} else { }
else {
for (var_r26 = 0; var_r26 < var_r31->unk_26; var_r26++, var_r29++) { for (var_r26 = 0; var_r26 < var_r31->unk_26; var_r26++, var_r29++) {
for (var_r25 = 0; var_r25 < 4; var_r25++, var_r28++) { for (var_r25 = 0; var_r25 < 4; var_r25++, var_r28++) {
var_r28->x = 4.0f * lbl_1_data_910[var_r25].x; var_r28->x = 4.0f * lbl_1_data_910[var_r25].x;
@ -3113,7 +3144,8 @@ void fn_1_C86C(ModelData *arg0, Mtx arg1)
GXSetZCompLoc(GX_FALSE); GXSetZCompLoc(GX_FALSE);
if (arg0->attr & 2) { if (arg0->attr & 2) {
GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE);
} else { }
else {
GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE);
} }
switch (var_r31->unk_20) { switch (var_r31->unk_20) {
@ -3156,7 +3188,8 @@ void fn_1_C86C(ModelData *arg0, Mtx arg1)
var_r30++; var_r30++;
var_r30->x = var_r30->y = var_r30->z = 0.0f; var_r30->x = var_r30->y = var_r30->z = 0.0f;
var_r30++; var_r30++;
} else { }
else {
var_r28 = (Vec *)&sp6C; var_r28 = (Vec *)&sp6C;
var_r27 = (Vec *)&sp3C; var_r27 = (Vec *)&sp3C;
PSVECScale(var_r27++, var_r28, var_r29->unk_28); PSVECScale(var_r27++, var_r28, var_r29->unk_28);
@ -3332,13 +3365,15 @@ void fn_1_D13C(LightData *arg0, s16 arg1, Mtx arg2, Mtx arg3, float arg8)
PSMTXMultVec(arg2, &arg0->unk_28, &sp24); PSMTXMultVec(arg2, &arg0->unk_28, &sp24);
PSMTXMultVec(arg3, &arg0->unk_1C, &sp18); PSMTXMultVec(arg3, &arg0->unk_1C, &sp18);
GXInitLightPos(&sp30, sp18.x, sp18.y, sp18.z); GXInitLightPos(&sp30, sp18.x, sp18.y, sp18.z);
} else { }
else {
GXInitLightPos(&sp30, arg0->unk_1C.x, arg0->unk_1C.y, arg0->unk_1C.z); GXInitLightPos(&sp30, arg0->unk_1C.x, arg0->unk_1C.y, arg0->unk_1C.z);
sp24 = arg0->unk_28; sp24 = arg0->unk_28;
} }
if (arg8 == 0.0f) { if (arg8 == 0.0f) {
GXInitLightDir(&sp30, sp24.x, sp24.y, sp24.z); GXInitLightDir(&sp30, sp24.x, sp24.y, sp24.z);
} else { }
else {
GXInitSpecularDir(&sp30, sp24.x, sp24.y, sp24.z); GXInitSpecularDir(&sp30, sp24.x, sp24.y, sp24.z);
GXInitLightAttn(&sp30, 0.0f, 0.0f, 1.0f, arg8 / 2, 0.0f, 1.0f - (arg8 / 2)); GXInitLightAttn(&sp30, 0.0f, 0.0f, 1.0f, arg8 / 2, 0.0f, 1.0f - (arg8 / 2));
} }

2081
src/REL/m406Dll/player.c Normal file

File diff suppressed because it is too large Load diff

View file

@ -2848,7 +2848,7 @@ s16 fn_1_7DC8(s16 arg0)
var_r26 = var_r23->unk_120; var_r26 = var_r23->unk_120;
var_r22 = Hu3DHookFuncCreate(var_r23->hook); var_r22 = Hu3DHookFuncCreate(var_r23->hook);
var_r27 = &Hu3DData[var_r22]; var_r27 = &Hu3DData[var_r22];
var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(UnkModelDataUnk120Struct), var_r27->unk_48); // TODO fix var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(UnkModelDataUnk120Struct), var_r27->unk_48);
var_r27->unk_120 = var_r31; var_r27->unk_120 = var_r31;
var_r31->unk_38 = var_r26->unk_38; var_r31->unk_38 = var_r26->unk_38;
var_r31->unk_24 = var_r26->unk_24; var_r31->unk_24 = var_r26->unk_24;

View file

@ -9,9 +9,17 @@
#include "game/window.h" #include "game/window.h"
#include "game/wipe.h" #include "game/wipe.h"
#include "REL/staffDll.h"
#include "rel_sqrt_consts.h" #include "rel_sqrt_consts.h"
typedef struct StaffData {
/* 0x00 */ u32 unk_00;
/* 0x04 */ s32 unk_04;
/* 0x08 */ float unk_08;
/* 0x0C */ u32 unk_0C;
/* 0x10 */ s32 logoGroupIdx;
/* 0x14 */ s32 unk_14;
} StaffData;
static s16 imgGroup[26]; static s16 imgGroup[26];
static s16 staffLogoGroup[3]; static s16 staffLogoGroup[3];
static s16 thpGroup; static s16 thpGroup;
@ -20,7 +28,7 @@ static s32 staffSide;
static s32 currImg; static s32 currImg;
static omObjData *multiViewObj; static omObjData *multiViewObj;
static UnkStaffDllStruct staffData[] = { static StaffData staffData[] = {
{ 0x00340001, 0, 0.0f, 0, 0, 0 }, { 0x00340001, 0, 0.0f, 0, 0, 0 },
{ 0x00350000, 2, 0.0f, 0, 0, 0 }, { 0x00350000, 2, 0.0f, 0, 0, 0 },
{ -3, 0, 72.0f, 0, 0, 0 }, { -3, 0, 72.0f, 0, 0, 0 },
@ -207,6 +215,7 @@ static UnkStaffDllStruct staffData[] = {
{ -2, 0, 0.0f, 0, 0, 0 }, { -2, 0, 0.0f, 0, 0, 0 },
{ -1, 0, 0.0f, 0, 0, 0 }, { -1, 0, 0.0f, 0, 0, 0 },
}; };
static float staffLogoPosTbl[] = { 460.0f, 293.0f, 293.0f }; static float staffLogoPosTbl[] = { 460.0f, 293.0f, 293.0f };
static void MainProc(void); static void MainProc(void);
@ -215,17 +224,16 @@ static void ShowPicture(void);
void ModuleProlog(void) void ModuleProlog(void)
{ {
Process *var_r31; Process *process;
s32 var_lr;
var_r31 = omInitObjMan(0x32, 0x2000); process = omInitObjMan(0x32, 0x2000);
omGameSysInit(var_r31); omGameSysInit(process);
HuWinInit(1); HuWinInit(1);
Hu3DCameraCreate(1); Hu3DCameraCreate(1);
Hu3DCameraPerspectiveSet(1, 20.0f, 20.0f, 10000.0f, 1.2f); Hu3DCameraPerspectiveSet(1, 20.0f, 20.0f, 10000.0f, 1.2f);
Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f);
Hu3DCameraScissorSet(1, 0, 0, 640, 480); Hu3DCameraScissorSet(1, 0, 0, 640, 480);
multiViewObj = omAddObjEx(var_r31, 0x7FDA, 0, 0, -1, omOutViewMulti); multiViewObj = omAddObjEx(process, 0x7FDA, 0, 0, -1, omOutViewMulti);
multiViewObj->work[0] = 1; multiViewObj->work[0] = 1;
CRotM[0].x = -35.0f; CRotM[0].x = -35.0f;
CRotM[0].y = 0.0f; CRotM[0].y = 0.0f;
@ -282,14 +290,15 @@ static void CreateStaff(void)
currImg = 0; currImg = 0;
for (var_r31 = 0; var_r31 < 26; var_r31++) { for (var_r31 = 0; var_r31 < 26; var_r31++) {
var_r29 = HuDataSelHeapReadNum(var_r31 + 0x730000, MEMORY_DEFAULT_NUM, HEAP_DATA); var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_STAFF, var_r31), MEMORY_DEFAULT_NUM, HEAP_DATA);
var_r28 = HuSprAnimRead(var_r29); var_r28 = HuSprAnimRead(var_r29);
var_r30 = HuSprCreate(var_r28, 16386, 0); var_r30 = HuSprCreate(var_r28, 16386, 0);
imgGroup[var_r31] = HuSprGrpCreate(1); imgGroup[var_r31] = HuSprGrpCreate(1);
HuSprGrpMemberSet(imgGroup[var_r31], 0, var_r30); HuSprGrpMemberSet(imgGroup[var_r31], 0, var_r30);
if (staffSide != 0) { if (staffSide != 0) {
HuSprGrpPosSet(imgGroup[var_r31], 380.0f, 240.0f); HuSprGrpPosSet(imgGroup[var_r31], 380.0f, 240.0f);
} else { }
else {
HuSprGrpPosSet(imgGroup[var_r31], 200.0f, 240.0f); HuSprGrpPosSet(imgGroup[var_r31], 200.0f, 240.0f);
} }
HuSprAttrSet(imgGroup[var_r31], 0, HUSPR_ATTR_DISPOFF); HuSprAttrSet(imgGroup[var_r31], 0, HUSPR_ATTR_DISPOFF);
@ -325,19 +334,18 @@ static void CreateStaff(void)
static void MoveStaff(void) static void MoveStaff(void)
{ {
float sp8[2]; float sp8[2];
Process *temp_ret;
float var_f30; float var_f30;
float var_f31; float var_f31;
s16 var_r30; s16 var_r30;
u32 var_r29; u32 var_r29;
UnkStaffDllStruct *var_r31; StaffData *var_r31;
var_r31 = HuPrcCurrentGet()->user_data; var_r31 = HuPrcCurrentGet()->user_data;
var_r31->unk_14 = 0; var_r31->unk_14 = 0;
switch (var_r31->unk_00) { switch (var_r31->unk_00) {
case -2: case -2:
HuSprAttrReset(staffLogoGroup[var_r31->unk_10], 0, HUSPR_ATTR_DISPOFF); HuSprAttrReset(staffLogoGroup[var_r31->logoGroupIdx], 0, HUSPR_ATTR_DISPOFF);
var_f31 = staffLogoPosTbl[var_r31->unk_10]; var_f31 = staffLogoPosTbl[var_r31->logoGroupIdx];
var_f30 = 576.0f; var_f30 = 576.0f;
break; break;
default: default:
@ -349,19 +357,19 @@ static void MoveStaff(void)
break; break;
case 0: case 0:
var_f31 = 10.0f; var_f31 = 10.0f;
if (!staffSide) { if (staffSide == 0) {
var_f31 += 240.0f; var_f31 += 240.0f;
} }
break; break;
case 1: case 1:
var_f31 = 30.0f; var_f31 = 30.0f;
if (!staffSide) { if (staffSide == 0) {
var_f31 += 240.0f; var_f31 += 240.0f;
} }
break; break;
case 2: case 2:
var_f31 = 550.0f - (0.75f * sp8[0]); var_f31 = 550.0f - (0.75f * sp8[0]);
if (staffSide) { if (staffSide != 0) {
var_f31 -= 240.0f; var_f31 -= 240.0f;
} }
var_r29 = 0x1000; var_r29 = 0x1000;
@ -392,20 +400,23 @@ static void MoveStaff(void)
if (var_f30 < -114.0f) { if (var_f30 < -114.0f) {
break; break;
} }
} else if (var_f30 < -24.0f) { }
else if (var_f30 < -24.0f) {
break; break;
} }
if (var_r31->unk_00 == -2) { if (var_r31->unk_00 == -2) {
HuSprGrpPosSet(staffLogoGroup[var_r31->unk_10], var_f31, var_f30); HuSprGrpPosSet(staffLogoGroup[var_r31->logoGroupIdx], var_f31, var_f30);
} else { }
else {
HuWinPosSet(var_r30, var_f31, var_f30); HuWinPosSet(var_r30, var_f31, var_f30);
} }
HuPrcVSleep(); HuPrcVSleep();
} }
var_r31->unk_14 = 1; var_r31->unk_14 = 1;
if (var_r31->unk_00 == -2) { if (var_r31->unk_00 == -2) {
HuSprAttrSet(staffLogoGroup[var_r31->unk_10], 0, HUSPR_ATTR_DISPOFF); HuSprAttrSet(staffLogoGroup[var_r31->logoGroupIdx], 0, HUSPR_ATTR_DISPOFF);
} else { }
else {
HuWinKill(var_r30); HuWinKill(var_r30);
} }
HuPrcVSleep(); HuPrcVSleep();
@ -423,7 +434,8 @@ static void HidePicture(void)
currImg++; currImg++;
if (staffSide != 0) { if (staffSide != 0) {
HuSprGrpPosSet(imgGroup[currImg], 380.0f, 240.0f); HuSprGrpPosSet(imgGroup[currImg], 380.0f, 240.0f);
} else { }
else {
HuSprGrpPosSet(imgGroup[currImg], 200.0f, 240.0f); HuSprGrpPosSet(imgGroup[currImg], 200.0f, 240.0f);
} }
HuSprAttrSet(imgGroup[prevImg], 0, HUSPR_ATTR_DISPOFF); HuSprAttrSet(imgGroup[prevImg], 0, HUSPR_ATTR_DISPOFF);
@ -452,7 +464,8 @@ static void ShowPicture(void)
while (TRUE) { while (TRUE) {
if (currImg >= 24) { if (currImg >= 24) {
HuPrcSleep(430); HuPrcSleep(430);
} else { }
else {
HuPrcSleep(550); HuPrcSleep(550);
} }
if (currImg >= 25) { if (currImg >= 25) {
@ -476,7 +489,7 @@ static void ShowPicture(void)
static void MainProc(void) static void MainProc(void)
{ {
s32 var_r31; s32 var_r31;
UnkStaffDllStruct *var_r30; StaffData *var_r30;
s32 var_r29; s32 var_r29;
Process *var_r28; Process *var_r28;
s32 var_r27; s32 var_r27;
@ -504,7 +517,8 @@ static void MainProc(void)
staffSide++; staffSide++;
staffSide &= 1; staffSide &= 1;
HuPrcChildCreate(HidePicture, 0x1000, 0x2000, 0, HuPrcCurrentGet()); HuPrcChildCreate(HidePicture, 0x1000, 0x2000, 0, HuPrcCurrentGet());
} else { }
else {
HuPrcSleep(60); HuPrcSleep(60);
} }
break; break;