Match rest of mstory2 (#521)
This commit is contained in:
parent
98a95407ff
commit
f28e9d19aa
12 changed files with 2142 additions and 13 deletions
|
|
@ -38,13 +38,13 @@ REL/mstory2Dll/mg_clear.c:
|
|||
|
||||
REL/mstory2Dll/mg_miss.c:
|
||||
.text start:0x00016060 end:0x000186D0
|
||||
.rodata start:0x000003D0 end:0x00000440
|
||||
.rodata start:0x000003D0 end:0x00000438
|
||||
.data start:0x00000DB8 end:0x00000EF8
|
||||
.bss start:0x00000968 end:0x00000B38
|
||||
|
||||
REL/mstory2Dll/ending.c:
|
||||
.text start:0x000186D0 end:0x0001B560
|
||||
.rodata start:0x00000440 end:0x000004B8
|
||||
.rodata start:0x00000438 end:0x000004B8
|
||||
.data start:0x00000EF8 end:0x00001113
|
||||
.bss start:0x00000B38 end:0x00000D10
|
||||
|
||||
|
|
|
|||
|
|
@ -38,13 +38,13 @@ REL/mstory2Dll/mg_clear.c:
|
|||
|
||||
REL/mstory2Dll/mg_miss.c:
|
||||
.text start:0x00016060 end:0x000186D0
|
||||
.rodata start:0x000003D0 end:0x00000440
|
||||
.rodata start:0x000003D0 end:0x00000438
|
||||
.data start:0x00000DB8 end:0x00000EF8
|
||||
.bss start:0x00000968 end:0x00000B38
|
||||
|
||||
REL/mstory2Dll/ending.c:
|
||||
.text start:0x000186D0 end:0x0001B560
|
||||
.rodata start:0x00000440 end:0x000004B8
|
||||
.rodata start:0x00000438 end:0x000004B8
|
||||
.data start:0x00000EF8 end:0x00001113
|
||||
.bss start:0x00000B38 end:0x00000D10
|
||||
|
||||
|
|
|
|||
|
|
@ -1374,10 +1374,10 @@ config.libs = [
|
|||
Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/board_entrance.c"),
|
||||
Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/board_clear.c"),
|
||||
Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/board_miss.c"),
|
||||
Object(NonMatching, "REL/mstory2Dll/mg_clear.c"),
|
||||
Object(NonMatching, "REL/mstory2Dll/mg_miss.c"),
|
||||
Object(NonMatching, "REL/mstory2Dll/ending.c"),
|
||||
Object(NonMatching, "REL/mstory2Dll/save.c"),
|
||||
Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/mg_clear.c"),
|
||||
Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/mg_miss.c"),
|
||||
Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/ending.c"),
|
||||
Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/save.c"),
|
||||
},
|
||||
),
|
||||
Rel(
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@ float fn_1_864(float arg0, float arg1, float arg2, float arg3);
|
|||
float fn_1_88C(float arg0, float arg1, float arg2);
|
||||
float fn_1_8AC(float arg0, float arg1, float arg2, float arg3);
|
||||
float fn_1_984(float arg0, float arg1, float arg2, float arg3);
|
||||
float fn_1_A4C(float arg0, float arg1, float arg2, float arg3);
|
||||
float fn_1_B08(float arg0, float arg1, float arg2, float arg3);
|
||||
void fn_1_BC8(void);
|
||||
void fn_1_BE8(s32 arg0);
|
||||
|
|
@ -77,6 +78,7 @@ void fn_1_6704(omObjData* arg0);
|
|||
void fn_1_67D8(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4);
|
||||
void fn_1_6A90(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4);
|
||||
void fn_1_6D78(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
|
||||
void fn_1_6DBC(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
|
||||
s32 fn_1_7064(s32 arg0, s32 arg1);
|
||||
void fn_1_71DC(s32 arg0);
|
||||
void fn_1_7244(s16 modelId, char *objName, u32 constAttr, float ofs);
|
||||
|
|
|
|||
|
|
@ -40,7 +40,8 @@ typedef struct system_state {
|
|||
};
|
||||
/* 0x09 */ s8 last5_effect;
|
||||
/* 0x0A */ s8 player_curr;
|
||||
/* 0x0B */ s8 unk0B[3];
|
||||
/* 0x0B */ u8 unk0B;
|
||||
/* 0x0C */ s8 unk0C;
|
||||
/* 0x0E */ s16 block_pos;
|
||||
/* 0x10 */ u8 ATTRIBUTE_ALIGN(4) board_data[32];
|
||||
/* 0x30 */ u8 mess_delay;
|
||||
|
|
@ -316,7 +317,7 @@ static inline s32 GWPlayerCurrGet(void)
|
|||
|
||||
static inline s32 GWUnkB1Get(void)
|
||||
{
|
||||
return GWSystem.unk0B[1];
|
||||
return GWSystem.unk0C;
|
||||
}
|
||||
|
||||
static inline s32 GWPlayerTeamGet(s32 player)
|
||||
|
|
|
|||
|
|
@ -2696,7 +2696,7 @@ void fn_1_E71C(s32 arg0)
|
|||
inline void fn_1_E874_inline(void)
|
||||
{
|
||||
s32 sp18 = lbl_1_bss_3114[0].unk_68;
|
||||
GWSystem.unk0B[1] = sp18;
|
||||
GWSystem.unk0C = sp18;
|
||||
}
|
||||
|
||||
void fn_1_E874(omObjData *arg0, MentDllUnkBss35BCStruct *arg1)
|
||||
|
|
|
|||
|
|
@ -1859,7 +1859,7 @@ void fn_1_A8C0(s16 boxno)
|
|||
SLLoadBoardStory();
|
||||
lbl_1_bss_EE[boxno] = GWGameStat.total_stars;
|
||||
lbl_1_bss_D0[boxno] = GWGameStat.create_time;
|
||||
lbl_1_bss_E8[boxno] = GWSystem.unk0B[1];
|
||||
lbl_1_bss_E8[boxno] = GWSystem.unk0C;
|
||||
lbl_1_bss_C4[boxno] = GWGameStat.story_continue;
|
||||
lbl_1_bss_B8[boxno] = GWGameStat.party_continue;
|
||||
if (GWGameStat.story_continue) {
|
||||
|
|
|
|||
676
src/REL/mstory2Dll/ending.c
Normal file
676
src/REL/mstory2Dll/ending.c
Normal file
|
|
@ -0,0 +1,676 @@
|
|||
#include "REL/mstory2Dll.h"
|
||||
#include "game/armem.h"
|
||||
#include "game/board/main.h"
|
||||
#include "game/chrman.h"
|
||||
#include "game/data.h"
|
||||
#include "game/gamework.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"
|
||||
#include "game/pad.h"
|
||||
#include "game/objsub.h"
|
||||
#include "game/esprite.h"
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ s32 unk00;
|
||||
/* 0x004 */ s32 unk04;
|
||||
/* 0x008 */ s32 unk08;
|
||||
/* 0x00C */ s32 unk0C;
|
||||
/* 0x010 */ s32 unk10;
|
||||
/* 0x014 */ s32 unk14;
|
||||
/* 0x018 */ char unk18[0x18];
|
||||
/* 0x030 */ StructFn357C unk30[4];
|
||||
/* 0x100 */ float unk100;
|
||||
} StructBssC0C; // Size 0x104
|
||||
|
||||
StructBssC0C lbl_1_bss_C0C;
|
||||
StructBss16C lbl_1_bss_BE4;
|
||||
StructBss16C lbl_1_bss_BBC;
|
||||
StructBss16C lbl_1_bss_B94;
|
||||
StructBss16C lbl_1_bss_B6C;
|
||||
StructBss16C lbl_1_bss_B44;
|
||||
BOOL lbl_1_bss_B40;
|
||||
BOOL lbl_1_bss_B3C;
|
||||
Process *lbl_1_bss_B38;
|
||||
|
||||
s32 lbl_1_data_EF8[2][2] = { 20, 70, 1, 1 };
|
||||
s32 lbl_1_data_F08 = -1;
|
||||
s32 lbl_1_data_F0C[2] = { -1, -1 };
|
||||
s32 lbl_1_data_F14 = 127;
|
||||
|
||||
void fn_1_19F14(void);
|
||||
void fn_1_1A160(void);
|
||||
void fn_1_1A538(omObjData* arg0, StructBss16C* arg1);
|
||||
void fn_1_1A578(void);
|
||||
void fn_1_1A9D0(omObjData* arg0, StructBss16C* arg1);
|
||||
void fn_1_1AAB4(void);
|
||||
void fn_1_1AFD4(omObjData* arg0, StructBss16C* arg1);
|
||||
void fn_1_1B0E4(void);
|
||||
void fn_1_1AD3C(int arg0);
|
||||
void fn_1_1B318(void);
|
||||
void fn_1_1B3A4(void);
|
||||
void fn_1_1B430(void);
|
||||
|
||||
void fn_1_186D0(void)
|
||||
{
|
||||
int i;
|
||||
while(1) {
|
||||
HuPrcVSleep();
|
||||
if(lbl_1_data_F08 != -1 && lbl_1_data_F0C[0] != -1 && lbl_1_data_F0C[1] != -1 && lbl_1_data_F0C[0] == Hu3DMotionIDGet(lbl_1_data_F08)) {
|
||||
for(i=0; i<2; i++) {
|
||||
if(lbl_1_data_EF8[1][i] != -1) {
|
||||
if(Hu3DMotionTimeGet(lbl_1_data_F08) >= lbl_1_data_EF8[0][i]) {
|
||||
OSReport("KE-System TIME:%d\n", lbl_1_data_EF8[0][i]);
|
||||
HuAudFXPlayVol(81, lbl_1_data_F14);
|
||||
lbl_1_data_EF8[1][i] = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(Hu3DMotionTimeGet(lbl_1_data_F08) <= 10) {
|
||||
for(i=0; i<2; i++) {
|
||||
lbl_1_data_EF8[1][i] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(lbl_1_bss_B3C == 1) {
|
||||
lbl_1_data_F14--;
|
||||
if(lbl_1_data_F14 <= 0) {
|
||||
lbl_1_data_F14 = 0;
|
||||
}
|
||||
}
|
||||
if(lbl_1_bss_B3C == 2) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
HuPrcEnd();
|
||||
while(1) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_188F0(Process* arg0, s32 arg1)
|
||||
{
|
||||
lbl_1_bss_B38 = arg0;
|
||||
if(GWSystem.diff_story == 2) {
|
||||
GWGameStat.field10E_bit4 = TRUE;
|
||||
}
|
||||
lbl_1_bss_C0C.unk0C = arg1;
|
||||
fn_1_C30();
|
||||
fn_1_3668(255);
|
||||
fn_1_2828(lbl_1_bss_B38, fn_1_1B318);
|
||||
fn_1_3754();
|
||||
fn_1_1AD3C(arg1);
|
||||
HuPrcChildCreate(fn_1_1B0E4, 100, 8192, 0, HuPrcCurrentGet());
|
||||
HuPrcChildCreate(fn_1_1A160, 100, 8192, 0, HuPrcCurrentGet());
|
||||
HuPrcChildCreate(fn_1_1AAB4, 100, 8192, 0, HuPrcCurrentGet());
|
||||
HuPrcChildCreate(fn_1_1A578, 100, 8192, 0, HuPrcCurrentGet());
|
||||
HuPrcChildCreate(fn_1_19F14, 100, 12288, 0, HuPrcCurrentGet());
|
||||
}
|
||||
|
||||
void fn_1_18A34(omObjData *object)
|
||||
{
|
||||
if(object->work[2]) {
|
||||
object->work[2]--;
|
||||
return;
|
||||
}
|
||||
if(object->work[2] == 0 && Hu3DMotionEndCheck(object->model[1])) {
|
||||
fn_1_1DFC(object, 1, object->work[1], 15, 1);
|
||||
object->work[0] = object->work[1] = object->work[2] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_18AC0(void)
|
||||
{
|
||||
int posX = 16;
|
||||
int posY = 40;
|
||||
GXColor winColor = { 0, 0, 128, 128 };
|
||||
int i;
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
fontcolor = FONT_COLOR_WHITE;
|
||||
printWin(posX, posY, 220, 130, &winColor);
|
||||
if(lbl_1_bss_BE4.unk04 == NULL) {
|
||||
print8(posX, posY, 1, "PROC_MAIN -> FALSE");
|
||||
} else {
|
||||
print8(posX, posY, 1, "PROC_MAIN -> TRUE");
|
||||
}
|
||||
if(lbl_1_bss_BBC.unk04 == NULL) {
|
||||
print8(posX, posY+10, 1, "PROC_MAP -> FALSE");
|
||||
} else {
|
||||
print8(posX, posY+10, 1, "PROC_MAP -> TRUE");
|
||||
}
|
||||
if(lbl_1_bss_B94.unk04 == NULL) {
|
||||
print8(posX, posY+20, 1, "PROC_PLAYER -> FALSE");
|
||||
} else {
|
||||
print8(posX, posY+20, 1, "PROC_PLAYER -> TRUE");
|
||||
}
|
||||
if(lbl_1_bss_B6C.unk04 == NULL) {
|
||||
print8(posX, posY+30, 1, "PROC_SUB -> FALSE");
|
||||
} else {
|
||||
print8(posX, posY+30, 1, "PROC_SUB -> TRUE");
|
||||
}
|
||||
if(lbl_1_bss_B44.unk04 == NULL) {
|
||||
print8(posX, posY+40, 1, "PROC_KOOPA -> FALSE");
|
||||
} else {
|
||||
print8(posX, posY+40, 1, "PROC_KOOPA -> TRUE");
|
||||
}
|
||||
|
||||
print8(posX, posY+60, 1, "P:%d W:%d", lbl_1_bss_C0C.unk00, lbl_1_bss_C0C.unk0C);
|
||||
print8(posX, posY+80, 1, "NO) IDX:GRP:COM:DIF:PAD:CHR");
|
||||
for(i=0; i<4; i++) {
|
||||
print8(posX, posY+90+(i*10), 1, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, lbl_1_bss_C0C.unk30[i].unk00, lbl_1_bss_C0C.unk30[i].unk04, lbl_1_bss_C0C.unk30[i].unk08, lbl_1_bss_C0C.unk30[i].unk0C, lbl_1_bss_C0C.unk30[i].unk14, lbl_1_bss_C0C.unk30[i].unk10);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_18E7C(void)
|
||||
{
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1);
|
||||
do {
|
||||
fn_1_BC8();
|
||||
} while (WipeStatGet());
|
||||
fn_1_BE8(60);
|
||||
}
|
||||
|
||||
void fn_1_18EC4(void)
|
||||
{
|
||||
lbl_1_bss_C0C.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_C0C.unk0C);
|
||||
HuAudFXPlay(lbl_1_data_0[6][1]);
|
||||
fn_1_1D18(lbl_1_bss_C0C.unk04, 0x1F001E);
|
||||
fn_1_1AFC(lbl_1_bss_C0C.unk04, -1);
|
||||
fn_1_1D18(lbl_1_bss_C0C.unk04, 0x250004);
|
||||
fn_1_1A94(lbl_1_bss_C0C.unk04);
|
||||
lbl_1_bss_B44.unk04 = (void *)fn_1_1A538;
|
||||
lbl_1_bss_B3C = 1;
|
||||
fn_1_BE8(60);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1);
|
||||
do {
|
||||
fn_1_BC8();
|
||||
} while (WipeStatGet());
|
||||
fn_1_BE8(60);
|
||||
lbl_1_bss_B44.unk04 = NULL;
|
||||
lbl_1_bss_B3C = 2;
|
||||
fn_1_1DFC(lbl_1_bss_B44.unk00, 1, 1, 0, 1);
|
||||
fn_1_2750(fn_1_1B3A4);
|
||||
Hu3DModelAttrReset(lbl_1_bss_BBC.unk00->model[1], 1);
|
||||
Hu3DModelAttrReset(lbl_1_bss_BBC.unk00->model[2], 1);
|
||||
Hu3DModelAttrReset(lbl_1_bss_BBC.unk00->model[4], 1);
|
||||
Hu3DModelAttrReset(lbl_1_bss_B6C.unk00->model[1], 1);
|
||||
Hu3DModelAttrReset(lbl_1_bss_B94.unk00->model[1], 1);
|
||||
Hu3DModelAttrSet(lbl_1_bss_B44.unk00->model[1], 1);
|
||||
Hu3DModelPosSet(lbl_1_bss_BBC.unk00->model[1], 0, 0, 0);
|
||||
fn_1_BE8(60);
|
||||
lbl_1_bss_78[0] = HuAudSeqPlay(56);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1);
|
||||
do {
|
||||
fn_1_BC8();
|
||||
} while (WipeStatGet());
|
||||
if(0) {
|
||||
fn_1_BC8();
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_19138(void)
|
||||
{
|
||||
fn_1_1DFC(lbl_1_bss_BBC.unk00, 2, 3, 0, 0);
|
||||
fn_1_2264(lbl_1_bss_BBC.unk00, 2, 3, 0);
|
||||
lbl_1_bss_B94.unk04 = (void *)fn_1_1AFD4;
|
||||
lbl_1_bss_B6C.unk04 = (void *)fn_1_1A9D0;
|
||||
fn_1_3854(&lbl_1_bss_24);
|
||||
fn_1_2750(fn_1_1B430);
|
||||
fn_1_BE8(30);
|
||||
fn_1_1DFC(lbl_1_bss_BBC.unk00, 2, 2, 0, 0);
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
if(lbl_1_bss_B94.unk04 == NULL) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
if(lbl_1_bss_B6C.unk04 == NULL) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
lbl_1_bss_C0C.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_C0C.unk0C);
|
||||
HuAudFXPlay(lbl_1_data_0[0][2]);
|
||||
fn_1_1DFC(lbl_1_bss_B6C.unk00, 1, 3, 15, 1);
|
||||
fn_1_1D18(lbl_1_bss_C0C.unk04, 0x1F001F);
|
||||
fn_1_1AFC(lbl_1_bss_C0C.unk04, -1);
|
||||
fn_1_1D18(lbl_1_bss_C0C.unk04, 0x1F0020);
|
||||
fn_1_1AFC(lbl_1_bss_C0C.unk04, -1);
|
||||
fn_1_1D18(lbl_1_bss_C0C.unk04, 0x250004);
|
||||
fn_1_1DFC(lbl_1_bss_B6C.unk00, 1, 1, 15, 1);
|
||||
fn_1_1A94(lbl_1_bss_C0C.unk04);
|
||||
fn_1_BE8(60);
|
||||
}
|
||||
|
||||
char *lbl_1_data_10E4[8] = {
|
||||
"movie/endmov_ma0.thp",
|
||||
"movie/endmov_lu0.thp",
|
||||
"movie/endmov_pe0.thp",
|
||||
"movie/endmov_yo0.thp",
|
||||
"movie/endmov_wa0.thp",
|
||||
"movie/endmov_do0.thp",
|
||||
"movie/endmov_da0.thp",
|
||||
"movie/endmov_wl0.thp"
|
||||
};
|
||||
|
||||
void fn_1_19334(void)
|
||||
{
|
||||
lbl_1_bss_C0C.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_C0C.unk0C);
|
||||
HuAudFXPlay(lbl_1_data_0[0][2]);
|
||||
fn_1_1DFC(lbl_1_bss_B6C.unk00, 1, 3, 0, 1);
|
||||
fn_1_1D4C(lbl_1_bss_C0C.unk04, lbl_1_bss_C0C.unk30[lbl_1_bss_C0C.unk00].unk10, 0);
|
||||
fn_1_1D18(lbl_1_bss_C0C.unk04, 0x1F0024);
|
||||
fn_1_1AFC(lbl_1_bss_C0C.unk04, -1);
|
||||
fn_1_1D18(lbl_1_bss_C0C.unk04, 0x250004);
|
||||
fn_1_1DFC(lbl_1_bss_B6C.unk00, 1, 1, 0, 1);
|
||||
fn_1_1A94(lbl_1_bss_C0C.unk04);
|
||||
fn_1_1DFC(lbl_1_bss_B94.unk00, 1, 4, 15, 0);
|
||||
fn_1_2264(lbl_1_bss_B94.unk00, 1, 4, 15);
|
||||
fn_1_1DFC(lbl_1_bss_B94.unk00, 1, 3, 15, 1);
|
||||
fn_1_BE8(60);
|
||||
lbl_1_bss_C0C.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_C0C.unk0C);
|
||||
fn_1_1DFC(lbl_1_bss_B6C.unk00, 1, 3, 0, 1);
|
||||
fn_1_6D78(lbl_1_bss_C0C.unk04, 0x1F0023, 0, -1);
|
||||
fn_1_1D18(lbl_1_bss_C0C.unk04, 0x250004);
|
||||
fn_1_1DFC(lbl_1_bss_B6C.unk00, 1, 1, 0, 1);
|
||||
HuAudFXPlay(lbl_1_data_0[0][3]);
|
||||
fn_1_1A94(lbl_1_bss_C0C.unk04);
|
||||
fn_1_BE8(60);
|
||||
HuAudFXPlay(152);
|
||||
Hu3DModelAttrSet(lbl_1_bss_BBC.unk00->model[1], 1);
|
||||
Hu3DModelAttrSet(lbl_1_bss_BBC.unk00->model[2], 1);
|
||||
Hu3DModelAttrSet(lbl_1_bss_BBC.unk00->model[4], 1);
|
||||
Hu3DModelAttrSet(lbl_1_bss_B6C.unk00->model[1], 1);
|
||||
Hu3DModelAttrSet(lbl_1_bss_B94.unk00->model[1], 1);
|
||||
HuAudSeqFadeOut(lbl_1_bss_78[0], 100);
|
||||
lbl_1_bss_B3C = 2;
|
||||
GWGameStat.field10E_bit6 = TRUE;
|
||||
WipeColorSet(0, 0, 0);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1);
|
||||
while (WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
lbl_1_bss_BBC.unk04 = NULL;
|
||||
lbl_1_bss_B94.unk04 = NULL;
|
||||
lbl_1_bss_B44.unk04 = NULL;
|
||||
lbl_1_bss_B6C.unk04 = NULL;
|
||||
|
||||
CharModelKill(-1);
|
||||
Hu3DAllKill();
|
||||
fn_1_BE8(60);
|
||||
{
|
||||
int time = 0;
|
||||
int gid = HuSprGrpCreate(3);
|
||||
int sprid = HuTHPSprCreate(lbl_1_data_10E4[lbl_1_bss_C0C.unk30[lbl_1_bss_C0C.unk00].unk10], FALSE, 1000);
|
||||
HuSprGrpMemberSet(gid, 0, sprid);
|
||||
HuSprPosSet(gid, 0, 288, 240);
|
||||
sprid = HuSprCreate(HuSprAnimRead(HuDataReadNum(0x660060, 0x10000000)), 950, 0);
|
||||
HuSprGrpMemberSet(gid, 1, sprid);
|
||||
HuSprPosSet(gid, 1, 288, 226);
|
||||
HuSprAttrSet(gid, 1, HUSPR_ATTR_DISPOFF);
|
||||
sprid = HuSprCreate(HuSprAnimRead(HuDataReadNum(0x660061, 0x10000000)), 950, 0);
|
||||
HuSprGrpMemberSet(gid, 2, sprid);
|
||||
HuSprBankSet(gid, 2, lbl_1_bss_C0C.unk30[lbl_1_bss_C0C.unk00].unk10);
|
||||
if(GWLanguageGet() == 0 && lbl_1_bss_C0C.unk30[lbl_1_bss_C0C.unk00].unk10 == 5) {
|
||||
HuSprBankSet(gid, 2, 8);
|
||||
}
|
||||
HuSprPosSet(gid, 2, 288, 254);
|
||||
HuSprAttrSet(gid, 2, HUSPR_ATTR_DISPOFF);
|
||||
HuPrcSleep(5);
|
||||
WipeColorSet(0, 0, 0);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10);
|
||||
while(WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
while(!HuTHPEndCheck()) {
|
||||
if(time >= 3300) {
|
||||
HuSprAttrReset(gid, 1, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrReset(gid, 2, HUSPR_ATTR_DISPOFF);
|
||||
} else {
|
||||
time++;
|
||||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
WipeColorSet(0, 0, 0);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
||||
while(WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuTHPClose();
|
||||
HuPrcVSleep();
|
||||
HuSprGrpKill(gid);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void fn_1_199A0(void)
|
||||
{
|
||||
float sp8[2];
|
||||
s32 temp_r30;
|
||||
s32 var_r29;
|
||||
s32 var_r31;
|
||||
s32 var_r28;
|
||||
temp_r30 = 1;
|
||||
Hu3DAllKill();
|
||||
HuSprClose();
|
||||
HuSprInit();
|
||||
if (SLSaveFlagGet() == 0) {
|
||||
lbl_1_bss_B40 = 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();
|
||||
}
|
||||
fn_1_BE8(60);
|
||||
var_r28 = GWUnkB1Get();
|
||||
GWSystem.unk0B |= 1 << var_r28;
|
||||
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) {
|
||||
GWGameStat.story_continue = FALSE;
|
||||
SLCommonSet();
|
||||
SLSaveBoardStory();
|
||||
SLSave();
|
||||
}
|
||||
}
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
lbl_1_bss_B40 = 1;
|
||||
HuPrcEnd();
|
||||
while (TRUE) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_19BE8(void)
|
||||
{
|
||||
omOvlHisData *his;
|
||||
fn_1_BE8(120);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1);
|
||||
do {
|
||||
fn_1_BC8();
|
||||
} while (WipeStatGet());
|
||||
CharModelKill(-1);
|
||||
HuAudFadeOut(1);
|
||||
his = omOvlHisGet(0);
|
||||
omOvlHisChg(0, OVL_MSTORY2, 20, 1);
|
||||
omOvlCallEx(OVL_STAFF, 1, 0, 0);
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_19C6C(omObjData* arg0, StructBss16C* arg1)
|
||||
{
|
||||
int temp = 0;
|
||||
fn_1_18E7C();
|
||||
fn_1_18EC4();
|
||||
fn_1_19138();
|
||||
fn_1_19334();
|
||||
fn_1_19BE8();
|
||||
arg1->unk04 = NULL;
|
||||
}
|
||||
|
||||
void fn_1_19F14(void)
|
||||
{
|
||||
omObjData *obj;
|
||||
lbl_1_bss_BE4.unk00 = obj = omAddObjEx(lbl_1_bss_B38, 256, 16, 16, -1, NULL);
|
||||
lbl_1_bss_BE4.unk04 = (void *)fn_1_19C6C;
|
||||
lbl_1_bss_BE4.unk00->data = &lbl_1_bss_BE4;
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
if(lbl_1_bss_BE4.unk04 != NULL) {
|
||||
lbl_1_bss_BE4.unk04(obj, &lbl_1_bss_BE4);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_19FC8(omObjData *object)
|
||||
{
|
||||
object->model[1] = Hu3DModelCreateFile(0x660050);
|
||||
object->motion[0] = Hu3DMotionIDGet(object->model[1]);
|
||||
fn_1_1DFC(object, 1, 0, 0, 2);
|
||||
Hu3DModelShadowMapObjSet(object->model[1], "base_fix9-base");
|
||||
Hu3DModelAttrSet(object->model[1], 1);
|
||||
object->model[2] = Hu3DModelCreateFile(0x660053);
|
||||
object->motion[2] = Hu3DJointMotionFile(object->model[2], 0x660054);
|
||||
object->motion[3] = Hu3DJointMotionFile(object->model[2], 0x660055);
|
||||
Hu3DModelAttrSet(object->model[2], 1);
|
||||
fn_1_1DFC(object, 2, 3, 0, 2);
|
||||
object->model[4] = Hu3DModelCreateFile(0x660051);
|
||||
Hu3DModelAttrSet(object->model[4], 1);
|
||||
Hu3DModelPosSet(object->model[1], 0, -1000, 0);
|
||||
}
|
||||
|
||||
void fn_1_1A160(void)
|
||||
{
|
||||
omObjData *obj;
|
||||
lbl_1_bss_BBC.unk00 = obj = omAddObjEx(lbl_1_bss_B38, 256, 16, 16, -1, NULL);
|
||||
lbl_1_bss_BBC.unk04 = NULL;
|
||||
fn_1_19FC8(obj);
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
if(lbl_1_bss_BBC.unk04 != NULL) {
|
||||
lbl_1_bss_BBC.unk04(obj, &lbl_1_bss_BBC);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_1A368(omObjData *object)
|
||||
{
|
||||
object->model[1] = Hu3DModelCreateFile(0x660062);
|
||||
object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x660063);
|
||||
object->motion[2] = Hu3DJointMotionFile(object->model[1], 0x660070);
|
||||
object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660071);
|
||||
Hu3DModelPosSet(object->model[1], 0, 0, 600);
|
||||
Hu3DModelRotSet(object->model[1], 0, 180, 0);
|
||||
Hu3DModelScaleSet(object->model[1], 1, 1, 1);
|
||||
fn_1_1DFC(object, 1, 3, 0, 1);
|
||||
lbl_1_data_F08 = object->model[1];
|
||||
lbl_1_data_F0C[0] = object->motion[3];
|
||||
lbl_1_data_F0C[1] = object->motion[3];
|
||||
HuPrcChildCreate(fn_1_186D0, 100, 8192, 0, HuPrcCurrentGet());
|
||||
}
|
||||
|
||||
void fn_1_1A538(omObjData* arg0, StructBss16C* arg1)
|
||||
{
|
||||
Hu3DData[lbl_1_bss_B44.unk00->model[1]].pos.z -= 2.5f;
|
||||
}
|
||||
|
||||
void fn_1_1A578(void)
|
||||
{
|
||||
omObjData *obj;
|
||||
lbl_1_bss_B44.unk00 = obj = omAddObjEx(lbl_1_bss_B38, 256, 16, 16, -1, NULL);
|
||||
lbl_1_bss_B44.unk04 = NULL;
|
||||
fn_1_1A368(obj);
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
if(lbl_1_bss_B44.unk04 != NULL) {
|
||||
lbl_1_bss_B44.unk04(obj, &lbl_1_bss_B44);
|
||||
}
|
||||
if(obj->work[0]) {
|
||||
fn_1_6704(obj);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_1A7CC(omObjData *object)
|
||||
{
|
||||
object->model[1] = Hu3DModelCreateFile(0x660072);
|
||||
object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x660073);
|
||||
object->motion[2] = Hu3DJointMotionFile(object->model[1], 0x660075);
|
||||
object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660076);
|
||||
object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x66007C);
|
||||
object->motion[5] = Hu3DJointMotionFile(object->model[1], 0x660079);
|
||||
Hu3DModelPosSet(object->model[1], 0, 0, 460);
|
||||
Hu3DModelRotSet(object->model[1], 0, 0, 0);
|
||||
Hu3DModelScaleSet(object->model[1], 1, 1, 1);
|
||||
Hu3DModelAttrSet(object->model[1], 1);
|
||||
Hu3DModelShadowSet(object->model[1]);
|
||||
fn_1_1DFC(object, 1, 5, 0, 1);
|
||||
CharModelEffectNpcInit(object->model[1], object->motion[2], 1, 9);
|
||||
}
|
||||
|
||||
|
||||
void fn_1_1A9D0(omObjData* arg0, StructBss16C* arg1)
|
||||
{
|
||||
Vec pos = { -120, 0, 800 };
|
||||
fn_1_1DFC(arg0, 1, 2, 15, 1);
|
||||
fn_1_2D00(arg0, 1, pos, 90, 60, 10);
|
||||
fn_1_1DFC(arg0, 1, 1, 15, 1);
|
||||
arg1->unk04 = NULL;
|
||||
}
|
||||
|
||||
void fn_1_1AAB4(void)
|
||||
{
|
||||
omObjData *obj;
|
||||
lbl_1_bss_B6C.unk00 = obj = omAddObjEx(lbl_1_bss_B38, 256, 16, 16, -1, NULL);
|
||||
lbl_1_bss_B6C.unk04 = NULL;
|
||||
fn_1_1A7CC(obj);
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
if(lbl_1_bss_B6C.unk04 != NULL) {
|
||||
lbl_1_bss_B6C.unk04(obj, &lbl_1_bss_B6C);
|
||||
}
|
||||
if(obj->work[0]) {
|
||||
fn_1_6704(obj);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_1AD3C(int arg0)
|
||||
{
|
||||
int i;
|
||||
int order[4];
|
||||
order[0] = 0;
|
||||
for(i=1; i<4; i++) {
|
||||
order[i] = order[i-1]+1;
|
||||
if(order[i] >= 4) {
|
||||
order[i] = 0;
|
||||
}
|
||||
if(arg0 == order[i]) {
|
||||
lbl_1_bss_C0C.unk00 = i;
|
||||
}
|
||||
}
|
||||
for(i=0; i<4; i++) {
|
||||
fn_1_357C(&lbl_1_bss_C0C.unk30[i], order[i]);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_1AE20(omObjData *object)
|
||||
{
|
||||
int charNo = lbl_1_bss_C0C.unk30[lbl_1_bss_C0C.unk00].unk10;
|
||||
object->model[1] = CharModelCreate(charNo, 1);
|
||||
object->motion[1] = CharModelMotionCreate(charNo, 0x5F0000);
|
||||
object->motion[2] = CharModelMotionCreate(charNo, 0x5F0035);
|
||||
object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660010+charNo);
|
||||
object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x660008+charNo);
|
||||
CharModelMotionDataClose(charNo);
|
||||
Hu3DModelPosSet(object->model[1], 120, 0, 800);
|
||||
Hu3DModelRotSet(object->model[1], 0, -135, 0);
|
||||
Hu3DModelScaleSet(object->model[1], 1, 1, 1);
|
||||
Hu3DModelAttrSet(object->model[1], 1);
|
||||
Hu3DModelShadowSet(object->model[1]);
|
||||
fn_1_1DFC(object, 1, 1, 0, 1);
|
||||
}
|
||||
|
||||
void fn_1_1AFD4(omObjData* arg0, StructBss16C* arg1)
|
||||
{
|
||||
int i;
|
||||
fn_1_1DFC(arg0, 1, 2, 0, 0);
|
||||
fn_1_BC8();
|
||||
Hu3DMotionTimeSet(arg0->model[1], 60);
|
||||
for(i=0; i<60; i++) {
|
||||
fn_1_BC8();
|
||||
Hu3DData[arg0->model[1]].rot.y = fn_1_864(-135, -90, i, 60);
|
||||
}
|
||||
fn_1_1DFC(arg0, 1, 1, 15, 1);
|
||||
arg1->unk04 = NULL;
|
||||
}
|
||||
|
||||
void fn_1_1B0E4(void)
|
||||
{
|
||||
omObjData *obj;
|
||||
lbl_1_bss_B94.unk00 = obj = omAddObjEx(lbl_1_bss_B38, 256, 16, 16, -1, NULL);
|
||||
lbl_1_bss_B94.unk04 = NULL;
|
||||
fn_1_1AE20(obj);
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
if(lbl_1_bss_B94.unk04 != NULL) {
|
||||
lbl_1_bss_B94.unk04(obj, &lbl_1_bss_B94);
|
||||
}
|
||||
if(obj->work[0]) {
|
||||
fn_1_6704(obj);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_1B318(void)
|
||||
{
|
||||
StructBss24 *work = &lbl_1_bss_24;
|
||||
work->unk08.x = 0;
|
||||
work->unk08.y = 120;
|
||||
work->unk08.z = 0;
|
||||
work->unk20.x = 0;
|
||||
work->unk20.y = 0;
|
||||
work->unk20.z = 0;
|
||||
work->unk38 = 1400;
|
||||
}
|
||||
|
||||
void fn_1_1B3A4(void)
|
||||
{
|
||||
StructBss24 *work = &lbl_1_bss_24;
|
||||
work->unk08.x = 0;
|
||||
work->unk08.y = 125;
|
||||
work->unk08.z = 0;
|
||||
work->unk20.x = -4.9f;
|
||||
work->unk20.y = 0;
|
||||
work->unk20.z = 0;
|
||||
work->unk38 = 1750;
|
||||
}
|
||||
|
||||
void fn_1_1B430(void)
|
||||
{
|
||||
StructBss24 *work = &lbl_1_bss_24;
|
||||
StructBss24 temp;
|
||||
temp.unk08.x = 0;
|
||||
temp.unk08.y = 100;
|
||||
temp.unk08.z = 0;
|
||||
temp.unk20.x = 0;
|
||||
temp.unk20.y = 0;
|
||||
temp.unk20.z = 0;
|
||||
temp.unk38 = 1400;
|
||||
fn_1_42A0(work, &temp, work->unk40++, 60, 10);
|
||||
if(0.0f != lbl_1_bss_C0C.unk100) {
|
||||
work->unk08.y = 125+lbl_1_bss_C0C.unk100;
|
||||
}
|
||||
}
|
||||
831
src/REL/mstory2Dll/mg_clear.c
Normal file
831
src/REL/mstory2Dll/mg_clear.c
Normal file
|
|
@ -0,0 +1,831 @@
|
|||
#include "REL/mstory2Dll.h"
|
||||
#include "game/armem.h"
|
||||
#include "game/board/main.h"
|
||||
#include "game/chrman.h"
|
||||
#include "game/data.h"
|
||||
#include "game/gamework.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"
|
||||
#include "game/pad.h"
|
||||
#include "game/objsub.h"
|
||||
|
||||
typedef struct struct_data850 {
|
||||
s32 unk0;
|
||||
s32 unk4;
|
||||
s32 unk8;
|
||||
s32 unkC;
|
||||
s32 unk10;
|
||||
} StructData850;
|
||||
|
||||
StructData850 lbl_1_data_850[] = {
|
||||
{ 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_C10[2][2] = { 20, 70, 1, 1 };
|
||||
s32 lbl_1_data_C20 = -1;
|
||||
s32 lbl_1_data_C24[2] = { -1, -1 };
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ s32 unk00;
|
||||
/* 0x004 */ s32 unk04;
|
||||
/* 0x008 */ s32 unk08;
|
||||
/* 0x00C */ s32 unk0C;
|
||||
/* 0x010 */ s32 unk10;
|
||||
/* 0x014 */ s32 unk14;
|
||||
/* 0x018 */ char unk18[0x18];
|
||||
/* 0x030 */ StructFn357C unk30[4];
|
||||
/* 0x100 */ s32 unk100;
|
||||
} StructBss860; // Size 0x104
|
||||
|
||||
StructBss860 lbl_1_bss_860;
|
||||
StructBss16C lbl_1_bss_838;
|
||||
StructBss16C lbl_1_bss_810;
|
||||
StructBss16C lbl_1_bss_7E8;
|
||||
StructBss16C lbl_1_bss_7C0;
|
||||
StructBss16C lbl_1_bss_798;
|
||||
BOOL lbl_1_bss_794;
|
||||
Process *lbl_1_bss_790;
|
||||
|
||||
void fn_1_13BB8(void);
|
||||
void fn_1_13FB4(omObjData* arg0, StructBss16C* arg1);
|
||||
void fn_1_140A0(omObjData* arg0, StructBss16C* arg1);
|
||||
void fn_1_1449C(void);
|
||||
void fn_1_14A9C(int arg0, int arg1, int arg2, int arg3, int arg4);
|
||||
void fn_1_14B48(omObjData* arg0, StructBss16C* arg1);
|
||||
void fn_1_14C40(void);
|
||||
void fn_1_15134(int arg0, int arg1, int arg2, int arg3, int arg4);
|
||||
void fn_1_151E0(omObjData* arg0, StructBss16C* arg1);
|
||||
void fn_1_152C4(omObjData* arg0, StructBss16C* arg1);
|
||||
void fn_1_153A8(void);
|
||||
void fn_1_15668(int arg0);
|
||||
void fn_1_159F0(void);
|
||||
void fn_1_15CDC(void);
|
||||
void fn_1_15D68(void);
|
||||
void fn_1_15E58(void);
|
||||
void fn_1_15F70(void);
|
||||
|
||||
void fn_1_123C8(void)
|
||||
{
|
||||
int i;
|
||||
while(1) {
|
||||
do {
|
||||
HuPrcVSleep();
|
||||
} while(lbl_1_data_C20 == -1 || lbl_1_data_C24[0] == -1 || lbl_1_data_C24[1] == -1 || lbl_1_data_C24[0] != Hu3DMotionIDGet(lbl_1_data_C20));
|
||||
for(i=0; i<2; i++) {
|
||||
if(lbl_1_data_C10[1][i] != -1) {
|
||||
if(Hu3DMotionTimeGet(lbl_1_data_C20) >= lbl_1_data_C10[0][i]) {
|
||||
OSReport("KE-System TIME:%d\n", lbl_1_data_C10[0][i]);
|
||||
HuAudFXPlay(81);
|
||||
lbl_1_data_C10[1][i] = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(Hu3DMotionTimeGet(lbl_1_data_C20) <= 10) {
|
||||
for(i=0; i<2; i++) {
|
||||
lbl_1_data_C10[1][i] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_1256C(Process* arg0, s32 arg1)
|
||||
{
|
||||
lbl_1_bss_790 = arg0;
|
||||
lbl_1_bss_860.unk0C = arg1;
|
||||
fn_1_C30();
|
||||
lbl_1_bss_860.unk100 = fn_1_3668(255);
|
||||
fn_1_2828(lbl_1_bss_790, fn_1_15CDC);
|
||||
fn_1_3754();
|
||||
fn_1_15668(arg1);
|
||||
HuPrcChildCreate(fn_1_1449C, 100, 8192, 0, HuPrcCurrentGet());
|
||||
HuPrcChildCreate(fn_1_14C40, 100, 8192, 0, HuPrcCurrentGet());
|
||||
HuPrcChildCreate(fn_1_153A8, 100, 8192, 0, HuPrcCurrentGet());
|
||||
HuPrcChildCreate(fn_1_159F0, 100, 8192, 0, HuPrcCurrentGet());
|
||||
HuPrcChildCreate(fn_1_13BB8, 100, 8192, 0, HuPrcCurrentGet());
|
||||
}
|
||||
|
||||
void fn_1_12690(omObjData *object)
|
||||
{
|
||||
if(object->work[2]) {
|
||||
object->work[2]--;
|
||||
return;
|
||||
}
|
||||
if(object->work[2] == 0 && Hu3DMotionEndCheck(object->model[1])) {
|
||||
fn_1_1DFC(object, 1, object->work[1], 15, 1);
|
||||
object->work[0] = object->work[1] = object->work[2] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_1271C(void)
|
||||
{
|
||||
int posX = 16;
|
||||
int posY = 40;
|
||||
GXColor winColor = { 0, 0, 128, 128 };
|
||||
int i;
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
printWin(posX, posY, 220, 130, &winColor);
|
||||
if(lbl_1_bss_838.unk04 == NULL) {
|
||||
print8(posX, posY, 1, "PROC_MAIN -> FALSE");
|
||||
} else {
|
||||
print8(posX, posY, 1, "PROC_MAIN -> TRUE");
|
||||
}
|
||||
if(lbl_1_bss_810.unk04 == NULL) {
|
||||
print8(posX, posY+10, 1, "PROC_MAP -> FALSE");
|
||||
} else {
|
||||
print8(posX, posY+10, 1, "PROC_MAP -> TRUE");
|
||||
}
|
||||
if(lbl_1_bss_7E8.unk04 == NULL) {
|
||||
print8(posX, posY+20, 1, "PROC_KOOPA -> FALSE");
|
||||
} else {
|
||||
print8(posX, posY+20, 1, "PROC_KOOPA -> TRUE");
|
||||
}
|
||||
if(lbl_1_bss_7C0.unk04 == NULL) {
|
||||
print8(posX, posY+30, 1, "PROC_MKOOPA -> FALSE");
|
||||
} else {
|
||||
print8(posX, posY+30, 1, "PROC_MKOOPA -> TRUE");
|
||||
}
|
||||
if(lbl_1_bss_798.unk04 == NULL) {
|
||||
print8(posX, posY+40, 1, "PROC_PLAYER -> FALSE");
|
||||
} else {
|
||||
print8(posX, posY+40, 1, "PROC_PLAYER -> TRUE");
|
||||
}
|
||||
print8(posX, posY+60, 1, "P:%d W:%d", lbl_1_bss_860.unk00, lbl_1_bss_860.unk0C);
|
||||
print8(posX, posY+80, 1, "NO) IDX:GRP:COM:DIF:PAD:CHR");
|
||||
for(i=0; i<4; i++) {
|
||||
print8(posX, posY+90+(i*10), 1, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, lbl_1_bss_860.unk30[i].unk00, lbl_1_bss_860.unk30[i].unk04, lbl_1_bss_860.unk30[i].unk08, lbl_1_bss_860.unk30[i].unk0C, lbl_1_bss_860.unk30[i].unk14, lbl_1_bss_860.unk30[i].unk10);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_12AC8(void)
|
||||
{
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1);
|
||||
do {
|
||||
fn_1_BC8();
|
||||
} while (WipeStatGet());
|
||||
fn_1_BE8(30);
|
||||
}
|
||||
|
||||
void fn_1_12B10(void)
|
||||
{
|
||||
lbl_1_bss_860.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_860.unk0C);
|
||||
HuAudFXPlay(lbl_1_data_0[6][1]);
|
||||
fn_1_14A9C(4, 1, 15, 0, 1);
|
||||
fn_1_1D4C(lbl_1_bss_860.unk04, lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10, 0);
|
||||
fn_1_6D78(lbl_1_bss_860.unk04, 0x1F0014, 0, lbl_1_bss_7E8.unk00->model[1]);
|
||||
HuAudFXPlay(lbl_1_data_0[6][2]);
|
||||
fn_1_1DFC(lbl_1_bss_7E8.unk00, 1, 5, 10, 1);
|
||||
fn_1_1D18(lbl_1_bss_860.unk04, 0x1F0015);
|
||||
fn_1_1AFC(lbl_1_bss_860.unk04, -1);
|
||||
fn_1_1D18(lbl_1_bss_860.unk04, 0x250004);
|
||||
fn_1_15134(1, -1, 15, 1, 0);
|
||||
fn_1_1A94(lbl_1_bss_860.unk04);
|
||||
lbl_1_bss_7E8.unk04 = (void *)fn_1_14B48;
|
||||
fn_1_BE8(60);
|
||||
fn_1_1DFC(lbl_1_bss_798.unk00, 1, 4, 15, 0);
|
||||
fn_1_BE8(16);
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
if(Hu3DMotionTimeGet(lbl_1_bss_798.unk00->model[1]) >= 20) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
Hu3DMotionSpeedSet(lbl_1_bss_798.unk00->model[1], 0);
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
if(lbl_1_bss_7E8.unk04 == NULL) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
fn_1_BE8(30);
|
||||
fn_1_3854(&lbl_1_bss_24);
|
||||
fn_1_2750(fn_1_15D68);
|
||||
lbl_1_bss_7C0.unk04 = (void *)fn_1_152C4;
|
||||
fn_1_BE8(80);
|
||||
Hu3DMotionSpeedSet(lbl_1_bss_798.unk00->model[1], 1);
|
||||
fn_1_1DFC(lbl_1_bss_798.unk00, 1, 1, 15, 1);
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
if(lbl_1_bss_7C0.unk04 == NULL) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_12DD4(void)
|
||||
{
|
||||
lbl_1_bss_860.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_860.unk0C);
|
||||
lbl_1_bss_78[0] = HuAudSeqPlay(56);
|
||||
HuAudFXPlay(lbl_1_data_0[5][0]);
|
||||
fn_1_1DFC(lbl_1_bss_7C0.unk00, 1, 4, 15, 0);
|
||||
fn_1_1D18(lbl_1_bss_860.unk04, 0x1F0016);
|
||||
fn_1_1AFC(lbl_1_bss_860.unk04, -1);
|
||||
fn_1_1D18(lbl_1_bss_860.unk04, 0x250004);
|
||||
HuAudFXPlay(lbl_1_data_0[5][0]);
|
||||
fn_1_1DFC(lbl_1_bss_7C0.unk00, 1, 3, 15, 1);
|
||||
fn_1_1D18(lbl_1_bss_860.unk04, 0x1F0017);
|
||||
fn_1_1AFC(lbl_1_bss_860.unk04, -1);
|
||||
fn_1_1D18(lbl_1_bss_860.unk04, 0x250004);
|
||||
HuAudFXPlay(lbl_1_data_0[5][0]);
|
||||
fn_1_1D18(lbl_1_bss_860.unk04, 0x1F0018);
|
||||
fn_1_1AFC(lbl_1_bss_860.unk04, -1);
|
||||
fn_1_1D18(lbl_1_bss_860.unk04, 0x250004);
|
||||
fn_1_1DFC(lbl_1_bss_7C0.unk00, 1, 1, 15, 1);
|
||||
fn_1_1A94(lbl_1_bss_860.unk04);
|
||||
fn_1_BE8(60);
|
||||
lbl_1_bss_860.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_860.unk0C);
|
||||
HuAudFXPlay(lbl_1_data_0[5][0]);
|
||||
fn_1_1DFC(lbl_1_bss_7C0.unk00, 1, 3, 15, 1);
|
||||
fn_1_1D4C(lbl_1_bss_860.unk04, lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10, 0);
|
||||
fn_1_1D18(lbl_1_bss_860.unk04, 0x1F0019);
|
||||
fn_1_1AFC(lbl_1_bss_860.unk04, -1);
|
||||
fn_1_1D18(lbl_1_bss_860.unk04, 0x250004);
|
||||
HuAudFXPlay(lbl_1_data_0[5][1]);
|
||||
fn_1_1D18(lbl_1_bss_860.unk04, 0x1F001A);
|
||||
fn_1_1AFC(lbl_1_bss_860.unk04, -1);
|
||||
fn_1_1D18(lbl_1_bss_860.unk04, 0x250004);
|
||||
lbl_1_bss_7C0.unk04 = (void *)fn_1_151E0;
|
||||
fn_1_1D18(lbl_1_bss_860.unk04, 0x1F001B);
|
||||
fn_1_1AFC(lbl_1_bss_860.unk04, -1);
|
||||
fn_1_1D18(lbl_1_bss_860.unk04, 0x250004);
|
||||
fn_1_1A94(lbl_1_bss_860.unk04);
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
if(lbl_1_bss_7C0.unk04 == NULL) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_13150(omObjData* arg0, StructBss16C* arg1)
|
||||
{
|
||||
int streamNo = HuAudSStreamPlay(7);
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
if(HuAudSStreamStatGet(streamNo) == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
HuAudSeqPause(lbl_1_bss_78[0], 0, 1000);
|
||||
arg1->unk04 = NULL;
|
||||
}
|
||||
|
||||
void fn_1_131C0(omObjData* arg0, StructBss16C* arg1)
|
||||
{
|
||||
int presentSe = (lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10*6)+5;
|
||||
fn_1_BE8(150);
|
||||
OSReport("########## PRESENT_SE : %d\n", presentSe);
|
||||
HuAudFXPlay(presentSe+2260);
|
||||
fn_1_1DFC(lbl_1_bss_810.unk00, 7, 7, 1, 0);
|
||||
arg1->unk04 = NULL;
|
||||
}
|
||||
|
||||
void fn_1_13264(void)
|
||||
{
|
||||
int i;
|
||||
fn_1_1DFC(lbl_1_bss_798.unk00, 1, 2, 15, 1);
|
||||
for(i=0; i<30; i++) {
|
||||
fn_1_BC8();
|
||||
if(lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10 != 5) {
|
||||
Hu3DData[lbl_1_bss_798.unk00->model[1]].pos.x = fn_1_864(120, 80, i, 30);
|
||||
}
|
||||
Hu3DData[lbl_1_bss_798.unk00->model[1]].rot.y = fn_1_864(-60, -90, i, 30);
|
||||
}
|
||||
fn_1_1DFC(lbl_1_bss_798.unk00, 1, 5, 5, 0);
|
||||
fn_1_BE8(10);
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
if(Hu3DMotionTimeGet(lbl_1_bss_798.unk00->model[1]) >= 30) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
Hu3DModelPosSet(lbl_1_bss_810.unk00->model[5], 0, 0, 0);
|
||||
Hu3DModelHookSet(lbl_1_bss_798.unk00->model[1], CharModelHookNameGet(lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10, 1, 1), lbl_1_bss_810.unk00->model[5]);
|
||||
fn_1_BE8(60);
|
||||
lbl_1_bss_810.unk04 = (void *)fn_1_13FB4;
|
||||
HuAudFXPlay(163);
|
||||
HuAudCharVoicePlay(lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10, 296);
|
||||
fn_1_1DFC(lbl_1_bss_810.unk00, 6, 6, 0, 0);
|
||||
Hu3DModelAttrReset(lbl_1_bss_810.unk00->model[6], 1);
|
||||
Hu3DModelAttrSet(lbl_1_bss_810.unk00->model[5], 1);
|
||||
fn_1_1DFC(lbl_1_bss_798.unk00, 1, 6, 5, 0);
|
||||
HuAudSeqPause(lbl_1_bss_78[0], 1, 1000);
|
||||
WipeColorSet(255, 255, 255);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
if(!WipeStatGet()) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
Hu3DMotionSpeedSet(lbl_1_bss_798.unk00->model[1], 0);
|
||||
Hu3DMotionTimeSet(lbl_1_bss_798.unk00->model[1], 50);
|
||||
Hu3DModelAttrReset(lbl_1_bss_810.unk00->model[7], 1);
|
||||
Hu3DModelAttrReset(lbl_1_bss_810.unk00->model[8], 1);
|
||||
fn_1_1DFC(lbl_1_bss_810.unk00, 8, 8, 0, 1);
|
||||
fn_1_BE8(30);
|
||||
HuAudFXPlay(169);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60);
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
if(!WipeStatGet()) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
fn_1_3854(&lbl_1_bss_24);
|
||||
fn_1_2750(fn_1_15F70);
|
||||
fn_1_BE8(60);
|
||||
lbl_1_bss_798.unk04 = (void *)fn_1_131C0;
|
||||
lbl_1_bss_860.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_860.unk0C);
|
||||
lbl_1_bss_7C0.unk04 = (void *)fn_1_13150;
|
||||
fn_1_1D4C(lbl_1_bss_860.unk04, (lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10*6)+0x32000B, 0);
|
||||
fn_1_6DBC(lbl_1_bss_860.unk04, 0x320086, 0, 300);
|
||||
fn_1_1D18(lbl_1_bss_860.unk04,0x250004);
|
||||
fn_1_1A94(lbl_1_bss_860.unk04);
|
||||
fn_1_3854(&lbl_1_bss_24);
|
||||
fn_1_2750(fn_1_15E58);
|
||||
lbl_1_bss_810.unk04 = (void *)fn_1_140A0;
|
||||
fn_1_BE8(30);
|
||||
Hu3DMotionSpeedSet(lbl_1_bss_798.unk00->model[1], 0.1f);
|
||||
fn_1_BE8(180);
|
||||
WipeColorSet(0, 0, 0);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1);
|
||||
}
|
||||
|
||||
void fn_1_13828(void)
|
||||
{
|
||||
Hu3DAllKill();
|
||||
HuSprClose();
|
||||
HuSprInit();
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
fn_1_BE8(60);
|
||||
SLCommonSet();
|
||||
SLSaveBoardStory();
|
||||
if (SLSaveFlagGet() == 1) {
|
||||
SLSave();
|
||||
}
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 10);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
lbl_1_bss_794 = TRUE;
|
||||
HuPrcEnd();
|
||||
while (TRUE) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_138CC(void)
|
||||
{
|
||||
omOvlHisData* var_r31;
|
||||
|
||||
msmSeStopAll(FALSE, 1000);
|
||||
do {
|
||||
fn_1_BC8();
|
||||
} while (WipeStatGet() != 0);
|
||||
CharModelKill(-1);
|
||||
HuAudFXAllStop();
|
||||
HuAudSStreamAllStop();
|
||||
GWMGAvailSet(omMgIndexGet(58)+401);
|
||||
GWGameStat.present[lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10 * 6 + 5] = 1;
|
||||
OSReport("########## PRESENTFLG CHR:%d, MAP:5, PRESENT:%d\n", lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10, lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10 * 6 + 5);
|
||||
var_r31 = omOvlHisGet(0);
|
||||
omOvlHisChg(0, OVL_MSTORY2, 20, var_r31->stat);
|
||||
omOvlCallEx(OVL_PRESENT, 1, lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10 * 6 + 5 + 1, 0);
|
||||
}
|
||||
|
||||
void fn_1_13A18(omObjData* arg0, StructBss16C* arg1)
|
||||
{
|
||||
int temp = 0;
|
||||
fn_1_12AC8();
|
||||
fn_1_12B10();
|
||||
fn_1_12DD4();
|
||||
fn_1_13264();
|
||||
fn_1_138CC();
|
||||
arg1->unk04 = 0;
|
||||
}
|
||||
|
||||
void fn_1_13BB8(void)
|
||||
{
|
||||
omObjData *obj;
|
||||
lbl_1_bss_838.unk00 = obj = omAddObjEx(lbl_1_bss_790, 256, 16, 16, -1, NULL);
|
||||
lbl_1_bss_838.unk04 = (void *)fn_1_13A18;
|
||||
lbl_1_bss_838.unk00->data = &lbl_1_bss_838;
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
if(lbl_1_bss_838.unk04 != NULL) {
|
||||
lbl_1_bss_838.unk04(obj, &lbl_1_bss_838);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_13C6C(omObjData* object)
|
||||
{
|
||||
s32 charNo;
|
||||
charNo = lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10;
|
||||
object->model[7] = Hu3DModelCreateFile(lbl_1_data_850[charNo * 6 + 5].unk0);
|
||||
object->motion[7] = Hu3DMotionIDGet(object->model[7]);
|
||||
Hu3DModelPosSet(object->model[7], 0, 180, 825);
|
||||
Hu3DModelAttrSet(object->model[7], 1);
|
||||
Hu3DModelShadowSet(object->model[7]);
|
||||
fn_1_1DFC(object, 7, 7, 0, 2);
|
||||
HuDataDirClose(DATADIR_MSTORY4);
|
||||
object->model[1] = Hu3DModelCreateFile(0x660052);
|
||||
object->motion[1] = Hu3DMotionIDGet(object->model[1]);
|
||||
Hu3DModelShadowMapObjSet(object->model[1], "base_story-base");
|
||||
fn_1_1DFC(object, 1, 1, 0, 1);
|
||||
object->model[2] = Hu3DModelCreateFile(0x660053);
|
||||
object->motion[2] = Hu3DJointMotionFile(object->model[2], 0x660054);
|
||||
object->motion[3] = Hu3DJointMotionFile(object->model[2], 0x660055);
|
||||
fn_1_1DFC(object, 2, 3, 0, 2);
|
||||
object->model[5] = Hu3DModelCreateFile(0x66005B);
|
||||
Hu3DModelPosSet(object->model[5], 0, 125, 800);
|
||||
Hu3DModelAttrSet(object->model[5], 1);
|
||||
Hu3DModelShadowSet(object->model[5]);
|
||||
object->model[6] = Hu3DModelCreateFile(0x66005D);
|
||||
object->motion[6] = Hu3DMotionIDGet(object->model[6]);
|
||||
Hu3DModelPosSet(object->model[6], 25, 125, 900);
|
||||
Hu3DModelAttrSet(object->model[6], 1);
|
||||
fn_1_1DFC(object, 6, 6, 0, 2);
|
||||
object->model[8] = Hu3DModelCreateFile(0x66005F);
|
||||
object->motion[8] = Hu3DMotionIDGet(object->model[8]);
|
||||
Hu3DModelAttrSet(object->model[8], 1);
|
||||
fn_1_1DFC(object, 8, 8, 0, 1);
|
||||
}
|
||||
|
||||
|
||||
void fn_1_13FB4(omObjData* arg0, StructBss16C* arg1)
|
||||
{
|
||||
Mtx matrix;
|
||||
Hu3DData[arg0->model[7]].pos.y = fn_1_B08(180, 185, arg1->unk08++, 360);
|
||||
Hu3DModelObjMtxGet(arg0->model[7], "effect", matrix);
|
||||
Hu3DModelPosSet(arg0->model[8], matrix[0][3], matrix[1][3], matrix[2][3]);
|
||||
if(arg1->unk08 >= 360) {
|
||||
arg1->unk08 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_140A0(omObjData* arg0, StructBss16C* arg1)
|
||||
{
|
||||
Mtx matrix;
|
||||
Hu3DData[arg0->model[7]].pos.y += arg1->unk0C/100.0f;
|
||||
Hu3DModelObjMtxGet(arg0->model[7], "effect", matrix);
|
||||
Hu3DModelPosSet(arg0->model[8], matrix[0][3], matrix[1][3], matrix[2][3]);
|
||||
arg1->unk0C += 2;
|
||||
}
|
||||
|
||||
void fn_1_1416C(omObjData* arg0, StructBss16C* arg1)
|
||||
{
|
||||
int i;
|
||||
Vec pos;
|
||||
float rotY;
|
||||
Hu3DModelPosSet(arg0->model[5], -180, 100, 800);
|
||||
Hu3DModelRotSet(arg0->model[5], 0, 0, 0);
|
||||
Hu3DModelAttrReset(arg0->model[5], 1);
|
||||
for(i=0; i<60; i++) {
|
||||
fn_1_BC8();
|
||||
if(i == 30) {
|
||||
HuAudFXPlay(151);
|
||||
}
|
||||
if(i <= 30) {
|
||||
pos.y = fn_1_A4C(0, 100, i+30, 60);
|
||||
pos.x = fn_1_864(-180, -45, i, 30);
|
||||
rotY = fn_1_984(0, -90, i, 30);
|
||||
} else {
|
||||
pos.x = fn_1_864(-45, 0, i-30, 30);
|
||||
pos.y = fn_1_A4C(0, 25, i-30, 30);
|
||||
rotY = fn_1_984(-90, -360, i-30, 30);
|
||||
}
|
||||
Hu3DModelPosSet(arg0->model[5], pos.x, pos.y, 800);
|
||||
Hu3DModelRotSet(arg0->model[5], 0, rotY, 0);
|
||||
}
|
||||
arg1->unk04 = NULL;
|
||||
}
|
||||
|
||||
void fn_1_1449C(void)
|
||||
{
|
||||
omObjData *obj;
|
||||
lbl_1_bss_810.unk00 = obj = omAddObjEx(lbl_1_bss_790, 256, 16, 16, -1, NULL);
|
||||
lbl_1_bss_810.unk04 = NULL;
|
||||
lbl_1_bss_810.unk00->data = &lbl_1_bss_810;
|
||||
fn_1_13C6C(obj);
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
if(lbl_1_bss_810.unk04 != NULL) {
|
||||
lbl_1_bss_810.unk04(obj, &lbl_1_bss_810);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_14868(omObjData *object)
|
||||
{
|
||||
object->model[1] = Hu3DModelCreateFile(0x660062);
|
||||
object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x660063);
|
||||
object->motion[2] = Hu3DJointMotionFile(object->model[1], 0x660064);
|
||||
object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x66006E);
|
||||
object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x66006F);
|
||||
object->motion[5] = Hu3DJointMotionFile(object->model[1], 0x660069);
|
||||
Hu3DModelPosSet(object->model[1], -180, 0, 800);
|
||||
Hu3DModelRotSet(object->model[1], 0, 60, 0);
|
||||
Hu3DModelScaleSet(object->model[1], 1, 1, 1);
|
||||
Hu3DModelShadowSet(object->model[1]);
|
||||
fn_1_1DFC(object, 1, 3, 0, 1);
|
||||
lbl_1_data_C20 = object->model[1];
|
||||
lbl_1_data_C24[0] = object->motion[2];
|
||||
lbl_1_data_C24[1] = object->motion[2];
|
||||
HuPrcChildCreate(fn_1_123C8, 100, 8192, 0, HuPrcCurrentGet());
|
||||
}
|
||||
|
||||
void fn_1_14A9C(int arg0, int arg1, int arg2, int arg3, int arg4)
|
||||
{
|
||||
fn_1_1DFC(lbl_1_bss_7E8.unk00, 1, arg0, arg2, arg3);
|
||||
if(arg3 == 1) {
|
||||
arg4 = 0;
|
||||
}
|
||||
lbl_1_bss_7E8.unk00->work[0] = arg4;
|
||||
lbl_1_bss_7E8.unk00->work[1] = arg1;
|
||||
lbl_1_bss_7E8.unk00->work[2] = arg2+1;
|
||||
}
|
||||
|
||||
void fn_1_14B48(omObjData* arg0, StructBss16C* arg1)
|
||||
{
|
||||
Vec pos = { -1000, 0, 810 };
|
||||
lbl_1_bss_810.unk04 = (void *)fn_1_1416C;
|
||||
fn_1_1DFC(arg0, 1, 2, 15, 1);
|
||||
fn_1_2D00(arg0, 1, pos, -1, 45, 10);
|
||||
fn_1_1DFC(arg0, 1, 1, 15, 1);
|
||||
arg1->unk04 = NULL;
|
||||
}
|
||||
|
||||
void fn_1_14C40(void)
|
||||
{
|
||||
omObjData *obj;
|
||||
lbl_1_bss_7E8.unk00 = obj = omAddObjEx(lbl_1_bss_790, 256, 16, 16, -1, NULL);
|
||||
lbl_1_bss_7E8.unk04 = NULL;
|
||||
lbl_1_bss_7E8.unk00->data = &lbl_1_bss_810;
|
||||
fn_1_14868(obj);
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
if(lbl_1_bss_7E8.unk04 != NULL) {
|
||||
lbl_1_bss_7E8.unk04(obj, &lbl_1_bss_7E8);
|
||||
}
|
||||
if(obj->work[0]) {
|
||||
if(obj->work[2]) {
|
||||
obj->work[2]--;
|
||||
} else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) {
|
||||
fn_1_1DFC(obj, 1, obj->work[1], 15, 1);
|
||||
obj->work[0] = obj->work[1] = obj->work[2] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_14F6C(omObjData *object)
|
||||
{
|
||||
object->model[1] = Hu3DModelCreateFile(0x66007D);
|
||||
object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x66007E);
|
||||
object->motion[2] = Hu3DJointMotionFile(object->model[1], 0x660080);
|
||||
object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660081);
|
||||
object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x660086);
|
||||
Hu3DModelPosSet(object->model[1], -600, 0, 800);
|
||||
Hu3DModelRotSet(object->model[1], 0, 60, 0);
|
||||
Hu3DModelScaleSet(object->model[1], 1, 1, 1);
|
||||
Hu3DModelShadowSet(object->model[1]);
|
||||
fn_1_1DFC(object, 1, 1, 0, 1);
|
||||
CharModelEffectNpcInit(object->model[1], object->motion[2], 1, 13);
|
||||
}
|
||||
|
||||
void fn_1_15134(int arg0, int arg1, int arg2, int arg3, int arg4)
|
||||
{
|
||||
fn_1_1DFC(lbl_1_bss_7C0.unk00, 1, arg0, arg2, arg3);
|
||||
if(arg3 == 1) {
|
||||
arg4 = 0;
|
||||
}
|
||||
lbl_1_bss_7C0.unk00->work[0] = arg4;
|
||||
lbl_1_bss_7C0.unk00->work[1] = arg1;
|
||||
lbl_1_bss_7C0.unk00->work[2] = arg2+1;
|
||||
}
|
||||
|
||||
void fn_1_151E0(omObjData* arg0, StructBss16C* arg1)
|
||||
{
|
||||
Vec pos = { -800, 0, 800 };
|
||||
fn_1_1DFC(arg0, 1, 2, 15, 1);
|
||||
fn_1_2D00(arg0, 1, pos, 60, 60, 10);
|
||||
fn_1_1DFC(arg0, 1, 1, 15, 1);
|
||||
arg1->unk04 = NULL;
|
||||
}
|
||||
|
||||
void fn_1_152C4(omObjData* arg0, StructBss16C* arg1)
|
||||
{
|
||||
Vec pos = { -120, 0, 800 };
|
||||
fn_1_1DFC(arg0, 1, 2, 15, 1);
|
||||
fn_1_2D00(arg0, 1, pos, 60, 60, 10);
|
||||
fn_1_1DFC(arg0, 1, 1, 15, 1);
|
||||
arg1->unk04 = NULL;
|
||||
}
|
||||
|
||||
void fn_1_153A8(void)
|
||||
{
|
||||
omObjData *obj;
|
||||
lbl_1_bss_7C0.unk00 = obj = omAddObjEx(lbl_1_bss_790, 256, 16, 16, -1, NULL);
|
||||
lbl_1_bss_7C0.unk04 = NULL;
|
||||
lbl_1_bss_7C0.unk00->data = &lbl_1_bss_7C0;
|
||||
fn_1_14F6C(obj);
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
if(lbl_1_bss_7C0.unk04 != NULL) {
|
||||
lbl_1_bss_7C0.unk04(obj, &lbl_1_bss_7C0);
|
||||
}
|
||||
if(obj->work[0]) {
|
||||
if(obj->work[2]) {
|
||||
obj->work[2]--;
|
||||
} else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) {
|
||||
fn_1_1DFC(obj, 1, obj->work[1], 15, 1);
|
||||
obj->work[0] = obj->work[1] = obj->work[2] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_15668(int arg0)
|
||||
{
|
||||
int i;
|
||||
int order[4];
|
||||
order[0] = 0;
|
||||
for(i=1; i<4; i++) {
|
||||
order[i] = order[i-1]+1;
|
||||
if(order[i] >= 4) {
|
||||
order[i] = 0;
|
||||
}
|
||||
if(arg0 == order[i]) {
|
||||
lbl_1_bss_860.unk00 = i;
|
||||
}
|
||||
}
|
||||
for(i=0; i<4; i++) {
|
||||
fn_1_357C(&lbl_1_bss_860.unk30[i], order[i]);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_1574C(omObjData *object)
|
||||
{
|
||||
int charNo = lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10;
|
||||
object->model[1] = CharModelCreate(charNo, 1);
|
||||
object->motion[1] = CharModelMotionCreate(charNo, 0x5F0000);
|
||||
object->motion[2] = CharModelMotionCreate(charNo, 0x5F0002);
|
||||
object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660028+charNo);
|
||||
object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x660030+charNo);
|
||||
object->motion[5] = Hu3DJointMotionFile(object->model[1], 0x660038+charNo);
|
||||
object->motion[6] = Hu3DJointMotionFile(object->model[1], 0x660000+charNo);
|
||||
CharModelMotionDataClose(charNo);
|
||||
Hu3DModelPosSet(object->model[1], 120, 0, 800);
|
||||
Hu3DModelRotSet(object->model[1], 0, -60, 0);
|
||||
Hu3DModelScaleSet(object->model[1], 1, 1, 1);
|
||||
Hu3DModelShadowSet(object->model[1]);
|
||||
fn_1_1DFC(object, 1, 3, 0, 1);
|
||||
}
|
||||
|
||||
void fn_1_15944(int arg0, int arg1, int arg2, int arg3, int arg4)
|
||||
{
|
||||
fn_1_1DFC(lbl_1_bss_798.unk00, 1, arg0, arg2, arg3);
|
||||
if(arg3 == 1) {
|
||||
arg4 = 0;
|
||||
}
|
||||
lbl_1_bss_798.unk00->work[0] = arg4;
|
||||
lbl_1_bss_798.unk00->work[1] = arg1;
|
||||
lbl_1_bss_798.unk00->work[2] = arg2+1;
|
||||
}
|
||||
|
||||
void fn_1_159F0(void)
|
||||
{
|
||||
omObjData *obj;
|
||||
lbl_1_bss_798.unk00 = obj = omAddObjEx(lbl_1_bss_790, 256, 16, 16, -1, NULL);
|
||||
lbl_1_bss_798.unk04 = NULL;
|
||||
lbl_1_bss_798.unk00->data = &lbl_1_bss_798;
|
||||
fn_1_1574C(obj);
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
if(lbl_1_bss_798.unk04 != NULL) {
|
||||
lbl_1_bss_798.unk04(obj, &lbl_1_bss_798);
|
||||
}
|
||||
if(obj->work[0]) {
|
||||
if(obj->work[2]) {
|
||||
obj->work[2]--;
|
||||
} else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) {
|
||||
fn_1_1DFC(obj, 1, obj->work[1], 15, 1);
|
||||
obj->work[0] = obj->work[1] = obj->work[2] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_15CDC(void)
|
||||
{
|
||||
StructBss24 *work = &lbl_1_bss_24;
|
||||
work->unk08.x = 0;
|
||||
work->unk08.y = 125;
|
||||
work->unk08.z = 0;
|
||||
work->unk20.x = -5;
|
||||
work->unk20.y = 0;
|
||||
work->unk20.z = 0;
|
||||
work->unk38 = 1750;
|
||||
}
|
||||
|
||||
void fn_1_15D68(void)
|
||||
{
|
||||
StructBss24 *work = &lbl_1_bss_24;
|
||||
StructBss24 temp;
|
||||
temp.unk08.x = 0;
|
||||
temp.unk08.y = 100;
|
||||
temp.unk08.z = 0;
|
||||
temp.unk20.x = 0;
|
||||
temp.unk20.y = 0;
|
||||
temp.unk20.z = 0;
|
||||
temp.unk38 = 1400;
|
||||
fn_1_4FEC(work, &temp, work->unk40++, 120, 10);
|
||||
|
||||
}
|
||||
|
||||
void fn_1_15E58(void)
|
||||
{
|
||||
StructBss24 *work = &lbl_1_bss_24;
|
||||
work->unk14 = 0;
|
||||
work->unk18 = Hu3DData[lbl_1_bss_810.unk00->model[7]].pos.y;
|
||||
work->unk1C = 0;
|
||||
work->unk2C = 0;
|
||||
work->unk30 = 0;
|
||||
work->unk34 = 0;
|
||||
work->unk3C = fn_1_864(1200, 1400, work->unk40++, 240);
|
||||
fn_1_3B04(work, 30);
|
||||
}
|
||||
|
||||
void fn_1_15F70(void)
|
||||
{
|
||||
StructBss24 *work = &lbl_1_bss_24;
|
||||
StructBss24 temp;
|
||||
temp.unk08.x = 0;
|
||||
temp.unk08.y = 160;
|
||||
temp.unk08.z = 0;
|
||||
temp.unk20.x = 0;
|
||||
temp.unk20.y = 0;
|
||||
temp.unk20.z = 0;
|
||||
temp.unk38 = 1200;
|
||||
fn_1_6004(work, &temp, work->unk40++, 10, 5);
|
||||
}
|
||||
501
src/REL/mstory2Dll/mg_miss.c
Normal file
501
src/REL/mstory2Dll/mg_miss.c
Normal file
|
|
@ -0,0 +1,501 @@
|
|||
#include "REL/mstory2Dll.h"
|
||||
#include "game/armem.h"
|
||||
#include "game/board/main.h"
|
||||
#include "game/chrman.h"
|
||||
#include "game/data.h"
|
||||
#include "game/gamework.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"
|
||||
#include "game/pad.h"
|
||||
#include "game/objsub.h"
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ s32 unk00;
|
||||
/* 0x004 */ s32 unk04;
|
||||
/* 0x008 */ s32 unk08;
|
||||
/* 0x00C */ s32 unk0C;
|
||||
/* 0x010 */ s32 unk10;
|
||||
/* 0x014 */ s32 unk14;
|
||||
/* 0x018 */ char unk18[0x18];
|
||||
/* 0x030 */ StructFn357C unk30[4];
|
||||
/* 0x100 */ s32 unk100;
|
||||
} StructBssA34; // Size 0x104
|
||||
|
||||
StructBssA34 lbl_1_bss_A34;
|
||||
StructBss16C lbl_1_bss_A0C;
|
||||
StructBss16C lbl_1_bss_9E4;
|
||||
StructBss16C lbl_1_bss_9BC;
|
||||
StructBss16C lbl_1_bss_994;
|
||||
StructBss16C lbl_1_bss_96C;
|
||||
Process *lbl_1_bss_968;
|
||||
|
||||
void fn_1_16FC0(void);
|
||||
void fn_1_17338(void);
|
||||
void fn_1_1774C(int arg0, int arg1, int arg2, int arg3, int arg4);
|
||||
void fn_1_177F8(void);
|
||||
void fn_1_17C44(void);
|
||||
void fn_1_17E64(s32 arg0);
|
||||
void fn_1_180D8(int arg0, int arg1, int arg2, int arg3, int arg4);
|
||||
void fn_1_18184(void);
|
||||
void fn_1_18408(void);
|
||||
void fn_1_18494(void);
|
||||
|
||||
void fn_1_16060(Process* arg0, s32 arg1)
|
||||
{
|
||||
lbl_1_bss_968 = arg0;
|
||||
lbl_1_bss_A34.unk0C = arg1;
|
||||
fn_1_C30();
|
||||
fn_1_3668(255);
|
||||
fn_1_2828(lbl_1_bss_968, fn_1_18408);
|
||||
fn_1_3754();
|
||||
fn_1_17E64(arg1);
|
||||
HuPrcChildCreate(fn_1_17338, 100, 8192, 0, HuPrcCurrentGet());
|
||||
HuPrcChildCreate(fn_1_177F8, 100, 8192, 0, HuPrcCurrentGet());
|
||||
HuPrcChildCreate(fn_1_17C44, 100, 8192, 0, HuPrcCurrentGet());
|
||||
HuPrcChildCreate(fn_1_18184, 100, 8192, 0, HuPrcCurrentGet());
|
||||
HuPrcChildCreate(fn_1_16FC0, 100, 8192, 0, HuPrcCurrentGet());
|
||||
}
|
||||
|
||||
void fn_1_16178(omObjData *object)
|
||||
{
|
||||
if(object->work[2]) {
|
||||
object->work[2]--;
|
||||
return;
|
||||
}
|
||||
if(object->work[2] == 0 && Hu3DMotionEndCheck(object->model[1])) {
|
||||
fn_1_1DFC(object, 1, object->work[1], 15, 1);
|
||||
object->work[0] = object->work[1] = object->work[2] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_16204(void)
|
||||
{
|
||||
int posX = 16;
|
||||
int posY = 40;
|
||||
GXColor winColor = { 0, 0, 128, 128 };
|
||||
int i;
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
printWin(posX, posY, 220, 130, &winColor);
|
||||
if(lbl_1_bss_A0C.unk04 == NULL) {
|
||||
print8(posX, posY, 1, "PROC_MAIN -> FALSE");
|
||||
} else {
|
||||
print8(posX, posY, 1, "PROC_MAIN -> TRUE");
|
||||
}
|
||||
if(lbl_1_bss_9E4.unk04 == NULL) {
|
||||
print8(posX, posY+10, 1, "PROC_MAP -> FALSE");
|
||||
} else {
|
||||
print8(posX, posY+10, 1, "PROC_MAP -> TRUE");
|
||||
}
|
||||
if(lbl_1_bss_9BC.unk04 == NULL) {
|
||||
print8(posX, posY+20, 1, "PROC_KOOPA -> FALSE");
|
||||
} else {
|
||||
print8(posX, posY+20, 1, "PROC_KOOPA -> TRUE");
|
||||
}
|
||||
if(lbl_1_bss_994.unk04 == NULL) {
|
||||
print8(posX, posY+30, 1, "PROC_MKOOPA -> FALSE");
|
||||
} else {
|
||||
print8(posX, posY+30, 1, "PROC_MKOOPA -> TRUE");
|
||||
}
|
||||
if(lbl_1_bss_96C.unk04 == NULL) {
|
||||
print8(posX, posY+40, 1, "PROC_PLAYER -> FALSE");
|
||||
} else {
|
||||
print8(posX, posY+40, 1, "PROC_PLAYER -> TRUE");
|
||||
}
|
||||
print8(posX, posY+60, 1, "P:%d W:%d", lbl_1_bss_A34.unk00, lbl_1_bss_A34.unk0C);
|
||||
print8(posX, posY+80, 1, "NO) IDX:GRP:COM:DIF:PAD:CHR");
|
||||
for(i=0; i<4; i++) {
|
||||
print8(posX, posY+90+(i*10), 1, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, lbl_1_bss_A34.unk30[i].unk00, lbl_1_bss_A34.unk30[i].unk04, lbl_1_bss_A34.unk30[i].unk08, lbl_1_bss_A34.unk30[i].unk0C, lbl_1_bss_A34.unk30[i].unk14, lbl_1_bss_A34.unk30[i].unk10);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_165B0(void)
|
||||
{
|
||||
lbl_1_bss_78[0] = HuAudSeqPlay(52);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1);
|
||||
do {
|
||||
fn_1_BC8();
|
||||
} while (WipeStatGet());
|
||||
fn_1_BE8(60);
|
||||
}
|
||||
|
||||
void fn_1_1661C(void)
|
||||
{
|
||||
lbl_1_bss_A34.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_A34.unk0C);
|
||||
fn_1_1774C(2, 1, 15, 0, 1);
|
||||
fn_1_180D8(2, 3, 15, 0, 1);
|
||||
HuAudCharVoicePlay(lbl_1_bss_A34.unk30[lbl_1_bss_A34.unk00].unk10, 302);
|
||||
fn_1_6D78(lbl_1_bss_A34.unk04, 0x1F0010, -1, lbl_1_bss_9BC.unk00->model[1]);
|
||||
fn_1_1D18(lbl_1_bss_A34.unk04, 0x250004);
|
||||
fn_1_1774C(1, -1, 15, 1, 0);
|
||||
fn_1_1A94(lbl_1_bss_A34.unk04);
|
||||
}
|
||||
|
||||
int fn_1_1670C(void)
|
||||
{
|
||||
int result = 0;
|
||||
HuWinInsertMesSet(lbl_1_bss_A34.unk04, 0x1E003C, 3);
|
||||
fn_1_1D18(lbl_1_bss_A34.unk04, 0x1E002D);
|
||||
fn_1_1AFC(lbl_1_bss_A34.unk04, 5);
|
||||
lbl_1_bss_A34.unk08 = fn_1_7064(0x1E0035, lbl_1_bss_A34.unk0C);
|
||||
fn_1_1D18(lbl_1_bss_A34.unk08, 0x1E0035);
|
||||
result = fn_1_1C64(lbl_1_bss_A34.unk08);
|
||||
fn_1_1D18(lbl_1_bss_A34.unk08, 0x250004);
|
||||
fn_1_71DC(lbl_1_bss_A34.unk08);
|
||||
if(result) {
|
||||
HuAudFXPlay(lbl_1_data_0[6][2]);
|
||||
fn_1_1774C(3, 1, 15, 1, 0);
|
||||
fn_1_1D18(lbl_1_bss_A34.unk04, 0x1F0012);
|
||||
fn_1_1AFC(lbl_1_bss_A34.unk04, -1);
|
||||
fn_1_1D18(lbl_1_bss_A34.unk04, 0x250004);
|
||||
fn_1_1774C(1, -1, 15, 1, 0);
|
||||
fn_1_180D8(4, 1, 15, 0, 1);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
int fn_1_168B0(void)
|
||||
{
|
||||
int result = 0;
|
||||
fn_1_1D18(lbl_1_bss_A34.unk04, 0x1E0005);
|
||||
fn_1_1AFC(lbl_1_bss_A34.unk04, 5);
|
||||
lbl_1_bss_A34.unk08 = fn_1_7064(0x1E0035, lbl_1_bss_A34.unk0C);
|
||||
fn_1_1D18(lbl_1_bss_A34.unk08, 0x1E0035);
|
||||
result = fn_1_1BA8(lbl_1_bss_A34.unk08, 1);
|
||||
fn_1_1D18(lbl_1_bss_A34.unk08, 0x250004);
|
||||
fn_1_71DC(lbl_1_bss_A34.unk08);
|
||||
return result;
|
||||
}
|
||||
|
||||
void fn_1_16984(void)
|
||||
{
|
||||
HuAudSeqFadeOut(lbl_1_bss_78[0], 3000);
|
||||
fn_1_3854(&lbl_1_bss_24);
|
||||
fn_1_2750(fn_1_18494);
|
||||
fn_1_BE8(150);
|
||||
}
|
||||
|
||||
void fn_1_169D4(void)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void fn_1_169D8(int arg0)
|
||||
{
|
||||
omOvlHisData* his;
|
||||
|
||||
if (arg0 != 0) {
|
||||
HuAudSeqFadeOut(lbl_1_bss_78[0], 1000);
|
||||
}
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1);
|
||||
do {
|
||||
fn_1_BC8();
|
||||
} while (WipeStatGet() != 0);
|
||||
CharModelKill(-1);
|
||||
his = omOvlHisGet(0);
|
||||
omOvlHisChg(0, OVL_MSTORY2, 3, his->stat);
|
||||
if (arg0 == 0) {
|
||||
HuAudSeqAllFadeOut(1000);
|
||||
HuAudSStreamAllFadeOut(1000);
|
||||
GWMGAvailSet(450);
|
||||
GWSystem.mg_next = 450-401;
|
||||
omOvlCallEx(OVL_M450, 1, 0, 0);
|
||||
} else {
|
||||
HuAudFadeOut(1);
|
||||
omOvlReturnEx(1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_16ACC(omObjData* arg0, StructBss16C* arg1)
|
||||
{
|
||||
int mode = 0;
|
||||
fn_1_165B0();
|
||||
fn_1_1661C();
|
||||
lbl_1_bss_A34.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_A34.unk0C);
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
if(fn_1_1670C()) {
|
||||
mode = 0;
|
||||
break;
|
||||
} else if(fn_1_168B0()) {
|
||||
mode = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
fn_1_1A94(lbl_1_bss_A34.unk04);
|
||||
switch(mode) {
|
||||
case 0:
|
||||
fn_1_16984();
|
||||
break;
|
||||
case 1:
|
||||
break;
|
||||
}
|
||||
fn_1_169D8(mode);
|
||||
arg1->unk04 = NULL;
|
||||
}
|
||||
|
||||
void fn_1_16FC0(void)
|
||||
{
|
||||
omObjData *obj;
|
||||
lbl_1_bss_A0C.unk00 = obj = omAddObjEx(lbl_1_bss_968, 256, 16, 16, -1, NULL);
|
||||
lbl_1_bss_A0C.unk04 = (void *)fn_1_16ACC;
|
||||
lbl_1_bss_A0C.unk00->data = &lbl_1_bss_A0C;
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
if(lbl_1_bss_A0C.unk04 != NULL) {
|
||||
lbl_1_bss_A0C.unk04(obj, &lbl_1_bss_A0C);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_17074(omObjData *object)
|
||||
{
|
||||
object->model[1] = Hu3DModelCreateFile(0x660052);
|
||||
object->motion[1] = Hu3DMotionIDGet(object->model[1]);
|
||||
Hu3DModelShadowMapObjSet(object->model[1], "base_story-base");
|
||||
fn_1_1DFC(object, 1, 1, 0, 1);
|
||||
object->model[2] = Hu3DModelCreateFile(0x660053);
|
||||
object->motion[2] = Hu3DJointMotionFile(object->model[2], 0x660054);
|
||||
object->motion[3] = Hu3DJointMotionFile(object->model[2], 0x660055);
|
||||
fn_1_1DFC(object, 2, 2, 0, 2);
|
||||
object->model[5] = Hu3DModelCreateFile(0x660059);
|
||||
object->motion[5] = Hu3DMotionIDGet(object->model[5]);
|
||||
Hu3DModelPosSet(object->model[5], 0, 80, 460);
|
||||
Hu3DModelShadowSet(object->model[5]);
|
||||
fn_1_1DFC(object, 5, 5, 0, 2);
|
||||
object->model[6] = Hu3DModelCreateFile(0x66005A);
|
||||
object->motion[6] = Hu3DMotionIDGet(object->model[6]);
|
||||
Hu3DModelHookSet(object->model[5], "koopasgbox_fix-effect_fook2", object->model[6]);
|
||||
fn_1_1DFC(object, 6, 6, 0, 2);
|
||||
}
|
||||
|
||||
void fn_1_1727C(omObjData* arg0, StructBss16C* arg1)
|
||||
{
|
||||
Hu3DData[arg0->model[5]].pos.y = fn_1_B08(80, 90, arg1->unk08++, 360);
|
||||
if(arg1->unk08 >= 360) {
|
||||
arg1->unk08 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_17338(void)
|
||||
{
|
||||
omObjData *obj;
|
||||
lbl_1_bss_9E4.unk00 = obj = omAddObjEx(lbl_1_bss_968, 256, 16, 16, -1, NULL);
|
||||
lbl_1_bss_9E4.unk04 = (void *)fn_1_1727C;
|
||||
lbl_1_bss_9E4.unk00->data = &lbl_1_bss_9E4;
|
||||
fn_1_17074(obj);
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
if(lbl_1_bss_9E4.unk04 != NULL) {
|
||||
lbl_1_bss_9E4.unk04(obj, &lbl_1_bss_9E4);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_175CC(omObjData *object)
|
||||
{
|
||||
object->model[1] = Hu3DModelCreateFile(0x660062);
|
||||
object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x660063);
|
||||
object->motion[2] = Hu3DJointMotionFile(object->model[1], 0x660066);
|
||||
object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660069);
|
||||
Hu3DModelPosSet(object->model[1], 0, 0, 200);
|
||||
Hu3DModelRotSet(object->model[1], 0, 0, 0);
|
||||
Hu3DModelScaleSet(object->model[1], 1.6f, 1.6f, 1.6f);
|
||||
Hu3DModelShadowSet(object->model[1]);
|
||||
fn_1_1DFC(object, 1, 1, 0, 1);
|
||||
}
|
||||
|
||||
void fn_1_1774C(int arg0, int arg1, int arg2, int arg3, int arg4)
|
||||
{
|
||||
fn_1_1DFC(lbl_1_bss_9BC.unk00, 1, arg0, arg2, arg3);
|
||||
if(arg3 == 1) {
|
||||
arg4 = 0;
|
||||
}
|
||||
lbl_1_bss_9BC.unk00->work[0] = arg4;
|
||||
lbl_1_bss_9BC.unk00->work[1] = arg1;
|
||||
lbl_1_bss_9BC.unk00->work[2] = arg2+1;
|
||||
}
|
||||
|
||||
void fn_1_177F8(void)
|
||||
{
|
||||
omObjData *obj;
|
||||
lbl_1_bss_9BC.unk00 = obj = omAddObjEx(lbl_1_bss_968, 256, 16, 16, -1, NULL);
|
||||
lbl_1_bss_9BC.unk04 = NULL;
|
||||
lbl_1_bss_9BC.unk00->data = &lbl_1_bss_9E4;
|
||||
fn_1_175CC(obj);
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
if(lbl_1_bss_9BC.unk04 != NULL) {
|
||||
lbl_1_bss_9BC.unk04(obj, &lbl_1_bss_9BC);
|
||||
}
|
||||
if(obj->work[0]) {
|
||||
if(obj->work[2]) {
|
||||
obj->work[2]--;
|
||||
} else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) {
|
||||
fn_1_1DFC(obj, 1, obj->work[1], 15, 1);
|
||||
obj->work[0] = obj->work[1] = obj->work[2] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_17A70(omObjData *object)
|
||||
{
|
||||
object->model[1] = Hu3DModelCreateFile(0x66007D);
|
||||
object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x66007E);
|
||||
Hu3DModelPosSet(object->model[1], -120, 0, 800);
|
||||
Hu3DModelRotSet(object->model[1], 0, 135, 0);
|
||||
Hu3DModelScaleSet(object->model[1], 1, 1, 1);
|
||||
Hu3DModelShadowSet(object->model[1]);
|
||||
fn_1_1DFC(object, 1, 1, 0, 1);
|
||||
}
|
||||
|
||||
void fn_1_17B98(int arg0, int arg1, int arg2, int arg3, int arg4)
|
||||
{
|
||||
fn_1_1DFC(lbl_1_bss_994.unk00, 1, arg0, arg2, arg3);
|
||||
if(arg3 == 1) {
|
||||
arg4 = 0;
|
||||
}
|
||||
lbl_1_bss_994.unk00->work[0] = arg4;
|
||||
lbl_1_bss_994.unk00->work[1] = arg1;
|
||||
lbl_1_bss_994.unk00->work[2] = arg2+1;
|
||||
}
|
||||
|
||||
void fn_1_17C44(void)
|
||||
{
|
||||
omObjData *obj;
|
||||
lbl_1_bss_994.unk00 = obj = omAddObjEx(lbl_1_bss_968, 256, 16, 16, -1, NULL);
|
||||
lbl_1_bss_994.unk04 = NULL;
|
||||
lbl_1_bss_994.unk00->data = &lbl_1_bss_994;
|
||||
fn_1_17A70(obj);
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
if(lbl_1_bss_994.unk04 != NULL) {
|
||||
lbl_1_bss_994.unk04(obj, &lbl_1_bss_994);
|
||||
}
|
||||
if(obj->work[0]) {
|
||||
if(obj->work[2]) {
|
||||
obj->work[2]--;
|
||||
} else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) {
|
||||
fn_1_1DFC(obj, 1, obj->work[1], 15, 1);
|
||||
obj->work[0] = obj->work[1] = obj->work[2] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_17E64(s32 arg0)
|
||||
{
|
||||
int i;
|
||||
int order[4];
|
||||
order[0] = 0;
|
||||
for(i=1; i<4; i++) {
|
||||
order[i] = order[i-1]+1;
|
||||
if(order[i] >= 4) {
|
||||
order[i] = 0;
|
||||
}
|
||||
if(arg0 == order[i]) {
|
||||
lbl_1_bss_A34.unk00 = i;
|
||||
}
|
||||
}
|
||||
for(i=0; i<4; i++) {
|
||||
fn_1_357C(&lbl_1_bss_A34.unk30[i], order[i]);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_17F48(omObjData *object)
|
||||
{
|
||||
int charNo = lbl_1_bss_A34.unk30[lbl_1_bss_A34.unk00].unk10;
|
||||
object->model[1] = CharModelCreate(charNo, 1);
|
||||
object->motion[1] = CharModelMotionCreate(charNo, 0x5F0000);
|
||||
object->motion[2] = CharModelMotionCreate(charNo, 0x5F0018);
|
||||
object->motion[3] = CharModelMotionCreate(charNo, 0x5F0034);
|
||||
object->motion[4] = CharModelMotionCreate(charNo, 0x5F0048);
|
||||
CharModelVoiceEnableSet(charNo, object->motion[2], FALSE);
|
||||
CharModelMotionDataClose(charNo);
|
||||
Hu3DModelPosSet(object->model[1], 120, 0, 800);
|
||||
Hu3DModelRotSet(object->model[1], 0, -135, 0);
|
||||
Hu3DModelScaleSet(object->model[1], 1, 1, 1);
|
||||
Hu3DModelShadowSet(object->model[1]);
|
||||
fn_1_1DFC(object, 1, 1, 0, 1);
|
||||
}
|
||||
|
||||
void fn_1_180D8(int arg0, int arg1, int arg2, int arg3, int arg4)
|
||||
{
|
||||
fn_1_1DFC(lbl_1_bss_96C.unk00, 1, arg0, arg2, arg3);
|
||||
if(arg3 == 1) {
|
||||
arg4 = 0;
|
||||
}
|
||||
lbl_1_bss_96C.unk00->work[0] = arg4;
|
||||
lbl_1_bss_96C.unk00->work[1] = arg1;
|
||||
lbl_1_bss_96C.unk00->work[2] = arg2+1;
|
||||
}
|
||||
|
||||
void fn_1_18184(void)
|
||||
{
|
||||
omObjData *obj;
|
||||
lbl_1_bss_96C.unk00 = obj = omAddObjEx(lbl_1_bss_968, 256, 16, 16, -1, NULL);
|
||||
lbl_1_bss_96C.unk04 = NULL;
|
||||
lbl_1_bss_96C.unk00->data = &lbl_1_bss_96C;
|
||||
fn_1_17F48(obj);
|
||||
while(1) {
|
||||
fn_1_BC8();
|
||||
if(lbl_1_bss_96C.unk04 != NULL) {
|
||||
lbl_1_bss_96C.unk04(obj, &lbl_1_bss_96C);
|
||||
}
|
||||
if(obj->work[0]) {
|
||||
if(obj->work[2]) {
|
||||
obj->work[2]--;
|
||||
} else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) {
|
||||
fn_1_1DFC(obj, 1, obj->work[1], 15, 1);
|
||||
obj->work[0] = obj->work[1] = obj->work[2] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_18408(void)
|
||||
{
|
||||
StructBss24 *work = &lbl_1_bss_24;
|
||||
work->unk08.x = 0;
|
||||
work->unk08.y = 125;
|
||||
work->unk08.z = 0;
|
||||
work->unk20.x = -5;
|
||||
work->unk20.y = 0;
|
||||
work->unk20.z = 0;
|
||||
work->unk38 = 1750;
|
||||
}
|
||||
|
||||
void fn_1_18494(void)
|
||||
{
|
||||
StructBss24 *work = &lbl_1_bss_24;
|
||||
StructBss24 temp;
|
||||
if(work->unk40 == 50) {
|
||||
fn_1_1DFC(lbl_1_bss_9E4.unk00, 5, 5, 0, 0);
|
||||
fn_1_1DFC(lbl_1_bss_9E4.unk00, 6, 6, 0, 0);
|
||||
HuAudFXPlay(161);
|
||||
}
|
||||
temp.unk08.x = 0;
|
||||
temp.unk08.y = 130;
|
||||
temp.unk08.z = 460;
|
||||
temp.unk20.x = 0;
|
||||
temp.unk20.y = 0;
|
||||
temp.unk20.z = 0;
|
||||
temp.unk38 = 150;
|
||||
fn_1_4FEC(work, &temp, work->unk40, 180, 10);
|
||||
if(work->unk40++ >= 90) {
|
||||
if(work->unk40 == 91) {
|
||||
lbl_1_bss_88[0] = HuAudFXPlay(32);
|
||||
}
|
||||
work->unk20.x = fn_1_864(work->unk20.x, -45, work->unk40-90, 90);
|
||||
Hu3DData[lbl_1_bss_9E4.unk00->model[5]].rot.x = fn_1_864(0, 45, work->unk40-90, 90);
|
||||
}
|
||||
}
|
||||
118
src/REL/mstory2Dll/save.c
Normal file
118
src/REL/mstory2Dll/save.c
Normal file
|
|
@ -0,0 +1,118 @@
|
|||
#include "REL/mstoryDll.h"
|
||||
#include "game/data.h"
|
||||
#include "game/esprite.h"
|
||||
#include "game/flag.h"
|
||||
#include "game/gamework_data.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_D14;
|
||||
Process *lbl_1_bss_D10;
|
||||
|
||||
s32 fn_1_1B560(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_1B64C(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_D14 = 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) {
|
||||
if(omovlstat) {
|
||||
GWGameStat.story_continue = 0;
|
||||
}
|
||||
SLCommonSet();
|
||||
SLSaveBoardStory();
|
||||
SLSave();
|
||||
}
|
||||
}
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20);
|
||||
while (WipeStatGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
lbl_1_bss_D14 = 1;
|
||||
HuPrcEnd();
|
||||
while (TRUE) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_1B870(void)
|
||||
{
|
||||
_SetFlag(9);
|
||||
HuPrcChildCreate(fn_1_1B64C, 100, 0x2000, 0, HuPrcCurrentGet());
|
||||
do {
|
||||
fn_1_BC8();
|
||||
} while (lbl_1_bss_D14 != 1);
|
||||
if(omovlstat == 0) {
|
||||
omOvlGotoEx(OVL_MSTORY2, 1, 4, 0);
|
||||
} else {
|
||||
omOvlReturnEx(omovlhisidx, 1);
|
||||
}
|
||||
HuPrcEnd();
|
||||
while (TRUE) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_1B90C(Process *arg0)
|
||||
{
|
||||
lbl_1_bss_D10 = arg0;
|
||||
HuPrcChildCreate(fn_1_1B870, 100, 0x2000, 0, HuPrcCurrentGet());
|
||||
}
|
||||
|
|
@ -583,7 +583,7 @@ void fn_1_13A0(void)
|
|||
}
|
||||
}
|
||||
character = GWPlayerCfg[0].character;
|
||||
GWSystem.unk0B[1] = character;
|
||||
GWSystem.unk0C = character;
|
||||
GWPlayer[0].character = GWPlayerCfg[0].character;
|
||||
GWPlayer[1].character = GWPlayerCfg[1].character;
|
||||
GWPlayer[2].character = GWPlayerCfg[2].character;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue