Merge branch 'mariopartyrd:main' into main
This commit is contained in:
commit
106c158b75
298 changed files with 49092 additions and 4634 deletions
280
src/REL/bootDll/language.c
Normal file
280
src/REL/bootDll/language.c
Normal file
|
|
@ -0,0 +1,280 @@
|
|||
#include "version.h"
|
||||
#if VERSION_PAL
|
||||
#include "dolphin.h"
|
||||
#include "game/card.h"
|
||||
#include "game/saveload.h"
|
||||
#include "game/sprite.h"
|
||||
#include "game/hsfman.h"
|
||||
#include "game/hsfanim.h"
|
||||
#include "game/window.h"
|
||||
#include "game/gamework_data.h"
|
||||
#include "game/object.h"
|
||||
#include "game/wipe.h"
|
||||
#include "game/pad.h"
|
||||
#include "game/audio.h"
|
||||
#include "game/chrman.h"
|
||||
#include "game/minigame_seq.h"
|
||||
|
||||
#include "math.h"
|
||||
#include "ext_math.h"
|
||||
|
||||
#include "data_num/title.h"
|
||||
|
||||
s32 flagFileTbl[] = {
|
||||
TITLE_FLAG_EN_ANM,
|
||||
TITLE_FLAG_ES_ANM,
|
||||
TITLE_FLAG_IT_ANM,
|
||||
TITLE_FLAG_FR_ANM,
|
||||
TITLE_FLAG_GE_ANM
|
||||
};
|
||||
|
||||
extern int SystemInitF;
|
||||
|
||||
extern Process *objman;
|
||||
extern Vec debugCamRot[2];
|
||||
extern Vec debugCamPos[2];
|
||||
extern float debugCamZoom[2];
|
||||
|
||||
void DebugCamOutView(omObjData *obj);
|
||||
void DebugCamUpdate(omObjData *obj);
|
||||
|
||||
BOOL LanguageMenuExec(void)
|
||||
{
|
||||
s16 language = GWLanguageGet()-1;
|
||||
s16 i;
|
||||
s16 gid;
|
||||
s16 time;
|
||||
s16 choiceChange;
|
||||
AnimData *anim;
|
||||
s16 sprid;
|
||||
s16 choice;
|
||||
omObjData *outView;
|
||||
omObjData *updateCamera;
|
||||
s16 modelId[5];
|
||||
s16 winId[5];
|
||||
|
||||
float winSize[2];
|
||||
float dist;
|
||||
float posX;
|
||||
float posZ;
|
||||
|
||||
for(i=0; i<4; i++) {
|
||||
GWPlayerCfg[i].character = i;
|
||||
}
|
||||
gid = HuSprGrpCreate(1);
|
||||
anim = HuSprAnimReadFile(TITLE_LANGUAGEBG_ANM);
|
||||
sprid = HuSprCreate(anim, 0, 0);
|
||||
HuSprGrpMemberSet(gid, 0, sprid);
|
||||
HuSprDrawNoSet(gid, 0, 127);
|
||||
HuSprPosSet(gid, 0, 288, 240);
|
||||
HuSprTPLvlSet(gid, 0, 0.6f);
|
||||
Hu3DFogSet(350, 2000, 128, 128, 128);
|
||||
debugCamRot[0].x = -20;
|
||||
debugCamRot[0].y = 0;
|
||||
debugCamRot[0].z = 0;
|
||||
debugCamPos[0].x = 0;
|
||||
debugCamPos[0].y = 20;
|
||||
debugCamPos[0].z = -7;
|
||||
debugCamZoom[0] = 600;
|
||||
|
||||
Hu3DCameraPerspectiveSet(HU3D_CAM0, 60, 20, 5000, 1.2f);
|
||||
outView = omAddObjEx(objman, 32730, 0, 0, -1, DebugCamOutView);
|
||||
updateCamera = omAddObjEx(objman, 0, 32, 32, -1, DebugCamUpdate);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30);
|
||||
while (WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
if(!SystemInitF) {
|
||||
void *group_samp;
|
||||
HuWindowInit();
|
||||
group_samp = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(0));
|
||||
msmSysLoadGroup(0, group_samp, 0);
|
||||
HuMemDirectFree(group_samp);
|
||||
}
|
||||
for(i=0; i<5; i++) {
|
||||
modelId[i] = Hu3DModelCreateFile(TITLE_FLAG_HSF);
|
||||
anim = HuSprAnimReadFile(flagFileTbl[i]);
|
||||
Hu3DAnimCreate(anim, modelId[i], "flag");
|
||||
Hu3DModelPosSet(modelId[i], sind(i*72)*200, 70, cosd(i*72)*200);
|
||||
Hu3DModelRotSet(modelId[i], -20, 0, 0);
|
||||
}
|
||||
for(time=1; time<=30; time++) {
|
||||
dist = 1.0-(time/30.0);
|
||||
for(i=0; i<5; i++) {
|
||||
Hu3DModelPosSet(modelId[i], sind((dist*180.0f)+(i*72)+(language*72))*(200+(300*dist)), 70, cosd((dist*180.0f)+(i*72)+(language*72))*(200+(300*dist)));
|
||||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuWinInit(1);
|
||||
HuWinMesMaxSizeGet(5, winSize, 0x380000, 0x380005, 0x38000A, 0x38000F, 0x380014);
|
||||
winId[0] = HuWinExCreateStyled(-10000, 50, winSize[0], winSize[1], -1, 0);
|
||||
HuWinAttrSet(winId[0], 0x800);
|
||||
HuWinMesSet(winId[0], 0x380000+(language*5));
|
||||
HuWinBGTPLvlSet(winId[0], 0);
|
||||
HuWinMesSpeedSet(winId[0], 0);
|
||||
HuWinDispOn(winId[0]);
|
||||
HuWinMesMaxSizeGet(5, winSize, 0x380001, 0x380006, 0x38000B, 0x380010, 0x380015);
|
||||
winId[1] = HuWinExCreateStyled(-10000, 100, winSize[0], winSize[1], -1, 0);
|
||||
HuWinAttrSet(winId[1], 0x800);
|
||||
HuWinMesSet(winId[1], 0x380001+(language*5));
|
||||
HuWinBGTPLvlSet(winId[1], 0);
|
||||
HuWinMesSpeedSet(winId[1], 0);
|
||||
HuWinDispOn(winId[1]);
|
||||
HuWinMesMaxSizeGet(5, winSize, 0x380002, 0x380007, 0x38000C, 0x380011, 0x380016);
|
||||
winId[2] = HuWinExCreateStyled(-10000, 340, winSize[0], winSize[1], -1, 0);
|
||||
HuWinAttrSet(winId[2], 0x800);
|
||||
HuWinMesSet(winId[2], 0x380002+(language*5));
|
||||
HuWinBGTPLvlSet(winId[2], 0);
|
||||
HuWinMesSpeedSet(winId[2], 0);
|
||||
HuWinDispOn(winId[2]);
|
||||
HuWinMesMaxSizeGet(5, winSize, 0x380004, 0x380009, 0x38000E, 0x380013, 0x380018);
|
||||
winId[4] = HuWinExCreateStyled(-10000, (448-winSize[1])-10, winSize[0], winSize[1], -1, 0);
|
||||
HuWinAttrSet(winId[4], 0x800);
|
||||
choiceChange = FALSE;
|
||||
while(1) {
|
||||
if(HuPadDStkRep[0] & PAD_BUTTON_LEFT) {
|
||||
HuAudFXPlay(0);
|
||||
for(time=0; time<=10; time++) {
|
||||
for(i=0; i<5; i++) {
|
||||
posX = sind((72.0*language)+(i*72)-(72.0*(time/10.0)))*200;
|
||||
posZ = cosd((72.0*language)+(i*72)-(72.0*(time/10.0)))*200;
|
||||
Hu3DModelPosSet(modelId[i], posX, 70, posZ);
|
||||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
language--;
|
||||
if(language < 0) {
|
||||
language = 4;
|
||||
}
|
||||
choiceChange = TRUE;
|
||||
} else if(HuPadDStkRep[0] & PAD_BUTTON_RIGHT) {
|
||||
HuAudFXPlay(0);
|
||||
for(time=0; time<=10; time++) {
|
||||
for(i=0; i<5; i++) {
|
||||
posX = sind((72.0*language)+(i*72)+(72.0*(time/10.0)))*200;
|
||||
posZ = cosd((72.0*language)+(i*72)+(72.0*(time/10.0)))*200;
|
||||
Hu3DModelPosSet(modelId[i], posX, 70, posZ);
|
||||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
language++;
|
||||
if(language >= 5) {
|
||||
language = 0;
|
||||
}
|
||||
choiceChange = TRUE;
|
||||
}
|
||||
if(choiceChange) {
|
||||
HuWinMesSet(winId[0], 0x380000+(language*5));
|
||||
HuWinMesSet(winId[1], 0x380001+(language*5));
|
||||
HuWinMesSet(winId[2], 0x380002+(language*5));
|
||||
choiceChange = FALSE;
|
||||
}
|
||||
if(HuPadBtnDown[0] & PAD_BUTTON_A) {
|
||||
HuAudFXPlay(1);
|
||||
HuWinHomeClear(winId[4]);
|
||||
HuWinExAnimIn(winId[4]);
|
||||
HuWinMesSet(winId[4], 0x380004+(language*5));
|
||||
HuWinMesWait(winId[4]);
|
||||
choice = HuWinChoiceGet(winId[4], 0);
|
||||
if(choice == 0) {
|
||||
GwLanguage = GwLanguageSave = language+1;
|
||||
GWLanguageSet(GwLanguage);
|
||||
break;
|
||||
}
|
||||
HuWinExAnimOut(winId[4]);
|
||||
}
|
||||
if(GwLanguage != -1 && (HuPadBtnDown[0] & PAD_BUTTON_B)) {
|
||||
HuAudFXPlay(3);
|
||||
break;
|
||||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
||||
while (WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuSprGrpKill(gid);
|
||||
for(i=0; i<5; i++) {
|
||||
Hu3DModelKill(modelId[i]);
|
||||
}
|
||||
omDelObjEx(objman, outView);
|
||||
omDelObjEx(objman, updateCamera);
|
||||
if(SystemInitF == 0) {
|
||||
CharManInit();
|
||||
MGSeqInit();
|
||||
}
|
||||
HuWinAllKill();
|
||||
Hu3DFogClear();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
s32 LanguageBootGet(void)
|
||||
{
|
||||
s16 result = -1;
|
||||
s16 i;
|
||||
s16 j;
|
||||
for(i=0; i<2; i++) {
|
||||
if(HuCardSlotCheck(i) < 0) {
|
||||
continue;
|
||||
}
|
||||
if(HuCardMount(i) < 0) {
|
||||
continue;
|
||||
}
|
||||
for(j=0; j<3; j++) {
|
||||
CARDFileInfo fileInfo;
|
||||
if(HuCardOpen(i, SaveFileNameTbl[j], &fileInfo) < 0) {
|
||||
continue;
|
||||
}
|
||||
if(HuCardRead(&fileInfo, &saveBuf, SAVE_BUF_SIZE, 0) < 0) {
|
||||
continue;
|
||||
}
|
||||
if(!SLCheckSumCheck()) {
|
||||
continue;
|
||||
}
|
||||
memcpy(&GWGameStat, &saveBuf.data.stat, sizeof(GameStat));
|
||||
if(GWGameStat.language < 1) {
|
||||
continue;
|
||||
}
|
||||
if(GWGameStat.language > 5) {
|
||||
continue;
|
||||
}
|
||||
result = GWGameStat.language;
|
||||
OSReport("Language %d\n", GWGameStat.language);
|
||||
HuCardClose(&fileInfo);
|
||||
HuCardUnMount(i);
|
||||
return result;
|
||||
}
|
||||
HuCardUnMount(i);
|
||||
}
|
||||
if(result == -1) {
|
||||
OSReport("OS Language %d\n", OSGetLanguage());
|
||||
switch(OSGetLanguage()) {
|
||||
case OS_LANG_ENGLISH:
|
||||
result = 1;
|
||||
break;
|
||||
|
||||
case OS_LANG_GERMAN:
|
||||
result = 2;
|
||||
break;
|
||||
|
||||
case OS_LANG_FRENCH:
|
||||
result = 3;
|
||||
break;
|
||||
|
||||
case OS_LANG_SPANISH:
|
||||
result = 5;
|
||||
break;
|
||||
|
||||
case OS_LANG_ITALIAN:
|
||||
result = 4;
|
||||
break;
|
||||
|
||||
default:
|
||||
result = -1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
@ -24,51 +24,69 @@
|
|||
|
||||
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];
|
||||
static omObjData *debugOutView;
|
||||
Process *objman;
|
||||
Vec debugCamRot[2];
|
||||
Vec debugCamPos[2];
|
||||
float debugCamZoom[2];
|
||||
|
||||
Vec lbl_1_bss_10;
|
||||
|
||||
static s16 demoWin;
|
||||
static s16 demoWinId;
|
||||
|
||||
static s16 titleModel[3];
|
||||
static s16 titleGroup;
|
||||
static s16 titleMdlId[3];
|
||||
static s16 bootGrpId;
|
||||
|
||||
s16 lbl_1_bss_4;
|
||||
s32 lbl_1_bss_0;
|
||||
#if VERSION_PAL
|
||||
static BOOL initLanguageF;
|
||||
#endif
|
||||
s32 debugCamOnF;
|
||||
|
||||
static void BootProc(void);
|
||||
void BootExec(void);
|
||||
static void UpdateDemoMess(void);
|
||||
static void ProgressiveProc(void);
|
||||
static void TitleInit(void);
|
||||
static BOOL TitleProc(void);
|
||||
#if VERSION_NTSC
|
||||
void BootProgExec(void);
|
||||
#endif
|
||||
void BootTitleCreate(void);
|
||||
BOOL BootTitleExec(void);
|
||||
|
||||
void *logoReadNintendo(void);
|
||||
void *NintendoDataDecode(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;
|
||||
objman = omInitObjMan(50, 8192);
|
||||
debugCamRot[0].x = -67;
|
||||
debugCamRot[0].y = 40;
|
||||
debugCamRot[0].z = 0;
|
||||
debugCamPos[0].x = 260;
|
||||
debugCamPos[0].y = -103;
|
||||
debugCamPos[0].z = -18;
|
||||
debugCamZoom[0] = 2885;
|
||||
Hu3DCameraCreate(1);
|
||||
Hu3DCameraPerspectiveSet(1, 30, 20, 15000, 1.2);
|
||||
Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1);
|
||||
HuPrcCreate(BootProc, 100, 12288, 0);
|
||||
HuPrcCreate(BootExec, 100, 12288, 0);
|
||||
Hu3DBGColorSet(0, 0, 0);
|
||||
history = omOvlHisGet(0);
|
||||
omOvlHisChg(0, history->overlay, 1, history->stat);
|
||||
#if VERSION_PAL
|
||||
if(SystemInitF == FALSE) {
|
||||
initLanguageF = FALSE;
|
||||
} else {
|
||||
initLanguageF = TRUE;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
static void BootProc(void)
|
||||
#if VERSION_PAL
|
||||
s32 LanguageBootGet(void);
|
||||
BOOL LanguageMenuExec(void);
|
||||
#endif
|
||||
|
||||
void BootExec(void)
|
||||
{
|
||||
AnimData *data;
|
||||
s16 group;
|
||||
|
|
@ -77,11 +95,24 @@ static void BootProc(void)
|
|||
s16 i;
|
||||
OSTick tick_prev;
|
||||
Process *curr = HuPrcCurrentGet();
|
||||
#if VERSION_NTSC
|
||||
if (omovlevtno == 0) {
|
||||
ProgressiveProc();
|
||||
BootProgExec();
|
||||
}
|
||||
#else
|
||||
if(SystemInitF == FALSE) {
|
||||
GwLanguage = LanguageBootGet();
|
||||
if(GwLanguage == -1) {
|
||||
if(LanguageMenuExec()) {
|
||||
SystemInitF = TRUE;
|
||||
}
|
||||
} else {
|
||||
GWLanguageSet(GwLanguage);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
group = HuSprGrpCreate(2);
|
||||
data = HuSprAnimRead(logoReadNintendo());
|
||||
data = HuSprAnimRead(NintendoDataDecode());
|
||||
sprite_nintendo = HuSprCreate(data, 0, 0);
|
||||
HuSprGrpMemberSet(group, 0, sprite_nintendo);
|
||||
HuSprPosSet(group, 0, 288, 240);
|
||||
|
|
@ -94,7 +125,7 @@ static void BootProc(void)
|
|||
HuSprPosSet(group, 1, 288, 240);
|
||||
HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF);
|
||||
HuWinInit(1);
|
||||
TitleInit();
|
||||
BootTitleCreate();
|
||||
SystemInitF = 1;
|
||||
}
|
||||
else {
|
||||
|
|
@ -105,6 +136,18 @@ static void BootProc(void)
|
|||
for (i = 0; i < 4; i++) {
|
||||
GWPlayerCfg[i].pad_idx = i;
|
||||
}
|
||||
#if VERSION_PAL
|
||||
if(SystemInitF) {
|
||||
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);
|
||||
HuAudSndGrpSetSet(0);
|
||||
BootTitleCreate();
|
||||
HuWinInit(1);
|
||||
}
|
||||
#endif
|
||||
repeat:
|
||||
HuSprAttrReset(group, 0, HUSPR_ATTR_DISPOFF);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30);
|
||||
|
|
@ -118,7 +161,7 @@ static void BootProc(void)
|
|||
HuWindowInit();
|
||||
MGSeqInit();
|
||||
HuWinInit(1);
|
||||
TitleInit();
|
||||
BootTitleCreate();
|
||||
data = HuSprAnimReadFile(TITLE_HUDSON_ANM);
|
||||
sprite_hudson = HuSprCreate(data, 0, 0);
|
||||
HuSprGrpMemberSet(group, 1, sprite_hudson);
|
||||
|
|
@ -130,9 +173,15 @@ static void BootProc(void)
|
|||
}
|
||||
else {
|
||||
for (i = 0; i < 180; i++) {
|
||||
#if VERSION_NTSC
|
||||
if (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A)) {
|
||||
break;
|
||||
}
|
||||
#else
|
||||
if (initLanguageF && (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A))) {
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
|
@ -159,12 +208,21 @@ static void BootProc(void)
|
|||
}
|
||||
else {
|
||||
for (i = 0; i < 180; i++) {
|
||||
#if VERSION_NTSC
|
||||
if (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A)) {
|
||||
break;
|
||||
}
|
||||
#else
|
||||
if (initLanguageF && (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A))) {
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
#if VERSION_PAL
|
||||
initLanguageF = TRUE;
|
||||
#endif
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
||||
while (WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
|
|
@ -184,11 +242,11 @@ static void BootProc(void)
|
|||
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);
|
||||
demoWinId = HuWinCreate(-10000, 448 - win_size[1], win_size[0], win_size[1], 0);
|
||||
HuWinMesSpeedSet(demoWinId, 0);
|
||||
HuWinBGTPLvlSet(demoWinId, 0);
|
||||
HuWinPriSet(demoWinId, 10);
|
||||
HuWinAttrSet(demoWinId, 0x800);
|
||||
HuPrcSleep(5);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10);
|
||||
while (WipeStatGet()) {
|
||||
|
|
@ -207,7 +265,7 @@ static void BootProc(void)
|
|||
while (WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuWinKill(demoWin);
|
||||
HuWinKill(demoWinId);
|
||||
HuTHPClose();
|
||||
HuPrcVSleep();
|
||||
HuSprGrpKill(group_thp);
|
||||
|
|
@ -216,7 +274,7 @@ static void BootProc(void)
|
|||
}
|
||||
skip_wait = FALSE;
|
||||
}
|
||||
if (!TitleProc()) {
|
||||
if (!BootTitleExec()) {
|
||||
HuPrcSleep(60);
|
||||
goto repeat;
|
||||
}
|
||||
|
|
@ -242,7 +300,7 @@ static void BootProc(void)
|
|||
} while (1);
|
||||
}
|
||||
|
||||
static s16 demoTimingTbl[] = {
|
||||
static s16 demoMessTimeTbl[] = {
|
||||
1686,
|
||||
1785,
|
||||
1850,
|
||||
|
|
@ -261,19 +319,21 @@ 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));
|
||||
for (i = 0; demoMessTimeTbl[i * 2] != -1; i++) {
|
||||
if (frame == demoMessTimeTbl[i * 2]) {
|
||||
HuWinMesSet(demoWinId, MAKE_MESSID(54, i));
|
||||
}
|
||||
if (frame == demoTimingTbl[(i * 2) + 1]) {
|
||||
HuWinHomeClear(demoWin);
|
||||
if (frame == demoMessTimeTbl[(i * 2) + 1]) {
|
||||
HuWinHomeClear(demoWinId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static u16 progressivePosTbl[] = { 236, 313, 353, 313 };
|
||||
#if VERSION_NTSC
|
||||
|
||||
static void ProgressiveProc(void)
|
||||
static u16 progPosTbl[] = { 236, 313, 353, 313 };
|
||||
|
||||
void BootProgExec(void)
|
||||
{
|
||||
s16 i;
|
||||
s16 option;
|
||||
|
|
@ -303,11 +363,11 @@ static void ProgressiveProc(void)
|
|||
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]);
|
||||
HuSprPosSet(group, 1, progPosTbl[option * 2], progPosTbl[(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]);
|
||||
HuSprPosSet(group, 2, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]);
|
||||
HuSprAttrSet(group, 2, HUSPR_ATTR_DISPOFF);
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30);
|
||||
while (WipeStatGet()) {
|
||||
|
|
@ -316,12 +376,12 @@ static void ProgressiveProc(void)
|
|||
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]);
|
||||
HuSprPosSet(group, 1, progPosTbl[option * 2], progPosTbl[(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]);
|
||||
HuSprPosSet(group, 2, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]);
|
||||
HuSprAttrReset(group, 2, HUSPR_ATTR_DISPOFF);
|
||||
break;
|
||||
}
|
||||
|
|
@ -370,33 +430,35 @@ static void ProgressiveProc(void)
|
|||
HuPrcSleep(30);
|
||||
}
|
||||
|
||||
u16 lbl_1_data_58[] = { 1, 2 };
|
||||
#endif
|
||||
|
||||
void fn_1_1178(void)
|
||||
static u16 debugCamTbl[] = { 1, 2 };
|
||||
|
||||
void DebugCamOutView(omObjData *obj)
|
||||
{
|
||||
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;
|
||||
x = debugCamRot[i].x;
|
||||
y = debugCamRot[i].y;
|
||||
z = debugCamRot[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;
|
||||
pos.x = (((sind(y) * cosd(x)) * debugCamZoom[i]) + debugCamPos[i].x);
|
||||
pos.y = (-sind(x) * debugCamZoom[i]) + debugCamPos[i].y;
|
||||
pos.z = ((cosd(y) * cosd(x)) * debugCamZoom[i]) + debugCamPos[i].z;
|
||||
target.x = debugCamPos[i].x;
|
||||
target.y = debugCamPos[i].y;
|
||||
target.z = debugCamPos[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);
|
||||
Hu3DCameraPosSet(debugCamTbl[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_152C(void)
|
||||
void DebugCamUpdate(omObjData *obj)
|
||||
{
|
||||
Vec pos;
|
||||
Vec offset;
|
||||
|
|
@ -405,28 +467,30 @@ void fn_1_152C(void)
|
|||
|
||||
f32 z_rot;
|
||||
s8 stick_pos;
|
||||
|
||||
|
||||
#if VERSION_NTSC
|
||||
if ((HuPadBtnDown[0] & 0x800)) {
|
||||
lbl_1_bss_0 = (lbl_1_bss_0) ? 0 : 1;
|
||||
debugCamOnF = (debugCamOnF) ? 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;
|
||||
#endif
|
||||
if (debugCamOnF != 0) {
|
||||
debugCamRot[0].y += 0.1f * HuPadStkX[0];
|
||||
debugCamRot[0].x += 0.1f * HuPadStkY[0];
|
||||
debugCamZoom[0] += HuPadTrigL[0] / 2;
|
||||
debugCamZoom[0] -= HuPadTrigR[0] / 2;
|
||||
if (debugCamZoom[0] < 100.0f) {
|
||||
debugCamZoom[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;
|
||||
pos.x = debugCamPos[0].x + (debugCamZoom[0] * (sind(debugCamRot[0].y) * cosd(debugCamRot[0].x)));
|
||||
pos.y = (debugCamPos[0].y + (debugCamZoom[0] * -sind(debugCamRot[0].x)));
|
||||
pos.z = (debugCamPos[0].z + (debugCamZoom[0] * (cosd(debugCamRot[0].y) * cosd(debugCamRot[0].x))));
|
||||
offset.x = debugCamPos[0].x - pos.x;
|
||||
offset.y = debugCamPos[0].y - pos.y;
|
||||
offset.z = debugCamPos[0].z - pos.z;
|
||||
dir.x = (sind(debugCamRot[0].y) * sind(debugCamRot[0].x));
|
||||
dir.y = cosd(debugCamRot[0].x);
|
||||
dir.z = (cosd(debugCamRot[0].y) * sind(debugCamRot[0].x));
|
||||
z_rot = debugCamRot[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));
|
||||
|
|
@ -443,70 +507,102 @@ void fn_1_152C(void)
|
|||
VECNormalize(&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);
|
||||
debugCamPos[0].x += 0.05f * (offset.x * stick_pos);
|
||||
debugCamPos[0].y += 0.05f * (offset.y * stick_pos);
|
||||
debugCamPos[0].z += 0.05f * (offset.z * stick_pos);
|
||||
}
|
||||
VECNormalize(&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);
|
||||
debugCamPos[0].x += 0.05f * (offset.x * stick_pos);
|
||||
debugCamPos[0].y += 0.05f * (offset.y * stick_pos);
|
||||
debugCamPos[0].z += 0.05f * (offset.z * stick_pos);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void TitleInit(void)
|
||||
void BootTitleCreate(void)
|
||||
{
|
||||
s16 model;
|
||||
s16 sprite;
|
||||
AnimData *sprite_data;
|
||||
titleModel[0] = model = Hu3DModelCreateFile(TITLE_CHAR_HSF);
|
||||
s16 i;
|
||||
titleMdlId[0] = model = Hu3DModelCreateFile(TITLE_CHAR_HSF);
|
||||
Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP);
|
||||
titleModel[1] = model = Hu3DModelCreateFile(TITLE_CUBE_HSF);
|
||||
titleMdlId[1] = model = Hu3DModelCreateFile(TITLE_CUBE_HSF);
|
||||
Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP);
|
||||
titleModel[2] = model = Hu3DModelCreateFile(TITLE_SKY_HSF);
|
||||
titleMdlId[2] = model = Hu3DModelCreateFile(TITLE_SKY_HSF);
|
||||
Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP);
|
||||
Hu3DModelCameraInfoSet(model, 1);
|
||||
Hu3DModelLightInfoSet(model, 1);
|
||||
titleGroup = HuSprGrpCreate(4);
|
||||
#if VERSION_NTSC
|
||||
bootGrpId = HuSprGrpCreate(4);
|
||||
#else
|
||||
bootGrpId = HuSprGrpCreate(13);
|
||||
#endif
|
||||
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);
|
||||
HuSprGrpMemberSet(bootGrpId, 0, sprite);
|
||||
HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF);
|
||||
HuSprDrawNoSet(bootGrpId, 0, 127);
|
||||
HuSprPosSet(bootGrpId, 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);
|
||||
HuSprGrpMemberSet(bootGrpId, 1, sprite);
|
||||
HuSprAttrSet(bootGrpId, 1, HUSPR_ATTR_DISPOFF);
|
||||
HuSprPosSet(bootGrpId, 1, 288, 420);
|
||||
#if VERSION_NTSC
|
||||
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);
|
||||
HuSprGrpMemberSet(bootGrpId, 2, sprite);
|
||||
HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
||||
HuSprPosSet(bootGrpId, 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);
|
||||
HuSprGrpMemberSet(bootGrpId, 3, sprite);
|
||||
HuSprAttrSet(bootGrpId, 3, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
||||
HuSprPosSet(bootGrpId, 3, 288, 200);
|
||||
#else
|
||||
sprite_data = HuSprAnimReadFile(TITLE_LOGO_ANM);
|
||||
sprite = HuSprCreate(sprite_data, 0, 0);
|
||||
HuSprGrpMemberSet(bootGrpId, 2, sprite);
|
||||
HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
||||
HuSprPosSet(bootGrpId, 2, 288, 200);
|
||||
for(i=0; i<5; i++) {
|
||||
sprite_data = HuSprAnimReadFile(TITLE_PRESS_START_EN_ANM+i);
|
||||
sprite = HuSprCreate(sprite_data, 3+i, 0);
|
||||
HuSprGrpMemberSet(bootGrpId, 3+i, sprite);
|
||||
HuSprAttrSet(bootGrpId, 3+i, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
||||
HuSprPosSet(bootGrpId, 3+i, 288, 340);
|
||||
}
|
||||
for(i=0; i<5; i++) {
|
||||
sprite_data = HuSprAnimReadFile(TITLE_LANGUAGE_EN_ANM+i);
|
||||
sprite = HuSprCreate(sprite_data, 8+i, 0);
|
||||
HuSprGrpMemberSet(bootGrpId, 8+i, sprite);
|
||||
HuSprAttrSet(bootGrpId, 8+i, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR);
|
||||
HuSprPosSet(bootGrpId, 8+i, 288, 380);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
static BOOL TitleProc(void)
|
||||
BOOL BootTitleExec(void)
|
||||
{
|
||||
float scale;
|
||||
float scale_time;
|
||||
int seNo[32];
|
||||
s16 pressStartMemberNo;
|
||||
s16 languageMemberNo;
|
||||
s16 i;
|
||||
Hu3DModelAttrReset(titleModel[0], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrReset(titleModel[1], HU3D_ATTR_DISPOFF);
|
||||
HuSprAttrReset(titleGroup, 0, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrReset(titleGroup, 1, HUSPR_ATTR_DISPOFF);
|
||||
s16 choice;
|
||||
float temp;
|
||||
repeat:
|
||||
Hu3DModelAttrReset(titleMdlId[0], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrReset(titleMdlId[1], HU3D_ATTR_DISPOFF);
|
||||
HuSprAttrReset(bootGrpId, 0, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrReset(bootGrpId, 1, HUSPR_ATTR_DISPOFF);
|
||||
OSReport(">>>>>>>>MSM_SE_SEL_01 %d\n", msmSeGetEntryID(2092, seNo));
|
||||
OSReport(">>>>>>>>SE Num %d\n", msmSeGetNumPlay(0));
|
||||
HuAudSStreamPlay(20);
|
||||
|
|
@ -514,24 +610,128 @@ static BOOL TitleProc(void)
|
|||
while (WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuSprAttrReset(titleGroup, 3, HUSPR_ATTR_DISPOFF);
|
||||
#if VERSION_NTSC
|
||||
HuSprAttrReset(bootGrpId, 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);
|
||||
HuSprScaleSet(bootGrpId, 3, scale, scale);
|
||||
HuSprTPLvlSet(bootGrpId, 3, i / 50.0);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuSprAttrReset(titleGroup, 2, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrReset(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||
#else
|
||||
HuSprAttrReset(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||
for (i = 1; i <= 50; i++) {
|
||||
scale = (cosd(i * 1.8) * 10.0) + 1.0;
|
||||
HuSprScaleSet(bootGrpId, 2, scale, scale);
|
||||
HuSprTPLvlSet(bootGrpId, 2, i / 50.0);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
if(GwLanguage == -1) {
|
||||
pressStartMemberNo = 3;
|
||||
languageMemberNo = 8;
|
||||
} else {
|
||||
pressStartMemberNo = GwLanguage+3-1;
|
||||
languageMemberNo = GwLanguage+8-1;
|
||||
}
|
||||
HuSprAttrReset(bootGrpId, pressStartMemberNo, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrReset(bootGrpId, languageMemberNo, HUSPR_ATTR_DISPOFF);
|
||||
for(i=1; i<=20; i++) {
|
||||
scale = sind(i*4.5);
|
||||
HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale);
|
||||
HuSprScaleSet(bootGrpId, languageMemberNo, scale*0.7, scale*0.7);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
choice = 0;
|
||||
scale_time = 0;
|
||||
#endif
|
||||
|
||||
#if VERSION_NTSC
|
||||
for (i = scale_time = 0; i < 1800; i++) {
|
||||
#else
|
||||
for (i = temp = 0; i < 1800; i++) {
|
||||
#endif
|
||||
#if VERSION_PAL
|
||||
if((choice == 0 && (HuPadDStkRep[0] & PAD_BUTTON_DOWN)) || (choice != 0 && (HuPadDStkRep[0] & PAD_BUTTON_UP))) {
|
||||
HuAudFXPlay(0);
|
||||
for(i=1; i<=10; i++) {
|
||||
scale = ((1-(i/10.0))*(((cosd(scale_time)*0.1)+0.9)-0.7))+0.7;
|
||||
if(choice == 0) {
|
||||
HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale);
|
||||
} else {
|
||||
HuSprScaleSet(bootGrpId, languageMemberNo, scale, scale);
|
||||
}
|
||||
scale = ((1-(i/10.0))*(((cosd(scale_time/3.0)*0.05)+0.65)-1.0))+1.0;
|
||||
if(choice == 0) {
|
||||
HuSprScaleSet(bootGrpId, languageMemberNo, scale, scale);
|
||||
} else {
|
||||
HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale);
|
||||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
choice ^= 1;
|
||||
scale_time = 0;
|
||||
}
|
||||
if (HuPadBtnDown[0] & (PAD_BUTTON_START|PAD_BUTTON_A)) {
|
||||
if(choice == 0) {
|
||||
s32 ret = HuAudFXPlay(2092);
|
||||
if (ret < 0) {
|
||||
OSReport(">>>>>Error %d\n", ret);
|
||||
}
|
||||
HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||
return 1;
|
||||
} else {
|
||||
HuAudFXPlay(1);
|
||||
HuAudSStreamAllFadeOut(500);
|
||||
WipeColorSet(255, 255, 255);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
||||
while (WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
Hu3DModelAttrSet(titleMdlId[0], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrSet(titleMdlId[1], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrSet(titleMdlId[2], HU3D_ATTR_DISPOFF);
|
||||
HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrSet(bootGrpId, 1, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||
for(i=0; i<5; i++) {
|
||||
HuSprAttrSet(bootGrpId, i+3, HUSPR_ATTR_DISPOFF);
|
||||
}
|
||||
for(i=0; i<5; i++) {
|
||||
HuSprAttrSet(bootGrpId, i+8, HUSPR_ATTR_DISPOFF);
|
||||
}
|
||||
LanguageMenuExec();
|
||||
Hu3DModelCameraInfoSet(titleMdlId[2], 1);
|
||||
Hu3DModelLightInfoSet(titleMdlId[2], 1);
|
||||
HuWinInit(1);
|
||||
goto repeat;
|
||||
}
|
||||
}
|
||||
scale = (cosd(scale_time) * 0.1) + 0.9;
|
||||
if(choice == 0) {
|
||||
HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale);
|
||||
} else {
|
||||
HuSprScaleSet(bootGrpId, languageMemberNo, scale, scale);
|
||||
}
|
||||
scale = (cosd(scale_time/3.0) * 0.05) + 0.65;
|
||||
if(choice == 0) {
|
||||
HuSprScaleSet(bootGrpId, languageMemberNo, scale, scale);
|
||||
} else {
|
||||
HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale);
|
||||
}
|
||||
scale_time += 5;
|
||||
HuPrcVSleep();
|
||||
#else
|
||||
if (i <= 10) {
|
||||
HuSprTPLvlSet(titleGroup, 2, i / 10.0);
|
||||
HuSprTPLvlSet(bootGrpId, 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);
|
||||
HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||
return 1;
|
||||
}
|
||||
scale = (sind(i * scale_time) * 0.1) + 0.9;
|
||||
|
|
@ -539,20 +739,48 @@ static BOOL TitleProc(void)
|
|||
if (scale_time > 5) {
|
||||
scale_time = 5;
|
||||
}
|
||||
HuSprScaleSet(titleGroup, 2, scale, scale);
|
||||
HuSprScaleSet(bootGrpId, 2, scale, scale);
|
||||
HuPrcVSleep();
|
||||
#endif
|
||||
|
||||
}
|
||||
WipeColorSet(255, 255, 255);
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
||||
while (WipeStatGet()) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
Hu3DModelAttrSet(titleModel[0], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrSet(titleModel[1], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrSet(titleModel[2], HU3D_ATTR_DISPOFF);
|
||||
HuSprAttrSet(titleGroup, 0, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrSet(titleGroup, 1, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrSet(titleGroup, 2, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrSet(titleGroup, 3, HUSPR_ATTR_DISPOFF);
|
||||
Hu3DModelAttrSet(titleMdlId[0], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrSet(titleMdlId[1], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrSet(titleMdlId[2], HU3D_ATTR_DISPOFF);
|
||||
#if VERSION_NTSC
|
||||
HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrSet(bootGrpId, 1, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrSet(bootGrpId, 3, HUSPR_ATTR_DISPOFF);
|
||||
#else
|
||||
HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrSet(bootGrpId, 1, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF);
|
||||
for(i=0; i<5; i++) {
|
||||
HuSprAttrSet(bootGrpId, i+3, HUSPR_ATTR_DISPOFF);
|
||||
}
|
||||
for(i=0; i<5; i++) {
|
||||
HuSprAttrSet(bootGrpId, i+8, HUSPR_ATTR_DISPOFF);
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
#include "nintendoData.inc"
|
||||
|
||||
void *NintendoDataDecode(void)
|
||||
{
|
||||
u32 *src = (u32 *)nintendoData;
|
||||
u32 size = *src++;
|
||||
void *dst = HuMemDirectMalloc(HEAP_DATA, size);
|
||||
int decode_type = *src++;
|
||||
if(dst) {
|
||||
HuDecodeData(src, dst, size, decode_type);
|
||||
}
|
||||
return dst;
|
||||
}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
#include "game/data.h"
|
||||
|
||||
#include "logoNintendoData.inc"
|
||||
|
||||
void *logoReadNintendo(void)
|
||||
{
|
||||
u32 *src = (u32 *)logoNintendoData;
|
||||
u32 size = *src++;
|
||||
void *dst = HuMemDirectMalloc(HEAP_DATA, size);
|
||||
int decode_type = *src++;
|
||||
if(dst) {
|
||||
HuDecodeData(src, dst, size, decode_type);
|
||||
}
|
||||
return dst;
|
||||
}
|
||||
|
|
@ -689,7 +689,11 @@ static void fn_1_2804(void)
|
|||
HuWinMesPalSet(window, 7, 0, 0, 192);
|
||||
HuWinPosSet(window_other, 142.0f, 320.0f);
|
||||
for (i = 0; i <= 10; i++) {
|
||||
#if VERSION_NTSC
|
||||
HuWinPosSet(window_other, 30.0 * sind(i * 9.0f) + 142.0, 160.0 * (1.0 - cosd(i * 9.0f)) + 320.0);
|
||||
#else
|
||||
HuWinPosSet(window_other, 30.0 * sind(i * 9.0f) + 142.0, 180.0 * (1.0 - cosd(i * 9.0f)) + 320.0);
|
||||
#endif
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuPrcSleep(5);
|
||||
|
|
@ -711,6 +715,12 @@ static void fn_1_2804(void)
|
|||
|
||||
static float lbl_1_data_124[] = { 420, 70, 488, 186, 476, 242, 400, 292 };
|
||||
|
||||
#if VERSION_NTSC
|
||||
#define WIN_ANIM_OFS 201
|
||||
#else
|
||||
#define WIN_ANIM_OFS 219
|
||||
#endif
|
||||
|
||||
static void fn_1_2FA0(void)
|
||||
{
|
||||
float temp_f31;
|
||||
|
|
@ -763,20 +773,39 @@ static void fn_1_2FA0(void)
|
|||
|
||||
temp_r29++;
|
||||
}
|
||||
#if VERSION_NTSC
|
||||
if (temp_r26 == 1) {
|
||||
temp_r22 = spC[0];
|
||||
temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 18));
|
||||
temp_f29 = ((576.0f - temp_r22) - 24.0f) - 16.0f + 227.0f;
|
||||
temp_f29 = ((576.0f - temp_r22) - 24.0f) - 16.0f + 227;
|
||||
temp_f28 = 78;
|
||||
temp_f27 = 0.5f;
|
||||
}
|
||||
else {
|
||||
temp_r22 = (spC[0] > spC[1]) ? spC[0] : spC[1];
|
||||
temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 15));
|
||||
|
||||
temp_f29 = ((576.0f - temp_r22) - 24.0f) - 16.0f + 172.0f;
|
||||
temp_f28 = 84;
|
||||
temp_f27 = 1.0f;
|
||||
}
|
||||
#else
|
||||
if (temp_r26 == 1) {
|
||||
temp_r22 = spC[0];
|
||||
temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 18));
|
||||
temp_f29 = ((576.0f - temp_r22) - 24.0f) - 16.0f + 235;
|
||||
temp_f28 = 78;
|
||||
temp_f27 = 0.5f;
|
||||
}
|
||||
else {
|
||||
temp_r22 = (spC[0] > spC[1]) ? spC[0] : spC[1];
|
||||
temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 15));
|
||||
|
||||
temp_f29 = ((576.0f - temp_r22) - 24.0f) - 16.0f + 235;
|
||||
temp_f28 = 84;
|
||||
temp_f27 = 1.0f;
|
||||
}
|
||||
#endif
|
||||
temp_r25 = HuSprGrpCreate(1);
|
||||
temp_r17 = HuSprCreate(temp_r28, 0, 0);
|
||||
HuSprGrpMemberSet(temp_r25, 0, temp_r17);
|
||||
|
|
@ -809,13 +838,13 @@ static void fn_1_2FA0(void)
|
|||
HuWinMesSet(sp10[2], lbl_1_bss_10 + MAKE_MESSID(0x24, 0x02));
|
||||
HuWinBGTPLvlSet(sp10[2], 0.0f);
|
||||
HuWinMesSpeedSet(sp10[2], 0);
|
||||
temp_r31 = HuWinAnimSet(sp10[2], temp_r28, 0, 201, 18);
|
||||
temp_r31 = HuWinAnimSet(sp10[2], temp_r28, 0, WIN_ANIM_OFS, 18);
|
||||
HuWinSprPriSet(sp10[2], temp_r31, 1000);
|
||||
temp_r27 = HuWinCreate(1000, 292, 456, 42, 0);
|
||||
HuWinBGTPLvlSet(temp_r27, 0.0f);
|
||||
HuWinMesSpeedSet(temp_r27, 0);
|
||||
HuWinMesSet(temp_r27, lbl_1_bss_10 + MAKE_MESSID(0x24, 0x02));
|
||||
temp_r31 = HuWinAnimSet(temp_r27, temp_r28, 0, 201, 18);
|
||||
temp_r31 = HuWinAnimSet(temp_r27, temp_r28, 0, WIN_ANIM_OFS, 18);
|
||||
HuWinPriSet(temp_r27, 10);
|
||||
HuWinSprPriSet(temp_r27, temp_r31, 11);
|
||||
while (lbl_1_data_0 != 0) {
|
||||
|
|
@ -824,12 +853,21 @@ static void fn_1_2FA0(void)
|
|||
for (temp_r31 = 0; temp_r31 < 36; temp_r31++) {
|
||||
temp_f30 = temp_r31;
|
||||
if (temp_f30 <= 20.0f) {
|
||||
#if VERSION_NTSC
|
||||
temp_f31 = 300.0 * cosd(4.5f * temp_f30) + temp_f29;
|
||||
HuSprGrpPosSet(temp_r25, temp_f31, temp_f28);
|
||||
temp_f31 = 300.0 * cosd(4.5f * temp_f30) + (576.0f - (temp_r22 / 2) - 24.0f);
|
||||
for (temp_r30 = 0; temp_r30 < temp_r26; temp_r30++) {
|
||||
HuSprGrpPosSet(work.spr_grp[temp_r30], temp_f31, (temp_r30 * 28) + 70);
|
||||
}
|
||||
#else
|
||||
temp_f31 = 500.0 * cosd(4.5f * temp_f30) + temp_f29;
|
||||
HuSprGrpPosSet(temp_r25, temp_f31, temp_f28);
|
||||
temp_f31 = 500.0 * cosd(4.5f * temp_f30) + (576.0f - (temp_r22 / 2) - 24.0f);
|
||||
for (temp_r30 = 0; temp_r30 < temp_r26; temp_r30++) {
|
||||
HuSprGrpPosSet(work.spr_grp[temp_r30], temp_f31, (temp_r30 * 28) + 70);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
temp_f30 = temp_r31 - 3;
|
||||
if (temp_f30 > 0.0f) {
|
||||
|
|
@ -837,7 +875,11 @@ static void fn_1_2FA0(void)
|
|||
temp_f31 = 300.0 * cosd(4.5f * temp_f30) + lbl_1_data_124[2];
|
||||
HuSprGrpPosSet(temp_r24, temp_f31, 186.0f);
|
||||
temp_f31 = 300.0 * cosd(4.5f * temp_f30) + (lbl_1_data_124[2] - 88.0f);
|
||||
#if VERSION_NTSC
|
||||
HuWinPosSet(sp10[0], 16.0f + temp_f31, 168.0f);
|
||||
#else
|
||||
HuWinPosSet(sp10[0], 8.0f + temp_f31, 168.0f);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
temp_f30 = temp_r31 - 6;
|
||||
|
|
@ -846,13 +888,17 @@ static void fn_1_2FA0(void)
|
|||
temp_f31 = 300.0 * cosd(4.5f * temp_f30) + lbl_1_data_124[4];
|
||||
HuSprGrpPosSet(temp_r23, temp_f31, 242.0f);
|
||||
temp_f31 = 300.0 * cosd(4.5f * temp_f30) + (lbl_1_data_124[4] - 100.0f);
|
||||
#if VERSION_NTSC
|
||||
HuWinPosSet(sp10[1], 16.0f + temp_f31, 224.0f);
|
||||
#else
|
||||
HuWinPosSet(sp10[1], 8.0f + temp_f31, 224.0f);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
temp_f30 = temp_r31 - 9;
|
||||
if (temp_f30 > 0.0f) {
|
||||
if (temp_f30 <= 20.0f) {
|
||||
temp_f31 = 300.0 * cosd(4.5f * temp_f30) + (lbl_1_data_124[6] - 217.0f);
|
||||
temp_f31 = 300.0 * cosd(4.5f * temp_f30) + (lbl_1_data_124[6] - (WIN_ANIM_OFS+16));
|
||||
HuWinPosSet(sp10[2], 16.0f + temp_f31, 274.0f);
|
||||
}
|
||||
}
|
||||
|
|
@ -860,7 +906,7 @@ static void fn_1_2FA0(void)
|
|||
}
|
||||
while (lbl_1_data_0 != 3) {
|
||||
if (temp_r21 != lbl_1_bss_6) {
|
||||
temp_f31 = 16.0f + (lbl_1_data_124[6] - 217.0f);
|
||||
temp_f31 = 16.0f + (lbl_1_data_124[6] - (WIN_ANIM_OFS+16));
|
||||
HuWinMesSet(temp_r27, MAKE_MESSID(0x24, 0x02) + lbl_1_bss_10 + temp_r21);
|
||||
temp_r21 = lbl_1_bss_6;
|
||||
if (lbl_1_bss_6 == 1) {
|
||||
|
|
@ -875,7 +921,11 @@ static void fn_1_2FA0(void)
|
|||
HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x02) + lbl_1_bss_10 + lbl_1_bss_6);
|
||||
}
|
||||
for (temp_r31 = 0; temp_r31 <= 10; temp_r31++) {
|
||||
#if VERSION_NTSC
|
||||
HuWinPosSet(temp_r27, 30.0 * sind(temp_r31 * 9.0f) + temp_f31, 200.0 * (1.0 - cosd(temp_r31 * 9.0f)) + 274.0);
|
||||
#else
|
||||
HuWinPosSet(temp_r27, 30.0 * sind(temp_r31 * 9.0f) + temp_f31, 220.0 * (1.0 - cosd(temp_r31 * 9.0f)) + 274.0);
|
||||
#endif
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
|
@ -897,7 +947,11 @@ static void fn_1_2FA0(void)
|
|||
HuSprGrpPosSet(temp_r23, temp_f31, 242.0f);
|
||||
temp_f31 = (lbl_1_data_124[4] - 100.0f) + (300.0f * temp_f30);
|
||||
HuWinPosSet(sp10[1], 16.0f + temp_f31, 224);
|
||||
#if VERSION_NTSC
|
||||
temp_f31 = (lbl_1_data_124[6] - 184.0f) + (400.0f * temp_f30);
|
||||
#else
|
||||
temp_f31 = (lbl_1_data_124[6] - 235.0f) + (400.0f * temp_f30);
|
||||
#endif
|
||||
HuWinPosSet(sp10[2], 16.0f + temp_f31, 274);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2769,7 +2769,11 @@ void fn_2_C130(omObjData *object)
|
|||
case 0:
|
||||
if (!MGSeqStatGet(lbl_2_bss_C0)) {
|
||||
object->work[0] = 1;
|
||||
#if VERSION_NTSC
|
||||
HuAudFXStop(lbl_2_bss_11C);
|
||||
#else
|
||||
HuAudFXFadeOut(lbl_2_bss_11C, 500);
|
||||
#endif
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
||||
WipeColorSet(255, 255, 255);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
|
||||
#include "dolphin.h"
|
||||
#include "ext_math.h"
|
||||
#include "version.h"
|
||||
|
||||
#undef ABS
|
||||
#define ABS(x) ((0 > (x)) ? -(x) : (x))
|
||||
|
|
@ -425,20 +426,20 @@ static void fn_1_580(s32 *arg0, s32 arg1, s32 arg2)
|
|||
|
||||
espBankSet(arg0[arg1 + 1], 10);
|
||||
espBankSet(arg0[arg1 + 4], 11);
|
||||
if (36000 <= arg2) {
|
||||
arg2 = 35999;
|
||||
if (600 * REFRESH_RATE <= arg2) {
|
||||
arg2 = 600 * REFRESH_RATE - 1;
|
||||
}
|
||||
var_r30 = arg2 / 3600;
|
||||
arg2 -= var_r30 * 3600;
|
||||
var_r30 = arg2 / (60 * REFRESH_RATE);
|
||||
arg2 -= var_r30 * (60 * REFRESH_RATE);
|
||||
if (var_r30 > 9) {
|
||||
var_r30 = 9;
|
||||
}
|
||||
espBankSet(arg0[arg1], var_r30);
|
||||
var_r30 = arg2 / 60;
|
||||
arg2 -= var_r30 * 60;
|
||||
var_r30 = arg2 / REFRESH_RATE;
|
||||
arg2 -= var_r30 * REFRESH_RATE;
|
||||
espBankSet(arg0[arg1 + 2], var_r30 / 10);
|
||||
espBankSet(arg0[arg1 + 3], var_r30 % 10);
|
||||
var_r30 = 101.5f * arg2 / 60.0f;
|
||||
var_r30 = 101.5f * arg2 / REFRESH_RATE;
|
||||
espBankSet(arg0[arg1 + 5], var_r30 / 10);
|
||||
espBankSet(arg0[arg1 + 6], var_r30 % 10);
|
||||
}
|
||||
|
|
@ -1671,7 +1672,7 @@ static void fn_1_8218(omObjData *arg0)
|
|||
}
|
||||
break;
|
||||
case 1006:
|
||||
MGSeqParamSet(lbl_1_bss_1A8, 1, (lbl_1_bss_1B0 + 59) / 60);
|
||||
MGSeqParamSet(lbl_1_bss_1A8, 1, (lbl_1_bss_1B0 + REFRESH_RATE - 1) / REFRESH_RATE);
|
||||
lbl_1_bss_1B0--;
|
||||
if (lbl_1_bss_1B0 < 0 || lbl_1_bss_26 >= 0) {
|
||||
lbl_1_bss_1B0 = 1800;
|
||||
|
|
|
|||
|
|
@ -418,20 +418,20 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2)
|
|||
|
||||
espBankSet(arg0[arg1 + 1], 10);
|
||||
espBankSet(arg0[arg1 + 4], 11);
|
||||
if (36000 <= arg2) {
|
||||
arg2 = 35999;
|
||||
if (600 * REFRESH_RATE <= arg2) {
|
||||
arg2 = 600 * REFRESH_RATE - 1;
|
||||
}
|
||||
var_r30 = arg2 / 3600;
|
||||
arg2 -= var_r30 * 3600;
|
||||
var_r30 = arg2 / (60 * REFRESH_RATE);
|
||||
arg2 -= var_r30 * (60 * REFRESH_RATE);
|
||||
if (var_r30 > 9) {
|
||||
var_r30 = 9;
|
||||
}
|
||||
espBankSet(arg0[arg1], var_r30);
|
||||
var_r30 = arg2 / 60;
|
||||
arg2 -= var_r30 * 60;
|
||||
var_r30 = arg2 / REFRESH_RATE;
|
||||
arg2 -= var_r30 * REFRESH_RATE;
|
||||
espBankSet(arg0[arg1 + 2], var_r30 / 10);
|
||||
espBankSet(arg0[arg1 + 3], var_r30 % 10);
|
||||
var_r30 = 101.5f * arg2 / 60.0f;
|
||||
var_r30 = 101.5f * arg2 / REFRESH_RATE;
|
||||
espBankSet(arg0[arg1 + 5], var_r30 / 10);
|
||||
espBankSet(arg0[arg1 + 6], var_r30 % 10);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
#include "ext_math.h"
|
||||
#include "game/audio.h"
|
||||
#include "game/flag.h"
|
||||
#include "game/hsfman.h"
|
||||
#include "game/minigame_seq.h"
|
||||
|
|
@ -9,6 +8,11 @@
|
|||
#include "game/wipe.h"
|
||||
|
||||
#include "REL/m420dll.h"
|
||||
#include "version.h"
|
||||
|
||||
#ifndef __MWERKS__
|
||||
#include "game/audio.h"
|
||||
#endif
|
||||
|
||||
s32 fn_1_198(void);
|
||||
void fn_1_3D4(void);
|
||||
|
|
@ -142,8 +146,8 @@ void fn_1_43C(void)
|
|||
HuPrcVSleep();
|
||||
}
|
||||
MGSeqKill(lbl_1_bss_10);
|
||||
lbl_1_bss_12 = 0xE10;
|
||||
lbl_1_bss_14 = MGSeqCreate(1, lbl_1_bss_12 / 60, -1, -1);
|
||||
lbl_1_bss_12 = 60 * REFRESH_RATE;
|
||||
lbl_1_bss_14 = MGSeqCreate(1, lbl_1_bss_12 / REFRESH_RATE, -1, -1);
|
||||
var_r30 = 1;
|
||||
while (TRUE) {
|
||||
if (lbl_1_bss_18[0]->unk_48 == 0) {
|
||||
|
|
@ -163,8 +167,8 @@ void fn_1_43C(void)
|
|||
}
|
||||
}
|
||||
if (lbl_1_bss_12 >= 0) {
|
||||
if (((--lbl_1_bss_12) % 60) == 0) {
|
||||
MGSeqParamSet(lbl_1_bss_14, 1, lbl_1_bss_12 / 60);
|
||||
if (((--lbl_1_bss_12) % REFRESH_RATE) == 0) {
|
||||
MGSeqParamSet(lbl_1_bss_14, 1, lbl_1_bss_12 / REFRESH_RATE);
|
||||
}
|
||||
}
|
||||
if ((fn_1_67E8(0) == 0) && (fn_1_67E8(1) == 0) && (lbl_1_bss_12 > 0)) {
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
#include "game/sprite.h"
|
||||
#include "game/wipe.h"
|
||||
#include "string.h"
|
||||
#include "version.h"
|
||||
|
||||
typedef struct UnkM426Struct {
|
||||
/* 0x00 */ s32 unk_00;
|
||||
|
|
@ -457,7 +458,7 @@ void fn_1_330(omObjData *object)
|
|||
}
|
||||
break;
|
||||
case 5:
|
||||
var_r25 = (lbl_1_bss_58 + 59) / 60;
|
||||
var_r25 = (lbl_1_bss_58 + REFRESH_RATE - 1) / REFRESH_RATE;
|
||||
if (var_r25 < 0) {
|
||||
var_r25 = 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@
|
|||
#include "game/sprite.h"
|
||||
|
||||
#include "ext_math.h"
|
||||
#include "version.h"
|
||||
|
||||
#undef ABS
|
||||
#define ABS(x) ((0 > (x)) ? -(x) : (x))
|
||||
|
|
@ -222,20 +223,20 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2)
|
|||
|
||||
espBankSet(arg0[arg1 + 1], 10);
|
||||
espBankSet(arg0[arg1 + 4], 11);
|
||||
if (36000 <= arg2) {
|
||||
arg2 = 35999;
|
||||
if (600 * REFRESH_RATE <= arg2) {
|
||||
arg2 = 600 * REFRESH_RATE - 1;
|
||||
}
|
||||
var_r30 = arg2 / 3600;
|
||||
arg2 -= var_r30 * 3600;
|
||||
var_r30 = arg2 / (60 * REFRESH_RATE);
|
||||
arg2 -= var_r30 * (60 * REFRESH_RATE);
|
||||
if (var_r30 > 9) {
|
||||
var_r30 = 9;
|
||||
}
|
||||
espBankSet(arg0[arg1], var_r30);
|
||||
var_r30 = arg2 / 60;
|
||||
arg2 -= var_r30 * 60;
|
||||
var_r30 = arg2 / REFRESH_RATE;
|
||||
arg2 -= var_r30 * REFRESH_RATE;
|
||||
espBankSet(arg0[arg1 + 2], var_r30 / 10);
|
||||
espBankSet(arg0[arg1 + 3], var_r30 % 10);
|
||||
var_r30 = 101.5f * arg2 / 60.0f;
|
||||
var_r30 = 101.5f * arg2 / REFRESH_RATE;
|
||||
espBankSet(arg0[arg1 + 5], var_r30 / 10);
|
||||
espBankSet(arg0[arg1 + 6], var_r30 % 10);
|
||||
}
|
||||
|
|
@ -2343,7 +2344,7 @@ void fn_1_AD74(float *arg0)
|
|||
float temp_f30;
|
||||
|
||||
temp_r31 = &lbl_1_data_103C[0][0];
|
||||
temp_f30 = lbl_1_bss_12C / 60;
|
||||
temp_f30 = lbl_1_bss_12C / REFRESH_RATE;
|
||||
temp_f31 = sind(90 * temp_f30) * sind(90 * temp_f30);
|
||||
for (temp_r28 = 0; temp_r28 < 4; temp_r28++, temp_r31 += 4, arg0 += 4) {
|
||||
sp8[0] = temp_r31[0] + (temp_f31 * (arg0[0] - temp_r31[0]));
|
||||
|
|
@ -2395,8 +2396,8 @@ void fn_1_B01C(void)
|
|||
temp_f31 = lbl_1_bss_98[lbl_1_bss_28].x - temp_r30->unk4.x;
|
||||
temp_f30 = lbl_1_bss_98[lbl_1_bss_28].z - temp_r30->unk4.z;
|
||||
temp_r30->unk64 = atan2d(temp_f31, temp_f30);
|
||||
omVibrate(temp_r31->unk114, 120, 6, 6);
|
||||
omVibrate(temp_r30->unk114, 120, 6, 6);
|
||||
omVibrate(temp_r31->unk114, 2 * REFRESH_RATE, 6, 6);
|
||||
omVibrate(temp_r30->unk114, 2 * REFRESH_RATE, 6, 6);
|
||||
}
|
||||
|
||||
void fn_1_B754(float *arg0, float arg1, float arg2, s32 arg3)
|
||||
|
|
@ -2438,7 +2439,7 @@ void fn_1_B8E0(omObjData *object)
|
|||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
|
||||
object->func = fn_1_E96C;
|
||||
}
|
||||
lbl_1_bss_114 += 1.0f / 60.0f;
|
||||
lbl_1_bss_114 += 1.0f / REFRESH_RATE;
|
||||
if (360.0f <= lbl_1_bss_114) {
|
||||
lbl_1_bss_114 -= 360.0f;
|
||||
}
|
||||
|
|
@ -2464,12 +2465,12 @@ void fn_1_B8E0(omObjData *object)
|
|||
|
||||
case 1002:
|
||||
lbl_1_bss_12C++;
|
||||
temp_f30 = lbl_1_bss_12C / 60;
|
||||
temp_f30 = lbl_1_bss_12C / REFRESH_RATE;
|
||||
temp_f31 = 1 - (sind(temp_f30 * 90.0f) * sind(temp_f30 * 90.0f));
|
||||
for (temp_r29 = 0; temp_r29 < 5; temp_r29++) {
|
||||
espTPLvlSet(lbl_1_bss_10[temp_r29], temp_f31);
|
||||
}
|
||||
if (60.0f <= lbl_1_bss_12C) {
|
||||
if (REFRESH_RATE <= lbl_1_bss_12C) {
|
||||
object->work[0]++;
|
||||
lbl_1_bss_12C = 0;
|
||||
for (temp_r29 = 0; temp_r29 < 5; temp_r29++) {
|
||||
|
|
@ -2480,12 +2481,12 @@ void fn_1_B8E0(omObjData *object)
|
|||
|
||||
case 1003:
|
||||
lbl_1_bss_12C++;
|
||||
temp_f30 = lbl_1_bss_12C / 60;
|
||||
temp_f30 = lbl_1_bss_12C / REFRESH_RATE;
|
||||
temp_f31 = sind(temp_f30 * 90.0f) * sind(temp_f30 * 90.0f);
|
||||
for (temp_r29 = 0; temp_r29 < 4; temp_r29++) {
|
||||
lbl_1_bss_130[temp_r29].unk4 = temp_f31;
|
||||
}
|
||||
if (60.0f <= lbl_1_bss_12C) {
|
||||
if (REFRESH_RATE <= lbl_1_bss_12C) {
|
||||
object->work[0]++;
|
||||
lbl_1_bss_12C = 0;
|
||||
lbl_1_bss_4 = HuAudFXPlay(1645);
|
||||
|
|
@ -2511,19 +2512,19 @@ void fn_1_B8E0(omObjData *object)
|
|||
}
|
||||
if (!MGSeqStatGet(lbl_1_bss_2FE)) {
|
||||
object->work[0]++;
|
||||
lbl_1_bss_304 = 3600;
|
||||
lbl_1_bss_2FC = MGSeqTimerCreate(lbl_1_bss_304 / 60);
|
||||
lbl_1_bss_304 = 60 * REFRESH_RATE;
|
||||
lbl_1_bss_2FC = MGSeqTimerCreate(lbl_1_bss_304 / REFRESH_RATE);
|
||||
lbl_1_bss_2FE = -1;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 1006:
|
||||
MGSeqParamSet(lbl_1_bss_2FC, 1, (lbl_1_bss_304 + 59) / 60);
|
||||
MGSeqParamSet(lbl_1_bss_2FC, 1, (lbl_1_bss_304 + REFRESH_RATE - 1) / REFRESH_RATE);
|
||||
lbl_1_bss_304--;
|
||||
if (lbl_1_bss_304 < 0 || lbl_1_bss_28 >= 0) {
|
||||
object->work[0] = 1007;
|
||||
lbl_1_bss_304 = 3600;
|
||||
lbl_1_bss_304 = 60 * REFRESH_RATE;
|
||||
lbl_1_bss_12C = 0;
|
||||
}
|
||||
break;
|
||||
|
|
@ -2575,7 +2576,7 @@ void fn_1_B8E0(omObjData *object)
|
|||
|
||||
case 1008:
|
||||
lbl_1_bss_12C++;
|
||||
if (60.0f < lbl_1_bss_12C) {
|
||||
if (REFRESH_RATE < lbl_1_bss_12C) {
|
||||
object->work[0]++;
|
||||
lbl_1_bss_12C = 0;
|
||||
HuAudFXPlay(1650);
|
||||
|
|
@ -2587,7 +2588,7 @@ void fn_1_B8E0(omObjData *object)
|
|||
}
|
||||
else {
|
||||
fn_1_AD74(((lbl_1_bss_28 & 0x2) == 0) ? &lbl_1_data_107C[0][0] : &lbl_1_data_10BC[0][0]);
|
||||
temp_f30 = lbl_1_bss_12C / 60.0f;
|
||||
temp_f30 = lbl_1_bss_12C / REFRESH_RATE;
|
||||
temp_f31 = sind(temp_f30 * 90.0f) * sind(temp_f30 * 90.0f);
|
||||
fn_1_A588(lbl_1_bss_28, &lbl_1_data_FE0, temp_f31);
|
||||
}
|
||||
|
|
@ -2595,13 +2596,13 @@ void fn_1_B8E0(omObjData *object)
|
|||
|
||||
case 1009:
|
||||
lbl_1_bss_12C++;
|
||||
if (120.0f < lbl_1_bss_12C) {
|
||||
if (2 * REFRESH_RATE < lbl_1_bss_12C) {
|
||||
object->work[0]++;
|
||||
lbl_1_bss_12C = 0;
|
||||
HuAudFXPlay(1651);
|
||||
}
|
||||
else {
|
||||
temp_f30 = lbl_1_bss_12C / 120.0f;
|
||||
temp_f30 = lbl_1_bss_12C / (2 * REFRESH_RATE);
|
||||
temp_f31 = sind(temp_f30 * 90.0f) * sind(temp_f30 * 90.0f);
|
||||
temp_f20 = (6.0f * frandf()) - 3.0f;
|
||||
temp_f19 = (6.0f * frandf()) - 3.0f;
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
#include "ext_math.h"
|
||||
|
||||
#include "REL/m431Dll.h"
|
||||
#include "version.h"
|
||||
|
||||
typedef struct bss_5C_struct {
|
||||
s16 unk0[6];
|
||||
|
|
@ -167,8 +168,8 @@ u8 fn_1_57C(void)
|
|||
temp_r31 = &lbl_1_data_4C[0];
|
||||
temp_r30 = 0;
|
||||
lbl_1_bss_8++;
|
||||
temp_f30 = lbl_1_bss_8 / 90.0f;
|
||||
if (lbl_1_bss_8 > 90) {
|
||||
temp_f30 = lbl_1_bss_8 / (1.5f * REFRESH_RATE);
|
||||
if (lbl_1_bss_8 > (s32)(1.5f * REFRESH_RATE)) {
|
||||
lbl_1_bss_8 = 0;
|
||||
temp_f30 = 1;
|
||||
temp_r30 = 1;
|
||||
|
|
@ -210,9 +211,9 @@ s32 fn_1_7B0(void)
|
|||
temp_r31 = &lbl_1_data_4C[0];
|
||||
temp_r29 = 0;
|
||||
lbl_1_bss_8++;
|
||||
temp_f30 = lbl_1_bss_8 / 120.0f;
|
||||
if (lbl_1_bss_8 > 120) {
|
||||
lbl_1_bss_8 = 120;
|
||||
temp_f30 = lbl_1_bss_8 / (2.0f * REFRESH_RATE);
|
||||
if (lbl_1_bss_8 > (2 * REFRESH_RATE)) {
|
||||
lbl_1_bss_8 = 2 * REFRESH_RATE;
|
||||
temp_f30 = 1;
|
||||
temp_r29 = 1;
|
||||
}
|
||||
|
|
@ -258,7 +259,7 @@ void fn_1_A44(omObjData *object)
|
|||
temp_r26 = object->data;
|
||||
temp_r26->unk0 = 4;
|
||||
temp_r26->unk6[0] = 0;
|
||||
temp_r26->unkA = 900;
|
||||
temp_r26->unkA = 15 * REFRESH_RATE;
|
||||
temp_r26->unk10 = -1;
|
||||
temp_r27 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M431, 0x1A), MEMORY_DEFAULT_NUM));
|
||||
object->model[0] = fn_1_6C74(temp_r27, 1024, 25, 64, 64);
|
||||
|
|
@ -365,7 +366,7 @@ void fn_1_10A4(omObjData *object)
|
|||
|
||||
case 12:
|
||||
if (temp_r31->unk10 != -1) {
|
||||
temp_r28 = (temp_r31->unkA + 59) / 60;
|
||||
temp_r28 = (temp_r31->unkA + REFRESH_RATE - 1) / REFRESH_RATE;
|
||||
if (temp_r28 < 0) {
|
||||
temp_r28 = 0;
|
||||
}
|
||||
|
|
@ -426,7 +427,7 @@ void fn_1_10A4(omObjData *object)
|
|||
break;
|
||||
|
||||
case 20:
|
||||
if (++lbl_1_bss_C > 210.0f) {
|
||||
if (++lbl_1_bss_C > (3.5f * REFRESH_RATE)) {
|
||||
lbl_1_bss_0 = 1;
|
||||
}
|
||||
break;
|
||||
|
|
@ -442,11 +443,11 @@ void fn_1_140C(omObjData *object)
|
|||
return;
|
||||
}
|
||||
temp_r31->unk12++;
|
||||
temp_f31 = temp_r31->unk12 / 18.0f;
|
||||
if (temp_r31->unk12 > 18.0f) {
|
||||
temp_f31 = temp_r31->unk12 / (3.0f / 10 * REFRESH_RATE);
|
||||
if (temp_r31->unk12 > (3.0f / 10 * REFRESH_RATE)) {
|
||||
temp_r31->unk12 = 0;
|
||||
temp_f31 = 1.0f;
|
||||
temp_r31->unk12 = 18;
|
||||
temp_r31->unk12 = 0.3f * REFRESH_RATE;
|
||||
temp_r31->unk0 &= ~0x300;
|
||||
}
|
||||
temp_f30 = 1.0 - cosd(90.0f * temp_f31);
|
||||
|
|
@ -848,9 +849,9 @@ void fn_1_2C94(Work2110 *arg0)
|
|||
HuAudFXPlay(1670);
|
||||
}
|
||||
lbl_1_bss_10++;
|
||||
temp_f31 = lbl_1_bss_10 / 60.0f;
|
||||
temp_f31 = lbl_1_bss_10 / (1.0f * REFRESH_RATE);
|
||||
if (temp_f31 >= 1.0f) {
|
||||
temp_r26->unkA = 900;
|
||||
temp_r26->unkA = 15 * REFRESH_RATE;
|
||||
lbl_1_bss_10 = 0;
|
||||
temp_f31 = 1;
|
||||
lbl_1_data_162++;
|
||||
|
|
@ -870,7 +871,7 @@ void fn_1_2C94(Work2110 *arg0)
|
|||
HuAudFXPlay(1663);
|
||||
}
|
||||
lbl_1_bss_10++;
|
||||
temp_f31 = lbl_1_bss_10 / 60.0f;
|
||||
temp_f31 = lbl_1_bss_10 / (1.0f * REFRESH_RATE);
|
||||
if (temp_f31 >= 1.0f) {
|
||||
lbl_1_bss_10 = 0;
|
||||
temp_f31 = 1.0f;
|
||||
|
|
@ -912,7 +913,7 @@ void fn_1_30E0(Work2110 *arg0)
|
|||
switch (lbl_1_data_162) {
|
||||
case 0:
|
||||
lbl_1_bss_10++;
|
||||
if (lbl_1_bss_10 > 60) {
|
||||
if (lbl_1_bss_10 > REFRESH_RATE) {
|
||||
lbl_1_bss_10 = 0;
|
||||
lbl_1_data_162++;
|
||||
}
|
||||
|
|
@ -945,7 +946,7 @@ void fn_1_30E0(Work2110 *arg0)
|
|||
temp_r31 = &arg0[0].unk4[temp_r28];
|
||||
switch (temp_r22 = temp_r31->unk0 & 0x1C) {
|
||||
case 4:
|
||||
if (sp8[temp_r27] > 15) {
|
||||
if (sp8[temp_r27] > (VERSION_NTSC ? 15 : 12)) {
|
||||
sp8[temp_r27] = 0;
|
||||
temp_r25 = 1;
|
||||
if (temp_r29 - 1 > -6) {
|
||||
|
|
@ -969,7 +970,7 @@ void fn_1_30E0(Work2110 *arg0)
|
|||
temp_f31 = 50.0f;
|
||||
temp_r31->unk0 &= ~0x1C;
|
||||
if (temp_r22 == 8) {
|
||||
temp_r31->unk20 = 6;
|
||||
temp_r31->unk20 = 6.0f;
|
||||
temp_r31->unk0 |= 12;
|
||||
HuAudFXPlay(1664);
|
||||
}
|
||||
|
|
@ -1020,7 +1021,7 @@ void fn_1_3540(Work2110 *arg0)
|
|||
temp_f31 += temp_r29 * 36.0f;
|
||||
lbl_1_bss_18[0] = lbl_1_bss_20[0] + temp_f31;
|
||||
lbl_1_bss_18[1] = lbl_1_bss_20[1] - temp_f31;
|
||||
lbl_1_bss_14 = (0.01f * temp_f31) * 60;
|
||||
lbl_1_bss_14 = (0.01f * temp_f31) * REFRESH_RATE;
|
||||
lbl_1_data_162++;
|
||||
lbl_1_data_164 = HuAudFXPlay(1665);
|
||||
break;
|
||||
|
|
@ -1119,7 +1120,7 @@ void fn_1_3D7C(Work2110 *arg0)
|
|||
s16 temp_r27;
|
||||
switch (lbl_1_data_162) {
|
||||
case 0:
|
||||
if (++lbl_1_bss_10 > 60) {
|
||||
if (++lbl_1_bss_10 > REFRESH_RATE) {
|
||||
lbl_1_bss_10 = 0;
|
||||
lbl_1_data_162++;
|
||||
}
|
||||
|
|
@ -1151,7 +1152,7 @@ void fn_1_3D7C(Work2110 *arg0)
|
|||
break;
|
||||
|
||||
case 2:
|
||||
if (++lbl_1_bss_10 > 60) {
|
||||
if (++lbl_1_bss_10 > REFRESH_RATE) {
|
||||
lbl_1_bss_10 = lbl_1_data_162 = 0;
|
||||
fn_1_2050(224, 32);
|
||||
}
|
||||
|
|
@ -1235,7 +1236,7 @@ void fn_1_4028(Work2110 *arg0)
|
|||
break;
|
||||
|
||||
case 2:
|
||||
if (++lbl_1_bss_10 > 90.0f) {
|
||||
if (++lbl_1_bss_10 > (1.5f * REFRESH_RATE)) {
|
||||
lbl_1_bss_10 = 0;
|
||||
lbl_1_data_162 = 1;
|
||||
fn_1_2050(224, 128);
|
||||
|
|
@ -1250,7 +1251,7 @@ void fn_1_4028(Work2110 *arg0)
|
|||
}
|
||||
if (temp_r31->unk0 & 0x2) {
|
||||
temp_r31->unk18++;
|
||||
temp_f31 = temp_r31->unk18 / 30.0f;
|
||||
temp_f31 = temp_r31->unk18 / (0.5f * REFRESH_RATE);
|
||||
if (temp_f31 >= 1.0f) {
|
||||
temp_r31->unk20 -= 1.0f;
|
||||
if (temp_r31->unk20 < 0.4f) {
|
||||
|
|
@ -1264,16 +1265,16 @@ void fn_1_4028(Work2110 *arg0)
|
|||
}
|
||||
else {
|
||||
if (!temp_r31->unk20) {
|
||||
if (++temp_r31->unk18 > 30.0f) {
|
||||
if (++temp_r31->unk18 > (0.5f * REFRESH_RATE)) {
|
||||
temp_r31->unk20 = 1;
|
||||
temp_r31->unk18 = 0;
|
||||
}
|
||||
}
|
||||
else {
|
||||
temp_r31->unk18++;
|
||||
temp_f31 = temp_r31->unk18 / 54.0f;
|
||||
temp_f31 = temp_r31->unk18 / (VERSION_NTSC ? 54.0f : 45.0f);
|
||||
if (temp_f31 >= 1.0f) {
|
||||
temp_r31->unk18 = 54;
|
||||
temp_r31->unk18 = VERSION_NTSC ? 54 : 45;
|
||||
temp_f31 = 1.0f;
|
||||
}
|
||||
temp_f31 = cosd(temp_f31 * 90.0f);
|
||||
|
|
@ -1594,7 +1595,7 @@ void fn_1_5708(void)
|
|||
Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[5], 0, 8, HU3D_MOTATTR_LOOP);
|
||||
}
|
||||
else {
|
||||
if (temp_r29->unkA < 180) {
|
||||
if (temp_r29->unkA < (3 * REFRESH_RATE)) {
|
||||
temp_r31->unk12 = 0;
|
||||
temp_r31->unk10 = 5;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
|
||||
#include "REL/m431Dll.h"
|
||||
#include "ext_math.h"
|
||||
#include "version.h"
|
||||
|
||||
typedef struct bss_struct_62C {
|
||||
u8 unk0;
|
||||
|
|
@ -319,7 +320,7 @@ void fn_1_8790(omObjData *object)
|
|||
}
|
||||
}
|
||||
if (temp_r31->unk7C && temp_r28 == temp_r31->unk6E - 1) {
|
||||
if (++temp_r31->unk7C > 120) {
|
||||
if (++temp_r31->unk7C > 2 * REFRESH_RATE) {
|
||||
temp_r31->unk7C = 0;
|
||||
}
|
||||
if ((temp_r31->unk14->unk0 & 0xC0) == 0x40) {
|
||||
|
|
@ -704,6 +705,12 @@ void fn_1_98D4(omObjData *object)
|
|||
Hu3DModelRotSet(object->model[0], 0, temp_r31->unk30, 0);
|
||||
}
|
||||
|
||||
#if VERSION_NTSC
|
||||
#define fn_1_9A04_CHECK (temp_r29->unk_0C == -1 && temp_r29->unk_64 == 14.0f)
|
||||
#else
|
||||
#define fn_1_9A04_CHECK (temp_r29->unk_0C == -1 && temp_r29->unk_64 >= 14.0f && temp_r31->unk3C_pal == 0)
|
||||
#endif
|
||||
|
||||
void fn_1_9A04(omObjData *object)
|
||||
{
|
||||
Bss61CWork *temp_r31;
|
||||
|
|
@ -725,12 +732,18 @@ void fn_1_9A04(omObjData *object)
|
|||
if (fn_1_4CDC(temp_r31->unkA, temp_r31->unk40)) {
|
||||
fn_1_B0E8(object, 3, 4);
|
||||
fn_1_B130(object, 0, 8);
|
||||
#if VERSION_PAL
|
||||
temp_r31->unk3C_pal = 0;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (temp_r31->unk38 == 3) {
|
||||
if (temp_r29->unk_0C == -1 && temp_r29->unk_64 == 14.0f) {
|
||||
if (fn_1_9A04_CHECK) {
|
||||
#if VERSION_PAL
|
||||
temp_r31->unk3C_pal = 1;
|
||||
#endif
|
||||
temp_r31->unk5C = fn_1_4B14(temp_r31->unkA, temp_r31->unk40, &temp_r31->unk7E);
|
||||
if (temp_r31->unk5C != -1) {
|
||||
if (temp_r31->unkA == 0) {
|
||||
|
|
@ -742,18 +755,18 @@ void fn_1_9A04(omObjData *object)
|
|||
if (temp_r31->unk7E != 0) {
|
||||
omVibrate(temp_r31->unk4, 12, 6, 6);
|
||||
if (temp_r31->unkA == 0) {
|
||||
fn_1_B494(1666, 30);
|
||||
fn_1_B494(1666, 0.5f * REFRESH_RATE);
|
||||
}
|
||||
else {
|
||||
fn_1_B494(1671, 30);
|
||||
fn_1_B494(1671, 0.5f * REFRESH_RATE);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (temp_r31->unkA == 0) {
|
||||
fn_1_B494(1667, 30);
|
||||
fn_1_B494(1667, 0.5f * REFRESH_RATE);
|
||||
}
|
||||
else {
|
||||
fn_1_B494(1672, 30);
|
||||
fn_1_B494(1672, 0.5f * REFRESH_RATE);
|
||||
}
|
||||
}
|
||||
temp_r31->unk70++;
|
||||
|
|
@ -891,6 +904,9 @@ void fn_1_A0F8(omObjData *object)
|
|||
if (fn_1_4CDC(temp_r31->unkA, temp_r31->unk40) && fn_1_2090(28) == 12 && fn_1_2090(224) == 0 && fn_1_4724() < 2) {
|
||||
fn_1_B0E8(object, 3, 4);
|
||||
fn_1_B130(object, 0, 8);
|
||||
#if VERSION_PAL
|
||||
temp_r31->unk3C_pal = 0;
|
||||
#endif
|
||||
temp_r27 = 1;
|
||||
}
|
||||
if (temp_r27 == 0) {
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
#include "ext_math.h"
|
||||
|
||||
#include "string.h"
|
||||
#include "version.h"
|
||||
|
||||
#ifndef __MWERKS__
|
||||
#include "game/audio.h"
|
||||
|
|
@ -76,6 +77,12 @@ float lbl_1_bss_568;
|
|||
s32 lbl_1_bss_528[16];
|
||||
UnkBss428Struct lbl_1_bss_428[32];
|
||||
|
||||
#if VERSION_NTSC
|
||||
#define _1606_BY_REFRESH_RATE 26.766666f
|
||||
#else
|
||||
#define _1606_BY_REFRESH_RATE 32.120003f
|
||||
#endif
|
||||
|
||||
void fn_1_0(void)
|
||||
{
|
||||
lbl_1_bss_5D0.unk04 = NULL;
|
||||
|
|
@ -234,20 +241,20 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2)
|
|||
|
||||
espBankSet(arg0[arg1 + 1], 10);
|
||||
espBankSet(arg0[arg1 + 4], 11);
|
||||
if (36000 <= arg2) {
|
||||
arg2 = 35999;
|
||||
if (600 * REFRESH_RATE <= arg2) {
|
||||
arg2 = 600 * REFRESH_RATE - 1;
|
||||
}
|
||||
var_r30 = arg2 / 3600;
|
||||
arg2 -= var_r30 * 3600;
|
||||
var_r30 = arg2 / (60 * REFRESH_RATE);
|
||||
arg2 -= var_r30 * (60 * REFRESH_RATE);
|
||||
if (var_r30 > 9) {
|
||||
var_r30 = 9;
|
||||
}
|
||||
espBankSet(arg0[arg1], var_r30);
|
||||
var_r30 = arg2 / 60;
|
||||
arg2 -= var_r30 * 60;
|
||||
var_r30 = arg2 / REFRESH_RATE;
|
||||
arg2 -= var_r30 * REFRESH_RATE;
|
||||
espBankSet(arg0[arg1 + 2], var_r30 / 10);
|
||||
espBankSet(arg0[arg1 + 3], var_r30 % 10);
|
||||
var_r30 = 101.5f * arg2 / 60.0f;
|
||||
var_r30 = 101.5f * arg2 / REFRESH_RATE;
|
||||
espBankSet(arg0[arg1 + 5], var_r30 / 10);
|
||||
espBankSet(arg0[arg1 + 6], var_r30 % 10);
|
||||
}
|
||||
|
|
@ -738,7 +745,7 @@ void fn_1_2E34(WorkPlayerOld *player)
|
|||
player->unk_3C |= 0x100;
|
||||
player->unk_A4 = 0;
|
||||
if (!(player2->unk_3C & 0x100)) {
|
||||
player->unk_84.y = 26.766666f;
|
||||
player->unk_84.y = _1606_BY_REFRESH_RATE;
|
||||
}
|
||||
}
|
||||
if (state == 3) {
|
||||
|
|
@ -842,7 +849,7 @@ void fn_1_3CE0(WorkPlayerOld *player, s32 *state, u32 *motAttr)
|
|||
}
|
||||
|
||||
if (player->unk_14[3] >= 0 && (player->unk_28 & 0x100)) {
|
||||
fn_1_2BD0(player, 26.766666f, 1);
|
||||
fn_1_2BD0(player, _1606_BY_REFRESH_RATE, 1);
|
||||
*motAttr = HU3D_MOTATTR_NONE;
|
||||
*state = 3;
|
||||
}
|
||||
|
|
@ -857,14 +864,14 @@ void fn_1_3DB8(WorkPlayerOld *player, s32 *state, u32 *motAttr)
|
|||
player->unk_A4 = 0;
|
||||
}
|
||||
else {
|
||||
player->unk_84.y += 3.65f;
|
||||
player->unk_84.y += 219.0f / REFRESH_RATE;
|
||||
}
|
||||
}
|
||||
else {
|
||||
player->unk_A4 = 0;
|
||||
}
|
||||
}
|
||||
player->unk_84.y += -2.4333334f;
|
||||
player->unk_84.y += -146.0f / REFRESH_RATE;
|
||||
if (player->unk_14[5] >= 0 && (player->unk_28 & 0x140)) {
|
||||
player->unk_38 = 3;
|
||||
player->unk_84.y = 0;
|
||||
|
|
@ -1317,7 +1324,7 @@ void fn_1_52B8(UnkM432DllBss0SubStruct *arg0, Vec *arg1)
|
|||
void fn_1_5364(s32 arg0, omObjData *object)
|
||||
{
|
||||
if (lbl_1_bss_0[arg0].unk_1D8 >= 0) {
|
||||
lbl_1_bss_0[arg0].unk_1DC -= 0.016666668f;
|
||||
lbl_1_bss_0[arg0].unk_1DC -= 1.0f / REFRESH_RATE;
|
||||
if (0.0f >= lbl_1_bss_0[arg0].unk_1DC) {
|
||||
HuAudFXStop(lbl_1_bss_0[arg0].unk_1D8);
|
||||
lbl_1_bss_0[arg0].unk_1D8 = -1;
|
||||
|
|
@ -2241,7 +2248,7 @@ void fn_1_B234(void)
|
|||
u32 var_r28;
|
||||
|
||||
if (HuPadBtn[0] & 2) {
|
||||
lbl_1_bss_57C = 0x4650;
|
||||
lbl_1_bss_57C = 300 * REFRESH_RATE;
|
||||
}
|
||||
print8(0x18, 0x20, 1.5f, "COUNT:%d MODE:%d MES:%d", lbl_1_bss_580, lbl_1_bss_41C->work[0], lbl_1_bss_576);
|
||||
print8(0x18, 0x30, 1.5f, "%f %f %f %f", lbl_1_bss_0[0].unk_64, lbl_1_bss_0[0].unk_68, lbl_1_bss_0[0].unk_6C, lbl_1_bss_0[0].unk_28.z);
|
||||
|
|
@ -2487,7 +2494,7 @@ void fn_1_C724(UnkM432DllStruct *var_r31, omObjData *var_r25, omObjData *var_r24
|
|||
var_r30 = &lbl_1_bss_0[var_r31->unk_184 >> 1];
|
||||
fn_1_BF9C(var_r31);
|
||||
if (fn_1_BF08(var_r31) == 0x7D4) {
|
||||
var_r30->unk_1D4 += 1.0f - (2.0f * (var_r31->unk_14C / 60.0f));
|
||||
var_r30->unk_1D4 += 1.0f - (2.0f * (var_r31->unk_14C / REFRESH_RATE));
|
||||
if (0.0f > var_r30->unk_1D4) {
|
||||
var_r30->unk_1D4 = 0.0f;
|
||||
}
|
||||
|
|
@ -2502,7 +2509,7 @@ void fn_1_C724(UnkM432DllStruct *var_r31, omObjData *var_r25, omObjData *var_r24
|
|||
}
|
||||
else {
|
||||
var_r31->unk_14C += 1.0f;
|
||||
var_r30->unk_1D4 -= 0.016666668f;
|
||||
var_r30->unk_1D4 -= 1.0f / REFRESH_RATE;
|
||||
if (0.0f > var_r30->unk_1D4) {
|
||||
var_r30->unk_1D4 = 0.0f;
|
||||
}
|
||||
|
|
@ -2538,7 +2545,7 @@ void fn_1_D0E0(UnkM432DllStruct *arg0, omObjData *arg1, omObjData *arg2)
|
|||
{
|
||||
fn_1_BF9C(arg0);
|
||||
if (fn_1_BF08(arg0) == 0x7D5) {
|
||||
lbl_1_bss_0[arg0->unk_184 >> 1].unk_1DC += 1.0f - (2.0f * (arg0->unk_14C / 60.0f));
|
||||
lbl_1_bss_0[arg0->unk_184 >> 1].unk_1DC += 1.0f - (2.0f * (arg0->unk_14C / REFRESH_RATE));
|
||||
if (0.0f > lbl_1_bss_0[arg0->unk_184 >> 1].unk_1DC) {
|
||||
lbl_1_bss_0[arg0->unk_184 >> 1].unk_1DC = 0.0f;
|
||||
}
|
||||
|
|
@ -2705,7 +2712,7 @@ void fn_1_E9E4(UnkM432DllStruct *arg0)
|
|||
var_f28 = 100.0f;
|
||||
}
|
||||
if ((arg0->unk_C8->unk_2C.y + var_f28) > arg0->unk_00.unk_6C.y) {
|
||||
arg0->unk_00.unk_84.y = 26.766666f;
|
||||
arg0->unk_00.unk_84.y = _1606_BY_REFRESH_RATE;
|
||||
arg0->unk_00.unk_A4 = 1.0f;
|
||||
return;
|
||||
}
|
||||
|
|
@ -2938,7 +2945,7 @@ void fn_1_10250(omObjData *object)
|
|||
var_r31->unk_00.unk_2C = 0x100;
|
||||
fn_1_40C0(&var_r31->unk_00);
|
||||
if (200.0f > var_r31->unk_00.unk_6C.y) {
|
||||
var_r31->unk_00.unk_84.y = 26.766666f;
|
||||
var_r31->unk_00.unk_84.y = _1606_BY_REFRESH_RATE;
|
||||
var_r31->unk_00.unk_A4 = 1.0f;
|
||||
}
|
||||
else {
|
||||
|
|
@ -3296,6 +3303,7 @@ void fn_1_128C8(omObjData *object)
|
|||
lbl_1_bss_0[var_r31].unk_1F0[1] = 0.0f;
|
||||
}
|
||||
}
|
||||
#if VERSION_NTSC
|
||||
if (lbl_1_bss_41C->work[0] >= 0x3EC) {
|
||||
for (var_r31 = 0; var_r31 < 2; var_r31++) {
|
||||
if (lbl_1_bss_0[var_r31].unk_1CC >= 0) {
|
||||
|
|
@ -3312,6 +3320,7 @@ void fn_1_128C8(omObjData *object)
|
|||
lbl_1_bss_0[var_r31].unk_1D8 = -1;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -3416,16 +3425,16 @@ void fn_1_131A8(omObjData *var_r28)
|
|||
case 0x3EB:
|
||||
lbl_1_bss_57C++;
|
||||
if (lbl_1_bss_574 >= 0) {
|
||||
MGSeqParamSet(lbl_1_bss_574, 1, (0x468B - lbl_1_bss_57C) / 60);
|
||||
MGSeqParamSet(lbl_1_bss_574, 1, (300 * REFRESH_RATE + REFRESH_RATE - 1 - lbl_1_bss_57C) / REFRESH_RATE);
|
||||
}
|
||||
else if (lbl_1_bss_57C > 0x3F48) {
|
||||
lbl_1_bss_574 = MGSeqCreate(1, (0x468B - lbl_1_bss_57C) / 60, -1, -1);
|
||||
else if (lbl_1_bss_57C > 270 * REFRESH_RATE) {
|
||||
lbl_1_bss_574 = MGSeqCreate(1, (300 * REFRESH_RATE + REFRESH_RATE - 1 - lbl_1_bss_57C) / REFRESH_RATE, -1, -1);
|
||||
MGSeqPosSet(lbl_1_bss_574, 288.0f, 400.0f);
|
||||
}
|
||||
fn_1_580(lbl_1_bss_528, 0, lbl_1_bss_57C);
|
||||
|
||||
fn_1_12EA8();
|
||||
if ((lbl_1_bss_57C >= 0x4650) || (lbl_1_bss_3FC >= 0)) {
|
||||
if ((lbl_1_bss_57C >= 300 * REFRESH_RATE) || (lbl_1_bss_3FC >= 0)) {
|
||||
var_r28->work[0] = 0x3EC;
|
||||
lbl_1_bss_3F0 = 0.0f;
|
||||
}
|
||||
|
|
@ -3453,7 +3462,7 @@ void fn_1_131A8(omObjData *var_r28)
|
|||
lbl_1_bss_3F0 += 1.0f;
|
||||
if ((var_r17 >= 4) && (60.0f <= lbl_1_bss_3F0) && (MGSeqStatGet(lbl_1_bss_576) == 0)) {
|
||||
var_r28->work[0] = 0x3EE;
|
||||
if ((lbl_1_bss_3FC >= 0) && (lbl_1_bss_57C < 0x1518)) {
|
||||
if ((lbl_1_bss_3FC >= 0) && (lbl_1_bss_57C < (VERSION_NTSC ? 5400 : 5250))) {
|
||||
if (GWPlayerCfg[fn_1_51A8(lbl_1_bss_3FC)->unk_188].iscom != 0) {
|
||||
if (GWPlayerCfg[fn_1_51A8(lbl_1_bss_3FC + 1)->unk_188].iscom == 0) {
|
||||
goto block_81;
|
||||
|
|
@ -3535,17 +3544,17 @@ void fn_1_131A8(omObjData *var_r28)
|
|||
case 0x3F0:
|
||||
var_r29 = &lbl_1_bss_0[lbl_1_bss_3FC >> 1];
|
||||
lbl_1_bss_3F0 += 1.0f;
|
||||
var_f31 = lbl_1_bss_3F0 / 180.0f;
|
||||
var_f31 = lbl_1_bss_3F0 / (3.0f * REFRESH_RATE);
|
||||
var_f30 = sind((90.0f * var_f31)) * sind((90.0f * var_f31));
|
||||
var_r29->unk_28.y = var_r29->unk_4C.y + (var_f30 * (var_r29->unk_58.y - var_r29->unk_4C.y));
|
||||
var_r29->unk_1C.y = var_r29->unk_34.y + (var_f30 * (var_r29->unk_40.y - var_r29->unk_34.y));
|
||||
if (90.0f < lbl_1_bss_3F0) {
|
||||
var_f31 = (lbl_1_bss_3F0 - 90.0f) / 90.0f;
|
||||
if ((1.5f * REFRESH_RATE) < lbl_1_bss_3F0) {
|
||||
var_f31 = (lbl_1_bss_3F0 - 1.5f * REFRESH_RATE) / (1.5f * REFRESH_RATE);
|
||||
var_f30 = sind((90.0f * var_f31)) * sind((90.0f * var_f31));
|
||||
var_r29->unk_1C.z = var_r29->unk_34.z + (var_f30 * (var_r29->unk_40.z - var_r29->unk_34.z));
|
||||
}
|
||||
Hu3DCameraPosSetV(lbl_1_data_A0[lbl_1_bss_3FC >> 1], &var_r29->unk_1C, &lbl_1_data_C8, &var_r29->unk_28);
|
||||
if (180.0f <= lbl_1_bss_3F0) {
|
||||
if ((3 * REFRESH_RATE) <= lbl_1_bss_3F0) {
|
||||
var_r28->work[0]++;
|
||||
lbl_1_bss_3F0 = 0.0f;
|
||||
}
|
||||
|
|
@ -3654,7 +3663,7 @@ void ObjectSetup(void)
|
|||
lbl_1_bss_578 = GWMGRecordGet(3);
|
||||
lbl_1_bss_568 = -1.0f;
|
||||
if (lbl_1_bss_578 == 0) {
|
||||
lbl_1_bss_578 = 0x1C20;
|
||||
lbl_1_bss_578 = 120 * REFRESH_RATE;
|
||||
}
|
||||
fn_1_414();
|
||||
for (var_r30 = 0; var_r30 < 2; var_r30++) {
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
#include "game/gamework_data.h"
|
||||
#include "game/minigame_seq.h"
|
||||
#include "math.h"
|
||||
#include "version.h"
|
||||
|
||||
|
||||
typedef struct bss_7480_struct {
|
||||
|
|
@ -246,16 +247,16 @@ void fn_1_6DBC(omObjData *object)
|
|||
temp_r31->unk34.y += (75.0f - temp_r31->unk34.y) * 0.02f;
|
||||
}
|
||||
temp_r31->unk34.x += (temp_r31->unk34.y - temp_r31->unk34.x) * 0.2f;
|
||||
temp_r31->unk1C.x += sind(temp_r31->unk34.z) * ((1.0f / 60.0f) * temp_r31->unk34.x);
|
||||
temp_r31->unk1C.z += cosd(temp_r31->unk34.z) * ((1.0f / 60.0f) * temp_r31->unk34.x);
|
||||
temp_r31->unk40.y += (1.0f / 60.0f) * temp_r31->unk34.x;
|
||||
temp_r31->unk1C.x += sind(temp_r31->unk34.z) * ((1.0f / REFRESH_RATE) * temp_r31->unk34.x);
|
||||
temp_r31->unk1C.z += cosd(temp_r31->unk34.z) * ((1.0f / REFRESH_RATE) * temp_r31->unk34.x);
|
||||
temp_r31->unk40.y += (1.0f / REFRESH_RATE) * temp_r31->unk34.x;
|
||||
temp_r31->unk18 = fn_1_8254(temp_r31->unk18, &temp_r31->unk1C);
|
||||
Hu3DModelPosSetV(temp_r31->unk2, &temp_r31->unk1C);
|
||||
Hu3DModelRotSet(temp_r31->unk2, 0, temp_r31->unk34.z, 0);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
temp_r31->unk34.z += 3.0000002f;
|
||||
temp_r31->unk34.z += 1.0f / REFRESH_RATE * 180.0f;
|
||||
Hu3DModelPosSetV(temp_r31->unk2, &temp_r31->unk1C);
|
||||
Hu3DModelRotSet(temp_r31->unk2, 0, temp_r31->unk34.z, 0);
|
||||
if (fn_1_1D54() == 4) {
|
||||
|
|
@ -274,9 +275,9 @@ void fn_1_6DBC(omObjData *object)
|
|||
}
|
||||
VECSubtract(&sp8, &temp_r31->unk1C, &sp8);
|
||||
temp_r31->unk40.x = temp_r31->unk34.z = atan2d(sp8.x, sp8.z);
|
||||
temp_r31->unk28.x = (1.0f / 60.0f) * sp8.x;
|
||||
temp_r31->unk28.y = 6.666667f;
|
||||
temp_r31->unk28.z = (1.0f / 60.0f) * sp8.z;
|
||||
temp_r31->unk28.x = (1.0f / REFRESH_RATE) * sp8.x;
|
||||
temp_r31->unk28.y = VERSION_NTSC ? 6.666667f : 8.0f;
|
||||
temp_r31->unk28.z = (1.0f / REFRESH_RATE) * sp8.z;
|
||||
temp_r31->unk8++;
|
||||
HuAudFXPlay(1734);
|
||||
}
|
||||
|
|
@ -284,7 +285,7 @@ void fn_1_6DBC(omObjData *object)
|
|||
if (temp_r31->unk1C.y <= -15.000001f) {
|
||||
temp_r29 = 1;
|
||||
}
|
||||
temp_r31->unk28.y += -0.27222225f;
|
||||
temp_r31->unk28.y += VERSION_NTSC ? -0.27222225f : -0.392f;
|
||||
VECAdd(&temp_r31->unk1C, &temp_r31->unk28, &temp_r31->unk1C);
|
||||
if (!temp_r29 && temp_r31->unk1C.y <= -15.000001f) {
|
||||
fn_1_43AC(&temp_r31->unk1C);
|
||||
|
|
@ -345,9 +346,9 @@ void fn_1_6DBC(omObjData *object)
|
|||
temp_r31->unk34.z = fn_1_6690(temp_r31->unk34.z, temp_r31->unk40.x, 0.07f);
|
||||
temp_r31->unk34.y += (50.0f - temp_r31->unk34.y) * 0.02f;
|
||||
temp_r31->unk34.x += (temp_r31->unk34.y - temp_r31->unk34.x) * 0.2f;
|
||||
temp_r31->unk1C.x += sind(temp_r31->unk34.z) * ((1.0f / 60.0f) * temp_r31->unk34.x);
|
||||
temp_r31->unk1C.z += cosd(temp_r31->unk34.z) * ((1.0f / 60.0f) * temp_r31->unk34.x);
|
||||
temp_r31->unk40.y += (1.0f / 60.0f) * temp_r31->unk34.x;
|
||||
temp_r31->unk1C.x += sind(temp_r31->unk34.z) * ((1.0f / REFRESH_RATE) * temp_r31->unk34.x);
|
||||
temp_r31->unk1C.z += cosd(temp_r31->unk34.z) * ((1.0f / REFRESH_RATE) * temp_r31->unk34.x);
|
||||
temp_r31->unk40.y += (1.0f / REFRESH_RATE) * temp_r31->unk34.x;
|
||||
Hu3DModelPosSetV(temp_r31->unk2, &temp_r31->unk1C);
|
||||
Hu3DModelRotSet(temp_r31->unk2, 0, temp_r31->unk34.z, 0);
|
||||
|
||||
|
|
@ -363,16 +364,16 @@ void fn_1_6DBC(omObjData *object)
|
|||
}
|
||||
VECSubtract(&sp8, &temp_r31->unk1C, &sp8);
|
||||
temp_r31->unk40.x = temp_r31->unk34.z = atan2d(sp8.x, sp8.z);
|
||||
temp_r31->unk28.x = (1.0f / 60.0f) * sp8.x;
|
||||
temp_r31->unk28.y = 6.666667f;
|
||||
temp_r31->unk28.z = (1.0f / 60.0f) * sp8.z;
|
||||
temp_r31->unk28.x = (1.0f / REFRESH_RATE) * sp8.x;
|
||||
temp_r31->unk28.y = VERSION_NTSC ? 6.666667f : 8.0f;
|
||||
temp_r31->unk28.z = (1.0f / REFRESH_RATE) * sp8.z;
|
||||
temp_r31->unk8++;
|
||||
}
|
||||
temp_r29 = temp_r25 = 0;
|
||||
if (temp_r31->unk1C.y <= -15.000001f) {
|
||||
temp_r29 = 1;
|
||||
}
|
||||
temp_r31->unk28.y += -0.27222225f;
|
||||
temp_r31->unk28.y += VERSION_NTSC ? -0.27222225f : -0.392f;
|
||||
VECAdd(&temp_r31->unk1C, &temp_r31->unk28, &temp_r31->unk1C);
|
||||
if (temp_r31->unk1C.y <= -15.000001f) {
|
||||
temp_r25 = 1;
|
||||
|
|
@ -689,8 +690,8 @@ void fn_1_8C14(s32 arg0, Vec *arg1, float arg2)
|
|||
temp_r31 = lbl_1_bss_7480;
|
||||
for (temp_r30 = 0; temp_r30 < 32; temp_r30++, temp_r31++) {
|
||||
if (!temp_r31->unk0) {
|
||||
temp_r31->unk4 = 30;
|
||||
temp_r31->unk0 = (60.0f * (3.0f * arg2)) + 150.0f;
|
||||
temp_r31->unk4 = 0.5 * REFRESH_RATE;
|
||||
temp_r31->unk0 = (REFRESH_RATE * (3.0f * arg2)) + 2.5f * REFRESH_RATE;
|
||||
temp_r31->unk8 = arg0;
|
||||
temp_r31->unk14 = *arg1;
|
||||
temp_r31->unkC = 0;
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
#include "game/gamework_data.h"
|
||||
#include "game/minigame_seq.h"
|
||||
#include "math.h"
|
||||
#include "version.h"
|
||||
|
||||
typedef struct camera_view {
|
||||
float zoom;
|
||||
|
|
@ -127,9 +128,9 @@ void fn_1_558(omObjData *object)
|
|||
switch (fn_1_1D54()) {
|
||||
case 0:
|
||||
lbl_1_bss_3C2 = 60;
|
||||
lbl_1_bss_3C0 = 60;
|
||||
lbl_1_bss_3C0 = REFRESH_RATE;
|
||||
fn_1_1D64(1);
|
||||
lbl_1_bss_10[1] = 60;
|
||||
lbl_1_bss_10[1] = REFRESH_RATE;
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60);
|
||||
HuAudFXPlay(1736);
|
||||
break;
|
||||
|
|
@ -160,7 +161,7 @@ void fn_1_558(omObjData *object)
|
|||
if (--lbl_1_bss_3C0 == 0) {
|
||||
lbl_1_bss_3C2--;
|
||||
MGSeqParamSet(lbl_1_bss_3B8, 1, lbl_1_bss_3C2);
|
||||
lbl_1_bss_3C0 = 60;
|
||||
lbl_1_bss_3C0 = REFRESH_RATE;
|
||||
}
|
||||
if (!lbl_1_bss_3C2 || lbl_1_bss_3A8 == 1) {
|
||||
fn_1_1D64(3);
|
||||
|
|
@ -178,7 +179,7 @@ void fn_1_558(omObjData *object)
|
|||
}
|
||||
if (MGSeqStatGet(lbl_1_bss_3BC) == 0) {
|
||||
fn_1_1D64(4);
|
||||
lbl_1_bss_10[1] = 60;
|
||||
lbl_1_bss_10[1] = REFRESH_RATE;
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
@ -215,7 +216,7 @@ void fn_1_558(omObjData *object)
|
|||
break;
|
||||
}
|
||||
fn_1_1D64(5);
|
||||
lbl_1_bss_10[1] = 210;
|
||||
lbl_1_bss_10[1] = 3.5 * REFRESH_RATE;
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
#include "game/gamework_data.h"
|
||||
#include "game/minigame_seq.h"
|
||||
#include "math.h"
|
||||
#include "version.h"
|
||||
|
||||
typedef struct bss_2468_data {
|
||||
Vec unk0;
|
||||
|
|
@ -531,8 +532,8 @@ void fn_1_3CC8(ModelData *model, Mtx mtx)
|
|||
if (temp_r31->unkC == 0) {
|
||||
continue;
|
||||
}
|
||||
temp_f31 = (0.2f + cosd((90.0f * temp_r31->unkC) / 60.0f)) * 128.0f;
|
||||
lbl_1_data_174.a = 255.0f * sind((90.0f * temp_r31->unkC) / 60.0f);
|
||||
temp_f31 = (0.2f + cosd((90.0f * temp_r31->unkC) / REFRESH_RATE)) * 128.0f;
|
||||
lbl_1_data_174.a = 255.0f * sind((90.0f * temp_r31->unkC) / REFRESH_RATE);
|
||||
GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_174);
|
||||
MTXScale(sp14, 0.5f * temp_f31, 0.5f * temp_f31, 1.0f);
|
||||
mtxTransCat(sp14, (200.0f * (600.0f + temp_r31->unk0.x)) / 1200.0f, (200.0f * (600.0f + temp_r31->unk0.z)) / 1200.0f, 0);
|
||||
|
|
@ -550,7 +551,7 @@ void fn_1_43AC(Vec *arg0)
|
|||
temp_r31->unk0.x = arg0->x;
|
||||
temp_r31->unk0.y = arg0->y;
|
||||
temp_r31->unk0.z = arg0->z;
|
||||
temp_r31->unkC = 60;
|
||||
temp_r31->unkC = REFRESH_RATE;
|
||||
lbl_1_bss_2464 = (lbl_1_bss_2464 + 1) % 64;
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
#include "game/gamework_data.h"
|
||||
#include "game/minigame_seq.h"
|
||||
#include "math.h"
|
||||
#include "version.h"
|
||||
|
||||
|
||||
typedef struct data_224_struct {
|
||||
|
|
@ -54,15 +55,15 @@ Vec lbl_1_data_1E4[2] = { { -550, 0, 550 }, { 550, 0, 550 } };
|
|||
u32 lbl_1_data_1FC[10] = { 0, 2, 23, 133, 0x41000E, 0x410016, 0x41001E, 0x410026, 0x41002E, 0x410036 };
|
||||
|
||||
Data224Struct lbl_1_data_224[9] = {
|
||||
{ 0, 4, 12, 0, HU3D_MOTATTR_LOOP },
|
||||
{ 1, 6, 6, 0, HU3D_MOTATTR_LOOP },
|
||||
{ 0, 8, 6, 0, HU3D_MOTATTR_NONE },
|
||||
{ 0, 5, 6, 0, HU3D_MOTATTR_LOOP },
|
||||
{ 1, 5, 6, 0, HU3D_MOTATTR_LOOP },
|
||||
{ 0, 8, 6, 30, HU3D_MOTATTR_NONE },
|
||||
{ 0, 9, 6, 0, HU3D_MOTATTR_NONE },
|
||||
{ 2, 0, 12, 0, HU3D_MOTATTR_NONE },
|
||||
{ 3, 0, 12, 0, HU3D_MOTATTR_NONE },
|
||||
{ 0, 4, 0.2f * REFRESH_RATE, 0, HU3D_MOTATTR_LOOP },
|
||||
{ 1, 6, 0.1f * REFRESH_RATE, 0, HU3D_MOTATTR_LOOP },
|
||||
{ 0, 8, 0.1f * REFRESH_RATE, 0, HU3D_MOTATTR_NONE },
|
||||
{ 0, 5, 0.1f * REFRESH_RATE, 0, HU3D_MOTATTR_LOOP },
|
||||
{ 1, 5, 0.1f * REFRESH_RATE, 0, HU3D_MOTATTR_LOOP },
|
||||
{ 0, 8, 0.1f * REFRESH_RATE, 0.5f * REFRESH_RATE, HU3D_MOTATTR_NONE },
|
||||
{ 0, 9, 0.1f * REFRESH_RATE, 0, HU3D_MOTATTR_NONE },
|
||||
{ 2, 0, 0.2f * REFRESH_RATE, 0, HU3D_MOTATTR_NONE },
|
||||
{ 3, 0, 0.2f * REFRESH_RATE, 0, HU3D_MOTATTR_NONE },
|
||||
};
|
||||
|
||||
void fn_1_4988(omObjData *object);
|
||||
|
|
@ -254,8 +255,8 @@ void fn_1_4E50(omObjData *object)
|
|||
if (temp_r31->unk1C > spC[temp_r31->unk24]) {
|
||||
temp_r31->unk24 = 1;
|
||||
temp_r31->unk44 = temp_r31->unk20;
|
||||
temp_r31->unk94.x += 225.0f * (temp_r31->unk1C * sind(temp_r31->unk20)) * (1.0f / 60.0f);
|
||||
temp_r31->unk94.z += 225.0f * (temp_r31->unk1C * cosd(temp_r31->unk20)) * (1.0f / 60.0f);
|
||||
temp_r31->unk94.x += 225.0f * (temp_r31->unk1C * sind(temp_r31->unk20)) * (1.0f / REFRESH_RATE);
|
||||
temp_r31->unk94.z += 225.0f * (temp_r31->unk1C * cosd(temp_r31->unk20)) * (1.0f / REFRESH_RATE);
|
||||
temp_r31->unk48 = 0.2f;
|
||||
temp_r31->unk4C = 0;
|
||||
if (CharModelMotionShiftIDGet(temp_r31->unk8) < 0) {
|
||||
|
|
@ -296,7 +297,7 @@ void fn_1_4E50(omObjData *object)
|
|||
temp_r31->unk3A = 0;
|
||||
temp_r31->unk3C++;
|
||||
}
|
||||
else if (temp_r31->unk3C == 1 && temp_r31->unk3A > 30.0f) {
|
||||
else if (temp_r31->unk3C == 1 && temp_r31->unk3A > (0.5f * REFRESH_RATE)) {
|
||||
if (temp_r31->unk54 < 3) {
|
||||
temp_r28 = fn_1_8884(&temp_r31->unk88, 20, 150, temp_r31->unk40, -30, 30, 1, object->work[0]);
|
||||
if (temp_r28 >= 0) {
|
||||
|
|
@ -352,7 +353,7 @@ void fn_1_4E50(omObjData *object)
|
|||
}
|
||||
}
|
||||
else {
|
||||
if (temp_r31->unk3A > 30.0f) {
|
||||
if (temp_r31->unk3A > (0.5f * REFRESH_RATE)) {
|
||||
temp_r31->unk38 = 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -376,7 +377,7 @@ void fn_1_4E50(omObjData *object)
|
|||
temp_r31->unk3C++;
|
||||
}
|
||||
if (temp_r31->unk3E) {
|
||||
if (temp_r31->unk3A > 36.0f) {
|
||||
if (temp_r31->unk3A > (VERSION_NTSC ? 36.0f : 30.000002f)) {
|
||||
for (temp_r29 = 0; temp_r29 < temp_r31->unk54; temp_r29++) {
|
||||
fn_1_8B58(temp_r31->unk58[temp_r29]);
|
||||
}
|
||||
|
|
@ -384,7 +385,7 @@ void fn_1_4E50(omObjData *object)
|
|||
temp_r31->unk3E = 0;
|
||||
}
|
||||
}
|
||||
if (temp_r31->unk3A > 60.0f) {
|
||||
if (temp_r31->unk3A > 1.0f * REFRESH_RATE) {
|
||||
temp_r31->unk38 = 0;
|
||||
}
|
||||
break;
|
||||
|
|
@ -514,7 +515,7 @@ void fn_1_5C98(omObjData *object)
|
|||
}
|
||||
else {
|
||||
temp_r31->unk80++;
|
||||
if (temp_r30 || temp_r31->unk80 > 60.0f) {
|
||||
if (temp_r30 || temp_r31->unk80 > (1.0f * REFRESH_RATE)) {
|
||||
if (temp_r30 || frandmod(1000) < 10) {
|
||||
temp_r31->unk70 = fn_1_8FA0(&temp_r31->unk88);
|
||||
fn_1_8E2C(temp_r31->unk70, &temp_r31->unk74);
|
||||
|
|
@ -532,7 +533,7 @@ void fn_1_5C98(omObjData *object)
|
|||
|
||||
case 2:
|
||||
temp_r31->unk80++;
|
||||
if (temp_r31->unk80 < 120 * temp_r31->unk64) {
|
||||
if (temp_r31->unk80 < (2 * REFRESH_RATE) * temp_r31->unk64) {
|
||||
temp_r31->unk1C = 0.4f;
|
||||
temp_r31->unk20 = temp_r31->unk40 + 10.0f;
|
||||
temp_r31->unk14 = temp_r31->unk18 = PAD_BUTTON_A;
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
#include "game/wipe.h"
|
||||
|
||||
#include "ext_math.h"
|
||||
#include "version.h"
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ omObjData *unk00;
|
||||
|
|
@ -650,7 +651,7 @@ void fn_1_27C8(s32 arg0)
|
|||
{
|
||||
if (lbl_1_bss_10 == 0) {
|
||||
lbl_1_bss_10 = 1;
|
||||
lbl_1_bss_C = arg0 * 60;
|
||||
lbl_1_bss_C = arg0 * REFRESH_RATE;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -679,14 +680,14 @@ void fn_1_285C(omObjData *arg0)
|
|||
switch (lbl_1_bss_10) {
|
||||
case 1:
|
||||
if (lbl_1_data_16C == -1) {
|
||||
lbl_1_data_16C = MGSeqCreate(1, lbl_1_bss_C / 60, -1, -1);
|
||||
lbl_1_data_16C = MGSeqCreate(1, lbl_1_bss_C / REFRESH_RATE, -1, -1);
|
||||
}
|
||||
lbl_1_bss_10 = 2;
|
||||
break;
|
||||
case 2:
|
||||
lbl_1_bss_C--;
|
||||
if (lbl_1_data_16C != -1) {
|
||||
MGSeqParamSet(lbl_1_data_16C, 1, (lbl_1_bss_C + 59) / 60);
|
||||
MGSeqParamSet(lbl_1_data_16C, 1, (lbl_1_bss_C + REFRESH_RATE - 1) / REFRESH_RATE);
|
||||
}
|
||||
if (lbl_1_bss_C <= 0) {
|
||||
lbl_1_bss_C = 30;
|
||||
|
|
@ -1789,9 +1790,9 @@ void fn_1_77F0(void)
|
|||
HuAudFXPlay(0x6D2);
|
||||
var_r30->unk00->work[3] = 3;
|
||||
fn_1_2744(var_r31, MAKE_MESSID(29, 3));
|
||||
fn_1_24D0(var_r31, 60);
|
||||
fn_1_24D0(var_r31, REFRESH_RATE);
|
||||
lbl_1_bss_4 = 2;
|
||||
fn_1_24D0(var_r31, 60);
|
||||
fn_1_24D0(var_r31, REFRESH_RATE);
|
||||
var_r30->unk00->work[3] = 2;
|
||||
fn_1_2468(var_r31);
|
||||
lbl_1_bss_4 = 1;
|
||||
|
|
@ -1901,17 +1902,17 @@ void fn_1_A5A8(void)
|
|||
var_r28->unk00->work[3] = 2;
|
||||
var_r28->unk00->work[3] = 1;
|
||||
fn_1_2744(var_r31, MAKE_MESSID(29, 21));
|
||||
fn_1_24D0(var_r31, 180);
|
||||
fn_1_24D0(var_r31, 3 * REFRESH_RATE);
|
||||
var_r28->unk00->work[3] = 2;
|
||||
sp68->unk00->work[0] = 10;
|
||||
fn_1_2744(var_r31, MAKE_MESSID(29, 22));
|
||||
fn_1_24D0(var_r31, 60);
|
||||
fn_1_24D0(var_r31, REFRESH_RATE);
|
||||
var_r28->unk00->work[3] = 4;
|
||||
fn_1_2A90(var_r31);
|
||||
fn_1_2D94(var_r31);
|
||||
fn_1_3020();
|
||||
var_r28->unk00->work[3] = 2;
|
||||
HuPrcSleep(120);
|
||||
HuPrcSleep(2 * REFRESH_RATE);
|
||||
var_r28->unk00->work[3] = 1;
|
||||
fn_1_2744(var_r31, MAKE_MESSID(29, 37));
|
||||
fn_1_24D0(var_r31, 0);
|
||||
|
|
@ -2153,7 +2154,7 @@ s32 fn_1_C090(s32 arg0, s32 arg1, s32 arg2)
|
|||
if (arg2 % 27 == 2 && temp_r31->unk24 == 0) {
|
||||
switch (temp_r31->unk10) {
|
||||
case 0:
|
||||
if (arg2 <= 120) {
|
||||
if (arg2 <= 2 * REFRESH_RATE) {
|
||||
var_r29 = 0;
|
||||
}
|
||||
else if (var_r28->unk04 <= 3) {
|
||||
|
|
@ -2164,7 +2165,7 @@ s32 fn_1_C090(s32 arg0, s32 arg1, s32 arg2)
|
|||
}
|
||||
break;
|
||||
case 1:
|
||||
if (arg2 <= 120) {
|
||||
if (arg2 <= 2 * REFRESH_RATE) {
|
||||
var_r29 = 0;
|
||||
}
|
||||
else if (var_r28->unk04 <= 6) {
|
||||
|
|
@ -2175,7 +2176,7 @@ s32 fn_1_C090(s32 arg0, s32 arg1, s32 arg2)
|
|||
}
|
||||
break;
|
||||
case 2:
|
||||
if (arg2 <= 60) {
|
||||
if (arg2 <= REFRESH_RATE) {
|
||||
var_r29 = 0;
|
||||
}
|
||||
else if (var_r28->unk04 <= 9) {
|
||||
|
|
@ -2186,7 +2187,7 @@ s32 fn_1_C090(s32 arg0, s32 arg1, s32 arg2)
|
|||
}
|
||||
break;
|
||||
case 3:
|
||||
if (arg2 <= 60) {
|
||||
if (arg2 <= REFRESH_RATE) {
|
||||
var_r29 = 0;
|
||||
}
|
||||
else if (var_r28->unk04 <= 12) {
|
||||
|
|
@ -2339,14 +2340,14 @@ void fn_1_C90C(void)
|
|||
s32 sp3C[] = { MAKE_MESSID(29, 31), MAKE_MESSID(29, 32), MAKE_MESSID(29, 33) };
|
||||
|
||||
var_r28 = rand8() % 3;
|
||||
HuPrcSleep(70);
|
||||
HuPrcSleep(REFRESH_RATE + 10);
|
||||
fn_1_26D4(sp28, sp3C[var_r28]);
|
||||
var_r31 = fn_1_2230((580.0f - sp28[0]) / 2, 60.0f, sp28[0], sp28[1], 2);
|
||||
var_r27->unk00->work[2] = 1;
|
||||
HuAudFXPlay(0x6D2);
|
||||
HuAudFXPlay(0x6E3);
|
||||
fn_1_2744(var_r31, sp3C[var_r28]);
|
||||
fn_1_24D0(var_r31, 120);
|
||||
fn_1_24D0(var_r31, 2 * REFRESH_RATE);
|
||||
fn_1_2468(var_r31);
|
||||
lbl_1_bss_4 = 1;
|
||||
HuPrcEnd();
|
||||
|
|
@ -2367,7 +2368,7 @@ void fn_1_CCA4(void)
|
|||
HuAudFXPlay(0x6D9);
|
||||
HuAudSeqAllFadeOut(100);
|
||||
fn_1_2744(var_r31, sp24[var_r28]);
|
||||
fn_1_24D0(var_r31, 120);
|
||||
fn_1_24D0(var_r31, 2 * REFRESH_RATE);
|
||||
fn_1_2468(var_r31);
|
||||
lbl_1_bss_4 = 1;
|
||||
HuPrcEnd();
|
||||
|
|
@ -2385,7 +2386,7 @@ void fn_1_D018(void)
|
|||
HuAudFXPlay(0x6D9);
|
||||
HuAudSeqAllFadeOut(100);
|
||||
fn_1_2744(var_r31, MAKE_MESSID(29, 36));
|
||||
fn_1_24D0(var_r31, 120);
|
||||
fn_1_24D0(var_r31, 2 * REFRESH_RATE);
|
||||
fn_1_2468(var_r31);
|
||||
lbl_1_bss_4 = 1;
|
||||
HuPrcEnd();
|
||||
|
|
@ -2645,7 +2646,7 @@ s32 fn_1_DEB0(void)
|
|||
Hu3DModelScaleSet(var_r29->unk00->model[temp_r31->unk1C + 1], 1.0f, 1.0f, 1.0f);
|
||||
var_r30->unk0C = temp_r31->unk20 = 1;
|
||||
}
|
||||
if (temp_r31->unk20 == 1 && temp_r31->unk24++ >= 60) {
|
||||
if (temp_r31->unk20 == 1 && temp_r31->unk24++ >= REFRESH_RATE) {
|
||||
temp_r26 = &Hu3DData[var_r29->unk00->model[temp_r31->unk1C + 1]];
|
||||
var_r28->unk00->work[1] = 3;
|
||||
temp_r26->pos.y = temp_r27->pos.y;
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
#include "dolphin.h"
|
||||
#include "math.h"
|
||||
#include "string.h"
|
||||
#include "version.h"
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ omObjData *unk00;
|
||||
|
|
@ -524,7 +525,7 @@ void fn_1_1184(s32 arg0)
|
|||
{
|
||||
if (lbl_1_bss_8 == 0) {
|
||||
lbl_1_bss_8 = 1;
|
||||
lbl_1_bss_4 = arg0 * 60;
|
||||
lbl_1_bss_4 = arg0 * REFRESH_RATE;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -553,14 +554,14 @@ void fn_1_1218(omObjData *arg0)
|
|||
switch (lbl_1_bss_8) {
|
||||
case 1:
|
||||
if (lbl_1_data_12C == -1) {
|
||||
lbl_1_data_12C = MGSeqCreate(1, lbl_1_bss_4 / 60, -1, -1);
|
||||
lbl_1_data_12C = MGSeqCreate(1, lbl_1_bss_4 / REFRESH_RATE, -1, -1);
|
||||
}
|
||||
lbl_1_bss_8 = 2;
|
||||
break;
|
||||
case 2:
|
||||
lbl_1_bss_4--;
|
||||
if (lbl_1_data_12C != -1) {
|
||||
MGSeqParamSet(lbl_1_data_12C, 1, (lbl_1_bss_4 + 59) / 60);
|
||||
MGSeqParamSet(lbl_1_data_12C, 1, (lbl_1_bss_4 + REFRESH_RATE - 1) / REFRESH_RATE);
|
||||
}
|
||||
if (lbl_1_bss_4 <= 0) {
|
||||
lbl_1_bss_4 = 30;
|
||||
|
|
@ -1019,7 +1020,7 @@ void fn_1_2BBC(omObjData *arg0)
|
|||
fn_1_230(1, 10, 4.0f);
|
||||
}
|
||||
if (temp_r30->unk04 == 0) {
|
||||
if (temp_r30->unk14++ >= 300) {
|
||||
if (temp_r30->unk14++ >= 5 * REFRESH_RATE) {
|
||||
temp_r30->unk14 = 0;
|
||||
if (rand8() % 2 != 0) {
|
||||
fn_1_2BAC(1);
|
||||
|
|
@ -2272,9 +2273,9 @@ void fn_1_9320(void)
|
|||
HuAudFXPlay(0x6D2);
|
||||
fn_1_4BAC(2, 10, 0, 1);
|
||||
fn_1_2A10(var_r31, MAKE_MESSID(29, 4));
|
||||
fn_1_280C(var_r31, 60);
|
||||
fn_1_280C(var_r31, REFRESH_RATE);
|
||||
fn_1_2BAC(3);
|
||||
fn_1_280C(var_r31, 60);
|
||||
fn_1_280C(var_r31, REFRESH_RATE);
|
||||
fn_1_4BAC(0, 30, 1, 1);
|
||||
fn_1_27A4(var_r31);
|
||||
lbl_1_bss_C = 1;
|
||||
|
|
@ -2726,9 +2727,9 @@ void fn_1_BE80(void)
|
|||
HuAudFXPlay(0x6D2);
|
||||
fn_1_4928(1);
|
||||
fn_1_2A10(var_r30, sp1C[temp_r27]);
|
||||
fn_1_280C(var_r30, 60);
|
||||
fn_1_280C(var_r30, REFRESH_RATE);
|
||||
lbl_1_bss_C = 1;
|
||||
fn_1_280C(var_r30, 60);
|
||||
fn_1_280C(var_r30, REFRESH_RATE);
|
||||
fn_1_27A4(var_r30);
|
||||
HuPrcEnd();
|
||||
}
|
||||
|
|
@ -2747,9 +2748,9 @@ void fn_1_C248(void)
|
|||
HuAudFXPlay(0x6D2);
|
||||
fn_1_4928(1);
|
||||
fn_1_2A10(var_r31, sp1C[temp_r27]);
|
||||
fn_1_280C(var_r31, 60);
|
||||
fn_1_280C(var_r31, REFRESH_RATE);
|
||||
lbl_1_bss_C = 1;
|
||||
fn_1_280C(var_r31, 60);
|
||||
fn_1_280C(var_r31, REFRESH_RATE);
|
||||
fn_1_27A4(var_r31);
|
||||
HuPrcEnd();
|
||||
}
|
||||
|
|
@ -2814,7 +2815,7 @@ void fn_1_D03C(void)
|
|||
var_r31 = fn_1_20F8((580.0f - sp10[0]) / 2, 100.0f, sp10[0], sp10[1], 2);
|
||||
HuAudFXPlay(0x6D6);
|
||||
fn_1_2A10(var_r31, sp18[temp_r28]);
|
||||
fn_1_280C(var_r31, 120);
|
||||
fn_1_280C(var_r31, 2 * REFRESH_RATE);
|
||||
fn_1_27A4(var_r31);
|
||||
HuPrcEnd();
|
||||
}
|
||||
|
|
@ -2830,7 +2831,7 @@ void fn_1_D3C0(void)
|
|||
HuAudFXPlay(0x6D6);
|
||||
fn_1_4BAC(1, 10, 0, 1);
|
||||
fn_1_2A10(var_r31, MAKE_MESSID(29, 92));
|
||||
fn_1_280C(var_r31, 120);
|
||||
fn_1_280C(var_r31, 2 * REFRESH_RATE);
|
||||
fn_1_4BAC(0, 30, 1, 1);
|
||||
fn_1_27A4(var_r31);
|
||||
lbl_1_bss_C = 1;
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@
|
|||
#include "ext_math.h"
|
||||
|
||||
#include "REL/m439data.h"
|
||||
#include "version.h"
|
||||
|
||||
typedef struct camera_params {
|
||||
float zoom;
|
||||
|
|
@ -28,34 +29,12 @@ typedef struct camera_params {
|
|||
Vec rot;
|
||||
} CameraViewParams;
|
||||
|
||||
CameraViewParams lbl_1_data_741C[] = { {
|
||||
4775,
|
||||
-2800,
|
||||
0,
|
||||
-7700,
|
||||
343,
|
||||
20,
|
||||
0,
|
||||
},
|
||||
{
|
||||
5000,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
290,
|
||||
0,
|
||||
0,
|
||||
},
|
||||
{
|
||||
2800,
|
||||
0,
|
||||
0,
|
||||
-7600,
|
||||
347,
|
||||
0,
|
||||
0,
|
||||
},
|
||||
{ 2800, 0, 0, -7600, 290, 0, 0 } };
|
||||
CameraViewParams lbl_1_data_741C[] = {
|
||||
{ VERSION_NTSC ? 4775.0f : 4500.0f, -2800.0f, 0.0f, -7700.0f, 343.0f, 20.0f, 0.0f },
|
||||
{ 5000.0f, 0.f, 0.0f, 0.0f, 290.0f, 0.0f, 0.0f },
|
||||
{ 2800.0f, 0.f, 0.0f, -7600.0f, 347.0f, 0.0f, 0.0f },
|
||||
{ 2800.0f, 0.f, 0.0f, -7600.0f, 290.0f, 0.0f, 0.0f },
|
||||
};
|
||||
|
||||
typedef struct struct_data_748C {
|
||||
s32 unk0;
|
||||
|
|
@ -162,9 +141,9 @@ void fn_1_408(omObjData *object);
|
|||
void fn_1_384(omObjData *object)
|
||||
{
|
||||
fn_1_364(0);
|
||||
lbl_1_bss_14C = 60;
|
||||
lbl_1_bss_14C = REFRESH_RATE;
|
||||
lbl_1_bss_12E = 60;
|
||||
lbl_1_bss_12C = 60;
|
||||
lbl_1_bss_12C = REFRESH_RATE;
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60);
|
||||
object->func = fn_1_408;
|
||||
}
|
||||
|
|
@ -181,12 +160,12 @@ void fn_1_408(omObjData *object)
|
|||
{
|
||||
switch (fn_1_374()) {
|
||||
case 0:
|
||||
if (lbl_1_bss_14C == 60) {
|
||||
if (lbl_1_bss_14C == REFRESH_RATE) {
|
||||
HuAudFXPlay(1797);
|
||||
}
|
||||
if (--lbl_1_bss_14C == 0) {
|
||||
fn_1_364(1);
|
||||
lbl_1_bss_14C = 120;
|
||||
lbl_1_bss_14C = 2 * REFRESH_RATE;
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
@ -227,7 +206,7 @@ void fn_1_408(omObjData *object)
|
|||
if (--lbl_1_bss_12C == 0) {
|
||||
lbl_1_bss_12E--;
|
||||
MGSeqParamSet(lbl_1_bss_30, 1, lbl_1_bss_12E);
|
||||
lbl_1_bss_12C = 60;
|
||||
lbl_1_bss_12C = REFRESH_RATE;
|
||||
}
|
||||
if (lbl_1_bss_130 >= 3 || lbl_1_bss_12E == 0) {
|
||||
fn_1_364(6);
|
||||
|
|
@ -243,7 +222,7 @@ void fn_1_408(omObjData *object)
|
|||
}
|
||||
if (!MGSeqStatGet(lbl_1_bss_32)) {
|
||||
fn_1_364(7);
|
||||
lbl_1_bss_14C = 60;
|
||||
lbl_1_bss_14C = REFRESH_RATE;
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
@ -257,7 +236,7 @@ void fn_1_408(omObjData *object)
|
|||
else {
|
||||
HuAudSStreamPlay(4);
|
||||
}
|
||||
lbl_1_bss_14C = 210;
|
||||
lbl_1_bss_14C = 3.5f * REFRESH_RATE;
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
@ -823,7 +802,7 @@ void fn_1_2C84(omObjData *object)
|
|||
if (fn_1_374() >= 6 && !temp_r31->unk0_field2) {
|
||||
temp_r31->unk0_field7 = 1;
|
||||
temp_r31->unk12 = 2;
|
||||
temp_r31->unk3E = 120;
|
||||
temp_r31->unk3E = 2 * REFRESH_RATE;
|
||||
object->func = fn_1_3C1C;
|
||||
return;
|
||||
}
|
||||
|
|
@ -852,18 +831,18 @@ void fn_1_2C84(omObjData *object)
|
|||
if (temp_f26 > 72) {
|
||||
temp_f26 = 72;
|
||||
}
|
||||
temp_f23 = (10.0f * temp_f26) / 72.0f;
|
||||
temp_f23 = ((600.0f / REFRESH_RATE) * temp_f26) / 72.0f;
|
||||
temp_r31->unk20.x = temp_f31 * temp_f23;
|
||||
temp_r31->unk20.z = temp_f30 * temp_f23;
|
||||
temp_r31->unk14.y = temp_f23;
|
||||
object->rot.y = fn_1_1024(object->rot.y, atan2d(temp_r31->unk20.x, temp_r31->unk20.z), 0.2f);
|
||||
if (temp_r31->unk14.y < 7.5f) {
|
||||
if (temp_r31->unk14.y < (450.0f / REFRESH_RATE)) {
|
||||
temp_r28 = 1;
|
||||
temp_f25 = temp_r31->unk14.y / 7.5f;
|
||||
temp_f25 = temp_r31->unk14.y / (450.0f / REFRESH_RATE);
|
||||
}
|
||||
else {
|
||||
temp_r28 = 2;
|
||||
temp_f25 = temp_r31->unk14.y / 10.0f;
|
||||
temp_f25 = temp_r31->unk14.y / (600.0f / REFRESH_RATE);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
|
@ -900,7 +879,7 @@ void fn_1_2C84(omObjData *object)
|
|||
temp_r31->unk50.z = object->trans.z;
|
||||
temp_r31->unk68.y = -2000;
|
||||
temp_r31->unk12 = 2;
|
||||
temp_r31->unk3E = 12;
|
||||
temp_r31->unk3E = 0.2f * REFRESH_RATE;
|
||||
temp_r23 = Hu3DData[object->model[2]].unk_120;
|
||||
temp_r23->unk_00 = 0;
|
||||
VECSubtract(&temp_r31->unk5C, &object->trans, &temp_r23->unk_04);
|
||||
|
|
@ -933,7 +912,7 @@ void fn_1_2C84(omObjData *object)
|
|||
temp_r31->unk0_field4 = 01;
|
||||
if (temp_r29 > 1 && temp_r29 < 6) {
|
||||
temp_r31->unk12++;
|
||||
temp_r31->unk3E = 30;
|
||||
temp_r31->unk3E = 0.5f * REFRESH_RATE;
|
||||
temp_r31->unk48 = CenterM[temp_r31->unk2].z;
|
||||
temp_r31->unk4C = object->trans.z - 350.0f;
|
||||
temp_r31->unk40 = lbl_1_data_75CC[temp_r31->unk46 - 1];
|
||||
|
|
@ -946,7 +925,7 @@ void fn_1_2C84(omObjData *object)
|
|||
if (--temp_r31->unk3E == 0) {
|
||||
temp_r31->unk12 = 0;
|
||||
}
|
||||
CenterM[temp_r31->unk2].z = temp_r31->unk48 + ((temp_r31->unk4C - temp_r31->unk48) * cosd((temp_r31->unk3E * 90.0f) / 30.0f));
|
||||
CenterM[temp_r31->unk2].z = temp_r31->unk48 + ((temp_r31->unk4C - temp_r31->unk48) * cosd((temp_r31->unk3E * 90.0f) / (0.5f * REFRESH_RATE)));
|
||||
temp_r28 = 0;
|
||||
temp_f25 = 1;
|
||||
break;
|
||||
|
|
@ -957,7 +936,7 @@ void fn_1_2C84(omObjData *object)
|
|||
temp_r24 = temp_r27->data;
|
||||
switch (temp_r24->unk4) {
|
||||
case 1:
|
||||
temp_f28 = 1.0f - (temp_r24->unk24 / 90.0f);
|
||||
temp_f28 = 1.0f - (temp_r24->unk24 / (1.5f * REFRESH_RATE));
|
||||
object->trans.x = temp_r31->unk50.x + (temp_f28 * (temp_r31->unk5C.x - temp_r31->unk50.x));
|
||||
object->trans.y = 100 + (-2000.0f * (temp_f28 - 0.1f)) * (temp_f28 - 0.1f);
|
||||
object->trans.z = temp_r31->unk50.z + (temp_f28 * (temp_r31->unk5C.z - temp_r31->unk50.z));
|
||||
|
|
@ -978,7 +957,7 @@ void fn_1_2C84(omObjData *object)
|
|||
if (temp_r31->unk3E) {
|
||||
temp_r31->unk3E--;
|
||||
}
|
||||
temp_f28 = sind((temp_r31->unk3E / 30.0f) * 90.0f);
|
||||
temp_f28 = sind((temp_r31->unk3E / (0.5f * REFRESH_RATE)) * 90.0f);
|
||||
object->trans.x = temp_r31->unk74.x - (temp_f28 * (temp_r31->unk74.x - temp_r31->unk68.x));
|
||||
object->trans.y = temp_r31->unk74.y - (temp_f28 * (temp_r31->unk74.y - temp_r31->unk68.y));
|
||||
object->trans.z = temp_r31->unk74.z - (temp_f28 * (temp_r31->unk74.z - temp_r31->unk68.z));
|
||||
|
|
@ -1032,7 +1011,7 @@ void fn_1_3C1C(omObjData *object)
|
|||
switch (temp_r31->unk12) {
|
||||
case 0:
|
||||
if (object->trans.z > -7600.0f) {
|
||||
object->trans.z -= 3.75f;
|
||||
object->trans.z -= 225.0f / REFRESH_RATE;
|
||||
}
|
||||
else {
|
||||
temp_r31->unk12++;
|
||||
|
|
@ -1113,11 +1092,11 @@ void fn_1_4528(ModelData *model, ParticleData *particle, Mtx matrix)
|
|||
temp_r31->unk34.x = 100.0f * (0.2f * sind(temp_f31));
|
||||
temp_r31->unk34.y = 0;
|
||||
temp_r31->unk34.z = 100.0f * (0.2f * cosd(temp_f31));
|
||||
temp_f30 = ((frand8() * 2.5f) / 256.0f) + (5.0f / 3.0f);
|
||||
temp_f30 = ((frand8() * (150.0f / REFRESH_RATE)) / 256.0f) + (100.0f / REFRESH_RATE);
|
||||
temp_f31 = temp_f29 + (30.0f * (((s32)frand() & 0x1FF) - 256.0f) / 256.0f);
|
||||
temp_r31->unk08.x = temp_f30 * sind(temp_f31);
|
||||
temp_r31->unk08.z = temp_f30 * cosd(temp_f31);
|
||||
temp_r31->unk08.y = (frand8() * (50.0f / 3.0f)) / 256.0f;
|
||||
temp_r31->unk08.y = (frand8() * (1000.0f / REFRESH_RATE)) / 256.0f;
|
||||
temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = temp_r31->unk40.a = 255;
|
||||
}
|
||||
}
|
||||
|
|
@ -1128,7 +1107,7 @@ void fn_1_4528(ModelData *model, ParticleData *particle, Mtx matrix)
|
|||
temp_r28++;
|
||||
}
|
||||
else {
|
||||
temp_r31->unk08.y += -0.50000006f;
|
||||
temp_r31->unk08.y += VERSION_NTSC ? -0.50000006f : -0.6f; // -3.0f / REFRESH_RATE
|
||||
temp_r31->unk34.x += temp_r31->unk08.x;
|
||||
temp_r31->unk34.y += temp_r31->unk08.y;
|
||||
temp_r31->unk34.z += temp_r31->unk08.z;
|
||||
|
|
@ -1193,7 +1172,7 @@ void fn_1_4AA8(omObjData *object)
|
|||
}
|
||||
Hu3DMotionSet(object->model[0], object->motion[0]);
|
||||
Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP);
|
||||
object->trans.y = 500;
|
||||
object->trans.y = 500.0f;
|
||||
object->scale.x = object->scale.y = object->scale.z = 0.25f;
|
||||
if (work->unk2 == 0) {
|
||||
object->trans.x = -1800;
|
||||
|
|
@ -1202,7 +1181,7 @@ void fn_1_4AA8(omObjData *object)
|
|||
object->rot.y = -90;
|
||||
object->func = fn_1_4CC0;
|
||||
Hu3DMotionSpeedSet(object->model[0], 2.0f);
|
||||
work->unk24 = 60;
|
||||
work->unk24 = REFRESH_RATE;
|
||||
}
|
||||
else {
|
||||
object->func = fn_1_4F54;
|
||||
|
|
@ -1218,11 +1197,11 @@ void fn_1_4CC0(omObjData *object)
|
|||
Work4AA8 *work = object->data;
|
||||
float pan;
|
||||
Vec pos2D;
|
||||
if (42.0f == work->unk24) {
|
||||
if ((VERSION_NTSC ? 42.0f : 35.0f) == work->unk24) {
|
||||
HuAudFXPlay(1795);
|
||||
}
|
||||
if (work->unk24 == 0) {
|
||||
object->trans.x -= 25.0f;
|
||||
object->trans.x -= 1500.0f / REFRESH_RATE;
|
||||
}
|
||||
else {
|
||||
if (--work->unk24 == 0) {
|
||||
|
|
@ -1273,7 +1252,7 @@ void fn_1_4F54(omObjData *object)
|
|||
case 0:
|
||||
if (object->work[3]) {
|
||||
work->unk4++;
|
||||
work->unk24 = work->unk26 = 90;
|
||||
work->unk24 = work->unk26 = 1.5f * REFRESH_RATE;
|
||||
temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0);
|
||||
object->trans.x = work->unk28.x = temp_r29[work->unk2]->trans.x;
|
||||
object->trans.y = work->unk28.y = 2000;
|
||||
|
|
@ -1301,11 +1280,11 @@ void fn_1_4F54(omObjData *object)
|
|||
if (--work->unk24 == 0) {
|
||||
work->unk0 = 1;
|
||||
work->unk4++;
|
||||
work->unk24 = 90;
|
||||
work->unk24 = 1.5f * REFRESH_RATE;
|
||||
work->unk10 = (200.0f - object->trans.y) / work->unk24;
|
||||
object->rot.x = 0;
|
||||
}
|
||||
if (60.0f == work->unk24) {
|
||||
if (1.0f * REFRESH_RATE == work->unk24) {
|
||||
HuAudFXPlay(1796);
|
||||
}
|
||||
break;
|
||||
|
|
@ -1314,7 +1293,7 @@ void fn_1_4F54(omObjData *object)
|
|||
object->trans.y += work->unk10;
|
||||
if (--work->unk24 == 0) {
|
||||
work->unk4++;
|
||||
work->unk24 = work->unk26 = 48;
|
||||
work->unk24 = work->unk26 = 0.8f * REFRESH_RATE;
|
||||
work->unk28.x = object->trans.x;
|
||||
work->unk28.y = object->trans.y;
|
||||
work->unk28.z = object->trans.z;
|
||||
|
|
@ -1350,7 +1329,7 @@ void fn_1_4F54(omObjData *object)
|
|||
object->work[3] = 0;
|
||||
Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF);
|
||||
}
|
||||
if (work->unk24 == (int)(work->unk26 - 12.0f)) {
|
||||
if (work->unk24 == (int)(work->unk26 - (0.2f * REFRESH_RATE))) {
|
||||
work->unk0 = 0;
|
||||
temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0);
|
||||
temp_r28 = temp_r29[work->unk2]->data;
|
||||
|
|
@ -1686,7 +1665,7 @@ void fn_1_6DEC(omObjData *object)
|
|||
switch (object->work[0]) {
|
||||
case 0:
|
||||
if (fn_1_374() <= 3) {
|
||||
CRotM[0].y -= 10.0f / 60.0f;
|
||||
CRotM[0].y -= 10.0f / REFRESH_RATE;
|
||||
}
|
||||
if (fn_1_374() == 3) {
|
||||
Hu3DCameraCreate(15);
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
#include "math.h"
|
||||
|
||||
#include "string.h"
|
||||
#include "version.h"
|
||||
|
||||
// bss
|
||||
omObjData *lbl_1_bss_6C;
|
||||
|
|
@ -117,7 +118,7 @@ s32 fn_1_4A4(void)
|
|||
var_r31 = &lbl_1_data_78[0];
|
||||
var_r30 = 0;
|
||||
lbl_1_bss_4++;
|
||||
var_f31 = lbl_1_bss_4 / 120.0f;
|
||||
var_f31 = lbl_1_bss_4 / (2 * REFRESH_RATE_F);
|
||||
if (var_f31 > 1.0f) {
|
||||
lbl_1_bss_4 = 0;
|
||||
var_f31 = 1.0f;
|
||||
|
|
@ -144,7 +145,7 @@ s32 fn_1_6C8(void)
|
|||
var_r31 = &lbl_1_data_78[1];
|
||||
var_r30 = 0;
|
||||
lbl_1_bss_4++;
|
||||
var_f31 = lbl_1_bss_4 / 120.0f;
|
||||
var_f31 = lbl_1_bss_4 / (2 * REFRESH_RATE_F);
|
||||
if (var_f31 > 1.0f) {
|
||||
lbl_1_bss_4 = 0;
|
||||
var_f31 = 1.0f;
|
||||
|
|
@ -173,7 +174,7 @@ void fn_1_8F0(omObjData *arg0)
|
|||
temp_r31->unk0 = 1;
|
||||
temp_r31->unk4 = -1;
|
||||
temp_r31->unk8 = -1;
|
||||
temp_r31->unk6 = 0x12C;
|
||||
temp_r31->unk6 = 5 * REFRESH_RATE;
|
||||
temp_r31->unkA = 0;
|
||||
temp_r31->unkC = -1;
|
||||
|
||||
|
|
@ -215,7 +216,7 @@ void fn_1_AE0(omObjData *arg0)
|
|||
break;
|
||||
case 3:
|
||||
if (temp_r31->unk8 != -1) {
|
||||
MGSeqParamSet(temp_r31->unk8, 1, ((temp_r31->unk6 + 0x3B) / 60));
|
||||
MGSeqParamSet(temp_r31->unk8, 1, ((temp_r31->unk6 + REFRESH_RATE - 1) / REFRESH_RATE));
|
||||
}
|
||||
if ((temp_r31->unkC < 0) && ((MGSeqStatGet(temp_r31->unk4) & 0x10) != 0)) {
|
||||
temp_r31->unkC = HuAudSeqPlay(0x49);
|
||||
|
|
@ -226,7 +227,7 @@ void fn_1_AE0(omObjData *arg0)
|
|||
temp_f31 = (((rand8() << 8) | rand8()) % 361);
|
||||
Center.x = (lbl_1_data_78[1].center.x + (10.0 * sind(temp_f31)));
|
||||
Center.y = (lbl_1_data_78[1].center.y + (10.0 * cosd(temp_f31)));
|
||||
if (temp_r31->unkA > 0x28) {
|
||||
if (temp_r31->unkA > (2 * REFRESH_RATE / 3)) {
|
||||
temp_r31->unkA = 0;
|
||||
return;
|
||||
}
|
||||
|
|
@ -265,7 +266,7 @@ u8 fn_1_E14(omObjData *arg0)
|
|||
lbl_1_bss_6++;
|
||||
break;
|
||||
case 1:
|
||||
if (++lbl_1_bss_8 > 0x1E) {
|
||||
if (++lbl_1_bss_8 > (s16)(0.5f * REFRESH_RATE_F)) {
|
||||
fn_1_F168();
|
||||
lbl_1_bss_8 = 0;
|
||||
lbl_1_bss_6++;
|
||||
|
|
@ -275,7 +276,7 @@ u8 fn_1_E14(omObjData *arg0)
|
|||
var_r31 = lbl_1_data_78;
|
||||
var_r30 = 0;
|
||||
lbl_1_bss_4++;
|
||||
var_f31 = lbl_1_bss_4 / 120.0f;
|
||||
var_f31 = lbl_1_bss_4 / (2 * REFRESH_RATE_F);
|
||||
if (var_f31 > 1.0f) {
|
||||
lbl_1_bss_4 = 0;
|
||||
var_f31 = 1.0f;
|
||||
|
|
@ -319,7 +320,7 @@ u8 fn_1_1138(omObjData *object)
|
|||
temp_r30->unk40 = temp_r30->unk34;
|
||||
}
|
||||
lbl_1_bss_8++;
|
||||
var_f30 = lbl_1_bss_8 / 30.0f;
|
||||
var_f30 = lbl_1_bss_8 / (0.5f * REFRESH_RATE_F);
|
||||
if (var_f30 >= 1.0f) {
|
||||
var_f30 = 1.0f;
|
||||
if (lbl_1_bss_B == 0) {
|
||||
|
|
@ -331,7 +332,7 @@ u8 fn_1_1138(omObjData *object)
|
|||
var_r31 = &lbl_1_data_78[1]; // could be fn_1_6C8
|
||||
var_r28 = 0;
|
||||
lbl_1_bss_4++;
|
||||
var_f31 = lbl_1_bss_4 / 120.0f;
|
||||
var_f31 = lbl_1_bss_4 / (2 * REFRESH_RATE_F);
|
||||
if (var_f31 > 1.0f) {
|
||||
lbl_1_bss_4 = 0;
|
||||
var_f31 = 1.0f;
|
||||
|
|
@ -357,7 +358,7 @@ u8 fn_1_1138(omObjData *object)
|
|||
lbl_1_bss_8 = 0;
|
||||
break;
|
||||
case 2:
|
||||
if (++lbl_1_bss_8 > 210.0f) {
|
||||
if (++lbl_1_bss_8 > (3.5f * REFRESH_RATE)) {
|
||||
lbl_1_bss_6 = 0;
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -392,7 +393,7 @@ void fn_1_1768(void)
|
|||
|
||||
temp_r31 = (unkStruct2 *)lbl_1_bss_6C->data;
|
||||
if (temp_r31->unk8 == -1) {
|
||||
temp_r31->unk6 = 0x12C;
|
||||
temp_r31->unk6 = 5 * REFRESH_RATE;
|
||||
temp_r31->unk8 = MGSeqCreate(1, 5, -1, -1);
|
||||
}
|
||||
}
|
||||
|
|
@ -695,7 +696,7 @@ void fn_1_2B04(omObjData *object)
|
|||
switch (lbl_1_data_E4[0]) {
|
||||
case 0:
|
||||
lbl_1_data_E8[0]++;
|
||||
temp_f31 = lbl_1_data_E8[0] / 360.0f;
|
||||
temp_f31 = lbl_1_data_E8[0] / (6 * REFRESH_RATE_F);
|
||||
if (temp_f31 > 1.0f) {
|
||||
temp_f31 = 1.0f;
|
||||
Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF);
|
||||
|
|
@ -752,15 +753,15 @@ void fn_1_2D28(omObjData *object)
|
|||
break;
|
||||
case 0x1:
|
||||
lbl_1_data_F0[0]++;
|
||||
var_f31 = lbl_1_data_F0[0] / 120.0f;
|
||||
var_f31 = lbl_1_data_F0[0] / (2 * REFRESH_RATE_F);
|
||||
if (var_f31 > 1.0f) {
|
||||
var_f31 = 1.0f;
|
||||
lbl_1_data_F0[0] = 0;
|
||||
lbl_1_data_F0[1] = 0xF;
|
||||
lbl_1_data_F0[1] = REFRESH_RATE / 4;
|
||||
lbl_1_data_EC[1] = (lbl_1_data_EC[0] + 1);
|
||||
lbl_1_data_EC[0] = 0x63;
|
||||
}
|
||||
if (110.0f == lbl_1_data_F0[0]) {
|
||||
if ((11 * REFRESH_RATE_F / 6) == lbl_1_data_F0[0]) {
|
||||
HuAudFXPlay(0x70A);
|
||||
}
|
||||
var_f31 = sin((M_PI * (90.0f * var_f31)) / 180.0);
|
||||
|
|
@ -771,11 +772,11 @@ void fn_1_2D28(omObjData *object)
|
|||
HuAudFXPlay(0x713);
|
||||
}
|
||||
lbl_1_data_F0[0]++;
|
||||
var_f31 = lbl_1_data_F0[0] / 60.0f;
|
||||
var_f31 = lbl_1_data_F0[0] / REFRESH_RATE_F;
|
||||
if (var_f31 > 1.0f) {
|
||||
var_f31 = 1.0f;
|
||||
lbl_1_data_F0[0] = 0;
|
||||
lbl_1_data_F0[1] = 0xF;
|
||||
lbl_1_data_F0[1] = REFRESH_RATE / 4;
|
||||
lbl_1_data_EC[1] = lbl_1_data_EC[0] + 1;
|
||||
lbl_1_data_EC[0] = 0x63;
|
||||
HuAudFXPlay(0x714);
|
||||
|
|
@ -788,7 +789,7 @@ void fn_1_2D28(omObjData *object)
|
|||
if (lbl_1_data_F0[0] == 0) {
|
||||
HuAudFXPlay(0x711);
|
||||
}
|
||||
if (++lbl_1_data_F0[0] > 12.0) {
|
||||
if (++lbl_1_data_F0[0] > (0.2 * REFRESH_RATE)) {
|
||||
if (fn_1_4EA8(0x40) != 0) {
|
||||
fn_1_4EEC(0x40, 0);
|
||||
fn_1_F228();
|
||||
|
|
@ -801,7 +802,7 @@ void fn_1_2D28(omObjData *object)
|
|||
break;
|
||||
case 0x4:
|
||||
lbl_1_data_F0[0]++;
|
||||
var_f31 = lbl_1_data_F0[0] / 360.0f;
|
||||
var_f31 = lbl_1_data_F0[0] / (6 * REFRESH_RATE_F);
|
||||
if (var_f31 > 1.0f) {
|
||||
var_f31 = 1.0f;
|
||||
Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF);
|
||||
|
|
@ -1021,7 +1022,7 @@ void fn_1_46E0(omObjData *object)
|
|||
break;
|
||||
case 0x1:
|
||||
lbl_1_data_108[0]++;
|
||||
var_f31 = lbl_1_data_108[0] / 60.0f;
|
||||
var_f31 = lbl_1_data_108[0] / REFRESH_RATE_F;
|
||||
if (var_f31 > 1.0f) {
|
||||
var_f31 = 1.0f;
|
||||
lbl_1_data_108[0] = 0;
|
||||
|
|
@ -1083,7 +1084,7 @@ void fn_1_4B44(omObjData *object)
|
|||
switch (lbl_1_data_104[0]) {
|
||||
case 0:
|
||||
lbl_1_data_108[0]++;
|
||||
var_f31 = lbl_1_data_108[0] / 60.0f;
|
||||
var_f31 = lbl_1_data_108[0] / REFRESH_RATE_F;
|
||||
if (var_f31 > 1.0f) {
|
||||
var_f31 = 1.0f;
|
||||
lbl_1_data_108[0] = 0;
|
||||
|
|
@ -1094,7 +1095,7 @@ void fn_1_4B44(omObjData *object)
|
|||
break;
|
||||
case 1:
|
||||
lbl_1_data_108[0]++;
|
||||
var_f31 = (lbl_1_data_108[0] / 30.0f);
|
||||
var_f31 = (lbl_1_data_108[0] / (0.5f * REFRESH_RATE_F));
|
||||
if (var_f31 >= 1.0f) {
|
||||
lbl_1_data_108[0] = 0;
|
||||
lbl_1_data_104[0] = 0;
|
||||
|
|
@ -1301,7 +1302,7 @@ void fn_1_57B4(unkStruct6 *arg0)
|
|||
}
|
||||
}
|
||||
if ((arg0->unk2 & 4) != 0) {
|
||||
if (++arg0->unk3E > 0x50) {
|
||||
if (++arg0->unk3E > (4 * REFRESH_RATE / 3)) {
|
||||
arg0->unk3C = ((arg0->unk3C - 10) < 0) ? 0 : arg0->unk3C - 10;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,12 @@
|
|||
#include "game/pad.h"
|
||||
#include "math.h"
|
||||
#include "string.h"
|
||||
#include "version.h"
|
||||
|
||||
|
||||
#ifdef __MWERKS__
|
||||
#include "game/audio.h"
|
||||
#endif
|
||||
|
||||
|
||||
// bss
|
||||
|
|
@ -78,7 +84,7 @@ void fn_1_AEE4(omObjData *arg0)
|
|||
temp_r31->unk30.x = temp_r31->unk30.y = temp_r31->unk30.z = 0.0f;
|
||||
temp_r31->unk3C.y = 90.0f;
|
||||
temp_r31->unkC = 0;
|
||||
temp_r31->unkE = 0x78;
|
||||
temp_r31->unkE = 2 * REFRESH_RATE_F;
|
||||
temp_r31->unk10 = temp_r31->unk12 = temp_r31->unk14 = 0;
|
||||
if (temp_r31->unk8 == 5) {
|
||||
var_f31 = 350.0f;
|
||||
|
|
@ -173,7 +179,7 @@ void fn_1_B3A4(omObjData *arg0)
|
|||
var_r31->unk18.y = 0.0f;
|
||||
var_r31->unk18.z = var_r31->unk24.z + (lbl_1_bss_88[var_r28].z - var_r31->unk24.z) * var_f31;
|
||||
var_r31->unk14++;
|
||||
var_f31 = var_r31->unk14 / 20.0f;
|
||||
var_f31 = var_r31->unk14 / (REFRESH_RATE_F / 3.0f);
|
||||
if (var_f31 >= 1.0f) {
|
||||
var_f31 = 1.0f;
|
||||
}
|
||||
|
|
@ -181,7 +187,7 @@ void fn_1_B3A4(omObjData *arg0)
|
|||
break;
|
||||
case 7:
|
||||
var_r31->unkC++;
|
||||
var_f31 = (f32)var_r31->unkC / 40.0f;
|
||||
var_f31 = (f32)var_r31->unkC / (2.0f * REFRESH_RATE_F / 3);
|
||||
if (var_f31 >= 1.0f) {
|
||||
var_f31 = 1.0f;
|
||||
var_r31->unkC = 0;
|
||||
|
|
@ -239,7 +245,7 @@ void fn_1_B884(omObjData *arg0, unkObjStruct *arg1)
|
|||
|
||||
switch (lbl_1_bss_74) {
|
||||
case 0:
|
||||
lbl_1_data_250 -= 0.5f;
|
||||
lbl_1_data_250 -= (REFRESH_RATE_F / 120);
|
||||
if (lbl_1_data_250 <= 45.0f) {
|
||||
lbl_1_data_250 = 45.0f;
|
||||
lbl_1_bss_74++;
|
||||
|
|
@ -258,14 +264,14 @@ void fn_1_B884(omObjData *arg0, unkObjStruct *arg1)
|
|||
return;
|
||||
case 1:
|
||||
arg1->unkE++;
|
||||
var_f31 = arg1->unkE / 10.0f;
|
||||
var_f31 = arg1->unkE / (REFRESH_RATE_F / 6.0f);
|
||||
if (var_f31 >= 1.0f) {
|
||||
var_f31 = 1.0f;
|
||||
}
|
||||
var_f30 = 225.0f;
|
||||
arg1->unk30.y = arg1->unk68 + (var_f31 * (var_f30 - arg1->unk68));
|
||||
arg1->unkC++;
|
||||
var_f31 = arg1->unkC / 50.0f;
|
||||
var_f31 = arg1->unkC / (5.0f * REFRESH_RATE_F / 6.0f);
|
||||
if (var_f31 >= 1.0f) {
|
||||
var_f31 = 1.0f;
|
||||
arg1->unkC = arg1->unkE = 0;
|
||||
|
|
@ -294,7 +300,7 @@ void fn_1_B884(omObjData *arg0, unkObjStruct *arg1)
|
|||
}
|
||||
break;
|
||||
case 2:
|
||||
lbl_1_data_250++;
|
||||
lbl_1_data_250 += REFRESH_RATE_F / 60.0f;
|
||||
if (lbl_1_data_250 >= lbl_1_data_0[arg1->unk60]) {
|
||||
lbl_1_data_250 = lbl_1_data_0[arg1->unk60];
|
||||
lbl_1_bss_74++;
|
||||
|
|
@ -309,7 +315,7 @@ void fn_1_B884(omObjData *arg0, unkObjStruct *arg1)
|
|||
var_f30 += 360.0f;
|
||||
}
|
||||
arg1->unkC++;
|
||||
var_f31 = arg1->unkC / 10.0f;
|
||||
var_f31 = arg1->unkC / (REFRESH_RATE_F / 6.0f);
|
||||
if (var_f31 < 1.0f) {
|
||||
arg1->unk30.y = arg1->unk68 + (var_f31 * (var_f30 - arg1->unk68));
|
||||
}
|
||||
|
|
@ -320,7 +326,7 @@ void fn_1_B884(omObjData *arg0, unkObjStruct *arg1)
|
|||
return;
|
||||
case 3:
|
||||
arg1->unkE++;
|
||||
var_f31 = arg1->unkE / 10.0f;
|
||||
var_f31 = arg1->unkE / (REFRESH_RATE_F / 6.0f);
|
||||
if (var_f31 >= 1.0f) {
|
||||
var_f31 = 1.0f;
|
||||
arg1->unkC = arg1->unkE = 0;
|
||||
|
|
@ -332,7 +338,7 @@ void fn_1_B884(omObjData *arg0, unkObjStruct *arg1)
|
|||
arg1->unk30.y = fn_1_927C(arg1->unk6C, var_f30, var_f31);
|
||||
return;
|
||||
case 4:
|
||||
if (++arg1->unkC > 15) {
|
||||
if (++arg1->unkC > (REFRESH_RATE / 4)) {
|
||||
lbl_1_bss_74++;
|
||||
}
|
||||
break;
|
||||
|
|
@ -443,7 +449,7 @@ void fn_1_C1D4(omObjData *arg0, unkObjStruct *arg1)
|
|||
if (var_f30 < 5.0f) {
|
||||
if (arg1->unk5A != 0) {
|
||||
arg1->unk56++;
|
||||
var_f31 = arg1->unk56 / 40.0f;
|
||||
var_f31 = arg1->unk56 / (2.0f * REFRESH_RATE_F / 3.0f);
|
||||
if (var_f31 > 1.0f) {
|
||||
var_f31 = 1.0f;
|
||||
arg1->unk5A = 0;
|
||||
|
|
@ -523,7 +529,7 @@ void fn_1_C944(omObjData *arg0, unkObjStruct *arg1)
|
|||
}
|
||||
}
|
||||
if ((arg1->unk48 & 1) != 0) {
|
||||
arg1->unk68 -= 1.0f;
|
||||
arg1->unk68 -= REFRESH_RATE_F / 60.0f;
|
||||
if ((var_r30 != -1) && (lbl_1_data_0[var_r30] > arg1->unk68)) {
|
||||
arg1->unk68 = lbl_1_data_0[var_r30];
|
||||
arg1->unk4A = var_r30;
|
||||
|
|
@ -531,7 +537,7 @@ void fn_1_C944(omObjData *arg0, unkObjStruct *arg1)
|
|||
}
|
||||
}
|
||||
else if ((arg1->unk48 & 2) != 0) {
|
||||
arg1->unk68++;
|
||||
arg1->unk68 += REFRESH_RATE_F / 60.0f;
|
||||
if ((var_r30 != -1) && (lbl_1_data_0[var_r30] < arg1->unk68)) {
|
||||
arg1->unk68 = lbl_1_data_0[var_r30];
|
||||
arg1->unk4A = var_r30;
|
||||
|
|
@ -659,7 +665,7 @@ void fn_1_D24C(unkObjStruct *arg0, f32 arg1, f32 arg2)
|
|||
f32 var_f30;
|
||||
f32 var_f31;
|
||||
|
||||
var_f28 = 10.0f;
|
||||
var_f28 = REFRESH_RATE_F / 6.0f;
|
||||
arg0->unk6C = arg1;
|
||||
arg0->unk70 = arg2;
|
||||
var_f31 = ABS(arg1 - arg2);
|
||||
|
|
@ -702,7 +708,7 @@ void fn_1_D34C(omObjData *arg0, unkObjStruct *arg1)
|
|||
arg1->unk6C = 0.0f;
|
||||
arg1->unk48 = 0;
|
||||
lbl_1_data_14[arg1->unk4A] = 0;
|
||||
if (fn_1_17CC() < 270.0f) {
|
||||
if (fn_1_17CC() < (4.5f * REFRESH_RATE)) {
|
||||
fn_1_1708();
|
||||
}
|
||||
fn_1_F4D4(arg1, 15, 4);
|
||||
|
|
@ -793,7 +799,7 @@ void fn_1_D7F8(omObjData *arg0, unkObjStruct *arg1)
|
|||
}
|
||||
break;
|
||||
case 1:
|
||||
if (++arg1->unkC > 0xA) {
|
||||
if (++arg1->unkC > (REFRESH_RATE / 6)) {
|
||||
arg1->unkC = 0;
|
||||
Hu3DMotionSpeedSet(arg0->model[0], 2.0f);
|
||||
if ((arg1->unk6C - arg1->unk68) > 0.0f) {
|
||||
|
|
@ -808,7 +814,7 @@ void fn_1_D7F8(omObjData *arg0, unkObjStruct *arg1)
|
|||
break;
|
||||
case 2:
|
||||
arg1->unkC++;
|
||||
var_f31 = arg1->unkC / 30.0f;
|
||||
var_f31 = arg1->unkC / (0.5f * REFRESH_RATE_F);
|
||||
arg1->unk18.x = ((410.0f + (var_f31 * (arg1->unk5C - 410.0f))) * cosd(lbl_1_data_0[arg1->unk4A]));
|
||||
arg1->unk18.z = ((410.0f + (var_f31 * (arg1->unk5C - 410.0f))) * sind(lbl_1_data_0[arg1->unk4A]));
|
||||
if (var_f31 >= 1.0f) {
|
||||
|
|
@ -825,7 +831,7 @@ void fn_1_D7F8(omObjData *arg0, unkObjStruct *arg1)
|
|||
arg1->unk30.y = fn_1_927C(arg1->unk68, arg1->unk6C, var_f31);
|
||||
break;
|
||||
case 3:
|
||||
if (++arg1->unkC > 0x3C) {
|
||||
if (++arg1->unkC > (s32)REFRESH_RATE_F) {
|
||||
if (fn_1_4E54(arg1->unk4A) == 0) {
|
||||
fn_1_4EEC(7U, 3U);
|
||||
}
|
||||
|
|
@ -852,7 +858,7 @@ void fn_1_D7F8(omObjData *arg0, unkObjStruct *arg1)
|
|||
break;
|
||||
}
|
||||
if (fn_1_17F4() >= 0) {
|
||||
if (fn_1_17CC() < 270.0f) {
|
||||
if (fn_1_17CC() < (4.5f * REFRESH_RATE)) {
|
||||
fn_1_1708();
|
||||
return;
|
||||
}
|
||||
|
|
@ -874,7 +880,11 @@ void fn_1_E034(omObjData *arg0, unkObjStruct *arg1)
|
|||
switch (arg1->unk60) {
|
||||
case 0:
|
||||
lbl_1_bss_84 = lbl_1_data_0[arg1->unk4A];
|
||||
#if VERSION_NTSC
|
||||
Hu3DMotionShiftSet(arg0->model[0], arg0->motion[4], 0.0f, 7.0f, HU3D_MOTATTR_LOOP);
|
||||
#else
|
||||
Hu3DMotionSet(arg0->model[0], arg0->motion[4]);
|
||||
#endif
|
||||
HuAudCharVoicePlay(arg1->unk8, 0x125);
|
||||
arg1->unk60++;
|
||||
break;
|
||||
|
|
@ -898,7 +908,7 @@ void fn_1_E034(omObjData *arg0, unkObjStruct *arg1)
|
|||
}
|
||||
break;
|
||||
case 2:
|
||||
lbl_1_bss_84++;
|
||||
lbl_1_bss_84 += REFRESH_RATE_F / 60.0f;
|
||||
if (lbl_1_bss_84 >= 135.0f) {
|
||||
lbl_1_bss_84 = 135.0f;
|
||||
arg1->unkE = arg1->unk10 = 0;
|
||||
|
|
@ -915,7 +925,7 @@ void fn_1_E034(omObjData *arg0, unkObjStruct *arg1)
|
|||
var_f30 += 360.0f;
|
||||
}
|
||||
arg1->unkC++;
|
||||
var_f31 = arg1->unkC / 10.0f;
|
||||
var_f31 = arg1->unkC / (REFRESH_RATE_F / 6.0f);
|
||||
if (var_f31 >= 1.0f) {
|
||||
var_f31 = 1.0f;
|
||||
}
|
||||
|
|
@ -924,14 +934,14 @@ void fn_1_E034(omObjData *arg0, unkObjStruct *arg1)
|
|||
break;
|
||||
case 3:
|
||||
arg1->unkE++;
|
||||
var_f31 = arg1->unkE / 10.0f;
|
||||
var_f31 = arg1->unkE / (REFRESH_RATE_F / 6.0f);
|
||||
if (var_f31 >= 1.0f) {
|
||||
var_f31 = 1.0f;
|
||||
}
|
||||
var_f30 = 315.0f;
|
||||
arg1->unk30.y = arg1->unk6C + (var_f31 * (var_f30 - arg1->unk6C));
|
||||
arg1->unk10++;
|
||||
var_f31 = arg1->unk10 / 50.0f;
|
||||
var_f31 = arg1->unk10 / (5.0f * REFRESH_RATE_F / 6.0f);
|
||||
if (var_f31 >= 1.0f) {
|
||||
var_f31 = 1.0f;
|
||||
arg1->unkC = arg1->unkE = arg1->unk10 = 0;
|
||||
|
|
@ -953,12 +963,12 @@ void fn_1_E034(omObjData *arg0, unkObjStruct *arg1)
|
|||
}
|
||||
break;
|
||||
case 4:
|
||||
lbl_1_bss_84 -= 0.5f;
|
||||
lbl_1_bss_84 -= REFRESH_RATE_F / 120;
|
||||
if (lbl_1_bss_84 <= 110.0f) {
|
||||
lbl_1_bss_84 = 110.0f;
|
||||
arg1->unk60 = 0;
|
||||
arg1->unkC = 0;
|
||||
arg1->unkE = (3 - lbl_1_data_1D8) * 0x1E;
|
||||
arg1->unkE = (3 - lbl_1_data_1D8) * (s32)(0.5f * REFRESH_RATE_F);
|
||||
arg1->unk14 = 0;
|
||||
arg1->unk3C.y = 90.0f;
|
||||
fn_1_F4D4(arg1, 15, 1);
|
||||
|
|
@ -973,7 +983,7 @@ void fn_1_E034(omObjData *arg0, unkObjStruct *arg1)
|
|||
var_f30 += 360.0f;
|
||||
}
|
||||
arg1->unk10++;
|
||||
var_f31 = arg1->unk10 / 10.0f;
|
||||
var_f31 = arg1->unk10 / (REFRESH_RATE_F / 6.0f);
|
||||
if (var_f31 >= 1.0f) {
|
||||
var_f31 = 1.0f;
|
||||
}
|
||||
|
|
@ -1025,7 +1035,7 @@ u8 fn_1_E8AC(omObjData *arg0, unkObjStruct *arg1)
|
|||
case 2:
|
||||
arg1->unkC++;
|
||||
arg1->unk68 += 40.0f;
|
||||
var_f31 = arg1->unkC / 90.0f;
|
||||
var_f31 = arg1->unkC / (1.5f * REFRESH_RATE_F);
|
||||
if (var_f31 >= 1.0f) {
|
||||
var_f31 = 1.0f;
|
||||
arg1->unk60++;
|
||||
|
|
@ -1165,7 +1175,7 @@ void fn_1_F228(void)
|
|||
temp_r31->unkA--;
|
||||
temp_r31->unk24 = temp_r31->unk18;
|
||||
temp_r31->unkC = 0;
|
||||
temp_r31->unkE = 0x1E;
|
||||
temp_r31->unkE = (s32)(0.5f * REFRESH_RATE_F);
|
||||
temp_r31->unk14 = 0;
|
||||
fn_1_F4D4(temp_r31, 15, 1);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@
|
|||
#include "game/sprite.h"
|
||||
|
||||
#include "ext_math.h"
|
||||
#include "version.h"
|
||||
|
||||
#undef ABS
|
||||
#define ABS(x) ((0 > (x)) ? -(x) : (x))
|
||||
|
|
@ -222,20 +223,20 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2)
|
|||
|
||||
espBankSet(arg0[arg1 + 1], 10);
|
||||
espBankSet(arg0[arg1 + 4], 11);
|
||||
if (36000 <= arg2) {
|
||||
arg2 = 35999;
|
||||
if (600 * REFRESH_RATE <= arg2) {
|
||||
arg2 = 600 * REFRESH_RATE - 1;
|
||||
}
|
||||
var_r30 = arg2 / 3600;
|
||||
arg2 -= var_r30 * 3600;
|
||||
var_r30 = arg2 / (60 * REFRESH_RATE);
|
||||
arg2 -= var_r30 * (60 * REFRESH_RATE);
|
||||
if (var_r30 > 9) {
|
||||
var_r30 = 9;
|
||||
}
|
||||
espBankSet(arg0[arg1], var_r30);
|
||||
var_r30 = arg2 / 60;
|
||||
arg2 -= var_r30 * 60;
|
||||
var_r30 = arg2 / REFRESH_RATE;
|
||||
arg2 -= var_r30 * REFRESH_RATE;
|
||||
espBankSet(arg0[arg1 + 2], var_r30 / 10);
|
||||
espBankSet(arg0[arg1 + 3], var_r30 % 10);
|
||||
var_r30 = 101.5f * arg2 / 60.0f;
|
||||
var_r30 = 101.5f * arg2 / REFRESH_RATE;
|
||||
espBankSet(arg0[arg1 + 5], var_r30 / 10);
|
||||
espBankSet(arg0[arg1 + 6], var_r30 % 10);
|
||||
}
|
||||
|
|
@ -871,7 +872,7 @@ void fn_1_3404(Work53E8 *arg0)
|
|||
}
|
||||
arg0->unk94 = 1;
|
||||
arg0->unk8C = arg0->unk0[1] + ((frandf() * arg0->unk0[1]) / 2);
|
||||
temp_f25 = 1.0f - (lbl_1_bss_1A4 / 3600.0f);
|
||||
temp_f25 = 1.0f - (lbl_1_bss_1A4 / (60.0f * REFRESH_RATE));
|
||||
if (0.25f < temp_f25) {
|
||||
arg0->unk8C *= arg0->unk90 / (arg0->unk0[2] * temp_f25);
|
||||
}
|
||||
|
|
@ -1490,7 +1491,7 @@ void fn_1_5C04(omObjData *object)
|
|||
if (2.0f > temp_f23) {
|
||||
temp_r31->unk24.x--;
|
||||
if (0.0f > temp_r31->unk24.x) {
|
||||
temp_r31->unk24.x = 60.0f;
|
||||
temp_r31->unk24.x = 1.0f * REFRESH_RATE;
|
||||
if (frandmod(100) > 50) {
|
||||
temp_r31->unk24.y = (frandf() * 220.0f) + 80.0f;
|
||||
}
|
||||
|
|
@ -1618,7 +1619,7 @@ void fn_1_74F4(s32 arg0)
|
|||
work->unk18.z = 0;
|
||||
work->unk38 = 0;
|
||||
work->unk18.y = 2;
|
||||
work->unk24.x = (frandf() * 180.0f) + 180.0f;
|
||||
work->unk24.x = (frandf() * (3.0f * REFRESH_RATE)) + (3.0f * REFRESH_RATE);
|
||||
if (arg0) {
|
||||
work->unk18.y = 3;
|
||||
work->unk18.x = 180.0f - (frandf() * 120.0f);
|
||||
|
|
@ -1820,7 +1821,7 @@ void fn_1_8D58(omObjData *object)
|
|||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
|
||||
object->func = fn_1_AA4C;
|
||||
}
|
||||
lbl_1_bss_24 += (1.0f / 60.0f);
|
||||
lbl_1_bss_24 += (1.0f / REFRESH_RATE);
|
||||
if (360.0f <= lbl_1_bss_24) {
|
||||
lbl_1_bss_24 -= 360.0f;
|
||||
}
|
||||
|
|
@ -1849,8 +1850,8 @@ void fn_1_8D58(omObjData *object)
|
|||
|
||||
case 1002:
|
||||
lbl_1_bss_28++;
|
||||
fn_1_13DC(lbl_1_bss_28 / 180.0f, &lbl_1_data_40);
|
||||
if (180.0f <= lbl_1_bss_28) {
|
||||
fn_1_13DC(lbl_1_bss_28 / (3.0f * REFRESH_RATE), &lbl_1_data_40);
|
||||
if ((3.0f * REFRESH_RATE) <= lbl_1_bss_28) {
|
||||
object->work[0]++;
|
||||
fn_1_1350(&lbl_1_data_34, &lbl_1_data_40, &lbl_1_data_4C);
|
||||
}
|
||||
|
|
@ -1868,19 +1869,19 @@ void fn_1_8D58(omObjData *object)
|
|||
}
|
||||
if (!MGSeqStatGet(lbl_1_bss_19E)) {
|
||||
object->work[0]++;
|
||||
lbl_1_bss_1A4 = 3600;
|
||||
lbl_1_bss_19C = MGSeqTimerCreate(lbl_1_bss_1A4 / 60);
|
||||
lbl_1_bss_1A4 = 60 * REFRESH_RATE;
|
||||
lbl_1_bss_19C = MGSeqTimerCreate(lbl_1_bss_1A4 / REFRESH_RATE);
|
||||
lbl_1_bss_19E = -1;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 1004:
|
||||
MGSeqParamSet(lbl_1_bss_19C, 1, (lbl_1_bss_1A4 + 59) / 60);
|
||||
MGSeqParamSet(lbl_1_bss_19C, 1, (lbl_1_bss_1A4 + REFRESH_RATE - 1) / REFRESH_RATE);
|
||||
lbl_1_bss_1A4--;
|
||||
if (lbl_1_bss_1A4 < 0) {
|
||||
object->work[0] = 1005;
|
||||
lbl_1_bss_1A4 = 3600;
|
||||
lbl_1_bss_1A4 = 60 * REFRESH_RATE;
|
||||
lbl_1_bss_28 = 0;
|
||||
}
|
||||
break;
|
||||
|
|
@ -1912,9 +1913,9 @@ void fn_1_8D58(omObjData *object)
|
|||
|
||||
case 1006:
|
||||
lbl_1_bss_28++;
|
||||
fn_1_13DC(lbl_1_bss_28 / 120.0f, &lbl_1_data_64);
|
||||
if (120.0f <= lbl_1_bss_28) {
|
||||
lbl_1_bss_28 = 120.0f;
|
||||
fn_1_13DC(lbl_1_bss_28 / (2.0f * REFRESH_RATE), &lbl_1_data_64);
|
||||
if ((2.0f * REFRESH_RATE) <= lbl_1_bss_28) {
|
||||
lbl_1_bss_28 = 2.0f * REFRESH_RATE;
|
||||
for (i = 0; i < 4; i++) {
|
||||
float temp;
|
||||
if (OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unk98 != 2010) {
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
#include "version.h"
|
||||
#define HUSPR_USE_OLD_DEFS
|
||||
#include "ext_math.h"
|
||||
#include "game/audio.h"
|
||||
|
|
@ -213,6 +214,9 @@ M442StructBssC084 lbl_1_bss_C084[11][11];
|
|||
M442StructBssC05C lbl_1_bss_C05C[2];
|
||||
M442StructBss5C lbl_1_bss_5C[0x400];
|
||||
float lbl_1_bss_20[0xF];
|
||||
#if VERSION_PAL
|
||||
s32 lbl_1_bss_20_pal;
|
||||
#endif
|
||||
Vec lbl_1_bss_14;
|
||||
s16 lbl_1_bss_12;
|
||||
s16 lbl_1_bss_10;
|
||||
|
|
@ -268,9 +272,9 @@ u32 fn_1_384(void)
|
|||
void fn_1_394(omObjData *object)
|
||||
{
|
||||
lbl_1_bss_11F30 = 0;
|
||||
lbl_1_bss_11F24 = 60;
|
||||
lbl_1_bss_11F24 = REFRESH_RATE;
|
||||
lbl_1_bss_11F1C = 60;
|
||||
lbl_1_bss_11F1A = 60;
|
||||
lbl_1_bss_11F1A = REFRESH_RATE;
|
||||
lbl_1_bss_11F18 = -1;
|
||||
lbl_1_bss_11F16 = 0;
|
||||
lbl_1_bss_11EE8 = 0;
|
||||
|
|
@ -286,19 +290,19 @@ void fn_1_448(omObjData *object)
|
|||
|
||||
switch (lbl_1_bss_11F30) {
|
||||
case 0:
|
||||
if (lbl_1_bss_11F24 == 60) {
|
||||
if (lbl_1_bss_11F24 == REFRESH_RATE) {
|
||||
HuAudFXPlay(0x71B);
|
||||
HuAudFXPlay(0x71F);
|
||||
}
|
||||
if (--lbl_1_bss_11F24 == 0) {
|
||||
lbl_1_bss_11F30 = 1;
|
||||
lbl_1_bss_11F24 = 0x78;
|
||||
lbl_1_bss_11F24 = 2 * REFRESH_RATE;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (--lbl_1_bss_11F24 == 0) {
|
||||
lbl_1_bss_11F30 = 2;
|
||||
lbl_1_bss_11F24 = 0x78;
|
||||
lbl_1_bss_11F24 = 2 * REFRESH_RATE;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
|
|
@ -320,7 +324,7 @@ void fn_1_448(omObjData *object)
|
|||
if (--lbl_1_bss_11F1A == 0) {
|
||||
lbl_1_bss_11F1C -= 1;
|
||||
MGSeqParamSet(lbl_1_bss_10, 1, lbl_1_bss_11F1C);
|
||||
lbl_1_bss_11F1A = 0x3C;
|
||||
lbl_1_bss_11F1A = REFRESH_RATE;
|
||||
}
|
||||
if (lbl_1_bss_11F1C == 0 || lbl_1_bss_11EE4 == 0) {
|
||||
lbl_1_bss_11F30 = 5;
|
||||
|
|
@ -337,13 +341,13 @@ void fn_1_448(omObjData *object)
|
|||
if (GWMGRecordGet(4) < lbl_1_bss_11EE8) {
|
||||
GWMGRecordSet(4, lbl_1_bss_11EE8);
|
||||
lbl_1_bss_11F30 = 6;
|
||||
lbl_1_bss_11F24 = 60;
|
||||
lbl_1_bss_11F24 = REFRESH_RATE;
|
||||
lbl_1_bss_12 = MGSeqCreate(0xE, lbl_1_bss_11EE8);
|
||||
fn_1_94AC(1);
|
||||
}
|
||||
else {
|
||||
lbl_1_bss_11F30 = 9;
|
||||
lbl_1_bss_11F24 = 60;
|
||||
lbl_1_bss_11F24 = REFRESH_RATE;
|
||||
}
|
||||
mgRecordExtra = lbl_1_bss_11EE8;
|
||||
}
|
||||
|
|
@ -351,7 +355,7 @@ void fn_1_448(omObjData *object)
|
|||
case 6:
|
||||
if (MGSeqStatGet(lbl_1_bss_12) == 0) {
|
||||
lbl_1_bss_11F30 = 9;
|
||||
lbl_1_bss_11F24 = 60;
|
||||
lbl_1_bss_11F24 = REFRESH_RATE;
|
||||
}
|
||||
break;
|
||||
case 9:
|
||||
|
|
@ -363,7 +367,7 @@ void fn_1_448(omObjData *object)
|
|||
else {
|
||||
HuAudSStreamPlay(4);
|
||||
}
|
||||
lbl_1_bss_11F24 = 0xD2;
|
||||
lbl_1_bss_11F24 = 3.5f * REFRESH_RATE;
|
||||
}
|
||||
break;
|
||||
case 11:
|
||||
|
|
@ -410,6 +414,10 @@ void fn_1_A90(Process *arg0)
|
|||
lbl_1_bss_11F28[0] = lbl_1_bss_11F28[1] = lbl_1_bss_11F28[2] = lbl_1_bss_11F28[3] = -1;
|
||||
lbl_1_bss_11F20 = 0;
|
||||
|
||||
#if VERSION_PAL
|
||||
lbl_1_bss_20_pal = fn_1_90FC();
|
||||
#endif
|
||||
|
||||
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
||||
if (GWPlayerCfg[var_r31].iscom != 1) {
|
||||
break;
|
||||
|
|
@ -495,7 +503,11 @@ void fn_1_E88(omObjData *object)
|
|||
memset(var_r30, 0, sizeof(M442MainWork));
|
||||
var_r30->unk_02 = lbl_1_bss_11F20++;
|
||||
var_r30->unk_04 = GWPlayerCfg[var_r30->unk_02].pad_idx;
|
||||
#if VERSION_NTSC
|
||||
var_r30->unk_0C = fn_1_90FC();
|
||||
#else
|
||||
var_r30->unk_0C = lbl_1_bss_20_pal;
|
||||
#endif
|
||||
var_r26 = GWPlayerCfg[var_r30->unk_02].character;
|
||||
var_r30->unk_10 = var_r26;
|
||||
var_r30->unk_12 = GWPlayerCfg[var_r30->unk_02].diff;
|
||||
|
|
@ -740,7 +752,7 @@ void fn_1_1230(omObjData *object)
|
|||
var_r30->unk_06 = var_f29 * sind(var_r30->unk_18);
|
||||
var_r30->unk_07 = var_f29 * -cosd(var_r30->unk_18);
|
||||
|
||||
if (++var_r30->unk_7C > 300) {
|
||||
if (++var_r30->unk_7C > 5 * REFRESH_RATE) {
|
||||
var_r30->unk_00_field2 = 1;
|
||||
var_r30->unk_7C = 0;
|
||||
}
|
||||
|
|
@ -863,18 +875,18 @@ void fn_1_2254(omObjData *object)
|
|||
if (var_f27 > 72.0f) {
|
||||
var_f27 = 72.0f;
|
||||
}
|
||||
var_f26 = (10.0f * var_f27) / 72.0f;
|
||||
var_f26 = ((VERSION_NTSC ? 10.0f : 12.0f) * var_f27) / 72.0f;
|
||||
var_r31->unk_24.x = var_f31 * var_f26;
|
||||
var_r31->unk_24.z = var_f30 * var_f26;
|
||||
var_r31->unk_1C = var_f26;
|
||||
object->rot.y = fn_1_85E8(object->rot.y, atan2d(var_r31->unk_24.x, var_r31->unk_24.z), 0.5f);
|
||||
if (var_r31->unk_1C < 7.5f) {
|
||||
if (var_r31->unk_1C < (450.0f / REFRESH_RATE)) {
|
||||
var_r29 = 1;
|
||||
var_f28 = var_r31->unk_1C / 7.5f;
|
||||
var_f28 = var_r31->unk_1C / (450.0f / REFRESH_RATE);
|
||||
}
|
||||
else {
|
||||
var_r29 = 2;
|
||||
var_f28 = var_r31->unk_1C / 10.0f;
|
||||
var_f28 = var_r31->unk_1C / (VERSION_NTSC ? 10.0f : 12.0f);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
|
@ -935,7 +947,7 @@ void fn_1_2254(omObjData *object)
|
|||
}
|
||||
if ((var_r31->unk_48 >= 0) && (lbl_1_bss_C9F8[var_r31->unk_48].unk_0C < 3)) {
|
||||
lbl_1_bss_C9F8[var_r31->unk_48].unk_0C += 1;
|
||||
lbl_1_bss_C9F8[var_r31->unk_48].unk_0E = 120;
|
||||
lbl_1_bss_C9F8[var_r31->unk_48].unk_0E = 2 * REFRESH_RATE;
|
||||
HuAudFXPlay(0x71C);
|
||||
if (lbl_1_bss_C9F8[var_r31->unk_48].unk_0C == 3) {
|
||||
var_r31->unk_00_field2 = 1;
|
||||
|
|
@ -998,21 +1010,27 @@ void fn_1_2254(omObjData *object)
|
|||
}
|
||||
switch (var_r31->unk_40) {
|
||||
case 0:
|
||||
var_r31->unk_44 = 0.75 + sind(((90.0f * (var_r31->unk_42 % 15)) / 15.0f));
|
||||
if ((var_r31->unk_42 % 20) == 0) {
|
||||
omVibrate(var_r31->unk_02, 0xC, 0xC, 0);
|
||||
var_r31->unk_44 = 0.75 + sind(((90.0f * (var_r31->unk_42 % (REFRESH_RATE / 4))) / (float)(REFRESH_RATE / 4)));
|
||||
if (VERSION_NTSC ? 1 : var_r31->unk_0C == 1) {
|
||||
if ((var_r31->unk_42 % (REFRESH_RATE / 3)) == 0) {
|
||||
omVibrate(var_r31->unk_02, 0xC, 0xC, 0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
var_r31->unk_44 = 0.75 + (0.75 * sind(((90.0f * (var_r31->unk_42 % 30)) / 30.0f)));
|
||||
if ((var_r31->unk_42 % 20) == 0) {
|
||||
omVibrate(var_r31->unk_02, 0xC, 4, 2);
|
||||
var_r31->unk_44 = 0.75 + (0.75 * sind(((90.0f * (var_r31->unk_42 % (REFRESH_RATE / 2))) / (0.5f * REFRESH_RATE))));
|
||||
if (VERSION_NTSC ? 1 : var_r31->unk_0C == 1) {
|
||||
if ((var_r31->unk_42 % (REFRESH_RATE / 3)) == 0) {
|
||||
omVibrate(var_r31->unk_02, 0xC, 4, 2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
var_r31->unk_44 = 0.75 + (0.5 * sind(((90.0f * (var_r31->unk_42 % 60)) / 60.0f)));
|
||||
if ((var_r31->unk_42 % 20) == 0) {
|
||||
omVibrate(var_r31->unk_02, 12, 6, 6);
|
||||
var_r31->unk_44 = 0.75 + (0.5 * sind(((90.0f * (var_r31->unk_42 % REFRESH_RATE)) / (1.0f * REFRESH_RATE))));
|
||||
if (VERSION_NTSC ? 1 : var_r31->unk_0C == 1) {
|
||||
if ((var_r31->unk_42 % (REFRESH_RATE / 3)) == 0) {
|
||||
omVibrate(var_r31->unk_02, 12, 6, 6);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
@ -1273,7 +1291,7 @@ void fn_1_3C20(omObjData *object)
|
|||
Hu3DMotionOverlayReset(object->model[0]);
|
||||
Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF);
|
||||
var_r30->unk_3C = 10;
|
||||
var_r30->unk_3C = REFRESH_RATE / 5.5;
|
||||
object->func = fn_1_3C94;
|
||||
}
|
||||
|
||||
|
|
@ -1414,7 +1432,7 @@ void fn_1_4444(s32 arg0)
|
|||
lbl_1_bss_5C[arg0].unk_04 = 0.0f;
|
||||
lbl_1_bss_5C[arg0].unk_08 = 100.0f * (18.0f * ((frand() & 0x1FF) - 256.0f)) / 256;
|
||||
lbl_1_bss_5C[arg0].unk_0C = lbl_1_bss_5C[arg0].unk_00;
|
||||
lbl_1_bss_5C[arg0].unk_10 = 0.41666666f + (1.6666666f * (frand() & 0xFF) / 256);
|
||||
lbl_1_bss_5C[arg0].unk_10 = (25.0f / REFRESH_RATE) + ((100.0f / REFRESH_RATE) * (frand() & 0xFF) / 256);
|
||||
lbl_1_bss_5C[arg0].unk_18 = lbl_1_bss_5C[arg0].unk_1A = (frand() & 0x3F) + 0x20;
|
||||
lbl_1_bss_5C[arg0].unk_1C = 0.1f + (0.9f * (frand() & 0xFF) / 256);
|
||||
lbl_1_bss_5C[arg0].unk_20 = 360.0f * (frand() & 0xFF) / 256;
|
||||
|
|
@ -1965,7 +1983,7 @@ void fn_1_72C4(omObjData *object)
|
|||
Hu3DModelAttrReset(object->model[1], HU3D_ATTR_DISPOFF);
|
||||
var_r31->unk_02 = 1;
|
||||
var_r31->unk_18 = 0.0f;
|
||||
var_r31->unk_0C = 60;
|
||||
var_r31->unk_0C = REFRESH_RATE;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
|
|
@ -1973,7 +1991,7 @@ void fn_1_72C4(omObjData *object)
|
|||
var_r31->unk_18 += 0.05f;
|
||||
}
|
||||
var_r31->unk_02 = 2;
|
||||
var_r31->unk_0C = var_r31->unk_0E = 45;
|
||||
var_r31->unk_0C = var_r31->unk_0E = 0.75 * REFRESH_RATE;
|
||||
var_r31->unk_10 = HuAudFXPlay(lbl_1_data_23C[var_r31->unk_14]);
|
||||
break;
|
||||
case 2:
|
||||
|
|
@ -2070,11 +2088,11 @@ void fn_1_7890(ModelData *model, ParticleData *particle, Mtx matrix)
|
|||
var_r31->unk34.x = 100.0 * (0.20000000298023224 * sind(var_f31));
|
||||
var_r31->unk34.y = 0.0f;
|
||||
var_r31->unk34.z = 100.0 * (0.20000000298023224 * cosd(var_f31));
|
||||
var_f30 = 1.6666666f + (2.5f * (frand() & 0xFF) / 256);
|
||||
var_f30 = (100.0f / REFRESH_RATE) + ((150.0f / REFRESH_RATE) * (frand() & 0xFF) / 256);
|
||||
var_f31 = 360.0f * (frand() & 0xFF) / 256;
|
||||
var_r31->unk08.x = var_f30 * sind(var_f31);
|
||||
var_r31->unk08.z = var_f30 * cosd(var_f31);
|
||||
var_r31->unk08.y = 16.666666f * (frand() & 0xFF) / 256;
|
||||
var_r31->unk08.y = (1000.0f / REFRESH_RATE) * (frand() & 0xFF) / 256;
|
||||
var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = var_r31->unk40.a = 0xFF;
|
||||
}
|
||||
}
|
||||
|
|
@ -2085,7 +2103,7 @@ void fn_1_7890(ModelData *model, ParticleData *particle, Mtx matrix)
|
|||
var_r28++;
|
||||
}
|
||||
else {
|
||||
var_r31->unk08.y += -0.50000006f;
|
||||
var_r31->unk08.y += VERSION_NTSC ? -0.50000006f : -0.6f;
|
||||
var_r31->unk34.x += var_r31->unk08.x;
|
||||
var_r31->unk34.y += var_r31->unk08.y;
|
||||
var_r31->unk34.z += var_r31->unk08.z;
|
||||
|
|
@ -2210,7 +2228,7 @@ void fn_1_8988(omObjData *arg0)
|
|||
case 1:
|
||||
fn_1_8738(0, 1, sind((90.0f * lbl_1_data_250[0])));
|
||||
if (lbl_1_data_250[0] < 1.0f) {
|
||||
lbl_1_data_250[0] += 0.016666668f;
|
||||
lbl_1_data_250[0] += 1.0f / REFRESH_RATE;
|
||||
if (lbl_1_data_250[0] > 1.0f) {
|
||||
lbl_1_data_250[0] = 1.0f;
|
||||
return;
|
||||
|
|
@ -2222,7 +2240,7 @@ void fn_1_8988(omObjData *arg0)
|
|||
case 2:
|
||||
fn_1_8738(1, 2, 1.0 - cosd((90.0f * lbl_1_data_250[1])));
|
||||
if (lbl_1_data_250[1] < 1.0f) {
|
||||
lbl_1_data_250[1] += 0.016666668f;
|
||||
lbl_1_data_250[1] += 1.0f / REFRESH_RATE;
|
||||
if (lbl_1_data_250[1] > 1.0f) {
|
||||
lbl_1_data_250[1] = 1.0f;
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -20,8 +20,10 @@
|
|||
|
||||
#include "REL/m444dll.h"
|
||||
#include "ext_math.h"
|
||||
#include "version.h"
|
||||
#include "math.h"
|
||||
|
||||
|
||||
s16 lbl_1_bss_198F0[5][2];
|
||||
Vec lbl_1_bss_D8F0[4096];
|
||||
Vec lbl_1_bss_18F0[4096];
|
||||
|
|
@ -844,7 +846,7 @@ s16 fn_1_B1E8(Vec *arg0, Vec *arg1, s16 arg2)
|
|||
if (temp_f31 < 0.0f) {
|
||||
temp_f28 -= temp_f31;
|
||||
temp_f31 = ABS(temp_f31);
|
||||
#if VERSION > 0
|
||||
#if VERSION_REV1
|
||||
if (temp_f31 == 0.0) {
|
||||
sp1C.x = sp1C.y = sp1C.z = 0.0f;
|
||||
break;
|
||||
|
|
@ -886,7 +888,7 @@ s16 fn_1_B1E8(Vec *arg0, Vec *arg1, s16 arg2)
|
|||
}
|
||||
}
|
||||
temp_f31 = VECMag(arg1);
|
||||
#if VERSION > 0
|
||||
#if VERSION_REV1
|
||||
if (VECMag(&sp1C) == 0.0) {
|
||||
sp1C.x = 0.0f;
|
||||
sp1C.y = 1.0f;
|
||||
|
|
@ -912,7 +914,7 @@ s16 fn_1_B1E8(Vec *arg0, Vec *arg1, s16 arg2)
|
|||
break;
|
||||
}
|
||||
if (temp_f30 < 20.0f
|
||||
#if VERSION > 0
|
||||
#if VERSION_REV1
|
||||
&& !(temp_f30 < 0.000001)
|
||||
#endif
|
||||
) {
|
||||
|
|
@ -925,7 +927,7 @@ s16 fn_1_B1E8(Vec *arg0, Vec *arg1, s16 arg2)
|
|||
}
|
||||
if (temp_r30 == lbl_1_data_3A4[arg2]) {
|
||||
arg1->y += 0.3;
|
||||
#if VERSION > 0
|
||||
#if VERSION_REV1
|
||||
if (VECMag((Vec *)&arg1) < 0.000001) {
|
||||
arg1->y += 0.3;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
|
||||
#include "dolphin.h"
|
||||
#include "ext_math.h"
|
||||
#include "version.h"
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s32 unk00;
|
||||
|
|
@ -1431,7 +1432,7 @@ void fn_1_7148(omObjData *arg0)
|
|||
case 1005:
|
||||
lbl_1_bss_84++;
|
||||
if (lbl_1_data_19A != -1) {
|
||||
MGSeqParamSet(lbl_1_data_19A, 1, ((lbl_1_bss_0 < 0 ? 0 : lbl_1_bss_0) + 59) / 60);
|
||||
MGSeqParamSet(lbl_1_data_19A, 1, ((lbl_1_bss_0 < 0 ? 0 : lbl_1_bss_0) + REFRESH_RATE - 1) / REFRESH_RATE);
|
||||
lbl_1_bss_0--;
|
||||
if (lbl_1_bss_0 <= -30) {
|
||||
MGSeqParamSet(lbl_1_data_19A, 2, -1);
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@
|
|||
|
||||
#include "game/window.h"
|
||||
#include "string.h"
|
||||
#include "version.h"
|
||||
|
||||
#ifndef __MWERKS__
|
||||
#include "game/audio.h"
|
||||
|
|
@ -242,20 +243,20 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2)
|
|||
|
||||
espBankSet(arg0[arg1 + 1], 10);
|
||||
espBankSet(arg0[arg1 + 4], 11);
|
||||
if (36000 <= arg2) {
|
||||
arg2 = 35999;
|
||||
if (600 * REFRESH_RATE <= arg2) {
|
||||
arg2 = 600 * REFRESH_RATE - 1;
|
||||
}
|
||||
var_r30 = arg2 / 3600;
|
||||
arg2 -= var_r30 * 3600;
|
||||
var_r30 = arg2 / (60 * REFRESH_RATE);
|
||||
arg2 -= var_r30 * (60 * REFRESH_RATE);
|
||||
if (var_r30 > 9) {
|
||||
var_r30 = 9;
|
||||
}
|
||||
espBankSet(arg0[arg1], var_r30);
|
||||
var_r30 = arg2 / 60;
|
||||
arg2 -= var_r30 * 60;
|
||||
var_r30 = arg2 / REFRESH_RATE;
|
||||
arg2 -= var_r30 * REFRESH_RATE;
|
||||
espBankSet(arg0[arg1 + 2], var_r30 / 10);
|
||||
espBankSet(arg0[arg1 + 3], var_r30 % 10);
|
||||
var_r30 = 101.5f * arg2 / 60.0f;
|
||||
var_r30 = 101.5f * arg2 / REFRESH_RATE;
|
||||
espBankSet(arg0[arg1 + 5], var_r30 / 10);
|
||||
espBankSet(arg0[arg1 + 6], var_r30 % 10);
|
||||
}
|
||||
|
|
@ -835,6 +836,12 @@ s32 lbl_1_bss_8;
|
|||
s32 lbl_1_bss_4;
|
||||
s32 lbl_1_bss_0;
|
||||
|
||||
#if VERSION_NTSC
|
||||
#define _1606_BY_REFRESH_RATE 26.766666f
|
||||
#else
|
||||
#define _1606_BY_REFRESH_RATE 32.120003f
|
||||
#endif
|
||||
|
||||
void fn_1_23B4(WorkPlayerOld *player)
|
||||
{
|
||||
s32 i;
|
||||
|
|
@ -1018,7 +1025,7 @@ void fn_1_2E34(WorkPlayerOld *player)
|
|||
player->unk_3C |= 0x100;
|
||||
player->unk_A4 = 0;
|
||||
if (!(player2->unk_3C & 0x100)) {
|
||||
player->unk_84.y = 26.766666f;
|
||||
player->unk_84.y = _1606_BY_REFRESH_RATE;
|
||||
}
|
||||
}
|
||||
if (state == 3) {
|
||||
|
|
@ -1122,7 +1129,7 @@ void fn_1_3CE0(WorkPlayerOld *player, s32 *state, u32 *motAttr)
|
|||
}
|
||||
|
||||
if (player->unk_14[3] >= 0 && (player->unk_28 & 0x100)) {
|
||||
fn_1_2BD0(player, 26.766666f, 1.0f);
|
||||
fn_1_2BD0(player, _1606_BY_REFRESH_RATE, 1.0f);
|
||||
*motAttr = HU3D_MOTATTR_NONE;
|
||||
*state = 3;
|
||||
}
|
||||
|
|
@ -1137,14 +1144,14 @@ void fn_1_3DB8(WorkPlayerOld *player, s32 *state, u32 *motAttr)
|
|||
player->unk_A4 = 0;
|
||||
}
|
||||
else {
|
||||
player->unk_84.y += 3.65f;
|
||||
player->unk_84.y += 219.0f / REFRESH_RATE;
|
||||
}
|
||||
}
|
||||
else {
|
||||
player->unk_A4 = 0;
|
||||
}
|
||||
}
|
||||
player->unk_84.y += -2.4333334f;
|
||||
player->unk_84.y += -146.0f / REFRESH_RATE;
|
||||
if (player->unk_14[5] >= 0 && (player->unk_28 & 0x140)) {
|
||||
player->unk_38 = 3;
|
||||
player->unk_84.y = 0;
|
||||
|
|
@ -1271,7 +1278,7 @@ void fn_1_40C0(WorkPlayerOld *player)
|
|||
if (player->unk_3C & 0x2000) {
|
||||
player->unk_84.y = 0;
|
||||
}
|
||||
temp_f28 = 0;
|
||||
temp_f28 = 0.0f;
|
||||
if (50.0f < ABS(player->unk_84.y)) {
|
||||
player->unk_84.y = 50.0f * ((0.0f > player->unk_84.y) ? -1 : 1);
|
||||
}
|
||||
|
|
@ -2019,25 +2026,25 @@ s32 lbl_1_data_18C[8] = { 0, 1, 2, 1, 1, -1, -1, -1 };
|
|||
s32 lbl_1_data_1AC[8] = { 0, 1, 2, 1, 1, -1, -1, -1 };
|
||||
s32 lbl_1_data_1CC[4] = { 0x3E, 0x65, 0x3F, 0x66 };
|
||||
UnkData204Struct lbl_1_data_1DC[5] = {
|
||||
{ 510.0f, 0 },
|
||||
{ 300.0f, 1 },
|
||||
{ 300.0f, 0 },
|
||||
{ 300.0f, 1 },
|
||||
{ 8.5f * REFRESH_RATE, 0 },
|
||||
{ 5.0f * REFRESH_RATE, 1 },
|
||||
{ 5.0f * REFRESH_RATE, 0 },
|
||||
{ 5.0f * REFRESH_RATE, 1 },
|
||||
{ 0.0f, 0 },
|
||||
};
|
||||
UnkData204Struct lbl_1_data_204[6] = {
|
||||
{ 210.0f, 0 },
|
||||
{ 300.0f, 1 },
|
||||
{ 300.0f, 0 },
|
||||
{ 300.0f, 1 },
|
||||
{ 300.0f, 0 },
|
||||
{ 3.5f * REFRESH_RATE, 0 },
|
||||
{ 5.0f * REFRESH_RATE, 1 },
|
||||
{ 5.0f * REFRESH_RATE, 0 },
|
||||
{ 5.0f * REFRESH_RATE, 1 },
|
||||
{ 5.0f * REFRESH_RATE, 0 },
|
||||
{ 0.0f, 0 },
|
||||
};
|
||||
Vec2f lbl_1_data_234[4] = {
|
||||
{ 300.0f, 300.0f },
|
||||
{ 300.0f, 240.0f },
|
||||
{ 300.0f, 210.0f },
|
||||
{ 300.0f, 180.0f },
|
||||
{ 5.0f * REFRESH_RATE, 5.0f * REFRESH_RATE },
|
||||
{ 5.0f * REFRESH_RATE, 4.0f * REFRESH_RATE },
|
||||
{ 5.0f * REFRESH_RATE, 3.5f * REFRESH_RATE },
|
||||
{ 5.0f * REFRESH_RATE, 3.0f * REFRESH_RATE },
|
||||
};
|
||||
float lbl_1_data_254[5] = { 0.4f, 0.35f, 0.3f, 0.25f, 0.2f };
|
||||
float lbl_1_data_268[5] = { 0.45f, 0.4f, 0.35f, 0.3f, 0.25f };
|
||||
|
|
@ -2381,9 +2388,9 @@ void fn_1_8500(void)
|
|||
HuPrcVSleep();
|
||||
}
|
||||
HuAudFXPlay(0x3B);
|
||||
fn_1_A968(4, 8.0f, 0, 0, 60.0f);
|
||||
fn_1_E1A8(0, 9, 8.0f, 0, 7, 60.0f);
|
||||
fn_1_E1A8(1, 9, 8.0f, 0, 7, 60.0f);
|
||||
fn_1_A968(4, 8.0f, 0, 0, REFRESH_RATE);
|
||||
fn_1_E1A8(0, 9, 8.0f, 0, 7, REFRESH_RATE);
|
||||
fn_1_E1A8(1, 9, 8.0f, 0, 7, REFRESH_RATE);
|
||||
fn_1_7B90(var_r31, 0x2D0004);
|
||||
fn_1_7C14(var_r31, -1);
|
||||
HuAudFXPlay(0x3C);
|
||||
|
|
@ -2786,7 +2793,7 @@ void fn_1_AAB0(UnkM450Struct3 *arg0, Vec2f *arg1, s32 arg2)
|
|||
float var_f31 = 1.0f;
|
||||
if (arg2 != 0) {
|
||||
var_f31 = arg0->unk_F4;
|
||||
if ((lbl_1_data_F6C[lbl_1_bss_118] - lbl_1_bss_304) > 0xE10) {
|
||||
if ((lbl_1_data_F6C[lbl_1_bss_118] - lbl_1_bss_304) > 60 * REFRESH_RATE) {
|
||||
arg0->unk_F4 = arg0->unk_F4 - 0.1f;
|
||||
if (0.0f > arg0->unk_F4) {
|
||||
arg0->unk_F4 = 0.0f;
|
||||
|
|
@ -2916,7 +2923,7 @@ void fn_1_AD58(omObjData *object)
|
|||
}
|
||||
break;
|
||||
case 0xBBE:
|
||||
fn_1_A828(var_r31, 120.0f, 3000.0f, 1605.0f);
|
||||
fn_1_A828(var_r31, 2 * REFRESH_RATE, 3000.0f, 1605.0f);
|
||||
if (lbl_1_bss_1A4->work[0] >= 0x40B) {
|
||||
var_r31->unk_150++;
|
||||
var_r31->unk_E0 = 0.0f;
|
||||
|
|
@ -3048,7 +3055,7 @@ void fn_1_AD58(omObjData *object)
|
|||
fn_1_19A10(&var_r31->unk_00, &spE4);
|
||||
fn_1_40C0(&var_r31->unk_00);
|
||||
var_r31->unk_E0 += 1.0f;
|
||||
spC8 = (60.0f * (3.0f + lbl_1_data_A0C[1].unk_14));
|
||||
spC8 = (REFRESH_RATE * (3.0f + lbl_1_data_A0C[1].unk_14));
|
||||
if (spC8 < var_r31->unk_E0) {
|
||||
var_r31->unk_150++;
|
||||
var_r31->unk_154 &= ~0x70;
|
||||
|
|
@ -3115,7 +3122,7 @@ void fn_1_AD58(omObjData *object)
|
|||
Hu3DMotionTimeSet(object->model[0], 50.0f);
|
||||
}
|
||||
var_r31->unk_E0 += 1.0f;
|
||||
if (180.0f < var_r31->unk_E0) {
|
||||
if (3 * REFRESH_RATE < var_r31->unk_E0) {
|
||||
var_r31->unk_150 = 0xBC6;
|
||||
var_r31->unk_E0 = 0.0f;
|
||||
var_r31->unk_154 |= 0x20;
|
||||
|
|
@ -3154,7 +3161,7 @@ void fn_1_AD58(omObjData *object)
|
|||
fn_1_19A10(&var_r31->unk_00, &spE4);
|
||||
fn_1_40C0(&var_r31->unk_00);
|
||||
var_r31->unk_E0 += 1.0f;
|
||||
if (180.0f < var_r31->unk_E0) {
|
||||
if (3 * REFRESH_RATE < var_r31->unk_E0) {
|
||||
var_r31->unk_150 = 0xBC6;
|
||||
var_r31->unk_E0 = 0.0f;
|
||||
var_r31->unk_154 |= 0x20;
|
||||
|
|
@ -3660,7 +3667,7 @@ void fn_1_ED4C(omObjData *object)
|
|||
}
|
||||
break;
|
||||
case 0xFA8:
|
||||
fn_1_A828(var_r31, 120.0f, 3000.0f, 1605.0f);
|
||||
fn_1_A828(var_r31, 2 * REFRESH_RATE, 3000.0f, 1605.0f);
|
||||
if (lbl_1_bss_1A4->work[0] >= 0x3F9) {
|
||||
var_r31->unk_150 = var_r31->unk_150 + 1;
|
||||
var_r31->unk_E0 = 0.0f;
|
||||
|
|
@ -4038,7 +4045,7 @@ void fn_1_12688(omObjData *object)
|
|||
if (object->work[0] != 0) {
|
||||
if (lbl_1_bss_1A4->work[0] <= 0x3EB) {
|
||||
object->work[0] = object->work[0] - (3.0f - (lbl_1_bss_128 / 120.0f));
|
||||
if (object->work[0] > 0x258) {
|
||||
if (object->work[0] > 10 * REFRESH_RATE) {
|
||||
object->work[0] = 1;
|
||||
}
|
||||
}
|
||||
|
|
@ -4055,7 +4062,7 @@ void fn_1_12688(omObjData *object)
|
|||
}
|
||||
}
|
||||
else if (Hu3DMotionEndCheck(object->model[0]) != 0) {
|
||||
object->work[0] = frandmod(0x258);
|
||||
object->work[0] = frandmod(10 * REFRESH_RATE);
|
||||
Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_PAUSE);
|
||||
}
|
||||
|
|
@ -4063,7 +4070,7 @@ void fn_1_12688(omObjData *object)
|
|||
|
||||
void fn_1_1291C(omObjData *object)
|
||||
{
|
||||
object->work[0] = frandmod(0x258);
|
||||
object->work[0] = frandmod(10 * REFRESH_RATE);
|
||||
omSetTra(object, 0.0f, 0.0f, 0.0f);
|
||||
omSetRot(object, 0.0f, 0.0f, 0.0f);
|
||||
object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M450, 0x22));
|
||||
|
|
@ -4312,27 +4319,27 @@ UnkDataA0CStruct lbl_1_data_A0C[2] = {
|
|||
{ 0x00510067, DATA_MAKE_NUM(DATADIR_M450, 0x66), DATA_MAKE_NUM(DATADIR_M450, 0x69), DATA_MAKE_NUM(DATADIR_M450, 0x6A), 5, 5, NULL },
|
||||
};
|
||||
UnkDataA80Struct lbl_1_data_A80[9] = {
|
||||
{ "m450mex06-s2hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 135.0f, 0.6f, 350.0f }, -1, 0 },
|
||||
{ "m450mex06-s2hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 315.0f, 0.6f, 350.0f }, -2, 0 },
|
||||
{ "m450mex06-s2hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 45.0f, -0.6f, 350.0f }, -1, 0 },
|
||||
{ "m450mex06-s2hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 225.0f, -0.6f, 350.0f }, -2, 0 },
|
||||
{ "m450mex06-s2hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 0.0f, 0.6f, 350.0f }, -1, 0 },
|
||||
{ "m450mex06-s2hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 120.0f, 0.6f, 350.0f }, -2, 0 },
|
||||
{ "m450mex06-s2hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 240.0f, 0.6f, 350.0f }, -2, 0 },
|
||||
{ "m450mex06-s2hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 0.0f, 0.6f, 300.0f }, -1, 0 },
|
||||
{ "m450mex06-s2hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 180.0f, 0.6f, 300.0f }, -2, 0 },
|
||||
{ "m450mex06-s2hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 135.0f, 36.0f / REFRESH_RATE, 350.0f }, -1, 0 },
|
||||
{ "m450mex06-s2hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 315.0f, 36.0f / REFRESH_RATE, 350.0f }, -2, 0 },
|
||||
{ "m450mex06-s2hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 45.0f, -36.0f / REFRESH_RATE, 350.0f }, -1, 0 },
|
||||
{ "m450mex06-s2hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 225.0f, -36.0f / REFRESH_RATE, 350.0f }, -2, 0 },
|
||||
{ "m450mex06-s2hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 0.0f, 36.0f / REFRESH_RATE, 350.0f }, -1, 0 },
|
||||
{ "m450mex06-s2hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 120.0f, 36.0f / REFRESH_RATE, 350.0f }, -2, 0 },
|
||||
{ "m450mex06-s2hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 240.0f, 36.0f / REFRESH_RATE, 350.0f }, -2, 0 },
|
||||
{ "m450mex06-s2hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 0.0f, 36.0f / REFRESH_RATE, 300.0f }, -1, 0 },
|
||||
{ "m450mex06-s2hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 180.0f, 36.0f / REFRESH_RATE, 300.0f }, -2, 0 },
|
||||
};
|
||||
UnkDataA80Struct lbl_1_data_C58[0xA] = {
|
||||
{ "m450mex06-s4hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 60.0f, -0.6f, 300.0f }, -1, 0 },
|
||||
{ "m450mex06-s4hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 180.0f, -0.6f, 300.0f }, -2, 0 },
|
||||
{ "m450mex06-s4hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 300.0f, -0.6f, 300.0f }, -2, 0 },
|
||||
{ "m450mex06-s4hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 135.0f, -1.2f, 300.0f }, -1, 0 },
|
||||
{ "m450mex06-s4hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 315.0f, -1.2f, 300.0f }, -2, 0 },
|
||||
{ "m450mex06-s4hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 225.0f, -0.6f, 300.0f }, -1, 0 },
|
||||
{ "m450mex06-s4hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 45.0f, -0.6f, 300.0f }, -2, 0 },
|
||||
{ "m450mex06-s4hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 0.0f, 1.2f, 300.0f }, -1, 0 },
|
||||
{ "m450mex06-s4hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 120.0f, 1.2f, 300.0f }, -2, 0 },
|
||||
{ "m450mex06-s4hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 240.0f, 1.2f, 300.0f }, -2, 0 },
|
||||
{ "m450mex06-s4hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 60.0f, -36.0f / REFRESH_RATE, 300.0f }, -1, 0 },
|
||||
{ "m450mex06-s4hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 180.0f, -36.0f / REFRESH_RATE, 300.0f }, -2, 0 },
|
||||
{ "m450mex06-s4hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 300.0f, -36.0f / REFRESH_RATE, 300.0f }, -2, 0 },
|
||||
{ "m450mex06-s4hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 135.0f, -72.0f / REFRESH_RATE, 300.0f }, -1, 0 },
|
||||
{ "m450mex06-s4hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 315.0f, -72.0f / REFRESH_RATE, 300.0f }, -2, 0 },
|
||||
{ "m450mex06-s4hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 225.0f, -36.0f / REFRESH_RATE, 300.0f }, -1, 0 },
|
||||
{ "m450mex06-s4hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 45.0f, -36.0f / REFRESH_RATE, 300.0f }, -2, 0 },
|
||||
{ "m450mex06-s4hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 0.0f, 72.0f / REFRESH_RATE, 300.0f }, -1, 0 },
|
||||
{ "m450mex06-s4hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 120.0f, 72.0f / REFRESH_RATE, 300.0f }, -2, 0 },
|
||||
{ "m450mex06-s4hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 240.0f, 72.0f / REFRESH_RATE, 300.0f }, -2, 0 },
|
||||
};
|
||||
char *lbl_1_data_E68[5] = {
|
||||
"m450m01-from1to2",
|
||||
|
|
@ -4403,7 +4410,7 @@ s32 lbl_1_data_F00[0x17] = {
|
|||
};
|
||||
s32 lbl_1_data_F5C[4]
|
||||
= { DATA_MAKE_NUM(DATADIR_M450, 0x24), DATA_MAKE_NUM(DATADIR_M450, 0x25), DATA_MAKE_NUM(DATADIR_M450, 0x26), DATA_MAKE_NUM(DATADIR_M450, 0x27) };
|
||||
s32 lbl_1_data_F6C[6] = { 0, 0xE10, 0x4650, 0xE10, 0x4650, 0x4650 };
|
||||
s32 lbl_1_data_F6C[6] = { 0, 60 * REFRESH_RATE, 300 * REFRESH_RATE, 60 * REFRESH_RATE, 300 * REFRESH_RATE, 300 * REFRESH_RATE };
|
||||
float lbl_1_data_F84[5] = { 1200.0f, 1500.0f, 0.0f, 200.0f, 300.0f };
|
||||
float lbl_1_data_F98[5] = { 1200.0f, 1500.0f, 0.0f, 200.0f, 300.0f };
|
||||
float *lbl_1_data_FAC[6] = { NULL, lbl_1_data_F84, NULL, lbl_1_data_F98, NULL, NULL };
|
||||
|
|
@ -4502,7 +4509,7 @@ void fn_1_12A1C(omObjData *object)
|
|||
}
|
||||
}
|
||||
else if (Hu3DMotionEndCheck(object->model[0]) != 0) {
|
||||
object->work[0] = frandmod(0xB4);
|
||||
object->work[0] = frandmod(3 * REFRESH_RATE);
|
||||
Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_PAUSE);
|
||||
}
|
||||
|
|
@ -4513,7 +4520,7 @@ void fn_1_12B80(omObjData *object)
|
|||
s32 var_r30;
|
||||
s16 var_r29;
|
||||
|
||||
object->work[0] = frandmod(0xB4);
|
||||
object->work[0] = frandmod(3 * REFRESH_RATE);
|
||||
omSetTra(object, 0.0f, 0.0f, 0.0f);
|
||||
omSetRot(object, 0.0f, 0.0f, 0.0f);
|
||||
|
||||
|
|
@ -4813,7 +4820,7 @@ void fn_1_13F28(omObjData *object)
|
|||
}
|
||||
if (((UnkM450Struct5 *)lbl_1_bss_138->data)->unk_10C < 3) {
|
||||
var_r31->unk_14 += 1.0f;
|
||||
if (1200.0f < var_r31->unk_14) {
|
||||
if (20 * REFRESH_RATE < var_r31->unk_14) {
|
||||
var_r31->unk_1C = 0;
|
||||
fn_1_1B510(var_r29);
|
||||
}
|
||||
|
|
@ -6012,7 +6019,7 @@ void fn_1_19CE0(omObjData *object)
|
|||
var_r31->unk_FC &= ~0x3000;
|
||||
var_r31->unk_FC &= ~0x30000;
|
||||
var_r31->unk_FC &= ~0x300000;
|
||||
var_r31->unk_100 = 0x78;
|
||||
var_r31->unk_100 = 2 * REFRESH_RATE;
|
||||
var_r31->unk_F8 = 0.0f;
|
||||
var_r31->unk_00.unk_3C &= ~0x210;
|
||||
}
|
||||
|
|
@ -6567,7 +6574,7 @@ s32 fn_1_1C898(UnkM450Struct5 *var_r31, omObjData *var_r30)
|
|||
HuAudCharVoicePlay(var_r31->unk_11C, 0x123);
|
||||
var_r31->unk_FC |= 0x10;
|
||||
var_r31->unk_00.unk_3C |= 0x210;
|
||||
fn_1_2BD0(&var_r31->unk_00, 48.179996f, 0.0f);
|
||||
fn_1_2BD0(&var_r31->unk_00, VERSION_NTSC ? 48.179995f : 57.816f, 0.0f);
|
||||
Hu3DMotionShiftSet(var_r30->model[0], var_r30->motion[8], 0.0f, 8.0f, 0);
|
||||
if (fn_1_125C0(0, 1) <= 0) {
|
||||
var_r31->unk_FC |= 0x80000;
|
||||
|
|
@ -6615,7 +6622,7 @@ s32 fn_1_1C898(UnkM450Struct5 *var_r31, omObjData *var_r30)
|
|||
var_r31->unk_FC |= 0x100000;
|
||||
var_r31->unk_00.unk_3C |= 0x200;
|
||||
var_r31->unk_00.unk_3C &= ~0x10;
|
||||
var_f31 = 40.15f;
|
||||
var_f31 = VERSION_NTSC ? 40.15f : 48.180005f;
|
||||
if (var_r31->unk_FC & 4) {
|
||||
var_f31 = var_f31 / 2;
|
||||
}
|
||||
|
|
@ -6690,7 +6697,7 @@ void fn_1_1E150(omObjData *var_r29)
|
|||
HuAudCharVoicePlay(var_r31->unk_11C, 0x123);
|
||||
var_r31->unk_FC |= 0x800000;
|
||||
var_r31->unk_118 = 0x7EB;
|
||||
fn_1_2BD0(&var_r31->unk_00, 53.533333f, 0.0f);
|
||||
fn_1_2BD0(&var_r31->unk_00, VERSION_NTSC ? 53.533333f : 64.240005f, 0.0f);
|
||||
Hu3DMotionSet(var_r29->model[0], var_r29->motion[8]);
|
||||
Hu3DModelAttrReset(var_r29->model[0], HU3D_ATTR_DISPOFF);
|
||||
fn_1_125C0(0, 0);
|
||||
|
|
@ -7074,7 +7081,7 @@ void fn_1_20170(omObjData *var_r30)
|
|||
break;
|
||||
case 0x7E9:
|
||||
if (lbl_1_bss_1A4->work[0] >= 0x417) {
|
||||
if (100.0f < lbl_1_bss_128) {
|
||||
if ((VERSION_NTSC ? 100.0f : 80.0f) < lbl_1_bss_128) {
|
||||
var_r31->unk_118++;
|
||||
GWPlayerCoinWinSet(lbl_1_bss_120, 10);
|
||||
Hu3DMotionShiftSet(var_r30->model[0], var_r30->motion[21], 0.0f, 8.0f, 0);
|
||||
|
|
@ -7092,14 +7099,13 @@ void fn_1_20170(omObjData *var_r30)
|
|||
break;
|
||||
case 0x7EB:
|
||||
if (var_r31->unk_FC & 0x800000) {
|
||||
// inline?
|
||||
var_r29 = var_r31;
|
||||
var_r29->unk_00.unk_84.y += -2.4333334f;
|
||||
var_r29->unk_00.unk_84.y += -146.0f / REFRESH_RATE;
|
||||
var_r29->unk_00.unk_6C.y += var_r29->unk_00.unk_84.y;
|
||||
var_r29->unk_00.unk_A8 = MapPos(
|
||||
var_r29->unk_00.unk_6C.x, var_r29->unk_00.unk_6C.y, var_r29->unk_00.unk_6C.z, var_r29->unk_00.unk_C0, &var_r29->unk_00.unk_AC);
|
||||
if (var_r29->unk_00.unk_A8 > var_r29->unk_00.unk_6C.y) {
|
||||
fn_1_2BD0(&var_r31->unk_00, 53.533333f, 0.0f);
|
||||
fn_1_2BD0(&var_r31->unk_00, VERSION_NTSC ? 53.533333f : 64.240005f, 0.0f);
|
||||
}
|
||||
var_f31 = var_r29->unk_00.unk_6C.x;
|
||||
var_f30 = var_r29->unk_00.unk_6C.z;
|
||||
|
|
@ -7367,12 +7373,12 @@ void fn_1_24620(omObjData *var_r31)
|
|||
case 0x40D:
|
||||
case 0x415:
|
||||
if (lbl_1_bss_2FC >= 0) {
|
||||
MGSeqParamSet(lbl_1_bss_2FC, 1, (lbl_1_bss_304 + 0x3B) / 60);
|
||||
MGSeqParamSet(lbl_1_bss_2FC, 1, (lbl_1_bss_304 + REFRESH_RATE - 1) / REFRESH_RATE);
|
||||
}
|
||||
else {
|
||||
sp120 = 0;
|
||||
if ((lbl_1_bss_118 == 2) || (lbl_1_bss_118 == 4) || (lbl_1_bss_118 == 5)) {
|
||||
if (lbl_1_bss_304 < 0x708) {
|
||||
if (lbl_1_bss_304 < 30 * REFRESH_RATE) {
|
||||
sp120 = 1;
|
||||
}
|
||||
}
|
||||
|
|
@ -7380,7 +7386,7 @@ void fn_1_24620(omObjData *var_r31)
|
|||
sp120 = 1;
|
||||
}
|
||||
if (sp120 != 0) {
|
||||
lbl_1_bss_2FC = MGSeqCreate(1, lbl_1_bss_304 / 60, -1, -1);
|
||||
lbl_1_bss_2FC = MGSeqCreate(1, lbl_1_bss_304 / REFRESH_RATE, -1, -1);
|
||||
}
|
||||
}
|
||||
lbl_1_bss_304--;
|
||||
|
|
@ -7390,7 +7396,7 @@ void fn_1_24620(omObjData *var_r31)
|
|||
}
|
||||
break;
|
||||
case 0x3F4:
|
||||
fn_1_23CA0(var_r31, 270.0f, 120.0f);
|
||||
fn_1_23CA0(var_r31, 270.0f, 2 * REFRESH_RATE);
|
||||
break;
|
||||
case 0x3F5:
|
||||
lbl_1_bss_128 += 1.0f;
|
||||
|
|
@ -7413,7 +7419,7 @@ void fn_1_24620(omObjData *var_r31)
|
|||
omVibrate(lbl_1_bss_120, 0xC, 6, 6);
|
||||
lbl_1_bss_128 += 1.0f;
|
||||
Hu3DModelPosSet(lbl_1_bss_1A0->model[6], 0.0f, -(2.0f * lbl_1_bss_128), 0.0f);
|
||||
if (120.0f < lbl_1_bss_128) {
|
||||
if (2 * REFRESH_RATE < lbl_1_bss_128) {
|
||||
var_r31->work[0] += 1;
|
||||
fn_1_6CB0(fn_1_9074, 2);
|
||||
HuAudFXPlay(0x7BB);
|
||||
|
|
@ -7433,7 +7439,7 @@ void fn_1_24620(omObjData *var_r31)
|
|||
}
|
||||
break;
|
||||
case 0x3FC:
|
||||
var_f31 = lbl_1_bss_128 / 120.0f;
|
||||
var_f31 = lbl_1_bss_128 / (2 * REFRESH_RATE);
|
||||
if (1.0f < var_f31) {
|
||||
var_f31 = 1.0f;
|
||||
}
|
||||
|
|
@ -7442,7 +7448,7 @@ void fn_1_24620(omObjData *var_r31)
|
|||
Hu3DModelRotSet(lbl_1_bss_1A0->model[5], 0.0f, 90.0f, 0.0f);
|
||||
Hu3DModelPosSet(lbl_1_bss_1A0->model[5], var_r30->unk_30[3].x, var_r30->unk_30[3].y, var_r30->unk_30[3].z);
|
||||
Hu3DModelTPLvlSet(lbl_1_bss_1A0->model[5], var_f31);
|
||||
fn_1_23CA0(var_r31, 270.0f, 120.0f);
|
||||
fn_1_23CA0(var_r31, 270.0f, 2 * REFRESH_RATE);
|
||||
break;
|
||||
case 0x3FD:
|
||||
case 0x3FE:
|
||||
|
|
@ -7493,7 +7499,7 @@ void fn_1_24620(omObjData *var_r31)
|
|||
}
|
||||
break;
|
||||
case 0x406:
|
||||
fn_1_23CA0(var_r31, 270.0f, 120.0f);
|
||||
fn_1_23CA0(var_r31, 270.0f, 2 * REFRESH_RATE);
|
||||
break;
|
||||
case 0x407:
|
||||
lbl_1_bss_128 += 1.0f;
|
||||
|
|
@ -7516,7 +7522,7 @@ void fn_1_24620(omObjData *var_r31)
|
|||
omVibrate(lbl_1_bss_120, 0xC, 6, 6);
|
||||
lbl_1_bss_128 += 1.0f;
|
||||
Hu3DModelPosSet(lbl_1_bss_1A0->model[17], 0.0f, -(2.0f * lbl_1_bss_128), 0.0f);
|
||||
if (120.0f < lbl_1_bss_128) {
|
||||
if (2 * REFRESH_RATE < lbl_1_bss_128) {
|
||||
var_r31->work[0] += 1;
|
||||
fn_1_6CB0(fn_1_9824, 4);
|
||||
HuAudFXPlay(0x7BB);
|
||||
|
|
@ -7536,7 +7542,7 @@ void fn_1_24620(omObjData *var_r31)
|
|||
}
|
||||
break;
|
||||
case 0x40E:
|
||||
var_f31 = lbl_1_bss_128 / 120.0f;
|
||||
var_f31 = lbl_1_bss_128 / (2 * REFRESH_RATE);
|
||||
if (1.0f < var_f31) {
|
||||
var_f31 = 1.0f;
|
||||
}
|
||||
|
|
@ -7545,7 +7551,7 @@ void fn_1_24620(omObjData *var_r31)
|
|||
Hu3DModelRotSet(lbl_1_bss_1A0->model[16], 0.0f, -90.0f, 0.0f);
|
||||
Hu3DModelPosSet(lbl_1_bss_1A0->model[16], var_r30->unk_30[8].x, var_r30->unk_30[8].y, var_r30->unk_30[8].z);
|
||||
Hu3DModelTPLvlSet(lbl_1_bss_1A0->model[16], var_f31);
|
||||
fn_1_23CA0(var_r31, 270.0f, 120.0f);
|
||||
fn_1_23CA0(var_r31, 270.0f, 2 * REFRESH_RATE);
|
||||
break;
|
||||
case 0x40F:
|
||||
lbl_1_bss_20 = -1;
|
||||
|
|
@ -7598,7 +7604,7 @@ void fn_1_24620(omObjData *var_r31)
|
|||
lbl_1_bss_128 += 1.0f;
|
||||
break;
|
||||
case 0x417:
|
||||
fn_1_23CA0(var_r31, 0.0f, 120.0f);
|
||||
fn_1_23CA0(var_r31, 0.0f, 2 * REFRESH_RATE);
|
||||
break;
|
||||
case 0x418:
|
||||
lbl_1_bss_128 += 1.0f;
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ typedef struct M453DllWork2 {
|
|||
M453DllUnkStruct unk_5C;
|
||||
u8 unk_9C;
|
||||
s32 unk_A0;
|
||||
} M453DllWork2; /* size 0xA4 */
|
||||
} M453DllWork2; /* size 0xA4 */ // same as Unkm403Struct_01
|
||||
|
||||
void fn_1_440(omObjData *object);
|
||||
void fn_1_460(omObjData *object);
|
||||
|
|
|
|||
1015
src/REL/m460Dll/main.c
Normal file
1015
src/REL/m460Dll/main.c
Normal file
File diff suppressed because it is too large
Load diff
547
src/REL/m460Dll/map.c
Normal file
547
src/REL/m460Dll/map.c
Normal file
|
|
@ -0,0 +1,547 @@
|
|||
#include "datadir_enum.h"
|
||||
#include "dolphin/gx/GXEnum.h"
|
||||
#include "dolphin/gx/GXVert.h"
|
||||
#include "ext_math.h"
|
||||
#include "game/audio.h"
|
||||
#include "game/chrman.h"
|
||||
#include "game/gamework_data.h"
|
||||
#include "game/hsfanim.h"
|
||||
#include "game/hsfman.h"
|
||||
#include "game/hsfmotion.h"
|
||||
#include "game/memory.h"
|
||||
#include "game/object.h"
|
||||
#include "game/pad.h"
|
||||
#include "game/sprite.h"
|
||||
#include "string.h"
|
||||
|
||||
#include "REL/m460Dll.h"
|
||||
|
||||
#ifndef __MWERKS__
|
||||
#include "game/frand.h"
|
||||
#endif
|
||||
|
||||
typedef struct UnkM460MapWork {
|
||||
s32 unk_00;
|
||||
u32 unk_04;
|
||||
s32 unk_08;
|
||||
s32 unk_0C;
|
||||
s32 unk_10;
|
||||
s32 unk_14;
|
||||
s32 unk_18;
|
||||
s32 unk_1C;
|
||||
char unk20[4];
|
||||
u32 unk_24;
|
||||
s32 unk_28;
|
||||
s32 unk_2C;
|
||||
u32 unk_30;
|
||||
float unk_34;
|
||||
float unk_38;
|
||||
Vec unk_3C;
|
||||
Vec unk_48;
|
||||
HsfObject *unk_54;
|
||||
u32 unk_58;
|
||||
void *unk_5C;
|
||||
} UnkM460MapWork; /* size = 0x60 */
|
||||
|
||||
void fn_1_6818(omObjData *object);
|
||||
void fn_1_6C00(omObjData *object);
|
||||
void fn_1_73F8(omObjData *object);
|
||||
u32 fn_1_76C4(u32 arg0, u32 arg1);
|
||||
void fn_1_7724(ModelData *model, Mtx mtx);
|
||||
void fn_1_7790(ModelData *model, Mtx mtx);
|
||||
void fn_1_7B94(s32 arg0);
|
||||
void fn_1_7DA8(omObjData *object, Vec *arg1, u32 arg2);
|
||||
|
||||
float lbl_1_data_1E8[8][8] = {
|
||||
{ 0.0f, 325.0f, -387.0f, -8.25f, 15.0f, 0.0f, 1208.0f, 38.65f },
|
||||
{ 0.0f, 325.0f, -387.0f, -8.25f, -15.0f, 0.0f, 1208.0f, 38.65f },
|
||||
{ 0.0f, 325.0f, -700.0f, -45.0f, 18.0f, 0.0f, 1500.0f, 41.5f },
|
||||
{ 0.0f, 325.0f, -700.0f, -45.0f, 0.0f, 0.0f, 1500.0f, 41.5f },
|
||||
{ 0.0f, 325.0f, -700.0f, -45.0f, -18.0f, 0.0f, 925.0f, 68.0f },
|
||||
{ 0.0f, 302.0f, -783.0f, 14.25f, 28.5f, 0.0f, 833.0f, 61.0f },
|
||||
{ 0.0f, 302.0f, -783.0f, 14.25f, 0.0f, 0.0f, 833.0f, 61.0f },
|
||||
{ 0.0f, 302.0f, -783.0f, 14.25f, -28.5f, 0.0f, 833.0f, 61.0f },
|
||||
};
|
||||
float lbl_1_data_2E8[2][8] = {
|
||||
{ -250.0f, 200.0f, -1000.0f, -10.0f, 0.0f, 0.0f, 1200.0f, 41.5f },
|
||||
{ 250.0f, 200.0f, -1000.0f, -10.0f, 0.0f, 0.0f, 1200.0f, 41.5f },
|
||||
};
|
||||
s32 lbl_1_data_328[3] = { DATA_MAKE_NUM(DATADIR_M460, 0x00), DATA_MAKE_NUM(DATADIR_M460, 0x01), DATA_MAKE_NUM(DATADIR_M460, 0x02) };
|
||||
s32 lbl_1_data_334[3] = { DATA_MAKE_NUM(DATADIR_M460, 0x03), DATA_MAKE_NUM(DATADIR_M460, 0x04), DATA_MAKE_NUM(DATADIR_M460, 0x05) };
|
||||
s32 lbl_1_data_340[3] = { DATA_MAKE_NUM(DATADIR_M460, 0x06), DATA_MAKE_NUM(DATADIR_M460, 0x07), DATA_MAKE_NUM(DATADIR_M460, 0x08) };
|
||||
s32 lbl_1_data_34C[2] = { DATA_MAKE_NUM(DATADIR_M460, 0x09), DATA_MAKE_NUM(DATADIR_M460, 0x0A) };
|
||||
s32 lbl_1_data_354[2] = { DATA_MAKE_NUM(DATADIR_M460, 0x0B), DATA_MAKE_NUM(DATADIR_M460, 0x0C) };
|
||||
|
||||
// UnkM460MapWork
|
||||
omObjData *lbl_1_bss_48;
|
||||
|
||||
void fn_1_67B4(Process *process)
|
||||
{
|
||||
omObjData *var_r31 = omAddObjEx(process, 0x1E, 0x10, 0, -1, fn_1_6818);
|
||||
lbl_1_bss_48 = var_r31;
|
||||
var_r31->work[0] = 0;
|
||||
}
|
||||
|
||||
void fn_1_6814(void) { }
|
||||
|
||||
void fn_1_6818(omObjData *object)
|
||||
{
|
||||
s32 var_r31;
|
||||
s32 var_r30;
|
||||
UnkM460MapWork *var_r28;
|
||||
HsfanimStruct01 *var_r27;
|
||||
|
||||
var_r28 = object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM460MapWork), MEMORY_DEFAULT_NUM);
|
||||
memset(var_r28, 0, sizeof(UnkM460MapWork));
|
||||
omSetTra(object, 0.0f, 0.0f, 0.0f);
|
||||
for (var_r31 = 0; var_r31 < 3; var_r31++) {
|
||||
var_r30 = Hu3DModelCreateFile(lbl_1_data_328[var_r31]);
|
||||
object->model[var_r31] = var_r30;
|
||||
Hu3DModelLayerSet(var_r30, 1);
|
||||
Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF);
|
||||
}
|
||||
for (var_r31 = 0; var_r31 < 3; var_r31++) {
|
||||
var_r30 = Hu3DModelCreateFile(lbl_1_data_334[var_r31]);
|
||||
object->model[var_r31 + 3] = var_r30;
|
||||
Hu3DModelLayerSet(var_r30, 1);
|
||||
Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF);
|
||||
}
|
||||
for (var_r31 = 0; var_r31 < 3; var_r31++) {
|
||||
var_r30 = Hu3DModelCreateFile(lbl_1_data_340[var_r31]);
|
||||
object->model[var_r31 + 6] = var_r30;
|
||||
Hu3DModelLayerSet(var_r30, 1);
|
||||
Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF);
|
||||
}
|
||||
for (var_r31 = 0; var_r31 < 2; var_r31++) {
|
||||
var_r30 = Hu3DModelCreateFile(lbl_1_data_34C[var_r31]);
|
||||
object->model[var_r31 + 9] = var_r30;
|
||||
Hu3DModelLayerSet(var_r30, 1);
|
||||
Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP);
|
||||
}
|
||||
for (var_r31 = 0; var_r31 < 2; var_r31++) {
|
||||
var_r30 = Hu3DModelCreateFile(lbl_1_data_354[var_r31]);
|
||||
object->model[var_r31 + 0xB] = var_r30;
|
||||
Hu3DModelLayerSet(var_r30, 3);
|
||||
Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF);
|
||||
}
|
||||
var_r28->unk_08 = 8;
|
||||
fn_1_73F8(object);
|
||||
var_r30 = Hu3DHookFuncCreate(fn_1_7724);
|
||||
object->model[13] = var_r30;
|
||||
Hu3DModelCameraSet(var_r30, 1);
|
||||
Hu3DModelLayerSet(var_r30, 7);
|
||||
var_r30 = Hu3DHookFuncCreate(fn_1_7790);
|
||||
object->model[14] = var_r30;
|
||||
Hu3DModelCameraSet(var_r30, 2);
|
||||
Hu3DModelLayerSet(var_r30, 7);
|
||||
var_r28->unk_58 = GXGetTexBufferSize(0x280, 0x1E0, 5, 0, 0);
|
||||
var_r28->unk_5C = HuMemDirectMallocNum(HEAP_SYSTEM, var_r28->unk_58, MEMORY_DEFAULT_NUM);
|
||||
DCFlushRange(var_r28->unk_5C, var_r28->unk_58);
|
||||
var_r30 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M460, 0x23)), 0x100);
|
||||
object->model[15] = var_r30;
|
||||
Hu3DModelLayerSet(var_r30, 4);
|
||||
for (var_r27 = ((ParticleData *)Hu3DData[var_r30].unk_120)->unk_48, var_r31 = 0; var_r31 < 0x100; var_r31++, var_r27++) {
|
||||
var_r27->unk2C = 0.0f;
|
||||
var_r27->unk40.a = 0;
|
||||
var_r27->unk00 = 0;
|
||||
}
|
||||
DCStoreRange(((ParticleData *)Hu3DData[var_r30].unk_120)->unk_48, 0x4400);
|
||||
var_r28->unk_28 = 1;
|
||||
var_r28->unk_2C = -1;
|
||||
object->func = fn_1_6C00;
|
||||
}
|
||||
|
||||
void fn_1_6C00(omObjData *object)
|
||||
{
|
||||
Vec sp14;
|
||||
Vec sp8;
|
||||
float var_f31;
|
||||
UnkM460MapWork *var_r31;
|
||||
M460DllCameraStruct *var_r30;
|
||||
M460DllCameraStruct *var_r28;
|
||||
u32 var_r27;
|
||||
s32 var_r26;
|
||||
s32 var_r25;
|
||||
|
||||
var_r31 = object->data;
|
||||
var_r30 = fn_1_3E90(1);
|
||||
var_r28 = fn_1_3E90(2);
|
||||
switch (fn_1_4164()) {
|
||||
case 1:
|
||||
var_r31->unk_18 = 0;
|
||||
var_r31->unk_1C = 0;
|
||||
var_r31->unk_24 = 0;
|
||||
if (var_r31->unk_00 != 0) {
|
||||
fn_1_73F8(object);
|
||||
var_r31->unk_00 = 0;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
var_r27 = fn_1_42F0();
|
||||
Hu3DMotionSpeedSet(object->model[var_r27 + 9], 1.5f);
|
||||
if (var_r31->unk_18 == 0) {
|
||||
if (fn_1_4324() != 0) {
|
||||
var_r31->unk_18 = 1;
|
||||
if (var_r27 == 0) {
|
||||
var_r31->unk_2C = object->model[var_r31->unk_14 + 3];
|
||||
var_r31->unk_54 = Hu3DModelObjPtrGet(var_r31->unk_2C, "door_l");
|
||||
}
|
||||
else if (var_r27 == 1) {
|
||||
var_r31->unk_2C = object->model[var_r31->unk_10 + 6];
|
||||
var_r31->unk_54 = Hu3DModelObjPtrGet(var_r31->unk_2C, "door_r");
|
||||
}
|
||||
var_r31->unk_28 = 0;
|
||||
var_r31->unk_30 = 0;
|
||||
Hu3DModelAttrReset(object->model[var_r27 + 0xB], HU3D_ATTR_DISPOFF);
|
||||
}
|
||||
}
|
||||
else if (var_r31->unk_28 != 0) {
|
||||
fn_1_433C();
|
||||
var_r30->unk_10 -= 0.116666675f;
|
||||
}
|
||||
if (var_r31->unk_1C == 0) {
|
||||
var_r31->unk_24++;
|
||||
if (var_r31->unk_24 > 102.0f) {
|
||||
var_r31->unk_1C = 1;
|
||||
fn_1_8BA0(0.041666668f);
|
||||
var_r30->unk_1C.x = lbl_1_data_2E8[var_r27][0];
|
||||
var_r30->unk_1C.y = lbl_1_data_2E8[var_r27][1];
|
||||
var_r30->unk_1C.z = lbl_1_data_2E8[var_r27][2];
|
||||
var_r30->unk_28.x = lbl_1_data_2E8[var_r27][3];
|
||||
var_r30->unk_28.y = lbl_1_data_2E8[var_r27][4];
|
||||
var_r30->unk_28.z = lbl_1_data_2E8[var_r27][5];
|
||||
var_r30->unk_34 = lbl_1_data_2E8[var_r27][6];
|
||||
var_r30->unk_10 = lbl_1_data_2E8[var_r27][7];
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
var_r30->unk_10 -= 0.116666675f;
|
||||
var_r31->unk_00 = 1;
|
||||
break;
|
||||
}
|
||||
if ((var_r31->unk_28 == 0) && (var_r31->unk_2C >= 0)) {
|
||||
if (var_r31->unk_30 == 0) {
|
||||
var_r31->unk_34 = 0.0f;
|
||||
var_r31->unk_38 = 0.0f;
|
||||
var_r31->unk_3C.x = var_r31->unk_3C.y = var_r31->unk_3C.z = 0.0f;
|
||||
var_r31->unk_48 = var_r31->unk_3C;
|
||||
var_r31->unk_38 = 2.9166667f;
|
||||
if (var_r31->unk_54) {
|
||||
sp14.x = var_r31->unk_54->data.base.pos.x;
|
||||
sp14.y = 10.0f + var_r31->unk_54->data.base.pos.y;
|
||||
sp14.z = 20.0f + var_r31->unk_54->data.base.pos.z;
|
||||
fn_1_7DA8(object, &sp14, 0);
|
||||
}
|
||||
HuAudFXPlay(0x818);
|
||||
}
|
||||
if (var_r31->unk_30 < 24.0f) {
|
||||
var_r31->unk_38 *= 0.93f;
|
||||
}
|
||||
else {
|
||||
var_f31 = 3.888889f;
|
||||
var_r31->unk_38 = var_r31->unk_38 + (0.033333335f * var_f31);
|
||||
if (var_r31->unk_38 > var_f31) {
|
||||
var_r31->unk_38 = var_f31;
|
||||
}
|
||||
}
|
||||
var_r26 = 0.5f + (0.2f * var_r31->unk_34);
|
||||
var_r31->unk_34 = var_r31->unk_34 + var_r31->unk_38;
|
||||
if (var_r31->unk_34 >= 350.0f) {
|
||||
var_r31->unk_34 = 350.0f;
|
||||
var_r31->unk_28 = 1;
|
||||
HuAudFXPlay(0x819);
|
||||
if (var_r31->unk_54) {
|
||||
sp14.x = var_r31->unk_54->data.base.pos.x;
|
||||
sp14.y = (var_r31->unk_54->data.base.pos.y + var_r31->unk_34) - 15.000001f;
|
||||
sp14.z = 10.0f + var_r31->unk_54->data.base.pos.z;
|
||||
fn_1_7DA8(object, &sp14, 2);
|
||||
}
|
||||
}
|
||||
var_r25 = 0.5f + (0.2f * var_r31->unk_34);
|
||||
if (var_r26 != var_r25) {
|
||||
var_r31->unk_48.x = 100.0f * ((0.00003f * frandmod(0x3E8)) - 0.015f);
|
||||
var_r31->unk_48.y = 100.0f * ((0.00006f * frandmod(0x3E8)) - 0.03f);
|
||||
var_r31->unk_48.z = 100.0f * ((0.00006f * frandmod(0x3E8)) - 0.03f);
|
||||
if (var_r31->unk_54) {
|
||||
sp14.x = var_r31->unk_54->data.base.pos.x;
|
||||
sp14.y = (var_r31->unk_54->data.base.pos.y + var_r31->unk_34) - 15.000001f;
|
||||
sp14.z = 15.000001f + var_r31->unk_54->data.base.pos.z;
|
||||
fn_1_7DA8(object, &sp14, 1);
|
||||
}
|
||||
}
|
||||
PSVECSubtract(&var_r31->unk_48, &var_r31->unk_3C, &sp8);
|
||||
PSVECScale(&sp8, &sp8, 0.4f);
|
||||
PSVECAdd(&var_r31->unk_3C, &sp8, &sp14);
|
||||
sp14.y += var_r31->unk_34;
|
||||
Hu3DModelPosSetV(var_r31->unk_2C, &sp14);
|
||||
var_r31->unk_30++;
|
||||
}
|
||||
fn_1_7B94(object->model[15]);
|
||||
if (var_r28->unk_00 != 0) {
|
||||
var_r28->unk_90 = var_r28->unk_90 + var_r28->unk_8C;
|
||||
if (var_r28->unk_90 > 1.0f) {
|
||||
var_r28->unk_00 = 0;
|
||||
var_r28->unk_90 = 1.0f;
|
||||
fn_1_3E68(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Vec lbl_1_data_36C = { 0.0f, 0.0f, 0.0f };
|
||||
GXColor lbl_1_data_378 = { 0, 0, 0, 0x80 };
|
||||
|
||||
void fn_1_73F8(omObjData *object)
|
||||
{
|
||||
UnkM460MapWork *var_r31;
|
||||
M460DllCameraStruct *var_r29;
|
||||
u32 var_r28;
|
||||
|
||||
var_r31 = object->data;
|
||||
Hu3DModelAttrSet(object->model[var_r31->unk_0C], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrSet(object->model[var_r31->unk_10 + 6], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrSet(object->model[var_r31->unk_14 + 3], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrSet(object->model[11], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrSet(object->model[12], HU3D_ATTR_DISPOFF);
|
||||
if (var_r31->unk_04 != 0) {
|
||||
var_r31->unk_0C = fn_1_76C4(3, var_r31->unk_0C);
|
||||
var_r31->unk_14 = fn_1_76C4(3, var_r31->unk_14);
|
||||
var_r31->unk_10 = fn_1_76C4(3, var_r31->unk_10);
|
||||
var_r29 = fn_1_3E90(1);
|
||||
var_r28 = var_r31->unk_08 = fn_1_76C4(8, var_r31->unk_08);
|
||||
var_r29->unk_1C.x = lbl_1_data_1E8[var_r28][0];
|
||||
var_r29->unk_1C.y = lbl_1_data_1E8[var_r28][1];
|
||||
var_r29->unk_1C.z = lbl_1_data_1E8[var_r28][2];
|
||||
var_r29->unk_28.x = lbl_1_data_1E8[var_r28][3];
|
||||
var_r29->unk_28.y = lbl_1_data_1E8[var_r28][4];
|
||||
var_r29->unk_28.z = lbl_1_data_1E8[var_r28][5];
|
||||
var_r29->unk_34 = lbl_1_data_1E8[var_r28][6];
|
||||
var_r29->unk_10 = lbl_1_data_1E8[var_r28][7];
|
||||
}
|
||||
Hu3DMotionTimeSet(object->model[9], 0.0f);
|
||||
Hu3DMotionSpeedSet(object->model[9], 0.0f);
|
||||
Hu3DMotionTimeSet(object->model[10], 0.0f);
|
||||
Hu3DMotionSpeedSet(object->model[10], 0.0f);
|
||||
Hu3DModelAttrReset(object->model[var_r31->unk_0C], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrReset(object->model[var_r31->unk_14 + 3], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelAttrReset(object->model[var_r31->unk_10 + 6], HU3D_ATTR_DISPOFF);
|
||||
Hu3DModelPosSetV(object->model[var_r31->unk_14 + 3], &lbl_1_data_36C);
|
||||
Hu3DModelPosSetV(object->model[var_r31->unk_10 + 6], &lbl_1_data_36C);
|
||||
var_r31->unk_04++;
|
||||
}
|
||||
|
||||
u32 fn_1_76C4(u32 arg0, u32 arg8)
|
||||
{
|
||||
u32 var_r31 = frandmod(arg0);
|
||||
if (var_r31 == arg8) {
|
||||
var_r31++;
|
||||
}
|
||||
var_r31 %= arg0;
|
||||
return var_r31;
|
||||
}
|
||||
|
||||
void fn_1_7724(ModelData *model, Mtx mtx)
|
||||
{
|
||||
UnkM460MapWork *var_r31 = lbl_1_bss_48->data;
|
||||
GXSetTexCopySrc(0, 0, 0x280, 0x1E0);
|
||||
GXSetTexCopyDst(0x280, 0x1E0, GX_TF_RGB5A3, 0);
|
||||
GXCopyTex(var_r31->unk_5C, 0);
|
||||
GXPixModeSync();
|
||||
}
|
||||
|
||||
void fn_1_7790(ModelData *model, Mtx mtx)
|
||||
{
|
||||
Mtx sp5C;
|
||||
Mtx sp2C;
|
||||
GXTexObj spC;
|
||||
float var_f31;
|
||||
float var_f30;
|
||||
float var_f29;
|
||||
UnkM460MapWork *var_r31;
|
||||
M460DllCameraStruct *var_r30;
|
||||
|
||||
var_r31 = lbl_1_bss_48->data;
|
||||
var_r30 = fn_1_3F2C(2);
|
||||
lbl_1_data_378.a = 255.0f * var_r30->unk_90;
|
||||
DCStoreRange(&lbl_1_data_378, 4);
|
||||
C_MTXPerspective(sp2C, 41.5f, 1.2f, 100.0f, 5500.0f);
|
||||
GXSetProjection(sp2C, GX_PERSPECTIVE);
|
||||
PSMTXIdentity(sp5C);
|
||||
GXLoadPosMtxImm(sp5C, 0);
|
||||
GXSetNumChans(1);
|
||||
GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE);
|
||||
GXInitTexObj(&spC, var_r31->unk_5C, 0x280, 0x1E0, 5, GX_CLAMP, GX_CLAMP, 0);
|
||||
GXInitTexObjLOD(&spC, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, 0, 0, GX_ANISO_1);
|
||||
GXLoadTexObj(&spC, GX_TEXMAP0);
|
||||
C_MTXLightPerspective(sp2C, 41.5f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f);
|
||||
GXLoadTexMtxImm(sp2C, 0x1E, GX_MTX3x4);
|
||||
GXSetNumTexGens(1);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 0x1E, 0, 0x7D);
|
||||
GXSetNumTevStages(1);
|
||||
GXSetTevColor(GX_TEVREG0, lbl_1_data_378);
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0);
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC);
|
||||
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 0, GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 0, GX_TEVPREV);
|
||||
GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1);
|
||||
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_SET);
|
||||
GXSetZMode(0, GX_LEQUAL, 0);
|
||||
GXClearVtxDesc();
|
||||
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
|
||||
var_f31 = 4125.0f;
|
||||
var_f30 = 2750.0f;
|
||||
var_f29 = 2530.0f;
|
||||
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
|
||||
GXPosition3f32(-var_f31, var_f30, -var_f29);
|
||||
GXPosition3f32(var_f31, var_f30, -var_f29);
|
||||
GXPosition3f32(var_f31, -var_f30, -var_f29);
|
||||
GXPosition3f32(-var_f31, -var_f30, -var_f29);
|
||||
}
|
||||
|
||||
void fn_1_7B94(s32 arg0)
|
||||
{
|
||||
HsfanimStruct01 *var_r31;
|
||||
ParticleData *var_r30;
|
||||
s32 var_r29;
|
||||
|
||||
var_r30 = Hu3DData[arg0].unk_120;
|
||||
for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) {
|
||||
if (var_r31->unk00_s16 != 0) {
|
||||
PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
|
||||
switch (var_r31->unk02) {
|
||||
case 0:
|
||||
var_r31->unk2C += 1.0f;
|
||||
var_r31->unk20 *= 0.99f;
|
||||
var_r31->unk08.y += 0.019444447f;
|
||||
break;
|
||||
case 1:
|
||||
var_r31->unk2C += 2.0f;
|
||||
var_r31->unk20 *= 0.98f;
|
||||
break;
|
||||
case 2:
|
||||
var_r31->unk2C += 1.0f;
|
||||
var_r31->unk20 *= 0.995f;
|
||||
break;
|
||||
}
|
||||
if (var_r31->unk00_s16 < 12.0f) {
|
||||
var_r31->unk20 = 0.9f * var_r31->unk20;
|
||||
}
|
||||
var_r31->unk40.a = var_r31->unk20;
|
||||
if (--var_r31->unk00_s16 == 0) {
|
||||
var_r31->unk00 = 0;
|
||||
var_r31->unk2C = 0.0f;
|
||||
var_r31->unk40.a = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
DCStoreRange(var_r30->unk_48, var_r30->unk_30 * 0x44);
|
||||
}
|
||||
|
||||
void fn_1_7DA8(omObjData *object, Vec *arg1, u32 arg2)
|
||||
{
|
||||
Vec sp1C;
|
||||
float var_f31;
|
||||
|
||||
HsfanimStruct01 *var_r31;
|
||||
ParticleData *var_r30;
|
||||
s32 var_r28;
|
||||
u32 var_r27;
|
||||
|
||||
GXColor spC = { 0xA2, 0x97, 0x7B, 0x80 };
|
||||
GXColor sp8 = { 0xE7, 0xDD, 0xC0, 0xFF };
|
||||
s32 sp10[3] = { 0x00000032, 4, 0x00000046 };
|
||||
|
||||
var_r30 = Hu3DData[object->model[15]].unk_120;
|
||||
if (arg2 > 2) {
|
||||
arg2 = 1;
|
||||
}
|
||||
var_r27 = sp10[arg2];
|
||||
for (var_r31 = var_r30->unk_48, var_r28 = 0; var_r28 < var_r30->unk_30; var_r28++, var_r31++) {
|
||||
if (var_r31->unk00_s16 == 0) {
|
||||
var_r31->unk02 = arg2;
|
||||
sp1C.x = 100.0f * ((0.0026f * frandmod(0x3E8)) - 1.3f);
|
||||
sp1C.y = 0.0f;
|
||||
sp1C.z = 100.0f * ((0.000100000005f * frandmod(0x3E8)) - 0.05f);
|
||||
PSVECAdd(&sp1C, arg1, &var_r31->unk34);
|
||||
var_r31->unk30 = 0.0031415902f * frandmod(0x3E8);
|
||||
switch (arg2) {
|
||||
case 0:
|
||||
var_r31->unk00_s16 = 60.0f * (0.8f + (0.0007f * frandmod(0x3E8)));
|
||||
var_r31->unk08.x = 1.6666667f * (0.000100000005f * frandmod(0x3E8) - 0.05f);
|
||||
var_r31->unk08.y = 1.6666667f * (0.05f + (0.00020000001f * frandmod(0x3E8)));
|
||||
var_r31->unk08.z = 1.6666667f * (0.1f + (0.0006f * frandmod(0x3E8)));
|
||||
var_f31 = 0.001f * frandmod(0x3E8);
|
||||
var_r31->unk2C = 30.0f + (30.0f * var_f31);
|
||||
var_r31->unk40.a = 40.0f + (40.0f * (1.0f - var_f31));
|
||||
var_r31->unk40.r = spC.r + (var_f31 * (sp8.r - spC.r));
|
||||
var_r31->unk40.g = spC.g + (var_f31 * (sp8.g - spC.g));
|
||||
var_r31->unk40.b = spC.b + (var_f31 * (sp8.b - spC.b));
|
||||
break;
|
||||
case 1:
|
||||
sp1C.x = 100.0f * (1.1f + (0.00020000001f * frandmod(0x3E8)));
|
||||
sp1C.y = 100.0f * (0.2f + (0.0005f * frandmod(0x3E8)));
|
||||
if (frandmod(0x3E8) < 0x1F4) {
|
||||
sp1C.x *= -1.0f;
|
||||
}
|
||||
PSVECAdd(&sp1C, arg1, &var_r31->unk34);
|
||||
var_r31->unk00 = 60.0f * (0.2f + (0.0005f * frandmod(0x3E8)));
|
||||
var_r31->unk08.x = 1.6666667f * ((0.000100000005f * frandmod(0x3E8)) - 0.05f);
|
||||
var_r31->unk08.y = -1.6666667f * (0.2f + (0.0003f * frandmod(0x3E8)));
|
||||
var_r31->unk08.z = 1.6666667f * (0.05f + (0.000100000005f * frandmod(0x3E8)));
|
||||
var_f31 = 0.001f * frandmod(0x3E8);
|
||||
var_r31->unk2C = 20.0f + (30.0f * var_f31);
|
||||
var_r31->unk40.a = 8.0f + (13.0f * (1.0f - var_f31));
|
||||
var_r31->unk40.r = spC.r + (var_f31 * (sp8.r - spC.r));
|
||||
var_r31->unk40.g = spC.g + (var_f31 * (sp8.g - spC.g));
|
||||
var_r31->unk40.b = spC.b + (var_f31 * (sp8.b - spC.b));
|
||||
break;
|
||||
case 2:
|
||||
var_r31->unk00 = 60.0f * (0.9f + (0.00080000004f * frandmod(0x3E8)));
|
||||
var_r31->unk08.x = 1.6666667f * ((0.00020000001f * frandmod(0x3E8)) - 0.1f);
|
||||
var_r31->unk08.y = -1.6666667f * (0.1f + (0.0007f * frandmod(0x3E8)));
|
||||
var_r31->unk08.z = 1.6666667f * ((0.00020000001f * frandmod(0x3E8)) - 0.1f);
|
||||
var_f31 = 0.001f * frandmod(0x3E8);
|
||||
var_r31->unk2C = 40.0f + (60.0f * var_f31);
|
||||
var_r31->unk40.a = 8.0f + (10.0f * (1.0f - var_f31));
|
||||
var_r31->unk40.r = spC.r + (var_f31 * (sp8.r - spC.r));
|
||||
var_r31->unk40.g = spC.g + (var_f31 * (sp8.g - spC.g));
|
||||
var_r31->unk40.b = spC.b + (var_f31 * (sp8.b - spC.b));
|
||||
break;
|
||||
}
|
||||
var_r31->unk20 = var_r31->unk40.a;
|
||||
var_r27--;
|
||||
if (var_r27 < 1) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DCStoreRange(var_r30->unk_48, var_r30->unk_30 * sizeof(HsfanimStruct01));
|
||||
}
|
||||
|
||||
void fn_1_8BA0(float arg8)
|
||||
{
|
||||
M460DllCameraStruct *var_r31;
|
||||
M460DllCameraStruct *var_r30;
|
||||
|
||||
var_r30 = fn_1_3E90(1);
|
||||
var_r31 = fn_1_3E90(2);
|
||||
var_r31->unk_00 = 1;
|
||||
var_r31->unk_1C = var_r30->unk_1C;
|
||||
var_r31->unk_28 = var_r30->unk_28;
|
||||
var_r31->unk_34 = var_r30->unk_34;
|
||||
var_r31->unk_10 = var_r30->unk_10;
|
||||
var_r31->unk_44 = var_r30->unk_44;
|
||||
var_r31->unk_40 = var_r30->unk_40;
|
||||
var_r31->unk_8C = arg8;
|
||||
var_r31->unk_90 = 0.0f;
|
||||
fn_1_3E68(2);
|
||||
}
|
||||
|
||||
s32 fn_1_8C78(void)
|
||||
{
|
||||
M460DllCameraStruct *var_r31 = fn_1_3E90(2);
|
||||
return var_r31->unk_00;
|
||||
}
|
||||
658
src/REL/m460Dll/player.c
Normal file
658
src/REL/m460Dll/player.c
Normal file
|
|
@ -0,0 +1,658 @@
|
|||
#include "datadir_enum.h"
|
||||
#include "ext_math.h"
|
||||
#include "game/audio.h"
|
||||
#include "game/chrman.h"
|
||||
#include "game/gamework_data.h"
|
||||
#include "game/hsfman.h"
|
||||
#include "game/hsfmotion.h"
|
||||
#include "game/memory.h"
|
||||
#include "game/object.h"
|
||||
#include "game/pad.h"
|
||||
#include "string.h"
|
||||
|
||||
#include "REL/m460Dll.h"
|
||||
|
||||
#ifndef __MWERKS__
|
||||
#include "game/frand.h"
|
||||
#endif
|
||||
|
||||
typedef struct UnkData110Struct {
|
||||
/* 0x00 */ u16 unk_00;
|
||||
/* 0x04 */ float unk_04;
|
||||
/* 0x08 */ float unk_08;
|
||||
/* 0x0C */ float unk_0C;
|
||||
/* 0x10 */ u32 unk_10;
|
||||
} UnkData110Struct; /* size = 0x14 */
|
||||
|
||||
typedef struct UnkM460DllPlayerWork {
|
||||
s32 unk_00;
|
||||
s32 unk_04;
|
||||
s32 unk_08;
|
||||
s32 unk_0C;
|
||||
s32 unk_10;
|
||||
u32 unk_14;
|
||||
u32 unk_18;
|
||||
float unk_1C;
|
||||
float unk_20;
|
||||
s32 unk_24;
|
||||
s32 unk_28;
|
||||
u16 unk_2C;
|
||||
s32 unk_30;
|
||||
char unk34[0x4];
|
||||
s16 unk_38;
|
||||
char unk3A[6];
|
||||
s32 unk_40;
|
||||
float unk_44;
|
||||
float unk_48;
|
||||
float unk_4C;
|
||||
float unk_50;
|
||||
float unk_54;
|
||||
s32 unk_58;
|
||||
float unk_5C;
|
||||
Vec unk_60;
|
||||
Vec unk_6C;
|
||||
Vec unk_78;
|
||||
s32 unk_84;
|
||||
} UnkM460DllPlayerWork; /* size = 0x88 */
|
||||
|
||||
void fn_1_4C08(omObjData *object);
|
||||
void fn_1_4F6C(omObjData *object);
|
||||
void fn_1_5168(omObjData *object);
|
||||
void fn_1_55EC(omObjData *object);
|
||||
void fn_1_57D8(omObjData *object);
|
||||
s32 fn_1_58C8(omObjData *object, float arg8, float arg9);
|
||||
void fn_1_5A14(omObjData *object);
|
||||
void fn_1_5C88(omObjData *object);
|
||||
void fn_1_5CE0(omObjData *object, u32 arg1);
|
||||
s32 fn_1_5E6C(omObjData *object);
|
||||
void fn_1_60B0(omObjData *object);
|
||||
void fn_1_61F4(omObjData *object);
|
||||
|
||||
u32 lbl_1_data_F0[8] = { 0, 2, 3, 0x590015, 0x59000D, 0x17, 0x18, 0x1A };
|
||||
struct UnkData110Struct lbl_1_data_110[8] = {
|
||||
{ 0, 0.2f, 0.0f, -1.0f, 0x40000001 },
|
||||
{ 1, 0.2f, 0.0f, -1.0f, 0x40000001 },
|
||||
{ 2, 0.2f, 0.0f, -1.0f, 0x40000001 },
|
||||
{ 3, 0.2f, 0.0f, -1.0f, 0x40000001 },
|
||||
{ 4, 0.2f, 0.0f, -1.0f, 0 },
|
||||
{ 5, 0.2f, 0.0f, -1.0f, 0 },
|
||||
{ 6, 0.2f, 0.0f, -1.0f, 0 },
|
||||
{ 7, 0.2f, 0.0f, -1.0f, 0x40000001 },
|
||||
};
|
||||
|
||||
omObjData *lbl_1_bss_40[1];
|
||||
omObjData *lbl_1_bss_3C;
|
||||
s32 lbl_1_bss_38[1];
|
||||
|
||||
void fn_1_49A0(Process *process)
|
||||
{
|
||||
u32 spC[1];
|
||||
u32 sp8[1];
|
||||
|
||||
s16 var_r31;
|
||||
s16 var_r30;
|
||||
u32 var_r29;
|
||||
omObjData *var_r27;
|
||||
|
||||
for (var_r31 = 0; var_r31 < 1; var_r31++) {
|
||||
spC[var_r31] = GWPlayerCfg[var_r31].group;
|
||||
sp8[var_r31] = var_r31;
|
||||
}
|
||||
for (var_r31 = 0; var_r31 < 0; var_r31++) {
|
||||
for (var_r30 = var_r31 + 1; var_r30 < 1; var_r30++) {
|
||||
if (spC[var_r31] > spC[var_r30]) {
|
||||
var_r29 = spC[var_r31];
|
||||
spC[var_r31] = spC[var_r30];
|
||||
spC[var_r30] = var_r29;
|
||||
var_r29 = sp8[var_r31];
|
||||
sp8[var_r31] = sp8[var_r30];
|
||||
sp8[var_r30] = var_r29;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (var_r31 = 0; var_r31 < 1; var_r31++) {
|
||||
lbl_1_bss_38[sp8[var_r31]] = var_r31;
|
||||
}
|
||||
omMakeGroupEx(process, 0, 1);
|
||||
omGetGroupMemberListEx(process, 0);
|
||||
for (var_r31 = 0; var_r31 < 1; var_r31++) {
|
||||
var_r27 = lbl_1_bss_40[var_r31] = omAddObjEx(process, 0x28, 1, 8, 0, fn_1_4C08);
|
||||
var_r27->work[0] = var_r31;
|
||||
}
|
||||
lbl_1_bss_3C = omAddObjEx(process, 0x28, 1, 5, -1, fn_1_60B0);
|
||||
}
|
||||
|
||||
void fn_1_4BE4(void)
|
||||
{
|
||||
CharModelKill(-1);
|
||||
}
|
||||
|
||||
void fn_1_4C08(omObjData *object)
|
||||
{
|
||||
UnkM460DllPlayerWork *var_r31;
|
||||
s32 var_r29;
|
||||
|
||||
float sp8[4] = { 0.25f, 0.5f, 0.75f, 1.0f };
|
||||
Vec sp18[4] = {
|
||||
{ 0.0f, 0.0f, 300.0f },
|
||||
{ -450.0f, 0.0f, -50.0f },
|
||||
{ 0.0f, 0.0f, -350.0f },
|
||||
{ 450.0f, 0.0f, -50.0f },
|
||||
};
|
||||
object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM460DllPlayerWork), MEMORY_DEFAULT_NUM);
|
||||
var_r31 = object->data;
|
||||
memset(var_r31, 0, sizeof(UnkM460DllPlayerWork));
|
||||
object->stat |= 0x100;
|
||||
var_r31->unk_00 = GWPlayerCfg[object->work[0]].character;
|
||||
var_r31->unk_08 = lbl_1_bss_38[object->work[0]];
|
||||
fn_1_41B4(object->work[0], var_r31->unk_08, var_r31->unk_00);
|
||||
var_r31->unk_54 = sp8[GWPlayerCfg[object->work[0]].diff & 3];
|
||||
var_r31->unk_24 = GWPlayerCfg[object->work[0]].iscom;
|
||||
object->model[0] = CharModelCreate(var_r31->unk_00, 2);
|
||||
Hu3DModelLayerSet(object->model[0], 1);
|
||||
CharModelLayerSetAll(2);
|
||||
Hu3DModelShadowSet(object->model[0]);
|
||||
for (var_r29 = 0; var_r29 < 8; var_r29++) {
|
||||
if (lbl_1_data_F0[var_r29] < 0x10000) {
|
||||
object->motion[var_r29] = CharModelMotionCreate(var_r31->unk_00, lbl_1_data_F0[var_r29]);
|
||||
}
|
||||
else {
|
||||
object->motion[var_r29] = Hu3DJointMotionFile(object->model[0], var_r31->unk_00 + lbl_1_data_F0[var_r29]);
|
||||
}
|
||||
}
|
||||
CharModelMotionDataClose(var_r31->unk_00);
|
||||
CharModelEffectNpcInitSilent(object->model[0], object->motion[3], 1);
|
||||
object->trans.x = var_r31->unk_60.x = sp18[var_r31->unk_08].x;
|
||||
object->trans.y = var_r31->unk_60.y = sp18[var_r31->unk_08].y;
|
||||
object->trans.z = var_r31->unk_60.z = sp18[var_r31->unk_08].z;
|
||||
var_r31->unk_44 = var_r31->unk_48 = 0.0f;
|
||||
var_r31->unk_4C = 0.0f;
|
||||
var_r31->unk_50 = 0.02f;
|
||||
var_r31->unk_5C = 50.0f;
|
||||
var_r31->unk_58 = 0;
|
||||
var_r31->unk_2C = 0;
|
||||
var_r31->unk_04 = -1;
|
||||
fn_1_5CE0(object, 0);
|
||||
var_r31->unk_84 = -1;
|
||||
object->func = fn_1_4F6C;
|
||||
}
|
||||
|
||||
void fn_1_4F6C(omObjData *object)
|
||||
{
|
||||
UnkM460DllPlayerWork *var_r31;
|
||||
s32 var_r29;
|
||||
|
||||
var_r31 = object->data;
|
||||
var_r31->unk_14 = var_r31->unk_18 = 0;
|
||||
var_r31->unk_0C = var_r31->unk_10 = 0;
|
||||
var_r31->unk_1C = 0.0f;
|
||||
var_r31->unk_20 = 0.0f;
|
||||
switch (var_r31->unk_2C) {
|
||||
case 0:
|
||||
var_r31->unk_44 = var_r31->unk_48 = 180.0f;
|
||||
var_r31->unk_60.x = 0.0f;
|
||||
var_r31->unk_60.y = 0.0f;
|
||||
var_r31->unk_60.z = -450.0f;
|
||||
fn_1_5CE0(object, 7);
|
||||
var_r31->unk_2C = 1;
|
||||
var_r31->unk_30 = 0;
|
||||
break;
|
||||
case 1:
|
||||
if (fn_1_414C() == 1) {
|
||||
var_r31->unk_60.x = 0.0f;
|
||||
var_r31->unk_60.y = 0.0f;
|
||||
var_r31->unk_60.z = -100.0f;
|
||||
var_r31->unk_78.x = 0.0f;
|
||||
var_r31->unk_78.y = 0.0f;
|
||||
var_r31->unk_78.z = -450.0f;
|
||||
var_r31->unk_2C = 2;
|
||||
var_r31->unk_30 = 0;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
var_r29 = fn_1_58C8(object, 0.5f, 20.0f);
|
||||
fn_1_5A14(object);
|
||||
if (var_r29 != 0) {
|
||||
var_r31->unk_2C = 3;
|
||||
var_r31->unk_30 = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
PSVECAdd(&var_r31->unk_60, &var_r31->unk_6C, &var_r31->unk_60);
|
||||
fn_1_57D8(object);
|
||||
if (fn_1_414C() == 2) {
|
||||
var_r31->unk_2C = 0;
|
||||
object->func = fn_1_5168;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_5168(omObjData *object)
|
||||
{
|
||||
UnkM460DllPlayerWork *var_r31;
|
||||
s32 var_r29;
|
||||
u32 var_r28;
|
||||
s32 var_r27;
|
||||
|
||||
var_r31 = object->data;
|
||||
var_r27 = 0;
|
||||
{
|
||||
Vec sp20[2] = {
|
||||
{ -250.0f, 0.0f, -900.0f },
|
||||
{ 250.0f, 0.0f, -900.0f },
|
||||
};
|
||||
|
||||
Vec sp8[2] = {
|
||||
{ -250.0f, 0.0f, -1400.0f },
|
||||
{ 250.0f, 0.0f, -1400.0f },
|
||||
};
|
||||
var_r31->unk_14 = var_r31->unk_18 = 0;
|
||||
var_r31->unk_0C = var_r31->unk_10 = 0;
|
||||
var_r31->unk_1C = 0.0f;
|
||||
var_r31->unk_20 = 0.0f;
|
||||
if (fn_1_4164() == 2) {
|
||||
if (var_r31->unk_24 != 0) {
|
||||
fn_1_5C88(object);
|
||||
}
|
||||
else {
|
||||
if (HuPadTrigL[GWPlayerCfg[object->work[0]].pad_idx] > 0x28) {
|
||||
var_r31->unk_14 = 1;
|
||||
}
|
||||
if (HuPadTrigR[GWPlayerCfg[object->work[0]].pad_idx] > 0x28) {
|
||||
var_r31->unk_18 = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
switch (var_r31->unk_2C) {
|
||||
case 0:
|
||||
if (fn_1_4370() != 0) {
|
||||
var_r31->unk_60.x = -140.0f;
|
||||
var_r31->unk_60.y = 0.0f;
|
||||
var_r31->unk_60.z = -150.0f;
|
||||
}
|
||||
var_r31->unk_78.x = 0.0f;
|
||||
var_r31->unk_78.y = 0.0f;
|
||||
var_r31->unk_78.z = -450.0f;
|
||||
var_r31->unk_40 = 3;
|
||||
var_r31->unk_2C = 4;
|
||||
case 4:
|
||||
var_r29 = fn_1_58C8(object, 0.5f, 20.0f);
|
||||
fn_1_5A14(object);
|
||||
if ((var_r29 != 0) && (fn_1_4164() == 2)) {
|
||||
var_r31->unk_48 = 180.0f;
|
||||
var_r31->unk_6C.x = var_r31->unk_6C.y = var_r31->unk_6C.z = 0.0f;
|
||||
var_r31->unk_2C = 5;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
var_r29 = 0;
|
||||
fn_1_5A14(object);
|
||||
if (CharModelMotionShiftIDGet(var_r31->unk_00) < 0) {
|
||||
var_r29 = 1;
|
||||
}
|
||||
var_r28 = fn_1_42F0();
|
||||
if (var_r28 == 3) {
|
||||
if (var_r29 != 0) {
|
||||
if (var_r31->unk_14 != 0) {
|
||||
var_r28 = 0;
|
||||
}
|
||||
else if (var_r31->unk_18 != 0) {
|
||||
var_r28 = 1;
|
||||
}
|
||||
if (var_r28 != 3) {
|
||||
fn_1_42BC(var_r28);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
var_r31->unk_40 = var_r28;
|
||||
var_r31->unk_78 = sp20[var_r31->unk_40];
|
||||
var_r31->unk_2C = 6;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
var_r29 = fn_1_58C8(object, 1.0f, 20.0f);
|
||||
fn_1_5A14(object);
|
||||
if (var_r29 != 0) {
|
||||
fn_1_4308();
|
||||
var_r31->unk_48 = 180.0f;
|
||||
var_r31->unk_6C.x = var_r31->unk_6C.y = var_r31->unk_6C.z = 0.0f;
|
||||
var_r31->unk_2C = 7;
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
fn_1_5A14(object);
|
||||
if (fn_1_4358() != 0) {
|
||||
if (fn_1_419C() == 0) {
|
||||
var_r31->unk_78 = sp8[var_r31->unk_40];
|
||||
var_r31->unk_2C = 8;
|
||||
}
|
||||
else {
|
||||
var_r27 = 1;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
var_r29 = fn_1_58C8(object, 0.5f, 20.0f);
|
||||
fn_1_5A14(object);
|
||||
|
||||
default:
|
||||
if (fn_1_4164() == 1) {
|
||||
var_r31->unk_2C = 0;
|
||||
}
|
||||
var_r27 = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
PSVECAdd(&var_r31->unk_60, &var_r31->unk_6C, &var_r31->unk_60);
|
||||
fn_1_57D8(object);
|
||||
if ((fn_1_4164() == 5) && (var_r27 != 0)) {
|
||||
var_r31->unk_2C = 0;
|
||||
object->func = fn_1_55EC;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_55EC(omObjData *object)
|
||||
{
|
||||
Vec sp8;
|
||||
UnkM460DllPlayerWork *var_r31;
|
||||
s32 var_r29;
|
||||
|
||||
var_r31 = object->data;
|
||||
var_r29 = 0;
|
||||
switch (var_r31->unk_2C) {
|
||||
case 0:
|
||||
fn_1_41F4(object->work[0]);
|
||||
fn_1_5CE0(object, 4);
|
||||
sp8 = var_r31->unk_60;
|
||||
sp8.y += 160.0f;
|
||||
var_r31->unk_2C = 9;
|
||||
break;
|
||||
case 9:
|
||||
if (fn_1_5E6C(object) != 0) {
|
||||
var_r31->unk_78.x = 0.0f;
|
||||
var_r31->unk_78.y = 0.0f;
|
||||
var_r31->unk_78.z = 500.0f;
|
||||
fn_1_4224(object->work[0]);
|
||||
HuAudCharVoicePlay(var_r31->unk_00, 0x128);
|
||||
var_r31->unk_28 = 1;
|
||||
var_r31->unk_2C = 0xA;
|
||||
}
|
||||
break;
|
||||
case 10:
|
||||
var_r29 = fn_1_58C8(object, 1.0f, 20.0f);
|
||||
fn_1_5A14(object);
|
||||
if (var_r29 != 0) {
|
||||
var_r31->unk_6C.x = var_r31->unk_6C.y = var_r31->unk_6C.z = 0.0f;
|
||||
var_r31->unk_2C = 0xB;
|
||||
}
|
||||
break;
|
||||
case 11:
|
||||
fn_1_5CE0(object, 0);
|
||||
break;
|
||||
}
|
||||
PSVECAdd(&var_r31->unk_60, &var_r31->unk_6C, &var_r31->unk_60);
|
||||
fn_1_57D8(object);
|
||||
if (var_r31->unk_84 >= 0) {
|
||||
sp8 = var_r31->unk_60;
|
||||
sp8.y += 160.0f;
|
||||
HuAudFXEmiterUpDate(var_r31->unk_84, &sp8);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_57D8(omObjData *object)
|
||||
{
|
||||
UnkM460DllPlayerWork *var_r31 = object->data;
|
||||
var_r31->unk_38++;
|
||||
var_r31->unk_30++;
|
||||
object->trans.x = var_r31->unk_60.x;
|
||||
object->trans.y = var_r31->unk_60.y;
|
||||
object->trans.z = var_r31->unk_60.z;
|
||||
var_r31->unk_4C = var_r31->unk_4C + var_r31->unk_50;
|
||||
if (var_r31->unk_4C > 0.45f) {
|
||||
var_r31->unk_4C = 0.45f;
|
||||
}
|
||||
var_r31->unk_44 = fn_1_47D0(var_r31->unk_44, var_r31->unk_48, var_r31->unk_4C);
|
||||
object->rot.y = var_r31->unk_44;
|
||||
Hu3DModelPosSetV(object->model[0], &var_r31->unk_60);
|
||||
Hu3DModelRotSet(object->model[0], 0.0f, var_r31->unk_44, 0.0f);
|
||||
}
|
||||
|
||||
s32 fn_1_58C8(omObjData *object, float arg8, float arg9)
|
||||
{
|
||||
Vec spC;
|
||||
float var_f31;
|
||||
UnkM460DllPlayerWork *var_r31;
|
||||
s32 var_r30;
|
||||
|
||||
var_r31 = object->data;
|
||||
var_r30 = 0;
|
||||
PSVECSubtract(&var_r31->unk_78, &var_r31->unk_60, &spC);
|
||||
spC.y = 0.0f;
|
||||
var_f31 = PSVECMag(&spC);
|
||||
if (var_f31 < arg9) {
|
||||
var_f31 = 0.0f;
|
||||
var_r30 = 1;
|
||||
}
|
||||
else {
|
||||
if (PSVECMag(&spC) >= 100.0f) {
|
||||
var_f31 = 100.0f;
|
||||
}
|
||||
var_f31 = 0.2f + (0.008f * var_f31);
|
||||
}
|
||||
var_r31->unk_1C = atan2d(spC.x, spC.z);
|
||||
var_r31->unk_20 = var_f31;
|
||||
if (var_r31->unk_20 > arg8) {
|
||||
var_r31->unk_20 = arg8;
|
||||
}
|
||||
return var_r30;
|
||||
}
|
||||
|
||||
void fn_1_5A14(omObjData *object)
|
||||
{
|
||||
float var_f31;
|
||||
float var_f30;
|
||||
|
||||
UnkM460DllPlayerWork *var_r31 = object->data;
|
||||
if (var_r31->unk_20 > 0.0f) {
|
||||
var_r31->unk_48 = var_r31->unk_1C;
|
||||
}
|
||||
if (var_r31->unk_20 > 0.05f) {
|
||||
// 1 / REFRESH_RATE?
|
||||
var_r31->unk_6C.x = 0.01666666753590107 * (550.0 * (var_r31->unk_20 * sind(var_r31->unk_1C)));
|
||||
var_r31->unk_6C.z = 0.01666666753590107 * (550.0 * (var_r31->unk_20 * cosd(var_r31->unk_1C)));
|
||||
if (var_r31->unk_28 != 0) {
|
||||
var_r31->unk_6C.x *= 1.5f;
|
||||
var_r31->unk_6C.z *= 1.5f;
|
||||
}
|
||||
var_r31->unk_4C = 0.2f;
|
||||
var_r31->unk_50 = 0.0f;
|
||||
if (CharModelMotionShiftIDGet(var_r31->unk_00) < 0) {
|
||||
var_f31 = 0.5f;
|
||||
if (var_r31->unk_04 == 2) {
|
||||
var_f31 = 0.45f;
|
||||
}
|
||||
if (var_r31->unk_20 > var_f31) {
|
||||
if (var_r31->unk_28 != 0) {
|
||||
fn_1_5CE0(object, 3);
|
||||
}
|
||||
else {
|
||||
fn_1_5CE0(object, 2);
|
||||
}
|
||||
var_f30 = var_r31->unk_20;
|
||||
}
|
||||
else {
|
||||
fn_1_5CE0(object, 1);
|
||||
var_f30 = var_r31->unk_20 / var_f31;
|
||||
}
|
||||
CharModelMotionSpeedSet(var_r31->unk_00, var_f30);
|
||||
}
|
||||
}
|
||||
else {
|
||||
var_r31->unk_6C.x = var_r31->unk_6C.y = var_r31->unk_6C.z = 0.0f;
|
||||
if (CharModelMotionShiftIDGet(var_r31->unk_00) < 0) {
|
||||
fn_1_5CE0(object, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_5C88(omObjData *object)
|
||||
{
|
||||
UnkM460DllPlayerWork *var_r31 = object->data;
|
||||
if (frandmod(0x3E8) < 0x1F4) {
|
||||
var_r31->unk_14 = 1;
|
||||
return;
|
||||
}
|
||||
var_r31->unk_18 = 1;
|
||||
}
|
||||
|
||||
void fn_1_5CE0(omObjData *object, u32 arg1)
|
||||
{
|
||||
UnkM460DllPlayerWork *var_r30 = object->data;
|
||||
if ((var_r30->unk_04 != arg1) && (arg1 < 8)) {
|
||||
float var_f31 = 60.0f * lbl_1_data_110[arg1].unk_04;
|
||||
if (var_r30->unk_04 < 0) {
|
||||
var_f31 = 0.0f;
|
||||
}
|
||||
var_r30->unk_04 = arg1;
|
||||
CharModelMotionShiftSet(
|
||||
var_r30->unk_00, object->motion[lbl_1_data_110[arg1].unk_00], 60.0f * lbl_1_data_110[arg1].unk_08, var_f31, lbl_1_data_110[arg1].unk_10);
|
||||
if (lbl_1_data_110[arg1].unk_0C >= 0.0f) {
|
||||
Hu3DMotionShiftStartEndSet(object->model[0], 60.0f * lbl_1_data_110[arg1].unk_08, 60.0f * lbl_1_data_110[arg1].unk_0C);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
s32 fn_1_5E6C(omObjData *object)
|
||||
{
|
||||
M460DllCameraStruct *var_r31 = object->data;
|
||||
s32 var_r30 = 0;
|
||||
if ((CharModelMotionEndCheck(var_r31->unk_00) != 0) && (CharModelMotionShiftIDGet(var_r31->unk_00) < 0)) {
|
||||
var_r30 = 1;
|
||||
}
|
||||
return var_r30;
|
||||
}
|
||||
|
||||
s32 fn_1_5EE0(omObjData *object, u32 arg1)
|
||||
{
|
||||
s32 var_r27 = 0;
|
||||
if (fn_1_5E6C(object)) {
|
||||
fn_1_5CE0(object, arg1);
|
||||
var_r27 = 1;
|
||||
}
|
||||
return var_r27;
|
||||
}
|
||||
|
||||
s32 lbl_1_data_1D4[5] = {
|
||||
DATA_MAKE_NUM(DATADIR_M460, 0x1E),
|
||||
DATA_MAKE_NUM(DATADIR_M460, 0x1F),
|
||||
DATA_MAKE_NUM(DATADIR_M460, 0x20),
|
||||
DATA_MAKE_NUM(DATADIR_M460, 0x21),
|
||||
DATA_MAKE_NUM(DATADIR_M460, 0x22),
|
||||
};
|
||||
|
||||
void fn_1_60B0(omObjData *object)
|
||||
{
|
||||
s32 var_r30;
|
||||
s32 var_r29;
|
||||
|
||||
omSetTra(object, 0.0f, 0.0f, 0.0f);
|
||||
var_r30 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M460, 0x1D));
|
||||
object->model[0] = var_r30;
|
||||
Hu3DModelLayerSet(var_r30, 1);
|
||||
Hu3DModelShadowSet(var_r30);
|
||||
Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF);
|
||||
for (var_r29 = 0; var_r29 < 5; var_r29++) {
|
||||
object->motion[var_r29] = Hu3DJointMotionFile(var_r30, lbl_1_data_1D4[var_r29]);
|
||||
}
|
||||
CharModelEffectNpcInitSilent(var_r30, object->motion[1], 0);
|
||||
CharModelEffectNpcInitSilent(var_r30, object->motion[2], 1);
|
||||
CharModelEffectNpcInitSilent(var_r30, object->motion[3], 1);
|
||||
object->work[1] = 0;
|
||||
object->func = fn_1_61F4;
|
||||
}
|
||||
|
||||
void fn_1_61F4(omObjData *object)
|
||||
{
|
||||
float var_f31;
|
||||
float var_f30;
|
||||
s32 var_r30;
|
||||
s32 var_r29;
|
||||
|
||||
Vec sp1C[2] = {
|
||||
{ -250.0f, 0.0f, -2200.0f },
|
||||
{ 250.0f, 0.0f, -2200.0f },
|
||||
};
|
||||
Vec sp10;
|
||||
s32 sp8[2] = { 6, 21 };
|
||||
switch (object->work[1]) {
|
||||
case 0:
|
||||
if ((fn_1_4164() == 3) && (fn_1_419C() != 0) && (fn_1_4324() != 0)) {
|
||||
Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF);
|
||||
Hu3DMotionShiftSet(object->model[0], object->motion[0], 0.0f, 0.0f, HU3D_MOTATTR_LOOP);
|
||||
var_r30 = fn_1_42F0();
|
||||
object->trans.x = sp1C[var_r30].x;
|
||||
object->trans.y = sp1C[var_r30].y;
|
||||
object->trans.z = sp1C[var_r30].z;
|
||||
object->rot.y = 0.0f;
|
||||
object->work[1] = 1;
|
||||
object->work[2] = 0;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
object->work[2]++;
|
||||
if (object->work[2] > 18.0f) {
|
||||
Hu3DMotionShiftSet(object->model[0], object->motion[2], 0.0f, 30.0f, HU3D_MOTATTR_LOOP);
|
||||
object->work[1] = 2;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
sp10.x = (*lbl_1_bss_40)->trans.x - object->trans.x;
|
||||
sp10.y = 0.0f;
|
||||
sp10.z = (*lbl_1_bss_40)->trans.z - object->trans.z;
|
||||
object->rot.y = fn_1_47D0(object->rot.y, atan2d(sp10.x, sp10.z), 0.1f);
|
||||
object->trans.z += 6.666667f;
|
||||
if (fn_1_4358() != 0) {
|
||||
HuAudFXPlay(0x3C);
|
||||
Hu3DMotionShiftSet(object->model[0], object->motion[3], 0.0f, 30.0f, HU3D_MOTATTR_LOOP);
|
||||
object->work[1] = 3;
|
||||
object->work[3] = 0x3C;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
Hu3DMotionSpeedSet(object->model[0], 0.9f);
|
||||
var_r29 = Hu3DMotionTimeGet(object->model[0]);
|
||||
for (var_r30 = 0; var_r30 < 2; var_r30++) {
|
||||
if (var_r29 == sp8[var_r30]) {
|
||||
var_f30 = 2.1166666f * object->work[3];
|
||||
HuAudFXPlayVol(0x6B, var_f30);
|
||||
}
|
||||
}
|
||||
sp10.x = (*lbl_1_bss_40)->trans.x - object->trans.x;
|
||||
sp10.y = 0.0f;
|
||||
sp10.z = (*lbl_1_bss_40)->trans.z - object->trans.z;
|
||||
object->rot.y = fn_1_47D0(object->rot.y, atan2d(sp10.x, sp10.z), 0.1f);
|
||||
if (object->trans.z < -900.0f) {
|
||||
// depending on refresh rate?
|
||||
object->trans.z += 11.666667f;
|
||||
}
|
||||
else {
|
||||
var_f31 = PSVECMag(&sp10);
|
||||
if (var_f31 < 20.0f) {
|
||||
var_f31 = 0.0f;
|
||||
}
|
||||
else {
|
||||
if (PSVECMag(&sp10) >= 100.0f) {
|
||||
var_f31 = 100.0f;
|
||||
}
|
||||
var_f31 = 0.2f + (0.008f * var_f31);
|
||||
var_f31 *= 11.666667f;
|
||||
}
|
||||
object->trans.x = object->trans.x + (var_f31 * sind(object->rot.y));
|
||||
object->trans.z = object->trans.z + (var_f31 * cosd(object->rot.y));
|
||||
}
|
||||
if ((object->trans.z > 450.0f) && (object->work[3] != 0)) {
|
||||
object->work[3]--;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
183
src/REL/m460Dll/score.c
Normal file
183
src/REL/m460Dll/score.c
Normal file
|
|
@ -0,0 +1,183 @@
|
|||
#include "datadir_enum.h"
|
||||
#include "game/data.h"
|
||||
|
||||
#include "REL/m460Dll.h"
|
||||
#include "game/memory.h"
|
||||
|
||||
#include "game/esprite.h"
|
||||
#ifndef __MWERKS__
|
||||
#endif
|
||||
|
||||
typedef struct UnkM460DllScoreWork {
|
||||
s32 unk_00;
|
||||
s32 unk_04;
|
||||
s16 unk_08;
|
||||
s16 unk_0A;
|
||||
s16 unk_0C[6];
|
||||
s32 unk_18;
|
||||
float unk_1C;
|
||||
} UnkM460DllScoreWork; /* size = 0x20 */
|
||||
|
||||
typedef void (*UnkM460DllScoreFunc)(void);
|
||||
|
||||
void fn_1_9020(s32 arg0);
|
||||
void fn_1_9050(omObjData *object);
|
||||
void fn_1_916C(void);
|
||||
void fn_1_91E4(void);
|
||||
void fn_1_9270(void);
|
||||
|
||||
UnkM460DllScoreFunc lbl_1_data_380[3] = { fn_1_916C, fn_1_91E4, fn_1_9270 };
|
||||
|
||||
Process *lbl_1_bss_54;
|
||||
omObjData *lbl_1_bss_50;
|
||||
// ? lbl_1_rodata_3D0;
|
||||
|
||||
void fn_1_8CAC(Process *process, s16 arg1)
|
||||
{
|
||||
UnkM460DllScoreWork *var_r31;
|
||||
u32 var_r30;
|
||||
|
||||
lbl_1_bss_54 = process;
|
||||
lbl_1_bss_50 = omAddObjEx(lbl_1_bss_54, 0x800, 0, 0, 7, fn_1_9050);
|
||||
lbl_1_bss_50->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM460DllScoreWork), MEMORY_DEFAULT_NUM);
|
||||
var_r31 = lbl_1_bss_50->data;
|
||||
var_r31->unk_08 = arg1;
|
||||
var_r31->unk_0A = 0;
|
||||
var_r31->unk_0C[4] = espEntry(0x590024, 2, 0);
|
||||
espColorSet(var_r31->unk_0C[4], 0, 0, 0);
|
||||
espTPLvlSet(var_r31->unk_0C[4], 0.5f);
|
||||
espPosSet(var_r31->unk_0C[4], 508.0f, 64.0f);
|
||||
var_r31->unk_0C[5] = espEntry(0x610037, 1, 0);
|
||||
espPosSet(var_r31->unk_0C[5], 490.0f, 56.0f);
|
||||
for (var_r30 = 0; var_r30 < 2; var_r30++) {
|
||||
var_r31->unk_0C[var_r30] = espEntry(0x610030, 0, 0);
|
||||
espPosSet(var_r31->unk_0C[var_r30], (var_r30 * 0x10) + 0x1FE, 56.0f);
|
||||
espDispOff(var_r31->unk_0C[var_r30]);
|
||||
}
|
||||
for (var_r30 = 0; var_r30 < 2; var_r30++) {
|
||||
var_r31->unk_0C[var_r30 + 2] = espEntry(0x610031, 1, 0);
|
||||
espPosSet(var_r31->unk_0C[var_r30 + 2], (var_r30 * 0x10) + 0x1FE, 74.0f);
|
||||
}
|
||||
for (var_r30 = 0; var_r30 < 6; var_r30++) {
|
||||
espDispOff(var_r31->unk_0C[var_r30]);
|
||||
}
|
||||
HuDataDirClose(DATA_MAKE_NUM(DATADIR_MGCONST, 0));
|
||||
fn_1_9020(0);
|
||||
}
|
||||
|
||||
void fn_1_8F38(void)
|
||||
{
|
||||
s32 var_r31;
|
||||
UnkM460DllScoreWork *var_r30 = lbl_1_bss_50->data;
|
||||
for (var_r31 = 0; var_r31 < 6; var_r31++) {
|
||||
espKill(var_r30->unk_0C[var_r31]);
|
||||
}
|
||||
HuMemDirectFree(lbl_1_bss_50->data);
|
||||
}
|
||||
|
||||
void fn_1_8FAC(s32 arg0)
|
||||
{
|
||||
s32 sp8;
|
||||
s32 var_r3;
|
||||
|
||||
switch (arg0) {
|
||||
case 0:
|
||||
fn_1_9020(1);
|
||||
break;
|
||||
case 1:
|
||||
fn_1_9020(2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_8FFC(void)
|
||||
{
|
||||
fn_1_9020(0);
|
||||
}
|
||||
|
||||
void fn_1_9020(s32 arg0)
|
||||
{
|
||||
UnkM460DllScoreWork *var_r31;
|
||||
|
||||
var_r31 = lbl_1_bss_50->data;
|
||||
var_r31->unk_00 = arg0;
|
||||
var_r31->unk_04 = 0;
|
||||
}
|
||||
|
||||
void fn_1_9050(omObjData *arg0)
|
||||
{
|
||||
UnkM460DllScoreWork *var_r31;
|
||||
s16 var_r30;
|
||||
|
||||
var_r31 = lbl_1_bss_50->data;
|
||||
lbl_1_data_380[var_r31->unk_00]();
|
||||
var_r30 = var_r31->unk_08;
|
||||
espBankSet(var_r31->unk_0C[0], var_r30 / 10);
|
||||
var_r30 -= (var_r30 / 10) * 10;
|
||||
espBankSet(var_r31->unk_0C[1], var_r30);
|
||||
var_r30 = var_r31->unk_0A;
|
||||
espBankSet(var_r31->unk_0C[2], var_r30 / 10);
|
||||
var_r30 -= (var_r30 / 10) * 10;
|
||||
espBankSet(var_r31->unk_0C[3], var_r30);
|
||||
}
|
||||
|
||||
void fn_1_916C(void)
|
||||
{
|
||||
UnkM460DllScoreWork *var_r31;
|
||||
s32 var_r30;
|
||||
|
||||
var_r31 = lbl_1_bss_50->data;
|
||||
if (var_r31->unk_04 == 0) {
|
||||
for (var_r30 = 0; var_r30 < 6; var_r30++) {
|
||||
espDispOff(var_r31->unk_0C[var_r30]);
|
||||
}
|
||||
var_r31->unk_04++;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_91E4(void)
|
||||
{
|
||||
UnkM460DllScoreWork *var_r31;
|
||||
s16 var_r30;
|
||||
|
||||
var_r31 = lbl_1_bss_50->data;
|
||||
if (var_r31->unk_04 == 0) {
|
||||
for (var_r30 = 0; var_r30 < 6; var_r30++) {
|
||||
espDispOn(var_r31->unk_0C[var_r30]);
|
||||
}
|
||||
var_r31->unk_04++;
|
||||
}
|
||||
var_r31->unk_0A = fn_1_4370();
|
||||
}
|
||||
|
||||
void fn_1_9270(void)
|
||||
{
|
||||
UnkM460DllScoreWork *var_r31;
|
||||
s32 var_r30;
|
||||
|
||||
var_r31 = lbl_1_bss_50->data;
|
||||
if (var_r31->unk_04 == 0) {
|
||||
var_r31->unk_18 = 0;
|
||||
var_r31->unk_1C = 1.0f;
|
||||
if (var_r31->unk_0A > var_r31->unk_08) {
|
||||
var_r31->unk_08 = var_r31->unk_0A;
|
||||
}
|
||||
var_r31->unk_04++;
|
||||
}
|
||||
if (var_r31->unk_18 == 0) {
|
||||
if ((var_r31->unk_1C += 0.02f) >= 1.2f) {
|
||||
var_r31->unk_1C = 1.2f;
|
||||
var_r31->unk_18 = 1;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if ((var_r31->unk_1C -= 0.04f) <= 1.0f) {
|
||||
var_r31->unk_1C = 1.0f;
|
||||
var_r31->unk_18 = 0;
|
||||
}
|
||||
}
|
||||
for (var_r30 = 0; var_r30 <= 1; var_r30++) {
|
||||
espScaleSet(var_r31->unk_0C[var_r30], var_r31->unk_1C, var_r31->unk_1C);
|
||||
}
|
||||
espScaleSet(var_r31->unk_0C[5], var_r31->unk_1C, var_r31->unk_1C);
|
||||
}
|
||||
|
|
@ -223,20 +223,20 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2)
|
|||
|
||||
espBankSet(arg0[arg1 + 1], 10);
|
||||
espBankSet(arg0[arg1 + 4], 11);
|
||||
if (36000 <= arg2) {
|
||||
arg2 = 35999;
|
||||
if (600 * REFRESH_RATE <= arg2) {
|
||||
arg2 = 600 * REFRESH_RATE - 1;
|
||||
}
|
||||
var_r30 = arg2 / 3600;
|
||||
arg2 -= var_r30 * 3600;
|
||||
var_r30 = arg2 / (60 * REFRESH_RATE);
|
||||
arg2 -= var_r30 * (60 * REFRESH_RATE);
|
||||
if (var_r30 > 9) {
|
||||
var_r30 = 9;
|
||||
}
|
||||
espBankSet(arg0[arg1], var_r30);
|
||||
var_r30 = arg2 / 60;
|
||||
arg2 -= var_r30 * 60;
|
||||
var_r30 = arg2 / REFRESH_RATE;
|
||||
arg2 -= var_r30 * REFRESH_RATE;
|
||||
espBankSet(arg0[arg1 + 2], var_r30 / 10);
|
||||
espBankSet(arg0[arg1 + 3], var_r30 % 10);
|
||||
var_r30 = 101.5f * arg2 / 60.0f;
|
||||
var_r30 = 101.5f * arg2 / REFRESH_RATE;
|
||||
espBankSet(arg0[arg1 + 5], var_r30 / 10);
|
||||
espBankSet(arg0[arg1 + 6], var_r30 % 10);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3768,6 +3768,8 @@ s32 lbl_1_data_5BC[4][2] = {
|
|||
{ 0x77, 0x18 },
|
||||
{ 0xA5, 0x18 },
|
||||
};
|
||||
|
||||
#if VERSION_NTSC
|
||||
float lbl_1_data_5DC[5][5] = {
|
||||
{ 262.0f, 119.0f, 1.3f, 227.0f, 455.0f },
|
||||
{ 314.0f, 168.0f, 0.75f, 265.0f, 416.0f },
|
||||
|
|
@ -3775,6 +3777,16 @@ float lbl_1_data_5DC[5][5] = {
|
|||
{ 418.0f, 240.0f, 0.75f, 300.0f, 381.0f },
|
||||
{ -1.0f, 289.0f, 1.3f, 220.0f, 460.0f },
|
||||
};
|
||||
#else
|
||||
float lbl_1_data_5DC[5][5] = {
|
||||
{ 262.0f, 119.0f, 1.3f, 227.0f, 455.0f },
|
||||
{ 314.0f, 168.0f, 0.75f, 300.0f, 381.0f },
|
||||
{ 366.0f, 204.0f, 0.75f, 240.0f, 440.0f },
|
||||
{ 418.0f, 240.0f, 0.75f, 300.0f, 381.0f },
|
||||
{ -1.0f, 289.0f, 1.3f, 220.0f, 460.0f },
|
||||
};
|
||||
#endif
|
||||
|
||||
s32 lbl_1_data_640[4][5] = {
|
||||
{ 0xB4, 0x60, 0x87, 0, 0 },
|
||||
{ 0xFC, 0xB8, 0xF6, 0xD4, 0x1D4 },
|
||||
|
|
@ -4633,6 +4645,18 @@ void fn_1_18F74(omObjData *arg0, MentDllUnkBss35BCStruct *arg1)
|
|||
}
|
||||
}
|
||||
|
||||
#if VERSION_PAL
|
||||
|
||||
#define POSX1 353
|
||||
#define POSX2 325
|
||||
|
||||
#else
|
||||
|
||||
#define POSX1 321
|
||||
#define POSX2 295
|
||||
|
||||
#endif
|
||||
|
||||
void fn_1_190E8(void)
|
||||
{
|
||||
s32 var_r31;
|
||||
|
|
@ -4690,16 +4714,18 @@ void fn_1_190E8(void)
|
|||
HuSprPosSet(var_r30, 0x47, 340.0f, lbl_1_data_5DC[0][1]);
|
||||
HuSprScaleSet(var_r30, 0x47, 0.0f, 0.0f);
|
||||
HuSprAttrReset(var_r30, 0x47, 4);
|
||||
#if VERSION_NTSC
|
||||
HuSprAttrReset(var_r30, 0x48, 4);
|
||||
HuSprPosSet(var_r30, 0x48, 366.0f, lbl_1_data_5DC[1][1]);
|
||||
HuSprAttrReset(var_r30, 0x49, 4);
|
||||
HuSprPosSet(var_r30, 0x49, 367.0f, 2.0f + lbl_1_data_5DC[1][1]);
|
||||
#endif
|
||||
for (var_r31 = 0; var_r31 < 2; var_r31++) {
|
||||
HuSprAttrReset(var_r30, var_r31 + 0x4A, 4);
|
||||
HuSprPosSet(var_r30, var_r31 + 0x4A, 0x141 - (var_r31 * 0x1A), lbl_1_data_5DC[1][1]);
|
||||
HuSprPosSet(var_r30, var_r31 + 0x4A, POSX1 - (var_r31 * (POSX1-POSX2)), lbl_1_data_5DC[1][1]);
|
||||
HuSprBankSet(var_r30, var_r31 + 0x4A, var_r31);
|
||||
HuSprAttrReset(var_r30, var_r31 + 0x4C, 4);
|
||||
HuSprPosSet(var_r30, var_r31 + 0x4C, 0x142 - (var_r31 * 0x1A), 2.0f + lbl_1_data_5DC[1][1]);
|
||||
HuSprPosSet(var_r30, var_r31 + 0x4C, POSX1+1 - (var_r31 * (POSX1-POSX2)), 2.0f + lbl_1_data_5DC[1][1]);
|
||||
HuSprBankSet(var_r30, var_r31 + 0x4C, var_r31);
|
||||
}
|
||||
HuSprAttrReset(var_r30, 0x4E, 4);
|
||||
|
|
@ -4964,23 +4990,29 @@ void fn_1_19C98(omObjData *arg0, MentDllUnkBss35BCStruct *arg1)
|
|||
break;
|
||||
case 1:
|
||||
if (var_r26 == 1) {
|
||||
#if VERSION_NTSC
|
||||
HuSprPosSet(var_r30, 0x48, 366.0f + var_f31, lbl_1_data_5DC[1][1]);
|
||||
HuSprPosSet(var_r30, 0x49, 367.0f + var_f31, 2.0f + lbl_1_data_5DC[1][1]);
|
||||
HuSprPosSet(var_r30, 0x4A, 321.0f + var_f31, lbl_1_data_5DC[1][1]);
|
||||
HuSprPosSet(var_r30, 0x4C, 322.0f + var_f31, 2.0f + lbl_1_data_5DC[1][1]);
|
||||
HuSprPosSet(var_r30, 0x4B, 295.0f + var_f31, lbl_1_data_5DC[1][1]);
|
||||
HuSprPosSet(var_r30, 0x4D, 296.0f + var_f31, 2.0f + lbl_1_data_5DC[1][1]);
|
||||
#endif
|
||||
HuSprPosSet(var_r30, 0x4A, POSX1 + var_f31, lbl_1_data_5DC[1][1]);
|
||||
HuSprPosSet(var_r30, 0x4C, POSX1+1 + var_f31, 2.0f + lbl_1_data_5DC[1][1]);
|
||||
HuSprPosSet(var_r30, 0x4B, POSX2 + var_f31, lbl_1_data_5DC[1][1]);
|
||||
HuSprPosSet(var_r30, 0x4D, POSX2+1 + var_f31, 2.0f + lbl_1_data_5DC[1][1]);
|
||||
}
|
||||
else {
|
||||
#if VERSION_NTSC
|
||||
HuSprPosSet(var_r30, 0x48, 366.0f - var_f31, lbl_1_data_5DC[1][1]);
|
||||
HuSprPosSet(var_r30, 0x49, 367.0f - var_f31, 2.0f + lbl_1_data_5DC[1][1]);
|
||||
HuSprPosSet(var_r30, 0x4A, 321.0f - var_f31, lbl_1_data_5DC[1][1]);
|
||||
HuSprPosSet(var_r30, 0x4C, 322.0f - var_f31, 2.0f + lbl_1_data_5DC[1][1]);
|
||||
HuSprPosSet(var_r30, 0x4B, 295.0f - var_f31, lbl_1_data_5DC[1][1]);
|
||||
HuSprPosSet(var_r30, 0x4D, 296.0f - var_f31, 2.0f + lbl_1_data_5DC[1][1]);
|
||||
#endif
|
||||
HuSprPosSet(var_r30, 0x4A, POSX1 - var_f31, lbl_1_data_5DC[1][1]);
|
||||
HuSprPosSet(var_r30, 0x4C, POSX1+1 - var_f31, 2.0f + lbl_1_data_5DC[1][1]);
|
||||
HuSprPosSet(var_r30, 0x4B, POSX2 - var_f31, lbl_1_data_5DC[1][1]);
|
||||
HuSprPosSet(var_r30, 0x4D, POSX2+1 - var_f31, 2.0f + lbl_1_data_5DC[1][1]);
|
||||
}
|
||||
#if VERSION_NTSC
|
||||
HuSprScaleSet(var_r30, 0x48, 1.0f, var_f30);
|
||||
HuSprScaleSet(var_r30, 0x49, 1.0f, var_f30);
|
||||
#endif
|
||||
HuSprScaleSet(var_r30, 0x4A, 1.0f, var_f30);
|
||||
HuSprScaleSet(var_r30, 0x4C, 1.0f, var_f30);
|
||||
HuSprScaleSet(var_r30, 0x4B, 1.0f, var_f30);
|
||||
|
|
@ -5103,6 +5135,9 @@ void fn_1_19C98(omObjData *arg0, MentDllUnkBss35BCStruct *arg1)
|
|||
}
|
||||
}
|
||||
|
||||
#undef POSX2
|
||||
#undef POSX1
|
||||
|
||||
void fn_1_1BB2C(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3)
|
||||
{
|
||||
s32 var_r31;
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
#include "REL/mpexDll.h"
|
||||
|
||||
s32 lbl_1_data_788[0xC6] = {
|
||||
static s32 fontDataTbl[0xC6] = {
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
|
|
@ -229,7 +229,7 @@ s32 fn_1_1CB80(SeqWork *arg0, u8 *arg1, s16 arg2)
|
|||
s16 var_r20;
|
||||
s16 var_r19;
|
||||
|
||||
var_r27 = lbl_1_data_788;
|
||||
var_r27 = fontDataTbl;
|
||||
|
||||
for (var_r23 = 0; var_r23 < 0x10; var_r23++) {
|
||||
if (arg0->spr_grp[var_r23] == -1) {
|
||||
|
|
|
|||
|
|
@ -1606,7 +1606,7 @@ void fn_1_9988(s32 arg0)
|
|||
u32 var_r29;
|
||||
|
||||
fn_1_1B834();
|
||||
if (((mgRecordExtra == 0) && (arg0 != 4)) || ((mgRecordExtra >= 0x8CA0) && (arg0 == 4))) {
|
||||
if (((mgRecordExtra == 0) && (arg0 != 4)) || ((mgRecordExtra >= 600*REFRESH_RATE) && (arg0 == 4))) {
|
||||
HuAudFXPlay(0x4A);
|
||||
fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 3, 0xF, 1);
|
||||
fn_1_1BA78(arg0 + 0x330096, -1, -1);
|
||||
|
|
@ -1615,23 +1615,23 @@ void fn_1_9988(s32 arg0)
|
|||
else {
|
||||
if ((arg0 == 4) || (arg0 == 8)) {
|
||||
var_r31 = mgRecordExtra;
|
||||
var_r30 = var_r31 / 36000;
|
||||
var_r31 -= var_r30 * 36000;
|
||||
var_r29 = var_r31 / 3600;
|
||||
var_r31 -= var_r29 * 3600;
|
||||
var_r30 = var_r31 / (600*REFRESH_RATE);
|
||||
var_r31 -= var_r30 * (600*REFRESH_RATE);
|
||||
var_r29 = var_r31 / (60*REFRESH_RATE);
|
||||
var_r31 -= var_r29 * (60*REFRESH_RATE);
|
||||
sprintf(lbl_1_bss_120, "%d", var_r29);
|
||||
fn_1_1BB4C((u32)&lbl_1_bss_120, 0);
|
||||
var_r30 = var_r31 / 600;
|
||||
var_r31 -= var_r30 * 600;
|
||||
var_r29 = var_r31 / 60;
|
||||
var_r31 -= var_r29 * 60;
|
||||
var_r30 = var_r31 / (10*REFRESH_RATE);
|
||||
var_r31 -= var_r30 * (10*REFRESH_RATE);
|
||||
var_r29 = var_r31 / REFRESH_RATE;
|
||||
var_r31 -= var_r29 * REFRESH_RATE;
|
||||
sprintf(lbl_1_bss_118, "%d%d", var_r30, var_r29);
|
||||
fn_1_1BB4C((u32)lbl_1_bss_118, 1);
|
||||
if (arg0 == 8) {
|
||||
var_r31 = 1.6916666666666667 * (float)var_r31;
|
||||
var_r31 = (101.5/REFRESH_RATE) * (float)var_r31;
|
||||
}
|
||||
else {
|
||||
var_r31 = 1.6666666666666667 * (float)var_r31;
|
||||
var_r31 = (100.0/REFRESH_RATE) * (float)var_r31;
|
||||
}
|
||||
var_r30 = var_r31 / 10;
|
||||
var_r31 -= var_r30 * 0xA;
|
||||
|
|
@ -1856,12 +1856,21 @@ void fn_1_AD34(void)
|
|||
HuAudFXPlay(0x9E);
|
||||
fn_1_1B7D0(0xA5);
|
||||
lbl_1_bss_1B8[0].unk_04 = (MpexDllUnkFunc2)fn_1_A0E4;
|
||||
if (((mgRecordExtra == 0) && (lbl_1_bss_1B0 != 4)) || ((mgRecordExtra >= 0x8CA0) && (lbl_1_bss_1B0 == 4))) {
|
||||
#if VERSION_NTSC
|
||||
if (((mgRecordExtra == 0) && (lbl_1_bss_1B0 != 4)) || ((mgRecordExtra >= 600*REFRESH_RATE) && (lbl_1_bss_1B0 == 4))) {
|
||||
fn_1_25C4(lbl_1_bss_1B8[0].unk_00, 1, 5, 0xF, 0);
|
||||
}
|
||||
else {
|
||||
fn_1_25C4(lbl_1_bss_1B8[0].unk_00, 1, 4, 0xF, 0);
|
||||
}
|
||||
#else
|
||||
if (((mgRecordExtra == 0) && (lbl_1_bss_1B0 != 4)) || ((mgRecordExtra >= 500*REFRESH_RATE) && (lbl_1_bss_1B0 == 4))) {
|
||||
fn_1_25C4(lbl_1_bss_1B8[0].unk_00, 1, 5, 0xF, 0);
|
||||
}
|
||||
else {
|
||||
fn_1_25C4(lbl_1_bss_1B8[0].unk_00, 1, 4, 0xF, 0);
|
||||
}
|
||||
#endif
|
||||
fn_1_BC18();
|
||||
fn_1_1B7D0(1);
|
||||
HuAudFXPlay(0x9F);
|
||||
|
|
@ -2232,6 +2241,7 @@ void fn_1_C860(void)
|
|||
|
||||
s32 fn_1_C898(s32 arg0, s32 arg1, s32 arg2, s32 arg3)
|
||||
{
|
||||
#if VERSION_NTSC
|
||||
s32 sp88[5][9] = {
|
||||
{ 0x64, 0xC8, 0x12C, 0x136, 0x140, 0x14A, 0x154, 0x15E, 0x168 },
|
||||
{ 0x05, 0x0A, 0x0F, 0x14, 0x19, 0x1E, 0x23, 0x28, 0x32 },
|
||||
|
|
@ -2244,6 +2254,21 @@ s32 fn_1_C898(s32 arg0, s32 arg1, s32 arg2, s32 arg3)
|
|||
{ 0x4650, 0x3840, 0x2A30, 0x1C20, 0x1770, 0x12C0, 0x0E10, 0, 0 },
|
||||
{ 0x4650, 0x3840, 0x2A30, 0x2328, 0x1C20, 0x19C8, 0x1770, 0x1644, 0x1518 },
|
||||
};
|
||||
#else
|
||||
s32 sp88[5][9] = {
|
||||
{ 0x32, 0x64, 0xC8, 0x12C, 0x136, 0x140, 0x14A, 0x154, 0x15E },
|
||||
{ 0x05, 0x0A, 0x0F, 0x14, 0x19, 0x1E, 0x23, 0x28, 0x32 },
|
||||
{ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 },
|
||||
{ 60*REFRESH_RATE, 120*REFRESH_RATE, 180*REFRESH_RATE, 240*REFRESH_RATE, 300*REFRESH_RATE,
|
||||
360*REFRESH_RATE, 420*REFRESH_RATE, 480*REFRESH_RATE, 540*REFRESH_RATE },
|
||||
{ 0x0A, 0xF, 0x14, 0x19, 0x1E, 0x23, 0x28, 0x2B, 0x2D },
|
||||
};
|
||||
s32 sp1C[3][9] = {
|
||||
{ 300*REFRESH_RATE, 240*REFRESH_RATE, 180*REFRESH_RATE, 120*REFRESH_RATE, 60*REFRESH_RATE, 0, 0, 0, 0 },
|
||||
{ 300*REFRESH_RATE, 240*REFRESH_RATE, 180*REFRESH_RATE, 120*REFRESH_RATE, 110*REFRESH_RATE, 100*REFRESH_RATE, 90*REFRESH_RATE, 0, 0 },
|
||||
{ 300*REFRESH_RATE, 240*REFRESH_RATE, 180*REFRESH_RATE, 170*REFRESH_RATE, 124*REFRESH_RATE, 150*REFRESH_RATE, 140*REFRESH_RATE, 130*REFRESH_RATE, 120*REFRESH_RATE },
|
||||
};
|
||||
#endif
|
||||
s32 sp10[3];
|
||||
s32 var_r31;
|
||||
s32 var_r30;
|
||||
|
|
@ -2324,6 +2349,7 @@ void fn_1_CA98(s32 arg0, u32 arg1)
|
|||
case 3:
|
||||
OSReport("#################### HI-SCORE(%d) : %d\n", arg1, GWGameStat.mg_record[sp8[arg1]]);
|
||||
var_r31 = GWGameStat.mg_record[sp8[arg1]];
|
||||
#if VERSION_NTSC
|
||||
if (var_r31 < 0xA) {
|
||||
sprintf(lbl_1_bss_FC, " %d", var_r31);
|
||||
}
|
||||
|
|
@ -2333,28 +2359,31 @@ void fn_1_CA98(s32 arg0, u32 arg1)
|
|||
else {
|
||||
sprintf(lbl_1_bss_FC, "%d", var_r31);
|
||||
}
|
||||
#else
|
||||
sprintf(lbl_1_bss_FC, " %d", var_r31);
|
||||
#endif
|
||||
HuWinInsertMesSet(arg0, (u32)lbl_1_bss_FC, 0);
|
||||
break;
|
||||
case 8:
|
||||
OSReport("#################### HI-SCORE(%d) : %d\n", arg1, GWGameStat.mg_record[sp8[arg1]]);
|
||||
var_r31 = GWGameStat.mg_record[sp8[arg1]];
|
||||
var_r29 = var_r31 / 36000;
|
||||
var_r31 -= var_r29 * 36000;
|
||||
var_r28 = var_r31 / 3600;
|
||||
var_r31 -= var_r28 * 3600;
|
||||
var_r29 = var_r31 / (600 *REFRESH_RATE);
|
||||
var_r31 -= var_r29 * (600 *REFRESH_RATE);
|
||||
var_r28 = var_r31 / (60 *REFRESH_RATE);
|
||||
var_r31 -= var_r28 * (60 *REFRESH_RATE);
|
||||
sprintf(lbl_1_bss_F4, " %d", var_r28);
|
||||
HuWinInsertMesSet(arg0, (u32)lbl_1_bss_F4, 0);
|
||||
var_r29 = var_r31 / 600;
|
||||
var_r31 -= var_r29 * 600;
|
||||
var_r28 = var_r31 / 60;
|
||||
var_r31 -= var_r28 * 60;
|
||||
var_r29 = var_r31 / (10 *REFRESH_RATE);
|
||||
var_r31 -= var_r29 * (10 *REFRESH_RATE);
|
||||
var_r28 = var_r31 / REFRESH_RATE;
|
||||
var_r31 -= var_r28 * REFRESH_RATE;
|
||||
sprintf(lbl_1_bss_EC, "%d%d", var_r29, var_r28);
|
||||
HuWinInsertMesSet(arg0, (u32)lbl_1_bss_EC, 1);
|
||||
var_r31 = 1.6916666666666667 * (float)var_r31;
|
||||
var_r31 = (101.5/REFRESH_RATE) * (float)var_r31;
|
||||
var_r29 = var_r31 / 10;
|
||||
var_r31 -= var_r29 * 0xA;
|
||||
var_r28 = var_r31;
|
||||
if (GWGameStat.mg_record[sp8[arg1]] >= 0x8C9F) {
|
||||
if (GWGameStat.mg_record[sp8[arg1]] >= ((600*REFRESH_RATE)-1)) {
|
||||
sprintf(lbl_1_bss_E4, "99");
|
||||
}
|
||||
else {
|
||||
|
|
@ -2678,24 +2707,24 @@ void fn_1_E568(void)
|
|||
HuSprPosSet(var_r29, 0x0D + var_r28 + (var_r31 * 7), (var_r28 * 0x14) + 0x512, (var_r31 * 0x38) + 0xBA);
|
||||
}
|
||||
var_r30 = GWGameStat.mg_record[var_r31 + 6];
|
||||
var_r27 = var_r30 / 36000;
|
||||
var_r30 -= var_r27 * 36000;
|
||||
var_r26 = var_r30 / 3600;
|
||||
var_r30 -= var_r26 * 3600;
|
||||
var_r27 = var_r30 / (600*REFRESH_RATE);
|
||||
var_r30 -= var_r27 * (600*REFRESH_RATE);
|
||||
var_r26 = var_r30 / (60*REFRESH_RATE);
|
||||
var_r30 -= var_r26 * (60*REFRESH_RATE);
|
||||
HuSprBankSet(var_r29, (var_r31 * 7) + 0xD, var_r26);
|
||||
HuSprBankSet(var_r29, (var_r31 * 7) + 0xE, 0xA);
|
||||
var_r27 = var_r30 / 600;
|
||||
var_r30 -= var_r27 * 600;
|
||||
var_r26 = var_r30 / 60;
|
||||
var_r30 -= var_r26 * 60;
|
||||
var_r27 = var_r30 / (10*REFRESH_RATE);
|
||||
var_r30 -= var_r27 * (10*REFRESH_RATE);
|
||||
var_r26 = var_r30 / REFRESH_RATE;
|
||||
var_r30 -= var_r26 * REFRESH_RATE;
|
||||
HuSprBankSet(var_r29, (var_r31 * 7) + 0xF, var_r27);
|
||||
HuSprBankSet(var_r29, (var_r31 * 7) + 0x10, var_r26);
|
||||
HuSprBankSet(var_r29, (var_r31 * 7) + 0x11, 0xB);
|
||||
var_r30 = 1.6666666666666667 * (float)var_r30;
|
||||
var_r30 = (100.0/REFRESH_RATE) * (float)var_r30;
|
||||
var_r27 = var_r30 / 10;
|
||||
var_r30 -= var_r27 * 0xA;
|
||||
var_r26 = var_r30;
|
||||
if (GWGameStat.mg_record[var_r31 + 6] == 0x8C9F) {
|
||||
if (GWGameStat.mg_record[var_r31 + 6] == ((600*REFRESH_RATE)-1)) {
|
||||
HuSprBankSet(var_r29, (var_r31 * 7) + 0x12, 9);
|
||||
HuSprBankSet(var_r29, (var_r31 * 7) + 0x13, 9);
|
||||
}
|
||||
|
|
@ -3426,26 +3455,38 @@ void fn_1_121E8(void)
|
|||
else if (GWGameStat.mg_record[9] >= 0x63) {
|
||||
GWGameStat.mg_record[9] = 0x63;
|
||||
}
|
||||
#if VERSION_NTSC
|
||||
OSReport("HIScore 451A(0-35999):%d\n", GWGameStat.mg_record[6]);
|
||||
#else
|
||||
OSReport("HIScore 451A(0-29999):%d\n", GWGameStat.mg_record[6]);
|
||||
#endif
|
||||
if (GWGameStat.mg_record[6] == 0) {
|
||||
GWGameStat.mg_record[6] = 0;
|
||||
}
|
||||
else if (GWGameStat.mg_record[6] >= 0x8C9F) {
|
||||
GWGameStat.mg_record[6] = 0x8C9F;
|
||||
else if (GWGameStat.mg_record[6] >= ((REFRESH_RATE*600)-1)) {
|
||||
GWGameStat.mg_record[6] = ((REFRESH_RATE*600)-1);
|
||||
}
|
||||
#if VERSION_NTSC
|
||||
OSReport("HIScore 451B(0-35999):%d\n", GWGameStat.mg_record[7]);
|
||||
#else
|
||||
OSReport("HIScore 451B(0-29999):%d\n", GWGameStat.mg_record[7]);
|
||||
#endif
|
||||
if (GWGameStat.mg_record[7] == 0) {
|
||||
GWGameStat.mg_record[7] = 0;
|
||||
}
|
||||
else if (GWGameStat.mg_record[7] >= 0x8C9F) {
|
||||
GWGameStat.mg_record[7] = 0x8C9F;
|
||||
else if (GWGameStat.mg_record[7] >= ((REFRESH_RATE*600)-1)) {
|
||||
GWGameStat.mg_record[7] = ((REFRESH_RATE*600)-1);
|
||||
}
|
||||
#if VERSION_NTSC
|
||||
OSReport("HIScore 451C(0-35999):%d\n", GWGameStat.mg_record[8]);
|
||||
#else
|
||||
OSReport("HIScore 451C(0-29999):%d\n", GWGameStat.mg_record[8]);
|
||||
#endif
|
||||
if (GWGameStat.mg_record[8] == 0) {
|
||||
GWGameStat.mg_record[8] = 0;
|
||||
}
|
||||
else if (GWGameStat.mg_record[8] >= 0x8C9F) {
|
||||
GWGameStat.mg_record[8] = 0x8C9F;
|
||||
else if (GWGameStat.mg_record[8] >= ((REFRESH_RATE*600)-1)) {
|
||||
GWGameStat.mg_record[8] = ((REFRESH_RATE*600)-1);
|
||||
}
|
||||
OSReport("HIScore 442(0-999):%d\n", GWGameStat.mg_record[4]);
|
||||
if (GWGameStat.mg_record[4] == 0) {
|
||||
|
|
@ -3468,12 +3509,16 @@ void fn_1_121E8(void)
|
|||
else if (GWGameStat.mg_record[0xC] >= 0x63) {
|
||||
GWGameStat.mg_record[0xC] = 0x63;
|
||||
}
|
||||
OSReport("HIScore 461(0-35999):%d\n", GWGameStat.mg_record[0xD]);
|
||||
#if VERSION_NTSC
|
||||
OSReport("HIScore 461(0-35999):%d\n", GWGameStat.mg_record[13]);
|
||||
#else
|
||||
OSReport("HIScore 461(0-29999):%d\n", GWGameStat.mg_record[13]);
|
||||
#endif
|
||||
if (GWGameStat.mg_record[0xD] == 0) {
|
||||
GWGameStat.mg_record[0xD] = 0;
|
||||
}
|
||||
else if (GWGameStat.mg_record[0xD] >= 0x8C9F) {
|
||||
GWGameStat.mg_record[0xD] = 0x8C9F;
|
||||
else if (GWGameStat.mg_record[0xD] >= ((REFRESH_RATE*600)-1)) {
|
||||
GWGameStat.mg_record[0xD] = ((REFRESH_RATE*600)-1);
|
||||
}
|
||||
OSReport("HIScore 462(0-99):%d\n", GWGameStat.mg_record[0xE]);
|
||||
if (GWGameStat.mg_record[0xE] == 0) {
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
|
||||
#include "dolphin.h"
|
||||
#include "math.h"
|
||||
#include "version.h"
|
||||
|
||||
#define RECORD_TYPE_BOARD 0
|
||||
#define RECORD_TYPE_MG 1
|
||||
|
|
@ -572,7 +573,7 @@ static void ShowBoard(omObjData *object, s32 board)
|
|||
espPosSet(work->sprList[board], 275.0f, 72.0f);
|
||||
value = work->boardRecord[work->board].playCount;
|
||||
for (i = 0; i < PLAY_COUNT_NUM_DIGITS; i++) {
|
||||
espPosSet(work->sprList[i + 11], 323.0f + 20.0f * i, 116.0f);
|
||||
espPosSet(work->sprList[i + 11], (VERSION_NTSC ? 323.0f : 392.0f) + 20.0f * i, 116.0f);
|
||||
if (value > 999) {
|
||||
espBankSet(work->sprList[i + 11], i + 10);
|
||||
}
|
||||
|
|
@ -583,7 +584,7 @@ static void ShowBoard(omObjData *object, s32 board)
|
|||
espPosSet(work->sprList[8], 416.0f, 120.0f);
|
||||
value = work->boardRecord[work->board].maxCoins;
|
||||
for (i = 0; i < MAX_COINS_NUM_DIGITS; i++) {
|
||||
espPosSet(work->sprList[i + 15], 364.0f + 20.0f * i, 268.0f);
|
||||
espPosSet(work->sprList[i + 15], (VERSION_NTSC ? 364.0f : 392.0f) + 20.0f * i, 268.0f);
|
||||
if (value > 999) {
|
||||
espBankSet(work->sprList[i + 15], i + 10);
|
||||
}
|
||||
|
|
@ -591,10 +592,12 @@ static void ShowBoard(omObjData *object, s32 board)
|
|||
espBankSet(work->sprList[i + 15], GetDigit(value, 3 - i));
|
||||
}
|
||||
}
|
||||
#if VERSION_NTSC
|
||||
espPosSet(work->sprList[9], 456.0f, 268.0f);
|
||||
#endif
|
||||
value = work->boardRecord[work->board].maxStars;
|
||||
for (i = 0; i < MAX_STARS_NUM_DIGITS; i++) {
|
||||
espPosSet(work->sprList[i + 19], 364.0f + 20.0f * i, 312.0f);
|
||||
espPosSet(work->sprList[i + 19], (VERSION_NTSC ? 364.0f : 392.0f) + 20.0f * i, 312.0f);
|
||||
if (value > 999) {
|
||||
espBankSet(work->sprList[i + 19], i + 10);
|
||||
}
|
||||
|
|
@ -602,7 +605,9 @@ static void ShowBoard(omObjData *object, s32 board)
|
|||
espBankSet(work->sprList[i + 19], GetDigit(value, 3 - i));
|
||||
}
|
||||
}
|
||||
#if VERSION_NTSC
|
||||
espPosSet(work->sprList[10], 456.0f, 312.0f);
|
||||
#endif
|
||||
for (i = 0; i < NUM_CHARACTERS; i++) {
|
||||
espPosSet(work->sprList[i + 49], 92.0f + 50.0f * i, 200.0f);
|
||||
for (j = 0; j < WIN_COUNT_NUM_DIGITS; j++) {
|
||||
|
|
@ -616,11 +621,15 @@ static void ShowBoard(omObjData *object, s32 board)
|
|||
for (i = 0; i < PLAY_COUNT_NUM_DIGITS; i++) {
|
||||
espDispOn(work->sprList[i + 11]);
|
||||
}
|
||||
#if VERSION_NTSC
|
||||
espDispOn(work->sprList[8]);
|
||||
#endif
|
||||
for (i = 0; i < MAX_COINS_NUM_DIGITS; i++) {
|
||||
espDispOn(work->sprList[i + 15]);
|
||||
}
|
||||
#if VERSION_NTSC
|
||||
espDispOn(work->sprList[9]);
|
||||
#endif
|
||||
for (i = 0; i < MAX_STARS_NUM_DIGITS; i++) {
|
||||
espDispOn(work->sprList[i + 19]);
|
||||
}
|
||||
|
|
@ -759,14 +768,14 @@ static void ShowMG(omObjData *object, s32 page)
|
|||
}
|
||||
break;
|
||||
case DISPLAY_TYPE_TIME:
|
||||
timeMin = value / 3600;
|
||||
timeSec = (value % 3600) / 60;
|
||||
timeCenti = (value % 3600) % 60;
|
||||
timeMin = value / (60 * REFRESH_RATE);
|
||||
timeSec = (value % (60 * REFRESH_RATE)) / REFRESH_RATE;
|
||||
timeCenti = (value % (60 * REFRESH_RATE)) % REFRESH_RATE;
|
||||
if (mgTbl[mg].id == 405 || mgTbl[mg].id == 432) {
|
||||
timeCenti *= 1.6916667f;
|
||||
timeCenti *= (101.5f / REFRESH_RATE);
|
||||
}
|
||||
else {
|
||||
timeCenti *= 1.6666666f;
|
||||
timeCenti *= (100.0f / REFRESH_RATE);
|
||||
}
|
||||
for (j = 1; j < MG_TIME_NUM_DIGITS; j++) {
|
||||
espPosSet(work->sprList[i * 8 + 89 + j], 336.0f + 16.0f * j, 116.0f + 40.0f * i);
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@
|
|||
#include "game/process.h"
|
||||
#include "game/sprite.h"
|
||||
|
||||
#include "version.h"
|
||||
|
||||
static void ExecWindow(void);
|
||||
|
||||
OptionWindow *OptionWinCreate(s32 id)
|
||||
|
|
@ -33,13 +35,13 @@ OptionWindow *OptionWinCreate(s32 id)
|
|||
HuWinMesSpeedSet(work->window, 0);
|
||||
break;
|
||||
case 2:
|
||||
work->window = HuWinExCreateStyled(-10000.0f, 88.0f, 224, 34, -1, 0);
|
||||
work->window = HuWinExCreateStyled(-10000.0f, 88.0f, VERSION_NTSC ? 224 : 320, 34, -1, 0);
|
||||
HuWinAttrSet(work->window, 0x800);
|
||||
HuWinBGTPLvlSet(work->window, 0.0f);
|
||||
HuWinMesSpeedSet(work->window, 0);
|
||||
break;
|
||||
case 3:
|
||||
work->window = HuWinExCreateStyled(175.0f, 100.0f, 300, 34, -1, 0);
|
||||
work->window = HuWinExCreateStyled(175.0f, 100.0f, VERSION_NTSC ? 300 : 320, 34, -1, 0);
|
||||
HuWinBGTPLvlSet(work->window, 0.0f);
|
||||
HuWinMesSpeedSet(work->window, 0);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -6,7 +6,9 @@
|
|||
#include "math.h"
|
||||
|
||||
s32 lbl_1_data_0 = 100;
|
||||
#if VERSION_NTSC
|
||||
s32 lbl_1_bss_0[192];
|
||||
#endif
|
||||
|
||||
void fn_1_0(void)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -178,9 +178,32 @@ static StaffData staffData[] = {
|
|||
{ 0x0035005F, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350060, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 48.0f, 0, 0, 0 },
|
||||
#if VERSION_PAL
|
||||
{ 0x00340026, 0, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 24.0f, 0, 0, 0 },
|
||||
{ 0x00340027, 1, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 24.0f, 0, 0, 0 },
|
||||
{ 0x00340028, 1, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350061, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 24.0f, 0, 0, 0 },
|
||||
{ 0x00340029, 1, 0.0f, 0, 0, 0 },
|
||||
{ 0x0034002A, 1, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350062, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x0034002B, 1, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350063, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x0034002C, 1, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350064, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x0034002D, 1, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350065, 2, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 24.0f, 0, 0, 0 },
|
||||
{ 0x0034002E, 1, 0.0f, 0, 0, 0 },
|
||||
{ -3, 0, 72.0f, 0, 0, 0 },
|
||||
#endif
|
||||
{ 0x00340016, 0, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350044, 2, 0.0f, 0, 0, 0 },
|
||||
#if VERSION_NTSC
|
||||
{ 0x00350045, 2, 0.0f, 0, 0, 0 },
|
||||
#endif
|
||||
{ -3, 0, 24.0f, 0, 0, 0 },
|
||||
{ 0x00350046, 2, 0.0f, 0, 0, 0 },
|
||||
{ 0x00350047, 2, 0.0f, 0, 0, 0 },
|
||||
|
|
@ -216,7 +239,11 @@ static StaffData staffData[] = {
|
|||
{ -1, 0, 0.0f, 0, 0, 0 },
|
||||
};
|
||||
|
||||
#if VERSION_NTSC
|
||||
static float staffLogoPosTbl[] = { 460.0f, 293.0f, 293.0f };
|
||||
#else
|
||||
static float staffLogoPosTbl[] = { 460.0f, 290.0f, 293.0f };
|
||||
#endif
|
||||
|
||||
static void MainProc(void);
|
||||
static void CreateStaff(void);
|
||||
|
|
@ -305,7 +332,36 @@ static void CreateStaff(void)
|
|||
}
|
||||
|
||||
for (var_r31 = 0; var_r31 < 3; var_r31++) {
|
||||
int languageNo;
|
||||
#if VERSION_NTSC
|
||||
var_r29 = HuDataSelHeapReadNum(var_r31 + DATA_MAKE_NUM(DATADIR_STAFF, 0x1A), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
||||
#else
|
||||
if(var_r31 == 2) {
|
||||
switch(GWGameStat.language) {
|
||||
case 1:
|
||||
languageNo = 0;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
languageNo = 1;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
languageNo = 3;
|
||||
break;
|
||||
|
||||
default:
|
||||
languageNo = 2;
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
var_r29 = HuDataSelHeapReadNum(var_r31 + DATA_MAKE_NUM(DATADIR_STAFF, 0x1A) + languageNo, MEMORY_DEFAULT_NUM, HEAP_DATA);
|
||||
} else {
|
||||
var_r29 = HuDataSelHeapReadNum(var_r31 + DATA_MAKE_NUM(DATADIR_STAFF, 0x1A), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
||||
}
|
||||
#endif
|
||||
|
||||
var_r28 = HuSprAnimRead(var_r29);
|
||||
var_r30 = HuSprCreate(var_r28, 256, 0);
|
||||
staffLogoGroup[var_r31] = HuSprGrpCreate(1);
|
||||
|
|
@ -319,7 +375,11 @@ static void CreateStaff(void)
|
|||
HuSprGrpPosSet(thpGroup, 280.0f, 200.0f);
|
||||
HuSprAttrSet(thpGroup, 0, HUSPR_ATTR_DISPOFF);
|
||||
HuTHPStop();
|
||||
#if VERSION_NTSC
|
||||
var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_STAFF, 0x1D), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
||||
#else
|
||||
var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_STAFF, 0x20), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
||||
#endif
|
||||
var_r28 = HuSprAnimRead(var_r29);
|
||||
var_r30 = HuSprCreate(var_r28, 16385, 0);
|
||||
thpCoverGroup = HuSprGrpCreate(1);
|
||||
|
|
@ -462,12 +522,19 @@ static void ShowPicture(void)
|
|||
HuSprTPLvlSet(imgGroup[currImg], 0, 1.0f);
|
||||
|
||||
while (TRUE) {
|
||||
#if VERSION_NTSC
|
||||
if (currImg >= 24) {
|
||||
HuPrcSleep(430);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
HuPrcSleep(550);
|
||||
}
|
||||
#else
|
||||
if (currImg >= 24) {
|
||||
HuPrcSleep(480);
|
||||
} else {
|
||||
HuPrcSleep(600);
|
||||
}
|
||||
#endif
|
||||
if (currImg >= 25) {
|
||||
break;
|
||||
}
|
||||
|
|
@ -548,7 +615,11 @@ static void MainProc(void)
|
|||
HuPrcVSleep();
|
||||
}
|
||||
HuSprGrpPosSet(staffLogoGroup[1], var_f29, 400.0f);
|
||||
#if VERSION_NTSC
|
||||
HuPrcSleep(240);
|
||||
#else
|
||||
HuPrcSleep(60);
|
||||
#endif
|
||||
HuSprAttrReset(thpGroup, 0, HUSPR_ATTR_DISPOFF);
|
||||
HuSprAttrReset(thpCoverGroup, 0, HUSPR_ATTR_DISPOFF);
|
||||
HuTHPRestart();
|
||||
|
|
@ -579,15 +650,20 @@ static void MainProc(void)
|
|||
HuSprAttrSet(staffLogoGroup[1], 0, HUSPR_ATTR_DISPOFF);
|
||||
HuPrcSleep(120);
|
||||
HuSprAttrReset(staffLogoGroup[2], 0, HUSPR_ATTR_DISPOFF);
|
||||
#if VERSION_NTSC
|
||||
HuSprGrpPosSet(staffLogoGroup[2], 280.0f, 240.0f);
|
||||
|
||||
#else
|
||||
HuSprGrpPosSet(staffLogoGroup[2], 275.0f, 240.0f);
|
||||
#endif
|
||||
for (var_r31 = 0, var_f31 = 0.0f; var_r31 < 30; var_r31++, var_f31 += 1.0f / 30.0f) {
|
||||
HuSprTPLvlSet(staffLogoGroup[2], 0, var_f31);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
||||
#if VERSION_NTSC
|
||||
HuPrcSleep(600);
|
||||
|
||||
#else
|
||||
HuPrcSleep(480);
|
||||
#endif
|
||||
while (TRUE) {
|
||||
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
||||
if (HuPadBtn[var_r31] & PAD_BUTTON_START) {
|
||||
|
|
|
|||
|
|
@ -248,7 +248,7 @@ void fn_1_9DD8(void)
|
|||
}
|
||||
lbl_1_bss_72C = 0;
|
||||
lbl_1_bss_74C = 5;
|
||||
lbl_1_bss_748 = 0x3C;
|
||||
lbl_1_bss_748 = REFRESH_RATE;
|
||||
lbl_1_bss_72A = 0;
|
||||
fn_1_CEC4();
|
||||
lbl_1_bss_788 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 17), NULL, 0);
|
||||
|
|
@ -566,11 +566,11 @@ static void fn_1_B478(omObjData *arg0)
|
|||
u16 var_r29;
|
||||
|
||||
temp_r31 = arg0->data;
|
||||
if ((lbl_1_bss_748 -= 1) == 0) {
|
||||
if ((lbl_1_bss_74C -= 1) >= 0) {
|
||||
if ((--lbl_1_bss_748) == 0) {
|
||||
if ((--lbl_1_bss_74C) >= 0) {
|
||||
MGSeqParamSet(lbl_1_bss_744, 1, lbl_1_bss_74C);
|
||||
}
|
||||
lbl_1_bss_748 = 60;
|
||||
lbl_1_bss_748 = REFRESH_RATE;
|
||||
}
|
||||
if (GWPlayerCfg[lbl_1_bss_798].iscom == 1) {
|
||||
fn_1_B1CC(arg0, &var_r29, &var_r27);
|
||||
|
|
|
|||
|
|
@ -342,7 +342,7 @@ static void fn_1_ECD4(omObjData *arg0)
|
|||
lbl_1_bss_7E8 = 4.0f;
|
||||
arg0->func = fn_1_EED8;
|
||||
lbl_1_bss_7D2 = 5;
|
||||
lbl_1_bss_7D0 = 60;
|
||||
lbl_1_bss_7D0 = REFRESH_RATE;
|
||||
lbl_1_bss_7D4 = MGSeqTimerCreateXY(lbl_1_bss_7D2, 288, 64);
|
||||
}
|
||||
BoardModelMotionSpeedSet(lbl_1_bss_6C4[17], lbl_1_bss_7EC);
|
||||
|
|
@ -368,11 +368,11 @@ static void fn_1_EED8(omObjData *arg0)
|
|||
|
||||
fn_1_10CF0(arg0->work[2]);
|
||||
temp_r29 = GWPlayer[lbl_1_bss_7E4].port;
|
||||
if ((lbl_1_bss_7D0 -= 1) == 0) {
|
||||
if ((lbl_1_bss_7D2 -= 1) >= 0) {
|
||||
if ((--lbl_1_bss_7D0) == 0) {
|
||||
if ((--lbl_1_bss_7D2) >= 0) {
|
||||
MGSeqParamSet(lbl_1_bss_7D4, 1, lbl_1_bss_7D2);
|
||||
}
|
||||
lbl_1_bss_7D0 = 60;
|
||||
lbl_1_bss_7D0 = REFRESH_RATE;
|
||||
}
|
||||
if (GWPlayerCfg[lbl_1_bss_7E4].iscom == 1) {
|
||||
fn_1_EEA0(arg0, &var_r30);
|
||||
|
|
|
|||
|
|
@ -253,7 +253,7 @@ void fn_1_4378(omObjData *object)
|
|||
HuAudFXPlay(1067);
|
||||
object->work[0] &= ~temp_r28;
|
||||
temp_r31->unkC[temp_r30] = 0;
|
||||
lbl_1_bss_A8->work[2] = 60;
|
||||
lbl_1_bss_A8->work[2] = REFRESH_RATE;
|
||||
if (temp_r30 != 2) {
|
||||
lbl_1_bss_A8->func = fn_1_5290;
|
||||
}
|
||||
|
|
@ -468,7 +468,7 @@ void fn_1_5290(omObjData *object)
|
|||
if (object->work[2] == 0) {
|
||||
temp_r31 = object->data;
|
||||
temp_r31->unk18 = 5;
|
||||
temp_r31->unk1A = 60;
|
||||
temp_r31->unk1A = REFRESH_RATE;
|
||||
temp_r31->unk1C = MGSeqTimerCreateXY(temp_r31->unk18, 288, 64);
|
||||
HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x13, 0x15));
|
||||
temp_r31->unk1E = HuWinCreate(-10000, 400, sp8[0], sp8[1], 0);
|
||||
|
|
@ -495,7 +495,7 @@ void fn_1_53B8(omObjData *object)
|
|||
temp_r31 = object->data;
|
||||
temp_r28 = GWPlayer[lbl_1_bss_86].port;
|
||||
if (--temp_r31->unk1A == 0) {
|
||||
temp_r31->unk1A = 60;
|
||||
temp_r31->unk1A = REFRESH_RATE;
|
||||
if (--temp_r31->unk18 >= 0) {
|
||||
MGSeqParamSet(temp_r31->unk1C, 1, temp_r31->unk18);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -92,11 +92,11 @@ void fn_1_5D28(void)
|
|||
HuPrcVSleep();
|
||||
}
|
||||
BoardPlayerIdleSet(lbl_1_bss_196);
|
||||
HuPrcSleep(120);
|
||||
HuPrcSleep(REFRESH_RATE*2);
|
||||
BoardAudSeqPause(0, 1, 1000);
|
||||
HuAudFXPlay(781);
|
||||
fn_1_8570();
|
||||
HuPrcSleep(60);
|
||||
HuPrcSleep(REFRESH_RATE);
|
||||
lbl_1_bss_104 = omAddObjEx(boardObjMan, 257, 0, 0, -1, fn_1_5F08);
|
||||
lbl_1_bss_108 = omAddObjEx(boardObjMan, 257, 0, 0, -1, fn_1_606C);
|
||||
lbl_1_bss_10C = omAddObjEx(boardObjMan, 257, 0, 0, -1, NULL);
|
||||
|
|
@ -155,7 +155,7 @@ void fn_1_606C(omObjData *object)
|
|||
temp_r31->unk44[1].x += lbl_1_bss_110;
|
||||
BoardModelPosGet(lbl_1_bss_18A[1], &temp_r31->unk44[2]);
|
||||
BoardMusStart(1, 19, 127, 0);
|
||||
object->work[0] = 300;
|
||||
object->work[0] = REFRESH_RATE*5;
|
||||
object->work[1] = 0;
|
||||
object->func = fn_1_6248;
|
||||
}
|
||||
|
|
@ -199,7 +199,7 @@ void fn_1_6248(omObjData *object)
|
|||
temp_r31->unk2A[1] = temp_r31->unk24[1];
|
||||
sp28 = lbl_1_bss_160[0];
|
||||
sp34 = lbl_1_bss_160[1];
|
||||
temp_f31 = 15;
|
||||
temp_f31 = (VERSION_PAL) ? 13 : 15;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
|
|
@ -207,13 +207,13 @@ void fn_1_6248(omObjData *object)
|
|||
temp_r31->unk2A[1] = temp_r31->unk24[2];
|
||||
sp28 = lbl_1_bss_160[1];
|
||||
sp34 = lbl_1_bss_160[2];
|
||||
temp_f31 = 15;
|
||||
temp_f31 = (VERSION_PAL) ? 13 : 15;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
temp_r31->unk2A[0] = temp_r31->unk24[0];
|
||||
temp_r31->unk2A[1] = temp_r31->unk24[2];
|
||||
temp_f31 = 22.5f;
|
||||
temp_f31 = (VERSION_PAL) ? 19.5f : 22.5f;
|
||||
break;
|
||||
}
|
||||
temp_r31->unk68 = temp_r28;
|
||||
|
|
@ -429,8 +429,8 @@ void fn_1_6EA8(void)
|
|||
sp20.y = sp2C.y = 0;
|
||||
VECSubtract(&sp20, &sp2C, &sp14);
|
||||
temp_f30 = VECMag(&sp14);
|
||||
VECScale(&sp14, &sp14, 1.0f / 60.0f);
|
||||
for (temp_r30 = 0; temp_r30 < 60; temp_r30++) {
|
||||
VECScale(&sp14, &sp14, 1.0f / REFRESH_RATE);
|
||||
for (temp_r30 = 0; temp_r30 < REFRESH_RATE; temp_r30++) {
|
||||
BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp2C);
|
||||
VECAdd(&sp2C, &sp14, &sp2C);
|
||||
BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp2C);
|
||||
|
|
@ -452,9 +452,9 @@ void fn_1_6EA8(void)
|
|||
BoardModelScaleGet(lbl_1_bss_184[temp_r31], &sp8);
|
||||
temp_f31 = sp8.x;
|
||||
temp_f29 = -0.04f;
|
||||
temp_f30 = (sp20.y - sp2C.y) / 30.0f;
|
||||
temp_f30 = (sp20.y - sp2C.y) / (REFRESH_RATE/2);
|
||||
temp_r29 = 0;
|
||||
HuAudFXFadeOut(lbl_1_bss_D8, 499);
|
||||
HuAudFXFadeOut(lbl_1_bss_D8, (((REFRESH_RATE*500)+30)/60)-1);
|
||||
while (!temp_r29) {
|
||||
sp2C.y += temp_f30;
|
||||
temp_f31 += temp_f29;
|
||||
|
|
@ -476,7 +476,7 @@ void fn_1_6EA8(void)
|
|||
while (!BoardPlayerMotionEndCheck(lbl_1_bss_196)) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuPrcSleep(30);
|
||||
HuPrcSleep(REFRESH_RATE/2);
|
||||
while (HuAudSStreamStatGet(temp_r28)) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -505,7 +505,7 @@ void fn_1_732C(s32 arg0)
|
|||
void fn_1_7358(WorkMGItem *arg0)
|
||||
{
|
||||
if (--arg0->unk2 == 0) {
|
||||
arg0->unk2 = 60;
|
||||
arg0->unk2 = REFRESH_RATE;
|
||||
if (--arg0->unk0 >= 0) {
|
||||
MGSeqParamSet(arg0->unk4, 1, arg0->unk0);
|
||||
}
|
||||
|
|
@ -520,7 +520,7 @@ void fn_1_73C8(omObjData *object)
|
|||
WorkMGItem *temp_r31;
|
||||
temp_r31 = object->data;
|
||||
temp_r31->unk0 = 5;
|
||||
temp_r31->unk2 = 60;
|
||||
temp_r31->unk2 = REFRESH_RATE;
|
||||
temp_r31->unk4 = MGSeqTimerCreateXY(temp_r31->unk0, 288, 64);
|
||||
HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x13, 0x1B));
|
||||
temp_r31->unk6 = HuWinCreate(-10000, 368, sp8[0], sp8[1], 0);
|
||||
|
|
@ -564,14 +564,14 @@ void fn_1_74E4(omObjData *object)
|
|||
else if (spC & PAD_BUTTON_LEFT) {
|
||||
if (temp_r31->unk8 != 0) {
|
||||
temp_r31->unk8--;
|
||||
BoardPlayerPosLerpStart(lbl_1_bss_196, &lbl_1_bss_DC[temp_r31->unk8 + 1], &lbl_1_bss_DC[temp_r31->unk8], 12);
|
||||
BoardPlayerPosLerpStart(lbl_1_bss_196, &lbl_1_bss_DC[temp_r31->unk8 + 1], &lbl_1_bss_DC[temp_r31->unk8], REFRESH_RATE/5);
|
||||
object->func = fn_1_7750;
|
||||
}
|
||||
}
|
||||
else if (spC & PAD_BUTTON_RIGHT) {
|
||||
if (temp_r31->unk8 != 2) {
|
||||
temp_r31->unk8++;
|
||||
BoardPlayerPosLerpStart(lbl_1_bss_196, &lbl_1_bss_DC[temp_r31->unk8 - 1], &lbl_1_bss_DC[temp_r31->unk8], 12);
|
||||
BoardPlayerPosLerpStart(lbl_1_bss_196, &lbl_1_bss_DC[temp_r31->unk8 - 1], &lbl_1_bss_DC[temp_r31->unk8], REFRESH_RATE/5);
|
||||
object->func = fn_1_7750;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -913,9 +913,13 @@ static void fn_1_8A60(void) {
|
|||
HuPrcVSleep();
|
||||
}
|
||||
fn_1_7300();
|
||||
#if VERSION_NTSC
|
||||
sprintf(sp10, "%d", var_r29);
|
||||
BoardWinCreate(2, MAKE_MESSID(32, 11), 9);
|
||||
BoardWinInsertMesSet(MAKE_MESSID_PTR(sp10), 0);
|
||||
#else
|
||||
BoardWinCreate(2, MAKE_MESSID(32, 11), 9);
|
||||
#endif
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
BoardAudSeqFadeOut(1, 1000);
|
||||
|
|
|
|||
|
|
@ -273,7 +273,7 @@ static void fn_1_D2A4(omObjData *arg0) {
|
|||
sp8 = BoardModelRotYGet(lbl_1_bss_14[9]);
|
||||
BoardModelPosGet(lbl_1_bss_14[9], &spC);
|
||||
if (arg0->scale.x != 0.0f) {
|
||||
arg0->scale.x -= 8.5f;
|
||||
arg0->scale.x -= 510.0f/REFRESH_RATE;
|
||||
if (arg0->scale.x < 0.0f) {
|
||||
arg0->scale.x = 0.0f;
|
||||
}
|
||||
|
|
@ -294,7 +294,7 @@ static void fn_1_D2A4(omObjData *arg0) {
|
|||
Hu3DMotionExec(BoardModelIDGet(lbl_1_bss_2F8), temp_r30->unk_08, temp_r30->unk_64, 0);
|
||||
}
|
||||
lbl_1_bss_31C->work[0] = 60;
|
||||
lbl_1_bss_31C->unk10 = frandmod(40) + 10;
|
||||
lbl_1_bss_31C->unk10 = frandmod((REFRESH_RATE*2)/3) + (REFRESH_RATE/6);
|
||||
lbl_1_bss_31C->work[1] = arg0->work[1];
|
||||
lbl_1_bss_31C->func = fn_1_E18C;
|
||||
}
|
||||
|
|
@ -304,7 +304,7 @@ static void fn_1_D554(omObjData *arg0) {
|
|||
float sp8;
|
||||
|
||||
sp8 = BoardModelRotYGet(lbl_1_bss_14[9]);
|
||||
arg0->scale.x += 8.5f;
|
||||
arg0->scale.x += 510.0f/REFRESH_RATE;
|
||||
if (arg0->scale.x > 255.0f) {
|
||||
arg0->scale.x = 255.0f;
|
||||
}
|
||||
|
|
@ -567,7 +567,7 @@ static void fn_1_E4C0(omObjData *arg0) {
|
|||
sp14.z = arg0->scale.z;
|
||||
sp20.x = arg0->trans.x;
|
||||
sp20.z = arg0->trans.z;
|
||||
sp20.y = arg0->trans.y - arg0->rot.x * arg0->rot.x * 0.25f * 0.075f;
|
||||
sp20.y = arg0->trans.y - arg0->rot.x * arg0->rot.x * 0.25f * ((VERSION_PAL) ? 0.1125f : 0.075f);
|
||||
arg0->rot.x += 1.0f;
|
||||
VECAdd(&sp2C, &sp20, &sp2C);
|
||||
sp8 = sp2C;
|
||||
|
|
|
|||
|
|
@ -130,9 +130,9 @@ void fn_1_A1F0(void) {
|
|||
BoardAudSeqPause(0, 1, 1000);
|
||||
BoardModelMotionTimeSet(lbl_1_bss_14[6], 0.0f);
|
||||
BoardModelAttrReset(lbl_1_bss_14[6], 0x40000002);
|
||||
HuPrcSleep(20);
|
||||
HuPrcSleep((REFRESH_RATE+2)/3);
|
||||
HuAudFXPlay(0x469);
|
||||
HuPrcSleep(50);
|
||||
HuPrcSleep(((REFRESH_RATE*5)+3)/6);
|
||||
BoardMusStart(1, 0x1E, 0x7F, 0);
|
||||
HuAudFXPlay(0x46C);
|
||||
while (BoardModelMotionTimeGet(lbl_1_bss_14[6]) < 202.0f) {
|
||||
|
|
@ -349,7 +349,7 @@ static void fn_1_A7E8(void) {
|
|||
}
|
||||
BoardModelHookSet(lbl_1_bss_14[6], lbl_1_data_51C[1], lbl_1_bss_298[temp_r29]);
|
||||
BoardModelAttrReset(lbl_1_bss_14[6], 0x40000002);
|
||||
HuPrcSleep(30);
|
||||
HuPrcSleep(REFRESH_RATE/2);
|
||||
HuAudFXPlay(0x310);
|
||||
while (BoardModelMotionTimeGet(lbl_1_bss_14[6]) < BoardModelMotionMaxTimeGet(lbl_1_bss_14[6])) {
|
||||
HuPrcVSleep();
|
||||
|
|
@ -471,7 +471,7 @@ static void fn_1_A7E8(void) {
|
|||
HuPrcVSleep();
|
||||
}
|
||||
BoardModelRotYSet(lbl_1_bss_14[10], 0.0f);
|
||||
HuPrcSleep(30);
|
||||
HuPrcSleep(REFRESH_RATE/2);
|
||||
while (HuAudSStreamStatGet(sp8) != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ void fn_1_6B7C(void)
|
|||
BoardModelAttrReset(lbl_1_bss_14[0], 0x40000002);
|
||||
BoardMusStart(1, 0x22, 0x7F, 0);
|
||||
BoardPlayerMotionShiftSet(lbl_1_bss_B6, lbl_1_bss_9E[0], 0.0f, 30.0f, HU3D_MOTATTR_LOOP);
|
||||
HuPrcSleep(0x1E);
|
||||
HuPrcSleep(REFRESH_RATE/2);
|
||||
BoardModelVisibilitySet(lbl_1_bss_A2, 1);
|
||||
BoardModelHookSet(BoardPlayerModelGet(lbl_1_bss_B6), "a-itemhook-r", lbl_1_bss_A2);
|
||||
Hu3DModelObjPosGet(BoardModelIDGet(*lbl_1_bss_14), "chara1", &sp10);
|
||||
|
|
@ -353,7 +353,7 @@ void fn_1_799C(void)
|
|||
while (BoardPlayerMotionEndCheck(lbl_1_bss_B6) == 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuPrcSleep(0x1E);
|
||||
HuPrcSleep(REFRESH_RATE/2);
|
||||
|
||||
while (HuAudSStreamStatGet(temp_r27) != 0) {
|
||||
HuPrcVSleep();
|
||||
|
|
@ -605,10 +605,10 @@ void fn_1_896C(void)
|
|||
}
|
||||
}
|
||||
if ((temp_r30 & 0x80) != 0) {
|
||||
HuPrcSleep(0x19);
|
||||
HuPrcSleep(((REFRESH_RATE*5)+6)/12);
|
||||
}
|
||||
else {
|
||||
HuPrcSleep(0xF);
|
||||
HuPrcSleep((REFRESH_RATE+2)/4);
|
||||
}
|
||||
spC.x = spC.y = spC.z = 0.0f;
|
||||
|
||||
|
|
@ -706,7 +706,7 @@ void fn_1_896C(void)
|
|||
for (var_r31 = 0; var_r31 < 3; var_r31++) {
|
||||
BoardModelMotionStartEndSet(lbl_1_bss_AA[var_r31], 0x28, 0x46);
|
||||
}
|
||||
HuPrcSleep(13);
|
||||
HuPrcSleep((REFRESH_RATE*2)/9);
|
||||
var_f31 = -8.0f;
|
||||
while (1) {
|
||||
for (var_r28 = 0, var_r31 = 0; var_r31 < 3; var_r31++) {
|
||||
|
|
|
|||
|
|
@ -49,6 +49,24 @@ static s16 lbl_1_data_22A = -1;
|
|||
static s16 lbl_1_data_22C = -1;
|
||||
static s16 lbl_1_data_22E = -1;
|
||||
|
||||
#if VERSION_PAL
|
||||
static s32 lbl_1_data_230[] = {
|
||||
MAKE_MESSID(8, 0),
|
||||
MAKE_MESSID(8, 1),
|
||||
MAKE_MESSID(8, 2),
|
||||
MAKE_MESSID(8, 3),
|
||||
MAKE_MESSID(8, 4),
|
||||
MAKE_MESSID(8, 5),
|
||||
MAKE_MESSID(8, 6),
|
||||
MAKE_MESSID(8, 7),
|
||||
MAKE_MESSID(8, 8),
|
||||
MAKE_MESSID(8, 9),
|
||||
MAKE_MESSID(8, 10),
|
||||
MAKE_MESSID(8, 11),
|
||||
MAKE_MESSID(8, 12),
|
||||
MAKE_MESSID(8, 13)
|
||||
};
|
||||
#else
|
||||
static s32 lbl_1_data_230[] = {
|
||||
MAKE_MESSID(8, 14),
|
||||
MAKE_MESSID(8, 15),
|
||||
|
|
@ -65,7 +83,7 @@ static s32 lbl_1_data_230[] = {
|
|||
MAKE_MESSID(8, 26),
|
||||
MAKE_MESSID(8, 27)
|
||||
};
|
||||
|
||||
#endif
|
||||
void fn_1_6EF0(void) {
|
||||
BoardRollDispSet(0);
|
||||
lbl_1_bss_90 = HuPrcChildCreate(fn_1_6F80, 0x2003, 0x3800, 0, boardMainProc);
|
||||
|
|
@ -203,9 +221,12 @@ static void fn_1_74BC(s32 arg0) {
|
|||
static void fn_1_7574(void) {
|
||||
s32 temp_r3;
|
||||
s32 temp_r29;
|
||||
#if VERSION_PAL
|
||||
s32 playerNo = GWSystem.player_curr;
|
||||
#endif
|
||||
s32 temp_r28;
|
||||
s32 i;
|
||||
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (lbl_1_bss_C2[i] == 0) {
|
||||
continue;
|
||||
|
|
@ -218,11 +239,17 @@ static void fn_1_7574(void) {
|
|||
BoardWinCreate(0, MAKE_MESSID(48, 16), -1);
|
||||
BoardWinInsertMesSet(temp_r28, 0);
|
||||
BoardWinInsertMesSet(lbl_1_data_230[temp_r29], 1);
|
||||
#if VERSION_PAL
|
||||
GWSystem.player_curr = i;
|
||||
#endif
|
||||
BoardWinPlayerSet(i);
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
}
|
||||
}
|
||||
#if VERSION_PAL
|
||||
GWSystem.player_curr = playerNo;
|
||||
#endif
|
||||
}
|
||||
|
||||
static void fn_1_7674(s32 arg0) {
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ static int HuSePlay(int seId, MSM_SEPARAM *param);
|
|||
|
||||
extern s16 omSysExitReq;
|
||||
|
||||
static s32 charVoiceGroupStat[8];
|
||||
s32 charVoiceGroupStat[8];
|
||||
static s32 sndFXBuf[64][2];
|
||||
|
||||
static s16 Hu3DAudVol;
|
||||
|
|
@ -555,10 +555,11 @@ void HuAudAUXVolSet(s8 arg0, s8 arg1) {
|
|||
void HuAudVoiceInit(s16 ovl) {
|
||||
SNDGRPTBL *var_r29;
|
||||
OSTick temp_r23;
|
||||
s16 var_r27;
|
||||
s16 temp_r26;
|
||||
s16 temp_r25;
|
||||
s16 temp_r30;
|
||||
s16 var_r27;
|
||||
|
||||
void *temp_r3;
|
||||
s16 i;
|
||||
|
||||
|
|
@ -602,7 +603,11 @@ void HuAudVoiceInit(s16 ovl) {
|
|||
charVoiceGroupStat[temp_r30] = 1;
|
||||
temp_r26 = temp_r30 + 0xA;
|
||||
temp_r3 = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(temp_r26));
|
||||
#if VERSION_NTSC
|
||||
msmSysLoadGroupBase(temp_r26, temp_r3);
|
||||
#else
|
||||
temp_r25 = msmSysLoadGroupBase(temp_r26, temp_r3);
|
||||
#endif
|
||||
HuMemDirectFree(temp_r3);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1335,7 +1335,7 @@ static void TakeBallCoinPosSet(BallTakeCoinData *arg0, Vec *arg1) {
|
|||
BoardModelPosSetV(arg0->unk00, &arg0->unk04);
|
||||
}
|
||||
|
||||
BOOL CheckBallCoinDone(void) {
|
||||
static BOOL CheckBallCoinDone(void) {
|
||||
BallTakeCoinData *var_r31;
|
||||
s32 i;
|
||||
|
||||
|
|
@ -1351,7 +1351,7 @@ BOOL CheckBallCoinDone(void) {
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
void TakeBallStar(void) {
|
||||
static void TakeBallStar(void) {
|
||||
BallTakeCoinWork *temp_r31;
|
||||
Vec sp8;
|
||||
|
||||
|
|
@ -1376,7 +1376,7 @@ void TakeBallStar(void) {
|
|||
HuAudFXPlay(0x361);
|
||||
}
|
||||
|
||||
void ExecTakeBallStar(omObjData *arg0) {
|
||||
static void ExecTakeBallStar(omObjData *arg0) {
|
||||
BallTakeCoinWork *temp_r29 = OM_GET_WORK_PTR(arg0, BallTakeCoinWork);
|
||||
Vec sp8;
|
||||
float var_f30;
|
||||
|
|
@ -1405,7 +1405,7 @@ void ExecTakeBallStar(omObjData *arg0) {
|
|||
BoardModelRotYSet(temp_r29->unk02, arg0->rot.y);
|
||||
}
|
||||
|
||||
BOOL CheckTakeBallStarDone(void) {
|
||||
static BOOL CheckTakeBallStarDone(void) {
|
||||
if (ballTakeCoinObj) {
|
||||
return FALSE;
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -132,6 +132,12 @@ static void ExecCharWheel(omObjData *arg0) {
|
|||
temp_r31 = OM_GET_WORK_PTR(arg0, CharWheelWork);;
|
||||
if (temp_r31->unk00_field0 != 0 || BoardIsKill()) {
|
||||
KillCharWheelSpr();
|
||||
#if VERSION_PAL
|
||||
if (wheelFXStat != -1) {
|
||||
HuAudFXStop(wheelFXStat);
|
||||
wheelFXStat = -1;
|
||||
}
|
||||
#endif
|
||||
charWheelObj = NULL;
|
||||
omDelObjEx(HuPrcCurrentGet(), arg0);
|
||||
return;
|
||||
|
|
@ -322,7 +328,13 @@ static void UpdateCharWheel(CharWheelWork *arg0) {
|
|||
}
|
||||
var_f23 = 8191.0f - 8191.0f * (var_f25 / wheelSpeed);
|
||||
OSf32tos16(&var_f23, &var_r17);
|
||||
#if VERSION_PAL
|
||||
if(wheelFXStat != -1) {
|
||||
HuAudFXPitchSet(wheelFXStat, -var_r17);
|
||||
}
|
||||
#else
|
||||
HuAudFXPitchSet(wheelFXStat, -var_r17);
|
||||
#endif
|
||||
if (var_f25 > -0.0000001f && var_f25 < 0.0000001f) {
|
||||
arg0->unk00_field3 = 3;
|
||||
if (wheelFXStat != -1) {
|
||||
|
|
@ -379,7 +391,14 @@ static void GrowCharWheel(CharWheelWork *arg0) {
|
|||
}
|
||||
arg0->unk02 = 90;
|
||||
arg0->unk00_field3 = 2;
|
||||
#if VERSION_PAL
|
||||
if(!BoardIsKill()) {
|
||||
wheelFXStat = HuAudFXPlay(0x30A);
|
||||
}
|
||||
#else
|
||||
wheelFXStat = HuAudFXPlay(0x30A);
|
||||
#endif
|
||||
|
||||
}
|
||||
OSs8tof32(&arg0->unk02, &temp_f30);
|
||||
HuSprGrpScaleSet(wheelSprGrp, sind(temp_f30), sind(temp_f30));
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@ static AnimData *genieParticleAnim;
|
|||
static s16 geniePlayerMot[3];
|
||||
static Process *itemProc;
|
||||
|
||||
s32 lbl_801D37A0[2] = { DATA_MAKE_NUM(DATADIR_BOARD, 117), -1 };
|
||||
static s32 itemMotTbl[2] = { DATA_MAKE_NUM(DATADIR_BOARD, 117), -1 };
|
||||
|
||||
static void (*itemFuncTbl[])(void) = { ExecItemMini, ExecItemMega, ExecItemMiniSuper, ExecItemMegaSuper, ExecItemHammer, ExecItemPipe, ExecItemSwap,
|
||||
ExecItemSpark, ExecItemLight, ExecItemWhistle, ExecItemBowser, ExecItemBooBall, ExecItemGenie, ExecItemBag };
|
||||
|
|
@ -1183,7 +1183,7 @@ static void ExecItemSpark(void)
|
|||
BoardModelLayerSet(temp_r30, 3);
|
||||
BoardModelVisibilitySet(temp_r30, 0);
|
||||
HuAudFXPlay(0x350);
|
||||
suitMdl = BoardModelCreate(itemMdlTbl[currItem], lbl_801D37A0, 0);
|
||||
suitMdl = BoardModelCreate(itemMdlTbl[currItem], itemMotTbl, 0);
|
||||
BoardModelLayerSet(suitMdl, 2);
|
||||
ItemShowProc(NULL, NULL);
|
||||
temp_r28 = GWPlayer[currItemRestore].space_curr;
|
||||
|
|
|
|||
|
|
@ -403,8 +403,11 @@ static void MainFunc(void)
|
|||
if(_CheckFlag(FLAG_ID_MAKE(1, 11))) {
|
||||
BoardTutorialWorkSave();
|
||||
BoardTutorialPlayerInit();
|
||||
GWSystem.mess_speed = 1;
|
||||
GWSystem.mess_delay = 32;
|
||||
#if VERSION_PAL
|
||||
GWMessSpeedSet(3);
|
||||
#else
|
||||
GWMessSpeedSet(1);
|
||||
#endif
|
||||
}
|
||||
CreateBoard();
|
||||
if(!_CheckFlag(FLAG_ID_MAKE(1, 1))) {
|
||||
|
|
|
|||
|
|
@ -139,6 +139,71 @@ s32 BoardRollExec(s32 arg0)
|
|||
return destMode;
|
||||
}
|
||||
|
||||
static void RollWinCreate(s32 playerNo)
|
||||
{
|
||||
float sp8[2];
|
||||
float posX;
|
||||
float posY;
|
||||
s32 var_r29;
|
||||
s32 var_r27;
|
||||
s32 temp_r25;
|
||||
|
||||
if (!_CheckFlag(FLAG_ID_MAKE(1, 11))) {
|
||||
var_r27 = BoardPlayerItemCount(playerNo);
|
||||
if (GWTeamGet()) {
|
||||
temp_r25 = BoardPlayerSameTeamFind(playerNo);
|
||||
var_r27 += BoardPlayerItemCount(temp_r25);
|
||||
}
|
||||
if (BoardItemPrevGet() != -1 || var_r27 == 0 || _CheckFlag(FLAG_ID_MAKE(1, 9)) || BoardMegaDoubleDiceCheck()) {
|
||||
var_r29 = MAKE_MESSID(0x09, 0x04);
|
||||
}
|
||||
else {
|
||||
var_r29 = MAKE_MESSID(0x09, 0x02);
|
||||
}
|
||||
if (inputTimer != 0) {
|
||||
var_r29 = MAKE_MESSID(0x30, 0x25);
|
||||
}
|
||||
HuWinMesMaxSizeGet(1, sp8, var_r29);
|
||||
#if VERSION_PAL
|
||||
posY = HU_DISP_HEIGHT - 176;
|
||||
switch (GWGameStat.language) {
|
||||
case 0:
|
||||
case 4:
|
||||
posX = -10000.0f;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
posX = HU_DISP_CENTERX - (sp8[0] / 2 - 32.0f);
|
||||
break;
|
||||
|
||||
case 5:
|
||||
posX = HU_DISP_CENTERX - (sp8[0] / 2 - 16.0f);
|
||||
posY = 258;
|
||||
break;
|
||||
|
||||
default:
|
||||
posX = HU_DISP_CENTERX - (sp8[0] / 2 - 16.0f);
|
||||
break;
|
||||
}
|
||||
#else
|
||||
switch (GWGameStat.language) {
|
||||
case 0:
|
||||
posX = -10000.0f;
|
||||
break;
|
||||
case 1:
|
||||
posX = HU_DISP_CENTERX - (sp8[0] / 2 - 16.0f);
|
||||
break;
|
||||
}
|
||||
posY = HU_DISP_HEIGHT - 176;
|
||||
#endif
|
||||
|
||||
rollWin = HuWinCreate(posX, posY, sp8[0], sp8[1], 0);
|
||||
HuWinBGTPLvlSet(rollWin, 0.0f);
|
||||
HuWinMesSpeedSet(rollWin, 0);
|
||||
HuWinMesSet(rollWin, var_r29);
|
||||
}
|
||||
}
|
||||
|
||||
void BoardRollKill(void)
|
||||
{
|
||||
if (rollProc) {
|
||||
|
|
@ -177,15 +242,11 @@ void BoardRollWinDispSet(s32 arg0)
|
|||
|
||||
static void RollMain(void)
|
||||
{
|
||||
float sp8[2];
|
||||
float var_f31;
|
||||
float var_f30;
|
||||
|
||||
s32 var_r28;
|
||||
s32 var_r27;
|
||||
s32 temp_r26;
|
||||
s32 temp_r25;
|
||||
|
||||
s32 var_r30;
|
||||
s32 var_r29;
|
||||
|
||||
s32 i;
|
||||
|
||||
diceValue[0] = diceValue[1] = diceValue[2] = 0;
|
||||
|
|
@ -195,37 +256,7 @@ static void RollMain(void)
|
|||
BoardCameraMotionWait();
|
||||
BoardCameraTargetModelSet(-1);
|
||||
for (i = 0; i < numDice; i++) {
|
||||
temp_r26 = rollPlayer;
|
||||
if (!_CheckFlag(FLAG_ID_MAKE(1, 11))) {
|
||||
var_r27 = BoardPlayerItemCount(temp_r26);
|
||||
if (GWTeamGet()) {
|
||||
temp_r25 = BoardPlayerSameTeamFind(temp_r26);
|
||||
var_r27 += BoardPlayerItemCount(temp_r25);
|
||||
}
|
||||
if (BoardItemPrevGet() != -1 || var_r27 == 0 || _CheckFlag(FLAG_ID_MAKE(1, 9)) || BoardMegaDoubleDiceCheck()) {
|
||||
var_r29 = MAKE_MESSID(0x09, 0x04);
|
||||
}
|
||||
else {
|
||||
var_r29 = MAKE_MESSID(0x09, 0x02);
|
||||
}
|
||||
if (inputTimer != 0) {
|
||||
var_r29 = MAKE_MESSID(0x30, 0x25);
|
||||
}
|
||||
HuWinMesMaxSizeGet(1, sp8, var_r29);
|
||||
switch (GWGameStat.language) {
|
||||
case 0:
|
||||
var_f31 = -10000.0f;
|
||||
break;
|
||||
case 1:
|
||||
var_f31 = HU_DISP_CENTERX - (sp8[0] / 2 - 16.0f);
|
||||
break;
|
||||
}
|
||||
var_f30 = HU_DISP_HEIGHT - 176;
|
||||
rollWin = HuWinCreate(var_f31, var_f30, sp8[0], sp8[1], 0);
|
||||
HuWinBGTPLvlSet(rollWin, 0.0f);
|
||||
HuWinMesSpeedSet(rollWin, 0);
|
||||
HuWinMesSet(rollWin, var_r29);
|
||||
}
|
||||
RollWinCreate(rollPlayer);
|
||||
DiceCreate(i);
|
||||
DiceWaitFull(i);
|
||||
DoInput(i);
|
||||
|
|
|
|||
|
|
@ -984,7 +984,12 @@ static void CreateShopItemChoice(s32 arg0, s32 arg1) {
|
|||
omObjData *temp_r30;
|
||||
ItemChoiceWork *var_r31;
|
||||
s16 spC;
|
||||
|
||||
s16 i;
|
||||
#if VERSION_PAL
|
||||
for(i=0; i<6; i++) {
|
||||
cursorPosTbl[i][0] = 190;
|
||||
}
|
||||
#endif
|
||||
temp_r30 = omAddObjEx(boardObjMan, 0x7E01, 0, 0, -1, UpdateShopItemChoice);
|
||||
itemChoiceObj = temp_r30;
|
||||
itemChoice = -1;
|
||||
|
|
@ -996,11 +1001,29 @@ static void CreateShopItemChoice(s32 arg0, s32 arg1) {
|
|||
var_r31->unk02 = 0;
|
||||
var_r31->unk03 = arg1;
|
||||
var_r31->unk06 = HuSprGrpCreate(1);
|
||||
#if VERSION_PAL
|
||||
if (GWLanguageGet() != 0) {
|
||||
s16 winId = BoardWinIDGet();
|
||||
if(winId != -1) {
|
||||
WindowData *winP = &winData[winId];
|
||||
for(i=0; i<6; i++) {
|
||||
cursorPosTbl[i][0] = winP->pos_x+96;
|
||||
}
|
||||
} else {
|
||||
for(i=0; i<6; i++) {
|
||||
cursorPosTbl[i][0] = 166;
|
||||
}
|
||||
}
|
||||
}
|
||||
temp_r30->trans.x = cursorPosTbl[0][0];
|
||||
temp_r30->trans.y = cursorPosTbl[0][1];
|
||||
#else
|
||||
temp_r30->trans.x = cursorPosTbl[0][0];
|
||||
temp_r30->trans.y = cursorPosTbl[0][1];
|
||||
if (GWLanguageGet() != 0) {
|
||||
temp_r30->trans.x -= 24.0f;
|
||||
}
|
||||
#endif
|
||||
if (GWPlayer[arg0].com) {
|
||||
var_r31->unk01 = GWMessDelayGet();
|
||||
}
|
||||
|
|
@ -1032,9 +1055,11 @@ static void MoveShopItemChoice(omObjData *arg0, ItemChoiceWork *arg1) {
|
|||
temp_r28 = arg1->unk02;
|
||||
arg0->trans.x = cursorPosTbl[arg1->unk02][0];
|
||||
arg0->trans.y = cursorPosTbl[arg1->unk02][1];
|
||||
#if VERSION_NTSC
|
||||
if (GWLanguageGet() != 0) {
|
||||
arg0->trans.x -= 24.0f;
|
||||
}
|
||||
#endif
|
||||
if (GWPlayer[arg1->unk00_field1].com) {
|
||||
GetShopItemChoiceInput(arg1, arg0, &sp8);
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ static Process *starProc;
|
|||
static s16 starParman = -1;
|
||||
static s16 hostMdl = -1;
|
||||
|
||||
const s32 lbl_8011E040[9] = {
|
||||
static const s32 starMesTbl1[9] = {
|
||||
MAKE_MESSID(12, 0),
|
||||
MAKE_MESSID(12, 9),
|
||||
MAKE_MESSID(12, 18),
|
||||
|
|
@ -86,7 +86,7 @@ const s32 lbl_8011E040[9] = {
|
|||
MAKE_MESSID(12, 0)
|
||||
};
|
||||
|
||||
const s32 lbl_8011E064[9][2] = {
|
||||
static const s32 starMesTbl2[9][2] = {
|
||||
{ MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) },
|
||||
{ MAKE_MESSID(21, 35), MAKE_MESSID(21, 41) },
|
||||
{ MAKE_MESSID(21, 36), MAKE_MESSID(21, 42) },
|
||||
|
|
@ -249,12 +249,12 @@ static void ExecStar(void) {
|
|||
BoardCameraViewSet(3);
|
||||
BoardCameraMotionWait();
|
||||
if (GWStarsGet(temp_r31) >= 999) {
|
||||
temp_r29 = lbl_8011E040[temp_r27] + 5;
|
||||
temp_r29 = starMesTbl1[temp_r27] + 5;
|
||||
BoardWinCreate(0, temp_r29, BoardWinPortraitGetStar());
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
} else if (BoardPlayerCoinsGet(temp_r31) < 20 && GWSystem.last5_effect != 4) {
|
||||
temp_r29 = lbl_8011E040[temp_r27] + 2;
|
||||
temp_r29 = starMesTbl1[temp_r27] + 2;
|
||||
BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar());
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
|
|
@ -263,7 +263,7 @@ static void ExecStar(void) {
|
|||
while (!BoardStatusStopCheck(0) || !BoardStatusStopCheck(1) || !BoardStatusStopCheck(2) || !BoardStatusStopCheck(3)) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
temp_r29 = lbl_8011E040[temp_r27];
|
||||
temp_r29 = starMesTbl1[temp_r27];
|
||||
BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar());
|
||||
BoardWinInsertMesSet(BoardPlayerGetCharMess(temp_r31), 0);
|
||||
BoardWinWait();
|
||||
|
|
@ -275,12 +275,12 @@ static void ExecStar(void) {
|
|||
HuPrcVSleep();
|
||||
}
|
||||
if (GWSystem.last5_effect == 4) {
|
||||
temp_r29 = lbl_8011E040[temp_r27] + 8;
|
||||
temp_r29 = starMesTbl1[temp_r27] + 8;
|
||||
BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar());
|
||||
BoardWinWait();
|
||||
break;
|
||||
}
|
||||
temp_r29 = lbl_8011E040[temp_r27] + 1;
|
||||
temp_r29 = starMesTbl1[temp_r27] + 1;
|
||||
BoardWinCreateChoice(1, temp_r29, BoardWinPortraitGetStar(), 0);
|
||||
BoardWinAttrSet(0x10);
|
||||
if (GWPlayer[temp_r31].com) {
|
||||
|
|
@ -294,7 +294,7 @@ static void ExecStar(void) {
|
|||
switch (BoardWinChoiceGet()) {
|
||||
case 0:
|
||||
if (BoardPlayerCoinsGet(temp_r31) < 20) {
|
||||
temp_r29 = lbl_8011E040[temp_r27] + 2;
|
||||
temp_r29 = starMesTbl1[temp_r27] + 2;
|
||||
BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar());
|
||||
BoardWinWait();
|
||||
BoardStatusShowSet(temp_r31, 0);
|
||||
|
|
@ -306,7 +306,7 @@ static void ExecStar(void) {
|
|||
}
|
||||
goto block_A;
|
||||
case 1:
|
||||
temp_r29 = lbl_8011E040[temp_r27] + 4;
|
||||
temp_r29 = starMesTbl1[temp_r27] + 4;
|
||||
BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar());
|
||||
BoardWinWait();
|
||||
BoardStatusShowSet(temp_r31, 0);
|
||||
|
|
@ -326,7 +326,7 @@ static void ExecStar(void) {
|
|||
}
|
||||
}
|
||||
block_A:
|
||||
temp_r29 = lbl_8011E040[temp_r27] + 3;
|
||||
temp_r29 = starMesTbl1[temp_r27] + 3;
|
||||
BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar());
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
|
|
@ -734,9 +734,9 @@ void BoardStarShowNext(s32 arg0) {
|
|||
HuPrcVSleep();
|
||||
}
|
||||
if (var_r28 == 0) {
|
||||
var_r30 = lbl_8011E040[GWBoardGet()] + 6;
|
||||
var_r30 = starMesTbl1[GWBoardGet()] + 6;
|
||||
} else {
|
||||
var_r30 = lbl_8011E064[GWBoardGet()][0];
|
||||
var_r30 = starMesTbl2[GWBoardGet()][0];
|
||||
}
|
||||
BoardWinCreate(3, var_r30, -1);
|
||||
BoardWinPause();
|
||||
|
|
@ -748,9 +748,9 @@ void BoardStarShowNext(s32 arg0) {
|
|||
BoardWinKill();
|
||||
HuPrcSleep(3);
|
||||
if (var_r28 == 0) {
|
||||
var_r30 = lbl_8011E040[GWBoardGet()] + 7;
|
||||
var_r30 = starMesTbl1[GWBoardGet()] + 7;
|
||||
} else {
|
||||
var_r30 = lbl_8011E064[GWBoardGet()][1];
|
||||
var_r30 = starMesTbl2[GWBoardGet()][1];
|
||||
}
|
||||
BoardWinCreate(3, var_r30, -1);
|
||||
BoardWinWait();
|
||||
|
|
|
|||
|
|
@ -1951,28 +1951,32 @@ static void UpdateItemWindow(omObjData *arg0) {
|
|||
|
||||
static void CreatePickerWindow(UnkUiWork01 *arg0, s32 arg1) {
|
||||
float spC[2];
|
||||
float var_f31;
|
||||
float var_f30;
|
||||
float var_f29;
|
||||
|
||||
float posX;
|
||||
float posY;
|
||||
float yOfs;
|
||||
s32 var_r30;
|
||||
|
||||
#if VERSION_NTSC
|
||||
switch (GWGameStat.language) {
|
||||
case 1:
|
||||
var_f31 = 0.0f;
|
||||
yOfs = 0.0f;
|
||||
break;
|
||||
case 0:
|
||||
var_f31 = 0.0f;
|
||||
yOfs = 0.0f;
|
||||
break;
|
||||
}
|
||||
#else
|
||||
yOfs = 0;
|
||||
#endif
|
||||
if (arg1 != 0) {
|
||||
var_r30 = MAKE_MESSID(0x10, 0x1A);
|
||||
} else {
|
||||
var_r30 = MAKE_MESSID(0x10, 0x1B);
|
||||
}
|
||||
HuWinMesMaxSizeGet(1, spC, var_r30);
|
||||
var_f30 = -10000.0f;
|
||||
var_f29 = var_f31 + (HU_DISP_HEIGHT-128);
|
||||
arg0->unk06 = HuWinCreate(var_f30, var_f29, spC[0], spC[1], 0);
|
||||
posX = -10000.0f;
|
||||
posY = yOfs + (HU_DISP_HEIGHT-128);
|
||||
arg0->unk06 = HuWinCreate(posX, posY, spC[0], spC[1], 0);
|
||||
HuWinBGTPLvlSet(arg0->unk06, 0.0f);
|
||||
HuWinMesSpeedSet(arg0->unk06, 0);
|
||||
HuWinMesSet(arg0->unk06, var_r30);
|
||||
|
|
|
|||
|
|
@ -396,20 +396,32 @@ static void DestroyFocus(void) {
|
|||
|
||||
static void CreateButtonWin(void) {
|
||||
float sp8[2];
|
||||
float var_f31;
|
||||
float var_f30;
|
||||
float posX;
|
||||
float posY;
|
||||
s32 var_r31;
|
||||
|
||||
if (viewControls != 2) {
|
||||
var_r31 = MAKE_MESSID(0x09, 0x05);
|
||||
var_f31 = 286.0f;
|
||||
#if VERSION_PAL
|
||||
HuWinMesMaxSizeGet(1, sp8, var_r31);
|
||||
posX = 288-((sp8[0]/2)-32);
|
||||
#endif
|
||||
posY = 286.0f;
|
||||
} else {
|
||||
var_r31 = MAKE_MESSID(0x10, 0x4D);
|
||||
var_f31 = 328.0f;
|
||||
#if VERSION_PAL
|
||||
posX = -10000.0f;
|
||||
posY = 324.0f;
|
||||
#else
|
||||
posY = 328.0f;
|
||||
#endif
|
||||
|
||||
}
|
||||
HuWinMesMaxSizeGet(1, sp8, var_r31);
|
||||
var_f30 = -10000.0f;
|
||||
buttonWin = HuWinCreate(var_f30, var_f31, sp8[0], sp8[1], 0);
|
||||
#if VERSION_NTSC
|
||||
posX = -10000.0f;
|
||||
#endif
|
||||
buttonWin = HuWinCreate(posX, posY, sp8[0], sp8[1], 0);
|
||||
HuWinBGTPLvlSet(buttonWin, 0.0f);
|
||||
HuWinMesSpeedSet(buttonWin, 0);
|
||||
HuWinMesSet(buttonWin, var_r31);
|
||||
|
|
|
|||
|
|
@ -97,6 +97,11 @@ static void ExecBoardWindow(void) {
|
|||
if (size[0] <= size_win[0]) {
|
||||
size[0] = size_win[0];
|
||||
pos[0] = pos_win[0];
|
||||
#if VERSION_PAL
|
||||
if(winPosIdx == 1) {
|
||||
size[0] += 4;
|
||||
}
|
||||
#endif
|
||||
} else {
|
||||
pos[0] = -10000.0f;
|
||||
}
|
||||
|
|
@ -338,7 +343,7 @@ s32 BoardWinPortraitGetStar(void) {
|
|||
|
||||
void BoardWinPlayerSet(s32 player) {
|
||||
s32 i;
|
||||
|
||||
#if VERSION_NTSC
|
||||
if (player == -1) {
|
||||
if (GWPartyGet() != 1) {
|
||||
for (i = 0, disablePlayer = i; i < 4; i++) {
|
||||
|
|
@ -354,6 +359,21 @@ void BoardWinPlayerSet(s32 player) {
|
|||
} else {
|
||||
disablePlayer = ~(1 << GWPlayer[player].port);
|
||||
}
|
||||
#else
|
||||
if (player == -1) {
|
||||
if (GWPartyGet() != 1) {
|
||||
for (i = 0, disablePlayer = i; i < 4; i++) {
|
||||
if (GWPlayer[i].com != 0) {
|
||||
disablePlayer |= 1 << GWPlayer[i].port;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
disablePlayer = 0;
|
||||
}
|
||||
} else {
|
||||
disablePlayer = ~(1 << GWPlayer[player].port);
|
||||
}
|
||||
#endif
|
||||
if (_CheckFlag(FLAG_ID_MAKE(1, 11)) != 0) {
|
||||
disablePlayer = 0;
|
||||
}
|
||||
|
|
@ -405,4 +425,9 @@ void BoardWinStartComKeySet(void) {
|
|||
|
||||
void BoardWinComKeyFuncSet(BoardWinComKeyFunc func) {
|
||||
comKeyFunc = func;
|
||||
}
|
||||
|
||||
s16 BoardWinIDGet(void)
|
||||
{
|
||||
return windowID;
|
||||
}
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
#include "dolphin.h"
|
||||
#include "game/memory.h"
|
||||
#include "game/card.h"
|
||||
#include "version.h"
|
||||
|
||||
static void *cardWork;
|
||||
u8 UnMountCnt;
|
||||
|
|
@ -98,7 +99,11 @@ s32 HuCardFormat(s16 slot)
|
|||
|
||||
static void MountCallBack(s32 chan, s32 result)
|
||||
{
|
||||
#if VERSION_ENG
|
||||
UnMountCnt = (1 << chan);
|
||||
#else
|
||||
UnMountCnt |= (1 << chan);
|
||||
#endif
|
||||
}
|
||||
|
||||
s32 HuCardOpen(s16 slot, const char *fileName, CARDFileInfo *fileInfo)
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
#define PTR_OFFSET(ptr, offset) (void *)(((u8 *)(ptr)+(u32)(offset)))
|
||||
#define DATA_EFF_SIZE(size) (((size)+1) & ~0x1)
|
||||
|
||||
static void **HuDataReadMultiSub(s32 *data_ids, BOOL use_num, s32 num);
|
||||
void **HuDataReadMultiSub(s32 *data_ids, BOOL use_num, s32 num);
|
||||
|
||||
#define DATA_MAX_READSTAT 128
|
||||
|
||||
|
|
@ -406,7 +406,7 @@ void **HuDataReadMulti(s32 *data_ids)
|
|||
return HuDataReadMultiSub(data_ids, FALSE, 0);
|
||||
}
|
||||
|
||||
static void **HuDataReadMultiSub(s32 *data_ids, BOOL use_num, s32 num)
|
||||
void **HuDataReadMultiSub(s32 *data_ids, BOOL use_num, s32 num)
|
||||
{
|
||||
s32 *dir_ids;
|
||||
char **paths;
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ struct decode_data
|
|||
u32 size;
|
||||
};
|
||||
|
||||
static u8 TextBuffer[1024];
|
||||
static u8 textBuffer[1024];
|
||||
|
||||
static void HuDecodeNone(struct decode_data *decode)
|
||||
{
|
||||
|
|
@ -27,7 +27,7 @@ static void HuDecodeLz(struct decode_data *decode)
|
|||
|
||||
|
||||
for(i=0; i<1024; i++) {
|
||||
TextBuffer[i] = 0;
|
||||
textBuffer[i] = 0;
|
||||
}
|
||||
while(decode->size) {
|
||||
flag >>= 1;
|
||||
|
|
@ -35,7 +35,7 @@ static void HuDecodeLz(struct decode_data *decode)
|
|||
flag = (*decode->src++)|0xFF00;
|
||||
}
|
||||
if(flag & 0x1) {
|
||||
TextBuffer[pos++] = *decode->dst++ = *decode->src++;
|
||||
textBuffer[pos++] = *decode->dst++ = *decode->src++;
|
||||
pos = pos & 0x3FF;
|
||||
decode->size--;
|
||||
} else {
|
||||
|
|
@ -44,7 +44,7 @@ static void HuDecodeLz(struct decode_data *decode)
|
|||
i |= ((copy_len & ~0x3F) << 2);
|
||||
copy_len = (copy_len & 0x3F)+3;
|
||||
for(j=0; j<copy_len; j++) {
|
||||
TextBuffer[pos++] = *decode->dst++ = TextBuffer[(i+j) & 0x3FF];
|
||||
textBuffer[pos++] = *decode->dst++ = textBuffer[(i+j) & 0x3FF];
|
||||
pos &= 0x3FF;
|
||||
}
|
||||
decode->size -= j;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,12 @@
|
|||
#include "string.h"
|
||||
#include "game/gamework.h"
|
||||
#include "game/gamework_data.h"
|
||||
#include "game/flag.h"
|
||||
#include "game/gamework_data.h"
|
||||
#include "string.h"
|
||||
#include "version.h"
|
||||
|
||||
|
||||
s16 GwLanguage = 1;
|
||||
s16 GwLanguageSave = -1;
|
||||
|
||||
GameStat GWGameStatDefault;
|
||||
GameStat GWGameStat;
|
||||
|
|
@ -20,15 +25,16 @@ static inline void InitPlayerConfig(void)
|
|||
{
|
||||
PlayerConfig *config;
|
||||
s32 i;
|
||||
for(i=0; i<4; i++) {
|
||||
for (i = 0; i < 4; i++) {
|
||||
config = &GWPlayerCfg[i];
|
||||
config->character = i;
|
||||
config->pad_idx = i;
|
||||
config->diff = 0;
|
||||
config->group = i;
|
||||
if(!HuPadStatGet(i)) {
|
||||
if (!HuPadStatGet(i)) {
|
||||
config->iscom = 0;
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
config->iscom = 1;
|
||||
}
|
||||
}
|
||||
|
|
@ -36,11 +42,11 @@ static inline void InitPlayerConfig(void)
|
|||
|
||||
static inline void ResetBoardSettings(void)
|
||||
{
|
||||
GWRumbleSet(1);
|
||||
GWMGExplainSet(1);
|
||||
GWMGShowComSet(1);
|
||||
GWMessSpeedSet(1);
|
||||
GWSaveModeSet(0);
|
||||
GWRumbleSet(1);
|
||||
GWMGExplainSet(1);
|
||||
GWMGShowComSet(1);
|
||||
GWMessSpeedSet(1);
|
||||
GWSaveModeSet(0);
|
||||
}
|
||||
|
||||
void GWInit(void)
|
||||
|
|
@ -49,23 +55,29 @@ void GWInit(void)
|
|||
_InitFlag();
|
||||
GWErase();
|
||||
InitPlayerConfig();
|
||||
#if VERSION_JAP
|
||||
GWGameStat.language = 0;
|
||||
#elif VERSION_ENG
|
||||
GWGameStat.language = 1;
|
||||
#else
|
||||
GWLanguageSet(GwLanguage);
|
||||
#endif
|
||||
ResetBoardSettings();
|
||||
}
|
||||
|
||||
static inline void ResetMGRecord(GameStat *game_stat)
|
||||
{
|
||||
game_stat->mg_record[0] = 18000;
|
||||
game_stat->mg_record[0] = 300 * REFRESH_RATE;
|
||||
game_stat->mg_record[1] = 80;
|
||||
game_stat->mg_record[2] = 3600;
|
||||
game_stat->mg_record[3] = 7200;
|
||||
game_stat->mg_record[2] = 60 * REFRESH_RATE;
|
||||
game_stat->mg_record[3] = 120 * REFRESH_RATE;
|
||||
game_stat->mg_record[4] = 0;
|
||||
game_stat->mg_record[5] = 3600;
|
||||
game_stat->mg_record[6] = 18000;
|
||||
game_stat->mg_record[7] = 18000;
|
||||
game_stat->mg_record[8] = 18000;
|
||||
game_stat->mg_record[5] = 60 * REFRESH_RATE;
|
||||
game_stat->mg_record[6] = 300 * REFRESH_RATE;
|
||||
game_stat->mg_record[7] = 300 * REFRESH_RATE;
|
||||
game_stat->mg_record[8] = 300 * REFRESH_RATE;
|
||||
game_stat->mg_record[9] = 0;
|
||||
game_stat->mg_record[10] = 300;
|
||||
game_stat->mg_record[10] = 5 * REFRESH_RATE;
|
||||
game_stat->mg_record[11] = 0;
|
||||
game_stat->mg_record[12] = 0;
|
||||
game_stat->mg_record[13] = 0;
|
||||
|
|
@ -76,9 +88,9 @@ static inline void ResetBoardRecord(GameStat *game_stat)
|
|||
{
|
||||
s32 i;
|
||||
s32 j;
|
||||
|
||||
for(i=0; i<9; i++) {
|
||||
for(j=0; j<8; j++) {
|
||||
|
||||
for (i = 0; i < 9; i++) {
|
||||
for (j = 0; j < 8; j++) {
|
||||
game_stat->board_win_count[i][j] = 0;
|
||||
}
|
||||
game_stat->board_play_count[i] = 0;
|
||||
|
|
@ -90,10 +102,10 @@ static inline void ResetBoardRecord(GameStat *game_stat)
|
|||
static inline void ResetPresent(GameStat *game_stat)
|
||||
{
|
||||
s32 i;
|
||||
for(i=0; i<60; i++) {
|
||||
for (i = 0; i < 60; i++) {
|
||||
game_stat->present[i] = 0;
|
||||
}
|
||||
(void)i; //HACK to match GWResetGameStat
|
||||
(void)i; // HACK to match GWResetGameStat
|
||||
}
|
||||
|
||||
static inline void ResetFlag(GameStat *game_stat)
|
||||
|
|
@ -120,7 +132,13 @@ void GWGameStatReset(void)
|
|||
GameStat *game_stat = &GWGameStatDefault;
|
||||
memset(game_stat, 0, sizeof(GameStat));
|
||||
game_stat->unk_00 = 0;
|
||||
#if VERSION_JAP
|
||||
game_stat->language = 0;
|
||||
#elif VERSION_ENG
|
||||
game_stat->language = 1;
|
||||
#else
|
||||
game_stat->language = GwLanguage;
|
||||
#endif
|
||||
game_stat->sound_mode = 1;
|
||||
game_stat->rumble = 1;
|
||||
game_stat->total_stars = 0;
|
||||
|
|
@ -133,23 +151,30 @@ void GWGameStatReset(void)
|
|||
ResetBoardRecord(game_stat);
|
||||
ResetPresent(game_stat);
|
||||
ResetFlag(game_stat);
|
||||
ResetPauseConfig(game_stat);
|
||||
ResetPauseConfig(game_stat);
|
||||
memcpy(&GWGameStat, &GWGameStatDefault, sizeof(GameStat));
|
||||
ResetBoardSettings();
|
||||
}
|
||||
|
||||
s32 GWMessDelayGet(void)
|
||||
{
|
||||
if(GWSystem.mess_delay > 48) {
|
||||
#if VERSION_NTSC
|
||||
if (GWSystem.mess_delay > 48) {
|
||||
GWSystem.mess_speed = 1;
|
||||
GWSystem.mess_delay = 32;
|
||||
}
|
||||
#else
|
||||
if (GWSystem.mess_delay > 64) {
|
||||
GWSystem.mess_speed = 1;
|
||||
GWSystem.mess_delay = 48;
|
||||
}
|
||||
#endif
|
||||
return GWSystem.mess_delay;
|
||||
}
|
||||
|
||||
void GWMGRecordSet(s32 index, u32 value)
|
||||
{
|
||||
if(!_CheckFlag(FLAG_ID_MAKE(1, 12))) {
|
||||
if (!_CheckFlag(FLAG_ID_MAKE(1, 12))) {
|
||||
GWGameStat.mg_record[index] = value;
|
||||
}
|
||||
}
|
||||
|
|
@ -161,22 +186,14 @@ u32 GWMGRecordGet(s32 index)
|
|||
|
||||
void GWCharColorGet(s32 character, GXColor *color)
|
||||
{
|
||||
GXColor char_color[] = {
|
||||
{ 227, 67, 67, 255 },
|
||||
{ 68, 67, 227, 255 },
|
||||
{ 241, 158, 220, 255 },
|
||||
{ 67, 228, 68, 255 },
|
||||
{ 138, 60, 180, 255 },
|
||||
{ 146, 85, 55, 255 },
|
||||
{ 227, 228, 68, 255 },
|
||||
{ 40, 40, 40, 255 }
|
||||
};
|
||||
GXColor char_color[] = { { 227, 67, 67, 255 }, { 68, 67, 227, 255 }, { 241, 158, 220, 255 }, { 67, 228, 68, 255 }, { 138, 60, 180, 255 },
|
||||
{ 146, 85, 55, 255 }, { 227, 228, 68, 255 }, { 40, 40, 40, 255 } };
|
||||
*color = char_color[character];
|
||||
}
|
||||
|
||||
void GWBoardPlayCountSet(s32 board, u8 value)
|
||||
{
|
||||
if(value > 99) {
|
||||
if (value > 99) {
|
||||
value = 99;
|
||||
}
|
||||
GWGameStat.board_play_count[board] = value;
|
||||
|
|
@ -185,13 +202,12 @@ void GWBoardPlayCountSet(s32 board, u8 value)
|
|||
void GWBoardPlayCountAdd(s32 board, u8 value)
|
||||
{
|
||||
value += GWGameStat.board_play_count[board];
|
||||
if(value > 99) {
|
||||
if (value > 99) {
|
||||
value = 99;
|
||||
}
|
||||
GWGameStat.board_play_count[board] = value;
|
||||
}
|
||||
|
||||
|
||||
u8 GWBoardPlayCountGet(s32 board)
|
||||
{
|
||||
return GWGameStat.board_play_count[board];
|
||||
|
|
@ -219,8 +235,8 @@ u16 GWBoardMaxCoinsGet(s32 board)
|
|||
|
||||
s32 GWBoardWinCountInc(s32 character, s32 board)
|
||||
{
|
||||
s32 win_count = GWGameStat.board_win_count[board][character]+1;
|
||||
if(win_count > 99) {
|
||||
s32 win_count = GWGameStat.board_win_count[board][character] + 1;
|
||||
if (win_count > 99) {
|
||||
win_count = 99;
|
||||
}
|
||||
GWGameStat.board_win_count[board][character] = win_count;
|
||||
|
|
@ -244,9 +260,10 @@ s32 GWMGAvailGet(s32 id)
|
|||
id -= 401;
|
||||
word = id >> 5;
|
||||
bit = id % 32;
|
||||
if(GWGameStat.mg_avail[word] & (1 << bit)) {
|
||||
if (GWGameStat.mg_avail[word] & (1 << bit)) {
|
||||
return 1;
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -268,9 +285,10 @@ s32 GWMGCustomGet(s32 id)
|
|||
id -= 401;
|
||||
word = id >> 5;
|
||||
bit = id % 32;
|
||||
if(GWGameStat.mg_custom[word] & (1 << bit)) {
|
||||
if (GWGameStat.mg_custom[word] & (1 << bit)) {
|
||||
return 1;
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -302,14 +320,14 @@ s16 GWCoinsGet(s32 player)
|
|||
|
||||
void GWCoinsSet(s32 player, s16 value)
|
||||
{
|
||||
if(!_CheckFlag(FLAG_ID_MAKE(1, 12))) {
|
||||
if(value < 0) {
|
||||
if (!_CheckFlag(FLAG_ID_MAKE(1, 12))) {
|
||||
if (value < 0) {
|
||||
value = 0;
|
||||
}
|
||||
if(value > 999) {
|
||||
if (value > 999) {
|
||||
value = 999;
|
||||
}
|
||||
if(value > GWPlayer[player].coins_max) {
|
||||
if (value > GWPlayer[player].coins_max) {
|
||||
GWPlayer[player].coins_max = value;
|
||||
}
|
||||
GWPlayer[player].coins = value;
|
||||
|
|
@ -318,18 +336,18 @@ void GWCoinsSet(s32 player, s16 value)
|
|||
|
||||
void GWCoinsAdd(s32 player, s16 amount)
|
||||
{
|
||||
GWCoinsSet(player, GWPlayer[player].coins+amount);
|
||||
GWCoinsSet(player, GWPlayer[player].coins + amount);
|
||||
}
|
||||
|
||||
void GWStarsSet(s32 player, s16 value)
|
||||
{
|
||||
if(value < 0) {
|
||||
if (value < 0) {
|
||||
value = 0;
|
||||
}
|
||||
if(value > 999) {
|
||||
if (value > 999) {
|
||||
value = 999;
|
||||
}
|
||||
if(value > GWPlayer[player].stars_max) {
|
||||
if (value > GWPlayer[player].stars_max) {
|
||||
GWPlayer[player].stars_max = value;
|
||||
}
|
||||
GWPlayer[player].stars = value;
|
||||
|
|
@ -337,7 +355,7 @@ void GWStarsSet(s32 player, s16 value)
|
|||
|
||||
void GWStarsAdd(s32 player, s16 amount)
|
||||
{
|
||||
GWStarsSet(player, GWPlayer[player].stars+amount);
|
||||
GWStarsSet(player, GWPlayer[player].stars + amount);
|
||||
}
|
||||
|
||||
s32 GWStarsGet(s32 player)
|
||||
|
|
@ -347,10 +365,10 @@ s32 GWStarsGet(s32 player)
|
|||
|
||||
void GWTotalStarsSet(s16 value)
|
||||
{
|
||||
if(value < 0) {
|
||||
if (value < 0) {
|
||||
value = 0;
|
||||
}
|
||||
if(value > 10000) {
|
||||
if (value > 10000) {
|
||||
value = 10000;
|
||||
}
|
||||
GWGameStat.total_stars = value;
|
||||
|
|
@ -358,7 +376,7 @@ void GWTotalStarsSet(s16 value)
|
|||
|
||||
void GWTotalStarsAdd(s16 amount)
|
||||
{
|
||||
GWTotalStarsSet(GWGameStat.total_stars+amount);
|
||||
GWTotalStarsSet(GWGameStat.total_stars + amount);
|
||||
}
|
||||
|
||||
u16 GWTotalStarsGet(void)
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ typedef struct {
|
|||
/* 0x3C */ HsfanimStruct00 *unk3C;
|
||||
} ParManProcUserData; // Size 0x40
|
||||
|
||||
static void _Hu3DParticleAttrReset(ModelData *arg0, Mtx arg1);
|
||||
static void particleFunc(ModelData *arg0, Mtx arg1);
|
||||
static void ParManFunc(void);
|
||||
static void ParManHook(ModelData *arg0, ParticleData *arg1, Mtx matrix);
|
||||
|
||||
|
|
@ -493,7 +493,7 @@ s16 Hu3DParticleCreate(AnimData *arg0, s16 arg1) {
|
|||
s16 i;
|
||||
void *temp_r24;
|
||||
|
||||
temp_r25 = Hu3DHookFuncCreate((void*) &_Hu3DParticleAttrReset);
|
||||
temp_r25 = Hu3DHookFuncCreate((void*) &particleFunc);
|
||||
temp_r28 = &Hu3DData[temp_r25];
|
||||
Hu3DModelAttrSet(temp_r25, HU3D_ATTR_PARTICLE_KILL);
|
||||
temp_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(ParticleData), temp_r28->unk_48);
|
||||
|
|
@ -658,7 +658,7 @@ static float baseST[] = {
|
|||
1.0f, 1.0f, 0.0f, 1.0f
|
||||
};
|
||||
|
||||
static void _Hu3DParticleAttrReset(ModelData *arg0, Mtx arg1) {
|
||||
static void particleFunc(ModelData *arg0, Mtx arg1) {
|
||||
Vec *var_r30;
|
||||
float temp_f31;
|
||||
float temp_f29;
|
||||
|
|
|
|||
|
|
@ -39,6 +39,8 @@ static void InitVI();
|
|||
static void SwapBuffers();
|
||||
static void LoadMemInfo();
|
||||
|
||||
#define ASSERT_LINE(ntsc, pal) ((VERSION_NTSC) ? (ntsc) : (pal))
|
||||
|
||||
void HuSysInit(GXRenderModeObj *mode)
|
||||
{
|
||||
u32 rnd_temp;
|
||||
|
|
@ -46,13 +48,19 @@ void HuSysInit(GXRenderModeObj *mode)
|
|||
DVDInit();
|
||||
VIInit();
|
||||
PADInit();
|
||||
#if VERSION_NTSC
|
||||
if(OSGetProgressiveMode() == 1 && VIGetDTVStatus() == 1) {
|
||||
mode = &GXNtsc480Prog;
|
||||
}
|
||||
#else
|
||||
mode->efbHeight = 480;
|
||||
#endif
|
||||
InitRenderMode(mode);
|
||||
InitMem();
|
||||
VIConfigure(RenderMode);
|
||||
#if VERSION_NTSC
|
||||
VIConfigurePan(0, 0, 640, 480);
|
||||
#endif
|
||||
DefaultFifo = OSAlloc(0x100000);
|
||||
DefaultFifoObj = GXInit(DefaultFifo, 0x100000);
|
||||
InitGX();
|
||||
|
|
@ -91,7 +99,7 @@ static void InitRenderMode(GXRenderModeObj *mode)
|
|||
break;
|
||||
|
||||
default:
|
||||
OSPanic("init.c", 169, "DEMOInit: invalid TV format\n");
|
||||
OSPanic("init.c", ASSERT_LINE(169, 167), "DEMOInit: invalid TV format\n");
|
||||
break;
|
||||
}
|
||||
GXAdjustForOverscan(RenderMode, &rmodeobj, 0, 16);
|
||||
|
|
@ -104,7 +112,12 @@ static void InitGX()
|
|||
GXSetScissor(0, 0, RenderMode->fbWidth, RenderMode->efbHeight);
|
||||
GXSetDispCopySrc(0, 0, RenderMode->fbWidth, RenderMode->efbHeight);
|
||||
GXSetDispCopyDst(RenderMode->fbWidth, RenderMode->xfbHeight);
|
||||
#if VERSION_NTSC
|
||||
GXSetDispCopyYScale((float)RenderMode->xfbHeight/(float)RenderMode->efbHeight);
|
||||
#else
|
||||
OSReport("%D\n", RenderMode->xfbHeight);
|
||||
GXSetDispCopyYScale(GXGetYScaleFactor(RenderMode->efbHeight, RenderMode->xfbHeight));
|
||||
#endif
|
||||
GXSetCopyFilter(RenderMode->aa, RenderMode->sample_pattern, GX_TRUE, RenderMode->vfilter);
|
||||
if(RenderMode->aa) {
|
||||
GXSetPixelFmt(GX_PF_RGB565_Z16, GX_ZC_LINEAR);
|
||||
|
|
@ -120,9 +133,21 @@ static void InitMem()
|
|||
void *arena_lo = OSGetArenaLo();
|
||||
void *arena_hi = OSGetArenaHi();
|
||||
u32 fb_size = (u16)(((u16)RenderMode->fbWidth+15) & ~15)*RenderMode->xfbHeight*2;
|
||||
u32 *fb1;
|
||||
u32 *fb2;
|
||||
u32 i;
|
||||
DemoFrameBuffer1 = (void *)OSRoundUp32B((u32)arena_lo);
|
||||
DemoFrameBuffer2 = (void *)OSRoundUp32B((u32)DemoFrameBuffer1+fb_size);
|
||||
DemoCurrentBuffer = DemoFrameBuffer2;
|
||||
#if VERSION_PAL
|
||||
fb1 = DemoFrameBuffer1;
|
||||
fb2 = DemoFrameBuffer2;
|
||||
for(i=0; i<fb_size/4; i++, fb1++, fb2++) {
|
||||
*fb1 = *fb2 = 0x800080;
|
||||
}
|
||||
DCStoreRangeNoSync(DemoFrameBuffer1, fb_size);
|
||||
DCStoreRangeNoSync(DemoFrameBuffer2, fb_size);
|
||||
#endif
|
||||
arena_lo = (void *)OSRoundUp32B((u32)DemoFrameBuffer2+fb_size);
|
||||
OSSetArenaLo(arena_lo);
|
||||
if(OSGetConsoleType() == OS_CONSOLE_DEVHW1 && OSGetPhysicalMemSize() != 0x400000 && OSGetConsoleSimulatedMemSize() < 0x1800000) {
|
||||
|
|
@ -256,7 +281,7 @@ static void LoadMemInfo()
|
|||
OSReport("loop\n");
|
||||
copy_size = (size < 32) ? size : 32;
|
||||
if(DVDRead(&file, buf_ptr, OSRoundUp32B(copy_size), offset) < 0) {
|
||||
OSPanic("init.c", 576, "An error occurred when issuing read to /meminfo.bin\n");
|
||||
OSPanic("init.c", ASSERT_LINE(576, 586), "An error occurred when issuing read to /meminfo.bin\n");
|
||||
}
|
||||
entries = copy_size/sizeof(struct memory_info);
|
||||
for(i=0; i<entries; i++) {
|
||||
|
|
|
|||
|
|
@ -43,10 +43,17 @@ void main(void)
|
|||
u32 met1;
|
||||
s16 i;
|
||||
s32 retrace;
|
||||
|
||||
#if VERSION_PAL
|
||||
s16 temp = 0;
|
||||
#endif
|
||||
|
||||
HuDvdErrWait = 0;
|
||||
SystemInitF = 0;
|
||||
#if VERSION_NTSC
|
||||
HuSysInit(&GXNtsc480IntDf);
|
||||
#else
|
||||
HuSysInit(&GXPal528IntDf);
|
||||
#endif
|
||||
HuPrcInit();
|
||||
HuPadInit();
|
||||
GWInit();
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -11,6 +11,14 @@
|
|||
#include "string.h"
|
||||
#include "stddef.h"
|
||||
|
||||
#if VERSION_ENG
|
||||
#define SAVE_WRITE_BEGIN _SetFlag(FLAG_ID_MAKE(3, 0));
|
||||
#define SAVE_WRITE_END _ClearFlag(FLAG_ID_MAKE(3, 0));
|
||||
#else
|
||||
#define SAVE_WRITE_BEGIN
|
||||
#define SAVE_WRITE_END
|
||||
#endif
|
||||
|
||||
#define SAVE_GET_PLAYER(player_idx) &saveBuf.buf[((player_idx)*sizeof(PlayerState))+offsetof(SaveBufData, player)]
|
||||
#define SAVE_GET_PLAYER_STORY(player_idx) &saveBuf.buf[((player_idx)*sizeof(PlayerState))+offsetof(SaveBufData, playerStory)]
|
||||
|
||||
|
|
@ -135,9 +143,9 @@ s32 SLFileCreate(char *fileName, u32 size, void *addr) {
|
|||
HuWinExAnimIn(window);
|
||||
HuWinMesSet(window, MAKE_MESSID(16, 11));
|
||||
HuWinMesWait(window);
|
||||
_SetFlag(FLAG_ID_MAKE(3, 0));
|
||||
SAVE_WRITE_BEGIN
|
||||
result = HuCardCreate(curSlotNo, fileName, size, &curFileInfo);
|
||||
_ClearFlag(FLAG_ID_MAKE(3, 0));
|
||||
SAVE_WRITE_END
|
||||
if (result < 0) {
|
||||
HuWinExAnimOut(window);
|
||||
HuWinExCleanup(window);
|
||||
|
|
@ -150,9 +158,9 @@ s32 SLFileCreate(char *fileName, u32 size, void *addr) {
|
|||
SLMessOut(1);
|
||||
return CARD_RESULT_FATAL_ERROR;
|
||||
}
|
||||
_SetFlag(FLAG_ID_MAKE(3, 0));
|
||||
SAVE_WRITE_BEGIN
|
||||
result = HuCardWrite(&curFileInfo, addr, size, 0);
|
||||
_ClearFlag(FLAG_ID_MAKE(3, 0));
|
||||
SAVE_WRITE_END
|
||||
if (result < 0) {
|
||||
HuWinExAnimOut(window);
|
||||
HuWinExCleanup(window);
|
||||
|
|
@ -165,9 +173,9 @@ s32 SLFileCreate(char *fileName, u32 size, void *addr) {
|
|||
SLMessOut(1);
|
||||
return CARD_RESULT_FATAL_ERROR;
|
||||
}
|
||||
_SetFlag(FLAG_ID_MAKE(3, 0));
|
||||
SAVE_WRITE_BEGIN
|
||||
result = SLStatSet(1);
|
||||
_ClearFlag(FLAG_ID_MAKE(3, 0));
|
||||
SAVE_WRITE_END
|
||||
HuWinExAnimOut(window);
|
||||
HuWinExCleanup(window);
|
||||
if (result < 0) {
|
||||
|
|
@ -191,12 +199,12 @@ s32 SLFileWrite(s32 length, void *addr) {
|
|||
HuWinMesSet(window, MAKE_MESSID(16, 11));
|
||||
HuWinMesWait(window);
|
||||
HuPrcSleep(60);
|
||||
_SetFlag(FLAG_ID_MAKE(3, 0));
|
||||
SAVE_WRITE_BEGIN
|
||||
result = HuCardWrite(&curFileInfo, addr, length, 0);
|
||||
if (result == 0) {
|
||||
result = SLStatSet(1);
|
||||
}
|
||||
_ClearFlag(FLAG_ID_MAKE(3, 0));
|
||||
SAVE_WRITE_END
|
||||
HuWinExAnimOut(window);
|
||||
HuWinExCleanup(window);
|
||||
return result;
|
||||
|
|
@ -277,7 +285,8 @@ void SLSaveDataInfoSet(OSTime *time) {
|
|||
s16 year;
|
||||
s16 digit;
|
||||
OSCalendarTime sp8;
|
||||
|
||||
|
||||
#if VERSION_ENG
|
||||
OSTicksToCalendarTime(*time, &sp8);
|
||||
saveBuf.data.comment[37] = curBoxNo + '1';
|
||||
digit = (sp8.mon + 1) / 10;
|
||||
|
|
@ -299,6 +308,52 @@ void SLSaveDataInfoSet(OSTime *time) {
|
|||
saveBuf.data.comment[48] = digit + '0';
|
||||
year -= digit * 10;
|
||||
saveBuf.data.comment[49] = year + '0';
|
||||
#elif VERSION_PAL
|
||||
OSTicksToCalendarTime(*time, &sp8);
|
||||
saveBuf.data.comment[37] = curBoxNo + '1';
|
||||
digit = sp8.mday / 10;
|
||||
saveBuf.data.comment[40] = digit + '0';
|
||||
digit = sp8.mday % 10;
|
||||
saveBuf.data.comment[41] = digit + '0';
|
||||
digit = (sp8.mon + 1) / 10;
|
||||
saveBuf.data.comment[43] = digit + '0';
|
||||
digit = (sp8.mon + 1) % 10;
|
||||
saveBuf.data.comment[44] = digit + '0';
|
||||
year = sp8.year;
|
||||
digit = year / 1000;
|
||||
saveBuf.data.comment[46] = digit + '0';
|
||||
year -= digit * 1000;
|
||||
digit = year / 100;
|
||||
saveBuf.data.comment[47] = digit + '0';
|
||||
year -= digit * 100;
|
||||
digit = year / 10;
|
||||
saveBuf.data.comment[48] = digit + '0';
|
||||
year -= digit * 10;
|
||||
saveBuf.data.comment[49] = year + '0';
|
||||
#else
|
||||
//TODO: Japanese Version
|
||||
OSTicksToCalendarTime(*time, &sp8);
|
||||
saveBuf.data.comment[37] = curBoxNo + '1';
|
||||
digit = sp8.mday / 10;
|
||||
saveBuf.data.comment[40] = digit + '0';
|
||||
digit = sp8.mday % 10;
|
||||
saveBuf.data.comment[41] = digit + '0';
|
||||
digit = (sp8.mon + 1) / 10;
|
||||
saveBuf.data.comment[43] = digit + '0';
|
||||
digit = (sp8.mon + 1) % 10;
|
||||
saveBuf.data.comment[44] = digit + '0';
|
||||
year = sp8.year;
|
||||
digit = year / 1000;
|
||||
saveBuf.data.comment[46] = digit + '0';
|
||||
year -= digit * 1000;
|
||||
digit = year / 100;
|
||||
saveBuf.data.comment[47] = digit + '0';
|
||||
year -= digit * 100;
|
||||
digit = year / 10;
|
||||
saveBuf.data.comment[48] = digit + '0';
|
||||
year -= digit * 10;
|
||||
saveBuf.data.comment[49] = year + '0';
|
||||
#endif
|
||||
}
|
||||
|
||||
void SLCommonSet(void) {
|
||||
|
|
@ -409,6 +464,12 @@ block_36:
|
|||
return 0;
|
||||
}
|
||||
|
||||
#if VERSION_NTSC
|
||||
#define SAVEWIN_POS 150
|
||||
#else
|
||||
#define SAVEWIN_POS 120
|
||||
#endif
|
||||
|
||||
static s16 SLCreateSaveWin(void) {
|
||||
float size[2];
|
||||
s16 window;
|
||||
|
|
@ -416,7 +477,7 @@ static s16 SLCreateSaveWin(void) {
|
|||
HuWinInit(1);
|
||||
HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0);
|
||||
HuWinMesMaxSizeGet(1, size, MAKE_MESSID(16, 68));
|
||||
window = HuWinExCreateStyled(-10000.0f, 150.0f, size[0], size[1], -1, 2);
|
||||
window = HuWinExCreateStyled(-10000.0f, SAVEWIN_POS, size[0], size[1], -1, 2);
|
||||
saveMessWin = window;
|
||||
HuWinExAnimIn(window);
|
||||
HuWinInsertMesSet(window, MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0);
|
||||
|
|
@ -641,7 +702,7 @@ s32 SLFormat(s16 slotNo) {
|
|||
HuWinInit(1);
|
||||
HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0);
|
||||
HuWinMesMaxSizeGet(1, winSize, MAKE_MESSID(16, 56));
|
||||
window1 = HuWinExCreateStyled(-10000.0f, 150.0f, winSize[0], winSize[1], -1, 2);
|
||||
window1 = HuWinExCreateStyled(-10000.0f, SAVEWIN_POS, winSize[0], winSize[1], -1, 2);
|
||||
HuWinExAnimIn(window1);
|
||||
HuWinInsertMesSet(window1, MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0);
|
||||
HuWinMesSet(window1, MAKE_MESSID(16, 56));
|
||||
|
|
@ -659,9 +720,9 @@ s32 SLFormat(s16 slotNo) {
|
|||
SLMessOut(12);
|
||||
return 0;
|
||||
}
|
||||
_SetFlag(FLAG_ID_MAKE(3, 0));
|
||||
SAVE_WRITE_BEGIN
|
||||
result = HuCardFormat(curSlotNo);
|
||||
_ClearFlag(FLAG_ID_MAKE(3, 0));
|
||||
SAVE_WRITE_END
|
||||
if (result < 0) {
|
||||
HuWinExAnimOut(window1);
|
||||
HuWinExCleanup(window1);
|
||||
|
|
@ -721,11 +782,19 @@ s16 SLMessOut(s16 mess) {
|
|||
case 2:
|
||||
HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0);
|
||||
slot_mess = MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]);
|
||||
#if VERSION_NTSC
|
||||
save_mess = MAKE_MESSID(16, 74);
|
||||
#else
|
||||
save_mess = MAKE_MESSID(16, 72);
|
||||
#endif
|
||||
break;
|
||||
|
||||
case 3:
|
||||
#if VERSION_NTSC
|
||||
save_mess = MAKE_MESSID(16, 74);
|
||||
#else
|
||||
save_mess = MAKE_MESSID(16, 72);
|
||||
#endif
|
||||
HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0);
|
||||
slot_mess = MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]);
|
||||
break;
|
||||
|
|
@ -772,7 +841,11 @@ s16 SLMessOut(s16 mess) {
|
|||
case 11:
|
||||
HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0);
|
||||
slot_mess = MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]);
|
||||
#if VERSION_NTSC
|
||||
save_mess = MAKE_MESSID(16, 72);
|
||||
#else
|
||||
save_mess = MAKE_MESSID(16, 76);
|
||||
#endif
|
||||
break;
|
||||
|
||||
case 12:
|
||||
|
|
|
|||
|
|
@ -4,6 +4,9 @@
|
|||
#include "game/pad.h"
|
||||
#include "game/audio.h"
|
||||
#include "game/thpmain.h"
|
||||
#include "game/gamework_data.h"
|
||||
|
||||
#include "version.h"
|
||||
|
||||
#define SR_DVD_LOADING 0
|
||||
#define SR_DVD_COVER_OPEN 1
|
||||
|
|
@ -19,6 +22,8 @@ extern s32 HuDvdErrWait;
|
|||
|
||||
static s32 SR_PreRstChk[4] = {};
|
||||
|
||||
#if VERSION_NTSC
|
||||
|
||||
#include "coveropen_en.inc"
|
||||
#include "fatalerror_en.inc"
|
||||
#include "loading_en.inc"
|
||||
|
|
@ -26,6 +31,45 @@ static s32 SR_PreRstChk[4] = {};
|
|||
#include "retryerror_en.inc"
|
||||
#include "wrongdisc_en.inc"
|
||||
|
||||
#else
|
||||
|
||||
#include "coveropen_en.inc"
|
||||
#include "fatalerror_en.inc"
|
||||
#include "loading_en.inc"
|
||||
#include "nodisc_en.inc"
|
||||
#include "retryerror_en.inc"
|
||||
#include "wrongdisc_en.inc"
|
||||
|
||||
#include "coveropen_fr.inc"
|
||||
#include "fatalerror_fr.inc"
|
||||
#include "loading_fr.inc"
|
||||
#include "nodisc_fr.inc"
|
||||
#include "retryerror_fr.inc"
|
||||
#include "wrongdisc_fr.inc"
|
||||
|
||||
#include "coveropen_ge.inc"
|
||||
#include "fatalerror_ge.inc"
|
||||
#include "loading_ge.inc"
|
||||
#include "nodisc_ge.inc"
|
||||
#include "retryerror_ge.inc"
|
||||
#include "wrongdisc_ge.inc"
|
||||
|
||||
#include "coveropen_it.inc"
|
||||
#include "fatalerror_it.inc"
|
||||
#include "loading_it.inc"
|
||||
#include "nodisc_it.inc"
|
||||
#include "retryerror_it.inc"
|
||||
#include "wrongdisc_it.inc"
|
||||
|
||||
#include "coveropen_sp.inc"
|
||||
#include "fatalerror_sp.inc"
|
||||
#include "loading_sp.inc"
|
||||
#include "nodisc_sp.inc"
|
||||
#include "retryerror_sp.inc"
|
||||
#include "wrongdisc_sp.inc"
|
||||
|
||||
#endif
|
||||
|
||||
static s16 SR_PushTime[4] = {};
|
||||
static s8 SR_ResetPad = -1;
|
||||
|
||||
|
|
@ -103,9 +147,17 @@ void HuDvdErrDispInit(GXRenderModeObj *rmode, void *xfb1, void *xfb2)
|
|||
XfbW = (u16)(((u16)rmode->fbWidth+15) & ~0xF);
|
||||
XfbH = rmode->xfbHeight;
|
||||
} else {
|
||||
#if VERSION_NTSC
|
||||
XfbW = 640;
|
||||
XfbH = 480;
|
||||
#else
|
||||
XfbW = 640;
|
||||
XfbH = 528;
|
||||
#endif
|
||||
}
|
||||
#if VERSION_PAL
|
||||
(void)(VIGetTvFormat() == VI_PAL);
|
||||
#endif
|
||||
if((u16)rmode->xFBmode == VI_XFBMODE_SF) {
|
||||
XfbProg = 0;
|
||||
} else {
|
||||
|
|
@ -223,20 +275,39 @@ static void ToeDispCheck(void)
|
|||
_HuDvdErrDispXFB(status);
|
||||
}
|
||||
|
||||
#if VERSION_NTSC
|
||||
|
||||
#define XFB_SIZE 0x96000
|
||||
|
||||
#else
|
||||
|
||||
#define XFB_SIZE (XfbW*XfbH*2)
|
||||
|
||||
#endif
|
||||
|
||||
static void _HuDvdErrDispXFB(s32 error)
|
||||
{
|
||||
#if VERSION_NTSC
|
||||
static void *bmpMes[][6] = {
|
||||
loading_en, coveropen_en, nodisc_en, wrongdisc_en, retryerror_en, fatalerror_en
|
||||
};
|
||||
volatile s32 status;
|
||||
u8 color[2];
|
||||
s8 language;
|
||||
#else
|
||||
static void *bmpMes[][6] = {
|
||||
loading_en, coveropen_en, nodisc_en, wrongdisc_en, retryerror_en, fatalerror_en,
|
||||
loading_fr, coveropen_fr, nodisc_fr, wrongdisc_fr, retryerror_fr, fatalerror_fr,
|
||||
loading_ge, coveropen_ge, nodisc_ge, wrongdisc_ge, retryerror_ge, fatalerror_ge,
|
||||
loading_it, coveropen_it, nodisc_it, wrongdisc_it, retryerror_it, fatalerror_it,
|
||||
loading_sp, coveropen_sp, nodisc_sp, wrongdisc_sp, retryerror_sp, fatalerror_sp
|
||||
};
|
||||
#endif
|
||||
|
||||
s16 *bmpData;
|
||||
u8 *xfb1_ptr;
|
||||
u8 *xfb2_ptr;
|
||||
u32 i;
|
||||
u32 data;
|
||||
u32 row;
|
||||
s8 language;
|
||||
u32 *xfb1;
|
||||
u32 *xfb2;
|
||||
u32 j;
|
||||
|
|
@ -246,25 +317,59 @@ static void _HuDvdErrDispXFB(s32 error)
|
|||
u32 *data_ptr;
|
||||
u32 row_offset;
|
||||
u32 row_pitch;
|
||||
void *tempfb1;
|
||||
void *tempfb2;
|
||||
s32 status;
|
||||
u8 color[2];
|
||||
|
||||
|
||||
#if VERSION_PAL
|
||||
switch(GWGameStat.language) {
|
||||
case 2:
|
||||
language = 2;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
language = 1;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
language = 3;
|
||||
break;
|
||||
|
||||
case 5:
|
||||
language = 4;
|
||||
break;
|
||||
|
||||
default:
|
||||
language = 0;
|
||||
break;
|
||||
}
|
||||
#else
|
||||
language = 0;
|
||||
#endif
|
||||
xfb1 = Xfb[0];
|
||||
xfb2 = Xfb[1];
|
||||
for(i=0; i<0x25800; i++, xfb1++, xfb2++) {
|
||||
for(i=0; i<XFB_SIZE/4; i++, xfb1++, xfb2++) {
|
||||
#if VERSION_NTSC
|
||||
*xfb1 = *xfb2 = 0x800080;
|
||||
#else
|
||||
*xfb1 = *xfb2 = 0x10801080;
|
||||
#endif
|
||||
}
|
||||
DCStoreRangeNoSync(Xfb[0], 0x96000);
|
||||
DCStoreRangeNoSync(Xfb[1], 0x96000);
|
||||
DCStoreRangeNoSync(Xfb[0], XFB_SIZE);
|
||||
DCStoreRangeNoSync(Xfb[1], XFB_SIZE);
|
||||
bmpData = bmpMes[language][error];
|
||||
data_ptr = (u32 *)(bmpData+2);
|
||||
row_offset = ((XfbW/2)-(bmpData[0]/2))*2;
|
||||
row_pitch = XfbW*2;
|
||||
color[1] = color[0] = 128;
|
||||
for(row=0; row<bmpData[1]; row++) {
|
||||
void *sp14[2];
|
||||
|
||||
xfb1_ptr = ((u8 *)(Xfb[0])+((row+200)*row_pitch)+row_offset);
|
||||
sp14[1] = xfb1_ptr;
|
||||
tempfb1 = xfb1_ptr;
|
||||
xfb2_ptr = ((u8 *)(Xfb[1])+((row+200)*row_pitch)+row_offset);
|
||||
sp14[0] = xfb2_ptr;
|
||||
tempfb2 = xfb2_ptr;
|
||||
for(i=0; i<bmpData[0]; i += 32) {
|
||||
data = *data_ptr++;
|
||||
for(j=0; j<32; j += 2, data >>= 2, xfb1_ptr += 4, xfb2_ptr += 4) {
|
||||
|
|
@ -290,8 +395,8 @@ static void _HuDvdErrDispXFB(s32 error)
|
|||
}
|
||||
}
|
||||
}
|
||||
DCStoreRangeNoSync(sp14[1], bmpData[0]*2);
|
||||
DCStoreRangeNoSync(sp14[0], bmpData[0]*2);
|
||||
DCStoreRangeNoSync(tempfb1, bmpData[0]*2);
|
||||
DCStoreRangeNoSync(tempfb2, bmpData[0]*2);
|
||||
}
|
||||
status = DVDGetDriveStatus();
|
||||
while(status) {
|
||||
|
|
|
|||
|
|
@ -58,7 +58,12 @@ void *messDataPtr;
|
|||
static s32 messDataNo;
|
||||
static s16 winMaxWidth;
|
||||
static s16 winMaxHeight;
|
||||
#if VERSION_NTSC
|
||||
static u8 mesWInsert[8];
|
||||
#else
|
||||
static u16 mesWInsert[8];
|
||||
#endif
|
||||
|
||||
static u8 winTabSize;
|
||||
static u8 winInsertF;
|
||||
static u32 winAMemP;
|
||||
|
|
@ -96,6 +101,7 @@ static spcFontTblData spcFontTbl[] = {
|
|||
{ &cardAnimB, 0, 32, 32, 16, 16 }
|
||||
};
|
||||
|
||||
#if VERSION_NTSC
|
||||
u8 charWETbl[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
|
|
@ -118,6 +124,31 @@ u8 charWETbl[] = {
|
|||
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20
|
||||
};
|
||||
|
||||
#else
|
||||
u8 charWETbl[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 18, 20, 12, 12, 11, 14,
|
||||
8, 13, 12, 12, 12, 12, 12, 12, 12, 9, 11, 12, 11, 15, 12, 13,
|
||||
12, 13, 12, 12, 11, 12, 11, 15, 12, 13, 11, 12, 6, 8, 8, 12,
|
||||
20, 12, 11, 12, 11, 11, 9, 12, 11, 4, 8, 11, 4, 14, 11, 12,
|
||||
11, 12, 9, 11, 9, 11, 11, 15, 11, 11, 11, 4, 13, 8, 14, 12,
|
||||
9, 8, 8, 8, 20, 4, 12, 20, 20, 20, 20, 20, 20, 20, 20, 20,
|
||||
20, 12, 12, 12, 12, 12, 12, 12, 12, 8, 8, 12, 12, 12, 12, 12,
|
||||
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 20, 20,
|
||||
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
|
||||
13, 13, 6, 12, 18, 14, 14, 8, 20, 20, 20, 20, 20, 20, 20, 20,
|
||||
20, 10, 10, 10, 12, 12, 12, 12, 12, 10, 10, 12, 12, 10, 10, 10,
|
||||
10, 7, 7, 12, 12, 10, 12, 20, 20, 20, 20, 20, 20, 20, 20, 20,
|
||||
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 20,
|
||||
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
|
||||
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
|
||||
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
u8 charWJTbl[] = {
|
||||
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
|
||||
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 20, 20, 20,
|
||||
|
|
@ -171,12 +202,29 @@ static s32 frameFileTbl[] = {
|
|||
WIN_FRAME1_ANM
|
||||
};
|
||||
|
||||
#if VERSION_NTSC
|
||||
static char *mesDataTbl[] = {
|
||||
"mess/mini.dat",
|
||||
"mess/board.dat",
|
||||
"mess/mini_e.dat",
|
||||
"mess/board_e.dat"
|
||||
};
|
||||
#else
|
||||
static char *mesDataTbl[] = {
|
||||
"mess/mini.dat",
|
||||
"mess/board.dat",
|
||||
"mess/mini_e.dat",
|
||||
"mess/board_e.dat",
|
||||
"mess/mini_g.dat",
|
||||
"mess/board_g.dat",
|
||||
"mess/mini_f.dat",
|
||||
"mess/board_f.dat",
|
||||
"mess/mini_i.dat",
|
||||
"mess/board_i.dat",
|
||||
"mess/mini_s.dat",
|
||||
"mess/board_s.dat"
|
||||
};
|
||||
#endif
|
||||
|
||||
static s32 winVoiceTbl[] = {
|
||||
0x37, 0x36, 0x38, 0x44,
|
||||
|
|
@ -609,12 +657,13 @@ static inline void charEntry(s16 window, s16 x, s16 y, s16 char_idx, s16 color)
|
|||
static void HuWinDrawMes(s16 window) {
|
||||
WindowData *window_ptr = &winData[window];
|
||||
HuSprGrp *group = &HuSprGrpData[window_ptr->group];
|
||||
s16 c;
|
||||
s16 i;
|
||||
s16 char_w;
|
||||
s16 tab_w;
|
||||
s16 insert_mess;
|
||||
s16 mess_end;
|
||||
s16 c;
|
||||
|
||||
s16 shadow_color;
|
||||
s16 color;
|
||||
s16 mess_w;
|
||||
|
|
@ -790,6 +839,7 @@ static void HuWinDrawMes(s16 window) {
|
|||
}
|
||||
c = window_ptr->mess[0];
|
||||
window_ptr->attr |= 0x200;
|
||||
#if VERSION_NTSC
|
||||
if (window_ptr->mess[1] == 128) {
|
||||
if (c >= 150 && c <= 164) {
|
||||
c = c+106;
|
||||
|
|
@ -809,6 +859,7 @@ static void HuWinDrawMes(s16 window) {
|
|||
}
|
||||
window_ptr->mess++;
|
||||
}
|
||||
#endif
|
||||
color = (window_ptr->attr & 0x20) ? 8 : window_ptr->mess_color;
|
||||
if (window_ptr->attr & 1) {
|
||||
shadow_color = 0;
|
||||
|
|
@ -1249,11 +1300,15 @@ void HuWinMesRead(s32 mess_data_no) {
|
|||
HuMemDirectFree(messDataPtr);
|
||||
}
|
||||
messDataNo = mess_data_no;
|
||||
#if VERSION_NTSC
|
||||
if (LanguageNo == 0) {
|
||||
mess_path = mesDataTbl[messDataNo];
|
||||
} else {
|
||||
mess_path = mesDataTbl[messDataNo + 2];
|
||||
}
|
||||
#else
|
||||
mess_path = mesDataTbl[messDataNo+(LanguageNo*2)];
|
||||
#endif
|
||||
dvd_mess = HuDvdDataRead(mess_path);
|
||||
messDataPtr = HuMemDirectMalloc(HEAP_SYSTEM, DirDataSize);
|
||||
memcpy(messDataPtr, dvd_mess, DirDataSize);
|
||||
|
|
@ -1653,9 +1708,15 @@ static void GetMesMaxSizeSub(u32 mess) {
|
|||
char_w = mesWInsert[*mess_data - 1];
|
||||
break;
|
||||
}
|
||||
#if VERSION_NTSC
|
||||
if ((*mess_data != 255 && *mess_data >= 32) || *mess_data == 16) {
|
||||
cr_flag = 1;
|
||||
}
|
||||
#else
|
||||
if ((*mess_data != 255 && *mess_data >= 32) || *mess_data == 16 || mess_data[-1] == 31) {
|
||||
cr_flag = 1;
|
||||
}
|
||||
#endif
|
||||
line_w += char_w;
|
||||
line_h += char_h;
|
||||
mess_data++;
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
#include "game/memory.h"
|
||||
#include "game/flag.h"
|
||||
#include "game/board/tutorial.h"
|
||||
#include "version.h"
|
||||
|
||||
s16 HuSysVWaitGet(s16 old);
|
||||
|
||||
|
|
@ -141,6 +142,11 @@ void WipeCreate(s16 mode, s16 type, s16 duration)
|
|||
|
||||
void WipeColorSet(u8 r, u8 g, u8 b)
|
||||
{
|
||||
#if VERSION_PAL
|
||||
if(r > 160 && g > 160 && b > 160) {
|
||||
r = g = b = 160;
|
||||
}
|
||||
#endif
|
||||
wipeData.color.r = r;
|
||||
wipeData.color.g = g;
|
||||
wipeData.color.b = b;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue