1544 lines
54 KiB
C
1544 lines
54 KiB
C
#include "ext_math.h"
|
|
#include "game/chrman.h"
|
|
#include "game/gamework.h"
|
|
#include "game/gamework_data.h"
|
|
#include "game/hsfdraw.h"
|
|
#include "game/hsfman.h"
|
|
#include "game/hsfmotion.h"
|
|
#include "game/objsub.h"
|
|
#include "game/pad.h"
|
|
#include "game/sprite.h"
|
|
#include "game/window.h"
|
|
#include "game/wipe.h"
|
|
|
|
#include "REL/ztardll.h"
|
|
|
|
extern s32 charVoiceGroupStat[8];
|
|
|
|
void fn_1_1774(void);
|
|
void fn_1_1CF0(void);
|
|
void fn_1_1DA0(void);
|
|
void fn_1_2350(void);
|
|
void fn_1_33B0(void);
|
|
void fn_1_40E4(void);
|
|
void fn_1_424(void);
|
|
void fn_1_4374(void);
|
|
void fn_1_4948(void);
|
|
void fn_1_51BC(s16 arg0);
|
|
s32 fn_1_524C(s32 arg0);
|
|
void fn_1_66F8(void);
|
|
void fn_1_7414(ModelData *model, Mtx matrix);
|
|
|
|
omObjData *lbl_1_bss_6C;
|
|
Process *lbl_1_bss_68;
|
|
s32 lbl_1_bss_64;
|
|
s32 lbl_1_bss_60;
|
|
s16 lbl_1_bss_5E;
|
|
s16 lbl_1_bss_5C;
|
|
|
|
s16 lbl_1_bss_5A;
|
|
s16 lbl_1_bss_58;
|
|
s32 lbl_1_bss_54;
|
|
s16 lbl_1_bss_52;
|
|
s16 lbl_1_bss_50;
|
|
s16 lbl_1_bss_4C[2];
|
|
s16 lbl_1_bss_4A;
|
|
s16 lbl_1_bss_48;
|
|
s16 lbl_1_bss_46;
|
|
s16 lbl_1_bss_44;
|
|
s16 lbl_1_bss_42;
|
|
s16 lbl_1_bss_3E[2];
|
|
s16 lbl_1_bss_36[4];
|
|
s16 lbl_1_bss_E[4][5];
|
|
s16 lbl_1_bss_C;
|
|
Process *lbl_1_bss_8;
|
|
s16 lbl_1_bss_4;
|
|
s32 lbl_1_bss_0;
|
|
|
|
void ObjectSetup(void)
|
|
{
|
|
s32 var_r31;
|
|
s32 var_r30;
|
|
|
|
OSReport("******* ZP ObjectSetup *********\n");
|
|
lbl_1_bss_68 = omInitObjMan(0x32, 0x2000);
|
|
lbl_1_bss_60 = 0;
|
|
lbl_1_bss_58 = omovlevtno;
|
|
_ClearFlag(0x10000);
|
|
_ClearFlag(0x10008);
|
|
GWSystem.mg_type = -1;
|
|
GWSystem.player_curr = 0;
|
|
lbl_1_bss_5E = -1;
|
|
mgBoardHostEnableF = 1;
|
|
var_r30 = omMgIndexGet(0x29);
|
|
lbl_1_bss_54 = GWMGAvailGet(var_r30 + 0x191);
|
|
Hu3DCameraCreate(1);
|
|
Hu3DCameraPerspectiveSet(1, 30.0f, 20.0f, 15000.0f, 1.2f);
|
|
Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f);
|
|
CRot.x = 0.0f;
|
|
CRot.y = 0.0f;
|
|
CRot.z = 0.0f;
|
|
Center.x = 0.0f;
|
|
Center.y = 90.0f;
|
|
Center.z = 30.0f;
|
|
CZoom = 1220.0f;
|
|
var_r31 = Hu3DGLightCreate(0.0f, 100.0f, 1000.0f, 0.0f, -0.5f, -1.0f, 0xFF, 0xFF, 0xFF);
|
|
Hu3DGLightInfinitytSet(var_r31);
|
|
HuPrcChildCreate(fn_1_424, 0x64, 0x3000, 0, lbl_1_bss_68);
|
|
HuPrcChildCreate(fn_1_66F8, 0xC8, 0x1000, 0, lbl_1_bss_68);
|
|
lbl_1_bss_6C = omAddObjEx(lbl_1_bss_68, 0x7FDA, 0, 0, -1, omOutView);
|
|
Hu3DBGColorSet(0, 0, 0);
|
|
HuWinInit(1);
|
|
if (lbl_1_bss_58 == 1) {
|
|
HuAudVoiceInit(-1);
|
|
}
|
|
if (lbl_1_bss_58 != 0) {
|
|
HuAudSndGrpSetSet(4);
|
|
HuAudSeqPlay(0x2E);
|
|
}
|
|
GWSystem.mg_type = -1;
|
|
mgPracticeEnableF = 1;
|
|
}
|
|
|
|
s16 lbl_1_data_22[4] = { 0x3A, 0xC8, 0x166, 0xC8 };
|
|
|
|
void fn_1_424(void)
|
|
{
|
|
Vec sp2C;
|
|
Vec sp20;
|
|
Vec sp14;
|
|
Vec sp8;
|
|
float var_f31;
|
|
float var_f30;
|
|
s16 var_r31;
|
|
s16 var_r30;
|
|
s16 var_r29;
|
|
s16 var_r28;
|
|
s16 var_r27;
|
|
s16 var_r26;
|
|
|
|
var_r26 = 0;
|
|
var_r27 = 0;
|
|
fn_1_7D6C(lbl_1_bss_68);
|
|
HuPrcVSleep();
|
|
HuDataDirClose(DATADIR_MPEX);
|
|
lbl_1_bss_5A = 0;
|
|
if (mgQuitExtraF != 0) {
|
|
mgQuitExtraF = 0;
|
|
var_r26 = 1;
|
|
lbl_1_bss_58 = 0;
|
|
}
|
|
else {
|
|
if (lbl_1_bss_58 == 1) {
|
|
lbl_1_bss_5A = 0;
|
|
goto block_92;
|
|
}
|
|
if (lbl_1_bss_58 == 2) {
|
|
lbl_1_bss_5A = 1;
|
|
goto block_93;
|
|
}
|
|
GWPlayerCfg[0].group = GWPlayerCfg[1].group = 0;
|
|
GWPlayerCfg[2].group = GWPlayerCfg[3].group = 1;
|
|
}
|
|
block_7:
|
|
fn_1_1774();
|
|
if (lbl_1_bss_54 == 0) {
|
|
HuSprTPLvlSet(lbl_1_bss_4C[1], 0, 0.5f);
|
|
HuSprTPLvlSet(lbl_1_bss_4C[1], 2, 0.5f);
|
|
}
|
|
if (var_r26 == 0) {
|
|
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30);
|
|
HuPrcSleep(0xA);
|
|
sp2C.x = 510.0f;
|
|
sp2C.y = 80.0f;
|
|
sp2C.z = 1500.0f;
|
|
Hu3D2Dto3D(&sp2C, 1, &sp8);
|
|
sp2C.x = 200.0f;
|
|
sp2C.y = 400.0f;
|
|
sp2C.z = 100.0f;
|
|
Hu3D2Dto3D(&sp2C, 1, &sp20);
|
|
VECSubtract(&sp8, &sp20, &sp14);
|
|
for (var_r31 = 0; var_r31 <= 0x1E; var_r31++) {
|
|
if (var_r31 <= 0x14) {
|
|
var_f31 = var_r31 / 20.0;
|
|
HuSprGrpPosSet(lbl_1_bss_52, 288.0f, 80.0 - (180.0 * (1.0 - sind((90.0f * var_f31)))));
|
|
HuSprGrpPosSet(lbl_1_bss_50, 288.0f, 80.0 - (180.0 * (1.0 - sind((90.0f * var_f31)))));
|
|
HuSprGrpPosSet(lbl_1_bss_4C[0], 138.0 - (300.0 * (1.0 - sind((90.0f * var_f31)))), 240.0f);
|
|
HuSprGrpPosSet(lbl_1_bss_4C[1], 438.0 + (300.0 * (1.0 - sind((90.0f * var_f31)))), 240.0f);
|
|
}
|
|
var_f31 = var_r31 / 30.0;
|
|
VECScale(&sp14, &sp2C, var_f31);
|
|
VECAdd(&sp2C, &sp20, &sp2C);
|
|
Hu3DModelRotSet(lbl_1_bss_42, 0.0f, -10.0f, -15.0f);
|
|
Hu3DModelPosSetV(lbl_1_bss_42, &sp2C);
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
else {
|
|
sp2C.x = 510.0f;
|
|
sp2C.y = 80.0f;
|
|
sp2C.z = 1500.0f;
|
|
Hu3D2Dto3D(&sp2C, 1, &sp20);
|
|
Hu3DModelRotSet(lbl_1_bss_42, 0.0f, -10.0f, -15.0f);
|
|
Hu3DModelPosSetV(lbl_1_bss_42, &sp20);
|
|
var_f31 = var_r31 / 20.0;
|
|
HuSprGrpPosSet(lbl_1_bss_52, 288.0f, 80.0f);
|
|
HuSprGrpPosSet(lbl_1_bss_50, 288.0f, 80.0f);
|
|
HuSprGrpPosSet(lbl_1_bss_4C[0], 138.0f, 240.0f);
|
|
HuSprGrpPosSet(lbl_1_bss_4C[1], 438.0f, 240.0f);
|
|
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20);
|
|
while (WipeStatGet() != 0) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
loop_19:
|
|
fn_1_11020();
|
|
fn_1_11264(MAKE_MESSID(0x33, 0x24), 0, 0);
|
|
if (lbl_1_bss_5A == 0) {
|
|
fn_1_11264(MAKE_MESSID(0x33, 0x25), 0, 1);
|
|
}
|
|
else {
|
|
fn_1_11264(MAKE_MESSID(0x33, 0x2A), 0, 1);
|
|
}
|
|
fn_1_11708(MAKE_MESSID(0x33, 0x8D));
|
|
for (var_r31 = 0; var_r31 <= 0x0A; var_r31++) {
|
|
var_f31 = var_r31 / 10.0;
|
|
|
|
HuSprTPLvlSet(lbl_1_bss_4A, 0, var_f31);
|
|
HuSprGrpPosSet(lbl_1_bss_4A, lbl_1_data_22[lbl_1_bss_5A * 2], lbl_1_data_22[(lbl_1_bss_5A * 2) + 1]);
|
|
HuPrcVSleep();
|
|
}
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
if ((HuPadStkX[0] / 10) != 0) {
|
|
var_r29 = lbl_1_bss_5A;
|
|
if (HuPadStkX[0] < 0 && lbl_1_bss_5A > 0) {
|
|
lbl_1_bss_5A--;
|
|
}
|
|
if (HuPadStkX[0] > 0 && lbl_1_bss_5A < 1) {
|
|
lbl_1_bss_5A++;
|
|
}
|
|
if (lbl_1_bss_5A != var_r29) {
|
|
HuAudFXPlay(0);
|
|
for (var_r31 = 0; var_r31 <= 0xA; var_r31++) {
|
|
var_f31 = sind((90.0 * (var_r31 / 10.0)));
|
|
var_f30 = lbl_1_data_22[var_r29 * 2] + (var_f31 * (lbl_1_data_22[lbl_1_bss_5A * 2] - lbl_1_data_22[var_r29 * 2]));
|
|
HuSprGrpPosSet(lbl_1_bss_4A, var_f30, lbl_1_data_22[(lbl_1_bss_5A * 2) + 1]);
|
|
HuPrcVSleep();
|
|
}
|
|
if (lbl_1_bss_5A == 0) {
|
|
fn_1_11264(MAKE_MESSID(0x33, 0x25), 0, 1);
|
|
}
|
|
else {
|
|
fn_1_11264(MAKE_MESSID(0x33, 0x2A), 0, 1);
|
|
}
|
|
}
|
|
}
|
|
if (HuPadBtnDown[0] & PAD_BUTTON_B) {
|
|
HuAudFXPlay(3);
|
|
fn_1_111E0();
|
|
fn_1_1190C();
|
|
lbl_1_bss_60 = 1;
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
if (HuPadBtnDown[0] & PAD_BUTTON_A) {
|
|
if (lbl_1_bss_5A != 1 || lbl_1_bss_54 != 0) {
|
|
break;
|
|
}
|
|
HuAudFXPlay(4);
|
|
}
|
|
}
|
|
HuAudFXPlay(2);
|
|
fn_1_111E0();
|
|
fn_1_1190C();
|
|
lbl_1_bss_5E = -1;
|
|
var_r29 = lbl_1_bss_5A ^ 1;
|
|
for (var_r31 = 0; var_r31 <= 0x14; var_r31++) {
|
|
if (var_r31 <= 0xA) {
|
|
var_f31 = var_r31 / 10.0;
|
|
HuSprTPLvlSet(lbl_1_bss_4A, 0, 1.0 - var_f31);
|
|
}
|
|
var_f31 = 1.0 - (var_r31 / 20.0);
|
|
|
|
HuSprGrpScaleSet(lbl_1_bss_4C[var_r29], var_f31, var_f31);
|
|
if (lbl_1_bss_5A == 0) {
|
|
var_f31 = -var_f31;
|
|
}
|
|
HuSprGrpPosSet(lbl_1_bss_4C[lbl_1_bss_5A], 288.0f + (150.0f * var_f31), 240.0f);
|
|
HuPrcVSleep();
|
|
}
|
|
for (var_r27 = 0;;) {
|
|
if (lbl_1_bss_5A == 0) {
|
|
var_r30 = fn_1_97D0(2, var_r27);
|
|
}
|
|
else {
|
|
var_r30 = fn_1_97D0(3, var_r27);
|
|
if (var_r30 != 0) {
|
|
mgTypeCurr = 2;
|
|
var_r30 = fn_1_524C(1);
|
|
if (var_r30 == 0) {
|
|
var_r27 = 1;
|
|
continue;
|
|
}
|
|
}
|
|
}
|
|
if (var_r30 == 0) {
|
|
for (var_r31 = 0; var_r31 <= 0x14; var_r31++) {
|
|
var_f31 = var_r31 / 20.0;
|
|
HuSprGrpScaleSet(lbl_1_bss_4C[var_r29], var_f31, var_f31);
|
|
if (lbl_1_bss_5A != 0) {
|
|
var_f31 = -var_f31;
|
|
}
|
|
HuSprGrpPosSet(lbl_1_bss_4C[lbl_1_bss_5A], 288.0f - (150.0f * var_f31), 240.0f);
|
|
var_f31 = var_r31 / 20.0;
|
|
if (lbl_1_bss_5A == 0) {
|
|
var_r28 = -1;
|
|
}
|
|
else {
|
|
var_r28 = 1;
|
|
}
|
|
HuSprGrpPosSet(lbl_1_bss_46, 288.0 + (var_r28 * (400.0 * (1.0 - cosd((90.0f * var_f31))))), 340.0f);
|
|
HuPrcVSleep();
|
|
}
|
|
goto loop_19;
|
|
}
|
|
var_r27 = 1;
|
|
fn_1_1DA0();
|
|
for (var_r31 = 0; var_r31 <= 0x14; var_r31++) {
|
|
var_f31 = var_r31 / 20.0;
|
|
if (lbl_1_bss_5A == 0) {
|
|
var_r28 = -1;
|
|
}
|
|
else {
|
|
var_r28 = 1;
|
|
}
|
|
HuSprGrpPosSet(lbl_1_bss_46, 288.0 + (var_r28 * (400.0 * (1.0 - sind((90.0f * var_f31))))), 340.0f);
|
|
HuPrcVSleep();
|
|
}
|
|
if (lbl_1_bss_5A == 0) {
|
|
fn_1_40E4();
|
|
}
|
|
if (lbl_1_bss_4 == 0) {
|
|
lbl_1_bss_4 = 1;
|
|
HuPrcChildCreate(fn_1_7C00, 0x64, 0x2000, 0, lbl_1_bss_68);
|
|
}
|
|
fn_1_11020();
|
|
fn_1_11264(MAKE_MESSID(0x33, 0x2C), 0, 0);
|
|
var_r30 = fn_1_11390(0);
|
|
if (var_r30 != -1) {
|
|
if (var_r30 != 1) {
|
|
break;
|
|
}
|
|
}
|
|
fn_1_111E0();
|
|
for (var_r31 = 0; var_r31 <= 0xA; var_r31++) {
|
|
var_f31 = cosd((90.0 * (var_r31 / 10.0)));
|
|
HuSprGrpScaleSet(lbl_1_bss_46, 1.0f, var_f31);
|
|
HuPrcVSleep();
|
|
}
|
|
HuSprGrpKill(lbl_1_bss_46);
|
|
}
|
|
fn_1_111E0();
|
|
fn_1_1190C();
|
|
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20);
|
|
while (WipeStatGet() != 0) {
|
|
HuPrcVSleep();
|
|
}
|
|
mgBattleStarMax = 0;
|
|
HuSprGrpKill(lbl_1_bss_48);
|
|
HuSprGrpKill(lbl_1_bss_52);
|
|
HuSprGrpKill(lbl_1_bss_50);
|
|
HuSprGrpKill(lbl_1_bss_4C[0]);
|
|
HuSprGrpKill(lbl_1_bss_4C[1]);
|
|
HuSprGrpKill(lbl_1_bss_4A);
|
|
HuSprGrpKill(lbl_1_bss_46);
|
|
Hu3DModelKill(lbl_1_bss_42);
|
|
HuPrcKill(lbl_1_bss_8);
|
|
while (lbl_1_bss_4 != 0) {
|
|
HuPrcVSleep();
|
|
}
|
|
if (lbl_1_bss_5A == 0) {
|
|
block_92:
|
|
fn_1_2350();
|
|
}
|
|
else {
|
|
block_93:
|
|
fn_1_4374();
|
|
}
|
|
var_r26 = 1;
|
|
goto block_7;
|
|
}
|
|
|
|
void fn_1_1774(void)
|
|
{
|
|
SeqWork work;
|
|
s16 var_r31;
|
|
s16 var_r30;
|
|
char *var_r29;
|
|
s16 var_r28;
|
|
AnimData *var_r27;
|
|
char *var_r26;
|
|
AnimData *var_r25;
|
|
AnimData *var_r24;
|
|
AnimData *var_r23;
|
|
|
|
var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 3));
|
|
lbl_1_bss_48 = HuSprGrpCreate(1);
|
|
var_r31 = HuSprCreate(var_r27, 0xC8, 0);
|
|
HuSprGrpMemberSet(lbl_1_bss_48, 0, var_r31);
|
|
HuSprGrpDrawNoSet(lbl_1_bss_48, 0x7F);
|
|
HuSprGrpPosSet(lbl_1_bss_48, 288.0f, 240.0f);
|
|
for (var_r30 = 0; var_r30 < 0x10; var_r30++) {
|
|
work.sprite[var_r30] = work.spr_grp[var_r30] = -1;
|
|
}
|
|
var_r29 = MessData_MesPtrGet(messDataPtr, MAKE_MESSID(0x17, 0x21));
|
|
for (var_r26 = var_r29; *var_r29 != 0; var_r29++) {
|
|
if (*var_r29 == 0xA) {
|
|
*var_r29 = 0x10;
|
|
}
|
|
}
|
|
lbl_1_bss_52 = work.spr_grp[fn_1_7754(&work, var_r26)];
|
|
HuSprGrpPosSet(lbl_1_bss_52, 288.0f, -300.0f);
|
|
HuSprGrpDrawNoSet(lbl_1_bss_52, 0x7F);
|
|
var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 4));
|
|
lbl_1_bss_50 = HuSprGrpCreate(1);
|
|
var_r31 = HuSprCreate(var_r27, 0x64, 0);
|
|
HuSprGrpMemberSet(lbl_1_bss_50, 0, var_r31);
|
|
HuSprGrpPosSet(lbl_1_bss_50, 288.0f, -300.0f);
|
|
HuSprGrpDrawNoSet(lbl_1_bss_50, 0x7F);
|
|
var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 5));
|
|
var_r25 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 14));
|
|
var_r24 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 64));
|
|
var_r23 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 15));
|
|
for (var_r30 = 0; var_r30 < 2; var_r30++) {
|
|
var_r28 = HuSprGrpCreate(4);
|
|
lbl_1_bss_4C[var_r30] = var_r28;
|
|
var_r31 = HuSprCreate(var_r27, 0x64, var_r30);
|
|
HuSprGrpMemberSet(var_r28, 0, var_r31);
|
|
var_r31 = HuSprCreate(var_r25, 0x6E, 0);
|
|
HuSprGrpMemberSet(var_r28, 1, var_r31);
|
|
var_r31 = HuSprCreate(var_r24, 0x78, 0);
|
|
HuSprGrpMemberSet(var_r28, 2, var_r31);
|
|
HuSprScaleSet(var_r28, 2, 0.5f, 0.5f);
|
|
var_r31 = HuSprCreate(var_r23, 0x82, 0);
|
|
HuSprGrpMemberSet(var_r28, 3, var_r31);
|
|
HuSprGrpPosSet(var_r28, 288.0f, -300.0f);
|
|
HuSprGrpDrawNoSet(var_r28, 0x7F);
|
|
}
|
|
var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 6));
|
|
lbl_1_bss_4A = HuSprGrpCreate(1);
|
|
var_r31 = HuSprCreate(var_r27, 0x32, 0);
|
|
HuSprGrpMemberSet(lbl_1_bss_4A, 0, var_r31);
|
|
HuSprGrpPosSet(lbl_1_bss_4A, 288.0f, -300.0f);
|
|
lbl_1_bss_42 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_ZTAR, 0));
|
|
lbl_1_bss_3E[0] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 1));
|
|
lbl_1_bss_3E[1] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 2));
|
|
Hu3DMotionSet(lbl_1_bss_42, lbl_1_bss_3E[0]);
|
|
Hu3DModelAttrSet(lbl_1_bss_42, HU3D_MOTATTR_LOOP);
|
|
Hu3DModelPosSet(lbl_1_bss_42, 0.0f, 1000.0f, 0.0f);
|
|
lbl_1_bss_8 = HuPrcChildCreate(fn_1_1CF0, 0x64, 0x2000, 0, lbl_1_bss_68);
|
|
}
|
|
|
|
void fn_1_1CF0(void)
|
|
{
|
|
float var_f31 = 0.0f;
|
|
ModelData *var_r31 = &Hu3DData[lbl_1_bss_42];
|
|
|
|
while (TRUE) {
|
|
var_r31->pos.y += sind(var_f31);
|
|
var_f31 += 3.0f;
|
|
if (var_f31 > 360.0f) {
|
|
var_f31 -= 360.0f;
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_1DA0(void)
|
|
{
|
|
s16 spC[4];
|
|
s16 sp8[2];
|
|
s16 var_r31;
|
|
AnimData *var_r30;
|
|
s16 var_r29;
|
|
s16 var_r28;
|
|
s16 var_r27;
|
|
|
|
sp8[0] = 0;
|
|
sp8[1] = 2;
|
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
|
spC[sp8[GWPlayerCfg[var_r31].group]++] = var_r31;
|
|
}
|
|
if (lbl_1_bss_5A == 0) {
|
|
var_r28 = HuSprGrpCreate(5);
|
|
lbl_1_bss_46 = var_r28;
|
|
var_r30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 17));
|
|
var_r29 = HuSprCreate(var_r30, 0x78, 0);
|
|
HuSprGrpMemberSet(var_r28, 0, var_r29);
|
|
for (var_r31 = 0; var_r31 < 2; var_r31++) {
|
|
var_r30 = HuSprAnimReadFile(GWPlayerCfg[spC[var_r31]].character + DATA_MAKE_NUM(DATADIR_ZTAR, 18));
|
|
var_r29 = HuSprCreate(var_r30, 0x6E, 0);
|
|
HuSprGrpMemberSet(var_r28, (var_r31 * 2) + 1, var_r29);
|
|
HuSprPosSet(var_r28, (var_r31 * 2) + 1, (var_r31 * 0x30) - 0x18, -4.0f);
|
|
if (GWPlayerCfg[spC[var_r31]].iscom == 0) {
|
|
var_r30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 32));
|
|
var_r29 = HuSprCreate(var_r30, 0x64, spC[var_r31]);
|
|
}
|
|
else {
|
|
var_r30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 33));
|
|
var_r29 = HuSprCreate(var_r30, 0x64, GWPlayerCfg[spC[var_r31]].diff);
|
|
}
|
|
HuSprGrpMemberSet(var_r28, (var_r31 * 2) + 2, var_r29);
|
|
HuSprPosSet(var_r28, (var_r31 * 2) + 2, (var_r31 * 0x30) - 0x18, 20.0f);
|
|
}
|
|
}
|
|
else {
|
|
var_r28 = HuSprGrpCreate(0xA);
|
|
lbl_1_bss_46 = var_r28;
|
|
var_r30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 16));
|
|
var_r29 = HuSprCreate(var_r30, 0x78, 0);
|
|
HuSprGrpMemberSet(var_r28, 0, var_r29);
|
|
var_r27 = -0x4B;
|
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
|
var_r30 = HuSprAnimReadFile(GWPlayerCfg[spC[var_r31]].character + DATA_MAKE_NUM(DATADIR_ZTAR, 18));
|
|
var_r29 = HuSprCreate(var_r30, 0x6E, 0);
|
|
HuSprGrpMemberSet(var_r28, (var_r31 * 2) + 1, var_r29);
|
|
HuSprPosSet(var_r28, (var_r31 * 2) + 1, var_r27, 0.0f);
|
|
if (GWPlayerCfg[spC[var_r31]].iscom == 0) {
|
|
var_r30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 32));
|
|
var_r29 = HuSprCreate(var_r30, 0x64, spC[var_r31]);
|
|
}
|
|
else {
|
|
var_r30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 33));
|
|
var_r29 = HuSprCreate(var_r30, 0x64, GWPlayerCfg[spC[var_r31]].diff);
|
|
}
|
|
HuSprGrpMemberSet(var_r28, (var_r31 * 2) + 2, var_r29);
|
|
HuSprPosSet(var_r28, (var_r31 * 2) + 2, var_r27, 22.0f);
|
|
var_r27 += 0x2A;
|
|
if (var_r31 == 1) {
|
|
var_r27 += 0x18;
|
|
}
|
|
}
|
|
var_r30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 10));
|
|
var_r29 = HuSprCreate(var_r30, 0x5A, 0);
|
|
HuSprGrpMemberSet(var_r28, 9, var_r29);
|
|
}
|
|
HuSprGrpPosSet(var_r28, 0.0f, -100.0f);
|
|
}
|
|
|
|
void fn_1_2350(void)
|
|
{
|
|
s16 spC[4];
|
|
s16 sp8[2];
|
|
float var_f31;
|
|
s16 var_r31;
|
|
|
|
sp8[0] = 0;
|
|
sp8[1] = 2;
|
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
|
spC[sp8[GWPlayerCfg[var_r31].group]++] = var_r31;
|
|
}
|
|
if (lbl_1_bss_58 != 0) {
|
|
if (GWPlayerCoinWinGet(spC[0]) > 0) {
|
|
mgBattleStarMax++;
|
|
}
|
|
}
|
|
fn_1_33B0();
|
|
Hu3DModelPosSet(lbl_1_bss_36[2], 500.0f, 0.0f, 0.0f);
|
|
Hu3DModelPosSet(lbl_1_bss_36[3], 500.0f, 0.0f, 0.0f);
|
|
HuSprScaleSet(lbl_1_bss_50, 2, 0.0f, 0.0f);
|
|
if (lbl_1_bss_58 != 0) {
|
|
if (GWPlayerCoinWinGet(spC[0]) == 0) {
|
|
mgBattleStarMax++;
|
|
}
|
|
HuSprBankSet(lbl_1_bss_50, 1, mgBattleStarMax);
|
|
HuSprScaleSet(lbl_1_bss_50, 1, 1.0f, 1.0f);
|
|
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20);
|
|
while (WipeStatGet() != 0) {
|
|
HuPrcVSleep();
|
|
}
|
|
HuPrcSleep(0x1E);
|
|
if (GWPlayerCoinWinGet(spC[0]) > 0) {
|
|
HuSprAttrReset(lbl_1_bss_44, 6, 4);
|
|
HuSprPosSet(lbl_1_bss_44, 6, ((mgBattleStarMax - 1) << 5) + 0x46, 340.0f);
|
|
for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) {
|
|
var_f31 = var_r31 / 60.0;
|
|
HuSprTPLvlSet(lbl_1_bss_44, 6, var_f31);
|
|
var_f31 = 1.0 + (5.0 * cosd((90.0f * var_f31)));
|
|
HuSprScaleSet(lbl_1_bss_44, 6, var_f31, var_f31);
|
|
if (var_r31 == 0x14) {
|
|
HuAudFXPlay(0x9A);
|
|
if (mgBattleStarMax < 6) {
|
|
Hu3DMotionShiftSet(lbl_1_bss_36[0], lbl_1_bss_E[0][2], 0.0f, 10.0f, HU3D_MOTATTR_NONE);
|
|
Hu3DMotionShiftSet(lbl_1_bss_36[1], lbl_1_bss_E[1][2], 0.0f, 10.0f, HU3D_MOTATTR_NONE);
|
|
}
|
|
else {
|
|
Hu3DMotionShiftSet(lbl_1_bss_36[0], lbl_1_bss_E[0][3], 0.0f, 10.0f, HU3D_MOTATTR_NONE);
|
|
Hu3DMotionShiftSet(lbl_1_bss_36[1], lbl_1_bss_E[1][3], 0.0f, 10.0f, HU3D_MOTATTR_NONE);
|
|
}
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
HuAudFXPlay(8);
|
|
if (mgBattleStarMax >= 6) {
|
|
HuPrcSleep(0x3C);
|
|
var_r31 = omMgIndexGet(0x29);
|
|
lbl_1_bss_54 = 1;
|
|
fn_1_11020();
|
|
fn_1_11338(GWPlayerCfg[spC[0]].character, 0);
|
|
fn_1_11338(GWPlayerCfg[spC[1]].character, 1);
|
|
fn_1_11264(MAKE_MESSID(0x33, 0xA0), 0, 0);
|
|
if (GWMGAvailGet(var_r31 + 0x191) == 0) {
|
|
GWMGAvailSet(var_r31 + 0x191);
|
|
GWGameStat.present[0x37] = 1;
|
|
fn_1_11264(MAKE_MESSID(0x33, 0x29), 0, 0);
|
|
}
|
|
fn_1_111E0();
|
|
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
|
while (WipeStatGet() != 0) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
else {
|
|
Hu3DMotionShiftSet(lbl_1_bss_36[0], lbl_1_bss_E[0][0], 0.0f, 10.0f, HU3D_MOTATTR_LOOP);
|
|
Hu3DMotionShiftSet(lbl_1_bss_36[1], lbl_1_bss_E[1][0], 0.0f, 10.0f, HU3D_MOTATTR_LOOP);
|
|
for (var_r31 = 0; var_r31 <= 0xA; var_r31++) {
|
|
var_f31 = 1.0 - (var_r31 / 10.0);
|
|
HuSprScaleSet(lbl_1_bss_50, 1, var_f31, var_f31);
|
|
HuPrcVSleep();
|
|
}
|
|
HuPrcSleep(0x3C);
|
|
goto block_39;
|
|
}
|
|
}
|
|
else {
|
|
Hu3DMotionShiftSet(lbl_1_bss_36[0], lbl_1_bss_E[0][4], 0.0f, 10.0f, HU3D_MOTATTR_NONE);
|
|
Hu3DMotionShiftSet(lbl_1_bss_36[1], lbl_1_bss_E[1][4], 0.0f, 10.0f, HU3D_MOTATTR_NONE);
|
|
HuPrcSleep(0xB4);
|
|
WipeColorSet(0, 0, 0);
|
|
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
|
while (WipeStatGet() != 0) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20);
|
|
while (WipeStatGet() != 0) {
|
|
HuPrcVSleep();
|
|
}
|
|
HuPrcSleep(0x1E);
|
|
block_39:
|
|
Hu3DMotionSet(lbl_1_bss_36[2], lbl_1_bss_E[2][1]);
|
|
Hu3DMotionSet(lbl_1_bss_36[3], lbl_1_bss_E[3][1]);
|
|
Hu3DModelRotSet(lbl_1_bss_36[2], 0.0f, -90.0f, 0.0f);
|
|
Hu3DModelRotSet(lbl_1_bss_36[3], 0.0f, -90.0f, 0.0f);
|
|
HuSprBankSet(lbl_1_bss_50, 1, mgBattleStarMax + 1);
|
|
for (var_r31 = 0; var_r31 <= 0x1E; var_r31++) {
|
|
var_f31 = 1.0 - sind((90.0 * (var_r31 / 30.0)));
|
|
Hu3DModelPosSet(lbl_1_bss_36[2], 125.0f + (400.0f * var_f31), 0.0f, 0.0f);
|
|
Hu3DModelPosSet(lbl_1_bss_36[3], 275.0f + (400.0f * var_f31), 0.0f, 0.0f);
|
|
if (var_r31 == 0x19) {
|
|
Hu3DMotionShiftSet(lbl_1_bss_36[2], lbl_1_bss_E[2][0], 0.0f, 10.0f, HU3D_MOTATTR_LOOP);
|
|
Hu3DMotionShiftSet(lbl_1_bss_36[3], lbl_1_bss_E[3][0], 0.0f, 10.0f, HU3D_MOTATTR_LOOP);
|
|
}
|
|
if ((GWPlayerCfg[2].character < 8) && ((var_r31 % 5) == 0)) {
|
|
HuAudFXPlay(GWPlayerCfg[2].character + 0xD5);
|
|
}
|
|
if ((GWPlayerCfg[3].character < 8) && (((var_r31 + 3) % 5) == 0)) {
|
|
HuAudFXPlay(GWPlayerCfg[3].character + 0xD5);
|
|
}
|
|
if (var_r31 > 0x14) {
|
|
var_f31 = 1.0 - ((var_r31 - 0x14) / 10.0);
|
|
Hu3DModelRotSet(lbl_1_bss_36[2], 0.0f, 90.0f * -var_f31, 0.0f);
|
|
Hu3DModelRotSet(lbl_1_bss_36[3], 0.0f, 90.0f * -var_f31, 0.0f);
|
|
}
|
|
if (var_r31 <= 0x14) {
|
|
var_f31 = 1.2 * sind((90.0 * (var_r31 / 20.0)));
|
|
HuSprScaleSet(lbl_1_bss_50, 1, var_f31, var_f31);
|
|
}
|
|
else if (var_r31 > 0x14) {
|
|
var_f31 = 1.0 + (0.2 * cosd((90.0 * ((var_r31 - 0x14) / 10.0))));
|
|
HuSprScaleSet(lbl_1_bss_50, 1, var_f31, var_f31);
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
HuAudFXPlay(0x355);
|
|
for (var_r31 = 0; var_r31 <= 0x14; var_r31++) {
|
|
var_f31 = 1.0 + (5.0 * cosd((90.0 * (var_r31 / 20.0))));
|
|
HuSprScaleSet(lbl_1_bss_50, 2, var_f31, var_f31);
|
|
HuSprTPLvlSet(lbl_1_bss_50, 2, var_r31 / 20.0);
|
|
HuPrcVSleep();
|
|
}
|
|
fn_1_114EC(MAKE_MESSID(0x33, 0x4F), 1);
|
|
while (TRUE) {
|
|
if ((*HuPadBtnDown & 0x100) != 0) {
|
|
HuAudFXPlay(2);
|
|
if (mgBattleStarMax >= 5) {
|
|
GWSystem.mg_type = 0;
|
|
}
|
|
fn_1_51BC(1);
|
|
}
|
|
if ((*HuPadBtnDown & 0x200) != 0) {
|
|
break;
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
HuAudFXPlay(3);
|
|
fn_1_1190C();
|
|
WipeColorSet(0, 0, 0);
|
|
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20);
|
|
while (WipeStatGet() != 0) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
HuSprGrpKill(lbl_1_bss_48);
|
|
HuSprGrpKill(lbl_1_bss_50);
|
|
HuSprGrpKill(lbl_1_bss_44);
|
|
Hu3DModelKill(lbl_1_bss_42);
|
|
HuPrcKill(lbl_1_bss_8);
|
|
Hu3DModelKill(lbl_1_bss_C);
|
|
CharModelKill(-1);
|
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
|
if (GWPlayerCfg[spC[var_r31]].character >= 8) {
|
|
Hu3DModelKill(lbl_1_bss_36[var_r31]);
|
|
Hu3DMotionKill(lbl_1_bss_E[var_r31][0]);
|
|
Hu3DMotionKill(lbl_1_bss_E[var_r31][1]);
|
|
}
|
|
}
|
|
lbl_1_bss_58 = 0;
|
|
lbl_1_bss_5A = 0;
|
|
}
|
|
|
|
s32 lbl_1_data_2C[6] = {
|
|
DATA_MAKE_NUM(DATADIR_ZTAR, 59),
|
|
DATA_MAKE_NUM(DATADIR_ZTAR, 34),
|
|
DATA_MAKE_NUM(DATADIR_ZTAR, 39),
|
|
DATA_MAKE_NUM(DATADIR_ZTAR, 44),
|
|
DATA_MAKE_NUM(DATADIR_ZTAR, 49),
|
|
DATA_MAKE_NUM(DATADIR_ZTAR, 54),
|
|
};
|
|
|
|
u8 lbl_1_data_44[6] = { 0, 1, 1, 2, 2, 3 };
|
|
|
|
void fn_1_33B0(void)
|
|
{
|
|
Vec sp38;
|
|
Vec sp2C;
|
|
Vec sp20;
|
|
Vec sp14;
|
|
s16 spC[4];
|
|
s16 sp8[2];
|
|
s16 var_r31;
|
|
s16 var_r30;
|
|
AnimData *var_r29;
|
|
s16 var_r28;
|
|
s16 var_r27;
|
|
s16 var_r26;
|
|
s16 var_r25;
|
|
s16 var_r24;
|
|
AnimData *var_r23;
|
|
|
|
sp8[0] = 0;
|
|
sp8[1] = 2;
|
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
|
spC[sp8[GWPlayerCfg[var_r31].group]++] = var_r31;
|
|
}
|
|
var_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 3));
|
|
lbl_1_bss_48 = HuSprGrpCreate(1);
|
|
var_r30 = HuSprCreate(var_r29, 0xC8, 0);
|
|
HuSprGrpMemberSet(lbl_1_bss_48, 0, var_r30);
|
|
HuSprGrpDrawNoSet(lbl_1_bss_48, 0x7F);
|
|
HuSprGrpPosSet(lbl_1_bss_48, 288.0f, 240.0f);
|
|
lbl_1_bss_50 = HuSprGrpCreate(3);
|
|
var_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 12));
|
|
var_r30 = HuSprCreate(var_r29, 0x78, 0);
|
|
HuSprGrpMemberSet(lbl_1_bss_50, 0, var_r30);
|
|
HuSprPosSet(lbl_1_bss_50, 0, 288.0f, 80.0f);
|
|
var_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 11));
|
|
if ((mgBattleStarMax + 1) >= 7) {
|
|
var_r30 = HuSprCreate(var_r29, 0x64, 6);
|
|
}
|
|
else {
|
|
var_r30 = HuSprCreate(var_r29, 0x64, mgBattleStarMax + 1);
|
|
}
|
|
HuSprGrpMemberSet(lbl_1_bss_50, 1, var_r30);
|
|
HuSprPosSet(lbl_1_bss_50, 1, VERSION_JP ? 234.0f : 342.0f, 80.0f);
|
|
HuSprScaleSet(lbl_1_bss_50, 1, 0.0f, 0.0f);
|
|
HuSprGrpDrawNoSet(lbl_1_bss_50, 0x7F);
|
|
var_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 9));
|
|
var_r30 = HuSprCreate(var_r29, 0x64, 0);
|
|
HuSprGrpMemberSet(lbl_1_bss_50, 2, var_r30);
|
|
HuSprPosSet(lbl_1_bss_50, 2, 288.0f, 240.0f);
|
|
HuSprDrawNoSet(lbl_1_bss_50, 2, 0);
|
|
HuSprGrpPosSet(lbl_1_bss_50, 0.0f, 0.0f);
|
|
var_r27 = HuSprGrpCreate(7);
|
|
lbl_1_bss_44 = var_r27;
|
|
var_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 8));
|
|
var_r23 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 7));
|
|
var_r24 = mgBattleStarMax;
|
|
if (GWPlayerCoinWinGet(spC[0]) > 0) {
|
|
var_r24--;
|
|
}
|
|
for (var_r31 = 0; var_r31 < 6; var_r31++) {
|
|
if (var_r31 >= var_r24) {
|
|
var_r30 = HuSprCreate(var_r23, 0x64, 0);
|
|
}
|
|
else {
|
|
var_r30 = HuSprCreate(var_r29, 0x64, 0);
|
|
}
|
|
HuSprGrpMemberSet(var_r27, var_r31, var_r30);
|
|
HuSprPosSet(var_r27, var_r31, (var_r31 << 5) + 0x46, 340.0f);
|
|
}
|
|
var_r30 = HuSprCreate(var_r29, 0x5A, 0);
|
|
HuSprGrpMemberSet(var_r27, 6, var_r30);
|
|
HuSprAttrSet(var_r27, 6, 4);
|
|
HuSprGrpPosSet(var_r27, 0.0f, 0.0f);
|
|
sp38.x = 510.0f;
|
|
sp38.y = 80.0f;
|
|
sp38.z = 1500.0f;
|
|
Hu3D2Dto3D(&sp38, 1, &sp2C);
|
|
lbl_1_bss_42 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_ZTAR, 0));
|
|
lbl_1_bss_3E[0] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 1));
|
|
lbl_1_bss_3E[1] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 2));
|
|
Hu3DModelAttrSet(lbl_1_bss_42, HU3D_MOTATTR_LOOP);
|
|
Hu3DModelPosSetV(lbl_1_bss_42, &sp2C);
|
|
Hu3DModelRotSet(lbl_1_bss_42, 0.0f, -10.0f, -15.0f);
|
|
Hu3DMotionSet(lbl_1_bss_42, lbl_1_bss_3E[0]);
|
|
lbl_1_bss_8 = HuPrcChildCreate(fn_1_1CF0, 0x64, 0x2000, 0, lbl_1_bss_68);
|
|
GWPlayerCfg[spC[2]].character = mgIndexList[mgBattleStarMax * 2];
|
|
GWPlayerCfg[spC[3]].character = mgIndexList[mgBattleStarMax * 2 + 1];
|
|
GWPlayerCfg[spC[0]].group = GWPlayerCfg[spC[1]].group = 0;
|
|
GWPlayerCfg[spC[2]].group = GWPlayerCfg[spC[3]].group = 1;
|
|
GWPlayerCfg[spC[2]].iscom = GWPlayerCfg[spC[3]].iscom = 1;
|
|
GWPlayerCfg[spC[2]].diff = GWPlayerCfg[spC[3]].diff = lbl_1_data_44[mgBattleStarMax];
|
|
var_r26 = -0x113;
|
|
if (lbl_1_bss_58 != 0) {
|
|
CharKill(-1);
|
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
|
if (GWPlayerCfg[spC[var_r31]].character < 8) {
|
|
CharARAMOpen(GWPlayerCfg[spC[var_r31]].character);
|
|
}
|
|
}
|
|
}
|
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
|
var_r28 = GWPlayerCfg[spC[var_r31]].character;
|
|
if (var_r28 != 0xFF) {
|
|
if (var_r28 < 8) {
|
|
lbl_1_bss_36[var_r31] = CharModelCreate(var_r28, 2);
|
|
lbl_1_bss_E[var_r31][0] = CharModelMotionCreate(var_r28, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00));
|
|
lbl_1_bss_E[var_r31][1] = CharModelMotionCreate(var_r28, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03));
|
|
if (var_r31 < 2) {
|
|
lbl_1_bss_E[var_r31][2] = CharModelMotionCreate(var_r28, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x48));
|
|
lbl_1_bss_E[var_r31][3] = CharModelMotionCreate(var_r28, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17));
|
|
lbl_1_bss_E[var_r31][4] = CharModelMotionCreate(var_r28, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18));
|
|
}
|
|
CharModelVoiceEnableSet(GWPlayerCfg[spC[var_r31]].character, lbl_1_bss_E[var_r31][1], 0);
|
|
Hu3DModelScaleSet(lbl_1_bss_36[var_r31], 0.8f, 0.8f, 0.8f);
|
|
}
|
|
else {
|
|
var_r25 = var_r28 - 8;
|
|
lbl_1_bss_36[var_r31] = Hu3DModelCreateFile(lbl_1_data_2C[var_r25]);
|
|
lbl_1_bss_E[var_r31][0] = Hu3DJointMotionFile(lbl_1_bss_36[var_r31], lbl_1_data_2C[var_r25] + 1);
|
|
lbl_1_bss_E[var_r31][1] = Hu3DJointMotionFile(lbl_1_bss_36[var_r31], lbl_1_data_2C[var_r25] + 2);
|
|
Hu3DModelScaleSet(lbl_1_bss_36[var_r31], 0.8f, 0.8f, 0.8f);
|
|
}
|
|
Hu3DMotionSet(lbl_1_bss_36[var_r31], lbl_1_bss_E[var_r31][0]);
|
|
Hu3DModelAttrSet(lbl_1_bss_36[var_r31], HU3D_MOTATTR_LOOP);
|
|
Hu3DModelPosSet(lbl_1_bss_36[var_r31], var_r26, 0.0f, 0.0f);
|
|
Hu3DModelShadowSet(lbl_1_bss_36[var_r31]);
|
|
var_r26 += 0x96;
|
|
if (var_r31 == 1) {
|
|
var_r26 += 0x64;
|
|
}
|
|
}
|
|
}
|
|
CharModelDataClose(-1);
|
|
Hu3DShadowCreate(20.0f, 500.0f, 8000.0f);
|
|
Hu3DShadowTPLvlSet(0.5f);
|
|
Hu3DShadowSizeSet(0xC0);
|
|
sp20.x = sp20.y = sp20.z = 0.0f;
|
|
sp38.x = sp38.z = 100.0f;
|
|
sp38.y = 2000.0f;
|
|
sp14.x = sp14.y = 0.0f;
|
|
sp14.z = 1.0f;
|
|
Hu3DShadowPosSet(&sp38, &sp14, &sp20);
|
|
lbl_1_bss_C = Hu3DHookFuncCreate(fn_1_7414);
|
|
Hu3DModelLayerSet(lbl_1_bss_C, 1);
|
|
}
|
|
|
|
void fn_1_40E4(void)
|
|
{
|
|
s16 sp14[4];
|
|
s16 spC[4];
|
|
s16 sp8[2];
|
|
s16 var_r31;
|
|
s16 var_r30;
|
|
s16 var_r29;
|
|
s16 var_r28;
|
|
|
|
sp8[0] = 0;
|
|
sp8[1] = 2;
|
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
|
spC[sp8[GWPlayerCfg[var_r31].group]++] = var_r31;
|
|
}
|
|
var_r30 = 0;
|
|
for (var_r31 = var_r30; var_r31 < 8; var_r31++) {
|
|
if ((var_r31 != GWPlayerCfg[spC[0]].character) && (var_r31 != GWPlayerCfg[spC[1]].character)) {
|
|
sp14[var_r30++] = var_r31;
|
|
}
|
|
}
|
|
for (var_r31 = 0; var_r31 < 0x1E; var_r31++) {
|
|
var_r30 = frandmod(6);
|
|
var_r29 = frandmod(6);
|
|
var_r28 = sp14[var_r30];
|
|
sp14[var_r30] = sp14[var_r29];
|
|
sp14[var_r29] = var_r28;
|
|
}
|
|
for (var_r31 = 0; var_r31 < 6; var_r31++) {
|
|
mgIndexList[var_r31] = sp14[var_r31];
|
|
}
|
|
mgIndexList[6] = 0xC;
|
|
mgIndexList[7] = 9;
|
|
mgIndexList[8] = 0xB;
|
|
mgIndexList[9] = 0xA;
|
|
mgIndexList[0xA] = 8;
|
|
mgIndexList[0xB] = 0xD;
|
|
mgIndexList[0xC] = mgIndexList[0xD] = 0xFF;
|
|
GWPlayerCfg[spC[2]].character = mgIndexList[0];
|
|
GWPlayerCfg[spC[3]].character = mgIndexList[1];
|
|
}
|
|
|
|
s16 lbl_1_data_4A[6] = { 0x3A, 0x36, 0x40, 0x4B, 0x46, 0x3E };
|
|
s16 lbl_1_data_56[7] = { 0x3B, 0x38, 0x42, 0x4D, 0x48, 0x3F, 0 };
|
|
|
|
void fn_1_4374(void)
|
|
{
|
|
s16 spC[4];
|
|
s16 sp8[2];
|
|
float var_f31;
|
|
s16 var_r31;
|
|
s16 var_r30;
|
|
|
|
sp8[0] = 0;
|
|
sp8[1] = 2;
|
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
|
spC[sp8[GWPlayerCfg[var_r31].group]++] = var_r31;
|
|
}
|
|
fn_1_4948();
|
|
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20);
|
|
while (WipeStatGet() != 0) {
|
|
HuPrcVSleep();
|
|
}
|
|
HuPrcSleep(0x1E);
|
|
if (lbl_1_bss_58 != 0) {
|
|
var_r30 = 0;
|
|
for (var_r31 = var_r30; var_r31 < 4; var_r31++) {
|
|
if (GWPlayerCoinWinGet(spC[var_r31]) > 0) {
|
|
if (var_r30 == 0) {
|
|
HuAudFXPlay(0x9A);
|
|
}
|
|
if (GWPlayerCfg[spC[var_r31]].character >= 8) {
|
|
HuAudFXPlay(lbl_1_data_4A[GWPlayerCfg[spC[var_r31]].character - 8]);
|
|
}
|
|
Hu3DMotionShiftSet(lbl_1_bss_36[var_r31], lbl_1_bss_E[var_r31][3], 0.0f, 10.0f, HU3D_MOTATTR_NONE);
|
|
var_r30++;
|
|
}
|
|
else {
|
|
if (GWPlayerCfg[spC[var_r31]].character >= 8) {
|
|
HuAudFXPlay(lbl_1_data_56[GWPlayerCfg[spC[var_r31]].character - 8]);
|
|
}
|
|
Hu3DMotionShiftSet(lbl_1_bss_36[var_r31], lbl_1_bss_E[var_r31][4], 0.0f, 10.0f, HU3D_MOTATTR_NONE);
|
|
}
|
|
}
|
|
HuSprAttrReset(lbl_1_bss_50, 1, 4);
|
|
HuPrcSleep(0x78);
|
|
}
|
|
else {
|
|
HuAudFXPlay(0x355);
|
|
HuSprAttrReset(lbl_1_bss_50, 1, 4);
|
|
for (var_r31 = 0; var_r31 <= 0x14; var_r31++) {
|
|
var_f31 = 1.0 + (5.0 * cosd((90.0 * (var_r31 / 20.0))));
|
|
|
|
HuSprScaleSet(lbl_1_bss_50, 1, var_f31, var_f31);
|
|
HuSprTPLvlSet(lbl_1_bss_50, 1, var_r31 / 20.0);
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
fn_1_114EC(MAKE_MESSID(0x33, 0x4F), 1);
|
|
while (TRUE) {
|
|
if (HuPadBtnDown[0] & PAD_BUTTON_A) {
|
|
HuAudFXPlay(2);
|
|
fn_1_51BC(2);
|
|
}
|
|
if (HuPadBtnDown[0] & PAD_BUTTON_B) {
|
|
break;
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
HuAudFXPlay(3);
|
|
fn_1_1190C();
|
|
WipeColorSet(0, 0, 0);
|
|
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20);
|
|
while (WipeStatGet() != 0) {
|
|
HuPrcVSleep();
|
|
}
|
|
HuSprGrpKill(lbl_1_bss_48);
|
|
HuSprGrpKill(lbl_1_bss_50);
|
|
Hu3DModelKill(lbl_1_bss_42);
|
|
HuPrcKill(lbl_1_bss_8);
|
|
Hu3DModelKill(lbl_1_bss_C);
|
|
CharModelKill(-1);
|
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
|
if (GWPlayerCfg[spC[var_r31]].character >= 8) {
|
|
Hu3DModelKill(lbl_1_bss_36[var_r31]);
|
|
Hu3DMotionKill(lbl_1_bss_E[var_r31][0]);
|
|
Hu3DMotionKill(lbl_1_bss_E[var_r31][1]);
|
|
}
|
|
}
|
|
lbl_1_bss_58 = 0;
|
|
lbl_1_bss_5A = 0;
|
|
}
|
|
|
|
void fn_1_4948(void)
|
|
{
|
|
Vec sp38;
|
|
Vec sp2C;
|
|
Vec sp20;
|
|
Vec sp14;
|
|
s16 spC[4];
|
|
s16 sp8[2];
|
|
s16 var_r31;
|
|
s16 var_r30;
|
|
s16 var_r29;
|
|
s16 var_r28;
|
|
AnimData *var_r27;
|
|
s16 var_r26;
|
|
s16 var_r25;
|
|
|
|
sp8[0] = 0;
|
|
sp8[1] = 2;
|
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
|
spC[sp8[GWPlayerCfg[var_r31].group]++] = var_r31;
|
|
}
|
|
var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 3));
|
|
lbl_1_bss_48 = HuSprGrpCreate(1);
|
|
var_r29 = HuSprCreate(var_r27, 0xC8, 0);
|
|
HuSprGrpMemberSet(lbl_1_bss_48, 0, var_r29);
|
|
HuSprGrpDrawNoSet(lbl_1_bss_48, 0x7F);
|
|
HuSprGrpPosSet(lbl_1_bss_48, 288.0f, 240.0f);
|
|
lbl_1_bss_50 = HuSprGrpCreate(2);
|
|
var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 13));
|
|
var_r29 = HuSprCreate(var_r27, 0x78, 0);
|
|
HuSprGrpMemberSet(lbl_1_bss_50, 0, var_r29);
|
|
HuSprPosSet(lbl_1_bss_50, 0, 288.0f, 80.0f);
|
|
HuSprGrpPosSet(lbl_1_bss_50, 0.0f, 0.0f);
|
|
HuSprGrpDrawNoSet(lbl_1_bss_50, 0x7F);
|
|
var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 9));
|
|
var_r29 = HuSprCreate(var_r27, 0x64, 0);
|
|
HuSprGrpMemberSet(lbl_1_bss_50, 1, var_r29);
|
|
HuSprPosSet(lbl_1_bss_50, 1, 288.0f, 240.0f);
|
|
HuSprAttrSet(lbl_1_bss_50, 1, 4);
|
|
HuSprDrawNoSet(lbl_1_bss_50, 1, 0);
|
|
sp38.x = 510.0f;
|
|
sp38.y = 80.0f;
|
|
sp38.z = 1500.0f;
|
|
Hu3D2Dto3D(&sp38, 1, &sp2C);
|
|
lbl_1_bss_42 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_ZTAR, 0));
|
|
lbl_1_bss_3E[0] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 1));
|
|
lbl_1_bss_3E[1] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 2));
|
|
Hu3DModelAttrSet(lbl_1_bss_42, HU3D_MOTATTR_LOOP);
|
|
Hu3DModelPosSetV(lbl_1_bss_42, &sp2C);
|
|
Hu3DModelRotSet(lbl_1_bss_42, 0.0f, -10.0f, -15.0f);
|
|
Hu3DMotionSet(lbl_1_bss_42, lbl_1_bss_3E[0]);
|
|
lbl_1_bss_8 = HuPrcChildCreate(fn_1_1CF0, 0x64, 0x2000, 0, lbl_1_bss_68);
|
|
var_r28 = -0x113;
|
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
|
var_r30 = GWPlayerCfg[spC[var_r31]].character;
|
|
if (var_r30 < 8) {
|
|
lbl_1_bss_36[var_r31] = CharModelCreate(var_r30, 2);
|
|
lbl_1_bss_E[var_r31][0] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00));
|
|
lbl_1_bss_E[var_r31][3] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17));
|
|
lbl_1_bss_E[var_r31][4] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18));
|
|
Hu3DModelScaleSet(lbl_1_bss_36[var_r31], 0.8f, 0.8f, 0.8f);
|
|
}
|
|
else {
|
|
var_r26 = var_r30 - 8;
|
|
var_r25 = Hu3DModelCreateFile(lbl_1_data_2C[var_r26]);
|
|
lbl_1_bss_36[var_r31] = var_r25;
|
|
lbl_1_bss_E[var_r31][0] = Hu3DJointMotionFile(var_r25, lbl_1_data_2C[var_r26] + 1);
|
|
lbl_1_bss_E[var_r31][3] = Hu3DJointMotionFile(var_r25, lbl_1_data_2C[var_r26] + 3);
|
|
lbl_1_bss_E[var_r31][4] = Hu3DJointMotionFile(var_r25, lbl_1_data_2C[var_r26] + 4);
|
|
Hu3DModelScaleSet(lbl_1_bss_36[var_r31], 0.8f, 0.8f, 0.8f);
|
|
}
|
|
Hu3DMotionSet(lbl_1_bss_36[var_r31], lbl_1_bss_E[var_r31][0]);
|
|
Hu3DModelAttrSet(lbl_1_bss_36[var_r31], HU3D_MOTATTR_LOOP);
|
|
Hu3DModelPosSet(lbl_1_bss_36[var_r31], var_r28, 0.0f, 0.0f);
|
|
Hu3DModelShadowSet(lbl_1_bss_36[var_r31]);
|
|
var_r28 += 0x96;
|
|
if (var_r31 == 1) {
|
|
var_r28 += 0x64;
|
|
}
|
|
}
|
|
CharModelDataClose(-1);
|
|
Hu3DShadowCreate(20.0f, 500.0f, 8000.0f);
|
|
Hu3DShadowTPLvlSet(0.5f);
|
|
Hu3DShadowSizeSet(0xC0);
|
|
sp20.x = sp20.y = sp20.z = 0.0f;
|
|
sp38.x = sp38.z = 100.0f;
|
|
sp38.y = 2000.0f;
|
|
sp14.x = sp14.y = 0.0f;
|
|
sp14.z = 1.0f;
|
|
Hu3DShadowPosSet(&sp38, &sp14, &sp20);
|
|
lbl_1_bss_C = Hu3DHookFuncCreate(fn_1_7414);
|
|
Hu3DModelLayerSet(lbl_1_bss_C, 1);
|
|
}
|
|
|
|
void fn_1_51BC(s16 arg0)
|
|
{
|
|
s16 var_r31;
|
|
omOvlHisData *var_r30;
|
|
u32 var_r29;
|
|
|
|
WipeColorSet(0xFF, 0xFF, 0xFF);
|
|
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x3C);
|
|
HuAudSeqAllFadeOut(0x3E8);
|
|
while (WipeStatGet() != 0) {
|
|
HuPrcVSleep();
|
|
}
|
|
#if !VERSION_ENG
|
|
if ((GWPlayerCfg->character >= 8) && (GWPlayerCfg->character >= 8) && (GWPlayerCfg->character >= 8) && (GWPlayerCfg->character >= 8)) {
|
|
msmMusStopAll(1, 0);
|
|
msmSeStopAll(1, 0);
|
|
var_r29 = OSGetTick();
|
|
while (TRUE) {
|
|
if ((msmMusGetNumPlay(1) != 0) || (msmSeGetNumPlay(1) != 0)) {
|
|
if (((OSGetTick() - var_r29) / (*((u32 *)0x800000F8) / 4 / 1000)) >= 0x1F4) {
|
|
break;
|
|
}
|
|
}
|
|
else {
|
|
break;
|
|
}
|
|
}
|
|
msmSysDelGroupBase(0);
|
|
#if VERSION_PAL
|
|
for (var_r31 = 0; var_r31 < 8; var_r31++) {
|
|
charVoiceGroupStat[var_r31] = 0;
|
|
}
|
|
#endif
|
|
}
|
|
#endif
|
|
var_r30 = omOvlHisGet(0);
|
|
omOvlHisChg(0, OVL_ZTAR, arg0, var_r30->stat);
|
|
omOvlCallEx(OVL_M433, 1, 0, 0);
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
float lbl_1_data_64[8] = {
|
|
-132.0f,
|
|
-12.0f,
|
|
60.0f,
|
|
132.0f,
|
|
-132.0f,
|
|
-60.0f,
|
|
60.0f,
|
|
132.0f,
|
|
};
|
|
|
|
u8 lbl_1_data_84[16] = { 0, 1, 2, 3, 1, 0, 2, 3, 2, 0, 1, 3, 3, 0, 1, 2 };
|
|
u8 lbl_1_data_94[12] = { 0, 1, 2, 3, 0, 2, 1, 3, 0, 3, 1, 2 };
|
|
|
|
s32 fn_1_524C(s32 arg0)
|
|
{
|
|
s16 spC;
|
|
float var_f31;
|
|
float var_f30;
|
|
float var_f29;
|
|
s16 var_r31;
|
|
s16 var_r30;
|
|
float *var_r29;
|
|
s16 var_r28;
|
|
s16 var_r27;
|
|
AnimData *var_r26;
|
|
s16 var_r25;
|
|
s16 var_r24;
|
|
s16 var_r23;
|
|
WindowData *var_r22;
|
|
|
|
if (mgTypeCurr == 1) {
|
|
var_r29 = lbl_1_data_64;
|
|
var_f29 = 216.0f;
|
|
}
|
|
else {
|
|
var_r29 = &lbl_1_data_64[4];
|
|
var_f29 = 288.0f;
|
|
}
|
|
var_r28 = HuSprGrpCreate(0x10);
|
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
|
var_r26 = HuSprAnimReadFile(GWPlayerCfg[var_r31].character + DATA_MAKE_NUM(DATADIR_ZTAR, 69));
|
|
var_r25 = HuSprCreate(var_r26, 4, 0);
|
|
HuSprGrpMemberSet(var_r28, var_r31 * 4, var_r25);
|
|
HuSprPosSet(var_r28, var_r31 * 4, var_r29[var_r31], 0.0f);
|
|
if (mgTypeCurr == 1) {
|
|
if (var_r31 == 0) {
|
|
var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 89));
|
|
}
|
|
else {
|
|
var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 90));
|
|
}
|
|
}
|
|
else if (var_r31 < 2) {
|
|
var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 89));
|
|
}
|
|
else {
|
|
var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 90));
|
|
}
|
|
var_r25 = HuSprCreate(var_r26, 3, 0);
|
|
HuSprGrpMemberSet(var_r28, (var_r31 * 4) + 1, var_r25);
|
|
HuSprPosSet(var_r28, (var_r31 * 4) + 1, var_r29[var_r31], 0.0f);
|
|
if (GWPlayerCfg[var_r31].iscom != 0) {
|
|
var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 87));
|
|
}
|
|
else {
|
|
var_r26 = HuSprAnimReadFile(GWPlayerCfg[var_r31].pad_idx + DATA_MAKE_NUM(DATADIR_ZTAR, 83));
|
|
}
|
|
var_r25 = HuSprCreate(var_r26, 2, 1);
|
|
HuSprGrpMemberSet(var_r28, (var_r31 * 4) + 2, var_r25);
|
|
HuSprPosSet(var_r28, (var_r31 * 4) + 2, var_r29[var_r31], 0.0f);
|
|
var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 88));
|
|
var_r25 = HuSprCreate(var_r26, 2, GWPlayerCfg[var_r31].diff);
|
|
HuSprGrpMemberSet(var_r28, (var_r31 * 4) + 3, var_r25);
|
|
HuSprPosSet(var_r28, (var_r31 * 4) + 3, var_r29[var_r31], 38.0f);
|
|
if (GWPlayerCfg[var_r31].iscom == 0) {
|
|
HuSprAttrSet(var_r28, (var_r31 * 4) + 3, 4);
|
|
}
|
|
}
|
|
var_r27 = HuSprGrpCreate(5);
|
|
var_r26 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_ZTAR, 67), MEMORY_DEFAULT_NUM));
|
|
var_r25 = HuSprCreate(var_r26, 0x32, 0);
|
|
HuSprGrpMemberSet(var_r27, 0, var_r25);
|
|
HuSprTPLvlSet(var_r27, 0, 0.9f);
|
|
HuSprPosSet(var_r27, 0, 0.0f, 0.0f);
|
|
HuSprScaleSet(var_r27, 0, 1.1f, 1.0f);
|
|
var_r26 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_ZTAR, 65), MEMORY_DEFAULT_NUM));
|
|
var_r25 = HuSprCreate(var_r26, 0x28, 0);
|
|
HuSprGrpMemberSet(var_r27, 1, var_r25);
|
|
HuSprPosSet(var_r27, 1, 0.0f, -90.0f);
|
|
var_r26 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_ZTAR, 66), MEMORY_DEFAULT_NUM));
|
|
var_r25 = HuSprCreate(var_r26, 0x28, 0);
|
|
HuSprGrpMemberSet(var_r27, 2, var_r25);
|
|
HuSprPosSet(var_r27, 2, 0.0f, 0.0f);
|
|
var_r26 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_ZTAR, 68), MEMORY_DEFAULT_NUM));
|
|
var_r25 = HuSprCreate(var_r26, 0x28, 1);
|
|
HuSprGrpMemberSet(var_r27, 3, var_r25);
|
|
HuSprPosSet(var_r27, 3, 180.0f, 0.0f);
|
|
var_r26 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_ZTAR, 68), MEMORY_DEFAULT_NUM));
|
|
var_r25 = HuSprCreate(var_r26, 0x28, 0);
|
|
HuSprGrpMemberSet(var_r27, 4, var_r25);
|
|
HuSprPosSet(var_r27, 4, -180.0f, 0.0f);
|
|
HuSprGrpPosSet(var_r27, 288.0f, 240.0f);
|
|
for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) {
|
|
if (var_r31 <= 0x32) {
|
|
var_f31 = var_r31 / 50.0;
|
|
var_f30 = -300.0 + (560.0 * sind((90.0f * var_f31)));
|
|
HuSprGrpPosSet(var_r27, 288.0f, var_f30);
|
|
HuSprGrpPosSet(var_r28, 288.0f, var_f30);
|
|
}
|
|
else {
|
|
var_f31 = (var_r31 - 0x32) / 10.0;
|
|
var_f30 = 240.0 + (20.0 * cosd((90.0f * var_f31)));
|
|
var_f30 = var_f30;
|
|
HuSprGrpPosSet(var_r27, 288.0f, var_f30);
|
|
HuSprGrpPosSet(var_r28, 288.0f, var_f30);
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
var_r24 = HuWinCreate(0.0f, 0.0f, 0x1E0, 0x28, 0);
|
|
HuWinMesSpeedSet(var_r24, 0);
|
|
HuWinBGTPLvlSet(var_r24, 0.0f);
|
|
HuWinMesSet(var_r24, MAKE_MESSID(0x1A, 0x20));
|
|
var_r22 = &winData[var_r24];
|
|
HuWinPriSet(var_r24, 5);
|
|
HuWinPosSet(var_r24, (576.0f - var_r22->w) / 2, 300.0f);
|
|
#if VERSION_PAL
|
|
HuWinScaleSet(var_r24, 0.95f, 1.0f);
|
|
#endif
|
|
HuWinAttrSet(var_r24, 0x800);
|
|
var_r30 = 0;
|
|
var_r23 = 0;
|
|
while (TRUE) {
|
|
HuPrcVSleep();
|
|
if (HuPadBtnDown[0] & PAD_BUTTON_B) {
|
|
HuAudFXPlay(3);
|
|
goto block_89;
|
|
}
|
|
spC = 0;
|
|
if (HuPadDStkRep[0] & PAD_BUTTON_LEFT) {
|
|
HuAudFXPlay(0x304);
|
|
for (var_r31 = 0; var_r31 <= 5; var_r31++) {
|
|
var_f31 = var_r31 / 5.0;
|
|
HuSprPosSet(var_r27, 4, -180.0 - (10.0 * sind((90.0f * var_f31))), 0.0f);
|
|
HuPrcVSleep();
|
|
}
|
|
var_r30--;
|
|
if (mgTypeCurr == 1) {
|
|
if (var_r30 < 0) {
|
|
var_r30 = 3;
|
|
}
|
|
if (var_r30 >= 4) {
|
|
var_r30 = 0;
|
|
}
|
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
|
HuSprPosSet(var_r28, lbl_1_data_84[var_r30 * 4 + var_r31] * 4, var_r29[var_r31], 0.0f);
|
|
HuSprPosSet(var_r28, lbl_1_data_84[var_r30 * 4 + var_r31] * 4 + 2, var_r29[var_r31], 0.0f);
|
|
HuSprPosSet(var_r28, lbl_1_data_84[var_r30 * 4 + var_r31] * 4 + 3, var_r29[var_r31], 38.0f);
|
|
}
|
|
}
|
|
else {
|
|
if (var_r30 < 0) {
|
|
var_r30 = 2;
|
|
}
|
|
if (var_r30 >= 3) {
|
|
var_r30 = 0;
|
|
}
|
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
|
HuSprPosSet(var_r28, lbl_1_data_94[var_r30 * 4 + var_r31] * 4, var_r29[var_r31], 0.0f);
|
|
HuSprPosSet(var_r28, lbl_1_data_94[var_r30 * 4 + var_r31] * 4 + 2, var_r29[var_r31], 0.0f);
|
|
HuSprPosSet(var_r28, lbl_1_data_94[var_r30 * 4 + var_r31] * 4 + 3, var_r29[var_r31], 38.0f);
|
|
}
|
|
}
|
|
for (var_r31 = 0; var_r31 <= 5; var_r31++) {
|
|
var_f31 = var_r31 / 5.0;
|
|
HuSprPosSet(var_r27, 4, -180.0 - (10.0 * cosd((90.0f * var_f31))), 0.0f);
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
else {
|
|
if (HuPadDStkRep[0] & PAD_BUTTON_RIGHT) {
|
|
HuAudFXPlay(0x304);
|
|
for (var_r31 = 0; var_r31 <= 5; var_r31++) {
|
|
var_f31 = var_r31 / 5.0;
|
|
HuSprPosSet(var_r27, 3, 180.0 - (10.0 * sind((90.0f * var_f31))), 0.0f);
|
|
HuPrcVSleep();
|
|
}
|
|
var_r30++;
|
|
if (mgTypeCurr == 1) {
|
|
if (var_r30 < 0) {
|
|
var_r30 = 3;
|
|
}
|
|
if (var_r30 >= 4) {
|
|
var_r30 = 0;
|
|
}
|
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
|
HuSprPosSet(var_r28, lbl_1_data_84[var_r30 * 4 + var_r31] * 4, var_r29[var_r31], 0.0f);
|
|
HuSprPosSet(var_r28, (lbl_1_data_84[var_r30 * 4 + var_r31] * 4) + 2, var_r29[var_r31], 0.0f);
|
|
HuSprPosSet(var_r28, (lbl_1_data_84[var_r30 * 4 + var_r31] * 4) + 3, var_r29[var_r31], 38.0f);
|
|
}
|
|
}
|
|
else {
|
|
if (var_r30 < 0) {
|
|
var_r30 = 2;
|
|
}
|
|
if (var_r30 >= 3) {
|
|
var_r30 = 0;
|
|
}
|
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
|
HuSprPosSet(var_r28, lbl_1_data_94[var_r30 * 4 + var_r31] * 4, var_r29[var_r31], 0.0f);
|
|
HuSprPosSet(var_r28, (lbl_1_data_94[var_r30 * 4 + var_r31] * 4) + 2, var_r29[var_r31], 0.0f);
|
|
HuSprPosSet(var_r28, (lbl_1_data_94[var_r30 * 4 + var_r31] * 4) + 3, var_r29[var_r31], 38.0f);
|
|
}
|
|
}
|
|
for (var_r31 = 0; var_r31 <= 5; var_r31++) {
|
|
var_f31 = var_r31 / 5.0;
|
|
HuSprPosSet(var_r27, 3, 180.0 + (10.0 * cosd((90.0f * var_f31))), 0.0f);
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
}
|
|
if (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A)) {
|
|
HuAudFXPlay(0x305);
|
|
if (mgTypeCurr == 1) {
|
|
GWPlayerCfg[lbl_1_data_84[var_r30 * 4]].group = 0;
|
|
for (var_r31 = 1; var_r31 < 4; var_r31++) {
|
|
GWPlayerCfg[lbl_1_data_84[var_r30 * 4 + var_r31]].group = 1;
|
|
}
|
|
}
|
|
else {
|
|
for (var_r31 = 0; var_r31 < 2; var_r31++) {
|
|
GWPlayerCfg[lbl_1_data_94[var_r30 * 4 + var_r31]].group = 0;
|
|
}
|
|
for (var_r31 = 2; var_r31 < 4; var_r31++) {
|
|
GWPlayerCfg[lbl_1_data_94[var_r30 * 4 + var_r31]].group = 1;
|
|
}
|
|
}
|
|
if (arg0 != 0) {
|
|
var_r23 = 1;
|
|
}
|
|
else {
|
|
return 1;
|
|
}
|
|
block_89:
|
|
HuWinKill(var_r24);
|
|
for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) {
|
|
if (var_r31 <= 0xA) {
|
|
var_f31 = var_r31 / 10.0;
|
|
var_f30 = 240.0 + (20.0 * sind((90.0f * var_f31)));
|
|
HuSprGrpPosSet(var_r27, 288.0f, var_f30);
|
|
HuSprGrpPosSet(var_r28, 288.0f, var_f30);
|
|
}
|
|
else {
|
|
var_f31 = (var_r31 - 0xA) / 50.0;
|
|
var_f30 = -300.0 + (560.0 * cosd(90.0f * var_f31));
|
|
HuSprGrpPosSet(var_r27, 288.0f, var_f30);
|
|
HuSprGrpPosSet(var_r28, 288.0f, var_f30);
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
HuSprGrpKill(var_r28);
|
|
HuSprGrpKill(var_r27);
|
|
return var_r23;
|
|
}
|
|
}
|
|
}
|
|
|
|
void fn_1_66F8(void)
|
|
{
|
|
s16 var_r31;
|
|
|
|
while (TRUE) {
|
|
if (lbl_1_bss_60 != 0 || omSysExitReq) {
|
|
break;
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
WipeColorSet(0xFF, 0xFF, 0xFF);
|
|
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
|
|
while (WipeStatGet() != 0) {
|
|
HuPrcVSleep();
|
|
}
|
|
HuDataDirClose(DATADIR_INSTPIC);
|
|
while (lbl_1_bss_4 != 0) {
|
|
HuPrcVSleep();
|
|
}
|
|
CharModelDataClose(-1);
|
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
|
GWPlayerCfg[var_r31].character = -1;
|
|
}
|
|
#if VERSION_PAL
|
|
for (var_r31 = 0; var_r31 < 8; var_r31++) {
|
|
charVoiceGroupStat[var_r31] = 0;
|
|
}
|
|
#endif
|
|
mgPracticeEnableF = 0;
|
|
omOvlReturnEx(1, 1);
|
|
HuPrcEnd();
|
|
}
|
|
|
|
void fn_1_6804(void)
|
|
{
|
|
Vec sp2C;
|
|
Vec sp20;
|
|
Vec sp14;
|
|
Vec sp8;
|
|
float var_f31;
|
|
float var_f30;
|
|
float var_f29;
|
|
s8 var_r31;
|
|
|
|
CRot.y += 0.1f * HuPadStkX[0];
|
|
CRot.x += 0.1f * HuPadStkY[0];
|
|
CZoom += HuPadTrigL[0] / 2;
|
|
CZoom -= HuPadTrigR[0] / 2;
|
|
if (HuPadBtnDown[0] & PAD_BUTTON_B) {
|
|
OSReport("%f,%f,%f\n", CRot.x, CRot.y, CRot.z);
|
|
OSReport("%f,%f,%f\n", Center.x, Center.y, Center.z);
|
|
OSReport("%f\n", CZoom);
|
|
}
|
|
if (CZoom < 100.0f) {
|
|
CZoom = 100.0f;
|
|
}
|
|
sp2C.x = Center.x + (CZoom * (sind(CRot.y) * cosd(CRot.x)));
|
|
sp2C.y = Center.y + (CZoom * -sind(CRot.x));
|
|
sp2C.z = Center.z + (CZoom * (cosd(CRot.y) * cosd(CRot.x)));
|
|
sp20.x = Center.x - sp2C.x;
|
|
sp20.y = Center.y - sp2C.y;
|
|
sp20.z = Center.z - sp2C.z;
|
|
sp14.x = sind(CRot.y) * sind(CRot.x);
|
|
sp14.y = cosd(CRot.x);
|
|
sp14.z = cosd(CRot.y) * sind(CRot.x);
|
|
var_f31 = CRot.z;
|
|
sp8.x = sp14.x * ((sp20.x * sp20.x) + ((1.0f - (sp20.x * sp20.x)) * cosd(var_f31)))
|
|
+ sp14.y * (((sp20.x * sp20.y) * (1.0 - cosd(var_f31))) - sp20.z * sind(var_f31))
|
|
+ sp14.z * (((sp20.x * sp20.z) * (1.0 - cosd(var_f31))) + sp20.y * sind(var_f31));
|
|
|
|
sp8.y = sp14.y * ((sp20.y * sp20.y) + ((1.0f - (sp20.y * sp20.y)) * cosd(var_f31)))
|
|
+ sp14.x * (((sp20.x * sp20.y) * (1.0 - cosd(var_f31))) + sp20.z * sind(var_f31))
|
|
+ sp14.z * (((sp20.y * sp20.z) * (1.0 - cosd(var_f31))) - sp20.x * sind(var_f31));
|
|
|
|
sp8.z = sp14.z * ((sp20.z * sp20.z) + ((1.0f - (sp20.z * sp20.z)) * cosd(var_f31)))
|
|
+ (sp14.x * (((sp20.x * sp20.z) * (1.0 - cosd(var_f31))) - sp20.y * sind(var_f31))
|
|
+ sp14.y * (((sp20.y * sp20.z) * (1.0 - cosd(var_f31))) + sp20.x * sind(var_f31)));
|
|
VECCrossProduct(&sp14, &sp20, &sp20);
|
|
VECNormalize(&sp20, &sp20);
|
|
var_r31 = HuPadSubStkX[0] & 0xF8;
|
|
if (var_r31 != 0) {
|
|
Center.x += 0.05f * (sp20.x * var_r31);
|
|
Center.y += 0.05f * (sp20.y * var_r31);
|
|
Center.z += 0.05f * (sp20.z * var_r31);
|
|
}
|
|
VECNormalize(&sp8, &sp20);
|
|
var_r31 = -(HuPadSubStkY[0] & 0xF8);
|
|
if (var_r31 != 0) {
|
|
Center.x += 0.05f * (sp20.x * var_r31);
|
|
Center.y += 0.05f * (sp20.y * var_r31);
|
|
Center.z += 0.05f * (sp20.z * var_r31);
|
|
}
|
|
}
|
|
|
|
void fn_1_7414(ModelData *model, Mtx matrix)
|
|
{
|
|
Mtx sp8C;
|
|
Mtx sp5C;
|
|
Mtx sp2C;
|
|
GXTexObj spC;
|
|
s32 sp8;
|
|
|
|
sp8 = 0;
|
|
GXClearVtxDesc();
|
|
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
|
|
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
|
|
GXInitTexObj(&spC, Hu3DShadowData.unk_04, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, 1, GX_CLAMP, GX_CLAMP, GX_FALSE);
|
|
GXInitTexObjLOD(&spC, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
|
|
GXLoadTexObj(&spC, GX_TEXMAP0);
|
|
MTXInverse(Hu3DCameraMtx, sp5C);
|
|
MTXConcat(sp5C, matrix, sp8C);
|
|
MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp2C);
|
|
MTXConcat(sp2C, sp8C, sp8C);
|
|
GXLoadTexMtxImm(sp8C, 0x39, GX_MTX3x4);
|
|
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 0x39, GX_FALSE, 0x7D);
|
|
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0);
|
|
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO);
|
|
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
|
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO);
|
|
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV);
|
|
GXSetNumTexGens(1);
|
|
GXSetNumTevStages(1);
|
|
GXSetNumChans(1);
|
|
GXSetChanCtrl(GX_COLOR0, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, 1, GX_DF_CLAMP, GX_AF_NONE);
|
|
GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP);
|
|
GXSetZMode(1, GX_LEQUAL, GX_FALSE);
|
|
GXLoadPosMtxImm(matrix, 0);
|
|
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
|
|
GXPosition3f32(-500.0f, 0.0f, -500.0f);
|
|
GXPosition3f32(500.0f, 0.0f, -500.0f);
|
|
GXPosition3f32(500.0f, 0.0f, 500.0f);
|
|
GXPosition3f32(-500.0f, 0.0f, 500.0f);
|
|
#ifdef TARGET_PC
|
|
GXDestroyTexObj(&spC);
|
|
#endif
|
|
}
|