Matched mstoryDll (US) (#512)
This commit is contained in:
parent
2121a31f1d
commit
496c8544e5
11 changed files with 4078 additions and 273 deletions
622
src/REL/mstoryDll/board_clear.c
Executable file
622
src/REL/mstoryDll/board_clear.c
Executable file
|
|
@ -0,0 +1,622 @@
|
|||
#include "REL/mstoryDll.h"
|
||||
#include "game/chrman.h"
|
||||
#include "game/gamework_data.h"
|
||||
#include "game/hsfman.h"
|
||||
#include "game/hsfmotion.h"
|
||||
#include "game/printfunc.h"
|
||||
#include "game/window.h"
|
||||
#include "game/wipe.h"
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s32 unk00;
|
||||
/* 0x04 */ s32 unk04;
|
||||
/* 0x08 */ s32 unk08;
|
||||
/* 0x0C */ char unk0C[4];
|
||||
/* 0x10 */ s32 unk10;
|
||||
/* 0x14 */ s32 unk14;
|
||||
/* 0x18 */ char unk18[0x1C];
|
||||
/* 0x34 */ StructFn352C unk34[4];
|
||||
} StructBss1C4; // Size 0x104
|
||||
|
||||
void fn_1_8A44(void);
|
||||
void fn_1_8DC0(omObjData* arg0, StructBss19C* arg1);
|
||||
void fn_1_8E6C(omObjData* arg0, StructBss19C* arg1);
|
||||
void fn_1_8F68(void);
|
||||
void fn_1_92D4(s32 arg0);
|
||||
void fn_1_9718(omObjData* arg0, StructBss19C* arg1);
|
||||
void fn_1_98A4(omObjData* arg0, StructBss19C* arg1);
|
||||
void fn_1_992C(void);
|
||||
void fn_1_A008(omObjData* arg0, StructBss19C* arg1);
|
||||
void fn_1_A0EC(void);
|
||||
void fn_1_A478(void);
|
||||
void fn_1_A504(void);
|
||||
void fn_1_A5F4(void);
|
||||
|
||||
StructBss1C4 lbl_1_bss_1C4;
|
||||
StructBss19C lbl_1_bss_19C;
|
||||
StructBss19C lbl_1_bss_174;
|
||||
StructBss19C lbl_1_bss_D4[4];
|
||||
StructBss19C lbl_1_bss_AC;
|
||||
Process* lbl_1_bss_A8;
|
||||
|
||||
s32 lbl_1_data_190[][4] = {
|
||||
{ MAKE_MESSID(30, 17), MAKE_MESSID(30, 23), MAKE_MESSID(30, 62), MAKE_MESSID(30, 63) },
|
||||
{ MAKE_MESSID(30, 18), MAKE_MESSID(30, 24), MAKE_MESSID(30, 64), MAKE_MESSID(30, 65) },
|
||||
{ MAKE_MESSID(30, 19), MAKE_MESSID(30, 25), MAKE_MESSID(30, 66), MAKE_MESSID(30, 67) },
|
||||
{ MAKE_MESSID(30, 20), MAKE_MESSID(30, 26), MAKE_MESSID(30, 68), MAKE_MESSID(30, 69) },
|
||||
{ MAKE_MESSID(30, 21), MAKE_MESSID(30, 27), MAKE_MESSID(30, 70), MAKE_MESSID(30, 71) }
|
||||
};
|
||||
|
||||
s32 lbl_1_data_1E0[][3] = {
|
||||
{ MAKE_MESSID(30, 101), MAKE_MESSID(30, 102), MAKE_MESSID(30, 103) },
|
||||
{ MAKE_MESSID(30, 104), MAKE_MESSID(30, 105), MAKE_MESSID(30, 106) },
|
||||
{ MAKE_MESSID(30, 107), MAKE_MESSID(30, 108), MAKE_MESSID(30, 109) },
|
||||
{ MAKE_MESSID(30, 110), MAKE_MESSID(30, 111), MAKE_MESSID(30, 112) },
|
||||
{ MAKE_MESSID(30, 113), MAKE_MESSID(30, 114), MAKE_MESSID(30, 115) }
|
||||
};
|
||||
|
||||
void fn_1_7090(s32 arg0, StructBss19C* arg1) {
|
||||
fn_1_BAC(10);
|
||||
fn_1_1DCC(lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk00, 1, 5, 15, 0);
|
||||
fn_1_BAC(5);
|
||||
HuAudCharVoicePlay(lbl_1_bss_1C4.unk34[lbl_1_bss_1C4.unk04].unk10, 0x128);
|
||||
fn_1_BAC(25);
|
||||
arg1->unk04 = 0;
|
||||
}
|
||||
|
||||
void fn_1_7134(s32 arg0, StructBss19C* arg1) {
|
||||
float temp_f31;
|
||||
float temp_f30;
|
||||
float temp_f29;
|
||||
s32 i;
|
||||
|
||||
temp_f29 = Hu3DData[lbl_1_bss_174.unk00->model[7]].pos.y;
|
||||
for (i = 0; i <= 30; i++) {
|
||||
fn_1_B8C();
|
||||
temp_f31 = fn_1_870(temp_f29, 1000.0f, i, 30.0f);
|
||||
temp_f30 = fn_1_870(0.0f, 1800.0f, i, 30.0f);
|
||||
Hu3DModelPosSet(lbl_1_bss_174.unk00->model[7], 0.0f, temp_f31, 800.0f);
|
||||
Hu3DModelRotSet(lbl_1_bss_174.unk00->model[7], 0.0f, temp_f30, 0.0f);
|
||||
Hu3DModelPosSet(lbl_1_bss_174.unk00->model[8], 0.0f, temp_f31 + 15.0f, 775.0f);
|
||||
}
|
||||
arg1->unk04 = 0;
|
||||
}
|
||||
|
||||
void fn_1_731C(s32 arg0) {
|
||||
float temp_f31;
|
||||
float temp_f30;
|
||||
s32 var_r30;
|
||||
s32 i;
|
||||
|
||||
var_r30 = arg0;
|
||||
Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[5], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[6], HU3D_ATTR_DISPOFF);
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (lbl_1_bss_1C4.unk34[i].unk00 != lbl_1_bss_1C4.unk34[lbl_1_bss_1C4.unk04].unk00) {
|
||||
Hu3DModelAttrSet(lbl_1_bss_D4[i].unk00->model[1], HU3D_ATTR_DISPOFF);
|
||||
}
|
||||
Hu3DModelAttrSet(lbl_1_bss_D4[i].unk00->model[2], HU3D_ATTR_DISPOFF);
|
||||
}
|
||||
lbl_1_bss_1C4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_1C4.unk10);
|
||||
fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 3, 15, 1);
|
||||
fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_1E0[var_r30][0]);
|
||||
fn_1_1ACC(lbl_1_bss_1C4.unk08, -1);
|
||||
fn_1_1CE8(lbl_1_bss_1C4.unk08, MAKE_MESSID(37, 4));
|
||||
fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 1, 15, 1);
|
||||
fn_1_1A64(lbl_1_bss_1C4.unk08);
|
||||
Hu3DModelPosSet(lbl_1_bss_174.unk00->model[7], 0.0f, 1000.0f, 640.0f);
|
||||
Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[7], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[8], HU3D_ATTR_DISPOFF);
|
||||
for (i = 0; i <= 180; i++) {
|
||||
fn_1_B8C();
|
||||
temp_f31 = fn_1_948(1000.0f, 150.0f, i, 180.0f);
|
||||
temp_f30 = fn_1_948(1800.0f, 0.0f, i, 180.0f);
|
||||
Hu3DModelPosSet(lbl_1_bss_174.unk00->model[7], 0.0f, temp_f31, 800.0f);
|
||||
Hu3DModelRotSet(lbl_1_bss_174.unk00->model[7], 0.0f, temp_f30, 0.0f);
|
||||
Hu3DModelPosSet(lbl_1_bss_174.unk00->model[8], 0.0f, temp_f31 + 15.0f, 775.0f);
|
||||
}
|
||||
lbl_1_bss_174.unk04 = (void*) fn_1_8E6C;
|
||||
fn_1_1DCC(lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk00, 1, 6, 15, 0);
|
||||
lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = (void*) fn_1_98A4;
|
||||
fn_1_BAC(40);
|
||||
HuAudSeqFadeOut(lbl_1_bss_58[0], 1000);
|
||||
fn_1_BAC(50);
|
||||
lbl_1_bss_58[1] = HuAudSeqPlay(0x35);
|
||||
lbl_1_bss_1C4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_1C4.unk10);
|
||||
fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 3, 15, 1);
|
||||
fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_1E0[var_r30][1]);
|
||||
fn_1_1ACC(lbl_1_bss_1C4.unk08, -1);
|
||||
fn_1_1CE8(lbl_1_bss_1C4.unk08, MAKE_MESSID(37, 4));
|
||||
fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 1, 15, 1);
|
||||
fn_1_1A64(lbl_1_bss_1C4.unk08);
|
||||
fn_1_BAC(30);
|
||||
fn_1_1DCC(lbl_1_bss_174.unk00, 2, 3, 0, 0);
|
||||
lbl_1_bss_174.unk04 = (void*) fn_1_8DC0;
|
||||
fn_1_BAC(30);
|
||||
lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = (void*) fn_1_7090;
|
||||
fn_1_BAC(90);
|
||||
lbl_1_bss_AC.unk04 = (void*) fn_1_7134;
|
||||
lbl_1_bss_1C4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_1C4.unk10);
|
||||
fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 5, 15, 1);
|
||||
fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_1E0[lbl_1_bss_1C4.unk00][2]);
|
||||
fn_1_1ACC(lbl_1_bss_1C4.unk08, -1);
|
||||
fn_1_1CE8(lbl_1_bss_1C4.unk08, MAKE_MESSID(37, 4));
|
||||
fn_1_1A64(lbl_1_bss_1C4.unk08);
|
||||
HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1C4.unk00][3]);
|
||||
}
|
||||
|
||||
void fn_1_79B8(Process* arg0, s32 arg1, s32 arg2) {
|
||||
s32 i;
|
||||
|
||||
lbl_1_bss_A8 = arg0;
|
||||
lbl_1_bss_1C4.unk00 = arg1;
|
||||
lbl_1_bss_1C4.unk10 = arg2;
|
||||
fn_1_BF4();
|
||||
fn_1_3618(0xFF);
|
||||
fn_1_27E8(lbl_1_bss_A8, fn_1_A478);
|
||||
fn_1_3704();
|
||||
fn_1_92D4(arg2);
|
||||
HuPrcChildCreate(fn_1_8F68, 100, 0x2000, 0, HuPrcCurrentGet());
|
||||
HuPrcChildCreate(fn_1_A0EC, 100, 0x2000, 0, HuPrcCurrentGet());
|
||||
for (i = 0; i < 4; i++) {
|
||||
HuPrcChildCreate(fn_1_992C, 100, 0x2000, 0, HuPrcCurrentGet());
|
||||
}
|
||||
HuPrcChildCreate(fn_1_8A44, 100, 0x2000, 0, HuPrcCurrentGet());
|
||||
}
|
||||
|
||||
void fn_1_7AE0(void) {
|
||||
s32 var_r30 = 16;
|
||||
s32 var_r29 = 40;
|
||||
GXColor sp10 = { 0x00, 0x00, 0x80, 0x80 };
|
||||
s32 i;
|
||||
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
fontcolor = FONT_COLOR_WHITE;
|
||||
printWin(var_r30, var_r29, 220, 150, &sp10);
|
||||
if (lbl_1_bss_19C.unk04 == NULL) {
|
||||
print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> FALSE");
|
||||
} else {
|
||||
print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> TRUE");
|
||||
}
|
||||
if (lbl_1_bss_174.unk04 == NULL) {
|
||||
print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> FALSE");
|
||||
} else {
|
||||
print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> TRUE");
|
||||
}
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (lbl_1_bss_D4[i].unk04 == NULL) {
|
||||
print8(var_r30, i * 10 + (var_r29 + 20), 1.0f, "PROC_PLAYER%d -> FALSE", i);
|
||||
} else {
|
||||
print8(var_r30, i * 10 + (var_r29 + 20), 1.0f, "PROC_PLAYER%d -> TRUE", i);
|
||||
}
|
||||
}
|
||||
if (lbl_1_bss_AC.unk04 == NULL) {
|
||||
print8(var_r30, var_r29 + 60, 1.0f, "PROC_SUB -> FALSE");
|
||||
} else {
|
||||
print8(var_r30, var_r29 + 60, 1.0f, "PROC_SUB -> TRUE");
|
||||
}
|
||||
print8(var_r30, var_r29 + 80, 1.0f, "M:%d P:%d W:%d", lbl_1_bss_1C4.unk00, lbl_1_bss_1C4.unk04, lbl_1_bss_1C4.unk10);
|
||||
print8(var_r30, var_r29 + 100, 1.0f, "NO) IDX:GRP:COM:DIF:PAD:CHR");
|
||||
for (i = 0; i < 4; i++) {
|
||||
print8(var_r30, var_r29 + 110 + i * 10, 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i,
|
||||
lbl_1_bss_1C4.unk34[i].unk00, lbl_1_bss_1C4.unk34[i].unk04, lbl_1_bss_1C4.unk34[i].unk08,
|
||||
lbl_1_bss_1C4.unk34[i].unk0C, lbl_1_bss_1C4.unk34[i].unk14, lbl_1_bss_1C4.unk34[i].unk10);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_7E70(void) {
|
||||
lbl_1_bss_58[0] = HuAudSeqPlay(0x33);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1);
|
||||
do {
|
||||
fn_1_B8C();
|
||||
} while (WipeStatGet() != 0);
|
||||
fn_1_BAC(60);
|
||||
}
|
||||
|
||||
void fn_1_7ECC(void) {
|
||||
s32 spC = 0;
|
||||
s32 sp8 = 0;
|
||||
|
||||
lbl_1_bss_1C4.unk08 = fn_1_1834(0, 0, 21, 2, lbl_1_bss_1C4.unk10);
|
||||
fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 3, 15, 1);
|
||||
fn_1_1D1C(lbl_1_bss_1C4.unk08, lbl_1_bss_1C4.unk34[lbl_1_bss_1C4.unk04].unk10, 0);
|
||||
fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_190[lbl_1_bss_1C4.unk00][0]);
|
||||
fn_1_1ACC(lbl_1_bss_1C4.unk08, -1);
|
||||
fn_1_1CE8(lbl_1_bss_1C4.unk08, MAKE_MESSID(37, 4));
|
||||
fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 1, 15, 1);
|
||||
fn_1_1A64(lbl_1_bss_1C4.unk08);
|
||||
lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = (void*) fn_1_9718;
|
||||
fn_1_3804(&lbl_1_bss_4);
|
||||
fn_1_2710(fn_1_A504);
|
||||
do {
|
||||
fn_1_B8C();
|
||||
} while (lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 != NULL);
|
||||
do {
|
||||
fn_1_B8C();
|
||||
} while (lbl_1_bss_AC.unk04 != NULL);
|
||||
}
|
||||
|
||||
void fn_1_8090(void) {
|
||||
lbl_1_bss_1C4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_1C4.unk10);
|
||||
fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 3, 15, 1);
|
||||
fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_190[lbl_1_bss_1C4.unk00][2]);
|
||||
fn_1_1ACC(lbl_1_bss_1C4.unk08, -1);
|
||||
fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 1, 15, 1);
|
||||
fn_1_1A64(lbl_1_bss_1C4.unk08);
|
||||
fn_1_1DCC(lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk00, 1, 6, 15, 0);
|
||||
lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = (void*) fn_1_98A4;
|
||||
Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[5], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[6], HU3D_ATTR_DISPOFF);
|
||||
fn_1_BAC(180);
|
||||
HuAudSeqFadeOut(lbl_1_bss_58[0], 1000);
|
||||
fn_1_1DCC(lbl_1_bss_174.unk00, 2, 3, 0, 0);
|
||||
fn_1_BAC(75);
|
||||
lbl_1_bss_58[1] = HuAudSeqPlay(0x35);
|
||||
lbl_1_bss_1C4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_1C4.unk10);
|
||||
fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 4, 15, 1);
|
||||
fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_190[lbl_1_bss_1C4.unk00][3]);
|
||||
lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = NULL;
|
||||
lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = (void*) fn_1_7090;
|
||||
fn_1_1ACC(lbl_1_bss_1C4.unk08, -1);
|
||||
fn_1_1CE8(lbl_1_bss_1C4.unk08, MAKE_MESSID(37, 4));
|
||||
HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1C4.unk00][3]);
|
||||
fn_1_1A64(lbl_1_bss_1C4.unk08);
|
||||
do {
|
||||
fn_1_B8C();
|
||||
} while (lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 != NULL);
|
||||
}
|
||||
|
||||
void fn_1_83B0(void) {
|
||||
fn_1_BAC(60);
|
||||
HuAudSeqFadeOut(lbl_1_bss_58[1], 3000);
|
||||
fn_1_3804(&lbl_1_bss_4);
|
||||
fn_1_2710(fn_1_A5F4);
|
||||
fn_1_BAC(150);
|
||||
}
|
||||
|
||||
void fn_1_8408(void) {
|
||||
omOvlHisData* var_r30;
|
||||
u16 sp8[] = { 53, 56, 55, 54, 57 };
|
||||
s32 sp14[] = { 9, 14, 10, 11, 12 };
|
||||
s32 var_r29;
|
||||
s32 var_r28;
|
||||
s32 i;
|
||||
|
||||
WipeColorSet(0xFF, 0xFF, 0xFF);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1);
|
||||
do {
|
||||
fn_1_B8C();
|
||||
} while (WipeStatGet() != 0);
|
||||
CharModelKill(-1);
|
||||
MGSeqKillAll();
|
||||
var_r29 = lbl_1_bss_1C4.unk34[lbl_1_bss_1C4.unk04].unk10;
|
||||
var_r28 = lbl_1_bss_1C4.unk34[lbl_1_bss_1C4.unk04].unk14;
|
||||
GWPlayerCfg[lbl_1_bss_1C4.unk04].character = GWPlayerCfg->character;
|
||||
GWPlayerCfg[lbl_1_bss_1C4.unk04].pad_idx = GWPlayerCfg->pad_idx;
|
||||
GWPlayerCfg[lbl_1_bss_1C4.unk04].group = GWPlayerCfg->group;
|
||||
GWPlayerCfg[lbl_1_bss_1C4.unk04].iscom = GWPlayerCfg->iscom;
|
||||
GWPlayerCfg->character = var_r29;
|
||||
GWPlayerCfg->pad_idx = var_r28;
|
||||
GWPlayerCfg->group = 0;
|
||||
GWPlayerCfg->iscom = 0;
|
||||
for (i = 0; i < 4; i++) {
|
||||
GWPlayer[i].character = GWPlayerCfg[i].character;
|
||||
GWPlayer[i].port = GWPlayerCfg[i].pad_idx;
|
||||
GWPlayer[i].com = GWPlayerCfg[i].iscom;
|
||||
GWPlayer[i].team = GWPlayerCfg[i].group;
|
||||
}
|
||||
GWPlayerCfg[1].character = sp14[GWSystem.board];
|
||||
for (i = 1; i < 4; i++) {
|
||||
GWPlayerCfg[i].iscom = GWPlayerCfg[i].group = 1;
|
||||
}
|
||||
var_r30 = omOvlHisGet(0);
|
||||
omOvlHisChg(0, OVL_MSTORY, 2, var_r30->stat);
|
||||
OSReport("########## dllno - %d\n", sp8[GWSystem.board], GWSystem.board);
|
||||
HuAudSeqAllFadeOut(1000);
|
||||
HuAudSStreamAllFadeOut(1000);
|
||||
omOvlCallEx(sp8[GWSystem.board], 1, 0, 0);
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_87DC(s32 arg0, StructBss19C* arg1) {
|
||||
fn_1_7E70();
|
||||
fn_1_7ECC();
|
||||
fn_1_731C(lbl_1_bss_1C4.unk00);
|
||||
fn_1_83B0();
|
||||
fn_1_8408();
|
||||
arg1->unk04 = NULL;
|
||||
}
|
||||
|
||||
void fn_1_8A44(void) {
|
||||
omObjData* var_r31;
|
||||
|
||||
var_r31 = omAddObjEx(lbl_1_bss_A8, 0x100, 16, 16, -1, NULL);
|
||||
lbl_1_bss_19C.unk00 = var_r31;
|
||||
lbl_1_bss_19C.unk04 = (void*) fn_1_87DC;
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
if (lbl_1_bss_19C.unk04 != NULL) {
|
||||
lbl_1_bss_19C.unk04(var_r31, &lbl_1_bss_19C);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_8AE0(omObjData* arg0) {
|
||||
arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 56));
|
||||
arg0->motion[0] = Hu3DMotionIDGet(arg0->model[1]);
|
||||
fn_1_1DCC(arg0, 1, 0, 0, 2);
|
||||
Hu3DModelShadowMapObjSet(arg0->model[1], "base_fix9-base");
|
||||
arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 59));
|
||||
arg0->motion[2] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 60));
|
||||
arg0->motion[3] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 61));
|
||||
fn_1_1DCC(arg0, 2, 2, 0, 2);
|
||||
arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 57));
|
||||
arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 76 + lbl_1_bss_1C4.unk00));
|
||||
arg0->motion[5] = Hu3DMotionIDGet(arg0->model[5]);
|
||||
Hu3DModelPosSet(arg0->model[5], 0.0f, 80.0f, 460.0f);
|
||||
Hu3DModelAttrSet(arg0->model[5], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelShadowSet(arg0->model[5]);
|
||||
fn_1_1DCC(arg0, 5, 5, 0, 2);
|
||||
arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 75));
|
||||
arg0->motion[6] = Hu3DMotionIDGet(arg0->model[6]);
|
||||
Hu3DModelHookSet(arg0->model[5], "stargbox_fix-effect_fook1", arg0->model[6]);
|
||||
Hu3DModelAttrSet(arg0->model[6], HU3D_ATTR_DISPOFF);
|
||||
fn_1_1DCC(arg0, 6, 6, 0, 2);
|
||||
arg0->model[7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 81));
|
||||
Hu3DModelAttrSet(arg0->model[7], HU3D_ATTR_DISPOFF);
|
||||
arg0->model[8] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 96));
|
||||
arg0->motion[8] = Hu3DMotionIDGet(arg0->model[8]);
|
||||
Hu3DModelAttrSet(arg0->model[8], HU3D_ATTR_DISPOFF);
|
||||
fn_1_1DCC(arg0, 8, 8, 0, 1);
|
||||
}
|
||||
|
||||
void fn_1_8DC0(omObjData* arg0, StructBss19C* arg1) {
|
||||
Hu3DData[arg0->model[5]].pos.y = fn_1_ACC(80.0f, 90.0f, arg0->work[0]++, 360.0f);
|
||||
if (arg0->work[0] >= 360) {
|
||||
arg0->work[0] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_8E6C(omObjData* arg0, StructBss19C* arg1) {
|
||||
Hu3DData[arg0->model[7]].pos.y += fn_1_ACC(0.0f, 0.25f, arg0->work[0]++, 360.0f);
|
||||
Hu3DData[arg0->model[8]].pos.y = Hu3DData[arg0->model[7]].pos.y + 15.0f;
|
||||
if (arg0->work[0] >= 360) {
|
||||
arg0->work[0] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_8F68(void) {
|
||||
omObjData* temp_r31;
|
||||
|
||||
temp_r31 = omAddObjEx(lbl_1_bss_A8, 0x100, 16, 16, -1, NULL);
|
||||
lbl_1_bss_174.unk00 = temp_r31;
|
||||
lbl_1_bss_174.unk04 = (void*) fn_1_8DC0;
|
||||
lbl_1_bss_174.unk00->data = &lbl_1_bss_174;
|
||||
fn_1_8AE0(temp_r31);
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
if (lbl_1_bss_174.unk04 != NULL) {
|
||||
lbl_1_bss_174.unk04(temp_r31, &lbl_1_bss_174);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_92D4(s32 arg0) {
|
||||
s32 spC[4];
|
||||
s32 i;
|
||||
|
||||
spC[0] = 0;
|
||||
for (i = 1; i < 4; i++) {
|
||||
spC[i] = spC[i - 1] + 1;
|
||||
if (spC[i] >= 4) {
|
||||
spC[i] = 0;
|
||||
}
|
||||
if (arg0 == spC[i]) {
|
||||
lbl_1_bss_1C4.unk04 = i;
|
||||
}
|
||||
}
|
||||
for (i = 0; i < 4; i++) {
|
||||
fn_1_352C(&lbl_1_bss_1C4.unk34[i], spC[i]);
|
||||
}
|
||||
for (i = 0; i < 4; i++) {
|
||||
lbl_1_bss_1C4.unk34[i].unk18 = GWPlayer[spC[i]].rank + 1;
|
||||
}
|
||||
}
|
||||
|
||||
Vec lbl_1_data_354[] = {
|
||||
{ -300.0f, 0.0f, 460.0f },
|
||||
{ -100.0f, -30.0f, 460.0f },
|
||||
{ 100.0f, -60.0f, 460.0f },
|
||||
{ 300.0f, -90.0f, 460.0f }
|
||||
};
|
||||
|
||||
void fn_1_9408(omObjData* arg0, s32 arg1) {
|
||||
s32 var_r30;
|
||||
s32 temp_r29;
|
||||
|
||||
var_r30 = arg1;
|
||||
temp_r29 = lbl_1_bss_1C4.unk34[var_r30].unk10;
|
||||
arg0->model[1] = CharModelCreate(temp_r29, 4);
|
||||
arg0->motion[1] = CharModelMotionCreate(temp_r29, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0));
|
||||
arg0->motion[2] = CharModelMotionCreate(temp_r29, DATA_MAKE_NUM(DATADIR_MARIOMOT, 3));
|
||||
arg0->motion[3] = CharModelMotionCreate(temp_r29, DATA_MAKE_NUM(DATADIR_MARIOMOT, 5));
|
||||
arg0->motion[4] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_MSTORY, 48 + temp_r29));
|
||||
arg0->motion[5] = CharModelMotionCreate(temp_r29, DATA_MAKE_NUM(DATADIR_MARIOMOT, 109));
|
||||
arg0->motion[6] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_MSTORY, 40 + temp_r29));
|
||||
CharModelMotionDataClose(temp_r29);
|
||||
Hu3DModelPosSet(arg0->model[1], lbl_1_data_354[var_r30].x, lbl_1_data_354[lbl_1_bss_1C4.unk34[var_r30].unk18 - 1].y + 90.0f, lbl_1_data_354[var_r30].z - 15.0f);
|
||||
Hu3DModelRotSet(arg0->model[1], 0.0f, 0.0f, 0.0f);
|
||||
Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f);
|
||||
Hu3DModelShadowSet(arg0->model[1]);
|
||||
fn_1_1DCC(arg0, 1, 1, 0, 1);
|
||||
arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 62));
|
||||
Hu3DModelPosSet(arg0->model[2], lbl_1_data_354[var_r30].x, lbl_1_data_354[lbl_1_bss_1C4.unk34[var_r30].unk18 - 1].y, lbl_1_data_354[var_r30].z);
|
||||
if (lbl_1_bss_1C4.unk34[var_r30].unk18 == 4) {
|
||||
Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF);
|
||||
}
|
||||
Hu3DModelShadowMapSet(arg0->model[2]);
|
||||
Hu3DModelScaleSet(arg0->model[2], 1.5f, 1.0f, 1.5f);
|
||||
}
|
||||
|
||||
void fn_1_9718(omObjData* arg0, StructBss19C* arg1) {
|
||||
Vec sp20 = { 120.0f, 0.0f, 670.0f };
|
||||
|
||||
fn_1_2908(arg0, 1, sp20, -1.0f, 30.0f, 10.0f);
|
||||
lbl_1_bss_AC.unk04 = (void*) fn_1_A008;
|
||||
fn_1_1DCC(lbl_1_bss_174.unk00, 2, 2, 0, 0);
|
||||
fn_1_1DCC(arg0, 1, 2, 15, 1);
|
||||
fn_1_2CB0(arg0, 1, sp20, -45.0f, 30.0f, 10.0f);
|
||||
fn_1_1DCC(arg0, 1, 1, 15, 1);
|
||||
fn_1_2224(lbl_1_bss_174.unk00, 2, 2, 0);
|
||||
arg1->unk04 = 0;
|
||||
}
|
||||
|
||||
void fn_1_98A4(omObjData* arg0, StructBss19C* arg1) {
|
||||
if (arg0->motion[6] == Hu3DMotionIDGet(arg0->model[1]) && Hu3DMotionEndCheck(arg0->model[1])) {
|
||||
fn_1_1DCC(arg0, 1, 4, 15, 1);
|
||||
arg1->unk04 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_992C(void) {
|
||||
omObjData* temp_r3;
|
||||
s32 temp_r30;
|
||||
|
||||
temp_r30 = lbl_1_bss_1C4.unk14++;
|
||||
temp_r3 = omAddObjEx(lbl_1_bss_A8, 0x100, 16, 16, -1, NULL);
|
||||
lbl_1_bss_D4[temp_r30].unk00 = temp_r3;
|
||||
lbl_1_bss_D4[temp_r30].unk04 = NULL;
|
||||
lbl_1_bss_D4[temp_r30].unk00->data = &lbl_1_bss_D4[temp_r30];
|
||||
fn_1_9408(temp_r3, temp_r30);
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
if (lbl_1_bss_D4[temp_r30].unk04 != NULL) {
|
||||
lbl_1_bss_D4[temp_r30].unk04(temp_r3, &lbl_1_bss_D4[temp_r30]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_9D08(omObjData* arg0, s32 arg1) {
|
||||
s32 sp1C[] = {
|
||||
DATA_MAKE_NUM(DATADIR_MSTORY, 97),
|
||||
DATA_MAKE_NUM(DATADIR_MSTORY, 108),
|
||||
DATA_MAKE_NUM(DATADIR_MSTORY, 116),
|
||||
DATA_MAKE_NUM(DATADIR_MSTORY, 124),
|
||||
DATA_MAKE_NUM(DATADIR_MSTORY, 131)
|
||||
};
|
||||
s32 sp30[][5] = {
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY, 98), DATA_MAKE_NUM(DATADIR_MSTORY, 100), DATA_MAKE_NUM(DATADIR_MSTORY, 101), DATA_MAKE_NUM(DATADIR_MSTORY, 103), DATA_MAKE_NUM(DATADIR_MSTORY, 104) },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY, 109), DATA_MAKE_NUM(DATADIR_MSTORY, 111), DATA_MAKE_NUM(DATADIR_MSTORY, 112), DATA_MAKE_NUM(DATADIR_MSTORY, 114), DATA_MAKE_NUM(DATADIR_MSTORY, 115) },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY, 117), DATA_MAKE_NUM(DATADIR_MSTORY, 119), DATA_MAKE_NUM(DATADIR_MSTORY, 120), DATA_MAKE_NUM(DATADIR_MSTORY, 122), DATA_MAKE_NUM(DATADIR_MSTORY, 123) },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY, 125), DATA_MAKE_NUM(DATADIR_MSTORY, 126), DATA_MAKE_NUM(DATADIR_MSTORY, 127), DATA_MAKE_NUM(DATADIR_MSTORY, 129), DATA_MAKE_NUM(DATADIR_MSTORY, 130) },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY, 132), DATA_MAKE_NUM(DATADIR_MSTORY, 134), DATA_MAKE_NUM(DATADIR_MSTORY, 135), DATA_MAKE_NUM(DATADIR_MSTORY, 137), DATA_MAKE_NUM(DATADIR_MSTORY, 138) }
|
||||
};
|
||||
|
||||
arg0->model[1] = Hu3DModelCreateFile(sp1C[arg1]);
|
||||
arg0->motion[1] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][0]);
|
||||
arg0->motion[2] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][1]);
|
||||
arg0->motion[3] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][2]);
|
||||
arg0->motion[4] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][3]);
|
||||
arg0->motion[5] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][4]);
|
||||
Hu3DModelPosSet(arg0->model[1], -300.0f, 0.0f, 890.0f);
|
||||
Hu3DModelRotSet(arg0->model[1], 0.0f, 30.0f, 0.0f);
|
||||
Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f);
|
||||
if (arg1 == 3) {
|
||||
Hu3DData[arg0->model[1]].pos.y = 50.0f;
|
||||
}
|
||||
Hu3DModelShadowSet(arg0->model[1]);
|
||||
fn_1_1DCC(arg0, 1, 5, 0, 1);
|
||||
{
|
||||
s32 sp8[] = { 9, 14, 10, 11, 12 };
|
||||
|
||||
if (arg1 != 3) {
|
||||
CharModelEffectNpcInit(arg0->model[1], arg0->motion[2], 1, sp8[arg1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_A008(omObjData* arg0, StructBss19C* arg1) {
|
||||
Vec sp14 = { -120.0f, 0.0f, 670.0f };
|
||||
|
||||
fn_1_1DCC(arg0, 1, 2, 15, 1);
|
||||
fn_1_2CB0(arg0, 1, sp14, 45.0f, 60.0f, 10.0f);
|
||||
fn_1_1DCC(arg0, 1, 1, 15, 1);
|
||||
arg1->unk04 = 0;
|
||||
}
|
||||
|
||||
void fn_1_A0EC(void) {
|
||||
omObjData* temp_r3;
|
||||
s32 temp_r30;
|
||||
|
||||
temp_r3 = omAddObjEx(lbl_1_bss_A8, 0x100, 16, 16, -1, NULL);
|
||||
lbl_1_bss_AC.unk00 = temp_r3;
|
||||
lbl_1_bss_AC.unk04 = NULL;
|
||||
lbl_1_bss_AC.unk00->data = &lbl_1_bss_AC;
|
||||
temp_r30 = lbl_1_bss_1C4.unk00;
|
||||
fn_1_9D08(temp_r3, temp_r30);
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
if (lbl_1_bss_AC.unk04 != NULL) {
|
||||
lbl_1_bss_AC.unk04(temp_r3, &lbl_1_bss_AC);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_A478(void) {
|
||||
StructBss4* var_r31;
|
||||
|
||||
var_r31 = &lbl_1_bss_4;
|
||||
var_r31->unk08.x = 0.0f;
|
||||
var_r31->unk08.y = 170.0f;
|
||||
var_r31->unk08.z = 0.0f;
|
||||
var_r31->unk20.x = -5.0f;
|
||||
var_r31->unk20.y = 0.0f;
|
||||
var_r31->unk20.z = 0.0f;
|
||||
var_r31->unk38 = 1700.0f;
|
||||
}
|
||||
|
||||
void fn_1_A504(void) {
|
||||
StructBss4* var_r31;
|
||||
StructBss4 sp8;
|
||||
|
||||
var_r31 = &lbl_1_bss_4;
|
||||
sp8.unk08.x = 0.0f;
|
||||
sp8.unk08.y = 125.0f;
|
||||
sp8.unk08.z = 0.0f;
|
||||
sp8.unk20.x = -5.0f;
|
||||
sp8.unk20.y = 0.0f;
|
||||
sp8.unk20.z = 0.0f;
|
||||
sp8.unk38 = 1750.0f;
|
||||
fn_1_51D0(var_r31, &sp8, var_r31->unk40++, 60.0f, 30.0f);
|
||||
}
|
||||
|
||||
void fn_1_A5F4(void) {
|
||||
StructBss4* var_r31;
|
||||
StructBss4 sp8;
|
||||
|
||||
var_r31 = &lbl_1_bss_4;
|
||||
if (var_r31->unk40 == 50) {
|
||||
fn_1_1DCC(lbl_1_bss_174.unk00, 5, 5, 0, 0);
|
||||
fn_1_1DCC(lbl_1_bss_174.unk00, 6, 6, 0, 0);
|
||||
HuAudFXPlay(0xA1);
|
||||
}
|
||||
sp8.unk08.x = 0.0f;
|
||||
sp8.unk08.y = 130.0f;
|
||||
sp8.unk08.z = 460.0f;
|
||||
sp8.unk20.x = 0.0f;
|
||||
sp8.unk20.y = 0.0f;
|
||||
sp8.unk20.z = 0.0f;
|
||||
sp8.unk38 = 150.0f;
|
||||
fn_1_51D0(var_r31, &sp8, var_r31->unk40, 180.0f, 10.0f);
|
||||
if (var_r31->unk40++ >= 90) {
|
||||
if (var_r31->unk40 == 91) {
|
||||
lbl_1_bss_68 = HuAudFXPlay(0x21);
|
||||
}
|
||||
var_r31->unk20.x = fn_1_828(var_r31->unk20.x, -45.0f, var_r31->unk40 - 90, 90.0f);
|
||||
Hu3DData[lbl_1_bss_174.unk00->model[5]].rot.x = fn_1_828(0.0f, 45.0f, var_r31->unk40 - 90, 90.0f);
|
||||
}
|
||||
}
|
||||
817
src/REL/mstoryDll/board_miss.c
Executable file
817
src/REL/mstoryDll/board_miss.c
Executable file
|
|
@ -0,0 +1,817 @@
|
|||
#include "REL/mstoryDll.h"
|
||||
#include "game/armem.h"
|
||||
#include "game/audio.h"
|
||||
#include "game/board/main.h"
|
||||
#include "game/chrman.h"
|
||||
#include "game/data.h"
|
||||
#include "game/gamework_data.h"
|
||||
#include "game/hsfanim.h"
|
||||
#include "game/hsfman.h"
|
||||
#include "game/hsfmotion.h"
|
||||
#include "game/minigame_seq.h"
|
||||
#include "game/printfunc.h"
|
||||
#include "game/sprite.h"
|
||||
#include "game/window.h"
|
||||
#include "game/wipe.h"
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ s32 unk00;
|
||||
/* 0x004 */ s32 unk04;
|
||||
/* 0x008 */ s32 unk08;
|
||||
/* 0x00C */ s32 unk0C;
|
||||
/* 0x010 */ s32 unk10;
|
||||
/* 0x014 */ s32 unk14;
|
||||
/* 0x018 */ char unk18[0x1C];
|
||||
/* 0x034 */ StructFn352C unk34[4];
|
||||
/* 0x104 */ float unk104;
|
||||
} StructBss450; // Size 0x108
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s32 unk00;
|
||||
/* 0x04 */ s32 unk04;
|
||||
/* 0x08 */ s32 unk08;
|
||||
/* 0x0C */ char unk0C[4];
|
||||
/* 0x10 */ s32 unk10;
|
||||
/* 0x14 */ s32 unk14;
|
||||
} StructBss2D0; // Size 0x18
|
||||
|
||||
void fn_1_C360(void);
|
||||
void fn_1_C7C4(void);
|
||||
void fn_1_CE48(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4);
|
||||
void fn_1_CEF4(omObjData* arg0, StructBss19C* arg1);
|
||||
void fn_1_D180(void);
|
||||
void fn_1_D57C(s32 arg0);
|
||||
void fn_1_DAA4(omObjData* arg0, StructBss19C* arg1);
|
||||
void fn_1_DC08(omObjData* arg0, StructBss19C* arg1);
|
||||
void fn_1_DD20(omObjData* arg0, StructBss19C* arg1);
|
||||
void fn_1_DE04(void);
|
||||
void fn_1_E228(void);
|
||||
void fn_1_E2B4(void);
|
||||
void fn_1_E3E4(void);
|
||||
void fn_1_E620(void);
|
||||
|
||||
StructBss450 lbl_1_bss_450;
|
||||
StructBss19C lbl_1_bss_428;
|
||||
StructBss19C lbl_1_bss_400;
|
||||
StructBss19C lbl_1_bss_3D8;
|
||||
StructBss19C lbl_1_bss_338[4];
|
||||
AnimData* lbl_1_bss_330[2];
|
||||
StructBss2D0 lbl_1_bss_2D0[4];
|
||||
s32 lbl_1_bss_2CC;
|
||||
Process* lbl_1_bss_2C8;
|
||||
|
||||
s32 lbl_1_data_388[][4] = {
|
||||
{ MAKE_MESSID(30, 28), MAKE_MESSID(30, 33), MAKE_MESSID(30, 34), MAKE_MESSID(30, 5) },
|
||||
{ MAKE_MESSID(30, 29), MAKE_MESSID(30, 33), MAKE_MESSID(30, 34), MAKE_MESSID(30, 5) },
|
||||
{ MAKE_MESSID(30, 30), MAKE_MESSID(30, 33), MAKE_MESSID(30, 34), MAKE_MESSID(30, 5) },
|
||||
{ MAKE_MESSID(30, 31), MAKE_MESSID(30, 33), MAKE_MESSID(30, 34), MAKE_MESSID(30, 5) },
|
||||
{ MAKE_MESSID(30, 32), MAKE_MESSID(30, 33), MAKE_MESSID(30, 34), MAKE_MESSID(30, 5) }
|
||||
};
|
||||
|
||||
s32 lbl_1_data_3D8[] = {
|
||||
DATADIR_W01,
|
||||
DATADIR_W02,
|
||||
DATADIR_W03,
|
||||
DATADIR_W04,
|
||||
DATADIR_W05,
|
||||
DATADIR_W06,
|
||||
DATADIR_W10,
|
||||
DATADIR_MARIOMDL1,
|
||||
DATADIR_LUIGIMDL1,
|
||||
DATADIR_PEACHMDL1,
|
||||
DATADIR_YOSHIMDL1,
|
||||
DATADIR_WARIOMDL1,
|
||||
DATADIR_DONKEYMDL1,
|
||||
DATADIR_DAISYMDL1,
|
||||
DATADIR_WALUIGIMDL1
|
||||
};
|
||||
|
||||
void fn_1_A830(void) {
|
||||
s32 temp_r3;
|
||||
|
||||
temp_r3 = HuDataDirReadAsync(DATADIR_BOARD);
|
||||
if (temp_r3 != -1) {
|
||||
while (HuDataGetAsyncStat(temp_r3) == 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
HuAR_MRAMtoARAM(DATADIR_BOARD);
|
||||
while (HuARDMACheck()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuDataDirClose(DATADIR_BOARD);
|
||||
temp_r3 = HuDataDirReadAsync(lbl_1_data_3D8[GWSystem.board]);
|
||||
if (temp_r3 != -1) {
|
||||
while (HuDataGetAsyncStat(temp_r3) == 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
lbl_1_bss_2CC = 1;
|
||||
HuPrcEnd();
|
||||
while (TRUE) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_A8F8(void) {
|
||||
s32 i;
|
||||
s32 j;
|
||||
|
||||
lbl_1_bss_2D0[0].unk00 = 0;
|
||||
lbl_1_bss_2D0[0].unk04 = 0;
|
||||
lbl_1_bss_2D0[0].unk10 = lbl_1_bss_450.unk34[lbl_1_bss_450.unk04].unk10;
|
||||
lbl_1_bss_2D0[0].unk14 = lbl_1_bss_450.unk34[lbl_1_bss_450.unk04].unk14;
|
||||
lbl_1_bss_2D0[0].unk08 = 0;
|
||||
for (i = 1; i < 4; i++) {
|
||||
lbl_1_bss_2D0[i].unk10 = -1;
|
||||
lbl_1_bss_2D0[i].unk14 = i;
|
||||
lbl_1_bss_2D0[i].unk08 = 1;
|
||||
}
|
||||
for (i = 1; i < 4; i++) {
|
||||
do {
|
||||
lbl_1_bss_2D0[i].unk10 = rand8() % 8;
|
||||
for (j = 0; j < 4; j++) {
|
||||
if (i != j && lbl_1_bss_2D0[j].unk10 != -1 && lbl_1_bss_2D0[i].unk10 == lbl_1_bss_2D0[j].unk10) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
} while (j != 4);
|
||||
}
|
||||
for (i = 0; i < 4; i++) {
|
||||
GWPlayerCfg[i].character = lbl_1_bss_2D0[i].unk10;
|
||||
GWPlayerCfg[i].pad_idx = lbl_1_bss_2D0[i].unk14;
|
||||
GWPlayerCfg[i].group = 0;
|
||||
GWPlayerCfg[i].iscom = lbl_1_bss_2D0[i].unk08;
|
||||
}
|
||||
BoardSaveInit(GWSystem.board);
|
||||
CharKill(-1);
|
||||
HuDataDirClose(DATADIR_MSTORY);
|
||||
HuPrcChildCreate(fn_1_A830, 100, 0x3000, 0, lbl_1_bss_2C8);
|
||||
}
|
||||
|
||||
void fn_1_ABAC(void) {
|
||||
omOvlHisData* var_r30;
|
||||
s32 sp8[] = { OVL_W01, OVL_W02, OVL_W03, OVL_W04, OVL_W05, OVL_W06, OVL_W10 };
|
||||
|
||||
WipeColorSet(0xFF, 0xFF, 0xFF);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1);
|
||||
while (WipeStatGet() != 0) {
|
||||
fn_1_B8C();
|
||||
}
|
||||
CharModelKill(-1);
|
||||
MGSeqKillAll();
|
||||
var_r30 = omOvlHisGet(0);
|
||||
omOvlHisChg(0, OVL_MSTORY3, 0, var_r30->stat);
|
||||
do {
|
||||
fn_1_B8C();
|
||||
} while (lbl_1_bss_2CC != 1);
|
||||
CharARAMOpen(GWPlayerCfg[0].character);
|
||||
CharARAMOpen(GWPlayerCfg[1].character);
|
||||
CharARAMOpen(GWPlayerCfg[2].character);
|
||||
CharARAMOpen(GWPlayerCfg[3].character);
|
||||
HuAudSeqAllFadeOut(1000);
|
||||
HuAudSStreamAllFadeOut(1000);
|
||||
omOvlCallEx(sp8[GWSystem.board], 1, 0, 0);
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_ACFC(Process* arg0, s32 arg1, s32 arg2) {
|
||||
s32 i;
|
||||
|
||||
lbl_1_bss_2C8 = arg0;
|
||||
lbl_1_bss_450.unk04 = arg2;
|
||||
lbl_1_bss_450.unk10 = arg2;
|
||||
lbl_1_bss_450.unk00 = arg1;
|
||||
fn_1_BF4();
|
||||
fn_1_3618(0xFF);
|
||||
fn_1_27E8(lbl_1_bss_2C8, fn_1_E228);
|
||||
fn_1_3704();
|
||||
fn_1_D57C(arg2);
|
||||
HuPrcChildCreate(fn_1_C7C4, 100, 0x2000, 0, HuPrcCurrentGet());
|
||||
HuPrcChildCreate(fn_1_D180, 100, 0x2000, 0, HuPrcCurrentGet());
|
||||
for (i = 0; i < 4; i++) {
|
||||
HuPrcChildCreate(fn_1_DE04, 100, 0x2000, 0, HuPrcCurrentGet());
|
||||
}
|
||||
HuPrcChildCreate(fn_1_C360, 100, 0x2000, 0, HuPrcCurrentGet());
|
||||
}
|
||||
|
||||
void fn_1_AE30(omObjData* arg0) {
|
||||
if (arg0->work[2] != 0) {
|
||||
arg0->work[2]--;
|
||||
return;
|
||||
}
|
||||
if (arg0->work[2] == 0 && Hu3DMotionEndCheck(arg0->model[1])) {
|
||||
fn_1_1DCC(arg0, 1, arg0->work[1], 15, 1);
|
||||
arg0->work[0] = arg0->work[1] = arg0->work[2] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_AEBC(void) {
|
||||
s32 var_r30 = 16;
|
||||
s32 var_r29 = 40;
|
||||
GXColor sp10 = { 0x00, 0x00, 0x80, 0x80 };
|
||||
s32 i;
|
||||
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
printWin(var_r30, var_r29, 220, 160, &sp10);
|
||||
if (lbl_1_bss_428.unk04 == NULL) {
|
||||
print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> FALSE");
|
||||
} else {
|
||||
print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> TRUE");
|
||||
}
|
||||
if (lbl_1_bss_400.unk04 == NULL) {
|
||||
print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> FALSE");
|
||||
} else {
|
||||
print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> TRUE");
|
||||
}
|
||||
if (lbl_1_bss_3D8.unk04 == NULL) {
|
||||
print8(var_r30, var_r29 + 30, 1.0f, "PROC_MKOOPA -> FALSE");
|
||||
} else {
|
||||
print8(var_r30, var_r29 + 30, 1.0f, "PROC_MKOOPA -> TRUE");
|
||||
}
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (lbl_1_bss_338[i].unk04 == NULL) {
|
||||
print8(var_r30, i * 10 + (var_r29 + 40), 1.0f, "PROC_PLAYER%d -> FALSE", i);
|
||||
} else {
|
||||
print8(var_r30, i * 10 + (var_r29 + 40), 1.0f, "PROC_PLAYER%d -> TRUE", i);
|
||||
}
|
||||
}
|
||||
print8(var_r30, var_r29 + 90, 1.0f, "P:%d W:%d", lbl_1_bss_450.unk04, lbl_1_bss_450.unk10);
|
||||
print8(var_r30, var_r29 + 110, 1.0f, "NO) IDX:GRP:COM:DIF:PAD:CHR");
|
||||
for (i = 0; i < 4; i++) {
|
||||
print8(var_r30, var_r29 + 120 + i * 10, 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i,
|
||||
lbl_1_bss_450.unk34[i].unk00, lbl_1_bss_450.unk34[i].unk04, lbl_1_bss_450.unk34[i].unk08,
|
||||
lbl_1_bss_450.unk34[i].unk0C, lbl_1_bss_450.unk34[i].unk14, lbl_1_bss_450.unk34[i].unk10);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_B230(void) {
|
||||
lbl_1_bss_58[0] = HuAudSeqPlay(0x34);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1);
|
||||
do {
|
||||
fn_1_B8C();
|
||||
} while (WipeStatGet() != 0);
|
||||
fn_1_BAC(60);
|
||||
}
|
||||
|
||||
void fn_1_B28C(void) {
|
||||
s32 i;
|
||||
|
||||
HuAudFXPlay(lbl_1_data_0[lbl_1_bss_450.unk00][1]);
|
||||
lbl_1_bss_450.unk08 = fn_1_1834(0, 0, 21, 2, lbl_1_bss_450.unk10);
|
||||
fn_1_CE48(3, -1, 15, 1, 0);
|
||||
fn_1_1CE8(lbl_1_bss_450.unk08, lbl_1_data_388[lbl_1_bss_450.unk00][0]);
|
||||
fn_1_1ACC(lbl_1_bss_450.unk08, -1);
|
||||
fn_1_1CE8(lbl_1_bss_450.unk08, MAKE_MESSID(37, 4));
|
||||
fn_1_CE48(1, -1, 15, 1, 0);
|
||||
fn_1_1A64(lbl_1_bss_450.unk08);
|
||||
for (i = 0; i < 4; i++) {
|
||||
lbl_1_bss_338[i].unk04 = (void*) fn_1_DAA4;
|
||||
}
|
||||
do {
|
||||
fn_1_B8C();
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (lbl_1_bss_338[i].unk04 != NULL) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
} while (i != 4);
|
||||
lbl_1_bss_338[lbl_1_bss_450.unk04].unk04 = (void*) fn_1_DC08;
|
||||
fn_1_3804(&lbl_1_bss_4);
|
||||
fn_1_2710(fn_1_E2B4);
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
if (lbl_1_bss_338[lbl_1_bss_450.unk04].unk04 == NULL) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
if (lbl_1_bss_3D8.unk04 == NULL) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
fn_1_BAC(30);
|
||||
}
|
||||
|
||||
BOOL fn_1_B4A0(void) {
|
||||
BOOL temp_r31 = FALSE;
|
||||
|
||||
fn_1_1CE8(lbl_1_bss_450.unk08, lbl_1_data_388[lbl_1_bss_450.unk00][1]);
|
||||
fn_1_1ACC(lbl_1_bss_450.unk08, 5);
|
||||
lbl_1_bss_450.unk0C = fn_1_6EB8(MAKE_MESSID(30, 53), lbl_1_bss_450.unk10);
|
||||
fn_1_1CE8(lbl_1_bss_450.unk0C, MAKE_MESSID(30, 53));
|
||||
temp_r31 = fn_1_1C34(lbl_1_bss_450.unk0C);
|
||||
fn_1_1CE8(lbl_1_bss_450.unk0C, MAKE_MESSID(37, 4));
|
||||
fn_1_7028(lbl_1_bss_450.unk0C);
|
||||
return temp_r31;
|
||||
}
|
||||
|
||||
BOOL fn_1_B588(void) {
|
||||
BOOL temp_r31 = FALSE;
|
||||
|
||||
fn_1_1CE8(lbl_1_bss_450.unk08, lbl_1_data_388[lbl_1_bss_450.unk00][2]);
|
||||
fn_1_1ACC(lbl_1_bss_450.unk08, 5);
|
||||
lbl_1_bss_450.unk0C = fn_1_6EB8(MAKE_MESSID(30, 53), lbl_1_bss_450.unk10);
|
||||
fn_1_1CE8(lbl_1_bss_450.unk0C, MAKE_MESSID(30, 53));
|
||||
temp_r31 = fn_1_1C34(lbl_1_bss_450.unk0C);
|
||||
fn_1_1CE8(lbl_1_bss_450.unk0C, MAKE_MESSID(37, 4));
|
||||
fn_1_7028(lbl_1_bss_450.unk0C);
|
||||
return temp_r31;
|
||||
}
|
||||
|
||||
BOOL fn_1_B670(void) {
|
||||
BOOL temp_r31 = FALSE;
|
||||
|
||||
fn_1_CE48(3, -1, 15, 1, 0);
|
||||
fn_1_1CE8(lbl_1_bss_450.unk08, lbl_1_data_388[lbl_1_bss_450.unk00][3]);
|
||||
fn_1_1ACC(lbl_1_bss_450.unk08, 5);
|
||||
fn_1_CE48(1, -1, 15, 1, 0);
|
||||
lbl_1_bss_450.unk0C = fn_1_6EB8(MAKE_MESSID(30, 53), lbl_1_bss_450.unk10);
|
||||
fn_1_1CE8(lbl_1_bss_450.unk0C, MAKE_MESSID(30, 53));
|
||||
temp_r31 = fn_1_1B78(lbl_1_bss_450.unk0C, 1);
|
||||
fn_1_1CE8(lbl_1_bss_450.unk0C, MAKE_MESSID(37, 4));
|
||||
fn_1_7028(lbl_1_bss_450.unk0C);
|
||||
return temp_r31;
|
||||
}
|
||||
|
||||
void fn_1_B78C(void) {
|
||||
fn_1_BAC(60);
|
||||
fn_1_A8F8();
|
||||
Hu3DModelAttrReset(lbl_1_bss_400.unk00->model[5], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrReset(lbl_1_bss_400.unk00->model[6], HU3D_ATTR_DISPOFF);
|
||||
fn_1_1DCC(lbl_1_bss_400.unk00, 2, 3, 0, 0);
|
||||
fn_1_BAC(30);
|
||||
fn_1_1DCC(lbl_1_bss_3D8.unk00, 1, 4, 15, 0);
|
||||
fn_1_BAC(30);
|
||||
fn_1_1DCC(lbl_1_bss_338[lbl_1_bss_450.unk04].unk00, 1, 3, 15, 0);
|
||||
fn_1_2224(lbl_1_bss_400.unk00, 2, 3, 0);
|
||||
fn_1_BAC(60);
|
||||
HuAudSeqFadeOut(lbl_1_bss_58[0], 3000);
|
||||
fn_1_3804(&lbl_1_bss_4);
|
||||
fn_1_2710(fn_1_E3E4);
|
||||
fn_1_BAC(150);
|
||||
}
|
||||
|
||||
void fn_1_B8C8(void) {
|
||||
}
|
||||
|
||||
void fn_1_B8CC(void) {
|
||||
fn_1_1DCC(lbl_1_bss_400.unk00, 2, 3, 0, 0);
|
||||
fn_1_2224(lbl_1_bss_400.unk00, 2, 3, 0);
|
||||
fn_1_3804(&lbl_1_bss_4);
|
||||
fn_1_2710(fn_1_E620);
|
||||
lbl_1_bss_3D8.unk04 = (void*) fn_1_CEF4;
|
||||
lbl_1_bss_338[lbl_1_bss_450.unk04].unk04 = (void*) fn_1_DD20;
|
||||
do {
|
||||
fn_1_B8C();
|
||||
} while (lbl_1_bss_3D8.unk04 != NULL);
|
||||
fn_1_1DCC(lbl_1_bss_400.unk00, 2, 2, 0, 0);
|
||||
fn_1_2224(lbl_1_bss_400.unk00, 2, 2, 0);
|
||||
}
|
||||
|
||||
void fn_1_B9D0(s32 arg0) {
|
||||
s32 i;
|
||||
|
||||
fn_1_BAC(60);
|
||||
HuAudSeqFadeOut(lbl_1_bss_58[0], 1000);
|
||||
WipeColorSet(0xFF, 0xFF, 0xFF);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1);
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
if (WipeStatGet() == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
CharModelKill(-1);
|
||||
HuAudFadeOut(1);
|
||||
if (arg0 == 1) {
|
||||
omOvlReturnEx(1, 1);
|
||||
} else {
|
||||
GWPlayerCfg->group = 0;
|
||||
GWPlayerCfg->character = lbl_1_bss_450.unk34[lbl_1_bss_450.unk04].unk10;
|
||||
GWPlayerCfg->pad_idx = lbl_1_bss_450.unk34[lbl_1_bss_450.unk04].unk14;
|
||||
GWPlayerCfg->iscom = 0;
|
||||
for (i = 0; i < 4; i++) {
|
||||
GWPlayer[i].character = GWPlayerCfg[i].character;
|
||||
GWPlayer[i].port = GWPlayerCfg[i].pad_idx;
|
||||
GWPlayer[i].com = GWPlayerCfg[i].iscom;
|
||||
GWPlayer[i].team = GWPlayerCfg[i].group;
|
||||
}
|
||||
omOvlGotoEx(OVL_MENT, 1, 10, 0);
|
||||
}
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_BBD8(s32 arg0, StructBss19C* arg1) {
|
||||
s32 i;
|
||||
s32 var_r30 = 0;
|
||||
|
||||
fn_1_B230();
|
||||
fn_1_B28C();
|
||||
lbl_1_bss_450.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_450.unk10);
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
if (fn_1_B4A0()) {
|
||||
var_r30 = 0;
|
||||
break;
|
||||
}
|
||||
if (fn_1_B588()) {
|
||||
var_r30 = 2;
|
||||
break;
|
||||
}
|
||||
if (fn_1_B670()) {
|
||||
var_r30 = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
fn_1_1A64(lbl_1_bss_450.unk08);
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (lbl_1_bss_450.unk34[i].unk00 != lbl_1_bss_450.unk34[lbl_1_bss_450.unk04].unk00) {
|
||||
Hu3DModelAttrSet(lbl_1_bss_338[i].unk00->model[1], HU3D_ATTR_DISPOFF);
|
||||
}
|
||||
Hu3DModelAttrSet(lbl_1_bss_338[i].unk00->model[2], HU3D_ATTR_DISPOFF);
|
||||
}
|
||||
switch (var_r30) {
|
||||
case 1:
|
||||
fn_1_B8C8();
|
||||
break;
|
||||
case 0:
|
||||
fn_1_B78C();
|
||||
break;
|
||||
case 2:
|
||||
fn_1_B8CC();
|
||||
break;
|
||||
}
|
||||
switch (var_r30) {
|
||||
case 0:
|
||||
fn_1_ABAC();
|
||||
break;
|
||||
case 1:
|
||||
case 2:
|
||||
fn_1_B9D0(var_r30);
|
||||
/* fallthrough */
|
||||
default:
|
||||
arg1->unk04 = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_C360(void) {
|
||||
omObjData* temp_r3;
|
||||
|
||||
temp_r3 = omAddObjEx(lbl_1_bss_2C8, 0x100, 16, 16, -1, NULL);
|
||||
lbl_1_bss_428.unk00 = temp_r3;
|
||||
lbl_1_bss_428.unk04 = (void*) fn_1_BBD8;
|
||||
lbl_1_bss_428.unk00->data = &lbl_1_bss_428;
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
if (lbl_1_bss_428.unk04 != NULL) {
|
||||
lbl_1_bss_428.unk04(temp_r3, &lbl_1_bss_428);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_C414(omObjData* arg0, s32 arg1) {
|
||||
arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 56));
|
||||
arg0->motion[0] = Hu3DMotionIDGet(arg0->model[1]);
|
||||
fn_1_1DCC(arg0, 1, 0, 0, 2);
|
||||
Hu3DModelShadowMapObjSet(arg0->model[1], "base_fix9-base");
|
||||
arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 59));
|
||||
arg0->motion[2] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 60));
|
||||
arg0->motion[3] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 61));
|
||||
fn_1_1DCC(arg0, 2, 2, 0, 2);
|
||||
arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 57));
|
||||
arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 63));
|
||||
arg0->motion[5] = Hu3DMotionIDGet(arg0->model[5]);
|
||||
Hu3DModelPosSet(arg0->model[5], 0.0f, 80.0f, 460.0f);
|
||||
Hu3DModelAttrSet(arg0->model[5], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelShadowSet(arg0->model[5]);
|
||||
fn_1_1DCC(arg0, 5, 5, 0, 2);
|
||||
arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 64));
|
||||
arg0->motion[6] = Hu3DMotionIDGet(arg0->model[6]);
|
||||
Hu3DModelHookSet(arg0->model[5], "partybox_fix2-effect_fook1", arg0->model[6]);
|
||||
Hu3DModelAttrSet(arg0->model[6], HU3D_ATTR_DISPOFF);
|
||||
fn_1_1DCC(arg0, 6, 6, 0, 2);
|
||||
lbl_1_bss_330[0] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY, 65 + arg1 * 2), MEMORY_DEFAULT_NUM));
|
||||
lbl_1_bss_330[1] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY, 66 + arg1 * 2), MEMORY_DEFAULT_NUM));
|
||||
Hu3DAnimCreate(lbl_1_bss_330[0], lbl_1_bss_400.unk00->model[5], "ys26_p0");
|
||||
Hu3DAnimCreate(lbl_1_bss_330[1], lbl_1_bss_400.unk00->model[5], "ys26_p1");
|
||||
}
|
||||
|
||||
void fn_1_C708(omObjData* arg0, StructBss19C* arg1) {
|
||||
Hu3DData[arg0->model[5]].pos.y = fn_1_ACC(80.0f, 90.0f, arg1->unk08++, 360.0f);
|
||||
if (arg1->unk08 >= 360) {
|
||||
arg1->unk08 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_C7C4(void) {
|
||||
omObjData* temp_r3;
|
||||
|
||||
temp_r3 = omAddObjEx(lbl_1_bss_2C8, 0x100, 16, 16, -1, NULL);
|
||||
lbl_1_bss_400.unk00 = temp_r3;
|
||||
lbl_1_bss_400.unk04 = (void*) fn_1_C708;
|
||||
lbl_1_bss_400.unk00->data = &lbl_1_bss_400;
|
||||
fn_1_C414(temp_r3, lbl_1_bss_450.unk00);
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
if (lbl_1_bss_400.unk04 != NULL) {
|
||||
lbl_1_bss_400.unk04(temp_r3, &lbl_1_bss_400);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_CB48(omObjData* arg0, s32 arg1) {
|
||||
s32 sp1C[] = {
|
||||
DATA_MAKE_NUM(DATADIR_MSTORY, 0x61),
|
||||
DATA_MAKE_NUM(DATADIR_MSTORY, 0x6C),
|
||||
DATA_MAKE_NUM(DATADIR_MSTORY, 0x74),
|
||||
DATA_MAKE_NUM(DATADIR_MSTORY, 0x7C),
|
||||
DATA_MAKE_NUM(DATADIR_MSTORY, 0x83)
|
||||
};
|
||||
s32 sp30[][5] = {
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x62), DATA_MAKE_NUM(DATADIR_MSTORY, 0x64), DATA_MAKE_NUM(DATADIR_MSTORY, 0x65), DATA_MAKE_NUM(DATADIR_MSTORY, 0x67), DATA_MAKE_NUM(DATADIR_MSTORY, 0x68) },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x6D), DATA_MAKE_NUM(DATADIR_MSTORY, 0x6F), DATA_MAKE_NUM(DATADIR_MSTORY, 0x70), DATA_MAKE_NUM(DATADIR_MSTORY, 0x72), DATA_MAKE_NUM(DATADIR_MSTORY, 0x73) },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x75), DATA_MAKE_NUM(DATADIR_MSTORY, 0x77), DATA_MAKE_NUM(DATADIR_MSTORY, 0x78), DATA_MAKE_NUM(DATADIR_MSTORY, 0x7A), DATA_MAKE_NUM(DATADIR_MSTORY, 0x7B) },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x7D), DATA_MAKE_NUM(DATADIR_MSTORY, 0x7E), DATA_MAKE_NUM(DATADIR_MSTORY, 0x7F), DATA_MAKE_NUM(DATADIR_MSTORY, 0x81), DATA_MAKE_NUM(DATADIR_MSTORY, 0x82) },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x84), DATA_MAKE_NUM(DATADIR_MSTORY, 0x86), DATA_MAKE_NUM(DATADIR_MSTORY, 0x87), DATA_MAKE_NUM(DATADIR_MSTORY, 0x89), DATA_MAKE_NUM(DATADIR_MSTORY, 0x8A) }
|
||||
};
|
||||
|
||||
arg0->model[1] = Hu3DModelCreateFile(sp1C[arg1]);
|
||||
arg0->motion[1] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][0]);
|
||||
arg0->motion[2] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][1]);
|
||||
arg0->motion[3] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][2]);
|
||||
arg0->motion[4] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][3]);
|
||||
arg0->motion[5] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][4]);
|
||||
Hu3DModelPosSet(arg0->model[1], -300.0f, 0.0f, 890.0f);
|
||||
Hu3DModelRotSet(arg0->model[1], 0.0f, 30.0f, 0.0f);
|
||||
Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f);
|
||||
if (arg1 == 3) {
|
||||
Hu3DData[arg0->model[1]].pos.y = 50.0f;
|
||||
}
|
||||
Hu3DModelShadowSet(arg0->model[1]);
|
||||
fn_1_1DCC(arg0, 1, 1, 0, 1);
|
||||
{
|
||||
s32 sp8[] = { 9, 14, 10, 11, 12 };
|
||||
|
||||
if (arg1 != 3) {
|
||||
CharModelEffectNpcInit(arg0->model[1], arg0->motion[2], 1, sp8[arg1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_CE48(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) {
|
||||
fn_1_1DCC(lbl_1_bss_3D8.unk00, 1, arg0, arg2, arg3);
|
||||
if (arg3 == 1) {
|
||||
arg4 = 0;
|
||||
}
|
||||
lbl_1_bss_3D8.unk00->work[0] = arg4;
|
||||
lbl_1_bss_3D8.unk00->work[1] = arg1;
|
||||
lbl_1_bss_3D8.unk00->work[2] = arg2 + 1;
|
||||
}
|
||||
|
||||
void fn_1_CEF4(omObjData* arg0, StructBss19C* arg1) {
|
||||
Vec sp14 = { 0.0f, 0.0f, 460.0f };
|
||||
|
||||
fn_1_1DCC(arg0, 1, 2, 15, 1);
|
||||
fn_1_2CB0(arg0, 1, sp14, 0.0f, 60.0f, 10.0f);
|
||||
fn_1_1DCC(arg0, 1, 1, 15, 1);
|
||||
arg1->unk04 = 0;
|
||||
}
|
||||
|
||||
void fn_1_CFD8(omObjData* arg0, StructBss19C* arg1) {
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < 15; i++) {
|
||||
fn_1_B8C();
|
||||
Hu3DData[arg0->model[1]].rot.y = fn_1_828(0.0f, 135.0f, i, 15.0f);
|
||||
}
|
||||
arg1->unk04 = 0;
|
||||
}
|
||||
|
||||
void fn_1_D09C(omObjData* arg0, StructBss19C* arg1) {
|
||||
Vec sp14 = { -120.0f, 0.0f, 670.0f };
|
||||
|
||||
fn_1_1DCC(arg0, 1, 2, 15, 1);
|
||||
fn_1_2CB0(arg0, 1, sp14, 45.0f, 60.0f, 10.0f);
|
||||
fn_1_1DCC(arg0, 1, 1, 15, 1);
|
||||
arg1->unk04 = 0;
|
||||
}
|
||||
|
||||
void fn_1_D180(void) {
|
||||
omObjData* temp_r3;
|
||||
|
||||
temp_r3 = omAddObjEx(lbl_1_bss_2C8, 0x100, 16, 16, -1, NULL);
|
||||
lbl_1_bss_3D8.unk00 = temp_r3;
|
||||
lbl_1_bss_3D8.unk04 = NULL;
|
||||
lbl_1_bss_3D8.unk00->data = &lbl_1_bss_3D8;
|
||||
fn_1_CB48(temp_r3, lbl_1_bss_450.unk00);
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
if (lbl_1_bss_3D8.unk04 != NULL) {
|
||||
lbl_1_bss_3D8.unk04(temp_r3, &lbl_1_bss_3D8);
|
||||
}
|
||||
if (temp_r3->work[0] != 0) {
|
||||
fn_1_AE30(temp_r3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_D57C(s32 arg0) {
|
||||
s32 spC[4];
|
||||
s32 i;
|
||||
|
||||
spC[0] = 0;
|
||||
for (i = 1; i < 4; i++) {
|
||||
spC[i] = spC[i - 1] + 1;
|
||||
if (spC[i] >= 4) {
|
||||
spC[i] = 0;
|
||||
}
|
||||
if (arg0 == spC[i]) {
|
||||
lbl_1_bss_450.unk04 = i;
|
||||
}
|
||||
}
|
||||
for (i = 0; i < 4; i++) {
|
||||
fn_1_352C(&lbl_1_bss_450.unk34[i], spC[i]);
|
||||
}
|
||||
for (i = 0; i < 4; i++) {
|
||||
lbl_1_bss_450.unk34[i].unk18 = GWPlayer[spC[i]].rank + 1;
|
||||
}
|
||||
}
|
||||
|
||||
Vec lbl_1_data_540[] = {
|
||||
{ -300.0f, 0.0f, 460.0f },
|
||||
{ -100.0f, -30.0f, 460.0f },
|
||||
{ 100.0f, -60.0f, 460.0f },
|
||||
{ 300.0f, -90.0f, 460.0f }
|
||||
};
|
||||
|
||||
void fn_1_D6B0(omObjData* arg0, s32 arg1) {
|
||||
s32 var_r30;
|
||||
s32 temp_r28;
|
||||
|
||||
var_r30 = arg1;
|
||||
temp_r28 = lbl_1_bss_450.unk34[var_r30].unk10;
|
||||
arg0->model[1] = CharModelCreate(lbl_1_bss_450.unk34[arg1].unk10, 4);
|
||||
arg0->motion[1] = CharModelMotionCreate(lbl_1_bss_450.unk34[arg1].unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0));
|
||||
arg0->motion[2] = CharModelMotionCreate(lbl_1_bss_450.unk34[arg1].unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 3));
|
||||
arg0->motion[3] = CharModelMotionCreate(lbl_1_bss_450.unk34[arg1].unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 109));
|
||||
CharModelMotionDataClose(temp_r28);
|
||||
Hu3DModelPosSet(arg0->model[1], lbl_1_data_540[var_r30].x, 90.0f + lbl_1_data_540[lbl_1_bss_450.unk34[var_r30].unk18 - 1].y, lbl_1_data_540[var_r30].z - 15.0f);
|
||||
Hu3DModelRotSet(arg0->model[1], 0.0f, 0.0f, 0.0f);
|
||||
Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f);
|
||||
Hu3DModelShadowSet(arg0->model[1]);
|
||||
fn_1_1DCC(arg0, 1, 1, 0, 1);
|
||||
arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 62));
|
||||
Hu3DModelPosSet(arg0->model[2], lbl_1_data_540[var_r30].x, lbl_1_data_540[lbl_1_bss_450.unk34[var_r30].unk18 - 1].y, lbl_1_data_540[var_r30].z);
|
||||
if (lbl_1_bss_450.unk34[var_r30].unk18 == 4) {
|
||||
Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF);
|
||||
}
|
||||
Hu3DModelScaleSet(arg0->model[2], 1.5f, 1.0f, 1.5f);
|
||||
Hu3DModelShadowMapSet(arg0->model[2]);
|
||||
}
|
||||
|
||||
void fn_1_D9A8(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) {
|
||||
fn_1_1DCC(lbl_1_bss_338[lbl_1_bss_450.unk04].unk00, 1, arg0, arg2, arg3);
|
||||
if (arg3 == 1) {
|
||||
arg4 = 0;
|
||||
}
|
||||
lbl_1_bss_338[lbl_1_bss_450.unk04].unk00->work[0] = arg4;
|
||||
lbl_1_bss_338[lbl_1_bss_450.unk04].unk00->work[1] = arg1;
|
||||
lbl_1_bss_338[lbl_1_bss_450.unk04].unk00->work[2] = arg2 + 1;
|
||||
}
|
||||
|
||||
void fn_1_DAA4(omObjData* arg0, StructBss19C* arg1) {
|
||||
float temp_f31;
|
||||
s32 i;
|
||||
|
||||
temp_f31 = Hu3DData[arg0->model[1]].pos.y;
|
||||
for (i = 0; i < 60; i++) {
|
||||
fn_1_B8C();
|
||||
Hu3DData[arg0->model[1]].pos.y = fn_1_948(temp_f31, 0.0f, i, 60.0f);
|
||||
Hu3DData[arg0->model[2]].pos.y = fn_1_948(temp_f31 - 90.0f, -90.0f, i, 60.0f);
|
||||
}
|
||||
Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF);
|
||||
arg1->unk04 = 0;
|
||||
}
|
||||
|
||||
void fn_1_DC08(omObjData* arg0, StructBss19C* arg1) {
|
||||
Vec sp14 = { 120.0f, 0.0f, 670.0f };
|
||||
|
||||
lbl_1_bss_3D8.unk04 = (void*) fn_1_D09C;
|
||||
fn_1_1DCC(lbl_1_bss_400.unk00, 2, 2, 0, 0);
|
||||
fn_1_1DCC(arg0, 1, 2, 15, 1);
|
||||
fn_1_2CB0(arg0, 1, sp14, -45.0f, 30.0f, 10.0f);
|
||||
fn_1_1DCC(arg0, 1, 1, 15, 1);
|
||||
arg1->unk04 = 0;
|
||||
}
|
||||
|
||||
void fn_1_DD20(omObjData* arg0, StructBss19C* arg1) {
|
||||
Vec sp14 = { 600.0f, 0.0f, 700.0f };
|
||||
|
||||
fn_1_1DCC(arg0, 1, 2, 15, 1);
|
||||
fn_1_2CB0(arg0, 1, sp14, -45.0f, 30.0f, 10.0f);
|
||||
fn_1_1DCC(arg0, 1, 1, 15, 1);
|
||||
arg1->unk04 = 0;
|
||||
}
|
||||
|
||||
void fn_1_DE04(void) {
|
||||
omObjData* temp_r3;
|
||||
s32 temp_r30;
|
||||
|
||||
temp_r30 = lbl_1_bss_450.unk14++;
|
||||
temp_r3 = omAddObjEx(lbl_1_bss_2C8, 0x100, 16, 16, -1, NULL);
|
||||
lbl_1_bss_338[temp_r30].unk00 = temp_r3;
|
||||
lbl_1_bss_338[temp_r30].unk04 = NULL;
|
||||
lbl_1_bss_338[temp_r30].unk00->data = lbl_1_bss_338;
|
||||
fn_1_D6B0(temp_r3, temp_r30);
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
if (lbl_1_bss_338[temp_r30].unk04 != NULL) {
|
||||
lbl_1_bss_338[temp_r30].unk04(temp_r3, &lbl_1_bss_338[temp_r30]);
|
||||
}
|
||||
if (temp_r3->work[0] != 0) {
|
||||
fn_1_AE30(temp_r3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_E228(void) {
|
||||
StructBss4* var_r31;
|
||||
|
||||
var_r31 = &lbl_1_bss_4;
|
||||
var_r31->unk08.x = 0.0f;
|
||||
var_r31->unk08.y = 170.0f;
|
||||
var_r31->unk08.z = 0.0f;
|
||||
var_r31->unk20.x = -5.0f;
|
||||
var_r31->unk20.y = 0.0f;
|
||||
var_r31->unk20.z = 0.0f;
|
||||
var_r31->unk38 = 1700.0f;
|
||||
}
|
||||
|
||||
void fn_1_E2B4(void) {
|
||||
StructBss4* var_r31;
|
||||
StructBss4 sp8;
|
||||
|
||||
var_r31 = &lbl_1_bss_4;
|
||||
sp8.unk08.x = 0.0f;
|
||||
sp8.unk08.y = 125.0f;
|
||||
sp8.unk08.z = 0.0f;
|
||||
sp8.unk20.x = -5.0f;
|
||||
sp8.unk20.y = 0.0f;
|
||||
sp8.unk20.z = 0.0f;
|
||||
sp8.unk38 = 1750.0f;
|
||||
fn_1_51D0(var_r31, &sp8, var_r31->unk40++, 60.0f, 30.0f);
|
||||
if (lbl_1_bss_450.unk104 != 0.0f) {
|
||||
var_r31->unk08.y = 125.0f + lbl_1_bss_450.unk104;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_E3E4(void) {
|
||||
StructBss4* var_r31;
|
||||
StructBss4 sp8;
|
||||
|
||||
var_r31 = &lbl_1_bss_4;
|
||||
if (var_r31->unk40 == 50) {
|
||||
fn_1_1DCC(lbl_1_bss_400.unk00, 5, 5, 0, 0);
|
||||
fn_1_1DCC(lbl_1_bss_400.unk00, 6, 6, 0, 0);
|
||||
HuAudFXPlay(0xA1);
|
||||
}
|
||||
sp8.unk08.x = 0.0f;
|
||||
sp8.unk08.y = 100.0f;
|
||||
sp8.unk08.z = 460.0f;
|
||||
sp8.unk20.x = 0.0f;
|
||||
sp8.unk20.y = 0.0f;
|
||||
sp8.unk20.z = 0.0f;
|
||||
sp8.unk38 = 125.0f;
|
||||
fn_1_51D0(var_r31, &sp8, var_r31->unk40, 180.0f, 10.0f);
|
||||
if (var_r31->unk40++ >= 90) {
|
||||
if (var_r31->unk40 == 91) {
|
||||
lbl_1_bss_68 = HuAudFXPlay(0x21);
|
||||
}
|
||||
var_r31->unk20.x = fn_1_828(var_r31->unk20.x, -45.0f, var_r31->unk40 - 90, 90.0f);
|
||||
Hu3DData[lbl_1_bss_400.unk00->model[5]].rot.x = fn_1_828(0.0f, 45.0f, var_r31->unk40 - 90, 90.0f);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_E620(void) {
|
||||
StructBss4* var_r31;
|
||||
StructBss4 sp8;
|
||||
|
||||
var_r31 = &lbl_1_bss_4;
|
||||
sp8.unk08.x = 0.0f;
|
||||
sp8.unk08.y = 220.0f;
|
||||
sp8.unk08.z = 0.0f;
|
||||
sp8.unk20.x = 0.0f;
|
||||
sp8.unk20.y = 0.0f;
|
||||
sp8.unk20.z = 0.0f;
|
||||
sp8.unk38 = 1600.0f;
|
||||
fn_1_51D0(var_r31, &sp8, var_r31->unk40++, 60.0f, 30.0f);
|
||||
}
|
||||
1012
src/REL/mstoryDll/main.c
Executable file
1012
src/REL/mstoryDll/main.c
Executable file
File diff suppressed because it is too large
Load diff
691
src/REL/mstoryDll/mg_clear.c
Executable file
691
src/REL/mstoryDll/mg_clear.c
Executable file
|
|
@ -0,0 +1,691 @@
|
|||
#include "REL/mstoryDll.h"
|
||||
#include "game/chrman.h"
|
||||
#include "game/data.h"
|
||||
#include "game/flag.h"
|
||||
#include "game/gamework.h"
|
||||
#include "game/hsfman.h"
|
||||
#include "game/hsfmotion.h"
|
||||
#include "game/objsub.h"
|
||||
#include "game/printfunc.h"
|
||||
#include "game/saveload.h"
|
||||
#include "game/sprite.h"
|
||||
#include "game/window.h"
|
||||
#include "game/wipe.h"
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ s32 unk00;
|
||||
/* 0x004 */ s32 unk04;
|
||||
/* 0x008 */ s32 unk08;
|
||||
/* 0x00C */ char unk0C[4];
|
||||
/* 0x010 */ s32 unk10;
|
||||
/* 0x014 */ char unk14[0x20];
|
||||
/* 0x034 */ StructFn352C unk34[4];
|
||||
/* 0x104 */ s32 unk104;
|
||||
} StructBss608; // Size 0x108
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s32 unk00;
|
||||
/* 0x04 */ s32 unk04;
|
||||
/* 0x08 */ s32 unk08;
|
||||
/* 0x0C */ s32 unk0C;
|
||||
/* 0x10 */ s32 unk10;
|
||||
} StructData570; // Size 0x14
|
||||
|
||||
void fn_1_FD1C(void);
|
||||
void fn_1_10298(omObjData* arg0, StructBss19C* arg1);
|
||||
void fn_1_10384(omObjData* arg0, StructBss19C* arg1);
|
||||
void fn_1_10450(omObjData* arg0, StructBss19C* arg1);
|
||||
void fn_1_1054C(void);
|
||||
void fn_1_108F8(void);
|
||||
void fn_1_10C6C(s32 arg0);
|
||||
void fn_1_10FD0(void);
|
||||
void fn_1_112A0(void);
|
||||
void fn_1_1132C(void);
|
||||
void fn_1_1141C(void);
|
||||
void fn_1_11534(void);
|
||||
|
||||
StructBss608 lbl_1_bss_608;
|
||||
StructBss19C lbl_1_bss_5E0;
|
||||
StructBss19C lbl_1_bss_5B8;
|
||||
StructBss19C lbl_1_bss_590;
|
||||
StructBss19C lbl_1_bss_568;
|
||||
AnimData* lbl_1_bss_560[2];
|
||||
s32 lbl_1_bss_55C;
|
||||
Process* lbl_1_bss_558;
|
||||
|
||||
StructData570 lbl_1_data_570[] = {
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x00), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x01), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x02), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x03), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x04), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x05), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x06), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x07), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x08), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x09), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0A), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0B), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0C), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0D), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0E), 1, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0F), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x10), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x11), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x12), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x13), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x14), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x15), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x16), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x17), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x18), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x19), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1A), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1B), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1C), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1D), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1E), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1F), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x20), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x21), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x22), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x23), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x24), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x25), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x26), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x27), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x28), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x29), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2A), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2B), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2C), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2D), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2E), 0, 0, 0, 1 },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2F), 0, 0, 0, 1 }
|
||||
};
|
||||
|
||||
s32 lbl_1_data_930[][4] = {
|
||||
{ MAKE_MESSID(30, 72), MAKE_MESSID(30, 73) },
|
||||
{ MAKE_MESSID(30, 74), MAKE_MESSID(30, 75) },
|
||||
{ MAKE_MESSID(30, 76), MAKE_MESSID(30, 77) },
|
||||
{ MAKE_MESSID(30, 78), MAKE_MESSID(30, 79) },
|
||||
{ MAKE_MESSID(30, 80), MAKE_MESSID(30, 81) }
|
||||
};
|
||||
|
||||
void fn_1_E710(Process* arg0, s32 arg1, s32 arg2) {
|
||||
lbl_1_bss_558 = arg0;
|
||||
lbl_1_bss_608.unk00 = arg1;
|
||||
lbl_1_bss_608.unk10 = arg2;
|
||||
fn_1_BF4();
|
||||
lbl_1_bss_608.unk104 = fn_1_3618(0xFF);
|
||||
fn_1_27E8(lbl_1_bss_558, fn_1_112A0);
|
||||
fn_1_3704();
|
||||
fn_1_10C6C(arg2);
|
||||
HuPrcChildCreate(fn_1_1054C, 100, 0x2000, 0, HuPrcCurrentGet());
|
||||
HuPrcChildCreate(fn_1_108F8, 100, 0x2000, 0, HuPrcCurrentGet());
|
||||
HuPrcChildCreate(fn_1_10FD0, 100, 0x2000, 0, HuPrcCurrentGet());
|
||||
HuPrcChildCreate(fn_1_FD1C, 100, 0x2000, 0, HuPrcCurrentGet());
|
||||
}
|
||||
|
||||
void fn_1_E828(omObjData* arg0) {
|
||||
if (arg0->work[2] != 0) {
|
||||
arg0->work[2]--;
|
||||
return;
|
||||
}
|
||||
if (arg0->work[2] == 0 && Hu3DMotionEndCheck(arg0->model[1])) {
|
||||
fn_1_1DCC(arg0, 1, arg0->work[1], 15, 1);
|
||||
arg0->work[0] = arg0->work[1] = arg0->work[2] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_E8B4(void) {
|
||||
s32 var_r30 = 16;
|
||||
s32 var_r29 = 40;
|
||||
GXColor sp10 = { 0x00, 0x00, 0x80, 0x80 };
|
||||
s32 i;
|
||||
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
printWin(var_r30, var_r29, 220, 130, &sp10);
|
||||
if (lbl_1_bss_5E0.unk04 == NULL) {
|
||||
print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> FALSE");
|
||||
} else {
|
||||
print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> TRUE");
|
||||
}
|
||||
if (lbl_1_bss_5B8.unk04 == NULL) {
|
||||
print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> FALSE");
|
||||
} else {
|
||||
print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> TRUE");
|
||||
}
|
||||
if (lbl_1_bss_590.unk04 == NULL) {
|
||||
print8(var_r30, var_r29 + 20, 1.0f, "PROC_SUB -> FALSE");
|
||||
} else {
|
||||
print8(var_r30, var_r29 + 20, 1.0f, "PROC_SUB -> TRUE");
|
||||
}
|
||||
if (lbl_1_bss_568.unk04 == NULL) {
|
||||
print8(var_r30, var_r29 + 30, 1.0f, "PROC_PLAYER -> FALSE");
|
||||
} else {
|
||||
print8(var_r30, var_r29 + 30, 1.0f, "PROC_PLAYER -> TRUE");
|
||||
}
|
||||
print8(var_r30, var_r29 + 60, 1.0f, "M:%d P:%d W:%d", lbl_1_bss_608.unk00, lbl_1_bss_608.unk04, lbl_1_bss_608.unk10);
|
||||
print8(var_r30, var_r29 + 80, 1.0f, "NO) IDX:GRP:COM:DIF:PAD:CHR");
|
||||
for (i = 0; i < 4; i++) {
|
||||
print8(var_r30, var_r29 + 90 + i * 10, 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i,
|
||||
lbl_1_bss_608.unk34[i].unk00, lbl_1_bss_608.unk34[i].unk04, lbl_1_bss_608.unk34[i].unk08,
|
||||
lbl_1_bss_608.unk34[i].unk0C, lbl_1_bss_608.unk34[i].unk14, lbl_1_bss_608.unk34[i].unk10);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_EC00(void) {
|
||||
lbl_1_bss_58[0] = HuAudSeqPlay(0x36);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1);
|
||||
do {
|
||||
fn_1_B8C();
|
||||
} while (WipeStatGet() != 0);
|
||||
fn_1_BAC(60);
|
||||
}
|
||||
|
||||
void fn_1_EC5C(void) {
|
||||
lbl_1_bss_608.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_608.unk10);
|
||||
fn_1_1D1C(lbl_1_bss_608.unk08, lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10, 0);
|
||||
fn_1_1CE8(lbl_1_bss_608.unk08, lbl_1_data_930[lbl_1_bss_608.unk00][0]);
|
||||
fn_1_1ACC(lbl_1_bss_608.unk08, -1);
|
||||
fn_1_1DCC(lbl_1_bss_590.unk00, 1, 1, 15, 1);
|
||||
fn_1_1A64(lbl_1_bss_608.unk08);
|
||||
fn_1_1DCC(lbl_1_bss_5B8.unk00, 2, 2, 0, 0);
|
||||
fn_1_BAC(90);
|
||||
fn_1_1DCC(lbl_1_bss_590.unk00, 1, 4, 15, 0);
|
||||
fn_1_BAC(30);
|
||||
fn_1_1DCC(lbl_1_bss_568.unk00, 1, 4, 15, 0);
|
||||
fn_1_2224(lbl_1_bss_5B8.unk00, 2, 2, 0);
|
||||
fn_1_BAC(60);
|
||||
fn_1_1DCC(lbl_1_bss_568.unk00, 1, 1, 84, 1);
|
||||
fn_1_1DCC(lbl_1_bss_590.unk00, 1, 1, 84, 1);
|
||||
fn_1_3804(&lbl_1_bss_4);
|
||||
fn_1_2710(fn_1_1132C);
|
||||
lbl_1_bss_5B8.unk04 = (void*) fn_1_10450;
|
||||
do {
|
||||
fn_1_B8C();
|
||||
} while (lbl_1_bss_5B8.unk04 != NULL);
|
||||
fn_1_BAC(10);
|
||||
lbl_1_bss_608.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_608.unk10);
|
||||
fn_1_1DCC(lbl_1_bss_590.unk00, 1, 3, 15, 1);
|
||||
if (lbl_1_bss_608.unk00 == 0) {
|
||||
HuAudFXPlay(lbl_1_data_0[lbl_1_bss_608.unk00][2]);
|
||||
} else {
|
||||
HuAudFXPlay(lbl_1_data_0[lbl_1_bss_608.unk00][0]);
|
||||
}
|
||||
fn_1_1D1C(lbl_1_bss_608.unk08, MAKE_MESSID(50, lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 * 6 + 5) + lbl_1_bss_608.unk00, 2);
|
||||
fn_1_1CE8(lbl_1_bss_608.unk08, lbl_1_data_930[lbl_1_bss_608.unk00][1]);
|
||||
fn_1_1ACC(lbl_1_bss_608.unk08, -1);
|
||||
fn_1_1DCC(lbl_1_bss_590.unk00, 1, 1, 15, 1);
|
||||
fn_1_1A64(lbl_1_bss_608.unk08);
|
||||
}
|
||||
|
||||
void fn_1_EFE0(s32 arg0, StructBss19C* arg1) {
|
||||
s32 temp_r31;
|
||||
|
||||
temp_r31 = HuAudSStreamPlay(7);
|
||||
do {
|
||||
fn_1_B8C();
|
||||
} while (HuAudSStreamStatGet(temp_r31) != 0);
|
||||
HuAudSeqPause(lbl_1_bss_58[0], 0, 1000);
|
||||
arg1->unk04 = 0;
|
||||
}
|
||||
|
||||
void fn_1_F050(omObjData* arg0, StructBss19C* arg1) {
|
||||
s32 temp_r31;
|
||||
|
||||
temp_r31 = lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 * 6 + lbl_1_bss_608.unk00;
|
||||
fn_1_BAC(150);
|
||||
OSReport("########## PRESENT_SE : %d\n", temp_r31);
|
||||
HuAudFXPlay(0x8D4 + temp_r31);
|
||||
if (lbl_1_data_570[lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 * 6 + lbl_1_bss_608.unk00].unk04 == 1) {
|
||||
fn_1_1DCC(lbl_1_bss_5B8.unk00, 7, 7, 0, 0);
|
||||
fn_1_BAC(60);
|
||||
fn_1_1DCC(lbl_1_bss_5B8.unk00, 7, 12, 0, 1);
|
||||
} else {
|
||||
fn_1_1DCC(lbl_1_bss_5B8.unk00, 7, 7, 1, 0);
|
||||
}
|
||||
arg1->unk04 = 0;
|
||||
}
|
||||
|
||||
void fn_1_F19C(void) {
|
||||
s32 i;
|
||||
|
||||
fn_1_1DCC(lbl_1_bss_568.unk00, 1, 2, 15, 1);
|
||||
for (i = 0; i < 30; i++) {
|
||||
fn_1_B8C();
|
||||
if (lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 != 5) {
|
||||
Hu3DData[lbl_1_bss_568.unk00->model[1]].pos.x = fn_1_828(120.0f, 80.0f, i, 30.0f);
|
||||
}
|
||||
Hu3DData[lbl_1_bss_568.unk00->model[1]].rot.y = fn_1_828(-60.0f, -90.0f, i, 30.0f);
|
||||
}
|
||||
fn_1_1DCC(lbl_1_bss_568.unk00, 1, 5, 5, 0);
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
if (Hu3DMotionTimeGet(lbl_1_bss_568.unk00->model[1]) >= 35.0f) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
Hu3DModelPosSet(lbl_1_bss_5B8.unk00->model[5], 0.0f, 0.0f, 0.0f);
|
||||
Hu3DModelHookReset(lbl_1_bss_5B8.unk00->model[9]);
|
||||
Hu3DModelHookSet(lbl_1_bss_568.unk00->model[1], CharModelHookNameGet(lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10, 1, 1), lbl_1_bss_5B8.unk00->model[5]);
|
||||
fn_1_BAC(60);
|
||||
lbl_1_bss_5B8.unk04 = (void*) fn_1_10298;
|
||||
HuAudFXPlay(0xA3);
|
||||
HuAudCharVoicePlay(lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10, 0x128);
|
||||
fn_1_1DCC(lbl_1_bss_5B8.unk00, 6, 6, 0, 0);
|
||||
Hu3DModelAttrReset(lbl_1_bss_5B8.unk00->model[6], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrSet(lbl_1_bss_5B8.unk00->model[5], HU3D_ATTR_DISPOFF);
|
||||
fn_1_1DCC(lbl_1_bss_568.unk00, 1, 6, 5, 0);
|
||||
HuAudSeqPause(lbl_1_bss_58[0], 1, 1000);
|
||||
WipeColorSet(0xFF, 0xFF, 0xFF);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
|
||||
do {
|
||||
fn_1_B8C();
|
||||
} while (WipeStatGet() != 0);
|
||||
Hu3DMotionSpeedSet(lbl_1_bss_568.unk00->model[1], 0.0f);
|
||||
Hu3DMotionTimeSet(lbl_1_bss_568.unk00->model[1], 50.0f);
|
||||
Hu3DModelAttrReset(lbl_1_bss_5B8.unk00->model[7], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrReset(lbl_1_bss_5B8.unk00->model[8], HU3D_ATTR_DISPOFF);
|
||||
fn_1_1DCC(lbl_1_bss_5B8.unk00, 8, 8, 0, 1);
|
||||
fn_1_BAC(30);
|
||||
HuAudFXPlay(0xA9);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60);
|
||||
do {
|
||||
fn_1_B8C();
|
||||
} while (WipeStatGet() != 0);
|
||||
fn_1_3804(&lbl_1_bss_4);
|
||||
fn_1_2710(fn_1_11534);
|
||||
fn_1_BAC(60);
|
||||
lbl_1_bss_568.unk04 = (void*) fn_1_F050;
|
||||
lbl_1_bss_608.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_608.unk10);
|
||||
lbl_1_bss_590.unk04 = (void*) fn_1_EFE0;
|
||||
fn_1_1D1C(lbl_1_bss_608.unk08, MAKE_MESSID(50, lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 * 6 + 6) + lbl_1_bss_608.unk00, 0);
|
||||
fn_1_6C1C(lbl_1_bss_608.unk08, MAKE_MESSID(50, 134), 0, 300);
|
||||
fn_1_1CE8(lbl_1_bss_608.unk08, MAKE_MESSID(37, 4));
|
||||
fn_1_1A64(lbl_1_bss_608.unk08);
|
||||
fn_1_3804(&lbl_1_bss_4);
|
||||
fn_1_2710(fn_1_1141C);
|
||||
lbl_1_bss_5B8.unk04 = (void*) fn_1_10384;
|
||||
fn_1_BAC(30);
|
||||
Hu3DMotionSpeedSet(lbl_1_bss_568.unk00->model[1], 0.1f);
|
||||
fn_1_BAC(180);
|
||||
WipeColorSet(0, 0, 0);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1);
|
||||
}
|
||||
|
||||
s32 fn_1_F780(s32 arg0) {
|
||||
if (arg0 == 0 && _CheckFlag(FLAG_ID_MAKE(0, 2))) {
|
||||
return 1;
|
||||
}
|
||||
if (arg0 == 1 && _CheckFlag(FLAG_ID_MAKE(0, 3))) {
|
||||
return 1;
|
||||
}
|
||||
if (arg0 == 2 && _CheckFlag(FLAG_ID_MAKE(0, 4))) {
|
||||
return 1;
|
||||
}
|
||||
if (arg0 == 3 && _CheckFlag(FLAG_ID_MAKE(0, 5))) {
|
||||
return 1;
|
||||
}
|
||||
if (arg0 == 4 && _CheckFlag(FLAG_ID_MAKE(0, 6))) {
|
||||
return 1;
|
||||
}
|
||||
if (arg0 == 5 && _CheckFlag(FLAG_ID_MAKE(0, 7))) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void fn_1_F86C(void) {
|
||||
Hu3DAllKill();
|
||||
HuSprClose();
|
||||
HuSprInit();
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
fn_1_BAC(60);
|
||||
SLCommonSet();
|
||||
SLSaveBoardStory();
|
||||
if (SLSaveFlagGet() == 1) {
|
||||
SLSave();
|
||||
}
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 10);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
lbl_1_bss_55C = 1;
|
||||
HuPrcEnd();
|
||||
while (TRUE) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_F910(void) {
|
||||
omOvlHisData* var_r31;
|
||||
|
||||
msmSeStopAll(FALSE, 1000);
|
||||
do {
|
||||
fn_1_B8C();
|
||||
} while (WipeStatGet() != 0);
|
||||
fn_1_BAC(60);
|
||||
CharModelKill(-1);
|
||||
HuAudFXAllStop();
|
||||
HuAudSStreamAllStop();
|
||||
{
|
||||
s32 sp8[] = { 53, 56, 55, 54, 57 };
|
||||
|
||||
GWMGAvailSet(omMgIndexGet(sp8[lbl_1_bss_608.unk00]) + 0x191);
|
||||
}
|
||||
GWGameStat.present[lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 * 6 + lbl_1_bss_608.unk00] = 1;
|
||||
OSReport("########## PRESENTFLG CHR:%d, MAP:%d, PRESENT:%d\n", lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10, lbl_1_bss_608.unk00, lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 * 6 + lbl_1_bss_608.unk00);
|
||||
var_r31 = omOvlHisGet(0);
|
||||
omOvlHisChg(0, OVL_MSTORY, 20, var_r31->stat);
|
||||
omOvlCallEx(OVL_PRESENT, 1, lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 * 6 + lbl_1_bss_608.unk00 + 1, 0);
|
||||
}
|
||||
|
||||
void fn_1_FAE4(omObjData* arg0, StructBss19C* arg1) {
|
||||
s32 sp8 = 0;
|
||||
|
||||
lbl_1_bss_58[0] = HuAudSeqPlay(0x36);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1);
|
||||
do {
|
||||
fn_1_B8C();
|
||||
} while (WipeStatGet() != 0);
|
||||
fn_1_BAC(60);
|
||||
fn_1_EC5C();
|
||||
fn_1_F19C();
|
||||
fn_1_F910();
|
||||
arg1->unk04 = 0;
|
||||
}
|
||||
|
||||
void fn_1_FD1C(void) {
|
||||
omObjData* temp_r3;
|
||||
|
||||
temp_r3 = omAddObjEx(lbl_1_bss_558, 0x100, 16, 16, -1, NULL);
|
||||
lbl_1_bss_5E0.unk00 = temp_r3;
|
||||
lbl_1_bss_5E0.unk04 = (void*) fn_1_FAE4;
|
||||
lbl_1_bss_5E0.unk00->data = &lbl_1_bss_5E0;
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
if (lbl_1_bss_5E0.unk04 != NULL) {
|
||||
lbl_1_bss_5E0.unk04(temp_r3, &lbl_1_bss_5E0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_FDD0(omObjData* arg0, s32 arg1) {
|
||||
s32 temp_r29;
|
||||
|
||||
temp_r29 = lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10;
|
||||
arg0->model[7] = Hu3DModelCreateFile(lbl_1_data_570[temp_r29 * 6 + arg1].unk00);
|
||||
arg0->motion[7] = Hu3DMotionIDGet(arg0->model[7]);
|
||||
if (lbl_1_data_570[temp_r29 * 6 + arg1].unk04 == 1) {
|
||||
arg0->motion[12] = Hu3DJointMotionFile(arg0->model[7], DATA_MAKE_NUM(DATADIR_MSTORY4, 48));
|
||||
}
|
||||
Hu3DModelPosSet(arg0->model[7], 0.0f, 180.0f, 825.0f);
|
||||
Hu3DModelAttrSet(arg0->model[7], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelShadowSet(arg0->model[7]);
|
||||
fn_1_1DCC(arg0, 7, 7, 0, 2);
|
||||
HuDataDirClose(DATADIR_MSTORY4);
|
||||
arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 56));
|
||||
arg0->motion[0] = Hu3DMotionIDGet(arg0->model[1]);
|
||||
fn_1_1DCC(arg0, 1, 0, 0, 2);
|
||||
Hu3DModelShadowMapObjSet(arg0->model[1], "base_fix9-base");
|
||||
arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 59));
|
||||
arg0->motion[2] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 60));
|
||||
arg0->motion[2] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 61));
|
||||
fn_1_1DCC(arg0, 2, 2, 0, 2);
|
||||
arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 57));
|
||||
arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 81));
|
||||
Hu3DModelShadowSet(arg0->model[5]);
|
||||
arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 83));
|
||||
arg0->motion[6] = Hu3DMotionIDGet(arg0->model[6]);
|
||||
Hu3DModelPosSet(arg0->model[6], 25.0f, 125.0f, 900.0f);
|
||||
Hu3DModelAttrSet(arg0->model[6], HU3D_ATTR_DISPOFF);
|
||||
fn_1_1DCC(arg0, 6, 6, 0, 2);
|
||||
arg0->model[8] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 96));
|
||||
arg0->motion[8] = Hu3DMotionIDGet(arg0->model[8]);
|
||||
Hu3DModelAttrSet(arg0->model[8], HU3D_ATTR_DISPOFF);
|
||||
fn_1_1DCC(arg0, 8, 8, 0, 2);
|
||||
arg0->model[9] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 84));
|
||||
arg0->motion[9] = Hu3DMotionIDGet(arg0->model[9]);
|
||||
Hu3DModelPosSet(arg0->model[9], 0.0f, 0.0f, 460.0f);
|
||||
Hu3DModelShadowSet(arg0->model[9]);
|
||||
fn_1_1DCC(arg0, 9, 9, 0, 2);
|
||||
Hu3DModelHookSet(arg0->model[9], "carrier2-target0", arg0->model[5]);
|
||||
lbl_1_bss_560[0] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY, 85 + arg1 * 2), MEMORY_DEFAULT_NUM));
|
||||
lbl_1_bss_560[1] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY, 86 + arg1 * 2), MEMORY_DEFAULT_NUM));
|
||||
Hu3DAnimCreate(lbl_1_bss_560[0], lbl_1_bss_5B8.unk00->model[5], "cylinder3");
|
||||
Hu3DAnimCreate(lbl_1_bss_560[1], lbl_1_bss_5B8.unk00->model[5], "wakuwaku");
|
||||
}
|
||||
|
||||
void fn_1_10298(omObjData* arg0, StructBss19C* arg1) {
|
||||
Mtx sp8;
|
||||
|
||||
Hu3DData[arg0->model[7]].pos.y = fn_1_ACC(180.0f, 185.0f, arg1->unk08++, 360.0f);
|
||||
Hu3DModelObjMtxGet(arg0->model[7], "effect", sp8);
|
||||
Hu3DModelPosSet(arg0->model[8], sp8[0][3], sp8[1][3], sp8[2][3]);
|
||||
if (arg1->unk08 >= 360) {
|
||||
arg1->unk08 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_10384(omObjData* arg0, StructBss19C* arg1) {
|
||||
Mtx sp8;
|
||||
|
||||
Hu3DData[arg0->model[7]].pos.y += arg1->unk0C / 100.0f;
|
||||
Hu3DModelObjMtxGet(arg0->model[7], "effect", sp8);
|
||||
Hu3DModelPosSet(arg0->model[8], sp8[0][3], sp8[1][3], sp8[2][3]);
|
||||
arg1->unk0C += 2;
|
||||
}
|
||||
|
||||
void fn_1_10450(omObjData* arg0, StructBss19C* arg1) {
|
||||
fn_1_1DCC(arg0, 9, 9, 0, 1);
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
Hu3DData[arg0->model[9]].pos.z += 2.5f;
|
||||
if (Hu3DData[arg0->model[9]].pos.z >= 670.0f) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
Hu3DData[arg0->model[9]].pos.z = 670.0f;
|
||||
Hu3DMotionSpeedSet(arg0->model[9], 0.0f);
|
||||
arg1->unk04 = 0;
|
||||
}
|
||||
|
||||
void fn_1_1054C(void) {
|
||||
omObjData* temp_r3;
|
||||
|
||||
temp_r3 = omAddObjEx(lbl_1_bss_558, 0x100, 16, 16, -1, NULL);
|
||||
lbl_1_bss_5B8.unk00 = temp_r3;
|
||||
lbl_1_bss_5B8.unk04 = NULL;
|
||||
fn_1_FDD0(temp_r3, lbl_1_bss_608.unk00);
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
if (lbl_1_bss_5B8.unk04 != NULL) {
|
||||
lbl_1_bss_5B8.unk04(temp_r3, &lbl_1_bss_5B8);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_105F8(omObjData* arg0, s32 arg1) {
|
||||
s32 sp1C[] = {
|
||||
DATA_MAKE_NUM(DATADIR_MSTORY, 0x0061),
|
||||
DATA_MAKE_NUM(DATADIR_MSTORY, 0x006C),
|
||||
DATA_MAKE_NUM(DATADIR_MSTORY, 0x0074),
|
||||
DATA_MAKE_NUM(DATADIR_MSTORY, 0x007C),
|
||||
DATA_MAKE_NUM(DATADIR_MSTORY, 0x0083)
|
||||
};
|
||||
s32 sp30[][5] = {
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x0062), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0064), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0065), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0067), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0068) },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x006D), DATA_MAKE_NUM(DATADIR_MSTORY, 0x006F), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0070), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0072), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0073) },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x0075), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0077), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0078), DATA_MAKE_NUM(DATADIR_MSTORY, 0x007A), DATA_MAKE_NUM(DATADIR_MSTORY, 0x007B) },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x007D), DATA_MAKE_NUM(DATADIR_MSTORY, 0x007E), DATA_MAKE_NUM(DATADIR_MSTORY, 0x007F), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0081), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0082) },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x0084), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0086), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0087), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0089), DATA_MAKE_NUM(DATADIR_MSTORY, 0x008A) }
|
||||
};
|
||||
|
||||
arg0->model[1] = Hu3DModelCreateFile(sp1C[arg1]);
|
||||
arg0->motion[1] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][0]);
|
||||
arg0->motion[2] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][1]);
|
||||
arg0->motion[3] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][2]);
|
||||
arg0->motion[4] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][3]);
|
||||
arg0->motion[5] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][4]);
|
||||
Hu3DModelPosSet(arg0->model[1], -120.0f, 0.0f, 670.0f);
|
||||
Hu3DModelRotSet(arg0->model[1], 0.0f, 30.0f, 0.0f);
|
||||
Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f);
|
||||
if (arg1 == 3) {
|
||||
Hu3DData[arg0->model[1]].pos.y = 50.0f;
|
||||
}
|
||||
Hu3DModelShadowSet(arg0->model[1]);
|
||||
fn_1_1DCC(arg0, 1, 5, 0, 1);
|
||||
{
|
||||
s32 sp8[] = { 9, 14, 10, 11, 12 };
|
||||
|
||||
if (arg1 != 3) {
|
||||
CharModelEffectNpcInit(arg0->model[1], arg0->motion[2], 1, sp8[arg1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_108F8(void) {
|
||||
omObjData* temp_r3;
|
||||
|
||||
temp_r3 = omAddObjEx(lbl_1_bss_558, 0x100, 16, 16, -1, NULL);
|
||||
lbl_1_bss_590.unk00 = temp_r3;
|
||||
lbl_1_bss_590.unk04 = NULL;
|
||||
fn_1_105F8(temp_r3, lbl_1_bss_608.unk00);
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
if (lbl_1_bss_590.unk04 != NULL) {
|
||||
lbl_1_bss_590.unk04(temp_r3, &lbl_1_bss_590);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_10C6C(s32 arg0) {
|
||||
s32 spC[4];
|
||||
s32 i;
|
||||
|
||||
spC[0] = 0;
|
||||
for (i = 1; i < 4; i++) {
|
||||
spC[i] = spC[i - 1] + 1;
|
||||
if (spC[i] >= 4) {
|
||||
spC[i] = 0;
|
||||
}
|
||||
if (arg0 == spC[i]) {
|
||||
lbl_1_bss_608.unk04 = i;
|
||||
}
|
||||
}
|
||||
for (i = 0; i < 4; i++) {
|
||||
fn_1_352C(&lbl_1_bss_608.unk34[i], spC[i]);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_10D50(omObjData* arg0, s32 arg1) {
|
||||
s32 temp_r30;
|
||||
|
||||
temp_r30 = lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10;
|
||||
arg0->model[1] = CharModelCreate(temp_r30, 1);
|
||||
arg0->motion[1] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0));
|
||||
arg0->motion[2] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 2));
|
||||
arg0->motion[3] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 53));
|
||||
arg0->motion[4] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 109));
|
||||
arg0->motion[5] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_MSTORY, 24 + temp_r30));
|
||||
arg0->motion[6] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_MSTORY, 32 + temp_r30));
|
||||
CharModelMotionDataClose(temp_r30);
|
||||
Hu3DModelPosSet(arg0->model[1], 120.0f, 0.0f, 670.0f);
|
||||
Hu3DModelRotSet(arg0->model[1], 0.0f, -60.0f, 0.0f);
|
||||
Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f);
|
||||
Hu3DModelShadowSet(arg0->model[1]);
|
||||
fn_1_1DCC(arg0, 1, 1, 0, 1);
|
||||
}
|
||||
|
||||
void fn_1_10F24(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) {
|
||||
fn_1_1DCC(lbl_1_bss_568.unk00, 1, arg0, arg2, arg3);
|
||||
if (arg3 == 1) {
|
||||
arg4 = 0;
|
||||
}
|
||||
lbl_1_bss_568.unk00->work[0] = arg4;
|
||||
lbl_1_bss_568.unk00->work[1] = arg1;
|
||||
lbl_1_bss_568.unk00->work[2] = arg2 + 1;
|
||||
}
|
||||
|
||||
void fn_1_10FD0(void) {
|
||||
omObjData* temp_r3;
|
||||
|
||||
temp_r3 = omAddObjEx(lbl_1_bss_558, 0x100, 16, 16, -1, NULL);
|
||||
lbl_1_bss_568.unk00 = temp_r3;
|
||||
lbl_1_bss_568.unk04 = NULL;
|
||||
lbl_1_bss_568.unk00->data = &lbl_1_bss_568;
|
||||
fn_1_10D50(temp_r3, lbl_1_bss_608.unk04); // Second argument required to match.
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
if (lbl_1_bss_568.unk04 != NULL) {
|
||||
lbl_1_bss_568.unk04(temp_r3, &lbl_1_bss_568);
|
||||
}
|
||||
if (temp_r3->work[0] != 0) {
|
||||
fn_1_E828(temp_r3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_112A0(void) {
|
||||
StructBss4* var_r31;
|
||||
|
||||
var_r31 = &lbl_1_bss_4;
|
||||
var_r31->unk08.x = 0.0f;
|
||||
var_r31->unk08.y = 125.0f;
|
||||
var_r31->unk08.z = 0.0f;
|
||||
var_r31->unk20.x = -5.0f;
|
||||
var_r31->unk20.y = 0.0f;
|
||||
var_r31->unk20.z = 0.0f;
|
||||
var_r31->unk38 = 1750.0f;
|
||||
}
|
||||
|
||||
void fn_1_1132C(void) {
|
||||
StructBss4* var_r31;
|
||||
StructBss4 sp8;
|
||||
|
||||
var_r31 = &lbl_1_bss_4;
|
||||
sp8.unk08.x = 0.0f;
|
||||
sp8.unk08.y = 100.0f;
|
||||
sp8.unk08.z = 0.0f;
|
||||
sp8.unk20.x = 0.0f;
|
||||
sp8.unk20.y = 0.0f;
|
||||
sp8.unk20.z = 0.0f;
|
||||
sp8.unk38 = 1400.0f;
|
||||
fn_1_51D0(var_r31, &sp8, var_r31->unk40++, 120.0f, 10.0f);
|
||||
}
|
||||
|
||||
void fn_1_1141C(void) {
|
||||
StructBss4* var_r31;
|
||||
|
||||
var_r31 = &lbl_1_bss_4;
|
||||
var_r31->unk14 = 0.0f;
|
||||
var_r31->unk18 = Hu3DData[lbl_1_bss_5B8.unk00->model[7]].pos.y;
|
||||
var_r31->unk1C = 0.0f;
|
||||
var_r31->unk2C = 0.0f;
|
||||
var_r31->unk30 = 0.0f;
|
||||
var_r31->unk34 = 0.0f;
|
||||
var_r31->unk3C = fn_1_828(1100.0f, 1400.0f, var_r31->unk40++, 240.0f);
|
||||
fn_1_3ABC(var_r31, 30.0f);
|
||||
}
|
||||
|
||||
void fn_1_11534(void) {
|
||||
StructBss4* var_r31;
|
||||
StructBss4 sp8;
|
||||
|
||||
var_r31 = &lbl_1_bss_4;
|
||||
sp8.unk08.x = 0.0f;
|
||||
sp8.unk08.y = 160.0f;
|
||||
sp8.unk08.z = 0.0f;
|
||||
sp8.unk20.x = 0.0f;
|
||||
sp8.unk20.y = 0.0f;
|
||||
sp8.unk20.z = 0.0f;
|
||||
sp8.unk38 = 1100.0f;
|
||||
fn_1_61E8(var_r31, &sp8, var_r31->unk40++, 10.0f, 5.0f);
|
||||
}
|
||||
446
src/REL/mstoryDll/mg_miss.c
Executable file
446
src/REL/mstoryDll/mg_miss.c
Executable file
|
|
@ -0,0 +1,446 @@
|
|||
#include "REL/mstoryDll.h"
|
||||
#include "game/chrman.h"
|
||||
#include "game/gamework_data.h"
|
||||
#include "game/hsfman.h"
|
||||
#include "game/hsfmotion.h"
|
||||
#include "game/printfunc.h"
|
||||
#include "game/window.h"
|
||||
#include "game/wipe.h"
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s32 unk00;
|
||||
/* 0x04 */ s32 unk04;
|
||||
/* 0x08 */ s32 unk08;
|
||||
/* 0x0C */ s32 unk0C;
|
||||
/* 0x10 */ s32 unk10;
|
||||
/* 0x14 */ char unk14[0x20];
|
||||
/* 0x34 */ StructFn352C unk34[4];
|
||||
} StructBss7B4; // Size 0x104
|
||||
|
||||
void fn_1_12630(void);
|
||||
void fn_1_129D4(void);
|
||||
void fn_1_12C94(s32 arg0);
|
||||
void fn_1_12F20(omObjData* arg0, StructBss19C* arg1);
|
||||
void fn_1_12FA8(omObjData*, StructBss19C* arg1);
|
||||
void fn_1_130C0(void);
|
||||
void fn_1_13570(void);
|
||||
void fn_1_13880(void);
|
||||
void fn_1_1390C(void);
|
||||
|
||||
StructBss7B4 lbl_1_bss_7B4;
|
||||
StructBss19C lbl_1_bss_78C;
|
||||
StructBss19C lbl_1_bss_764;
|
||||
StructBss19C lbl_1_bss_73C;
|
||||
StructBss19C lbl_1_bss_714;
|
||||
Process* lbl_1_bss_710;
|
||||
|
||||
s32 lbl_1_data_AF8[][3] = {
|
||||
{ MAKE_MESSID(30, 40), MAKE_MESSID(30, 45), MAKE_MESSID(30, 5) },
|
||||
{ MAKE_MESSID(30, 41), MAKE_MESSID(30, 45), MAKE_MESSID(30, 5) },
|
||||
{ MAKE_MESSID(30, 42), MAKE_MESSID(30, 45), MAKE_MESSID(30, 5) },
|
||||
{ MAKE_MESSID(30, 43), MAKE_MESSID(30, 45), MAKE_MESSID(30, 5) },
|
||||
{ MAKE_MESSID(30, 44), MAKE_MESSID(30, 45), MAKE_MESSID(30, 5) }
|
||||
};
|
||||
|
||||
void fn_1_11624(Process* arg0, s32 arg1, s32 arg2) {
|
||||
lbl_1_bss_710 = arg0;
|
||||
lbl_1_bss_7B4.unk00 = arg1;
|
||||
lbl_1_bss_7B4.unk10 = arg2;
|
||||
fn_1_BF4();
|
||||
fn_1_3618(0xFF);
|
||||
fn_1_27E8(lbl_1_bss_710, fn_1_13880);
|
||||
fn_1_3704();
|
||||
fn_1_12C94(arg2);
|
||||
HuPrcChildCreate(fn_1_129D4, 100, 0x2000, 0, HuPrcCurrentGet());
|
||||
HuPrcChildCreate(fn_1_130C0, 100, 0x2000, 0, HuPrcCurrentGet());
|
||||
HuPrcChildCreate(fn_1_13570, 100, 0x2000, 0, HuPrcCurrentGet());
|
||||
HuPrcChildCreate(fn_1_12630, 100, 0x2000, 0, HuPrcCurrentGet());
|
||||
}
|
||||
|
||||
void fn_1_11730(void) {
|
||||
s32 var_r31 = 16;
|
||||
s32 var_r30 = 40;
|
||||
GXColor sp10 = { 0x00, 0x00, 0x80, 0x80 };
|
||||
s32 i;
|
||||
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
fontcolor = FONT_COLOR_WHITE;
|
||||
printWin(var_r31, var_r30, 220, 120, &sp10);
|
||||
if (lbl_1_bss_78C.unk04 == NULL) {
|
||||
print8(var_r31, var_r30, 1.0f, "PROC_MAIN -> FALSE");
|
||||
} else {
|
||||
print8(var_r31, var_r30, 1.0f, "PROC_MAIN -> TRUE");
|
||||
}
|
||||
if (lbl_1_bss_764.unk04 == NULL) {
|
||||
print8(var_r31, var_r30 + 10, 1.0f, "PROC_MAP -> FALSE");
|
||||
} else {
|
||||
print8(var_r31, var_r30 + 10, 1.0f, "PROC_MAP -> TRUE");
|
||||
}
|
||||
if (lbl_1_bss_73C.unk04 == NULL) {
|
||||
print8(var_r31, var_r30 + 20, 1.0f, "PROC_PLAYER -> FALSE");
|
||||
} else {
|
||||
print8(var_r31, var_r30 + 20, 1.0f, "PROC_PLAYER -> TRUE");
|
||||
}
|
||||
if (lbl_1_bss_714.unk04 == NULL) {
|
||||
print8(var_r31, var_r30 + 30, 1.0f, "PROC_SUB -> FALSE");
|
||||
} else {
|
||||
print8(var_r31, var_r30 + 30, 1.0f, "PROC_SUB -> TRUE");
|
||||
}
|
||||
print8(var_r31, var_r30 + 50, 1.0f, "M:%d P:%d W:%d", lbl_1_bss_7B4.unk00, lbl_1_bss_7B4.unk04, lbl_1_bss_7B4.unk10);
|
||||
print8(var_r31, var_r30 + 70, 1.0f, "NO) IDX:GRP:COM:DIF:PAD:CHR");
|
||||
for (i = 0; i < 4; i++) {
|
||||
print8(var_r31, var_r30 + 80 + i * 10, 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i,
|
||||
lbl_1_bss_7B4.unk34[i].unk00, lbl_1_bss_7B4.unk34[i].unk04, lbl_1_bss_7B4.unk34[i].unk08,
|
||||
lbl_1_bss_7B4.unk34[i].unk0C, lbl_1_bss_7B4.unk34[i].unk14, lbl_1_bss_7B4.unk34[i].unk10);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_11A8C(void) {
|
||||
lbl_1_bss_58[0] = HuAudSeqPlay(0x34);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1);
|
||||
do {
|
||||
fn_1_B8C();
|
||||
} while (WipeStatGet() != 0);
|
||||
fn_1_BAC(60);
|
||||
}
|
||||
|
||||
void fn_1_11AE8(void) {
|
||||
s32 spC = 0;
|
||||
s32 sp8 = 0;
|
||||
|
||||
fn_1_1DCC(lbl_1_bss_73C.unk00, 1, 2, 15, 0);
|
||||
lbl_1_bss_73C.unk04 = (void*) fn_1_12F20;
|
||||
HuAudFXPlay(lbl_1_data_0[lbl_1_bss_7B4.unk00][1]);
|
||||
HuAudCharVoicePlay(lbl_1_bss_7B4.unk34[lbl_1_bss_7B4.unk04].unk10, 0x12E);
|
||||
lbl_1_bss_7B4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_7B4.unk10);
|
||||
fn_1_1DCC(lbl_1_bss_714.unk00, 1, 2, 15, 1);
|
||||
fn_1_1CE8(lbl_1_bss_7B4.unk08, lbl_1_data_AF8[lbl_1_bss_7B4.unk00][0]);
|
||||
fn_1_1ACC(lbl_1_bss_7B4.unk08, -1);
|
||||
fn_1_1CE8(lbl_1_bss_7B4.unk08, MAKE_MESSID(37, 4));
|
||||
fn_1_1DCC(lbl_1_bss_714.unk00, 1, 1, 15, 1);
|
||||
fn_1_1A64(lbl_1_bss_7B4.unk08);
|
||||
}
|
||||
|
||||
BOOL fn_1_11C6C(void) {
|
||||
BOOL temp_r31 = FALSE;
|
||||
|
||||
HuWinInsertMesSet(lbl_1_bss_7B4.unk08, MAKE_MESSID(30, 54) + lbl_1_bss_7B4.unk00, 3);
|
||||
fn_1_1CE8(lbl_1_bss_7B4.unk08, lbl_1_data_AF8[lbl_1_bss_7B4.unk00][1]);
|
||||
fn_1_1ACC(lbl_1_bss_7B4.unk08, 5);
|
||||
lbl_1_bss_7B4.unk0C = fn_1_6EB8(MAKE_MESSID(30, 53), lbl_1_bss_7B4.unk10);
|
||||
fn_1_1CE8(lbl_1_bss_7B4.unk0C, MAKE_MESSID(30, 53));
|
||||
temp_r31 = fn_1_1C34(lbl_1_bss_7B4.unk0C);
|
||||
fn_1_1CE8(lbl_1_bss_7B4.unk0C, MAKE_MESSID(37, 4));
|
||||
fn_1_7028(lbl_1_bss_7B4.unk0C);
|
||||
if (temp_r31) {
|
||||
fn_1_1DCC(lbl_1_bss_73C.unk00, 1, 4, 15, 0);
|
||||
lbl_1_bss_73C.unk04 = NULL;
|
||||
fn_1_1DCC(lbl_1_bss_714.unk00, 1, 3, 15, 1);
|
||||
}
|
||||
return temp_r31;
|
||||
}
|
||||
|
||||
BOOL fn_1_11DD8(void) {
|
||||
s32 temp_r31 = FALSE;
|
||||
|
||||
fn_1_1CE8(lbl_1_bss_7B4.unk08, lbl_1_data_AF8[lbl_1_bss_7B4.unk00][2]);
|
||||
fn_1_1ACC(lbl_1_bss_7B4.unk08, 5);
|
||||
lbl_1_bss_7B4.unk0C = fn_1_6EB8(MAKE_MESSID(30, 53), lbl_1_bss_7B4.unk10);
|
||||
fn_1_1CE8(lbl_1_bss_7B4.unk0C, MAKE_MESSID(30, 53));
|
||||
temp_r31 = fn_1_1B78(lbl_1_bss_7B4.unk0C, 1);
|
||||
fn_1_1CE8(lbl_1_bss_7B4.unk0C, MAKE_MESSID(37, 4));
|
||||
fn_1_7028(lbl_1_bss_7B4.unk0C);
|
||||
return temp_r31;
|
||||
}
|
||||
|
||||
void fn_1_11EC4(void) {
|
||||
lbl_1_bss_73C.unk04 = (void*) fn_1_12FA8;
|
||||
HuAudSeqFadeOut(lbl_1_bss_58[0], 3000);
|
||||
fn_1_3804(&lbl_1_bss_4);
|
||||
fn_1_2710(fn_1_1390C);
|
||||
fn_1_BAC(150);
|
||||
}
|
||||
|
||||
void fn_1_11F28(void) {
|
||||
}
|
||||
|
||||
void fn_1_11F2C(s32 arg0) {
|
||||
omOvlHisData* var_r30;
|
||||
OverlayID sp8[] = { OVL_M445, OVL_M448, OVL_M447, OVL_M446, OVL_M449 };
|
||||
|
||||
if (arg0 != 0) {
|
||||
fn_1_BAC(60);
|
||||
HuAudSeqFadeOut(lbl_1_bss_58[0], 1000);
|
||||
}
|
||||
WipeColorSet(0xFF, 0xFF, 0xFF);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1);
|
||||
do {
|
||||
fn_1_B8C();
|
||||
} while (WipeStatGet() != 0);
|
||||
fn_1_BAC(60);
|
||||
CharModelKill(-1);
|
||||
var_r30 = omOvlHisGet(0);
|
||||
omOvlHisChg(0, OVL_MSTORY, 2, var_r30->stat);
|
||||
if (arg0 == 0) {
|
||||
HuAudSeqAllFadeOut(1000);
|
||||
HuAudSStreamAllFadeOut(1000);
|
||||
omOvlCallEx(sp8[GWSystem.board], 1, 0, 0);
|
||||
} else {
|
||||
HuAudFadeOut(1);
|
||||
omOvlReturnEx(1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_12070(omObjData* arg0, StructBss19C* arg1) {
|
||||
s32 var_r31;
|
||||
|
||||
fn_1_11A8C();
|
||||
fn_1_11AE8();
|
||||
lbl_1_bss_7B4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_7B4.unk10);
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
if (fn_1_11C6C()) {
|
||||
var_r31 = 0;
|
||||
break;
|
||||
}
|
||||
if (fn_1_11DD8()) {
|
||||
var_r31 = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
fn_1_1A64(lbl_1_bss_7B4.unk08);
|
||||
fn_1_BAC(60);
|
||||
switch (var_r31) {
|
||||
case 0:
|
||||
fn_1_11EC4();
|
||||
break;
|
||||
case 1:
|
||||
fn_1_11F28();
|
||||
break;
|
||||
}
|
||||
fn_1_11F2C(var_r31);
|
||||
arg1->unk04 = NULL;
|
||||
}
|
||||
|
||||
void fn_1_12630(void) {
|
||||
omObjData* temp_r3;
|
||||
|
||||
temp_r3 = omAddObjEx(lbl_1_bss_710, 0x100, 16, 16, -1, NULL);
|
||||
lbl_1_bss_78C.unk00 = temp_r3;
|
||||
lbl_1_bss_78C.unk04 = (void*) fn_1_12070;
|
||||
lbl_1_bss_78C.unk00->data = &lbl_1_bss_78C;
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
if (lbl_1_bss_78C.unk04 != NULL) {
|
||||
lbl_1_bss_78C.unk04(temp_r3, &lbl_1_bss_78C);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_126E4(omObjData* arg0) {
|
||||
arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 56));
|
||||
arg0->motion[0] = Hu3DMotionIDGet(arg0->model[1]);
|
||||
fn_1_1DCC(arg0, 1, 0, 0, 2);
|
||||
Hu3DModelShadowMapObjSet(arg0->model[1], "base_fix9-base");
|
||||
arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 59));
|
||||
arg0->motion[2] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 60));
|
||||
arg0->motion[3] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 61));
|
||||
fn_1_1DCC(arg0, 2, 2, 0, 2);
|
||||
arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 57));
|
||||
arg0->model[5] = Hu3DModelCreateFile(lbl_1_bss_7B4.unk00 + DATA_MAKE_NUM(DATADIR_MSTORY, 76));
|
||||
arg0->motion[5] = Hu3DMotionIDGet(arg0->model[5]);
|
||||
Hu3DModelPosSet(arg0->model[5], 0.0f, 80.0f, 460.0f);
|
||||
Hu3DModelShadowSet(arg0->model[5]);
|
||||
fn_1_1DCC(arg0, 5, 5, 0, 2);
|
||||
arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 75));
|
||||
arg0->motion[6] = Hu3DMotionIDGet(arg0->model[6]);
|
||||
Hu3DModelHookSet(arg0->model[5], "stargbox_fix-effect_fook1", arg0->model[6]);
|
||||
fn_1_1DCC(arg0, 6, 6, 0, 2);
|
||||
}
|
||||
|
||||
void fn_1_12918(omObjData* arg0, StructBss19C* arg1) {
|
||||
Hu3DData[arg0->model[5]].pos.y = fn_1_ACC(80.0f, 90.0f, arg1->unk08++, 360.0f);
|
||||
if (arg1->unk08 >= 360) {
|
||||
arg1->unk08 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_129D4(void) {
|
||||
omObjData* temp_r3;
|
||||
|
||||
temp_r3 = omAddObjEx(lbl_1_bss_710, 0x100, 16, 16, -1, NULL);
|
||||
lbl_1_bss_764.unk00 = temp_r3;
|
||||
lbl_1_bss_764.unk04 = (void*) fn_1_12918;
|
||||
lbl_1_bss_764.unk00->data = &lbl_1_bss_764;
|
||||
fn_1_126E4(temp_r3);
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
if (lbl_1_bss_764.unk04 != NULL) {
|
||||
lbl_1_bss_764.unk04(temp_r3, &lbl_1_bss_764);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_12C94(s32 arg0) {
|
||||
s32 spC[4];
|
||||
s32 i;
|
||||
|
||||
spC[0] = 0;
|
||||
for (i = 1; i < 4; i++) {
|
||||
spC[i] = spC[i - 1] + 1;
|
||||
if (spC[i] >= 4) {
|
||||
spC[i] = 0;
|
||||
}
|
||||
if (arg0 == spC[i]) {
|
||||
lbl_1_bss_7B4.unk04 = i;
|
||||
}
|
||||
}
|
||||
for (i = 0; i < 4; i++) {
|
||||
fn_1_352C(&lbl_1_bss_7B4.unk34[i], spC[i]);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_12D78(omObjData* arg0) {
|
||||
s32 temp_r30;
|
||||
|
||||
temp_r30 = lbl_1_bss_7B4.unk34[lbl_1_bss_7B4.unk04].unk10;
|
||||
arg0->model[1] = CharModelCreate(temp_r30, 1);
|
||||
arg0->motion[1] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0));
|
||||
arg0->motion[2] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 24));
|
||||
arg0->motion[3] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 52));
|
||||
arg0->motion[4] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 72));
|
||||
arg0->motion[5] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 53));
|
||||
CharModelVoiceEnableSet(temp_r30, arg0->motion[2], 0);
|
||||
CharModelMotionDataClose(temp_r30);
|
||||
Hu3DModelPosSet(arg0->model[1], 120.0f, 0.0f, 670.0f);
|
||||
Hu3DModelRotSet(arg0->model[1], 0.0f, -45.0f, 0.0f);
|
||||
Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f);
|
||||
Hu3DModelShadowSet(arg0->model[1]);
|
||||
fn_1_1DCC(arg0, 1, 1, 0, 1);
|
||||
}
|
||||
|
||||
void fn_1_12F20(omObjData* arg0, StructBss19C* arg1) {
|
||||
if (arg0->motion[2] == Hu3DMotionIDGet(arg0->model[1]) && Hu3DMotionEndCheck(arg0->model[1])) {
|
||||
fn_1_1DCC(arg0, 1, 3, 15, 1);
|
||||
arg1->unk04 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_12FA8(omObjData* arg0, StructBss19C* arg1) {
|
||||
s32 i;
|
||||
|
||||
fn_1_BAC(10);
|
||||
fn_1_1DCC(arg0, 1, 5, 15, 0);
|
||||
fn_1_B8C();
|
||||
Hu3DMotionTimeSet(arg0->model[1], 60.0f);
|
||||
for (i = 0; i < 50; i++) {
|
||||
fn_1_B8C();
|
||||
Hu3DData[arg0->model[1]].rot.y = fn_1_828(-60.0f, -120.0f, i, 60.0f);
|
||||
}
|
||||
fn_1_1DCC(arg0, 1, 1, 15, 1);
|
||||
arg1->unk04 = 0;
|
||||
}
|
||||
|
||||
void fn_1_130C0(void) {
|
||||
omObjData* temp_r3;
|
||||
|
||||
temp_r3 = omAddObjEx(lbl_1_bss_710, 0x100, 16, 16, -1, NULL);
|
||||
lbl_1_bss_73C.unk00 = temp_r3;
|
||||
lbl_1_bss_73C.unk04 = NULL;
|
||||
lbl_1_bss_73C.unk00->data = &lbl_1_bss_73C;
|
||||
fn_1_12D78(temp_r3);
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
if (lbl_1_bss_73C.unk04 != NULL) {
|
||||
lbl_1_bss_73C.unk04(temp_r3, &lbl_1_bss_73C);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_132EC(omObjData* arg0, s32 arg1) {
|
||||
s32 sp8[] = {
|
||||
DATA_MAKE_NUM(DATADIR_MSTORY, 97),
|
||||
DATA_MAKE_NUM(DATADIR_MSTORY, 108),
|
||||
DATA_MAKE_NUM(DATADIR_MSTORY, 116),
|
||||
DATA_MAKE_NUM(DATADIR_MSTORY, 124),
|
||||
DATA_MAKE_NUM(DATADIR_MSTORY, 131)
|
||||
};
|
||||
s32 sp1C[][3] = {
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x62), DATA_MAKE_NUM(DATADIR_MSTORY, 0x65), DATA_MAKE_NUM(DATADIR_MSTORY, 0x67) },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x6D), DATA_MAKE_NUM(DATADIR_MSTORY, 0x70), DATA_MAKE_NUM(DATADIR_MSTORY, 0x72) },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x75), DATA_MAKE_NUM(DATADIR_MSTORY, 0x78), DATA_MAKE_NUM(DATADIR_MSTORY, 0x7A) },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x7D), DATA_MAKE_NUM(DATADIR_MSTORY, 0x7F), DATA_MAKE_NUM(DATADIR_MSTORY, 0x81) },
|
||||
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x84), DATA_MAKE_NUM(DATADIR_MSTORY, 0x87), DATA_MAKE_NUM(DATADIR_MSTORY, 0x89) }
|
||||
};
|
||||
|
||||
arg0->model[1] = Hu3DModelCreateFile(sp8[arg1]);
|
||||
arg0->motion[1] = Hu3DJointMotionFile(arg0->model[1], sp1C[arg1][0]);
|
||||
arg0->motion[2] = Hu3DJointMotionFile(arg0->model[1], sp1C[arg1][1]);
|
||||
arg0->motion[3] = Hu3DJointMotionFile(arg0->model[1], sp1C[arg1][2]);
|
||||
Hu3DModelPosSet(arg0->model[1], -120.0f, 0.0f, 670.0f);
|
||||
Hu3DModelRotSet(arg0->model[1], 0.0f, 45.0f, 0.0f);
|
||||
Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f);
|
||||
if (arg1 == 3) {
|
||||
Hu3DData[arg0->model[1]].pos.y = 50.0f;
|
||||
}
|
||||
Hu3DModelShadowSet(arg0->model[1]);
|
||||
fn_1_1DCC(arg0, 1, 1, 0, 1);
|
||||
}
|
||||
|
||||
void fn_1_13570(void) {
|
||||
omObjData* temp_r3;
|
||||
|
||||
temp_r3 = omAddObjEx(lbl_1_bss_710, 0x100, 16, 16, -1, NULL);
|
||||
lbl_1_bss_714.unk00 = temp_r3;
|
||||
lbl_1_bss_714.unk04 = NULL;
|
||||
lbl_1_bss_714.unk00->data = &lbl_1_bss_714;
|
||||
fn_1_132EC(temp_r3, lbl_1_bss_7B4.unk00);
|
||||
while (TRUE) {
|
||||
fn_1_B8C();
|
||||
if (lbl_1_bss_714.unk04 != NULL) {
|
||||
lbl_1_bss_714.unk04(temp_r3, &lbl_1_bss_714);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_13880(void) {
|
||||
StructBss4* var_r31;
|
||||
|
||||
var_r31 = &lbl_1_bss_4;
|
||||
var_r31->unk08.x = 0.0f;
|
||||
var_r31->unk08.y = 125.0f;
|
||||
var_r31->unk08.z = 0.0f;
|
||||
var_r31->unk20.x = -5.0f;
|
||||
var_r31->unk20.y = 0.0f;
|
||||
var_r31->unk20.z = 0.0f;
|
||||
var_r31->unk38 = 1750.0f;
|
||||
}
|
||||
|
||||
void fn_1_1390C(void) {
|
||||
StructBss4* var_r31;
|
||||
StructBss4 sp8;
|
||||
|
||||
var_r31 = &lbl_1_bss_4;
|
||||
if (var_r31->unk40 == 50) {
|
||||
fn_1_1DCC(lbl_1_bss_764.unk00, 5, 5, 0, 0);
|
||||
fn_1_1DCC(lbl_1_bss_764.unk00, 6, 6, 0, 0);
|
||||
HuAudFXPlay(0xA1);
|
||||
}
|
||||
sp8.unk08.x = 0.0f;
|
||||
sp8.unk08.y = 130.0f;
|
||||
sp8.unk08.z = 460.0f;
|
||||
sp8.unk20.x = 0.0f;
|
||||
sp8.unk20.y = 0.0f;
|
||||
sp8.unk20.z = 0.0f;
|
||||
sp8.unk38 = 150.0f;
|
||||
fn_1_51D0(var_r31, &sp8, var_r31->unk40, 180.0f, 10.0f);
|
||||
if (var_r31->unk40++ >= 90) {
|
||||
if (var_r31->unk40 == 91) {
|
||||
lbl_1_bss_68 = HuAudFXPlay(0x21);
|
||||
}
|
||||
var_r31->unk20.x = fn_1_828(var_r31->unk20.x, -45.0f, var_r31->unk40 - 90, 90.0f);
|
||||
Hu3DData[lbl_1_bss_764.unk00->model[5]].rot.x = fn_1_828(0.0f, 45.0f, var_r31->unk40 - 90, 90.0f);
|
||||
}
|
||||
}
|
||||
116
src/REL/mstoryDll/save.c
Executable file
116
src/REL/mstoryDll/save.c
Executable file
|
|
@ -0,0 +1,116 @@
|
|||
#include "REL/mstoryDll.h"
|
||||
#include "game/data.h"
|
||||
#include "game/esprite.h"
|
||||
#include "game/flag.h"
|
||||
#include "game/hsfman.h"
|
||||
#include "game/saveload.h"
|
||||
#include "game/sprite.h"
|
||||
#include "game/window.h"
|
||||
#include "game/wipe.h"
|
||||
|
||||
s32 lbl_1_bss_8BC;
|
||||
Process* lbl_1_bss_8B8;
|
||||
|
||||
s32 fn_1_13B48(s32 arg0) {
|
||||
if (arg0 == 0 && _CheckFlag(FLAG_ID_MAKE(0, 2))) {
|
||||
return 1;
|
||||
}
|
||||
if (arg0 == 1 && _CheckFlag(FLAG_ID_MAKE(0, 3))) {
|
||||
return 1;
|
||||
}
|
||||
if (arg0 == 2 && _CheckFlag(FLAG_ID_MAKE(0, 4))) {
|
||||
return 1;
|
||||
}
|
||||
if (arg0 == 3 && _CheckFlag(FLAG_ID_MAKE(0, 5))) {
|
||||
return 1;
|
||||
}
|
||||
if (arg0 == 4 && _CheckFlag(FLAG_ID_MAKE(0, 6))) {
|
||||
return 1;
|
||||
}
|
||||
if (arg0 == 5 && _CheckFlag(FLAG_ID_MAKE(0, 7))) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void fn_1_13C34(void) {
|
||||
float sp8[2];
|
||||
s32 temp_r30;
|
||||
s32 var_r29;
|
||||
s32 var_r31;
|
||||
|
||||
temp_r30 = 1;
|
||||
Hu3DAllKill();
|
||||
HuSprClose();
|
||||
HuSprInit();
|
||||
if (SLSaveFlagGet() == 0) {
|
||||
lbl_1_bss_8BC = 1;
|
||||
HuPrcEnd();
|
||||
while (TRUE) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
espInit();
|
||||
HuPrcVSleep();
|
||||
var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_WIN, 32), 5000, 0);
|
||||
espPosSet(var_r29, 288.0f, 240.0f);
|
||||
espAttrReset(var_r29, 4);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
if (SLSaveFlagGet() == 1) {
|
||||
HuWinInit(1);
|
||||
HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(30, 22));
|
||||
var_r31 = HuWinExCreateStyled(-10000.0f, 150.0f, sp8[0], sp8[1], -1, 2);
|
||||
winData[var_r31].active_pad = 1;
|
||||
HuWinAttrSet(var_r31, 0x10);
|
||||
HuWinExAnimIn(var_r31);
|
||||
HuWinMesSet(var_r31, MAKE_MESSID(30, 22));
|
||||
temp_r30 = HuWinChoiceGet(var_r31, 0);
|
||||
HuWinExAnimOut(var_r31);
|
||||
HuWinExCleanup(var_r31);
|
||||
if (SLSaveFlagGet() == 1 && temp_r30 == 0) {
|
||||
SLCommonSet();
|
||||
SLSaveBoardStory();
|
||||
SLSave();
|
||||
}
|
||||
}
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
lbl_1_bss_8BC = 1;
|
||||
HuPrcEnd();
|
||||
while (TRUE) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_13E2C(void) {
|
||||
_SetFlag(9);
|
||||
if (_CheckFlag(FLAG_ID_MAKE(0, 2)) && _CheckFlag(FLAG_ID_MAKE(0, 3)) && _CheckFlag(FLAG_ID_MAKE(0, 4)) && _CheckFlag(FLAG_ID_MAKE(0, 5)) && _CheckFlag(FLAG_ID_MAKE(0, 6))) {
|
||||
OSReport("########## Next to MapSelect Event 11 -> MapNo:%d, MapFlg:%d, MgFlg:%d\n", GWSystem.board, fn_1_13B48(GWSystem.board), _CheckFlag(9));
|
||||
HuPrcChildCreate(fn_1_13C34, 100, 0x2000, 0, HuPrcCurrentGet());
|
||||
do {
|
||||
fn_1_B8C();
|
||||
} while (lbl_1_bss_8BC != 1);
|
||||
omOvlGotoEx(OVL_MSTORY2, 1, 0, 0);
|
||||
} else {
|
||||
OSReport("########## Next to MapSelect Event 11 -> MapNo:%d, MapFlg:%d, MgFlg:%d\n", GWSystem.board, fn_1_13B48(GWSystem.board), _CheckFlag(9));
|
||||
HuPrcChildCreate(fn_1_13C34, 100, 0x2000, 0, HuPrcCurrentGet());
|
||||
do {
|
||||
fn_1_B8C();
|
||||
} while (lbl_1_bss_8BC != 1);
|
||||
omOvlGotoEx(OVL_MENT, 1, 10, 0);
|
||||
}
|
||||
HuPrcEnd();
|
||||
while (TRUE) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_14150(Process* arg0) {
|
||||
lbl_1_bss_8B8 = arg0;
|
||||
HuPrcChildCreate(fn_1_13E2C, 100, 0x2000, 0, HuPrcCurrentGet());
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue