Start modesel/filesel.c
This commit is contained in:
parent
e58c88841e
commit
c7ee412d7c
4 changed files with 742 additions and 3 deletions
735
src/REL/modeseldll/filesel.c
Normal file
735
src/REL/modeseldll/filesel.c
Normal file
|
|
@ -0,0 +1,735 @@
|
|||
#include "game/gamework_data.h"
|
||||
#include "game/process.h"
|
||||
#include "game/window.h"
|
||||
#include "game/wipe.h"
|
||||
#include "game/audio.h"
|
||||
#include "game/gamework.h"
|
||||
#include "game/saveload.h"
|
||||
#include "game/card.h"
|
||||
#include "game/hsfman.h"
|
||||
#include "game/pad.h"
|
||||
|
||||
#include "math.h"
|
||||
|
||||
#include "REL/modeseldll.h"
|
||||
|
||||
|
||||
s16 lbl_1_data_100 = -1;
|
||||
float lbl_1_data_104[] = {
|
||||
-55, 0, 0, 0, 60, -57, 806, -71,
|
||||
0, 0, 0, 100, -131, 900, -87, 0,
|
||||
0, 0, 46, -117, 566, -87, 0, 0,
|
||||
0, 46, -117, 566, -90, 0, 0, -22,
|
||||
39, -153, 432, -40, 0, 0, 0, 130,
|
||||
-186, 6530, -23, 0, 0, -9, 1,
|
||||
-70, 1318, -25, 0, 0, 0, 242, 90,
|
||||
343, -30, 0, 0, 0, 223, -60, 505,
|
||||
-23, 0, 0, 0, 65, -97, 1318
|
||||
};
|
||||
|
||||
s32 lbl_1_data_21C[] = {
|
||||
0x63000D,
|
||||
0x63000E,
|
||||
0x63000F,
|
||||
0x630010,
|
||||
0x630011,
|
||||
0x630012,
|
||||
0x630013,
|
||||
0x630014,
|
||||
0x630015,
|
||||
0x630016,
|
||||
0x630017,
|
||||
0x630018,
|
||||
0x630019,
|
||||
0x63001A,
|
||||
0x63001B,
|
||||
0x63001C,
|
||||
0x63001D,
|
||||
0x63001E,
|
||||
};
|
||||
|
||||
|
||||
char *lbl_1_data_26C[] = {
|
||||
"\x0E\x16",
|
||||
"\x0E\x17"
|
||||
};
|
||||
|
||||
char *lbl_1_data_278[] = {
|
||||
"A",
|
||||
"B"
|
||||
};
|
||||
|
||||
char *lbl_1_data_288[] = {
|
||||
"1",
|
||||
"2",
|
||||
"3"
|
||||
};
|
||||
|
||||
s32 lbl_1_bss_14C;
|
||||
s16 lbl_1_bss_148;
|
||||
s16 lbl_1_bss_146;
|
||||
s16 lbl_1_bss_140[3];
|
||||
s16 lbl_1_bss_13A[3];
|
||||
s16 lbl_1_bss_134[3];
|
||||
s32 lbl_1_bss_12C[2];
|
||||
s32 lbl_1_bss_120[3];
|
||||
s16 lbl_1_bss_11C;
|
||||
s16 lbl_1_bss_116[3];
|
||||
s16 lbl_1_bss_110[3];
|
||||
float lbl_1_bss_108[2];
|
||||
float lbl_1_bss_100[2];
|
||||
AnimData *lbl_1_bss_FC;
|
||||
AnimData *lbl_1_bss_F8;
|
||||
AnimData *lbl_1_bss_F4;
|
||||
s16 lbl_1_bss_EE[3];
|
||||
s16 lbl_1_bss_E8[3];
|
||||
OSTime lbl_1_bss_D0[3];
|
||||
s32 lbl_1_bss_C4[3];
|
||||
s32 lbl_1_bss_B8[3];
|
||||
s32 lbl_1_bss_AC[3];
|
||||
s16 lbl_1_bss_A4[3];
|
||||
s16 lbl_1_bss_9E[3];
|
||||
s16 lbl_1_bss_98[3];
|
||||
s16 lbl_1_bss_92[3];
|
||||
s16 lbl_1_bss_90;
|
||||
float lbl_1_bss_8C;
|
||||
s16 lbl_1_bss_88;
|
||||
|
||||
s32 fn_1_3AAC(void);
|
||||
void fn_1_5D30(void);
|
||||
s32 fn_1_61B4(void);
|
||||
void fn_1_AAB8(void);
|
||||
|
||||
s32 fn_1_37DC(void)
|
||||
{
|
||||
s16 i;
|
||||
s16 result;
|
||||
WindowData *window;
|
||||
s16 fxstat;
|
||||
Process *process = HuPrcCurrentGet();
|
||||
Process *child;
|
||||
float winSize[2];
|
||||
for(i=0; i<3; i++) {
|
||||
lbl_1_bss_13A[i] = lbl_1_bss_134[i] = -1;
|
||||
lbl_1_bss_116[i] = -1;
|
||||
lbl_1_bss_110[i] = -1;
|
||||
}
|
||||
lbl_1_bss_FC = lbl_1_bss_F8 = lbl_1_bss_F4 = NULL;
|
||||
curSlotNo = 0;
|
||||
fn_1_1EC0(0);
|
||||
fn_1_5D30();
|
||||
child = HuPrcChildCreate(fn_1_AAB8, 10, 8192, 0, process);
|
||||
winSize[0] = 457;
|
||||
winSize[1] = 94;
|
||||
lbl_1_bss_148 = HuWinExCreateStyled(-10000, 448-winSize[1], winSize[0], winSize[1], -1, 0);
|
||||
window = &winData[lbl_1_bss_148];
|
||||
window->active_pad = 1;
|
||||
HuWinPushKeySet(lbl_1_bss_148, 0x300);
|
||||
HuWinMesSpeedSet(lbl_1_bss_148, 0);
|
||||
HuWinDispOn(lbl_1_bss_148);
|
||||
fxstat = HuAudFXPlay(2098);
|
||||
lbl_1_data_100 = fxstat;
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30);
|
||||
while(WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuAudSeqPlay(43);
|
||||
while(1) {
|
||||
result = fn_1_3AAC();
|
||||
if(!result) {
|
||||
break;
|
||||
}
|
||||
if(!SLSaveFlagGet()) {
|
||||
GWGameStatReset();
|
||||
GWGameStat.sound_mode = msmSysGetOutputMode();
|
||||
result = 1;
|
||||
break;
|
||||
} else {
|
||||
if(fn_1_61B4()) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(result == 0) {
|
||||
HuAudFXStop(fxstat);
|
||||
}
|
||||
HuWinExAnimOut(lbl_1_bss_148);
|
||||
HuWinExCleanup(lbl_1_bss_148);
|
||||
HuPrcKill(child);
|
||||
HuCardUnMount(0);
|
||||
HuCardUnMount(1);
|
||||
return result;
|
||||
}
|
||||
|
||||
#define GET_ZEROSIGN(x) (((x) == 0) ? (-1) : (1))
|
||||
|
||||
s32 fn_1_562C(void);
|
||||
void fn_1_57C8(s16 arg0);
|
||||
void fn_1_5BAC(s16 arg0, s32 arg1);
|
||||
s32 fn_1_5C38(void);
|
||||
s32 fn_1_B8CC(u32 arg0);
|
||||
void fn_1_BA20(void);
|
||||
|
||||
//Various temporary register errors
|
||||
//Scratch: https://decomp.me/scratch/BDhfa
|
||||
s32 fn_1_3AAC(void)
|
||||
{
|
||||
s16 temp_r31;
|
||||
s16 temp_r30;
|
||||
s32 temp_r29;
|
||||
s32 temp_r28;
|
||||
s16 temp_r27;
|
||||
s16 temp_r26;
|
||||
s16 temp_r25;
|
||||
s16 temp_r24;
|
||||
WindowData *temp_r23;
|
||||
float temp_f31;
|
||||
CARDFileInfo sp34;
|
||||
Vec sp28;
|
||||
Vec sp1C;
|
||||
Vec sp10;
|
||||
float sp8[2];
|
||||
|
||||
fn_1_1EC0(0);
|
||||
temp_r23 = &winData[lbl_1_bss_148];
|
||||
HuWinMesMaxSizeGet(1, sp8, 0x10000C);
|
||||
lbl_1_bss_146 = HuWinExCreateStyled(-10000.0f, 316.0f, sp8[0], sp8[1], -1, 0);
|
||||
HuWinBGTPLvlSet(lbl_1_bss_146, 0);
|
||||
HuWinMesSpeedSet(lbl_1_bss_146, 0);
|
||||
while (1) {
|
||||
repeat:
|
||||
sp28.x = 188;
|
||||
sp28.y = 250;
|
||||
sp28.z = 600;
|
||||
Hu3D2Dto3D(&sp28, 1, &sp1C);
|
||||
Hu3DModelPosSetV(lbl_1_bss_19A[2], &sp1C);
|
||||
Hu3DModelPosSetV(lbl_1_bss_19A[4], &sp1C);
|
||||
Hu3DModelPosSetV(lbl_1_bss_19A[0], &sp1C);
|
||||
sp28.x = 388;
|
||||
Hu3D2Dto3D(&sp28, 1, &sp1C);
|
||||
Hu3DModelPosSetV(lbl_1_bss_19A[3], &sp1C);
|
||||
Hu3DModelPosSetV(lbl_1_bss_19A[5], &sp1C);
|
||||
Hu3DModelPosSetV(lbl_1_bss_19A[1], &sp1C);
|
||||
Hu3DModelAttrReset(lbl_1_bss_19A[2], 1);
|
||||
Hu3DModelAttrSet(lbl_1_bss_19A[4], 1);
|
||||
Hu3DModelAttrReset(lbl_1_bss_19A[3], 1);
|
||||
Hu3DModelAttrSet(lbl_1_bss_19A[5], 1);
|
||||
Hu3DModelRotSet(lbl_1_bss_19A[2], 0, 0, 0);
|
||||
Hu3DModelRotSet(lbl_1_bss_19A[3], 0, 0, 0);
|
||||
fn_1_57C8(lbl_1_bss_19A[4]);
|
||||
fn_1_57C8(lbl_1_bss_19A[5]);
|
||||
lbl_1_bss_12C[0] = lbl_1_bss_12C[1] = 1;
|
||||
lbl_1_bss_108[0] = lbl_1_bss_108[1] = lbl_1_bss_100[0] = lbl_1_bss_100[1] = 1.0f;
|
||||
lbl_1_bss_11C = -1;
|
||||
fn_1_5C38();
|
||||
for(temp_r30=0; temp_r30<=20; temp_r30++) {
|
||||
temp_f31 = temp_r30/20.0;
|
||||
temp_f31 = sin(M_PI*(90.0f*temp_f31)/180.0);
|
||||
Hu3DModelScaleSet(lbl_1_bss_19A[0], temp_f31, temp_f31, temp_f31);
|
||||
Hu3DModelScaleSet(lbl_1_bss_19A[1], temp_f31, temp_f31, temp_f31);
|
||||
Hu3DModelScaleSet(lbl_1_bss_19A[2], temp_f31, temp_f31, temp_f31);
|
||||
Hu3DModelScaleSet(lbl_1_bss_19A[3], temp_f31, temp_f31, temp_f31);
|
||||
Hu3DModelScaleSet(lbl_1_bss_19A[4], temp_f31, temp_f31, temp_f31);
|
||||
Hu3DModelScaleSet(lbl_1_bss_19A[5], temp_f31, temp_f31, temp_f31);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
while(1) {
|
||||
repeat_loop:
|
||||
HuWinDispOff(lbl_1_bss_146);
|
||||
temp_r28 = fn_1_562C();
|
||||
if(temp_r28 == 0 && fn_1_5C38() == 0) {
|
||||
if(fn_1_5C38() == 0) {
|
||||
HuWinMesSet(lbl_1_bss_148, 0x100002);
|
||||
HuWinMesWait(lbl_1_bss_148);
|
||||
}
|
||||
HuWinMesSet(lbl_1_bss_148, 0x10004F);
|
||||
HuWinAttrSet(lbl_1_bss_148, 0x10);
|
||||
HuWinMesWait(lbl_1_bss_148);
|
||||
temp_r27 = HuWinChoiceGet(lbl_1_bss_148, 1);
|
||||
if(temp_r27 == 0) {
|
||||
SLSaveFlagSet(0);
|
||||
temp_r29 = 1;
|
||||
goto cleanup;
|
||||
}
|
||||
HuWinInsertMesSet(lbl_1_bss_148, 0x100052, 0);
|
||||
HuWinMesSet(lbl_1_bss_148, 0x10004C);
|
||||
HuWinMesWait(lbl_1_bss_148);
|
||||
while(!(HuPadBtnDown[0] & PAD_BUTTON_A)) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
while(!fn_1_5C38()) {
|
||||
temp_r28 = fn_1_562C();
|
||||
HuWinMesSet(lbl_1_bss_148, 0x100002);
|
||||
HuWinMesWait(lbl_1_bss_148);
|
||||
if(temp_r23->key_down & PAD_BUTTON_B) {
|
||||
HuAudFXPlay(3);
|
||||
return 0;
|
||||
}
|
||||
if(fn_1_5C38()) {
|
||||
break;
|
||||
}
|
||||
HuWinMesSet(lbl_1_bss_148, 0x10004B);
|
||||
HuWinAttrSet(lbl_1_bss_148, 0x10);
|
||||
HuWinMesWait(lbl_1_bss_148);
|
||||
temp_r27 = HuWinChoiceGet(lbl_1_bss_148, 1);
|
||||
if(temp_r27 == 0) {
|
||||
SLSaveFlagSet(0);
|
||||
temp_r29 = 1;
|
||||
goto cleanup;
|
||||
}
|
||||
HuWinInsertMesSet(lbl_1_bss_148, 0x100052, 0);
|
||||
HuWinMesSet(lbl_1_bss_148, 0x10004C);
|
||||
HuWinMesWait(lbl_1_bss_148);
|
||||
while(!(HuPadBtnDown[0] & PAD_BUTTON_A)) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
SLSaveFlagSet(1);
|
||||
HuWinMesSet(lbl_1_bss_148, 0x100001);
|
||||
HuWinMesWait(lbl_1_bss_148);
|
||||
HuWinMesSet(lbl_1_bss_146, 0x10000C);
|
||||
HuWinDispOn(lbl_1_bss_146);
|
||||
if(curSlotNo == 0) {
|
||||
if(lbl_1_bss_14C & 0x1) {
|
||||
temp_r31 = 0;
|
||||
} else {
|
||||
temp_r31 = 1;
|
||||
}
|
||||
} else {
|
||||
if(lbl_1_bss_14C & 0x2) {
|
||||
temp_r31 = 1;
|
||||
} else {
|
||||
temp_r31 = 0;
|
||||
}
|
||||
}
|
||||
fn_1_5BAC(temp_r31, 1);
|
||||
HuPrcSleep(10);
|
||||
temp_r24 = temp_r31;
|
||||
while(1) {
|
||||
if(!fn_1_5C38()) {
|
||||
fn_1_5BAC(temp_r31, 0);
|
||||
HuPrcSleep(10);
|
||||
goto repeat_loop;
|
||||
} else {
|
||||
if((HuPadDStkRep[0] & 0x1) && (lbl_1_bss_14C & 0x1)) {
|
||||
temp_r31 = 0;
|
||||
} else if((HuPadDStkRep[0] & 0x2) && (lbl_1_bss_14C & 0x2)) {
|
||||
temp_r31 = 1;
|
||||
} else if(!(lbl_1_bss_14C & (1 << temp_r31))) {
|
||||
if(!(lbl_1_bss_14C & (1 << ((temp_r31+1) & 0x1)))) {
|
||||
fn_1_5BAC(temp_r31, 0);
|
||||
HuPrcSleep(10);
|
||||
goto repeat_loop;
|
||||
} else {
|
||||
temp_r31 = (temp_r31+1) & 0x1;
|
||||
}
|
||||
}
|
||||
if(temp_r24 != temp_r31) {
|
||||
HuAudFXPlay(0);
|
||||
fn_1_5BAC(temp_r31, 1);
|
||||
fn_1_5BAC((temp_r31+1) & 0x1, 0);
|
||||
HuPrcSleep(10);
|
||||
temp_r24 = temp_r31;
|
||||
}
|
||||
if(HuPadBtnDown[0] & PAD_BUTTON_A) {
|
||||
HuAudFXPlay(2096);
|
||||
goto loop_exit;
|
||||
} else if(HuPadBtnDown[0] & PAD_BUTTON_B) {
|
||||
HuAudFXPlay(3);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
loop_exit:
|
||||
HuWinHomeClear(lbl_1_bss_148);
|
||||
temp_r26 = (temp_r31+1)&0x1;
|
||||
Hu3DMotionSet(lbl_1_bss_19A[temp_r31+4], lbl_1_bss_16A[7]);
|
||||
Hu3DMotionSpeedSet(lbl_1_bss_19A[temp_r31+4], 2.0f);
|
||||
lbl_1_bss_12C[0] = lbl_1_bss_12C[1] = 0;
|
||||
lbl_1_bss_11C = temp_r31;
|
||||
SLCurSlotNoSet(temp_r31);
|
||||
temp_r28 = HuCardMount(temp_r31);
|
||||
if(temp_r28 == 0) {
|
||||
SLSerialNoGet();
|
||||
temp_r28 = HuCardOpen(temp_r31, SaveFileNameTbl[0], &sp34);
|
||||
if(temp_r28 != 0 && temp_r28 != -4) {
|
||||
temp_r29 = 1;
|
||||
} else {
|
||||
temp_r29 = 0;
|
||||
}
|
||||
HuCardClose(&sp34);
|
||||
break;
|
||||
} else {
|
||||
if(temp_r28 != -3) {
|
||||
temp_r29 = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
temp_r27 = HuCardSectorSizeGet(curSlotNo);
|
||||
if(temp_r27 > 0 && temp_r27 != 8192) {
|
||||
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
||||
HuWinMesSet(lbl_1_bss_148, 0x100039);
|
||||
HuWinMesWait(lbl_1_bss_148);
|
||||
temp_r29 = 1;
|
||||
goto skip_check;
|
||||
} else {
|
||||
if(temp_r27 == -128) {
|
||||
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
||||
HuWinMesSet(lbl_1_bss_148, 0x100053);
|
||||
HuWinMesWait(lbl_1_bss_148);
|
||||
temp_r29 = 1;
|
||||
goto skip_check;
|
||||
} else {
|
||||
lbl_1_bss_8C += 720.0f;
|
||||
for(temp_r30=0; temp_r30 <= 40; temp_r30++) {
|
||||
if(temp_r30 <= 30) {
|
||||
temp_f31 = temp_r30/30.0f;
|
||||
sp28.x = 288.0+(GET_ZEROSIGN(temp_r26)*(100.0+(250.0*sin(M_PI*(90.0f*temp_f31)/180.0))));
|
||||
sp28.y = 250.0-(100.0*sin(M_PI*(180.0f*temp_f31)/180.0));
|
||||
sp28.z = (temp_r30*100)+600;
|
||||
Hu3D2Dto3D(&sp28, 1, &sp1C);
|
||||
Hu3DModelPosSetV(lbl_1_bss_19A[temp_r26+2], &sp1C);
|
||||
Hu3DModelPosSetV(lbl_1_bss_19A[temp_r26], &sp1C);
|
||||
Hu3DModelRotSet(lbl_1_bss_19A[temp_r26+2], temp_r30*20, temp_r30*10, 0);
|
||||
}
|
||||
|
||||
if(temp_r30 > 20) {
|
||||
temp_f31 = (temp_r30-20)/20.0f;
|
||||
if(temp_r29) {
|
||||
sp28.x = 288.0f+((1.0-temp_f31)*(100*GET_ZEROSIGN(temp_r31)));
|
||||
sp28.y = 250.0-(100.0*sin(M_PI*(180.0f*temp_f31)/180.0));
|
||||
sp28.z = 600.0f;
|
||||
Hu3D2Dto3D(&sp28, 1, &sp1C);
|
||||
Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31], &sp1C);
|
||||
temp_f31 = (0.5*sin(M_PI*(90.0f*temp_f31)/180.0))+1.0;
|
||||
Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31], temp_f31, temp_f31, temp_f31);
|
||||
} else {
|
||||
sp28.x = 288.0f+(100*GET_ZEROSIGN(temp_r31));
|
||||
sp28.y = 250;
|
||||
sp28.z = 600;
|
||||
Hu3D2Dto3D(&sp28, 1, &sp1C);
|
||||
sp28.x = 60;
|
||||
sp28.y = 90;
|
||||
sp28.z = 600;
|
||||
Hu3D2Dto3D(&sp28, 1, &sp10);
|
||||
VECSubtract(&sp10, &sp1C, &sp28);
|
||||
sp28.x *= sin(M_PI*(90.0f*temp_f31)/180.0);
|
||||
sp28.y *= 1.0-cos(M_PI*(90.0f*temp_f31)/180.0);
|
||||
sp28.z = 0;
|
||||
VECAdd(&sp28, &sp1C, &sp1C);
|
||||
Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31], &sp1C);
|
||||
lbl_1_bss_108[temp_r31] *= cos(M_PI*(90.0f*temp_f31)/180.0);
|
||||
lbl_1_bss_100[temp_r31] = 1.0-temp_f31;
|
||||
temp_f31 = 1.0+(0.3*sin(M_PI*(180.0f*temp_f31)/180.0));
|
||||
Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31], temp_f31, temp_f31, temp_f31);
|
||||
}
|
||||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
if(temp_r29 == 0) {
|
||||
HuWinKill(lbl_1_bss_146);
|
||||
return 1;
|
||||
}
|
||||
HuWinDispOff(lbl_1_bss_146);
|
||||
temp_r29 = 0;
|
||||
if(temp_r28 == -2) {
|
||||
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[temp_r31]), 0);
|
||||
HuWinMesSet(lbl_1_bss_148, 0x100037);
|
||||
HuWinMesWait(lbl_1_bss_148);
|
||||
temp_r29 = 1;
|
||||
} else if(temp_r28 == -128) {
|
||||
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[temp_r31]), 0);
|
||||
HuWinMesSet(lbl_1_bss_148, 0x100053);
|
||||
HuWinMesWait(lbl_1_bss_148);
|
||||
temp_r29 = 1;
|
||||
} else if(temp_r28 == -3) {
|
||||
HuWinMesSet(lbl_1_bss_148, 0x100002);
|
||||
HuWinMesWait(lbl_1_bss_148);
|
||||
temp_r29 = 1;
|
||||
} else if(temp_r28 == -6) {
|
||||
UnMountCnt = 0;
|
||||
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[temp_r31]), 0);
|
||||
HuWinAttrSet(lbl_1_bss_148, 0x10);
|
||||
HuWinMesSet(lbl_1_bss_148, 0x100004);
|
||||
HuWinMesWait(lbl_1_bss_148);
|
||||
temp_r25 = HuWinChoiceGet(lbl_1_bss_148, 1);
|
||||
if(temp_r25 == 0) {
|
||||
HuWinMesSet(lbl_1_bss_148, 0x10004E);
|
||||
HuWinMesWait(lbl_1_bss_148);
|
||||
temp_r25 = HuWinChoiceGet(lbl_1_bss_148, 1);
|
||||
if(temp_r25 == 0) {
|
||||
fn_1_B8CC(0x100038);
|
||||
HuWinMesSet(lbl_1_bss_148, 0x10000B);
|
||||
HuWinMesWait(lbl_1_bss_148);
|
||||
HuPrcSleep(60);
|
||||
if(UnMountCnt & (1 << temp_r31)) {
|
||||
fn_1_BA20();
|
||||
HuWinMesSet(lbl_1_bss_148, 0x100050);
|
||||
HuWinMesWait(lbl_1_bss_148);
|
||||
temp_r29 = 1;
|
||||
goto cleanup;
|
||||
} else {
|
||||
_SetFlag(0x30000);
|
||||
temp_r28 = HuCardFormat(temp_r31);
|
||||
_ClearFlag(0x30000);
|
||||
if(temp_r28 == 0) {
|
||||
SLSerialNoGet();
|
||||
}
|
||||
fn_1_BA20();
|
||||
if(temp_r28 == -128) {
|
||||
HuWinMesSet(lbl_1_bss_148, 0x100036);
|
||||
HuWinMesWait(lbl_1_bss_148);
|
||||
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
||||
HuWinMesSet(lbl_1_bss_148, 0x100053);
|
||||
HuWinMesWait(lbl_1_bss_148);
|
||||
temp_r29 = 1;
|
||||
} else if(temp_r28 == -3) {
|
||||
HuWinMesSet(lbl_1_bss_148, 0x100002);
|
||||
HuWinMesWait(lbl_1_bss_148);
|
||||
temp_r29 = 1;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
temp_r29 = 1;
|
||||
}
|
||||
} else {
|
||||
temp_r29 = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(temp_r29 == 0) {
|
||||
goto cleanup;
|
||||
}
|
||||
skip_check:
|
||||
HuWinMesSet(lbl_1_bss_148, 0x10004F);
|
||||
HuWinAttrSet(lbl_1_bss_148, 0x10);
|
||||
HuWinMesWait(lbl_1_bss_148);
|
||||
temp_r27 = HuWinChoiceGet(lbl_1_bss_148, 1);
|
||||
if(temp_r27 == 0) {
|
||||
SLSaveFlagSet(0);
|
||||
goto cleanup;
|
||||
} else {
|
||||
HuWinInsertMesSet(lbl_1_bss_148, 0x100052, 0);
|
||||
HuWinMesSet(lbl_1_bss_148, 0x10004C);
|
||||
HuWinMesWait(lbl_1_bss_148);
|
||||
while(!(HuPadBtnDown[0] & PAD_BUTTON_A)) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
cleanup:
|
||||
HuWinDispOff(lbl_1_bss_146);
|
||||
lbl_1_bss_8C += 720.0f;
|
||||
for(temp_r30=0; temp_r30<=20; temp_r30++) {
|
||||
temp_f31 = temp_r30/20.0f;
|
||||
if(temp_r29) {
|
||||
temp_f31 = 1.5*cos(M_PI*(90.0f*temp_f31)/180.0);
|
||||
Hu3DModelScaleSet(lbl_1_bss_19A[0], temp_f31, temp_f31, temp_f31);
|
||||
Hu3DModelScaleSet(lbl_1_bss_19A[1], temp_f31, temp_f31, temp_f31);
|
||||
Hu3DModelScaleSet(lbl_1_bss_19A[2], 0.7*temp_f31, 0.7*temp_f31, 0.7*temp_f31);
|
||||
Hu3DModelScaleSet(lbl_1_bss_19A[3], 0.7*temp_f31, 0.7*temp_f31, 0.7*temp_f31);
|
||||
if(!SLSaveFlagGet()) {
|
||||
espScaleSet(lbl_1_bss_152[1], temp_f31, temp_f31);
|
||||
}
|
||||
} else {
|
||||
sp28.x = 288;
|
||||
sp28.y = 250;
|
||||
sp28.z = 600;
|
||||
Hu3D2Dto3D(&sp28, 1, &sp1C);
|
||||
sp28.x = 60;
|
||||
sp28.y = 90;
|
||||
sp28.z = 600;
|
||||
Hu3D2Dto3D(&sp28, 1, &sp10);
|
||||
VECSubtract(&sp10, &sp1C, &sp28);
|
||||
sp28.x *= sin(M_PI*(90.0f*temp_f31)/180.0);
|
||||
sp28.y *= 1.0-cos(M_PI*(90.0f*temp_f31)/180.0);
|
||||
sp28.z = 0.0f;
|
||||
VECAdd(&sp28, &sp1C, &sp1C);
|
||||
Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31], &sp1C);
|
||||
lbl_1_bss_108[temp_r31] *= cos(M_PI*(90.0f*temp_f31)/180.0);
|
||||
lbl_1_bss_100[temp_r31] = 1.0-temp_f31;
|
||||
temp_f31 = 1.0+(0.3*cos(M_PI*(180.0f*temp_f31)/180.0));
|
||||
Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31], temp_f31, temp_f31, temp_f31);
|
||||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
if(temp_r29 && SLSaveFlagGet()) {
|
||||
goto repeat;
|
||||
}
|
||||
HuWinKill(lbl_1_bss_146);
|
||||
return 1;
|
||||
}
|
||||
|
||||
s32 fn_1_562C(void)
|
||||
{
|
||||
s16 i;
|
||||
s16 result;
|
||||
s16 ret;
|
||||
ret = 1;
|
||||
for(i=0; i<2; i++) {
|
||||
result = HuCardSlotCheck((s32)i);
|
||||
if(result == -2) {
|
||||
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[i]), 0);
|
||||
HuWinMesSet(lbl_1_bss_148, 0x100037);
|
||||
HuWinMesWait(lbl_1_bss_148);
|
||||
ret = 0;
|
||||
} else if(result > 0 && result != 8192) {
|
||||
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[i]), 0);
|
||||
HuWinMesSet(lbl_1_bss_148, 0x100039);
|
||||
HuWinMesWait(lbl_1_bss_148);
|
||||
ret = 0;
|
||||
} else if(result == -128) {
|
||||
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[i]), 0);
|
||||
HuWinMesSet(lbl_1_bss_148, 0x100053);
|
||||
HuWinMesWait(lbl_1_bss_148);
|
||||
ret = 0;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
void fn_1_57C8(s16 arg0)
|
||||
{
|
||||
ModelData *model = &Hu3DData[arg0];
|
||||
HsfData *hsf = model->hsfData;
|
||||
HsfMaterial *mat = hsf->material;
|
||||
s16 i;
|
||||
for(i=0; i<hsf->materialCnt; i++, mat++) {
|
||||
mat->invAlpha = 0.0f;
|
||||
mat->pass &= 0xF0;
|
||||
}
|
||||
}
|
||||
|
||||
typedef struct work_filesel {
|
||||
s16 slot;
|
||||
s32 param;
|
||||
} WorkFilesel;
|
||||
|
||||
void fn_1_5850(void)
|
||||
{
|
||||
s16 slot;
|
||||
WorkFilesel *work;
|
||||
s16 i;
|
||||
s32 param;
|
||||
Process *curr;
|
||||
curr = HuPrcCurrentGet();
|
||||
work = curr->user_data;
|
||||
slot = work->slot;
|
||||
param = work->param;
|
||||
Hu3DModelAttrSet(lbl_1_bss_19A[slot+2], 1);
|
||||
Hu3DModelAttrReset(lbl_1_bss_19A[slot+4], 1);
|
||||
Hu3DMotionSet(lbl_1_bss_19A[slot+4], lbl_1_bss_16A[6]);
|
||||
Hu3DMotionSpeedSet(lbl_1_bss_19A[slot+4], 2.0f);
|
||||
if(param) {
|
||||
Hu3DModelAttrReset(lbl_1_bss_19A[slot+4], 0x40000004);
|
||||
} else {
|
||||
Hu3DModelAttrReset(lbl_1_bss_19A[slot+4], 0x40000004);
|
||||
Hu3DMotionTimeSet(lbl_1_bss_19A[slot+4], Hu3DMotionMaxTimeGet(lbl_1_bss_19A[6]));
|
||||
}
|
||||
for(i=0; i<10; i++) {
|
||||
float scale;
|
||||
float time = i/10.0;
|
||||
if(param) {
|
||||
scale = 1.5+(0.3*sin(M_PI*(90.0f*time)/180.0));
|
||||
} else {
|
||||
scale = 1.0+(0.3*cos(M_PI*(90.0f*time)/180.0));
|
||||
}
|
||||
Hu3DModelScaleSet(lbl_1_bss_19A[slot+2], scale, scale, scale);
|
||||
Hu3DModelScaleSet(lbl_1_bss_19A[slot+4], scale, scale, scale);
|
||||
Hu3DModelScaleSet(lbl_1_bss_19A[slot], scale, scale, scale);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
if(!param) {
|
||||
Hu3DModelAttrReset(lbl_1_bss_19A[slot+2], 1);
|
||||
Hu3DModelAttrSet(lbl_1_bss_19A[slot+4], 1);
|
||||
}
|
||||
HuMemDirectFree(work);
|
||||
HuPrcEnd();
|
||||
|
||||
while(1) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_5BAC(s16 arg0, s32 arg1)
|
||||
{
|
||||
WorkFilesel *work;
|
||||
Process *child;
|
||||
Process *parent;
|
||||
parent = HuPrcCurrentGet();
|
||||
child = HuPrcChildCreate(fn_1_5850, 50, 8192, 0, parent);
|
||||
work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkFilesel), MEMORY_DEFAULT_NUM);
|
||||
child->user_data = work;
|
||||
work->slot = arg0;
|
||||
work->param = arg1;
|
||||
}
|
||||
|
||||
s32 fn_1_5C38(void)
|
||||
{
|
||||
s32 result;
|
||||
lbl_1_bss_14C = 0;
|
||||
result = HuCardSlotCheck(0);
|
||||
if(result == 8192) {
|
||||
Hu3DModelAttrReset(lbl_1_bss_19A[0], 1);
|
||||
lbl_1_bss_14C |= 1;
|
||||
} else {
|
||||
Hu3DModelAttrSet(lbl_1_bss_19A[0], 1);
|
||||
}
|
||||
result = HuCardSlotCheck(1);
|
||||
if(result == 8192) {
|
||||
Hu3DModelAttrReset(lbl_1_bss_19A[1], 1);
|
||||
lbl_1_bss_14C |= 2;
|
||||
} else {
|
||||
Hu3DModelAttrSet(lbl_1_bss_19A[1], 1);
|
||||
}
|
||||
return lbl_1_bss_14C;
|
||||
}
|
||||
|
||||
void fn_1_5D30(void)
|
||||
{
|
||||
ModelData *model;
|
||||
Vec pos_2d;
|
||||
Vec pos_3d;
|
||||
Mtx scale;
|
||||
espAttrReset(lbl_1_bss_152[0], 4);
|
||||
espDrawNoSet(lbl_1_bss_152[0], 127);
|
||||
espAttrReset(lbl_1_bss_152[1], 4);
|
||||
Hu3DModelAttrReset(lbl_1_bss_19A[2], 1);
|
||||
pos_2d.x = 188;
|
||||
pos_2d.y = 250;
|
||||
pos_2d.z = 600;
|
||||
Hu3D2Dto3D(&pos_2d, 1, &pos_3d);
|
||||
Hu3DModelPosSetV(lbl_1_bss_19A[2], &pos_3d);
|
||||
Hu3DModelPosSetV(lbl_1_bss_19A[4], &pos_3d);
|
||||
Hu3DModelPosSetV(lbl_1_bss_19A[0], &pos_3d);
|
||||
MTXScale(scale, 0.5f, 0.5f, 0.5f);
|
||||
model = &Hu3DData[lbl_1_bss_19A[2]];
|
||||
MTXCopy(scale, model->unk_F0);
|
||||
model = &Hu3DData[lbl_1_bss_19A[4]];
|
||||
MTXCopy(scale, model->unk_F0);
|
||||
model = &Hu3DData[lbl_1_bss_19A[0]];
|
||||
MTXCopy(scale, model->unk_F0);
|
||||
Hu3DModelAttrReset(lbl_1_bss_19A[3], 1);
|
||||
pos_2d.x = 388;
|
||||
Hu3D2Dto3D(&pos_2d, 1, &pos_3d);
|
||||
Hu3DModelPosSetV(lbl_1_bss_19A[3], &pos_3d);
|
||||
Hu3DModelPosSetV(lbl_1_bss_19A[5], &pos_3d);
|
||||
Hu3DModelPosSetV(lbl_1_bss_19A[1], &pos_3d);
|
||||
model = &Hu3DData[lbl_1_bss_19A[3]];
|
||||
MTXCopy(scale, model->unk_F0);
|
||||
model = &Hu3DData[lbl_1_bss_19A[5]];
|
||||
MTXCopy(scale, model->unk_F0);
|
||||
model = &Hu3DData[lbl_1_bss_19A[1]];
|
||||
MTXCopy(scale, model->unk_F0);
|
||||
Hu3DModelScaleSet(lbl_1_bss_19A[0], 0, 0, 0);
|
||||
Hu3DModelScaleSet(lbl_1_bss_19A[1], 0, 0, 0);
|
||||
Hu3DModelScaleSet(lbl_1_bss_19A[2], 0, 0, 0);
|
||||
Hu3DModelScaleSet(lbl_1_bss_19A[3], 0, 0, 0);
|
||||
Hu3DModelScaleSet(lbl_1_bss_19A[4], 0, 0, 0);
|
||||
Hu3DModelScaleSet(lbl_1_bss_19A[5], 0, 0, 0);
|
||||
fn_1_5C38();
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue