1148 lines
30 KiB
C
1148 lines
30 KiB
C
#include "REL/w03Dll.h"
|
|
#include "game/data.h"
|
|
#include "game/board/main.h"
|
|
#include "game/board/space.h"
|
|
#include "game/board/player.h"
|
|
#include "game/board/model.h"
|
|
#include "game/board/window.h"
|
|
|
|
#include "game/hsfman.h"
|
|
#include "game/hsfdraw.h"
|
|
|
|
#include "game/pad.h"
|
|
#include "game/wipe.h"
|
|
|
|
//structs
|
|
|
|
typedef struct w03UnkStruct5 {
|
|
/* 0x00 */ struct {
|
|
u8 unk00_bit0 : 1;
|
|
u8 unk00_bit1 : 2;
|
|
u8 unk00_bit3 : 1;
|
|
u8 unk00_bit4 : 4;
|
|
};
|
|
/* 0x01 */ char unk_01[3];
|
|
/* 0x04 */ f32 unk_04;
|
|
/* 0x08 */ f32 unk_08;
|
|
} w03UnkStruct5;
|
|
|
|
typedef struct w03UnkStruct4 {
|
|
/* 0x00 */ struct {
|
|
u8 unk00_bit0 : 1;
|
|
};
|
|
} w03UnkStruct4;
|
|
|
|
typedef struct w03StructUnk3 {
|
|
/* 0x00 */ s16 unk_00;
|
|
/* 0x02 */ s16 model;
|
|
/* 0x04 */ f32 unk_04;
|
|
/* 0x08 */ Vec unk_08;
|
|
/* 0x14 */ Vec unk_14;
|
|
} w03StructUnk3;
|
|
|
|
typedef struct w03StructUnk2 {
|
|
/* 0x00 */ struct {
|
|
u8 unkbit_00 : 1;
|
|
u8 unkbit_01 : 2;
|
|
u8 unkbit_03 : 1;
|
|
u8 unkbit_04 : 1;
|
|
};
|
|
s8 unk_01;
|
|
s8 unk_02;
|
|
u8 unk_03;
|
|
s16 model;
|
|
char unk_06[2];
|
|
w03StructUnk3* unk_08;
|
|
} w03StructUnk2;
|
|
|
|
//function signatures
|
|
void fn_1_313C(void);
|
|
void fn_1_3218(void);
|
|
void fn_1_3304(void);
|
|
s32 fn_1_3478(s32);
|
|
void fn_1_3814(s32);
|
|
void fn_1_3968(s32);
|
|
void fn_1_3E88(s32);
|
|
void fn_1_3F5C(s32);
|
|
void fn_1_4354(s32);
|
|
void fn_1_48EC(s32);
|
|
void fn_1_4A9C(void);
|
|
void fn_1_50D4(omObjData* arg0);
|
|
void fn_1_5838(s32);
|
|
void fn_1_5AC8(omObjData* arg0);
|
|
void fn_1_5C5C(omObjData* arg0, w03UnkStruct5* arg1);
|
|
void fn_1_602C(omObjData* arg0, w03UnkStruct5* arg1);
|
|
f32 fn_1_61A4(omObjData* arg0, w03UnkStruct5* arg1);
|
|
void fn_1_629C(s8 arg0);
|
|
s32 fn_1_62D0(void);
|
|
void fn_1_62FC(void);
|
|
|
|
//bss
|
|
float lbl_1_bss_80[20][2];
|
|
s8 lbl_1_bss_7D;
|
|
s8 lbl_1_bss_7C;
|
|
omObjData *lbl_1_bss_78;
|
|
omObjData *lbl_1_bss_74;
|
|
Process* lbl_1_bss_70;
|
|
|
|
//data
|
|
s16 lbl_1_data_310 = -1;
|
|
s16 lbl_1_data_312 = -1;
|
|
s16 lbl_1_data_314 = -1;
|
|
s16 lbl_1_data_316 = -1;
|
|
s32 lbl_1_data_318[] = {
|
|
DATA_MAKE_NUM(DATADIR_W03, 0x0016),
|
|
DATA_MAKE_NUM(DATADIR_W03, 0x0017),
|
|
DATA_MAKE_NUM(DATADIR_W03, 0x0018),
|
|
DATA_MAKE_NUM(DATADIR_W03, 0x0019),
|
|
DATA_MAKE_NUM(DATADIR_W03, 0x001A),
|
|
DATA_NUM_LISTEND
|
|
};
|
|
|
|
void fn_1_3058(void) {
|
|
lbl_1_data_310 = BoardModelCreate(0x770015, lbl_1_data_318, 0);
|
|
fn_1_3304();
|
|
}
|
|
|
|
s32 fn_1_309C(void) {
|
|
BoardDiceDigit2DShowSet(0);
|
|
lbl_1_bss_70 = HuPrcChildCreate(fn_1_313C, 0x2003U, 0x2000U, 0, boardMainProc);
|
|
HuPrcDestructorSet2(lbl_1_bss_70, fn_1_3218);
|
|
|
|
while (lbl_1_bss_70) {
|
|
HuPrcVSleep();
|
|
}
|
|
|
|
BoardDiceDigit2DShowSet(1);
|
|
return lbl_1_bss_7C;
|
|
}
|
|
|
|
void fn_1_313C(void) {
|
|
s32 temp_r31;
|
|
|
|
temp_r31 = GWSystem.player_curr;
|
|
lbl_1_bss_7C = 0;
|
|
lbl_1_bss_0->unk3 = 1;
|
|
|
|
if (fn_1_3478(temp_r31) != 0) {
|
|
BoardCameraNearFarSet(500.0f, 20000.0f);
|
|
BoardStatusShowSetAll(0);
|
|
fn_1_3968(temp_r31);
|
|
fn_1_3E88(temp_r31);
|
|
fn_1_3F5C(temp_r31);
|
|
lbl_1_bss_7C = 1;
|
|
}
|
|
|
|
BoardCameraNearFarSet(100.0f, 13000.0f);
|
|
fn_1_3814(temp_r31);
|
|
HuPrcEnd();
|
|
}
|
|
|
|
|
|
void fn_1_3218(void) {
|
|
if (lbl_1_data_316 != -1) {
|
|
HuWinKill(lbl_1_data_316);
|
|
lbl_1_data_316 = -1;
|
|
}
|
|
|
|
if (lbl_1_data_314 != -1) {
|
|
BoardModelKill(lbl_1_data_314);
|
|
lbl_1_data_314 = -1;
|
|
}
|
|
|
|
if (lbl_1_data_312 != -1) {
|
|
BoardPlayerMotionKill(GWSystem.player_curr, lbl_1_data_312);
|
|
lbl_1_data_312 = -1;
|
|
}
|
|
|
|
lbl_1_bss_0->unk3 = 0;
|
|
lbl_1_bss_70 = 0;
|
|
}
|
|
|
|
|
|
void fn_1_3304(void) {
|
|
Vec sp8;
|
|
f32 temp_f31;
|
|
s32 var_r31;
|
|
|
|
if (lbl_1_bss_0->unk1 != 0) {
|
|
var_r31 = BoardSpaceFlagSearch(0, 0x4000);
|
|
} else {
|
|
var_r31 = BoardSpaceFlagSearch(0, 0x8000);
|
|
}
|
|
|
|
var_r31 = BoardSpaceLinkFlagSearch(0, var_r31, 0x02000000);
|
|
BoardSpacePosGet(0, var_r31, &sp8);
|
|
temp_f31 = 0.0f;
|
|
sp8.x = sp8.x + (-300.0 * sin((M_PI * temp_f31) / 180.0));
|
|
sp8.z = sp8.z + (-300.0 * cos((M_PI * temp_f31) / 180.0));
|
|
sp8.y = 45.0f + sp8.y;
|
|
BoardModelPosSetV(lbl_1_data_310, &sp8);
|
|
BoardModelMotionStart(lbl_1_data_310, 2, 0x40000001);
|
|
}
|
|
|
|
s32 fn_1_3478(s32 arg0) {
|
|
Vec sp38;
|
|
Vec sp2C;
|
|
Vec sp20;
|
|
f32 sp1C;
|
|
f32 sp18;
|
|
Vec sp14;
|
|
Vec sp8;
|
|
s32 temp_r28;
|
|
s32 temp_r3;
|
|
s32 var_r29;
|
|
s32 var_r30;
|
|
s32 temp;
|
|
s32 temp_r26;
|
|
f32 float_temp;
|
|
s32 i, j;
|
|
|
|
sp14.x = 0.0f;
|
|
sp14.y = 150.0f;
|
|
sp14.z = 0.0f;
|
|
|
|
sp8.x = -15.0f;
|
|
sp8.y = 0.0f;
|
|
sp8.z = 0.0f;
|
|
|
|
BoardCameraMotionStartEx(lbl_1_data_310, &sp8, &sp14, 1900.0f, -1.0f, 21);
|
|
temp_r28 = GWPlayer[arg0].space_curr;
|
|
BoardPlayerPosGet(arg0, &sp2C);
|
|
temp = BoardSpaceLinkFlagSearch(0, temp_r28, 0x02000000);
|
|
BoardSpacePosGet(0, temp, &sp38);
|
|
PSVECSubtract(&sp38, &sp2C, &sp20);
|
|
float_temp = atan2(sp20.x, sp20.z) / M_PI * 180.0f;
|
|
BoardPlayerMotBlendSet(arg0, (float_temp), 0xF);
|
|
|
|
while (BoardPlayerMotBlendCheck(arg0) == 0) {
|
|
HuPrcVSleep();
|
|
}
|
|
|
|
BoardPlayerIdleSet(arg0);
|
|
HuAudFXPlay(0x447);
|
|
BoardModelMotionShiftSet(lbl_1_data_310, 4, 0.0f, 5.0f, 0);
|
|
HuPrcSleep(6);
|
|
|
|
while (BoardModelMotionEndCheck(lbl_1_data_310) == 0) {
|
|
HuPrcVSleep();
|
|
}
|
|
|
|
BoardModelMotionShiftSet(lbl_1_data_310, 1, 0.0f, 5.0f, 0x40000001);
|
|
temp_r26 = BoardPlayerGetCharMess(arg0);
|
|
BoardWinCreate(2, 0x160010, 8);
|
|
BoardWinInsertMesSet(temp_r26, 3);
|
|
BoardWinWait();
|
|
|
|
if (BoardPlayerCoinsGet(arg0) < 5) {
|
|
BoardWinCreate(2, 0x160013, 8);
|
|
BoardWinWait();
|
|
BoardWinKill();
|
|
return 0;
|
|
}
|
|
|
|
var_r29 = 0;
|
|
while (var_r29 == 0) {
|
|
BoardWinCreateChoice(2, 0x160011, 8, 0);
|
|
BoardWinAttrSet(0x10);
|
|
|
|
if (GWPlayer[arg0].com != 0) {
|
|
fn_1_4354(arg0);
|
|
}
|
|
|
|
BoardWinWait();
|
|
BoardWinKill();
|
|
switch (BoardWinChoiceGet()) {
|
|
case 0:
|
|
var_r29 = 1;
|
|
break;
|
|
case 2:
|
|
BoardViewMapExec(arg0);
|
|
break;
|
|
default:
|
|
case 1:
|
|
BoardWinCreate(2, 0x160014, 8);
|
|
BoardWinWait();
|
|
BoardWinKill();
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
BoardAudSeqPause(0, 1, 1000);
|
|
|
|
for (j = 0; j < 5; j++) {
|
|
BoardPlayerCoinsAdd(arg0, -1);
|
|
HuAudFXPlay(14);
|
|
HuPrcSleep(6);
|
|
}
|
|
|
|
HuAudFXPlay(15);
|
|
BoardWinKill();
|
|
return 1;
|
|
}
|
|
|
|
void fn_1_3814(s32 arg0) {
|
|
Vec sp14;
|
|
Vec sp8;
|
|
f32 temp;
|
|
|
|
BoardModelMotionShiftSet(lbl_1_data_310, 2, 0.0f, 10.0f, 0x40000001);
|
|
temp = (180.0f + BoardPlayerRotYGet(arg0));
|
|
BoardPlayerMotBlendSet(arg0, temp, 0xF);
|
|
|
|
while (BoardPlayerMotBlendCheck(arg0) == 0) {
|
|
HuPrcVSleep();
|
|
}
|
|
|
|
BoardCameraViewSet(1);
|
|
BoardCameraTargetPlayerSet(arg0);
|
|
|
|
if (lbl_1_bss_7C != 0) {
|
|
BoardSpacePosGet(0, GWPlayer[arg0].space_curr, &sp14);
|
|
BoardPlayerPosGet(arg0, &sp8);
|
|
BoardPlayerPosLerpStart(arg0, &sp8, &sp14, 0x14);
|
|
while (GWPlayer[arg0].moving) {
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
BoardPlayerIdleSet(arg0);
|
|
BoardCameraMotionWait();
|
|
}
|
|
|
|
void fn_1_3968(s32 arg0) {
|
|
s32 var_r29 = 0;
|
|
s32 var_r28 = 0;
|
|
s32 sp48[] = {0x005F0065, 0x001A0065, 0x006D0065, 0x008A0065, 0x00850065, 0x00110065, 0x000D0065, 0x00810065};
|
|
Vec sp3C;
|
|
Vec sp30;
|
|
Vec sp24;
|
|
Vec sp18;
|
|
s32 sp10[2] = {0x00770013, 0x00770014};
|
|
f32 spC;
|
|
s16 sp8;
|
|
|
|
f32 temp_f30;
|
|
f32 temp_f28;
|
|
f32 temp_f31;
|
|
f32 temp_f27;
|
|
|
|
s16 character;
|
|
|
|
lbl_1_data_314 = BoardModelCreate(sp10[lbl_1_bss_0->unk1], NULL, 0);
|
|
character = GWPlayer[arg0].character;
|
|
lbl_1_data_312 = BoardPlayerMotionCreate(arg0, sp48[character]);
|
|
|
|
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_310), "itemhook_oya", &sp3C);
|
|
BoardPlayerPosGet(arg0, &sp30);
|
|
temp_f30 = BoardVecDistXZCalc(&sp3C, &sp30);
|
|
PSVECSubtract(&sp3C, &sp30, &sp24);
|
|
PSVECNormalize(&sp24, &sp24);
|
|
PSVECScale(&sp24, &sp24, temp_f30 / 45.0f);
|
|
BoardPlayerMotionShiftSet(arg0, 4, 0.0f, 5.0f, 0);
|
|
HuPrcSleep(5);
|
|
|
|
spC = BoardPlayerRotYGet(arg0);
|
|
temp_f27 = 180.0f + spC;
|
|
var_r29 = 0;
|
|
sp8 = 0;
|
|
temp_f28 = 40.0f;
|
|
|
|
while (1) {
|
|
temp_f31 = __OSs16tof32(&sp8);
|
|
sp24.y = temp_f28 + (-0.08166667f * (0.75f * (temp_f31 * temp_f31)));
|
|
PSVECAdd(&sp30, &sp24, &sp30);
|
|
temp_f30 = BoardVecDistXZCalc(&sp3C, &sp30);
|
|
|
|
if (temp_f30 < 5.0f) {
|
|
sp24.x = sp24.z = 0.0f;
|
|
sp30.x = sp3C.x;
|
|
sp30.z = sp3C.z;
|
|
}
|
|
|
|
if (var_r29 == 0) {
|
|
if (sp3C.y < sp30.y) {
|
|
var_r29 = 1;
|
|
}
|
|
} else {
|
|
BoardDAngleCalcRange(&spC, temp_f27, 5.142857f);
|
|
BoardPlayerRotYSet(arg0, spC);
|
|
}
|
|
|
|
if (sp30.y <= sp3C.y && var_r29 != 0) {
|
|
sp30.y = sp3C.y;
|
|
break;
|
|
}
|
|
|
|
BoardPlayerPosSetV(arg0, &sp30);
|
|
HuPrcVSleep();
|
|
sp8 += 1;
|
|
}
|
|
|
|
BoardMusStart(1, 0x18, 0x7F, 0);
|
|
BoardPlayerPosSet(arg0, 0.0f, 0.0f, 0.0f);
|
|
|
|
|
|
BoardModelHookSet(lbl_1_data_310, "itemhook_oya", BoardPlayerModelGet(arg0));
|
|
BoardPlayerMotionStart(arg0, lbl_1_data_312, 0x40000001);
|
|
HuAudFXPlay(0x44F);
|
|
BoardModelMotionShiftSet(lbl_1_data_310, 5, 0.0f, 5.0f, 0);
|
|
|
|
sp18.x = -15.0f;
|
|
sp18.y = 180.0f;
|
|
sp18.z = 0.0f;
|
|
|
|
BoardCameraMotionStartEx(lbl_1_data_310, &sp18, NULL, 4000.0f, -1.0f, 336);
|
|
|
|
for (var_r28 = 0, sp8 = 0; ; sp8++) {
|
|
if (var_r28 == 0) {
|
|
if (sp8 == 0x78U) {
|
|
WipeColorSet(0, 0, 0);
|
|
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1);
|
|
var_r28 = 1;
|
|
}
|
|
} else if (WipeStatGet() == 0) {
|
|
break;
|
|
}
|
|
HuPrcVSleep();
|
|
}
|
|
}
|
|
|
|
void fn_1_3E88(s32 arg0) {
|
|
lbl_1_bss_7D = 0;
|
|
fn_1_48EC(arg0);
|
|
fn_1_5838(arg0);
|
|
lbl_1_bss_7D = 1;
|
|
BoardStatusShowSetForce(arg0);
|
|
BoardStatusShowSet(arg0, 1);
|
|
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 21);
|
|
|
|
while (WipeStatGet() != 0) {
|
|
HuPrcVSleep();
|
|
}
|
|
|
|
while (fn_1_62D0() != 3) {
|
|
HuPrcVSleep();
|
|
}
|
|
|
|
while (WipeStatGet() != 0) {
|
|
HuPrcVSleep();
|
|
}
|
|
|
|
fn_1_4A9C();
|
|
BoardAudSeqPause(0, 0, 0x3E8);
|
|
}
|
|
|
|
void fn_1_3F5C(s32 arg0) {
|
|
Mtx sp38;
|
|
Vec sp2C;
|
|
Vec sp20;
|
|
Vec sp14;
|
|
Vec sp8;
|
|
f32 temp_f31;
|
|
s16 temp_r28;
|
|
s32 var_r31;
|
|
s16 var_r30;
|
|
|
|
if (lbl_1_bss_0->unk1 != 0) {
|
|
lbl_1_bss_0->unk1 = 0;
|
|
var_r30 = BoardSpaceFlagSearch(0, 0x8000);
|
|
} else {
|
|
lbl_1_bss_0->unk1 = 1;
|
|
var_r30 = BoardSpaceFlagSearch(0, 0x4000);
|
|
}
|
|
|
|
temp_r28 = BoardSpaceLinkFlagSearch(0, var_r30, 0x02000000);
|
|
BoardCameraMoveSet(0);
|
|
BoardModelHookReset(lbl_1_data_310);
|
|
|
|
if (lbl_1_bss_0->unk1 != 0) {
|
|
var_r31 = BoardSpaceFlagSearch(0, 0x4000);
|
|
} else {
|
|
var_r31 = BoardSpaceFlagSearch(0, 0x8000);
|
|
}
|
|
|
|
var_r31 = BoardSpaceLinkFlagSearch(0, var_r31, 0x02000000);
|
|
BoardSpacePosGet(0, var_r31, &sp8);
|
|
temp_f31 = 0.0f;
|
|
sp8.x = (sp8.x + (-300.0 * sin((M_PI * temp_f31) / 180.0f)));
|
|
sp8.z = (sp8.z + (-300.0 * cos((M_PI * temp_f31) / 180.0f)));
|
|
sp8.y = 45.0f + sp8.y;
|
|
BoardModelPosSetV(lbl_1_data_310, &sp8);
|
|
BoardModelMotionStart(lbl_1_data_310, 2, 0x40000001);
|
|
BoardModelMotionStart(lbl_1_data_310, 1, 0x40000001);
|
|
BoardModelRotYSet(lbl_1_data_310, 0.0f);
|
|
PSMTXIdentity(sp38);
|
|
BoardModelMtxSet(lbl_1_data_310, &sp38);
|
|
|
|
sp20.x = 0.0f;
|
|
sp20.y = 150.0f;
|
|
sp20.z = 0.0f;
|
|
sp14.x = -15.0f;
|
|
sp14.y = 0.0f;
|
|
sp14.z = 0.0f;
|
|
|
|
BoardCameraMotionStartEx(lbl_1_data_310, &sp14, &sp20, 1900.0f, -1.0f, 1);
|
|
BoardSpacePosGet(0, temp_r28, &sp2C);
|
|
BoardPlayerPosSetV(arg0, &sp2C);
|
|
GWPlayer[arg0].space_curr = var_r30;
|
|
BoardPlayerRotYSet(arg0, 180.0f);
|
|
BoardPlayerIdleSet(arg0);
|
|
HuPrcSleep(2);
|
|
BoardCameraMoveSet(1);
|
|
BoardModelMotionStart(lbl_1_bss_C[2], 0, 0x40000001);
|
|
BoardModelMotionStartEndSet(lbl_1_bss_C[2], 1, 0x64);
|
|
BoardStatusItemSet(0);
|
|
HuPrcSleep(2);
|
|
BoardStatusItemSet(1);
|
|
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 21);
|
|
|
|
while (WipeStatGet() != 0) {
|
|
HuPrcVSleep();
|
|
}
|
|
|
|
BoardWinCreate(2, 0x16000F, 8);
|
|
BoardWinWait();
|
|
BoardWinKill();
|
|
}
|
|
|
|
void fn_1_4354(s32 arg0) {
|
|
s32 sp8;
|
|
s32 starPos;
|
|
s32 var_r30;
|
|
|
|
var_r30 = 0;
|
|
starPos = GWSystem.star_pos;
|
|
|
|
if (lbl_1_bss_0->unk1 != 0) {
|
|
if ((starPos == 1) || (starPos == 2) || (starPos == 3) || (starPos == 4)) {
|
|
var_r30 = 1;
|
|
}
|
|
} else if ((starPos == 0) || (starPos == 5) || (starPos == 6) || (starPos == 7)) {
|
|
var_r30 = 1;
|
|
}
|
|
|
|
if (BoardPlayerCoinsGet(arg0) < 0x14) {
|
|
var_r30 = 1;
|
|
}
|
|
|
|
if (var_r30 != 0) {
|
|
BoardComKeySetLeft();
|
|
return;
|
|
}
|
|
|
|
BoardComKeySetRight();
|
|
}
|
|
|
|
char *lbl_1_data_34C[] = {
|
|
"jyanA",
|
|
"jyanB"
|
|
};
|
|
|
|
void fn_1_4424(w03StructUnk2* arg0) {
|
|
Mtx sp108;
|
|
Mtx spD8;
|
|
Mtx spA8;
|
|
Mtx sp78;
|
|
Vec sp6C;
|
|
Vec sp60;
|
|
Vec sp54;
|
|
Vec sp48;
|
|
Vec sp3C;
|
|
Vec sp30;
|
|
Vec sp24;
|
|
Vec sp18;
|
|
s32 sp14;
|
|
f32 temp;
|
|
s16 spC;
|
|
s16 sp8;
|
|
f32 temp_f30;
|
|
s16 temp_r23;
|
|
s16 var_r25;
|
|
f32 sp10;
|
|
f32 sp10_2;
|
|
s16 i;
|
|
char* temp_r22;
|
|
w03StructUnk3* temp_r27;
|
|
ModelData* temp_r28;
|
|
|
|
memset(&lbl_1_bss_80, 0, 0xA0);
|
|
sp48.x = sp54.x = 0.0f;
|
|
sp48.y = sp54.y = 0.0f;
|
|
sp48.z = sp54.z = 0.0f;
|
|
sp14 = 0;
|
|
BoardSpaceFlagPosGet(0, 0x8000U, &sp6C);
|
|
BoardSpaceFlagPosGet(0, 0x8000U, &sp60);
|
|
|
|
if (lbl_1_bss_0->unk1 != 0) {
|
|
PSVECSubtract(&sp6C, &sp60, &sp3C);
|
|
} else {
|
|
PSVECSubtract(&sp60, &sp6C, &sp3C);
|
|
}
|
|
|
|
sp10_2 = 180.0f * (atan2(-sp3C.x, -sp3C.z) / M_PI);
|
|
BoardModelMotionStart(lbl_1_data_314, 0, 0U);
|
|
BoardModelMotionSpeedSet(lbl_1_data_314, 8.0f);
|
|
HuPrcSleep(1);
|
|
temp_r23 = BoardModelIDGet(lbl_1_data_314);
|
|
temp_r28 = &Hu3DData[temp_r23];
|
|
temp_r22 = lbl_1_data_34C[lbl_1_bss_0->unk1];
|
|
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_314), temp_r22, &sp48);
|
|
sp24.x = 0.0f;
|
|
sp24.y = 1.0f;
|
|
sp24.z = 0.0f;
|
|
|
|
for (i = var_r25 = 0; i < 20;) {
|
|
Hu3DMotionExec(temp_r23, temp_r28->unk_08, temp_r28->unk_64, 0);
|
|
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_314), temp_r22, &sp54);
|
|
temp_r28->unk_64 = (f32) (temp_r28->unk_64 + temp_r28->unk_68);
|
|
|
|
if (temp_r28->unk_64 > 400.0f) {
|
|
break;
|
|
}
|
|
|
|
if (var_r25 % 4 == 0 && ((s16) var_r25 != 0)) {
|
|
temp_r27 = &arg0->unk_08[i];
|
|
temp_r27->unk_00 = 1;
|
|
temp_f30 = (0.5f - BoardRandFloat()) * 90;
|
|
OSf32tos16(&temp_f30, &sp8);
|
|
sp8 = (sp8 / 10) * 10;
|
|
OSs16tof32(&sp8, &temp_f30);
|
|
lbl_1_bss_80[i+1][0] = temp_f30;
|
|
lbl_1_bss_80[i+1][1] = temp_r28->unk_64;
|
|
sp30 = sp48;
|
|
sp18 = sp54;
|
|
BoardMTXCalcLookAt(spA8, &sp18, &sp24, &sp30);
|
|
PSMTXTranspose(spA8, spA8);
|
|
MTXRotDeg(spD8, 'z', temp_f30);
|
|
PSMTXTrans(sp108, 0.0f, -350.0f, 0.0f);
|
|
PSMTXConcat(spD8, sp108, sp108);
|
|
PSMTXConcat(spA8, sp108, sp108);
|
|
PSMTXTrans(sp78, sp54.x, sp54.y, sp54.z);
|
|
PSMTXConcat(sp78, sp108, sp78);
|
|
Hu3DMtxTransGet(sp78, &temp_r27->unk_08);
|
|
BoardModelPosSetV(temp_r27->model, &temp_r27->unk_08);
|
|
BoardModelVisibilitySet(temp_r27->model, 1);
|
|
i++;
|
|
}
|
|
sp48 = sp54;
|
|
var_r25++;
|
|
}
|
|
|
|
arg0->unk_03 = i;
|
|
}
|
|
|
|
void fn_1_48EC(s32 arg0) {
|
|
Vec spC;
|
|
omObjData* obj;
|
|
s32 i;
|
|
w03StructUnk2* temp_r31;
|
|
w03StructUnk3* temp_r30;
|
|
|
|
obj = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, fn_1_50D4);
|
|
lbl_1_bss_74 = obj;
|
|
temp_r31 = OM_GET_WORK_PTR(obj, w03StructUnk2);
|
|
temp_r31->unkbit_00 = 0;
|
|
temp_r31->unk_01 = 0;
|
|
temp_r31->unkbit_03 = 0;
|
|
temp_r31->unkbit_04 = 0;
|
|
temp_r31->unk_02 = -1;
|
|
temp_r31->unkbit_01 = arg0;
|
|
temp_r31->unk_08 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xA00, 0x10000000U);
|
|
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_C[2]), "coin", &spC);
|
|
temp_r31->model = BoardModelCreate(0x770007, NULL, 0);
|
|
BoardModelVisibilitySet(temp_r31->model, 0);
|
|
BoardModelPosSetV(temp_r31->model, &spC);
|
|
BoardModelLayerSet(temp_r31->model, 2U);
|
|
memset(temp_r31->unk_08, 0, 0xA00U);
|
|
|
|
for (i = 0; i < 80; i++) {
|
|
temp_r30 = &temp_r31->unk_08[i];
|
|
temp_r30->model = BoardModelCreate(0x70009, 0, 1);
|
|
BoardModelVisibilitySet(temp_r30->model, 0);
|
|
BoardModelMotionStart(temp_r30->model, 0, 0x40000001U);
|
|
}
|
|
|
|
fn_1_4424(temp_r31);
|
|
}
|
|
|
|
void fn_1_4A9C(void) {
|
|
OM_GET_WORK_PTR(lbl_1_bss_74, w03UnkStruct4)->unk00_bit0 = 1;
|
|
}
|
|
|
|
void fn_1_4ABC(w03StructUnk2* arg0) {
|
|
Vec sp8;
|
|
f32 temp_f31;
|
|
w03StructUnk3* temp_r31;
|
|
s32 i;
|
|
|
|
BoardModelPosGet(lbl_1_data_310, &sp8);
|
|
sp8.y += 250.0f;
|
|
|
|
for (i = 0; i < arg0->unk_03; i++) {
|
|
temp_r31 = &arg0->unk_08[i];
|
|
if (temp_r31->unk_00 == 1) {
|
|
if (BoardVecMinDistCheck(&sp8, &temp_r31->unk_08, 200.0f) != 0) {
|
|
temp_r31->unk_00 = -1;
|
|
BoardModelVisibilitySet(temp_r31->model, 0);
|
|
CharModelLayerSetAll(2);
|
|
CharModelCoinEffectCreate(1, &temp_r31->unk_08);
|
|
BoardPlayerCoinsAdd(arg0->unkbit_01, 1);
|
|
HuAudFXPlay(7);
|
|
}
|
|
BoardModelPosSetV(temp_r31->model, &temp_r31->unk_08);
|
|
}
|
|
}
|
|
|
|
//reg alloc hack
|
|
(void)i;
|
|
(void)i;
|
|
|
|
BoardModelPosGet(lbl_1_data_310, &sp8);
|
|
|
|
for (i = arg0->unk_03; i < 80; i++) {
|
|
temp_r31 = &arg0->unk_08[i];
|
|
if (temp_r31->unk_00 == 1) {
|
|
temp_r31->unk_04 += 1.0f;
|
|
temp_f31 = 0.8f * (temp_r31->unk_04 * temp_r31->unk_04);
|
|
PSVECAdd(&temp_r31->unk_14, &temp_r31->unk_08, &temp_r31->unk_08);
|
|
temp_r31->unk_08.y += -0.0375f * temp_f31;
|
|
if (temp_r31->unk_08.y < -300.0f) {
|
|
temp_r31->unk_00 = -1;
|
|
BoardModelVisibilitySet(temp_r31->model, 0);
|
|
} else if (BoardVecMinDistCheck(&sp8, &temp_r31->unk_08, 200.0f) != 0) {
|
|
temp_r31->unk_00 = -1;
|
|
BoardModelVisibilitySet(temp_r31->model, 0);
|
|
BoardPlayerCoinsAdd(arg0->unkbit_01, 1);
|
|
CharModelLayerSetAll(2);
|
|
CharModelCoinEffectCreate(1, &temp_r31->unk_08);
|
|
HuAudFXPlay(7);
|
|
} else {
|
|
BoardModelPosSetV(temp_r31->model, &temp_r31->unk_08);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
s32 fn_1_4D0C(w03StructUnk3** arg0, s16* arg1) {
|
|
w03StructUnk2* temp_r31;
|
|
|
|
if (!(lbl_1_bss_74)) {
|
|
return 0;
|
|
}
|
|
|
|
temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_74, w03StructUnk2);
|
|
*arg0 = temp_r31->unk_08;
|
|
*arg1 = temp_r31->unk_03;
|
|
return 1;
|
|
}
|
|
|
|
void fn_1_4D60(w03StructUnk2* arg0) {
|
|
Vec sp8;
|
|
f32 temp_f31;
|
|
f32 temp_f30;
|
|
s32 i;
|
|
s32 j;
|
|
w03StructUnk3* temp_r31;
|
|
|
|
if (arg0->unk_02 == 1) {
|
|
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_C[2]), "coin", &sp8);
|
|
for (i = 0; i < 5; i++) {
|
|
for (j = arg0->unk_03; j < 80; j++) {
|
|
temp_r31 = &arg0->unk_08[j];
|
|
if (temp_r31->unk_00 == 0) {
|
|
temp_r31->unk_00 = 1;
|
|
temp_f31 = 360.0f * BoardRandFloat();
|
|
temp_f30 = 5.0f * BoardRandFloat();
|
|
temp_r31->unk_14.x = temp_f30 * sin((M_PI * temp_f31) / 180.0);
|
|
temp_r31->unk_14.y = 50.0f + (20.0f * BoardRandFloat());
|
|
temp_r31->unk_14.z = temp_f30 * cos((M_PI * temp_f31) / 180.0);
|
|
temp_r31->unk_08.x = sp8.x;
|
|
temp_r31->unk_08.y = sp8.y;
|
|
temp_r31->unk_08.z = sp8.z;
|
|
BoardModelVisibilitySet(temp_r31->model, 1);
|
|
BoardModelMotionStart(temp_r31->model, 0, 0x40000001);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void fn_1_4F24(w03StructUnk2* arg0) {
|
|
s32 var_r30 = 0;
|
|
s32 sp8[4] = {5, 10, 30, 40};
|
|
s32 temp_r29;
|
|
s32 temp_r28;
|
|
|
|
if (arg0->unk_02 == -1) {
|
|
if (GWTeamGet()) {
|
|
if (GWPlayer[arg0->unkbit_01].rank == 0) {
|
|
var_r30 = 5;
|
|
} else if (GWPlayer[arg0->unkbit_01].rank == 1) {
|
|
var_r30 = 20;
|
|
}
|
|
} else {
|
|
var_r30 = sp8[GWPlayer[arg0->unkbit_01].rank];
|
|
}
|
|
|
|
temp_r29 = BoardRandMod(100);
|
|
temp_r28 = BoardRandMod(100);
|
|
|
|
if (temp_r29 < var_r30) {
|
|
if (temp_r28 < 30) {
|
|
arg0->unk_02 = 2;
|
|
} else {
|
|
arg0->unk_02 = 1;
|
|
}
|
|
} else {
|
|
arg0->unk_02 = 0;
|
|
}
|
|
|
|
if (arg0->unk_02 != 0) {
|
|
BoardModelMotionShiftSet(lbl_1_bss_C[2], 0, 101.0f, 10.0f, 0);
|
|
}
|
|
}
|
|
}
|
|
|
|
void fn_1_50D4(omObjData* arg0) {
|
|
Vec sp50;
|
|
Vec sp44;
|
|
Vec sp38;
|
|
PlayerState* sp18;
|
|
PlayerState* sp14;
|
|
s16 sp10[2];
|
|
s16 spC[2];
|
|
f32 temp_f31;
|
|
f32 temp_f30;
|
|
f32 temp_f29;
|
|
s32 i, j, k;
|
|
s32 temp_r22;
|
|
s32 temp_r23;
|
|
w03StructUnk3* temp_r30;
|
|
w03StructUnk2* temp_r31;
|
|
w03StructUnk3* temp;
|
|
|
|
temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_74, w03StructUnk2);
|
|
|
|
if ((temp_r31->unkbit_00 != 0) || (BoardIsKill() != 0)) {
|
|
for (i = 0; i < 80; i++) {
|
|
temp = &temp_r31->unk_08[i];
|
|
BoardModelKill(temp->model);
|
|
}
|
|
|
|
for (i = 0; i < 4; i++) {
|
|
BoardModelVisibilitySet(BoardPlayerModelGet(i), 1);
|
|
}
|
|
|
|
BoardModelKill(temp_r31->model);
|
|
HuMemDirectFree(temp_r31->unk_08);
|
|
lbl_1_bss_74 = 0;
|
|
omDelObjEx(HuPrcCurrentGet(), arg0);
|
|
return;
|
|
}
|
|
|
|
if (lbl_1_data_314 != -1) {
|
|
temp_f31 = BoardModelMotionTimeGet(lbl_1_data_314);
|
|
if (temp_r31->unk_01 == 0) {
|
|
if ((lbl_1_bss_0->unk1 != 0) &&
|
|
((temp_f31 >= 212.0f)) ||
|
|
(lbl_1_bss_0->unk1 == 0) &&
|
|
((temp_f31 >= 86.0f))) {
|
|
|
|
temp_r31->unk_01 = 1;
|
|
}
|
|
} else {
|
|
fn_1_4F24(temp_r31);
|
|
}
|
|
|
|
if (temp_r31->unk_01 != 0) {
|
|
if (BoardModelMotionEndCheck(lbl_1_bss_C[2]) != 0) {
|
|
BoardModelMotionStart(lbl_1_bss_C[2], 0, 0x40000001);
|
|
BoardModelMotionStartEndSet(lbl_1_bss_C[2], 1, 100);
|
|
}
|
|
if (BoardModelMotionEndCheck(temp_r31->model) != 0) {
|
|
BoardModelVisibilitySet(temp_r31->model, 0);
|
|
}
|
|
}
|
|
|
|
if (BoardModelMotionTimeGet(lbl_1_bss_C[2]) >= 170.0f) {
|
|
if (temp_r31->unkbit_04 == 0) {
|
|
if (temp_r31->unkbit_03 == 0) {
|
|
HuAudFXPlay(0x43C);
|
|
} else {
|
|
HuAudFXPlay(0x43D);
|
|
}
|
|
temp_r31->unkbit_04 = 1;
|
|
}
|
|
if (temp_r31->unk_02 == 1) {
|
|
omVibrate(GWSystem.player_curr, 0xC, 4, 2);
|
|
fn_1_4D60(temp_r31);
|
|
} else if ((temp_r31->unk_02 == 2) && (temp_r31->unkbit_03 == 0)) {
|
|
omVibrate(GWSystem.player_curr, 0xC, 0xC, 0);
|
|
BoardModelVisibilitySet(temp_r31->model, 1);
|
|
BoardModelMotionStart(temp_r31->model, 0, 0);
|
|
temp_r31->unkbit_03 = 1;
|
|
}
|
|
}
|
|
|
|
fn_1_4ABC(temp_r31);
|
|
|
|
for (i = 0; i < 4; i++) {
|
|
if (i != GWSystem.player_curr) {
|
|
BoardPlayerPosGet(i, &sp50);
|
|
BoardModelPosGet(lbl_1_data_310, &sp44);
|
|
PSVECSubtract(&sp50, &sp44, &sp38);
|
|
if (PSVECMag(&sp38) >= 2000.0f) {
|
|
BoardModelVisibilitySet(BoardPlayerModelGet(i), 0);
|
|
} else {
|
|
BoardModelVisibilitySet(BoardPlayerModelGet(i), 1);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void fn_1_5838(s32 arg0) {
|
|
Vec sp18;
|
|
Vec spC;
|
|
omObjData* obj;
|
|
w03UnkStruct5* temp_r31;
|
|
|
|
obj = omAddObjEx(boardObjMan, 0x7E01, 0, 0, -1, &fn_1_5AC8);
|
|
lbl_1_bss_78 = obj;
|
|
temp_r31 = OM_GET_WORK_PTR(obj, w03UnkStruct5);
|
|
temp_r31->unk00_bit0 = 0;
|
|
temp_r31->unk00_bit1 = arg0;
|
|
temp_r31->unk00_bit4 = 1;
|
|
temp_r31->unk00_bit3 = 0;
|
|
|
|
switch (GWPlayer[temp_r31->unk00_bit1].diff) {
|
|
case 0:
|
|
temp_r31->unk_08 = (-15.0f + (-30.0f * BoardRandFloat()));
|
|
break;
|
|
case 1:
|
|
temp_r31->unk_08 = (-5.0f + (-10.0f * BoardRandFloat()));
|
|
break;
|
|
case 2:
|
|
temp_r31->unk_08 = (-2.0f + (-5.0f * BoardRandFloat()));
|
|
break;
|
|
case 3:
|
|
temp_r31->unk_08 = 0.0f;
|
|
break;
|
|
}
|
|
|
|
BoardCameraMoveSet(0);
|
|
|
|
sp18.x = 0.0f;
|
|
sp18.y = -350.0f;
|
|
sp18.z = 0.0f;
|
|
spC.x = -20.0f;
|
|
spC.y = 0.0f;
|
|
spC.z = 0.0f;
|
|
|
|
BoardCameraMotionStartEx(lbl_1_data_310, &spC, &sp18, 3000.0f, -1.0f, 1);
|
|
BoardModelMotionStart(lbl_1_data_310, 3, 0x40000001U);
|
|
BoardModelMotionStart(lbl_1_data_314, 0, 0U);
|
|
BoardModelMotionSpeedSet(lbl_1_data_314, 0.7f);
|
|
fn_1_5C5C(obj, temp_r31);
|
|
BoardCameraMotionWait();
|
|
BoardCameraTargetModelSet(-1);
|
|
}
|
|
|
|
void fn_1_5AC8(omObjData* arg0) {
|
|
s32 temp_r0;
|
|
w03UnkStruct5* temp_r31;
|
|
|
|
temp_r31 = OM_GET_WORK_PTR(arg0, w03UnkStruct5);
|
|
|
|
if ((temp_r31->unk00_bit0 != 0) || (BoardIsKill() != 0)) {
|
|
lbl_1_bss_78 = NULL;
|
|
omDelObjEx(HuPrcCurrentGet(), arg0);
|
|
if (lbl_1_data_316 != -1) {
|
|
HuWinKill(lbl_1_data_316);
|
|
lbl_1_data_316 = -1;
|
|
}
|
|
return;
|
|
}
|
|
|
|
if ((10.0f == BoardModelMotionTimeGet(lbl_1_data_310)) || (50.0f == BoardModelMotionTimeGet(lbl_1_data_310))) {
|
|
HuAudFXPlay(0x43B);
|
|
}
|
|
|
|
switch (temp_r31->unk00_bit4) {
|
|
case 1:
|
|
if (lbl_1_bss_7D != 0) {
|
|
fn_1_629C(2);
|
|
fn_1_62FC();
|
|
BoardCameraTargetModelSet(lbl_1_data_310);
|
|
BoardCameraMoveSet(1);
|
|
|
|
}
|
|
break;
|
|
case 2:
|
|
fn_1_5C5C(arg0, (w03UnkStruct5* ) temp_r31);
|
|
break;
|
|
case 3:
|
|
BoardCameraTargetModelSet(-1);
|
|
BoardCameraMoveSet(0);
|
|
temp_r31->unk00_bit0 = 1;
|
|
break;
|
|
}
|
|
}
|
|
|
|
char *lbl_1_data_35C[] = {
|
|
"jyanA",
|
|
"jyanB"
|
|
};
|
|
|
|
void fn_1_5C5C(omObjData* arg0, w03UnkStruct5* arg1) {
|
|
Mtx sp110;
|
|
Mtx spE0;
|
|
Mtx spB0;
|
|
Mtx sp80;
|
|
Mtx sp50;
|
|
Vec sp44;
|
|
Vec sp38;
|
|
Vec sp2C;
|
|
Vec sp20;
|
|
Vec sp14;
|
|
Vec sp8;
|
|
s16 temp_r3;
|
|
char* temp_r27;
|
|
ModelData* temp_r30;
|
|
|
|
if (((WipeStatGet() == 0) && (arg1->unk00_bit3) || (BoardModelMotionEndCheck(lbl_1_data_314) != 0))) {
|
|
fn_1_629C(3);
|
|
return;
|
|
}
|
|
|
|
if ((BoardModelMotionTimeGet(lbl_1_data_314) >= 410.0f) && (arg1->unk00_bit3) == 0) {
|
|
WipeColorSet(0, 0, 0);
|
|
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1);
|
|
arg1->unk00_bit3 = 1;
|
|
BoardAudSeqFadeOut(1, 0x3E8);
|
|
}
|
|
|
|
sp38.x = arg0->rot.x;
|
|
sp38.y = arg0->rot.y;
|
|
sp38.z = arg0->rot.z;
|
|
|
|
temp_r3 = BoardModelIDGet(lbl_1_data_314);
|
|
temp_r30 = &Hu3DData[temp_r3];
|
|
temp_r27 = lbl_1_data_35C[lbl_1_bss_0->unk1];
|
|
|
|
Hu3DMotionExec(temp_r3, temp_r30->unk_08, temp_r30->unk_64, 0);
|
|
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_314), temp_r27, &sp44);
|
|
|
|
if (0.0f != temp_r30->unk_64) {
|
|
PSVECSubtract(&sp38, &sp44, &sp2C);
|
|
} else {
|
|
sp2C.x = sp2C.y = sp2C.z = 0.0f;
|
|
}
|
|
|
|
arg0->rot.x = sp44.x;
|
|
arg0->rot.y = sp44.y;
|
|
arg0->rot.z = sp44.z;
|
|
|
|
fn_1_602C(arg0, arg1);
|
|
|
|
sp8 = sp38;
|
|
sp14 = sp44;
|
|
sp20.x = sp20.z = 0.0f;
|
|
sp20.y = 1.0f;
|
|
|
|
BoardMTXCalcLookAt(sp110, &sp14, &sp20, &sp8);
|
|
PSMTXTranspose(sp110, sp110);
|
|
MTXRotDeg(spE0, 'z', -arg1->unk_04);
|
|
PSMTXTrans(sp50, 0.0f, -600.0f, 0.0f);
|
|
PSMTXConcat(spE0, sp50, sp50);
|
|
PSMTXConcat(sp110, sp50, sp50);
|
|
PSMTXTrans(sp80, sp44.x, sp44.y, sp44.z);
|
|
PSMTXConcat(sp80, sp50, sp80);
|
|
Hu3DMtxTransGet(sp80, &sp44);
|
|
MTXRotDeg(spB0, 'y', (180.0 * (atan2(-sp2C.x, -sp2C.z) / M_PI)));
|
|
PSMTXConcat(spB0, spE0, sp110);
|
|
BoardModelMtxSet(lbl_1_data_310, &sp110);
|
|
BoardModelPosSetV(lbl_1_data_310, &sp44);
|
|
BoardCameraRotSet(-20.0f, (180.0 * (atan2(sp2C.x, sp2C.z) / M_PI)));
|
|
}
|
|
|
|
void fn_1_602C(omObjData* arg0, w03UnkStruct5* arg1) {
|
|
f32 temp_f31 = 0.0f;
|
|
f32 var_f30;
|
|
f32 var_f29;
|
|
|
|
if (GWPlayer[arg1->unk00_bit1].com == 0) {
|
|
var_f30 = HuPadStkX[GWPlayer[arg1->unk00_bit1].port];
|
|
} else {
|
|
var_f30 = fn_1_61A4(arg0, arg1);
|
|
}
|
|
|
|
temp_f31 = 0.625f * var_f30;
|
|
|
|
if (temp_f31 < 0.0f) {
|
|
var_f29 = -temp_f31;
|
|
} else {
|
|
var_f29 = temp_f31;
|
|
}
|
|
|
|
if (var_f29 < 2.0f) {
|
|
arg1->unk_04 *= 0.97f;
|
|
return;
|
|
}
|
|
|
|
BoardDAngleCalcRange(&arg1->unk_04, temp_f31, 1.0f);
|
|
}
|
|
|
|
f32 fn_1_61A4(omObjData* arg0, w03UnkStruct5* arg1) {
|
|
w03StructUnk3* sp8;
|
|
f32 temp_f31;
|
|
s16 i;
|
|
w03StructUnk2* temp_r29;
|
|
s16 var_r28;
|
|
f32* temp_r31;
|
|
|
|
if (lbl_1_bss_74) {
|
|
temp_r29 = OM_GET_WORK_PTR(lbl_1_bss_74, w03StructUnk2);
|
|
sp8 = temp_r29->unk_08;
|
|
var_r28 = temp_r29->unk_03;
|
|
}
|
|
|
|
temp_f31 = BoardModelMotionTimeGet(lbl_1_data_314);
|
|
temp_f31 = temp_f31 + arg1->unk_08;
|
|
|
|
for (i = 0; i < var_r28; i++) {
|
|
temp_r31 = lbl_1_bss_80[i];
|
|
if ((temp_r31[1] < temp_f31) && (temp_r31[3] > temp_f31)) {
|
|
return -1.5f * temp_r31[2];
|
|
}
|
|
}
|
|
|
|
return 0.0f;
|
|
}
|
|
|
|
void fn_1_629C(s8 arg0) {
|
|
w03UnkStruct5* temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_78, w03UnkStruct5);
|
|
temp_r31->unk00_bit4 = arg0;
|
|
}
|
|
|
|
s32 fn_1_62D0(void) {
|
|
w03UnkStruct5* temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_78, w03UnkStruct5);
|
|
return temp_r31->unk00_bit4;
|
|
}
|
|
|
|
void fn_1_62FC(void) {
|
|
f32 widthHeight[2];
|
|
s32 messageID = 0x000D0005;
|
|
f32 x;
|
|
f32 y;
|
|
|
|
HuWinMesMaxSizeGet(1, widthHeight, messageID);
|
|
x = -10000.0f;
|
|
y = 392.0f;
|
|
lbl_1_data_316 = HuWinCreate(x, y, widthHeight[0], widthHeight[1], 0);
|
|
HuWinBGTPLvlSet(lbl_1_data_316, 0.0f);
|
|
HuWinMesSpeedSet(lbl_1_data_316, 0);
|
|
HuWinMesSet(lbl_1_data_316, messageID);
|
|
}
|