2110 lines
78 KiB
C
2110 lines
78 KiB
C
#include "game/audio.h"
|
|
#include "game/card.h"
|
|
#include "game/gamework.h"
|
|
#include "game/gamework_data.h"
|
|
#include "game/hsfdraw.h"
|
|
#include "game/hsfman.h"
|
|
#include "game/pad.h"
|
|
#include "game/process.h"
|
|
#include "game/saveload.h"
|
|
#include "game/window.h"
|
|
#include "game/wipe.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[] = {
|
|
DATA_MAKE_NUM(DATADIR_MODESEL, 0x0D),
|
|
DATA_MAKE_NUM(DATADIR_MODESEL, 0x0E),
|
|
DATA_MAKE_NUM(DATADIR_MODESEL, 0x0F),
|
|
DATA_MAKE_NUM(DATADIR_MODESEL, 0x10),
|
|
DATA_MAKE_NUM(DATADIR_MODESEL, 0x11),
|
|
DATA_MAKE_NUM(DATADIR_MODESEL, 0x12),
|
|
DATA_MAKE_NUM(DATADIR_MODESEL, 0x13),
|
|
DATA_MAKE_NUM(DATADIR_MODESEL, 0x14),
|
|
DATA_MAKE_NUM(DATADIR_MODESEL, 0x15),
|
|
DATA_MAKE_NUM(DATADIR_MODESEL, 0x16),
|
|
DATA_MAKE_NUM(DATADIR_MODESEL, 0x17),
|
|
DATA_MAKE_NUM(DATADIR_MODESEL, 0x18),
|
|
DATA_MAKE_NUM(DATADIR_MODESEL, 0x19),
|
|
DATA_MAKE_NUM(DATADIR_MODESEL, 0x1A),
|
|
DATA_MAKE_NUM(DATADIR_MODESEL, 0x1B),
|
|
DATA_MAKE_NUM(DATADIR_MODESEL, 0x1C),
|
|
DATA_MAKE_NUM(DATADIR_MODESEL, 0x1D),
|
|
DATA_MAKE_NUM(DATADIR_MODESEL, 0x1E),
|
|
};
|
|
|
|
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);
|
|
void fn_1_B8CC(u32 arg0);
|
|
void fn_1_BA20(void);
|
|
|
|
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, MAKE_MESSID(0x10, 0x0C));
|
|
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);
|
|
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, MAKE_MESSID(16, 0x02));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
}
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4F));
|
|
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, MAKE_MESSID(16, 0x52), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4C));
|
|
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, MAKE_MESSID(16, 0x02));
|
|
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, MAKE_MESSID(16, 0x4B));
|
|
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, MAKE_MESSID(16, 0x52), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4C));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
while (!(HuPadBtnDown[0] & PAD_BUTTON_A)) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
SLSaveFlagSet(1);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x01));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x0C));
|
|
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);
|
|
}
|
|
else {
|
|
if (temp_r28 == -3) {
|
|
goto repeat;
|
|
}
|
|
temp_r29 = 1;
|
|
}
|
|
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, MAKE_MESSID(16, 0x39));
|
|
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, MAKE_MESSID(16, 0x53));
|
|
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 * cos(M_PI * (90.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, MAKE_MESSID(16, 0x37));
|
|
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, MAKE_MESSID(16, 0x53));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
temp_r29 = 1;
|
|
}
|
|
else if (temp_r28 == -3) {
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02));
|
|
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, MAKE_MESSID(16, 0x04));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
temp_r25 = HuWinChoiceGet(lbl_1_bss_148, 1);
|
|
if (temp_r25 == 0) {
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4E));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
temp_r25 = HuWinChoiceGet(lbl_1_bss_148, 1);
|
|
if (temp_r25 == 0) {
|
|
fn_1_B8CC(MAKE_MESSID(16, 0x38));
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x0B));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
HuPrcSleep(60);
|
|
if (UnMountCnt & (1 << temp_r31)) {
|
|
fn_1_BA20();
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x50));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
temp_r29 = 1;
|
|
goto cleanup;
|
|
}
|
|
else {
|
|
_SetFlag(0x30000);
|
|
temp_r28 = HuCardFormat(temp_r31);
|
|
_ClearFlag(FLAG_ID_MAKE(3, 0));
|
|
if (temp_r28 == 0) {
|
|
SLSerialNoGet();
|
|
}
|
|
fn_1_BA20();
|
|
if (temp_r28 == -128) {
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x36));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
temp_r29 = 1;
|
|
}
|
|
else if (temp_r28 == -3) {
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02));
|
|
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, MAKE_MESSID(16, 0x4F));
|
|
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, MAKE_MESSID(16, 0x52), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4C));
|
|
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.5 * cos(M_PI * (90.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, MAKE_MESSID(16, 0x37));
|
|
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, MAKE_MESSID(16, 0x39));
|
|
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, MAKE_MESSID(16, 0x53));
|
|
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 index;
|
|
s32 param;
|
|
} WorkFilesel;
|
|
|
|
void fn_1_5850(void)
|
|
{
|
|
s16 index;
|
|
WorkFilesel *work;
|
|
s16 i;
|
|
s32 param;
|
|
Process *curr;
|
|
curr = HuPrcCurrentGet();
|
|
work = curr->user_data;
|
|
index = work->index;
|
|
param = work->param;
|
|
Hu3DModelAttrSet(lbl_1_bss_19A[index + 2], 1);
|
|
Hu3DModelAttrReset(lbl_1_bss_19A[index + 4], 1);
|
|
Hu3DMotionSet(lbl_1_bss_19A[index + 4], lbl_1_bss_16A[6]);
|
|
Hu3DMotionSpeedSet(lbl_1_bss_19A[index + 4], 2.0f);
|
|
if (param) {
|
|
Hu3DModelAttrReset(lbl_1_bss_19A[index + 4], 0x40000004);
|
|
}
|
|
else {
|
|
Hu3DModelAttrSet(lbl_1_bss_19A[index + 4], 0x40000004);
|
|
Hu3DMotionTimeSet(lbl_1_bss_19A[index + 4], Hu3DMotionMaxTimeGet(lbl_1_bss_19A[6]));
|
|
}
|
|
for (i = 0; i < 10; i++) {
|
|
float scale;
|
|
float time = i / 10.0;
|
|
if (param) {
|
|
scale = 1.0 + (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[index + 2], scale, scale, scale);
|
|
Hu3DModelScaleSet(lbl_1_bss_19A[index + 4], scale, scale, scale);
|
|
Hu3DModelScaleSet(lbl_1_bss_19A[index], scale, scale, scale);
|
|
HuPrcVSleep();
|
|
}
|
|
if (!param) {
|
|
Hu3DModelAttrReset(lbl_1_bss_19A[index + 2], 1);
|
|
Hu3DModelAttrSet(lbl_1_bss_19A[index + 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->index = 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();
|
|
}
|
|
|
|
void fn_1_7628(s16 boxno, s32 flag);
|
|
|
|
s32 fn_1_76B4(char *name, s16 slotno);
|
|
s32 fn_1_7B74(s16 boxno);
|
|
s32 fn_1_812C(void);
|
|
s32 fn_1_83B4(void);
|
|
s32 fn_1_8540(s16 boxno);
|
|
s32 fn_1_8C30(s16 boxno);
|
|
s32 fn_1_9E14(void);
|
|
s32 fn_1_9E4C(void);
|
|
|
|
void fn_1_A8C0(s16 boxno);
|
|
void fn_1_BA80(s16 boxno);
|
|
|
|
s32 fn_1_61B4(void)
|
|
{
|
|
float temp_f31;
|
|
s16 temp_r31;
|
|
s16 temp_r30;
|
|
s16 temp_r29;
|
|
s16 temp_r28;
|
|
s32 temp_r27;
|
|
s16 temp_r26;
|
|
float sp10[2];
|
|
OSTime sp8;
|
|
HuWinMesMaxSizeGet(1, sp10, MAKE_MESSID(0x10, 0x3D));
|
|
lbl_1_bss_146 = HuWinExCreateStyled(-10000, 316, sp10[0], sp10[1], -1, 0);
|
|
HuWinAttrSet(lbl_1_bss_146, 0x800);
|
|
HuWinBGTPLvlSet(lbl_1_bss_146, 0);
|
|
HuWinMesSpeedSet(lbl_1_bss_146, 0);
|
|
temp_r30 = -1;
|
|
for (temp_r29 = lbl_1_bss_88 = 0; temp_r29 < 3; temp_r29++) {
|
|
lbl_1_bss_EE[temp_r29] = -1;
|
|
lbl_1_bss_E8[temp_r29] = -1;
|
|
lbl_1_bss_140[temp_r29] = 0;
|
|
temp_r27 = fn_1_76B4(SaveFileNameTbl[temp_r29], curSlotNo);
|
|
if (temp_r27 == 0) {
|
|
temp_r27 = fn_1_83B4();
|
|
if (temp_r27 == 0) {
|
|
lbl_1_bss_140[temp_r29] = 1;
|
|
if (lbl_1_bss_88 == 0) {
|
|
temp_r30 = temp_r29;
|
|
}
|
|
lbl_1_bss_88++;
|
|
if (SLCheckSumCheck()) {
|
|
fn_1_A8C0(temp_r29);
|
|
}
|
|
}
|
|
fn_1_9E14();
|
|
}
|
|
if (temp_r27 != 0 && temp_r27 != -4) {
|
|
HuWinKill(lbl_1_bss_146);
|
|
return 0;
|
|
}
|
|
}
|
|
fn_1_9E4C();
|
|
if (temp_r30 == -1) {
|
|
temp_r30 = 0;
|
|
}
|
|
lbl_1_bss_120[0] = lbl_1_bss_120[1] = lbl_1_bss_120[2] = 1;
|
|
UnMountCnt = 0;
|
|
for (temp_r29 = 0; temp_r29 <= 20; temp_r29++) {
|
|
temp_f31 = sin(M_PI * (90.0f * (temp_r29 / 20.0f)) / 180.0);
|
|
for (temp_r28 = 0; temp_r28 < 3; temp_r28++) {
|
|
Hu3DModelScaleSet(lbl_1_bss_19A[temp_r28 + 8], temp_f31, temp_f31, temp_f31);
|
|
Hu3DModelScaleSet(lbl_1_bss_19A[temp_r28 + 11], temp_f31, temp_f31, temp_f31);
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x07));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
fn_1_7628(temp_r30, 1);
|
|
if (lbl_1_bss_88 == 0) {
|
|
HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x40));
|
|
}
|
|
else {
|
|
if (lbl_1_bss_88 == 3) {
|
|
HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x3F));
|
|
}
|
|
else {
|
|
HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x3D));
|
|
}
|
|
}
|
|
HuWinDispOn(lbl_1_bss_146);
|
|
fn_1_BA80(temp_r30);
|
|
if (UnMountCnt & (1 << curSlotNo)) {
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x50));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
temp_r31 = 0;
|
|
}
|
|
else {
|
|
UnMountCnt = 0;
|
|
while (1) {
|
|
HuPrcVSleep();
|
|
if (UnMountCnt & (1 << curSlotNo)) {
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x50));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
temp_r31 = 0;
|
|
break;
|
|
}
|
|
temp_r26 = 0;
|
|
if (HuPadDStkRep[0] & 0x1) {
|
|
temp_r26 = -1;
|
|
}
|
|
else if (HuPadDStkRep[0] & 0x2) {
|
|
temp_r26 = 1;
|
|
}
|
|
if (temp_r26) {
|
|
fn_1_7628(temp_r30, 0);
|
|
temp_r30 += temp_r26;
|
|
if (temp_r30 < 0) {
|
|
temp_r30 = 2;
|
|
}
|
|
else if (temp_r30 >= 3) {
|
|
temp_r30 = 0;
|
|
}
|
|
HuAudFXPlay(0);
|
|
fn_1_7628(temp_r30, 1);
|
|
fn_1_BA80(temp_r30);
|
|
HuPrcSleep(10);
|
|
}
|
|
if ((HuPadBtnDown[0] & PAD_BUTTON_X) && lbl_1_bss_140[temp_r30]) {
|
|
UnMountCnt = 0;
|
|
temp_r31 = fn_1_76B4(SaveFileNameTbl[temp_r30], curSlotNo);
|
|
if (temp_r31 < 0) {
|
|
temp_r31 = 0;
|
|
break;
|
|
}
|
|
if (!lbl_1_bss_140[temp_r30]) {
|
|
continue;
|
|
}
|
|
HuWinDispOff(lbl_1_bss_146);
|
|
HuAudFXPlay(2);
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_288[temp_r30]), 1);
|
|
HuWinAttrSet(lbl_1_bss_148, 0x10);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x08));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
temp_r31 = HuWinChoiceGet(lbl_1_bss_148, 1);
|
|
if (temp_r31 == 0) {
|
|
temp_r31 = fn_1_8540(temp_r30);
|
|
if (temp_r31 == 0) {
|
|
break;
|
|
}
|
|
}
|
|
if (UnMountCnt & (1 << curSlotNo)) {
|
|
continue;
|
|
}
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x07));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
if (lbl_1_bss_88 == 0) {
|
|
HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x40));
|
|
}
|
|
else if (lbl_1_bss_88 == 3) {
|
|
HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x3F));
|
|
}
|
|
else {
|
|
HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x3D));
|
|
}
|
|
HuWinDispOn(lbl_1_bss_146);
|
|
fn_1_BA80(temp_r30);
|
|
continue;
|
|
}
|
|
else if (HuPadBtnDown[0] & PAD_BUTTON_Y) {
|
|
UnMountCnt = 0;
|
|
if (HuCardSlotCheck(curSlotNo) < 0) {
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
temp_r31 = 0;
|
|
break;
|
|
}
|
|
if (!lbl_1_bss_140[temp_r30]) {
|
|
continue;
|
|
}
|
|
for (temp_r29 = 0; temp_r29 < 3; temp_r29++) {
|
|
if (!lbl_1_bss_140[temp_r29]) {
|
|
break;
|
|
}
|
|
}
|
|
if (temp_r29 == 3) {
|
|
continue;
|
|
}
|
|
HuWinDispOff(lbl_1_bss_146);
|
|
HuAudFXPlay(2);
|
|
if (fn_1_8C30(temp_r30) == 0) {
|
|
temp_r31 = 0;
|
|
break;
|
|
}
|
|
if (UnMountCnt & (1 << curSlotNo)) {
|
|
continue;
|
|
}
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x07));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
if (lbl_1_bss_88 == 0) {
|
|
HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x40));
|
|
}
|
|
else if (lbl_1_bss_88 == 3) {
|
|
HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x3F));
|
|
}
|
|
else {
|
|
HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x3D));
|
|
}
|
|
HuWinDispOn(lbl_1_bss_146);
|
|
fn_1_BA80(temp_r30);
|
|
continue;
|
|
}
|
|
else if (HuPadBtnDown[0] & PAD_BUTTON_A) {
|
|
UnMountCnt = 0;
|
|
HuWinDispOff(lbl_1_bss_146);
|
|
HuCardMount(curSlotNo);
|
|
if (HuCardSlotCheck(curSlotNo) < 0) {
|
|
HuAudFXPlay(4);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
temp_r31 = 0;
|
|
break;
|
|
}
|
|
if (SLSerialNoCheck() == 0) {
|
|
HuAudFXPlay(4);
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x45));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
temp_r31 = 0;
|
|
break;
|
|
}
|
|
HuAudFXPlay(2097);
|
|
SLCurBoxNoSet(temp_r30);
|
|
if (!lbl_1_bss_140[temp_r30]) {
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x0B));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
sp8 = OSGetTime();
|
|
SLSaveDataMake(1, &sp8);
|
|
GWGameStatReset();
|
|
GWGameStat.sound_mode = msmSysGetOutputMode();
|
|
SLCommonSet();
|
|
fn_1_B8CC(MAKE_MESSID(16, 0x3C));
|
|
HuPrcSleep(20);
|
|
if (UnMountCnt & (1 << curSlotNo)) {
|
|
fn_1_BA20();
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x50));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
temp_r31 = 0;
|
|
break;
|
|
}
|
|
temp_r27 = fn_1_7B74(temp_r30);
|
|
fn_1_BA20();
|
|
if (temp_r27 != 0) {
|
|
temp_r31 = 1;
|
|
break;
|
|
}
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4F));
|
|
HuWinAttrSet(lbl_1_bss_148, 0x10);
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
temp_r31 = HuWinChoiceGet(lbl_1_bss_148, 1);
|
|
if (temp_r31 == 0) {
|
|
SLSaveFlagSet(0);
|
|
temp_r31 = 1;
|
|
break;
|
|
}
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x52), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4C));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
while (!(HuPadBtnDown[0] & PAD_BUTTON_A)) {
|
|
HuPrcVSleep();
|
|
}
|
|
temp_r31 = 0;
|
|
break;
|
|
}
|
|
else {
|
|
if (!fn_1_76B4(SaveFileNameTbl[temp_r30], curSlotNo)) {
|
|
if (!fn_1_83B4()) {
|
|
if (SLCheckSumCheck()) {
|
|
fn_1_9E14();
|
|
SLLoadGameStat();
|
|
temp_r31 = 1;
|
|
break;
|
|
}
|
|
HuWinHomeClear(lbl_1_bss_148);
|
|
HuPrcSleep(60);
|
|
if (UnMountCnt & (1 << curSlotNo)) {
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x50));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
temp_r31 = 0;
|
|
break;
|
|
}
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_288[temp_r30]), 0);
|
|
HuWinAttrSet(lbl_1_bss_148, 0x10);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x3A));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
temp_r31 = HuWinChoiceGet(lbl_1_bss_148, 1);
|
|
if (!temp_r31) {
|
|
temp_r31 = fn_1_8540(temp_r30);
|
|
if (temp_r31 == 0) {
|
|
break;
|
|
}
|
|
if (HuCardMount(curSlotNo) < 0) {
|
|
temp_r31 = 0;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
temp_r31 = 0;
|
|
}
|
|
}
|
|
else {
|
|
temp_r31 = 0;
|
|
}
|
|
if (temp_r31 == 0) {
|
|
break;
|
|
}
|
|
if (UnMountCnt & (1 << curSlotNo)) {
|
|
continue;
|
|
}
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x07));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
if (lbl_1_bss_88 == 0) {
|
|
HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x40));
|
|
}
|
|
else if (lbl_1_bss_88 == 3) {
|
|
HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x3F));
|
|
}
|
|
else {
|
|
HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x3D));
|
|
}
|
|
HuWinDispOn(lbl_1_bss_146);
|
|
fn_1_BA80(temp_r30);
|
|
continue;
|
|
}
|
|
}
|
|
else if (HuPadBtnDown[0] & PAD_BUTTON_B) {
|
|
HuAudFXPlay(3);
|
|
temp_r31 = 0;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
HuWinDispOff(lbl_1_bss_146);
|
|
for (temp_r29 = 0; temp_r29 <= 20; temp_r29++) {
|
|
temp_f31 = cos(M_PI * (90.0 * (temp_r29 / 20.0)) / 180.0);
|
|
Hu3DModelScaleSet(lbl_1_bss_19A[curSlotNo], temp_f31, temp_f31, temp_f31);
|
|
for (temp_r28 = 0; temp_r28 < 3; temp_r28++) {
|
|
Hu3DModelScaleSet(lbl_1_bss_19A[temp_r28 + 8], temp_f31, temp_f31, temp_f31);
|
|
Hu3DModelScaleSet(lbl_1_bss_19A[temp_r28 + 11], temp_f31, temp_f31, temp_f31);
|
|
}
|
|
if (temp_r31) {
|
|
espScaleSet(lbl_1_bss_152[1], temp_f31, temp_f31);
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
HuWinKill(lbl_1_bss_146);
|
|
return temp_r31;
|
|
}
|
|
|
|
void fn_1_72DC(void)
|
|
{
|
|
s16 index;
|
|
WorkFilesel *work;
|
|
s16 i;
|
|
s32 param;
|
|
Process *curr;
|
|
curr = HuPrcCurrentGet();
|
|
work = curr->user_data;
|
|
index = work->index;
|
|
param = work->param;
|
|
if (param) {
|
|
Hu3DModelAttrReset(lbl_1_bss_19A[index + 8], 1);
|
|
Hu3DModelAttrSet(lbl_1_bss_19A[index + 11], 1);
|
|
}
|
|
else {
|
|
Hu3DModelAttrSet(lbl_1_bss_19A[index + 8], 1);
|
|
Hu3DModelAttrReset(lbl_1_bss_19A[index + 11], 1);
|
|
}
|
|
for (i = 0; i <= 10; i++) {
|
|
float scale;
|
|
Vec pos_2d;
|
|
Vec pos_3d;
|
|
if (param) {
|
|
scale = sin(M_PI * (90.0f * (i / 10.0f)) / 180.0);
|
|
}
|
|
else {
|
|
scale = cos(M_PI * (90.0f * (i / 10.0f)) / 180.0);
|
|
}
|
|
pos_2d.x = 158.0f + (index * 130);
|
|
pos_2d.y = 230;
|
|
pos_2d.z = 800;
|
|
Hu3D2Dto3D(&pos_2d, 1, &pos_3d);
|
|
pos_3d.z = 800 + (100.0f * scale);
|
|
Hu3DModelPosSetV(lbl_1_bss_19A[index + 8], &pos_3d);
|
|
Hu3DModelPosSetV(lbl_1_bss_19A[index + 11], &pos_3d);
|
|
Hu3DModelScaleSet(lbl_1_bss_19A[index + 8], 1, 1, 1);
|
|
Hu3DModelScaleSet(lbl_1_bss_19A[index + 11], 1, 1, 1);
|
|
HuPrcVSleep();
|
|
}
|
|
(void)curr;
|
|
HuMemDirectFree(work);
|
|
HuPrcEnd();
|
|
while (1) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_7628(s16 boxno, s32 flag)
|
|
{
|
|
WorkFilesel *work;
|
|
Process *parent;
|
|
Process *child;
|
|
|
|
parent = HuPrcCurrentGet();
|
|
child = HuPrcChildCreate(fn_1_72DC, 50, 8192, 0, parent);
|
|
work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkFilesel), MEMORY_DEFAULT_NUM);
|
|
child->user_data = work;
|
|
work->index = boxno;
|
|
work->param = flag;
|
|
}
|
|
|
|
s32 fn_1_76B4(char *name, s16 slotno)
|
|
{
|
|
s32 result;
|
|
s16 choice;
|
|
s16 filecnt;
|
|
filecnt = 0;
|
|
while (1) {
|
|
filecnt++;
|
|
result = HuCardMount(slotno);
|
|
if (result == 0) {
|
|
result = HuCardOpen(slotno, name, &curFileInfo);
|
|
if (result == 0 || result == -4) {
|
|
if (SLSerialNoCheck()) {
|
|
return result;
|
|
}
|
|
}
|
|
}
|
|
if (result == -2) {
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[slotno]), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x37));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
return result;
|
|
}
|
|
if (result == -128 || filecnt > 3) {
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[slotno]), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
return result;
|
|
}
|
|
else if (result == -3) {
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
return result;
|
|
}
|
|
else if (result == -4 || !SLSerialNoCheck()) {
|
|
OSReport("Card Open Error:No File\n");
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x45));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
break;
|
|
}
|
|
else if (result == -6) {
|
|
UnMountCnt = 0;
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[slotno]), 0);
|
|
HuWinAttrSet(lbl_1_bss_148, 0x10);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x04));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
choice = HuWinChoiceGet(lbl_1_bss_148, 1);
|
|
if (choice == 0) {
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4E));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
choice = HuWinChoiceGet(lbl_1_bss_148, 1);
|
|
if (choice == 0) {
|
|
fn_1_B8CC(MAKE_MESSID(16, 0x38));
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x0B));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
HuPrcSleep(60);
|
|
if (UnMountCnt & (1 << curSlotNo)) {
|
|
fn_1_BA20();
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x50));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
}
|
|
else {
|
|
_SetFlag(0x30000);
|
|
result = HuCardFormat(slotno);
|
|
_ClearFlag(0x30000);
|
|
if (result == 0) {
|
|
SLSerialNoGet();
|
|
}
|
|
fn_1_BA20();
|
|
if (result == -128) {
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x36));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
return result;
|
|
}
|
|
else if (result == -3) {
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
return result;
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
return result;
|
|
}
|
|
continue;
|
|
}
|
|
return result;
|
|
}
|
|
break;
|
|
}
|
|
return result;
|
|
}
|
|
|
|
s32 fn_1_7B74(s16 boxno)
|
|
{
|
|
s32 result;
|
|
s32 i;
|
|
result = HuCardMount(curSlotNo);
|
|
if (result == 0 && !SLSerialNoCheck()) {
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x45));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
}
|
|
else {
|
|
result = HuCardSectorSizeGet(curSlotNo);
|
|
if (result == -3) {
|
|
fn_1_BA20();
|
|
OSReport("SectorSize Check Error:No Card %d\n", curSlotNo);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
}
|
|
else {
|
|
if (result != 8192) {
|
|
fn_1_BA20();
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x39));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
}
|
|
else {
|
|
u32 byteNotUsed;
|
|
u32 filesNotUsed;
|
|
result = HuCardFreeSpaceGet(curSlotNo, &byteNotUsed, &filesNotUsed);
|
|
if (filesNotUsed == 0 && byteNotUsed < SAVE_BUF_SIZE) {
|
|
fn_1_BA20();
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4A));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
}
|
|
else if (filesNotUsed == 0) {
|
|
fn_1_BA20();
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4A));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
}
|
|
else if (byteNotUsed < SAVE_BUF_SIZE) {
|
|
fn_1_BA20();
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4A));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
}
|
|
else {
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x0B));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
for (i = 0; i <= 40; i++) {
|
|
float time = i / 40.0;
|
|
Hu3DModelTPLvlSet(lbl_1_bss_19A[boxno + 8], 0.6 + (0.4 * time));
|
|
Hu3DModelTPLvlSet(lbl_1_bss_19A[boxno + 11], 0.3 + (0.7 * time));
|
|
HuPrcVSleep();
|
|
}
|
|
_SetFlag(0x30000);
|
|
result = HuCardCreate(curSlotNo, SaveFileNameTbl[boxno], SAVE_BUF_SIZE, &curFileInfo);
|
|
if (result == -3) {
|
|
_ClearFlag(0x30000);
|
|
fn_1_BA20();
|
|
OSReport("File Create Error:No Card\n");
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
}
|
|
else if (result == -2) {
|
|
_ClearFlag(0x30000);
|
|
fn_1_BA20();
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x37));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
}
|
|
else if (result < 0) {
|
|
_ClearFlag(0x30000);
|
|
fn_1_BA20();
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
}
|
|
else {
|
|
result = fn_1_812C();
|
|
_ClearFlag(0x30000);
|
|
if (result != 0) {
|
|
return 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
s32 fn_1_812C(void)
|
|
{
|
|
s32 result;
|
|
SLCheckSumSet();
|
|
_SetFlag(0x30000);
|
|
result = HuCardWrite(&curFileInfo, &saveBuf.buf[0], SAVE_BUF_SIZE, 0);
|
|
_ClearFlag(0x30000);
|
|
if (result == -3) {
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
return 0;
|
|
}
|
|
if (result == -2) {
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x37));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
return 0;
|
|
}
|
|
if (result < 0) {
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
return 0;
|
|
}
|
|
result = SLStatSet(0);
|
|
if (result == -3) {
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
return 0;
|
|
}
|
|
if (result == -2) {
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x37));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
return 0;
|
|
}
|
|
if (result < 0) {
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
s32 fn_1_83B4(void)
|
|
{
|
|
s32 result;
|
|
result = HuCardRead(&curFileInfo, &saveBuf.buf[0], SAVE_BUF_SIZE, 0);
|
|
if (result == -3) {
|
|
OSReport("Card Read Error:No Card\n");
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
}
|
|
else if (result == -4 || !SLSerialNoCheck()) {
|
|
OSReport("Card Read Error:No File\n", result);
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x45));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
}
|
|
else if (result < 0) {
|
|
OSReport("Card Read Error:Fatal Error %d\n", result);
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
s32 fn_1_8540(s16 boxno)
|
|
{
|
|
float scale;
|
|
s32 result;
|
|
s32 time;
|
|
AnimData *sprite;
|
|
result = HuCardMount(curSlotNo);
|
|
if (result == -3) {
|
|
OSReport("Card Delete Error:No Card\n");
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
return 0;
|
|
}
|
|
if (result == -4 || !SLSerialNoCheck()) {
|
|
OSReport("Card Delete Error:No File\n", result);
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x45));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
return 0;
|
|
}
|
|
if (result < 0) {
|
|
OSReport("Card Delete Error:Fatal Error %d\n", result);
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
return 0;
|
|
}
|
|
|
|
fn_1_B8CC(MAKE_MESSID(16, 0x3B));
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x0B));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
HuPrcSleep(60);
|
|
if (UnMountCnt & (1 << curSlotNo)) {
|
|
fn_1_BA20();
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x50));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
return 0;
|
|
}
|
|
else {
|
|
_SetFlag(0x30000);
|
|
result = HuCardDelete(curSlotNo, SaveFileNameTbl[boxno]);
|
|
_ClearFlag(0x30000);
|
|
fn_1_BA20();
|
|
if (result == -3) {
|
|
OSReport("Card Delete Error:No Card\n");
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
return 0;
|
|
}
|
|
if (result == -4 || !SLSerialNoCheck()) {
|
|
OSReport("Card Delete Error:No File\n", result);
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x45));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
return 0;
|
|
}
|
|
if (result < 0) {
|
|
OSReport("Card Delete Error:Fatal Error %d\n", result);
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
return 0;
|
|
}
|
|
for (time = 0; time <= 10; time++) {
|
|
scale = cos(M_PI * (90.0 * (time / 10.0)) / 180.0);
|
|
Hu3DModelScaleSet(lbl_1_bss_19A[boxno + 8], scale, scale, scale);
|
|
HuPrcVSleep();
|
|
}
|
|
Hu3DAnimKill(lbl_1_bss_13A[boxno]);
|
|
Hu3DAnimKill(lbl_1_bss_134[boxno]);
|
|
sprite = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[8], MEMORY_DEFAULT_NUM));
|
|
lbl_1_bss_13A[boxno] = Hu3DAnimCreate(sprite, lbl_1_bss_19A[boxno + 8], "star");
|
|
sprite = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[17], MEMORY_DEFAULT_NUM));
|
|
lbl_1_bss_134[boxno] = Hu3DAnimCreate(sprite, lbl_1_bss_19A[boxno + 11], "star");
|
|
lbl_1_bss_EE[boxno] = -1;
|
|
Hu3DModelTPLvlSet(lbl_1_bss_19A[boxno + 8], 0.6f);
|
|
Hu3DModelTPLvlSet(lbl_1_bss_19A[boxno + 11], 0.3f);
|
|
for (time = 0; time <= 20; time++) {
|
|
scale = sin(M_PI * (90.0 * (time / 20.0)) / 180.0);
|
|
Hu3DModelScaleSet(lbl_1_bss_19A[boxno + 8], scale, scale, scale);
|
|
HuPrcVSleep();
|
|
}
|
|
lbl_1_bss_140[boxno] = 0;
|
|
lbl_1_bss_88--;
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
s32 fn_1_8C30(s16 boxno)
|
|
{
|
|
float temp_f31;
|
|
s16 temp_r31;
|
|
s16 temp_r30;
|
|
s32 temp_r29;
|
|
s16 temp_r26;
|
|
s16 temp_r25;
|
|
AnimData *temp_r19;
|
|
Vec sp60;
|
|
Vec sp54;
|
|
Vec sp48;
|
|
Vec sp3C;
|
|
s32 sp38;
|
|
s32 sp34;
|
|
Process *sp30;
|
|
ModelData *sp2C;
|
|
sp30 = HuPrcCurrentGet();
|
|
OSReport("Card Copy Seq.:Open\n");
|
|
temp_r29 = fn_1_76B4(SaveFileNameTbl[boxno], curSlotNo);
|
|
if (temp_r29 < 0 || !SLSerialNoCheck()) {
|
|
return 0;
|
|
}
|
|
OSReport("Card Copy Seq.:Read\n");
|
|
temp_r29 = fn_1_83B4();
|
|
if (temp_r29 != 0) {
|
|
return 0;
|
|
}
|
|
OSReport("Card Copy Seq.:CheckSum Check\n");
|
|
if (!SLCheckSumCheck()) {
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_288[boxno]), 0);
|
|
HuWinAttrSet(lbl_1_bss_148, 0x10);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x3A));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
temp_r29 = HuWinChoiceGet(lbl_1_bss_148, 1);
|
|
if (temp_r29 != 0) {
|
|
return 1;
|
|
}
|
|
else {
|
|
temp_r29 = fn_1_8540(boxno);
|
|
return temp_r29;
|
|
}
|
|
}
|
|
if (!SLSerialNoCheck()) {
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x45));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
return 0;
|
|
}
|
|
temp_r29 = HuCardFreeSpaceGet(curSlotNo, (u32 *)&sp34, (u32 *)&sp38);
|
|
if (sp38 == 0 && sp34 < SAVE_BUF_SIZE) {
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4A));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
return 1;
|
|
}
|
|
else if (sp38 == 0) {
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4A));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
return 1;
|
|
}
|
|
else if (sp34 < SAVE_BUF_SIZE) {
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4A));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
return 1;
|
|
}
|
|
for (temp_r30 = 0; temp_r30 < 3; temp_r30++) {
|
|
if (!lbl_1_bss_140[temp_r30]) {
|
|
break;
|
|
}
|
|
}
|
|
if (temp_r30 == 3) {
|
|
return 1;
|
|
}
|
|
temp_r31 = temp_r30;
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x09));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x35));
|
|
HuWinDispOn(lbl_1_bss_146);
|
|
lbl_1_bss_90 = boxno;
|
|
Hu3DModelAttrReset(lbl_1_bss_19A[23], 1);
|
|
sp2C = &Hu3DData[lbl_1_bss_19A[boxno + 8]];
|
|
Hu3DModelPosSetV(lbl_1_bss_19A[23], &sp2C->pos);
|
|
for (temp_r30 = 1; temp_r30 <= 10; temp_r30++) {
|
|
temp_f31 = 0.7 + (0.3 * (temp_r30 / 10.0));
|
|
Hu3DModelScaleSet(lbl_1_bss_19A[23], temp_f31, temp_f31, temp_f31);
|
|
HuPrcVSleep();
|
|
}
|
|
fn_1_7628(temp_r31, 1);
|
|
while (1) {
|
|
HuPrcVSleep();
|
|
if (UnMountCnt & (1 << curSlotNo)) {
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x50));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
break;
|
|
}
|
|
else {
|
|
temp_r26 = 0;
|
|
if (HuPadDStkRep[0] & 0x1) {
|
|
temp_r26 = -1;
|
|
}
|
|
else if (HuPadDStkRep[0] & 0x2) {
|
|
temp_r26 = 1;
|
|
}
|
|
(void)temp_r26;
|
|
if (temp_r26) {
|
|
HuAudFXPlay(0);
|
|
fn_1_7628(temp_r31, 0);
|
|
while (1) {
|
|
temp_r31 += temp_r26;
|
|
if (temp_r31 < 0) {
|
|
temp_r31 = 2;
|
|
}
|
|
else if (temp_r31 >= 3) {
|
|
temp_r31 = 0;
|
|
}
|
|
if (lbl_1_bss_140[temp_r31] == 0) {
|
|
break;
|
|
}
|
|
}
|
|
fn_1_7628(temp_r31, 1);
|
|
HuPrcSleep(10);
|
|
}
|
|
if (HuPadBtnDown[0] & PAD_BUTTON_A) {
|
|
HuAudFXPlay(2096);
|
|
}
|
|
else if (!(HuPadBtnDown[0] & PAD_BUTTON_B)) {
|
|
continue;
|
|
}
|
|
else {
|
|
HuAudFXPlay(3);
|
|
Hu3DModelAttrSet(lbl_1_bss_19A[23], 1);
|
|
Hu3DModelAttrReset(lbl_1_bss_19A[boxno + 8], 1);
|
|
fn_1_7628(temp_r31, 0);
|
|
HuWinDispOff(lbl_1_bss_146);
|
|
return 1;
|
|
}
|
|
HuWinDispOff(lbl_1_bss_146);
|
|
temp_r29 = fn_1_76B4(SaveFileNameTbl[boxno], curSlotNo);
|
|
if (temp_r29 >= 0 && SLSerialNoCheck()) {
|
|
fn_1_B8CC(MAKE_MESSID(16, 0x0A));
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x0B));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
Hu3DModelAttrReset(lbl_1_bss_19A[boxno + 8], 1);
|
|
OSReport("CheckSum Check\n");
|
|
if (!SLCheckSumCheck()) {
|
|
HuPrcSleep(60);
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_288[boxno]), 0);
|
|
HuWinAttrSet(lbl_1_bss_148, 0x10);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x3A));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
temp_r29 = HuWinChoiceGet(lbl_1_bss_148, 1);
|
|
if (temp_r29 == 0) {
|
|
temp_r29 = fn_1_8540(boxno);
|
|
}
|
|
}
|
|
else {
|
|
fn_1_9E14();
|
|
for (temp_r30 = 0; temp_r30 <= 10; temp_r30++) {
|
|
temp_f31 = cos(M_PI * (90.0 * (temp_r30 / 10.0)) / 180.0);
|
|
Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31 + 8], temp_f31, temp_f31, temp_f31);
|
|
HuPrcVSleep();
|
|
}
|
|
Hu3DModelAttrSet(lbl_1_bss_19A[23], 1);
|
|
Hu3DModelAttrReset(lbl_1_bss_19A[boxno + 8], 1);
|
|
if (UnMountCnt & (1 << curSlotNo)) {
|
|
fn_1_BA20();
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x50));
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
}
|
|
else {
|
|
OSReport("File Create\n");
|
|
SLCurBoxNoSet(temp_r31);
|
|
SLLoadGameStat();
|
|
SLSaveDataMake(0, &GWGameStat.create_time);
|
|
if (fn_1_7B74(temp_r31)) {
|
|
fn_1_9E14();
|
|
fn_1_A8C0(temp_r31);
|
|
Hu3DAnimKill(lbl_1_bss_13A[temp_r31]);
|
|
Hu3DAnimKill(lbl_1_bss_134[temp_r31]);
|
|
temp_r25 = lbl_1_bss_E8[temp_r31];
|
|
if (temp_r25 < 0) {
|
|
temp_r25 = 8;
|
|
}
|
|
(void)temp_r25;
|
|
temp_r19 = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[temp_r25], MEMORY_DEFAULT_NUM));
|
|
lbl_1_bss_13A[temp_r31] = Hu3DAnimCreate(temp_r19, lbl_1_bss_19A[temp_r31 + 8], "star");
|
|
temp_r19 = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[temp_r25], MEMORY_DEFAULT_NUM));
|
|
lbl_1_bss_134[temp_r31] = Hu3DAnimCreate(temp_r19, lbl_1_bss_19A[temp_r31 + 11], "star");
|
|
Hu3DModelAttrReset(lbl_1_bss_19A[temp_r31 + 11], 1);
|
|
Hu3DModelAttrSet(lbl_1_bss_19A[temp_r31 + 8], 1);
|
|
sp60.x = 158.0f + (boxno * 130);
|
|
sp60.y = 230;
|
|
sp60.z = 800;
|
|
Hu3D2Dto3D(&sp60, 1, &sp54);
|
|
sp54.z = 900;
|
|
sp60.x = 158.0f + (temp_r31 * 130);
|
|
Hu3D2Dto3D(&sp60, 1, &sp48);
|
|
sp48.z = 800;
|
|
VECSubtract(&sp48, &sp54, &sp3C);
|
|
Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31 + 8], 1.0f);
|
|
Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31 + 11], 1.0f);
|
|
lbl_1_bss_120[temp_r31] = 0;
|
|
for (temp_r30 = 1; temp_r30 <= 30; temp_r30++) {
|
|
temp_f31 = temp_r30 / 30.0;
|
|
sp60.x = sp3C.x * temp_f31;
|
|
sp60.y = sp3C.y * temp_f31;
|
|
sp60.z = (sp3C.z * temp_f31) + (-300 * sin(M_PI * (180.0f * temp_f31) / 180.0));
|
|
VECAdd(&sp60, &sp54, &sp60);
|
|
Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31 + 11], &sp60);
|
|
HuPrcVSleep();
|
|
}
|
|
lbl_1_bss_120[temp_r31] = 1;
|
|
fn_1_BA20();
|
|
lbl_1_bss_140[temp_r31] = 1;
|
|
lbl_1_bss_88++;
|
|
return 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
fn_1_BA20();
|
|
Hu3DModelAttrSet(lbl_1_bss_19A[23], 1);
|
|
Hu3DModelAttrReset(lbl_1_bss_19A[boxno + 8], 1);
|
|
for (temp_r30 = 0; temp_r30 <= 10; temp_r30++) {
|
|
temp_f31 = sin(M_PI * (90.0 * (temp_r30 / 10.0)) / 180.0);
|
|
Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31 + 8], temp_f31, temp_f31, temp_f31);
|
|
HuPrcVSleep();
|
|
}
|
|
fn_1_7628(temp_r31, 0);
|
|
return 0;
|
|
}
|
|
|
|
s32 fn_1_9E14(void)
|
|
{
|
|
s32 result = HuCardClose(&curFileInfo);
|
|
return result;
|
|
}
|
|
|
|
s16 lbl_1_data_400[] = { 15, 15, 13, 15, 15, 8, 15, 15, 8, 15, 15 };
|
|
|
|
s32 fn_1_9E4C(void)
|
|
{
|
|
s16 temp_r31;
|
|
s16 temp_r30;
|
|
s16 temp_r29;
|
|
ModelData *temp_r28;
|
|
s16 temp_r27;
|
|
s16 temp_r26;
|
|
s16 temp_r25;
|
|
AnimData *temp_r24;
|
|
s16 temp_r23;
|
|
AnimData *temp_r22;
|
|
Mtx sp24;
|
|
Vec sp18;
|
|
Vec spC;
|
|
WindowData *sp8;
|
|
temp_r23 = -1;
|
|
sp8 = &winData[lbl_1_bss_148];
|
|
OSReport("Init\n");
|
|
MTXScale(sp24, 0.5f, 0.5f, 0.5f);
|
|
for (temp_r31 = 0; temp_r31 < 3; temp_r31++) {
|
|
if (lbl_1_bss_116[temp_r31] != -1) {
|
|
HuSprGrpKill(lbl_1_bss_116[temp_r31]);
|
|
}
|
|
}
|
|
for (temp_r31 = 0; temp_r31 < 3; temp_r31++) {
|
|
if (lbl_1_bss_110[temp_r31] != -1) {
|
|
HuSprGrpKill(lbl_1_bss_110[temp_r31]);
|
|
}
|
|
}
|
|
lbl_1_bss_FC = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATA_MAKE_NUM(DATADIR_MODESEL, 0x00), 0x22), MEMORY_DEFAULT_NUM));
|
|
lbl_1_bss_F8 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATA_MAKE_NUM(DATADIR_MODESEL, 0x00), 0x23), MEMORY_DEFAULT_NUM));
|
|
lbl_1_bss_F4 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATA_MAKE_NUM(DATADIR_MODESEL, 0x00), 0x25), MEMORY_DEFAULT_NUM));
|
|
temp_r22 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATA_MAKE_NUM(DATADIR_MODESEL, 0x00), 0x24), MEMORY_DEFAULT_NUM));
|
|
for (temp_r31 = 0; temp_r31 < 3; temp_r31++) {
|
|
Hu3DModelAttrSet(lbl_1_bss_19A[temp_r31 + 8], 1);
|
|
Hu3DModelAttrReset(lbl_1_bss_19A[temp_r31 + 11], 1);
|
|
temp_r27 = lbl_1_bss_E8[temp_r31];
|
|
if (temp_r27 < 0 || temp_r27 >= 8) {
|
|
temp_r27 = 8;
|
|
}
|
|
if (lbl_1_bss_13A[temp_r31] != -1) {
|
|
Hu3DAnimKill(lbl_1_bss_13A[temp_r31]);
|
|
}
|
|
if (lbl_1_bss_134[temp_r31] != -1) {
|
|
Hu3DAnimKill(lbl_1_bss_134[temp_r31]);
|
|
}
|
|
temp_r24 = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[temp_r27], MEMORY_DEFAULT_NUM));
|
|
lbl_1_bss_13A[temp_r31] = Hu3DAnimCreate(temp_r24, lbl_1_bss_19A[temp_r31 + 8], "star");
|
|
temp_r24 = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[temp_r27 + 9], MEMORY_DEFAULT_NUM));
|
|
lbl_1_bss_134[temp_r31] = Hu3DAnimCreate(temp_r24, lbl_1_bss_19A[temp_r31 + 11], "star");
|
|
if (!lbl_1_bss_140[temp_r31]) {
|
|
Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31 + 8], 0.6f);
|
|
Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31 + 11], 0.3f);
|
|
}
|
|
else {
|
|
Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31 + 8], 1.0f);
|
|
Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31 + 11], 1.0f);
|
|
}
|
|
sp18.x = 158.0f + (temp_r31 * 130);
|
|
sp18.y = 230;
|
|
sp18.z = 800;
|
|
Hu3D2Dto3D(&sp18, 1, &spC);
|
|
spC.z = 800;
|
|
Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31 + 8], &spC);
|
|
Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31 + 11], &spC);
|
|
Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31 + 8], 0, 0, 0);
|
|
Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31 + 11], 0, 0, 0);
|
|
temp_r28 = &Hu3DData[lbl_1_bss_19A[temp_r31 + 8]];
|
|
MTXCopy(sp24, temp_r28->unk_F0);
|
|
temp_r28 = &Hu3DData[lbl_1_bss_19A[temp_r31 + 11]];
|
|
MTXCopy(sp24, temp_r28->unk_F0);
|
|
lbl_1_bss_116[temp_r31] = HuSprGrpCreate(9);
|
|
temp_r29 = HuSprCreate(lbl_1_bss_FC, 3000, 0);
|
|
HuSprGrpMemberSet(lbl_1_bss_116[temp_r31], 0, temp_r29);
|
|
HuSprPosSet(lbl_1_bss_116[temp_r31], 0, -48, 0);
|
|
for (temp_r30 = 0; temp_r30 < 4; temp_r30++) {
|
|
temp_r29 = HuSprCreate(lbl_1_bss_F8, 3000, 0);
|
|
HuSprGrpMemberSet(lbl_1_bss_116[temp_r31], temp_r30 + 1, temp_r29);
|
|
HuSprPosSet(lbl_1_bss_116[temp_r31], temp_r30 + 1, (temp_r30 * 24) - 24, 0);
|
|
}
|
|
temp_r29 = HuSprCreate(lbl_1_bss_F4, 3000, 0);
|
|
HuSprGrpMemberSet(lbl_1_bss_116[temp_r31], 5, temp_r29);
|
|
HuSprPosSet(lbl_1_bss_116[temp_r31], 5, 16, 0);
|
|
HuSprGrpScissorSet(lbl_1_bss_116[temp_r31], 0, 16, 640, 448);
|
|
lbl_1_bss_110[temp_r31] = HuSprGrpCreate(11);
|
|
for (temp_r30 = temp_r25 = 0; temp_r30 < 11; temp_r30++) {
|
|
temp_r25 += lbl_1_data_400[temp_r30];
|
|
}
|
|
for (temp_r30 = temp_r26 = 0; temp_r30 < 11; temp_r30++) {
|
|
temp_r29 = HuSprCreate(temp_r22, 3000, 0);
|
|
HuSprGrpMemberSet(lbl_1_bss_110[temp_r31], temp_r30, temp_r29);
|
|
HuSprPosSet(lbl_1_bss_110[temp_r31], temp_r30, -(temp_r25 / 2) + 8 + temp_r26, 0);
|
|
temp_r26 += lbl_1_data_400[temp_r30];
|
|
}
|
|
HuSprAttrSet(lbl_1_bss_110[temp_r31], 5, 4);
|
|
HuSprBankSet(lbl_1_bss_110[temp_r31], 2, 10);
|
|
HuSprBankSet(lbl_1_bss_110[temp_r31], 8, 11);
|
|
HuSprGrpScissorSet(lbl_1_bss_110[temp_r31], 0, 16, 640, 448);
|
|
}
|
|
MTXScale(sp24, 0.45f, 0.45f, 0.45f);
|
|
temp_r28 = &Hu3DData[lbl_1_bss_19A[23]];
|
|
Hu3DModelAttrSet(lbl_1_bss_19A[23], 0x40000001);
|
|
MTXCopy(sp24, temp_r28->unk_F0);
|
|
return temp_r23;
|
|
}
|
|
|
|
void fn_1_A8C0(s16 boxno)
|
|
{
|
|
SLLoadGameStat();
|
|
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_C4[boxno] = GWGameStat.story_continue;
|
|
lbl_1_bss_B8[boxno] = GWGameStat.party_continue;
|
|
if (GWGameStat.story_continue) {
|
|
SLLoadBoardStory();
|
|
lbl_1_bss_A4[boxno] = GWSystem.board;
|
|
lbl_1_bss_AC[boxno] = 0;
|
|
}
|
|
if (GWGameStat.party_continue) {
|
|
SLLoadBoard();
|
|
lbl_1_bss_9E[boxno] = GWSystem.board;
|
|
lbl_1_bss_98[boxno] = GWSystem.turn;
|
|
lbl_1_bss_92[boxno] = GWSystem.max_turn;
|
|
}
|
|
}
|
|
|
|
void fn_1_AAB8(void)
|
|
{
|
|
float temp_f31;
|
|
float temp_f30;
|
|
float temp_f29;
|
|
ModelData *temp_r31;
|
|
s16 temp_r30;
|
|
s16 temp_r29;
|
|
s16 temp_r28;
|
|
Mtx sp48;
|
|
OSCalendarTime sp20;
|
|
Vec sp14;
|
|
Vec sp8;
|
|
for (temp_r30 = 0; temp_r30 < 2; temp_r30++) {
|
|
lbl_1_bss_12C[temp_r30] = 1;
|
|
}
|
|
while (1) {
|
|
for (temp_r30 = 0; temp_r30 < 2; temp_r30++) {
|
|
MTXScale(sp48, 0.5f, 0.5f, 0.5f);
|
|
mtxRotCat(sp48, 0.0f, 0.0f, 15.0f * lbl_1_bss_100[temp_r30]);
|
|
temp_r31 = &Hu3DData[lbl_1_bss_19A[temp_r30]];
|
|
MTXCopy(sp48, temp_r31->unk_F0);
|
|
Hu3DModelRotSet(lbl_1_bss_19A[temp_r30], 0, lbl_1_bss_8C * lbl_1_bss_108[temp_r30] * GET_ZEROSIGN(temp_r30 == 0), 0);
|
|
if (!lbl_1_bss_12C[temp_r30]) {
|
|
espAttrSet(lbl_1_bss_152[temp_r30 + 2], 4);
|
|
}
|
|
else {
|
|
temp_r31 = &Hu3DData[lbl_1_bss_19A[temp_r30 + 2]];
|
|
if (temp_r31->attr & 0x1) {
|
|
temp_r31 = &Hu3DData[lbl_1_bss_19A[temp_r30 + 4]];
|
|
}
|
|
if (temp_r31->attr & 0x1) {
|
|
espAttrSet(lbl_1_bss_152[temp_r30 + 2], 4);
|
|
}
|
|
else {
|
|
espAttrReset(lbl_1_bss_152[temp_r30 + 2], 4);
|
|
}
|
|
sp8 = temp_r31->pos;
|
|
sp8.y -= 30.0f * temp_r31->scale.x;
|
|
Hu3D3Dto2D(&sp8, 1, &sp14);
|
|
espPosSet(lbl_1_bss_152[temp_r30 + 2], sp14.x, sp14.y);
|
|
espScaleSet(lbl_1_bss_152[temp_r30 + 2], temp_r31->scale.x, temp_r31->scale.x);
|
|
}
|
|
}
|
|
lbl_1_bss_8C += 3.0f;
|
|
if (lbl_1_bss_8C > 1080.0f) {
|
|
lbl_1_bss_8C -= 360;
|
|
}
|
|
if (lbl_1_bss_11C == -1) {
|
|
espAttrSet(lbl_1_bss_152[4], 4);
|
|
}
|
|
else {
|
|
temp_r31 = &Hu3DData[lbl_1_bss_19A[lbl_1_bss_11C]];
|
|
if (temp_r31->attr & 0x1) {
|
|
espAttrSet(lbl_1_bss_152[4], 4);
|
|
}
|
|
else {
|
|
espBankSet(lbl_1_bss_152[4], lbl_1_bss_11C);
|
|
espAttrReset(lbl_1_bss_152[4], 4);
|
|
sp8 = temp_r31->pos;
|
|
sp8.y += 5.0f * temp_r31->scale.x;
|
|
Hu3D3Dto2D(&sp8, 1, &sp14);
|
|
espPosSet(lbl_1_bss_152[4], sp14.x, sp14.y);
|
|
espScaleSet(lbl_1_bss_152[4], temp_r31->scale.x, temp_r31->scale.x);
|
|
}
|
|
}
|
|
for (temp_r30 = 0; temp_r30 < 3; temp_r30++) {
|
|
if (!lbl_1_bss_120[temp_r30]) {
|
|
espAttrSet(lbl_1_bss_152[temp_r30 + 5], 4);
|
|
continue;
|
|
}
|
|
temp_r31 = &Hu3DData[lbl_1_bss_19A[temp_r30 + 8]];
|
|
if (temp_r31->attr & 0x1) {
|
|
temp_r31 = &Hu3DData[lbl_1_bss_19A[temp_r30 + 11]];
|
|
}
|
|
temp_f30 = (900.0 + (50.0 * temp_r31->scale.x)) * sin(M_PI / 12);
|
|
temp_f29 = (temp_r31->pos.z + (50.0 * temp_r31->scale.x)) * sin(M_PI / 12);
|
|
temp_f31 = temp_r31->scale.x * (temp_f29 / temp_f30);
|
|
if (temp_r31->attr & 0x1) {
|
|
espAttrSet(lbl_1_bss_152[temp_r30 + 5], 4);
|
|
}
|
|
else {
|
|
espAttrReset(lbl_1_bss_152[temp_r30 + 5], 4);
|
|
}
|
|
sp8 = temp_r31->pos;
|
|
sp8.y += 40.0 * temp_r31->scale.x;
|
|
sp8.z += 50.0 * temp_r31->scale.x;
|
|
Hu3D3Dto2D(&sp8, 1, &sp14);
|
|
espPosSet(lbl_1_bss_152[temp_r30 + 5], sp14.x, sp14.y);
|
|
espScaleSet(lbl_1_bss_152[temp_r30 + 5], temp_f31, temp_f31);
|
|
if (lbl_1_bss_EE[temp_r30] == -1) {
|
|
HuSprGrpPosSet(lbl_1_bss_116[temp_r30], 0, -500);
|
|
}
|
|
else {
|
|
sp8 = temp_r31->pos;
|
|
sp8.y -= 30.0 * temp_r31->scale.x;
|
|
sp8.z += 50.0 * temp_r31->scale.x;
|
|
Hu3D3Dto2D(&sp8, 1, &sp14);
|
|
HuSprGrpPosSet(lbl_1_bss_116[temp_r30], sp14.x, sp14.y);
|
|
HuSprGrpScaleSet(lbl_1_bss_116[temp_r30], temp_f31, temp_f31);
|
|
if (lbl_1_bss_EE[temp_r30] > 9999) {
|
|
for (temp_r28 = 0; temp_r28 < 4; temp_r28++) {
|
|
HuSprAttrSet(lbl_1_bss_116[temp_r30], temp_r28 + 1, 4);
|
|
}
|
|
HuSprAttrReset(lbl_1_bss_116[temp_r30], 5, 4);
|
|
}
|
|
else {
|
|
for (temp_r28 = 0; temp_r28 < 4; temp_r28++) {
|
|
HuSprAttrReset(lbl_1_bss_116[temp_r30], temp_r28 + 1, 4);
|
|
}
|
|
HuSprAttrSet(lbl_1_bss_116[temp_r30], 5, 4);
|
|
temp_r29 = lbl_1_bss_EE[temp_r30];
|
|
HuSprBankSet(lbl_1_bss_116[temp_r30], 1, temp_r29 / 1000);
|
|
temp_r29 -= (temp_r29 / 1000) * 1000;
|
|
HuSprBankSet(lbl_1_bss_116[temp_r30], 2, temp_r29 / 100);
|
|
temp_r29 -= (temp_r29 / 100) * 100;
|
|
HuSprBankSet(lbl_1_bss_116[temp_r30], 3, temp_r29 / 10);
|
|
temp_r29 -= (temp_r29 / 10) * 10;
|
|
HuSprBankSet(lbl_1_bss_116[temp_r30], 4, temp_r29);
|
|
}
|
|
sp8 = temp_r31->pos;
|
|
sp8.y -= 40.0 * temp_r31->scale.x;
|
|
sp8.z += 50.0 * temp_r31->scale.x;
|
|
Hu3D3Dto2D(&sp8, 1, &sp14);
|
|
HuSprGrpPosSet(lbl_1_bss_110[temp_r30], sp14.x, sp14.y);
|
|
HuSprGrpScaleSet(lbl_1_bss_110[temp_r30], temp_f31, temp_f31);
|
|
OSTicksToCalendarTime(lbl_1_bss_D0[temp_r30], &sp20);
|
|
temp_r29 = sp20.mon + 1;
|
|
HuSprBankSet(lbl_1_bss_110[temp_r30], 0, temp_r29 / 10);
|
|
temp_r29 -= (temp_r29 / 10) * 10;
|
|
HuSprBankSet(lbl_1_bss_110[temp_r30], 1, temp_r29);
|
|
temp_r29 = sp20.mday;
|
|
HuSprBankSet(lbl_1_bss_110[temp_r30], 3, temp_r29 / 10);
|
|
temp_r29 -= (temp_r29 / 10) * 10;
|
|
HuSprBankSet(lbl_1_bss_110[temp_r30], 4, temp_r29);
|
|
temp_r29 = sp20.hour;
|
|
HuSprBankSet(lbl_1_bss_110[temp_r30], 6, temp_r29 / 10);
|
|
temp_r29 -= (temp_r29 / 10) * 10;
|
|
HuSprBankSet(lbl_1_bss_110[temp_r30], 7, temp_r29);
|
|
temp_r29 = sp20.min;
|
|
HuSprBankSet(lbl_1_bss_110[temp_r30], 9, temp_r29 / 10);
|
|
temp_r29 -= (temp_r29 / 10) * 10;
|
|
HuSprBankSet(lbl_1_bss_110[temp_r30], 10, temp_r29);
|
|
}
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
s16 lbl_1_data_41C = -1;
|
|
|
|
void fn_1_B8CC(u32 arg0)
|
|
{
|
|
float size[2];
|
|
if (lbl_1_data_41C != -1) {
|
|
HuWinExCleanup(lbl_1_data_41C);
|
|
}
|
|
HuWinInsertMesSizeGet(MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
|
HuWinMesMaxSizeGet(1, size, arg0);
|
|
lbl_1_data_41C = HuWinExCreateStyled(-10000, 308, size[0], size[1], -1, 2);
|
|
HuWinMesSpeedSet(lbl_1_data_41C, 0);
|
|
HuWinExAnimIn(lbl_1_data_41C);
|
|
HuWinInsertMesSet(lbl_1_data_41C, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0);
|
|
HuWinMesSet(lbl_1_data_41C, arg0);
|
|
HuWinMesWait(lbl_1_data_41C);
|
|
}
|
|
|
|
void fn_1_BA20(void)
|
|
{
|
|
if (lbl_1_data_41C != -1) {
|
|
HuWinExAnimOut(lbl_1_data_41C);
|
|
HuWinExCleanup(lbl_1_data_41C);
|
|
lbl_1_data_41C = -1;
|
|
}
|
|
}
|
|
|
|
void fn_1_BA80(s16 boxno)
|
|
{
|
|
char mesMaxTurn[4];
|
|
char mesTurn[4];
|
|
char mesDummy[1] = { 0 };
|
|
if (lbl_1_bss_EE[boxno] < 0) {
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x11));
|
|
}
|
|
else {
|
|
if (!lbl_1_bss_C4[boxno] && !lbl_1_bss_B8[boxno]) {
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x11), 0);
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesDummy), 1);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x43));
|
|
}
|
|
else {
|
|
if (!lbl_1_bss_C4[boxno]) {
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x11), 0);
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesDummy), 1);
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x12) + lbl_1_bss_9E[boxno], 2);
|
|
sprintf(mesMaxTurn, "%2d", lbl_1_bss_98[boxno]);
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesMaxTurn), 3);
|
|
sprintf(mesTurn, "%2d", lbl_1_bss_92[boxno]);
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesTurn), 4);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x42));
|
|
}
|
|
else {
|
|
if (!lbl_1_bss_B8[boxno]) {
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x12) + lbl_1_bss_A4[boxno], 0);
|
|
if (lbl_1_bss_AC[boxno]) {
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x18), 1);
|
|
}
|
|
else {
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesDummy), 1);
|
|
}
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x43));
|
|
}
|
|
else {
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x12) + lbl_1_bss_A4[boxno], 0);
|
|
if (lbl_1_bss_AC[boxno]) {
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x18), 1);
|
|
}
|
|
else {
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesDummy), 1);
|
|
}
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x12) + lbl_1_bss_9E[boxno], 2);
|
|
sprintf(mesMaxTurn, "%2d", lbl_1_bss_98[boxno]);
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesMaxTurn), 3);
|
|
sprintf(mesTurn, "%2d", lbl_1_bss_92[boxno]);
|
|
HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesTurn), 4);
|
|
HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x42));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
HuWinMesWait(lbl_1_bss_148);
|
|
}
|