551 lines
15 KiB
C
551 lines
15 KiB
C
#include "game/gamework_data.h"
|
|
#include "game/process.h"
|
|
#include "game/chrman.h"
|
|
#include "game/data.h"
|
|
#include "game/sprite.h"
|
|
#include "game/object.h"
|
|
#include "game/audio.h"
|
|
#include "game/memory.h"
|
|
#include "game/hsfman.h"
|
|
#include "game/wipe.h"
|
|
#include "game/pad.h"
|
|
#include "game/window.h"
|
|
#include "game/thpmain.h"
|
|
#include "game/msm.h"
|
|
#include "math.h"
|
|
#include "ext_math.h"
|
|
|
|
#include "rel_sqrt_consts.h"
|
|
|
|
#include "data_num/title.h"
|
|
|
|
#define HU_PAD_BTN_ALL (HuPadBtn[0] | HuPadBtn[1] | HuPadBtn[2] | HuPadBtn[3])
|
|
#define HU_PAD_BTNDOWN_ALL (HuPadBtnDown[0] | HuPadBtnDown[1] | HuPadBtnDown[2] | HuPadBtnDown[3])
|
|
#define HU_PAD_DSTK_ALL (HuPadDStkRep[0] | HuPadDStkRep[1] | HuPadDStkRep[2] | HuPadDStkRep[3])
|
|
|
|
extern int SystemInitF;
|
|
|
|
static Process *objman[2];
|
|
Vec lbl_1_bss_3C[2];
|
|
Vec lbl_1_bss_24[2];
|
|
float lbl_1_bss_1C[2];
|
|
|
|
Vec lbl_1_bss_10;
|
|
|
|
static s16 demoWin;
|
|
|
|
static s16 titleModel[3];
|
|
static s16 titleGroup;
|
|
|
|
s16 lbl_1_bss_4;
|
|
s32 lbl_1_bss_0;
|
|
|
|
static void BootProc(void);
|
|
static void UpdateDemoMess(void);
|
|
static void ProgressiveProc(void);
|
|
static void TitleInit(void);
|
|
static BOOL TitleProc(void);
|
|
|
|
void *logoReadNintendo(void);
|
|
|
|
void ObjectSetup(void)
|
|
{
|
|
omOvlHisData *history;
|
|
OSReport("******* Boot ObjectSetup *********\n");
|
|
objman[0] = omInitObjMan(50, 8192);
|
|
lbl_1_bss_3C[0].x = -67;
|
|
lbl_1_bss_3C[0].y = 40;
|
|
lbl_1_bss_3C[0].z = 0;
|
|
lbl_1_bss_24[0].x = 260;
|
|
lbl_1_bss_24[0].y = -103;
|
|
lbl_1_bss_24[0].z = -18;
|
|
lbl_1_bss_1C[0] = 2885;
|
|
Hu3DCameraCreate(1);
|
|
Hu3DCameraPerspectiveSet(1, 30, 20, 15000, 1.2);
|
|
Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1);
|
|
HuPrcCreate(BootProc, 100, 12288, 0);
|
|
Hu3DBGColorSet(0, 0, 0);
|
|
history = omOvlHisGet(0);
|
|
omOvlHisChg(0, history->overlay, 1, history->stat);
|
|
}
|
|
|
|
static void BootProc(void)
|
|
{
|
|
AnimData *data;
|
|
s16 group;
|
|
s16 sprite_nintendo;
|
|
s16 sprite_hudson;
|
|
s16 i;
|
|
OSTick tick_prev;
|
|
Process *curr = HuPrcCurrentGet();
|
|
if(omovlevtno == 0) {
|
|
ProgressiveProc();
|
|
}
|
|
group = HuSprGrpCreate(2);
|
|
data = HuSprAnimRead(logoReadNintendo());
|
|
sprite_nintendo = HuSprCreate(data, 0, 0);
|
|
HuSprGrpMemberSet(group, 0, sprite_nintendo);
|
|
HuSprPosSet(group, 0, 288, 240);
|
|
HuSprAttrSet(group, 0, HUSPR_ATTR_DISPOFF);
|
|
if(omovlevtno != 0) {
|
|
HuAudSndGrpSetSet(0);
|
|
data = HuSprAnimReadFile(TITLE_HUDSON_ANM);
|
|
sprite_hudson = HuSprCreate(data, 0, 0);
|
|
HuSprGrpMemberSet(group, 1, sprite_hudson);
|
|
HuSprPosSet(group, 1, 288, 240);
|
|
HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF);
|
|
HuWinInit(1);
|
|
TitleInit();
|
|
SystemInitF = 1;
|
|
} else {
|
|
s16 group_thp;
|
|
BOOL skip_wait;
|
|
float win_size[2];
|
|
s16 sprite_thp;
|
|
for(i=0; i<4; i++) {
|
|
GWPlayerCfg[i].pad_idx = i;
|
|
}
|
|
repeat:
|
|
HuSprAttrReset(group, 0, HUSPR_ATTR_DISPOFF);
|
|
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30);
|
|
while(WipeStatGet()) {
|
|
HuPrcVSleep();
|
|
}
|
|
WipeColorSet(255, 255, 255);
|
|
if(!SystemInitF) {
|
|
tick_prev = OSGetTick();
|
|
CharManInit();
|
|
HuWindowInit();
|
|
MGSeqInit();
|
|
HuWinInit(1);
|
|
TitleInit();
|
|
data = HuSprAnimReadFile(TITLE_HUDSON_ANM);
|
|
sprite_hudson = HuSprCreate(data, 0, 0);
|
|
HuSprGrpMemberSet(group, 1, sprite_hudson);
|
|
HuSprPosSet(group, 1, 288, 240);
|
|
HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF);
|
|
while(OSTicksToMilliseconds(OSGetTick()-tick_prev) < 3000) {
|
|
HuPrcVSleep();
|
|
}
|
|
} else {
|
|
for(i=0; i<180; i++) {
|
|
if(HuPadBtnDown[0] & (PAD_BUTTON_START|PAD_BUTTON_A)) {
|
|
break;
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
|
while(WipeStatGet()) {
|
|
HuPrcVSleep();
|
|
}
|
|
HuSprAttrSet(group, 0, HUSPR_ATTR_DISPOFF);
|
|
HuSprAttrReset(group, 1, HUSPR_ATTR_DISPOFF);
|
|
HuPrcSleep(60);
|
|
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30);
|
|
while(WipeStatGet()) {
|
|
HuPrcVSleep();
|
|
}
|
|
if(!SystemInitF) {
|
|
void *group_samp;
|
|
tick_prev = OSGetTick();
|
|
group_samp = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(0));
|
|
msmSysLoadGroup(0, group_samp, 0);
|
|
HuMemDirectFree(group_samp);
|
|
while(OSTicksToMilliseconds(OSGetTick()-tick_prev) < 3000) {
|
|
HuPrcVSleep();
|
|
}
|
|
} else {
|
|
for(i=0; i<180; i++) {
|
|
if(HuPadBtnDown[0] & (PAD_BUTTON_START|PAD_BUTTON_A)) {
|
|
break;
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
|
while(WipeStatGet()) {
|
|
HuPrcVSleep();
|
|
}
|
|
tick_prev = OSGetTick();
|
|
if(!SystemInitF) {
|
|
HuAudSndGrpSetSet(0);
|
|
SystemInitF = 1;
|
|
}
|
|
while(OSTicksToMilliseconds(OSGetTick()-tick_prev) < 1000) {
|
|
HuPrcVSleep();
|
|
}
|
|
HuSprAttrSet(group, 0, HUSPR_ATTR_DISPOFF);
|
|
HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF);
|
|
group_thp = HuSprGrpCreate(1);
|
|
sprite_thp = HuTHPSprCreateVol("movie/opmov_a00.thp", 0, 100, 122);
|
|
HuSprGrpMemberSet(group_thp, 0, sprite_thp);
|
|
HuSprPosSet(group_thp, 0, 288, 240);
|
|
HuWinMesMaxSizeBetGet(win_size, MAKE_MESSID(54, 0), MAKE_MESSID(54, 4));
|
|
demoWin = HuWinCreate(-10000, 448-win_size[1], win_size[0], win_size[1], 0);
|
|
HuWinMesSpeedSet(demoWin, 0);
|
|
HuWinBGTPLvlSet(demoWin, 0);
|
|
HuWinPriSet(demoWin, 10);
|
|
HuWinAttrSet(demoWin, 0x800);
|
|
HuPrcSleep(5);
|
|
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10);
|
|
while(WipeStatGet()) {
|
|
HuPrcVSleep();
|
|
}
|
|
skip_wait = FALSE;
|
|
while(!HuTHPEndCheck()) {
|
|
UpdateDemoMess();
|
|
if(HuPadBtnDown[0] & (PAD_BUTTON_START|PAD_BUTTON_A)) {
|
|
skip_wait = TRUE;
|
|
break;
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
|
while(WipeStatGet()) {
|
|
HuPrcVSleep();
|
|
}
|
|
HuWinKill(demoWin);
|
|
HuTHPClose();
|
|
HuPrcVSleep();
|
|
HuSprGrpKill(group_thp);
|
|
if(!skip_wait) {
|
|
HuPrcSleep(60);
|
|
}
|
|
skip_wait = FALSE;
|
|
}
|
|
if(!TitleProc()) {
|
|
HuPrcSleep(60);
|
|
goto repeat;
|
|
}
|
|
WipeColorSet(255, 255, 255);
|
|
HuAudSStreamAllFadeOut(500);
|
|
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
|
while(WipeStatGet()) {
|
|
HuPrcVSleep();
|
|
}
|
|
HuPrcVSleep();
|
|
if(omSysExitReq) {
|
|
omOvlReturnEx(1, 1);
|
|
} else {
|
|
omOvlCallEx(OVL_MODESEL, 1, 0, 0);
|
|
}
|
|
for(i=0; i<4; i++) {
|
|
GWPlayerCfg[i].character = -1;
|
|
}
|
|
HuPrcEnd();
|
|
do {
|
|
HuPrcVSleep();
|
|
} while(1);
|
|
}
|
|
|
|
static s16 demoTimingTbl[] = {
|
|
1686, 1785,
|
|
1850, 1936,
|
|
1993, 2097,
|
|
2135, 2245,
|
|
2258, 2320,
|
|
-1, -1,
|
|
};
|
|
|
|
static void UpdateDemoMess(void)
|
|
{
|
|
int frame = HuTHPFrameGet();
|
|
int i;
|
|
for(i=0; demoTimingTbl[i*2] != -1; i++) {
|
|
if(frame == demoTimingTbl[i*2]) {
|
|
HuWinMesSet(demoWin, MAKE_MESSID(54, i));
|
|
}
|
|
if(frame == demoTimingTbl[(i*2)+1]) {
|
|
HuWinHomeClear(demoWin);
|
|
}
|
|
}
|
|
}
|
|
|
|
static u16 progressivePosTbl[] = {
|
|
236, 313,
|
|
353, 313
|
|
};
|
|
|
|
static void ProgressiveProc(void)
|
|
{
|
|
s16 i;
|
|
s16 option;
|
|
s16 group;
|
|
s16 sprite;
|
|
AnimData *data;
|
|
option = 0;
|
|
if(OSGetResetCode() != OS_RESET_RESTART) {
|
|
return;
|
|
}
|
|
if(VIGetDTVStatus() != VI_NON_INTERLACE) {
|
|
OSSetProgressiveMode(OS_PROGRESSIVE_MODE_OFF);
|
|
return;
|
|
}
|
|
if(OSGetProgressiveMode() == OS_PROGRESSIVE_MODE_OFF && !(HU_PAD_BTN_ALL & PAD_BUTTON_B)) {
|
|
return;
|
|
}
|
|
if(OSGetProgressiveMode() == OS_PROGRESSIVE_MODE_ON) {
|
|
VIConfigure(&GXNtsc480IntDf);
|
|
VIFlush();
|
|
}
|
|
group = HuSprGrpCreate(3);
|
|
data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CHOOSE_ANM);
|
|
sprite = HuSprCreate(data, 0, 0);
|
|
HuSprGrpMemberSet(group, 0, sprite);
|
|
HuSprPosSet(group, 0, 288, 240);
|
|
data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CURSOR_ON_ANM);
|
|
sprite = HuSprCreate(data, 0, 0);
|
|
HuSprGrpMemberSet(group, 1, sprite);
|
|
HuSprPosSet(group, 1, progressivePosTbl[option*2], progressivePosTbl[(option*2)+1]);
|
|
data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CURSOR_OFF_ANM);
|
|
sprite = HuSprCreate(data, 0, 0);
|
|
HuSprGrpMemberSet(group, 2, sprite);
|
|
HuSprPosSet(group, 2, progressivePosTbl[option*2], progressivePosTbl[(option*2)+1]);
|
|
HuSprAttrSet(group, 2, HUSPR_ATTR_DISPOFF);
|
|
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30);
|
|
while(WipeStatGet()) {
|
|
HuPrcVSleep();
|
|
}
|
|
for(i=0; i<600; i++) {
|
|
if(HU_PAD_DSTK_ALL & (PAD_BUTTON_LEFT | PAD_BUTTON_RIGHT)) {
|
|
option ^= 1;
|
|
HuSprPosSet(group, 1, progressivePosTbl[option*2], progressivePosTbl[(option*2)+1]);
|
|
i=0;
|
|
}
|
|
if(HU_PAD_BTNDOWN_ALL & PAD_BUTTON_A) {
|
|
HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF);
|
|
HuSprPosSet(group, 2, progressivePosTbl[option*2], progressivePosTbl[(option*2)+1]);
|
|
HuSprAttrReset(group, 2, HUSPR_ATTR_DISPOFF);
|
|
break;
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20);
|
|
while(WipeStatGet()) {
|
|
HuPrcVSleep();
|
|
}
|
|
if(!option) {
|
|
OSSetProgressiveMode(OS_PROGRESSIVE_MODE_ON);
|
|
VIConfigure(&GXNtsc480Prog);
|
|
VIFlush();
|
|
HuPrcSleep(100);
|
|
} else {
|
|
OSSetProgressiveMode(OS_PROGRESSIVE_MODE_OFF);
|
|
}
|
|
HuSprGrpKill(group);
|
|
group = HuSprGrpCreate(1);
|
|
if(!option) {
|
|
data = HuSprAnimReadFile(TITLE_PROGRESSIVE_ON_ANM);
|
|
} else {
|
|
data = HuSprAnimReadFile(TITLE_PROGRESSIVE_OFF_ANM);
|
|
}
|
|
sprite = HuSprCreate(data, 0, 0);
|
|
HuSprGrpMemberSet(group, 0, sprite);
|
|
HuSprPosSet(group, 0, 288, 240);
|
|
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20);
|
|
while(WipeStatGet()) {
|
|
HuPrcVSleep();
|
|
}
|
|
HuPrcSleep(60);
|
|
for(i=0; i<180; i++) {
|
|
if(HU_PAD_BTNDOWN_ALL & PAD_BUTTON_A) {
|
|
break;
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
|
while(WipeStatGet()) {
|
|
HuPrcVSleep();
|
|
}
|
|
HuSprGrpKill(group);
|
|
HuPrcSleep(30);
|
|
}
|
|
|
|
u16 lbl_1_data_58[] = {
|
|
1, 2
|
|
};
|
|
|
|
void fn_1_1178(void)
|
|
{
|
|
s16 i;
|
|
for(i=0; i<1; i++) {
|
|
Vec pos, target, up;
|
|
float x, y, z;
|
|
|
|
x = lbl_1_bss_3C[i].x;
|
|
y = lbl_1_bss_3C[i].y;
|
|
z = lbl_1_bss_3C[i].z;
|
|
|
|
pos.x = (((sind(y)*cosd(x))*lbl_1_bss_1C[i])+lbl_1_bss_24[i].x);
|
|
pos.y = (-sind(x)*lbl_1_bss_1C[i])+lbl_1_bss_24[i].y;
|
|
pos.z = ((cosd(y)*cosd(x))*lbl_1_bss_1C[i])+lbl_1_bss_24[i].z;
|
|
target.x = lbl_1_bss_24[i].x;
|
|
target.y = lbl_1_bss_24[i].y;
|
|
target.z = lbl_1_bss_24[i].z;
|
|
up.x = sind(y)*sind(x);
|
|
up.y = cosd(x);
|
|
up.z = cosd(y)*sind(x);
|
|
Hu3DCameraPosSet(lbl_1_data_58[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z);
|
|
}
|
|
}
|
|
|
|
void fn_1_152C(void) {
|
|
Vec pos;
|
|
Vec offset;
|
|
Vec dir;
|
|
Vec y_offset;
|
|
|
|
f32 z_rot;
|
|
s8 stick_pos;
|
|
|
|
if ((HuPadBtnDown[0] & 0x800)) {
|
|
lbl_1_bss_0 = (lbl_1_bss_0) ? 0 : 1;
|
|
}
|
|
if (lbl_1_bss_0 != 0) {
|
|
lbl_1_bss_3C[0].y += 0.1f * HuPadStkX[0];
|
|
lbl_1_bss_3C[0].x += 0.1f * HuPadStkY[0];
|
|
lbl_1_bss_1C[0] += HuPadTrigL[0] / 2;
|
|
lbl_1_bss_1C[0] -= HuPadTrigR[0] / 2;
|
|
if (lbl_1_bss_1C[0] < 100.0f) {
|
|
lbl_1_bss_1C[0] = 100.0f;
|
|
}
|
|
pos.x = lbl_1_bss_24[0].x + (lbl_1_bss_1C[0] * (sind(lbl_1_bss_3C[0].y) * cosd(lbl_1_bss_3C[0].x)));
|
|
pos.y = (lbl_1_bss_24[0].y + (lbl_1_bss_1C[0] * -sind(lbl_1_bss_3C[0].x)));
|
|
pos.z = (lbl_1_bss_24[0].z + (lbl_1_bss_1C[0] * (cosd(lbl_1_bss_3C[0].y) * cosd(lbl_1_bss_3C[0].x))));
|
|
offset.x = lbl_1_bss_24[0].x - pos.x;
|
|
offset.y = lbl_1_bss_24[0].y - pos.y;
|
|
offset.z = lbl_1_bss_24[0].z - pos.z;
|
|
dir.x = (sind(lbl_1_bss_3C[0].y) * sind(lbl_1_bss_3C[0].x));
|
|
dir.y = cosd(lbl_1_bss_3C[0].x);
|
|
dir.z = (cosd(lbl_1_bss_3C[0].y) * sind(lbl_1_bss_3C[0].x));
|
|
z_rot = lbl_1_bss_3C[0].z;
|
|
y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cosd(z_rot))
|
|
+ dir.y * (offset.x * offset.y * (1.0f - cosd(z_rot)) - offset.z * sind(z_rot))
|
|
+ dir.z * (offset.x * offset.z * (1.0f - cosd(z_rot)) + offset.y * sind(z_rot));
|
|
|
|
y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cosd(z_rot))
|
|
+ dir.x * (offset.x * offset.y * (1.0f - cosd(z_rot)) + offset.z * sind(z_rot))
|
|
+ dir.z * (offset.y * offset.z * (1.0f - cosd(z_rot)) - offset.x * sind(z_rot));
|
|
|
|
y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cosd(z_rot))
|
|
+ (dir.x * (offset.x * offset.z * (1.0 - cosd(z_rot)) - offset.y * sind(z_rot))
|
|
+ dir.y * (offset.y * offset.z * (1.0 - cosd(z_rot)) + offset.x * sind(z_rot)));
|
|
|
|
PSVECCrossProduct(&dir, &offset, &offset);
|
|
PSVECNormalize(&offset, &offset);
|
|
stick_pos = (HuPadSubStkX[0] & 0xF8);
|
|
if (stick_pos != 0) {
|
|
lbl_1_bss_24[0].x += 0.05f * (offset.x * stick_pos);
|
|
lbl_1_bss_24[0].y += 0.05f * (offset.y * stick_pos);
|
|
lbl_1_bss_24[0].z += 0.05f * (offset.z * stick_pos);
|
|
}
|
|
PSVECNormalize(&y_offset, &offset);
|
|
stick_pos = -(HuPadSubStkY[0] & 0xF8);
|
|
if (stick_pos != 0) {
|
|
lbl_1_bss_24[0].x += 0.05f * (offset.x * stick_pos);
|
|
lbl_1_bss_24[0].y += 0.05f * (offset.y * stick_pos);
|
|
lbl_1_bss_24[0].z += 0.05f * (offset.z * stick_pos);
|
|
}
|
|
}
|
|
}
|
|
|
|
static void TitleInit(void)
|
|
{
|
|
s16 model;
|
|
s16 sprite;
|
|
AnimData *sprite_data;
|
|
titleModel[0] = model = Hu3DModelCreateFile(TITLE_CHAR_HSF);
|
|
Hu3DModelAttrSet(model, 1);
|
|
Hu3DModelAttrSet(model, 0x40000001);
|
|
titleModel[1] = model = Hu3DModelCreateFile(TITLE_CUBE_HSF);
|
|
Hu3DModelAttrSet(model, 1);
|
|
Hu3DModelAttrSet(model, 0x40000001);
|
|
titleModel[2] = model = Hu3DModelCreateFile(TITLE_SKY_HSF);
|
|
Hu3DModelAttrSet(model, 1);
|
|
Hu3DModelAttrSet(model, 0x40000001);
|
|
Hu3DModelCameraInfoSet(model, 1);
|
|
Hu3DModelLightInfoSet(model, 1);
|
|
titleGroup = HuSprGrpCreate(4);
|
|
sprite_data = HuSprAnimReadFile(TITLE_BG_ANM);
|
|
sprite = HuSprCreate(sprite_data, 0, 0);
|
|
HuSprGrpMemberSet(titleGroup, 0, sprite);
|
|
HuSprAttrSet(titleGroup, 0, HUSPR_ATTR_DISPOFF);
|
|
HuSprDrawNoSet(titleGroup, 0, 127);
|
|
HuSprPosSet(titleGroup, 0, 288, 240);
|
|
sprite_data = HuSprAnimReadFile(TITLE_COPYRIGHT_ANM);
|
|
sprite = HuSprCreate(sprite_data, 1, 0);
|
|
HuSprGrpMemberSet(titleGroup, 1, sprite);
|
|
HuSprAttrSet(titleGroup, 1, HUSPR_ATTR_DISPOFF);
|
|
HuSprPosSet(titleGroup, 1, 288, 420);
|
|
sprite_data = HuSprAnimReadFile(TITLE_PRESS_START_ANM);
|
|
sprite = HuSprCreate(sprite_data, 2, 0);
|
|
HuSprGrpMemberSet(titleGroup, 2, sprite);
|
|
HuSprAttrSet(titleGroup, 2, HUSPR_ATTR_DISPOFF|HUSPR_ATTR_LINEAR);
|
|
HuSprPosSet(titleGroup, 2, 288, 380);
|
|
sprite_data = HuSprAnimReadFile(TITLE_LOGO_ANM);
|
|
sprite = HuSprCreate(sprite_data, 0, 0);
|
|
HuSprGrpMemberSet(titleGroup, 3, sprite);
|
|
HuSprAttrSet(titleGroup, 3, HUSPR_ATTR_DISPOFF|HUSPR_ATTR_LINEAR);
|
|
HuSprPosSet(titleGroup, 3, 288, 200);
|
|
}
|
|
|
|
static BOOL TitleProc(void)
|
|
{
|
|
float scale;
|
|
float scale_time;
|
|
s32 y_offset[32];
|
|
s16 i;
|
|
Hu3DModelAttrReset(titleModel[0], 1);
|
|
Hu3DModelAttrReset(titleModel[1], 1);
|
|
HuSprAttrReset(titleGroup, 0, HUSPR_ATTR_DISPOFF);
|
|
HuSprAttrReset(titleGroup, 1, HUSPR_ATTR_DISPOFF);
|
|
OSReport(">>>>>>>>MSM_SE_SEL_01 %d\n", msmSeGetEntryID(2092, y_offset));
|
|
OSReport(">>>>>>>>SE Num %d\n", msmSeGetNumPlay(0));
|
|
HuAudSStreamPlay(20);
|
|
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30);
|
|
while(WipeStatGet()) {
|
|
HuPrcVSleep();
|
|
}
|
|
HuSprAttrReset(titleGroup, 3, HUSPR_ATTR_DISPOFF);
|
|
for(i=1; i<=50; i++) {
|
|
scale = (cosd(i*1.8)*10.0)+1.0;
|
|
HuSprScaleSet(titleGroup, 3, scale, scale);
|
|
HuSprTPLvlSet(titleGroup, 3, i/50.0);
|
|
HuPrcVSleep();
|
|
}
|
|
HuSprAttrReset(titleGroup, 2, HUSPR_ATTR_DISPOFF);
|
|
for(i=scale_time=0; i<1800; i++) {
|
|
if(i <= 10) {
|
|
HuSprTPLvlSet(titleGroup, 2, i/10.0);
|
|
}
|
|
if(HuPadBtnDown[0] & PAD_BUTTON_START) {
|
|
s32 ret = HuAudFXPlay(2092);
|
|
if(ret < 0) {
|
|
OSReport(">>>>>Error %d\n", ret);
|
|
}
|
|
HuSprAttrSet(titleGroup, 2, HUSPR_ATTR_DISPOFF);
|
|
return 1;
|
|
}
|
|
scale = (sind(i*scale_time)*0.1)+0.9;
|
|
scale_time += 0.05;
|
|
if(scale_time > 5) {
|
|
scale_time = 5;
|
|
}
|
|
HuSprScaleSet(titleGroup, 2, scale, scale);
|
|
HuPrcVSleep();
|
|
}
|
|
WipeColorSet(255, 255, 255);
|
|
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
|
while(WipeStatGet()) {
|
|
HuPrcVSleep();
|
|
}
|
|
Hu3DModelAttrSet(titleModel[0], 1);
|
|
Hu3DModelAttrSet(titleModel[1], 1);
|
|
Hu3DModelAttrSet(titleModel[2], 1);
|
|
HuSprAttrSet(titleGroup, 0, HUSPR_ATTR_DISPOFF);
|
|
HuSprAttrSet(titleGroup, 1, HUSPR_ATTR_DISPOFF);
|
|
HuSprAttrSet(titleGroup, 2, HUSPR_ATTR_DISPOFF);
|
|
HuSprAttrSet(titleGroup, 3, HUSPR_ATTR_DISPOFF);
|
|
return 0;
|
|
}
|