Matched REL/w01/mg_item + some data cleanup
This commit is contained in:
parent
fc06ca8f49
commit
9dcac2c156
18 changed files with 1142 additions and 197 deletions
|
|
@ -1097,7 +1097,7 @@ static void fn_1_3624(void) {
|
|||
sp30.x = -40.0f;
|
||||
sp30.z = 0.0f;
|
||||
sp30.y = -lbl_1_bss_63C;
|
||||
BoardCameraMotionStartEx(lbl_1_bss_6C4[0], &sp30, 0, 150.0f, -1.0f, 2);
|
||||
BoardCameraMotionStartEx(lbl_1_bss_6C4[0], &sp30, NULL, 150.0f, -1.0f, 2);
|
||||
BoardCameraMotionWait();
|
||||
BoardModelPosGet(lbl_1_bss_6C4[0], &lbl_1_bss_618);
|
||||
lbl_1_bss_630.x = lbl_1_bss_618.x + 1000.0 * (sin(sp30.y * M_PI / 180.0) * cos(sp30.x * M_PI / 180.0));
|
||||
|
|
@ -1980,7 +1980,7 @@ static void fn_1_7A64(void) {
|
|||
var_r20 = BoardSpaceFlagSearch(1, 0x2000);
|
||||
}
|
||||
lbl_1_bss_654 = sp34;
|
||||
BoardCameraMotionStartEx(lbl_1_bss_6C4[0], 0, 0, 2400.0f, -1.0f, 2);
|
||||
BoardCameraMotionStartEx(lbl_1_bss_6C4[0], NULL, NULL, 2400.0f, -1.0f, 2);
|
||||
PSMTXRotRad(lbl_1_bss_678, 'y', MTXDegToRad(lbl_1_bss_63C));
|
||||
BoardModelMtxSet(lbl_1_bss_6C4[0], &lbl_1_bss_678);
|
||||
BoardModelRotSet(lbl_1_bss_6C4[0], 0.0f, 0.0f, 0.0f);
|
||||
|
|
|
|||
947
src/REL/w01Dll/mg_item.c
Executable file
947
src/REL/w01Dll/mg_item.c
Executable file
|
|
@ -0,0 +1,947 @@
|
|||
#include "REL/w01Dll.h"
|
||||
#include "game/audio.h"
|
||||
#include "game/data.h"
|
||||
#include "game/gamework_data.h"
|
||||
#include "game/hsfanim.h"
|
||||
#include "game/hsfdraw.h"
|
||||
#include "game/hsfman.h"
|
||||
#include "game/hsfmotion.h"
|
||||
#include "game/minigame_seq.h"
|
||||
#include "game/object.h"
|
||||
#include "game/objsub.h"
|
||||
#include "game/pad.h"
|
||||
#include "game/process.h"
|
||||
#include "game/sprite.h"
|
||||
#include "game/window.h"
|
||||
#include "game/board/audio.h"
|
||||
#include "game/board/main.h"
|
||||
#include "game/board/model.h"
|
||||
#include "game/board/player.h"
|
||||
#include "game/board/ui.h"
|
||||
#include "game/board/window.h"
|
||||
|
||||
#include "dolphin.h"
|
||||
#include "math.h"
|
||||
|
||||
static void fn_1_E100(void);
|
||||
static void fn_1_E154(void);
|
||||
static void fn_1_E2B8(omObjData *arg0);
|
||||
static void fn_1_E44C(omObjData *arg0);
|
||||
static void fn_1_E914(omObjData *arg0);
|
||||
static void fn_1_ECD4(omObjData *arg0);
|
||||
static void fn_1_EEA0(omObjData *arg0, u16 *arg1);
|
||||
static void fn_1_EED8(omObjData *arg0);
|
||||
static void fn_1_F09C(omObjData *arg0);
|
||||
static void fn_1_F348(omObjData *arg0);
|
||||
static void fn_1_F3F8(omObjData *arg0);
|
||||
static void fn_1_F6E8(omObjData *arg0);
|
||||
static void fn_1_F890(omObjData *arg0);
|
||||
static void fn_1_FA1C(omObjData *arg0);
|
||||
static void fn_1_FABC(omObjData *arg0);
|
||||
static void fn_1_FB58(void);
|
||||
static void fn_1_FC3C(omObjData *arg0);
|
||||
static void fn_1_FCEC(void);
|
||||
static void fn_1_FD3C(omObjData *arg0);
|
||||
static void fn_1_FE44(omObjData *arg0);
|
||||
static void fn_1_FED0(omObjData *arg0);
|
||||
static s16 fn_1_1001C(u32 arg0);
|
||||
static void fn_1_101B8(s16 arg0);
|
||||
static void fn_1_10664(omObjData *arg0);
|
||||
static void fn_1_10820(omObjData *arg0);
|
||||
static void fn_1_10AE8(omObjData *arg0);
|
||||
static float fn_1_10BB0(u32 arg0);
|
||||
static void fn_1_10CF0(u32 arg0);
|
||||
static float fn_1_10EB8(Vec *arg0);
|
||||
static void fn_1_11064(ModelData *model, ParticleData *particle, Mtx matrix);
|
||||
static void fn_1_11484(ModelData *model, ParticleData *particle, Mtx matrix);
|
||||
|
||||
static void *lbl_1_bss_818;
|
||||
static Vec lbl_1_bss_80C;
|
||||
static omObjData *lbl_1_bss_7FC[4];
|
||||
static omObjData *lbl_1_bss_7F8;
|
||||
static omObjData *lbl_1_bss_7F4;
|
||||
static omObjData *lbl_1_bss_7F0;
|
||||
static float lbl_1_bss_7EC;
|
||||
static float lbl_1_bss_7E8;
|
||||
static s32 lbl_1_bss_7E4;
|
||||
static Vec lbl_1_bss_7D8;
|
||||
static s16 lbl_1_bss_7D6;
|
||||
static s16 lbl_1_bss_7D4;
|
||||
static s16 lbl_1_bss_7D2;
|
||||
static s16 lbl_1_bss_7D0;
|
||||
static Vec lbl_1_bss_7C4;
|
||||
static s32 lbl_1_bss_7C0_pad;
|
||||
static s32 lbl_1_bss_7BC;
|
||||
static s32 lbl_1_bss_7B8;
|
||||
static s16 lbl_1_bss_7B4;
|
||||
static s32 lbl_1_bss_7B0_pad;
|
||||
static s32 lbl_1_bss_7AC;
|
||||
static s16 lbl_1_bss_7AA;
|
||||
static s16 lbl_1_bss_7A8;
|
||||
static s32 lbl_1_bss_7A4;
|
||||
static AnimData *lbl_1_bss_7A0;
|
||||
|
||||
static s32 lbl_1_data_F08[] = {
|
||||
DATA_MAKE_NUM(DATADIR_BOARD, 109),
|
||||
DATA_MAKE_NUM(DATADIR_BOARD, 110),
|
||||
DATA_MAKE_NUM(DATADIR_BOARD, 111),
|
||||
DATA_MAKE_NUM(DATADIR_BOARD, 112),
|
||||
DATA_MAKE_NUM(DATADIR_BOARD, 113),
|
||||
DATA_MAKE_NUM(DATADIR_BOARD, 114),
|
||||
DATA_MAKE_NUM(DATADIR_BOARD, 115),
|
||||
DATA_MAKE_NUM(DATADIR_BOARD, 116),
|
||||
DATA_MAKE_NUM(DATADIR_BOARD, 118),
|
||||
DATA_MAKE_NUM(DATADIR_BOARD, 119),
|
||||
DATA_MAKE_NUM(DATADIR_BOARD, 120),
|
||||
DATA_MAKE_NUM(DATADIR_BOARD, 121),
|
||||
DATA_MAKE_NUM(DATADIR_BOARD, 122),
|
||||
DATA_MAKE_NUM(DATADIR_BOARD, 123)
|
||||
};
|
||||
|
||||
static s32 lbl_1_data_F40[8] = {
|
||||
DATA_MAKE_NUM(DATADIR_MARIOMOT, 23),
|
||||
DATA_MAKE_NUM(DATADIR_LUIGIMOT, 23),
|
||||
DATA_MAKE_NUM(DATADIR_PEACHMOT, 23),
|
||||
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 23),
|
||||
DATA_MAKE_NUM(DATADIR_WARIOMOT, 23),
|
||||
DATA_MAKE_NUM(DATADIR_DONKEYMOT, 23),
|
||||
DATA_MAKE_NUM(DATADIR_DAISYMOT, 23),
|
||||
DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 23)
|
||||
};
|
||||
|
||||
static s32 lbl_1_data_F60[8] = {
|
||||
DATA_MAKE_NUM(DATADIR_MARIOMOT, 64),
|
||||
DATA_MAKE_NUM(DATADIR_LUIGIMOT, 64),
|
||||
DATA_MAKE_NUM(DATADIR_PEACHMOT, 64),
|
||||
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 64),
|
||||
DATA_MAKE_NUM(DATADIR_WARIOMOT, 64),
|
||||
DATA_MAKE_NUM(DATADIR_DONKEYMOT, 64),
|
||||
DATA_MAKE_NUM(DATADIR_DAISYMOT, 64),
|
||||
DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 64)
|
||||
};
|
||||
|
||||
void fn_1_D740(s16 *arg0) {
|
||||
s16 sp10[14];
|
||||
s16 sp8[4];
|
||||
float temp_f30;
|
||||
float temp_f29;
|
||||
float var_f31;
|
||||
s32 var_r28;
|
||||
s32 var_r30;
|
||||
s32 i;
|
||||
s32 j;
|
||||
|
||||
lbl_1_bss_818 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_W01, 28), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
||||
BoardModelPosGet(lbl_1_bss_6C4[16], &lbl_1_bss_80C);
|
||||
sp8[0] = BoardModelIDGet(lbl_1_bss_6C4[19]);
|
||||
BoardModelVisibilitySet(lbl_1_bss_6C4[19], 1);
|
||||
for (i = 1; i < 4; i++) {
|
||||
sp8[i] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_W01, 24));
|
||||
}
|
||||
var_r30 = 0;
|
||||
for (i = 0; i < 4; i++) {
|
||||
lbl_1_bss_7FC[i] = omAddObjEx(boardObjMan, 0x165, 2, 0, -1, NULL);
|
||||
if (arg0[i] != -1) {
|
||||
lbl_1_bss_7FC[var_r30++]->work[1] = arg0[i];
|
||||
}
|
||||
}
|
||||
while (var_r30 != 4) {
|
||||
var_r28 = 0;
|
||||
for (i = 0; i < 14; i++) {
|
||||
for (j = 0; j < var_r30; j++) {
|
||||
if (i == lbl_1_bss_7FC[j]->work[1]) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (j == var_r30) {
|
||||
sp10[var_r28++] = i;
|
||||
}
|
||||
}
|
||||
lbl_1_bss_7FC[var_r30++]->work[1] = sp10[rand8() % var_r28];
|
||||
}
|
||||
temp_f30 = BoardModelMotionTimeGet(lbl_1_bss_6C4[18]);
|
||||
temp_f29 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[18]);
|
||||
for (i = 0; i < 4; i++) {
|
||||
lbl_1_bss_7FC[i]->model[0] = sp8[i];
|
||||
lbl_1_bss_7FC[i]->model[1] = Hu3DModelCreateFile(lbl_1_data_F08[lbl_1_bss_7FC[i]->work[1]]);
|
||||
if (lbl_1_bss_7FC[i]->work[1] == 5) {
|
||||
Hu3DData[lbl_1_bss_7FC[i]->model[1]].unk_F0[1][3] = -50.0f;
|
||||
}
|
||||
if (lbl_1_bss_7FC[i]->work[1] == 11) {
|
||||
Hu3DModelAttrSet(lbl_1_bss_7FC[i]->model[1], 0x40000001);
|
||||
}
|
||||
if (lbl_1_bss_7FC[i]->work[1] == 4) {
|
||||
Hu3DMotionSpeedSet(lbl_1_bss_7FC[i]->model[1], 0.0f);
|
||||
}
|
||||
Hu3DModelAttrReset(sp8[i], 1);
|
||||
Hu3DModelAttrSet(lbl_1_bss_7FC[i]->model[1], 1);
|
||||
Hu3DModelAttrSet(lbl_1_bss_7FC[i]->model[1], 0x40000002);
|
||||
omSetTra(lbl_1_bss_7FC[i], lbl_1_bss_80C.x, lbl_1_bss_80C.y + 66.0f, lbl_1_bss_80C.z);
|
||||
var_f31 = 90.0f - 90.0f * i + 360.0f * (temp_f30 / temp_f29);
|
||||
if (var_f31 >= 360.0f) {
|
||||
var_f31 -= 360.0f;
|
||||
}
|
||||
if (var_f31 < 0.0f) {
|
||||
var_f31 += 360.0f;
|
||||
}
|
||||
omSetRot(lbl_1_bss_7FC[i], 0.0f, var_f31, 0.0f);
|
||||
lbl_1_bss_7FC[i]->work[0] = Hu3DAnimCreate(lbl_1_bss_818, lbl_1_bss_7FC[i]->model[0], "item01");
|
||||
Hu3DAnimAttrSet(lbl_1_bss_7FC[i]->work[0], 1);
|
||||
lbl_1_bss_7FC[i]->work[2] = i;
|
||||
}
|
||||
for (i = 0; i < 4; i++) {
|
||||
Hu3DAnmNoSet(lbl_1_bss_7FC[i]->work[0], lbl_1_bss_7FC[i]->work[1]);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_DD84(void) {
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (i != 0) {
|
||||
Hu3DModelKill(lbl_1_bss_7FC[i]->model[0]);
|
||||
} else {
|
||||
BoardModelVisibilitySet(lbl_1_bss_6C4[19], 0);
|
||||
Hu3DAnimKill(lbl_1_bss_7FC[i]->work[0]);
|
||||
}
|
||||
Hu3DModelKill(lbl_1_bss_7FC[i]->model[1]);
|
||||
omDelObjEx(boardObjMan, lbl_1_bss_7FC[i]);
|
||||
}
|
||||
if (lbl_1_bss_7A0) {
|
||||
HuSprAnimKill(lbl_1_bss_7A0);
|
||||
lbl_1_bss_7A0 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_DE94(void) {
|
||||
s32 i;
|
||||
|
||||
BoardModelPosGet(lbl_1_bss_6C4[16], &lbl_1_bss_80C);
|
||||
for (i = 0; i < 4; i++) {
|
||||
lbl_1_bss_7FC[i]->func = fn_1_FED0;
|
||||
}
|
||||
lbl_1_bss_7F4 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_E2B8);
|
||||
lbl_1_bss_7F8 = omAddObjEx(boardObjMan, 0x133, 0, 0, -1, fn_1_E44C);
|
||||
lbl_1_bss_7F8->work[3] = rand8() % 200 + 10;
|
||||
lbl_1_bss_7E4 = GWSystem.player_curr;
|
||||
BoardPlayerPosGet(lbl_1_bss_7E4, &lbl_1_bss_7C4);
|
||||
lbl_1_bss_7EC = 1.0f;
|
||||
lbl_1_bss_7E8 = 1.0f;
|
||||
lbl_1_bss_7AA = 0;
|
||||
lbl_1_bss_7BC = BoardPlayerMotionCreate(lbl_1_bss_7E4, lbl_1_data_F40[GWPlayer[lbl_1_bss_7E4].character]);
|
||||
lbl_1_bss_7B8 = BoardPlayerMotionCreate(lbl_1_bss_7E4, lbl_1_data_F60[GWPlayer[lbl_1_bss_7E4].character]);
|
||||
lbl_1_bss_7A0 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 0));
|
||||
HuSprAnimLock(lbl_1_bss_7A0);
|
||||
lbl_1_bss_7B4 = 0;
|
||||
}
|
||||
|
||||
static void fn_1_E100(void) {
|
||||
lbl_1_bss_7AA = 1;
|
||||
BoardMGExit();
|
||||
HuAudFXPlay(0x40F);
|
||||
BoardModelMotionStart(lbl_1_bss_6C4[21], 0, 0x40000004);
|
||||
}
|
||||
|
||||
static void fn_1_E154(void) {
|
||||
fn_1_DD84();
|
||||
BoardPlayerMotionKill(lbl_1_bss_7E4, lbl_1_bss_7BC);
|
||||
BoardPlayerMotionKill(lbl_1_bss_7E4, lbl_1_bss_7B8);
|
||||
BoardModelVisibilitySet(lbl_1_bss_6C4[20], 0);
|
||||
BoardMGDoneFlagSet(0);
|
||||
}
|
||||
|
||||
static void fn_1_E2B8(omObjData *arg0) {
|
||||
if (lbl_1_bss_7AA == 1 && BoardMGDoneFlagGet() == 1) {
|
||||
fn_1_E154();
|
||||
omDelObjEx(HuPrcCurrentGet(), arg0);
|
||||
}
|
||||
}
|
||||
|
||||
static char *lbl_1_data_F9C[] = {
|
||||
"uma1", "uma2", "uma3", "uma4"
|
||||
};
|
||||
|
||||
static void fn_1_E44C(omObjData *arg0) {
|
||||
Vec sp18;
|
||||
Vec spC;
|
||||
float temp_f27;
|
||||
float var_f29;
|
||||
float temp_f28;
|
||||
float var_f26;
|
||||
float var_f24;
|
||||
s32 i;
|
||||
|
||||
temp_f28 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[17]);
|
||||
var_f29 = BoardModelMotionTimeGet(lbl_1_bss_6C4[17]);
|
||||
if (var_f29 >= temp_f28) {
|
||||
var_f29 -= temp_f28;
|
||||
}
|
||||
var_f24 = fmod(var_f29, temp_f28 / 4);
|
||||
if (var_f24 >= temp_f28 / 4 - 30.0f && lbl_1_bss_7B4 == 0) {
|
||||
lbl_1_bss_7B4 = 1;
|
||||
lbl_1_bss_7A8 = 90;
|
||||
}
|
||||
if (lbl_1_bss_7B4 != 0) {
|
||||
lbl_1_bss_7EC *= 0.97f;
|
||||
lbl_1_bss_7A8--;
|
||||
}
|
||||
if (lbl_1_bss_7EC != 1.0f && lbl_1_bss_7A8 == 0) {
|
||||
lbl_1_bss_7EC = 0.0f;
|
||||
BoardAudSeqPause(0, 1, 1000);
|
||||
BoardPlayerPosGet(lbl_1_bss_7E4, &sp18);
|
||||
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_6C4[17]), lbl_1_data_F9C[0], &spC);
|
||||
var_f26 = PSVECSquareDistance(&sp18, &spC);
|
||||
arg0->work[2] = 0;
|
||||
for (i = 1; i < 4; i++) {
|
||||
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_6C4[17]), lbl_1_data_F9C[i], &spC);
|
||||
temp_f27 = PSVECSquareDistance(&sp18, &spC);
|
||||
if (temp_f27 < var_f26) {
|
||||
var_f26 = temp_f27;
|
||||
arg0->work[2] = i;
|
||||
}
|
||||
}
|
||||
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_6C4[17]), lbl_1_data_F9C[arg0->work[2]], &lbl_1_bss_7D8);
|
||||
PSVECSubtract(&lbl_1_bss_7D8, &sp18, &spC);
|
||||
PSVECNormalize(&spC, &spC);
|
||||
arg0->trans.x = spC.x;
|
||||
arg0->trans.y = spC.y;
|
||||
arg0->trans.z = spC.z;
|
||||
arg0->rot.x = sqrtf((lbl_1_bss_7D8.x - sp18.x) * (lbl_1_bss_7D8.x - sp18.x) + (lbl_1_bss_7D8.z - sp18.z) * (lbl_1_bss_7D8.z - sp18.z));
|
||||
arg0->rot.y = 10.0f;
|
||||
arg0->rot.z = sp18.y;
|
||||
arg0->scale.x = 0.0f;
|
||||
BoardPlayerMotionShiftSet(lbl_1_bss_7E4, 4, 0.0f, 5.0f, 0);
|
||||
arg0->func = fn_1_E914;
|
||||
}
|
||||
BoardModelMotionSpeedSet(lbl_1_bss_6C4[17], lbl_1_bss_7EC);
|
||||
}
|
||||
|
||||
static void fn_1_E914(omObjData *arg0) {
|
||||
Vec spC;
|
||||
s32 i;
|
||||
|
||||
BoardPlayerPosGet(lbl_1_bss_7E4, &spC);
|
||||
spC.x += arg0->trans.x * arg0->rot.x / 32.760002f;
|
||||
spC.z += arg0->trans.z * arg0->rot.x / 32.760002f;
|
||||
spC.y += arg0->rot.y - 0.016666668f * arg0->scale.x * arg0->scale.x;
|
||||
arg0->scale.x += 1.0f;
|
||||
if (sqrtf((lbl_1_bss_7D8.x - spC.x) * (lbl_1_bss_7D8.x - spC.x) + (lbl_1_bss_7D8.z - spC.z) * (lbl_1_bss_7D8.z - spC.z)) < 2.0f) {
|
||||
spC = lbl_1_bss_7D8;
|
||||
BoardPlayerRotSet(lbl_1_bss_7E4, 0.0f, fn_1_10BB0(arg0->work[2]), 0.0f);
|
||||
lbl_1_bss_7EC = 0.05f;
|
||||
lbl_1_bss_7E8 = 0.05f;
|
||||
BoardModelAttrReset(lbl_1_bss_6C4[18], 0x40000002);
|
||||
BoardModelAttrSet(lbl_1_bss_6C4[18], 0x40000001);
|
||||
BoardModelMotionSpeedSet(lbl_1_bss_6C4[18], 0.0f);
|
||||
for (i = 0; i < 4; i++) {
|
||||
lbl_1_bss_7FC[i]->func = fn_1_FED0;
|
||||
}
|
||||
BoardPlayerMotionShiftSet(lbl_1_bss_7E4, lbl_1_bss_7B8, 0.0f, 5.0f, 0x40000001);
|
||||
lbl_1_bss_7D6 = MGSeqCreate(3, 0);
|
||||
BoardMusStart(1, 0xE, 0x7F, 0);
|
||||
arg0->func = fn_1_ECD4;
|
||||
}
|
||||
BoardPlayerPosSetV(lbl_1_bss_7E4, &spC);
|
||||
}
|
||||
|
||||
static void fn_1_ECD4(omObjData *arg0) {
|
||||
lbl_1_bss_7EC *= 1.05f;
|
||||
lbl_1_bss_7E8 *= 1.05f;
|
||||
if (lbl_1_bss_7EC > 2.0f) {
|
||||
lbl_1_bss_7EC = 2.0f;
|
||||
}
|
||||
if (lbl_1_bss_7E8 > 4.0f) {
|
||||
lbl_1_bss_7E8 = 4.0f;
|
||||
}
|
||||
if (MGSeqStatGet(lbl_1_bss_7D6) == 0) {
|
||||
lbl_1_bss_7EC = 2.0f;
|
||||
lbl_1_bss_7E8 = 4.0f;
|
||||
arg0->func = fn_1_EED8;
|
||||
lbl_1_bss_7D2 = 5;
|
||||
lbl_1_bss_7D0 = 60;
|
||||
lbl_1_bss_7D4 = MGSeqCreate(1, lbl_1_bss_7D2, 0x120, 0x40);
|
||||
}
|
||||
BoardModelMotionSpeedSet(lbl_1_bss_6C4[17], lbl_1_bss_7EC);
|
||||
BoardModelMotionSpeedSet(lbl_1_bss_6C4[18], lbl_1_bss_7E8);
|
||||
fn_1_10CF0(arg0->work[2]);
|
||||
}
|
||||
|
||||
static void fn_1_EEA0(omObjData *arg0, u16 *arg1) {
|
||||
*arg1 = 0;
|
||||
if (arg0->work[3] != 0) {
|
||||
arg0->work[3]--;
|
||||
} else {
|
||||
*arg1 |= 0x100;
|
||||
}
|
||||
}
|
||||
|
||||
static void fn_1_EED8(omObjData *arg0) {
|
||||
s16 temp_r29;
|
||||
u16 var_r30;
|
||||
|
||||
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) {
|
||||
MGSeqParamSet(lbl_1_bss_7D4, 1, lbl_1_bss_7D2);
|
||||
}
|
||||
lbl_1_bss_7D0 = 60;
|
||||
}
|
||||
if (GWPlayerCfg[lbl_1_bss_7E4].iscom == 1) {
|
||||
fn_1_EEA0(arg0, &var_r30);
|
||||
} else {
|
||||
var_r30 = HuPadBtnDown[temp_r29];
|
||||
}
|
||||
if (lbl_1_bss_7D2 < 0 || (var_r30 & 0x100)) {
|
||||
BoardModelMotionSpeedSet(lbl_1_bss_6C4[17], 0.0f);
|
||||
MGSeqParamSet(lbl_1_bss_7D4, 2, -1);
|
||||
arg0->scale.y = 0.0f;
|
||||
arg0->func = fn_1_F09C;
|
||||
}
|
||||
}
|
||||
|
||||
static void fn_1_F09C(omObjData *arg0) {
|
||||
float temp_f31;
|
||||
float var_f30;
|
||||
|
||||
temp_f31 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[18]);
|
||||
arg0->scale.y += lbl_1_bss_7E8;
|
||||
if (arg0->scale.y >= temp_f31 - 150.0f) {
|
||||
lbl_1_bss_7E8 *= 0.9745f;
|
||||
if (lbl_1_bss_7E8 < 0.08f) {
|
||||
lbl_1_bss_7E8 = 0.08f;
|
||||
}
|
||||
}
|
||||
BoardModelMotionSpeedSet(lbl_1_bss_6C4[18], lbl_1_bss_7E8);
|
||||
if (arg0->scale.y >= temp_f31) {
|
||||
BoardModelMotionSpeedSet(lbl_1_bss_6C4[18], 0.0f);
|
||||
var_f30 = arg0->scale.y - temp_f31 + BoardModelMotionTimeGet(lbl_1_bss_6C4[18]);
|
||||
if (var_f30 > temp_f31) {
|
||||
var_f30 -= temp_f31;
|
||||
}
|
||||
BoardModelMotionTimeSet(lbl_1_bss_6C4[18], var_f30);
|
||||
arg0->work[0] = fn_1_1001C(arg0->work[2]);
|
||||
BoardModelVisibilitySet(lbl_1_bss_6C4[20], 1);
|
||||
BoardModelPosSet(lbl_1_bss_6C4[20], lbl_1_bss_7FC[arg0->work[0]]->trans.x, lbl_1_bss_7FC[arg0->work[0]]->trans.y + 1.0f, lbl_1_bss_7FC[arg0->work[0]]->trans.z);
|
||||
BoardModelRotSet(lbl_1_bss_6C4[20], lbl_1_bss_7FC[arg0->work[0]]->rot.x, lbl_1_bss_7FC[arg0->work[0]]->rot.y + 1.0f, lbl_1_bss_7FC[arg0->work[0]]->rot.z);
|
||||
arg0->work[1] = 60;
|
||||
BoardAudSeqFadeOut(1, 100);
|
||||
arg0->func = fn_1_F348;
|
||||
HuAudFXPlay(0x40A);
|
||||
}
|
||||
}
|
||||
|
||||
static void fn_1_F348(omObjData *arg0) {
|
||||
if ((arg0->work[1] / 4) & 1) {
|
||||
BoardModelVisibilitySet(lbl_1_bss_6C4[20], 0);
|
||||
} else {
|
||||
BoardModelVisibilitySet(lbl_1_bss_6C4[20], 1);
|
||||
}
|
||||
if ((arg0->work[1] -= 1) == 0) {
|
||||
BoardModelVisibilitySet(lbl_1_bss_6C4[20], 0);
|
||||
fn_1_101B8(arg0->work[0]);
|
||||
HuAudFXPlay(0x310);
|
||||
arg0->func = fn_1_F3F8;
|
||||
}
|
||||
}
|
||||
|
||||
static void fn_1_F3F8(omObjData *arg0) {
|
||||
Vec sp18;
|
||||
Vec spC;
|
||||
|
||||
if (lbl_1_bss_7F0->work[0] != 1) {
|
||||
return;
|
||||
}
|
||||
BoardPlayerPosGet(lbl_1_bss_7E4, &sp18);
|
||||
PSVECSubtract(&lbl_1_bss_7C4, &sp18, &spC);
|
||||
PSVECNormalize(&spC, &spC);
|
||||
arg0->trans.x = spC.x;
|
||||
arg0->trans.y = spC.y;
|
||||
arg0->trans.z = spC.z;
|
||||
arg0->rot.x = sqrtf((lbl_1_bss_7C4.x - sp18.x) * (lbl_1_bss_7C4.x - sp18.x) + (lbl_1_bss_7C4.z - sp18.z) * (lbl_1_bss_7C4.z - sp18.z));
|
||||
arg0->scale.y = 20.0f + 40.0f * (arg0->rot.x / 445.0f);
|
||||
arg0->rot.y = 0.016666668f * (arg0->scale.y / 2) * (arg0->scale.y / 2);
|
||||
arg0->rot.z = sp18.y;
|
||||
arg0->scale.x = 0.0f;
|
||||
BoardPlayerMotionShiftSet(lbl_1_bss_7E4, 4, 0.0f, 5.0f, 0);
|
||||
PSVECSubtract(&lbl_1_bss_7C4, &sp18, &spC);
|
||||
PSVECNormalize(&spC, &spC);
|
||||
BoardPlayerRotSet(lbl_1_bss_7E4, 0.0f, fn_1_10EB8(&spC), 0.0f);
|
||||
arg0->func = fn_1_F6E8;
|
||||
}
|
||||
|
||||
static void fn_1_F6E8(omObjData *arg0) {
|
||||
Vec sp8;
|
||||
|
||||
BoardPlayerPosGet(lbl_1_bss_7E4, &sp8);
|
||||
sp8.x += arg0->trans.x * arg0->rot.x / arg0->scale.y;
|
||||
sp8.z += arg0->trans.z * arg0->rot.x / arg0->scale.y;
|
||||
sp8.y += arg0->rot.y - 0.016666668f * arg0->scale.x * arg0->scale.x;
|
||||
arg0->scale.x += 1.0f;
|
||||
if (sp8.y < lbl_1_bss_80C.y || arg0->scale.x >= arg0->scale.y) {
|
||||
sp8.y = lbl_1_bss_80C.y;
|
||||
BoardCameraMotionStart(BoardPlayerModelGet(lbl_1_bss_7E4), NULL, 700.0f, -1.0f);
|
||||
BoardPlayerMotionStart(lbl_1_bss_7E4, 2, 0x40000001);
|
||||
arg0->func = fn_1_F890;
|
||||
}
|
||||
BoardPlayerPosSetV(lbl_1_bss_7E4, &sp8);
|
||||
}
|
||||
|
||||
static void fn_1_F890(omObjData *arg0) {
|
||||
Vec sp8;
|
||||
|
||||
BoardPlayerRotGet(lbl_1_bss_7E4, &sp8);
|
||||
if (sp8.y == 0.0f) {
|
||||
BoardPlayerMotionShiftSet(lbl_1_bss_7E4, 1, 0.0f, 10.0f, 0x40000001);
|
||||
lbl_1_bss_7F0->work[0] = 0;
|
||||
lbl_1_bss_7F0->func = fn_1_10820;
|
||||
arg0->func = fn_1_FA1C;
|
||||
} else if (sp8.y > 180.0f) {
|
||||
if (360.0f - sp8.y < 3.0f) {
|
||||
sp8.y = 0.0f;
|
||||
} else {
|
||||
sp8.y += 3.0f;
|
||||
}
|
||||
} else {
|
||||
if (sp8.y < 3.0f) {
|
||||
sp8.y = 0.0f;
|
||||
} else {
|
||||
sp8.y -= 3.0f;
|
||||
}
|
||||
}
|
||||
BoardPlayerRotSetV(lbl_1_bss_7E4, &sp8);
|
||||
}
|
||||
|
||||
static void fn_1_FA1C(omObjData *arg0) {
|
||||
if (lbl_1_bss_7F0->work[0] == 1) {
|
||||
BoardPlayerMotionShiftSet(lbl_1_bss_7E4, lbl_1_bss_7BC, 0.0f, 10.0f, 0);
|
||||
arg0->work[0] = 30;
|
||||
lbl_1_bss_7A4 = HuAudSStreamPlay(2);
|
||||
arg0->func = fn_1_FABC;
|
||||
}
|
||||
}
|
||||
|
||||
static void fn_1_FABC(omObjData *arg0) {
|
||||
Process *var_r30;
|
||||
|
||||
if (arg0->work[0] == 0) {
|
||||
if (HuAudSStreamStatGet(lbl_1_bss_7A4) == 0) {
|
||||
var_r30 = HuPrcCreate(fn_1_FB58, 0x2004, 0x1000, 0);
|
||||
var_r30->user_data = arg0;
|
||||
BoardAudSeqPause(0, 0, 1000);
|
||||
arg0->func = NULL;
|
||||
}
|
||||
} else {
|
||||
arg0->work[0]--;
|
||||
}
|
||||
}
|
||||
|
||||
static void fn_1_FB58(void) {
|
||||
omObjData *temp_r31;
|
||||
|
||||
BoardWinCreate(2, MAKE_MESSID(10, 6), 0);
|
||||
BoardWinInsertMesSet(MAKE_MESSID(8, lbl_1_bss_7F0->work[1]), 0);
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
temp_r31 = HuPrcCurrentGet()->user_data;
|
||||
BoardPlayerMotionShiftSet(lbl_1_bss_7E4, 1, 0.0f, 10.0f, 0);
|
||||
lbl_1_bss_7F0->work[0] = 0;
|
||||
HuAudFXPlay(0x30D);
|
||||
HuAudFXFadeOut(lbl_1_bss_7AC, 1000);
|
||||
lbl_1_bss_7F0->func = fn_1_10AE8;
|
||||
temp_r31->func = fn_1_FC3C;
|
||||
HuPrcKill(NULL);
|
||||
while (TRUE) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
||||
static void fn_1_FC3C(omObjData *arg0) {
|
||||
Process *var_r31;
|
||||
|
||||
if (lbl_1_bss_7F0->work[0] == 1) {
|
||||
BoardPlayerItemAdd(lbl_1_bss_7E4, lbl_1_bss_7F0->work[1]);
|
||||
omVibrate(lbl_1_bss_7E4, 12, 6, 6);
|
||||
var_r31 = HuPrcCreate(fn_1_FCEC, 0x2004, 0x1000, 0);
|
||||
var_r31->user_data = arg0;
|
||||
arg0->func = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static void fn_1_FCEC(void) {
|
||||
omObjData *var_r31;
|
||||
|
||||
BoardWinCreate(2, MAKE_MESSID(10, 7), 0);
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
var_r31 = HuPrcCurrentGet()->user_data;
|
||||
var_r31->func = fn_1_FD3C;
|
||||
HuPrcKill(NULL);
|
||||
while (TRUE) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
||||
static void fn_1_FD3C(omObjData *arg0) {
|
||||
BoardStatusShowSetAll(1);
|
||||
BoardCameraTargetModelSet(lbl_1_bss_6C4[21]);
|
||||
BoardCameraOffsetSet(0.0f, 0.0f, 0.0f);
|
||||
BoardCameraXRotZoomSet(1200.0f, -45.0f);
|
||||
BoardModelMotionSpeedSet(lbl_1_bss_6C4[17], 1.0f);
|
||||
Hu3DModelKill(lbl_1_bss_7F0->model[0]);
|
||||
Hu3DModelKill(lbl_1_bss_7F0->model[1]);
|
||||
Hu3DModelKill(lbl_1_bss_7F0->model[2]);
|
||||
omDelObjEx(HuPrcCurrentGet(), lbl_1_bss_7F0);
|
||||
arg0->func = fn_1_FE44;
|
||||
}
|
||||
|
||||
static void fn_1_FE44(omObjData *arg0) {
|
||||
if (BoardStatusStopCheck(lbl_1_bss_7E4) && BoardCameraMotionIsDone()) {
|
||||
lbl_1_bss_7AA = 1;
|
||||
BoardMGExit();
|
||||
HuAudFXPlay(0x40F);
|
||||
BoardModelMotionStart(lbl_1_bss_6C4[21], 0, 0x40000004);
|
||||
arg0->func = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static void fn_1_FED0(omObjData *arg0) {
|
||||
float temp_f30;
|
||||
float var_f31;
|
||||
float var_f29;
|
||||
|
||||
temp_f30 = BoardModelMotionTimeGet(lbl_1_bss_6C4[18]);
|
||||
var_f29 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[18]);
|
||||
var_f31 = 90.0f - 90.0f * arg0->work[2] + 360.0f * (temp_f30 / var_f29);
|
||||
if (var_f31 >= 360.0f) {
|
||||
var_f31 -= 360.0f;
|
||||
}
|
||||
if (var_f31 < 0.0f) {
|
||||
var_f31 += 360.0f;
|
||||
}
|
||||
omSetRot(arg0, 0.0f, var_f31, 0.0f);
|
||||
}
|
||||
|
||||
static s16 fn_1_1001C(u32 arg0) {
|
||||
float var_f29;
|
||||
float var_f28;
|
||||
float temp_f27;
|
||||
float temp_f26;
|
||||
float var_f31;
|
||||
float var_f30;
|
||||
|
||||
temp_f26 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[18]);
|
||||
temp_f27 = 360.0f - 360.0f * (BoardModelMotionTimeGet(lbl_1_bss_6C4[18]) / temp_f26);
|
||||
var_f30 = BoardModelMotionTimeGet(lbl_1_bss_6C4[17]);
|
||||
var_f29 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[17]);
|
||||
var_f30 = var_f30 - (var_f29 / 4) * arg0;
|
||||
if (var_f30 < 0.0f) {
|
||||
var_f30 += var_f29;
|
||||
}
|
||||
var_f28 = 360.0f * (var_f30 / var_f29);
|
||||
var_f31 = var_f28 - temp_f27;
|
||||
if (var_f31 < 0.0f) {
|
||||
var_f31 += 360.0f;
|
||||
}
|
||||
var_f31 /= 90.0f;
|
||||
return var_f31;
|
||||
}
|
||||
|
||||
static void fn_1_101B8(s16 arg0) {
|
||||
omObjData *var_r31;
|
||||
float *var_r30;
|
||||
float var_f27;
|
||||
float temp_f26;
|
||||
float temp_f30;
|
||||
float temp_f29;
|
||||
float temp_f28;
|
||||
float var_f31;
|
||||
|
||||
var_r31 = lbl_1_bss_7F0 = omAddObjEx(boardObjMan, 0x165, 3, 0, -1, fn_1_10664);
|
||||
var_r31->model[0] = lbl_1_bss_7FC[arg0]->model[1];
|
||||
Hu3DModelAttrReset(var_r31->model[0], 1);
|
||||
lbl_1_bss_7F0->work[1] = lbl_1_bss_7FC[arg0]->work[1];
|
||||
lbl_1_bss_7F0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 3 * sizeof(float), MEMORY_DEFAULT_NUM);
|
||||
var_r30 = lbl_1_bss_7F0->data;
|
||||
omSetRot(var_r31, 0.0f, 0.0f, 0.0f);
|
||||
omSetSca(var_r31, 0.0f, 0.0f, 0.0f);
|
||||
temp_f26 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[18]);
|
||||
var_f27 = 360.0f - 360.0f * (BoardModelMotionTimeGet(lbl_1_bss_6C4[18]) / temp_f26);
|
||||
var_f31 = 45.0f + var_f27 + 90.0f * arg0;
|
||||
if (var_f31 >= 360.0f) {
|
||||
var_f31 -= 360.0f;
|
||||
}
|
||||
temp_f30 = lbl_1_bss_80C.x - 100.0 * cos(var_f31 * M_PI / 180.0);
|
||||
temp_f28 = lbl_1_bss_80C.z - 100.0 * sin(var_f31 * M_PI / 180.0);
|
||||
temp_f29 = lbl_1_bss_80C.y + 66.0f + 1.0f;
|
||||
omSetTra(var_r31, temp_f30, temp_f29, temp_f28);
|
||||
var_r31->work[0] = 0;
|
||||
var_r30[0] = 0.1f;
|
||||
var_r30[2] = 20.0f;
|
||||
var_r30[1] = 0.0f;
|
||||
var_r31->model[1] = Hu3DParticleCreate(lbl_1_bss_7A0, 200);
|
||||
var_r31->model[2] = Hu3DParticleCreate(lbl_1_bss_7A0, 100);
|
||||
Hu3DParticleHookSet(var_r31->model[1], fn_1_11064);
|
||||
Hu3DParticleHookSet(var_r31->model[2], fn_1_11484);
|
||||
Hu3DParticleColSet(var_r31->model[1], 0xFF, 0xFF, 0);
|
||||
Hu3DParticleColSet(var_r31->model[2], 0xFF, 0xFF, 0);
|
||||
Hu3DModelPosSet(var_r31->model[1], 0.0f, 0.0f, 0.0f);
|
||||
Hu3DModelPosSet(var_r31->model[2], temp_f30, temp_f29, temp_f28);
|
||||
Hu3DParticleBlendModeSet(var_r31->model[1], 1);
|
||||
Hu3DParticleBlendModeSet(var_r31->model[2], 1);
|
||||
Hu3DModelLayerSet(var_r31->model[1], 3);
|
||||
Hu3DModelLayerSet(var_r31->model[2], 3);
|
||||
lbl_1_bss_7AC = HuAudFXPlay(0x35F);
|
||||
}
|
||||
|
||||
static void fn_1_10664(omObjData *arg0) {
|
||||
float *temp_r31;
|
||||
float var_f31;
|
||||
|
||||
temp_r31 = arg0->data;
|
||||
var_f31 = temp_r31[0];
|
||||
if (arg0->work[0] == 0) {
|
||||
if (var_f31 > 1.0f) {
|
||||
var_f31 = 1.0f;
|
||||
} else {
|
||||
temp_r31[0] += 0.025f;
|
||||
}
|
||||
arg0->trans.y += temp_r31[2];
|
||||
temp_r31[2] -= 1.0f;
|
||||
if (temp_r31[2] < 0.0f && arg0->trans.y < lbl_1_bss_80C.y + 66.0f + 1.0f + 90.0f) {
|
||||
arg0->work[0] = 1;
|
||||
}
|
||||
omSetSca(arg0, var_f31, var_f31, var_f31);
|
||||
} else {
|
||||
arg0->trans.y += sin(temp_r31[1] * M_PI / 180.0);
|
||||
temp_r31[1] += 4.0f;
|
||||
if (temp_r31[1] >= 360.0f) {
|
||||
temp_r31[1] -= 360.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void fn_1_10820(omObjData *arg0) {
|
||||
Vec sp24;
|
||||
Vec sp18;
|
||||
Vec spC;
|
||||
float var_f28;
|
||||
float *temp_r30;
|
||||
|
||||
temp_r30 = arg0->data;
|
||||
if (arg0->work[0] == 0) {
|
||||
BoardPlayerPosGet(lbl_1_bss_7E4, &sp24);
|
||||
sp18.x = arg0->trans.x;
|
||||
sp18.y = 0.0f;
|
||||
sp18.z = arg0->trans.z;
|
||||
sp24.y = 0.0f;
|
||||
PSVECSubtract(&sp24, &sp18, &spC);
|
||||
PSVECNormalize(&spC, &spC);
|
||||
var_f28 = sqrtf((sp24.x - sp18.x) * (sp24.x - sp18.x) + (sp24.z - sp18.z) * (sp24.z - sp18.z));
|
||||
if (var_f28 < 8.0f) {
|
||||
arg0->trans.x = sp24.x;
|
||||
arg0->trans.z = sp24.z;
|
||||
arg0->work[0] = 1;
|
||||
} else {
|
||||
arg0->trans.x += 8.0f * spC.x;
|
||||
arg0->trans.z += 8.0f * spC.z;
|
||||
}
|
||||
}
|
||||
arg0->trans.y += sin(temp_r30[1] * M_PI / 180.0);
|
||||
temp_r30[1] += 4.0f;
|
||||
if (temp_r30[1] >= 360.0f) {
|
||||
temp_r30[1] -= 360.0f;
|
||||
}
|
||||
}
|
||||
|
||||
static void fn_1_10AE8(omObjData *arg0) {
|
||||
float *temp_r31;
|
||||
|
||||
temp_r31 = arg0->data;
|
||||
if (arg0->work[0] == 0) {
|
||||
temp_r31[0] -= 0.016666668f;
|
||||
if (temp_r31[0] <= 0.0f) {
|
||||
temp_r31[0] = 0.0f;
|
||||
arg0->work[0] = 1;
|
||||
HuAudFXStop(lbl_1_bss_7AC);
|
||||
}
|
||||
arg0->trans.y -= 2.1666667f;
|
||||
}
|
||||
omSetSca(arg0, temp_r31[0], temp_r31[0], temp_r31[0]);
|
||||
}
|
||||
|
||||
static float fn_1_10BB0(u32 arg0) {
|
||||
float var_f30;
|
||||
float temp_f29;
|
||||
float var_f31;
|
||||
|
||||
var_f30 = BoardModelMotionTimeGet(lbl_1_bss_6C4[17]);
|
||||
temp_f29 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[17]);
|
||||
var_f30 = var_f30 - (temp_f29 / 4) * arg0;
|
||||
if (var_f30 < 0.0f) {
|
||||
var_f30 += temp_f29;
|
||||
}
|
||||
var_f31 = 180.0f + -360.0f * (var_f30 / temp_f29);
|
||||
if (var_f31 >= 360.0f) {
|
||||
var_f31 -= 360.0f;
|
||||
}
|
||||
if (var_f31 < 0.0f) {
|
||||
var_f31 += 360.0f;
|
||||
}
|
||||
return var_f31;
|
||||
}
|
||||
|
||||
static void fn_1_10CF0(u32 arg0) {
|
||||
float var_f30;
|
||||
float temp_f29;
|
||||
float var_f31;
|
||||
float var_f28;
|
||||
|
||||
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_6C4[17]), lbl_1_data_F9C[arg0], &lbl_1_bss_7D8);
|
||||
BoardPlayerPosSetV(lbl_1_bss_7E4, &lbl_1_bss_7D8);
|
||||
var_f30 = BoardModelMotionTimeGet(lbl_1_bss_6C4[17]);
|
||||
temp_f29 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[17]);
|
||||
var_f30 = var_f30 - (temp_f29 / 4) * arg0;
|
||||
if (var_f30 < 0.0f) {
|
||||
var_f30 += temp_f29;
|
||||
}
|
||||
var_f31 = 180.0f + -360.0f * (var_f30 / temp_f29);
|
||||
if (var_f31 >= 360.0f) {
|
||||
var_f31 -= 360.0f;
|
||||
}
|
||||
if (var_f31 < 0.0f) {
|
||||
var_f31 += 360.0f;
|
||||
}
|
||||
var_f28 = var_f31;
|
||||
BoardPlayerRotSet(lbl_1_bss_7E4, 0.0f, var_f28, 0.0f);
|
||||
}
|
||||
|
||||
static float fn_1_10EB8(Vec *arg0) {
|
||||
float var_f31;
|
||||
|
||||
if (arg0->x || arg0->z) {
|
||||
if (arg0->x == 0.0f) {
|
||||
if (arg0->z > 0.0f) {
|
||||
return 0.0f;
|
||||
} else {
|
||||
return 180.0f;
|
||||
}
|
||||
}
|
||||
if (arg0->z == 0.0f) {
|
||||
if (arg0->x > 0.0f) {
|
||||
return 90.0f;
|
||||
} else {
|
||||
return 270.0f;
|
||||
}
|
||||
}
|
||||
var_f31 = 180.0 * (atan2(arg0->z, arg0->x) / M_PI);
|
||||
if (arg0->z < 0.0f) {
|
||||
var_f31 = 90.0f - var_f31;
|
||||
} else {
|
||||
var_f31 = 90.0f - var_f31;
|
||||
if (var_f31 < 0.0f) {
|
||||
var_f31 += 360.0f;
|
||||
}
|
||||
}
|
||||
return var_f31;
|
||||
}
|
||||
return -1.0f;
|
||||
}
|
||||
|
||||
static void fn_1_11064(ModelData *model, ParticleData *particle, Mtx matrix) {
|
||||
HsfanimStruct01 *var_r31;
|
||||
float temp_f30;
|
||||
float temp_f29;
|
||||
float temp_f31;
|
||||
s32 var_r28;
|
||||
s32 i;
|
||||
|
||||
if (particle->unk_34 == 0) {
|
||||
var_r31 = particle->unk_48;
|
||||
for (i = 0; i < particle->unk_30; i++, var_r31++) {
|
||||
var_r31->unk40.a = 0;
|
||||
var_r31->unk2C = 0.0f;
|
||||
}
|
||||
particle->unk_00 = 0;
|
||||
}
|
||||
temp_f31 = lbl_1_bss_7F0->scale.x;
|
||||
for (i = 0; i < 30; i++) {
|
||||
var_r31 = particle->unk_48;
|
||||
for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) {
|
||||
if (var_r31->unk2C == 0.0f) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (var_r28 != particle->unk_30) {
|
||||
temp_f30 = 0.003921569f * (frand() & 0xFF) * 360.0f;
|
||||
temp_f29 = 0.003921569f * (frand() & 0xFF) * 70.0f * temp_f31;
|
||||
var_r31->unk34.x = lbl_1_bss_7F0->trans.x + temp_f29 * sin(temp_f30 * M_PI / 180.0);
|
||||
var_r31->unk34.z = lbl_1_bss_7F0->trans.z + temp_f29 * cos(temp_f30 * M_PI / 180.0);
|
||||
var_r31->unk34.y = lbl_1_bss_7F0->trans.y + temp_f31 * (-30.0f + 0.003921569f * (frand() & 0xFF) * 60.0f);
|
||||
var_r31->unk08.x = 0.5f + 0.003921569f * (frand() & 0xFF) * 3.0f;
|
||||
var_r31->unk08.y = 0.3f + 0.003921569f * (frand() & 0xFF) * 2.0f;
|
||||
var_r31->unk40.a = 0xB4;
|
||||
var_r31->unk2C = 15.0f * temp_f31;
|
||||
}
|
||||
}
|
||||
var_r31 = particle->unk_48;
|
||||
for (i = 0; i < particle->unk_30; i++, var_r31++) {
|
||||
if (var_r31->unk2C != 0.0f) {
|
||||
var_r31->unk34.y -= var_r31->unk08.x;
|
||||
var_r31->unk2C -= var_r31->unk08.y;
|
||||
if (var_r31->unk2C <= 0.0f) {
|
||||
var_r31->unk2C = 0.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void fn_1_11484(ModelData *model, ParticleData *particle, Mtx matrix) {
|
||||
HsfanimStruct01 *var_r31;
|
||||
float temp_f29;
|
||||
float temp_f30;
|
||||
float temp_f31;
|
||||
s32 var_r28;
|
||||
s32 var_r29;
|
||||
|
||||
if (particle->unk_34 == 0) {
|
||||
var_r31 = particle->unk_48;
|
||||
for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
|
||||
var_r31->unk40.a = 0;
|
||||
var_r31->unk2C = 0.0f;
|
||||
}
|
||||
particle->unk_00 = 0;
|
||||
}
|
||||
if (particle->unk_00 == 0) {
|
||||
var_r31 = particle->unk_48;
|
||||
for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) {
|
||||
temp_f30 = 0.003921569f * (frand() & 0xFF) * 360.0f;
|
||||
temp_f31 = 0.003921569f * (frand() & 0xFF) * 50.0f;
|
||||
var_r31->unk08.x = temp_f31 * cos(temp_f30 * M_PI / 180.0);
|
||||
var_r31->unk08.y = 2.0f + 0.003921569f * (frand() & 0xFF) * 4.0f;
|
||||
var_r31->unk08.z = temp_f31 * sin(temp_f30 * M_PI / 180.0);
|
||||
temp_f29 = 60.0f + 20.0f * (frand() & 0xFF) * 0.003921569f;
|
||||
temp_f31 = 4.0f + 5.0f * (frand() & 0xFF) * 0.003921569f;
|
||||
var_r31->unk14.x = temp_f31 * sin(temp_f30 * M_PI / 180.0) * cos(temp_f29 * M_PI / 180.0);
|
||||
var_r31->unk14.y = temp_f31 * sin(temp_f29 * M_PI / 180.0);
|
||||
var_r31->unk14.z = temp_f31 * cos(temp_f30 * M_PI / 180.0) * cos(temp_f29 * M_PI / 180.0);
|
||||
var_r31->unk20 = 1.0f;
|
||||
var_r31->unk40.a = 0xB4;
|
||||
var_r31->unk2C = 9.0f + 0.003921569f * (frand() & 0xFF) * 4.0f;
|
||||
}
|
||||
particle->unk_00 = 1;
|
||||
}
|
||||
var_r31 = particle->unk_48;
|
||||
for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
|
||||
if (var_r31->unk2C != 0.0f) {
|
||||
var_r31->unk34.x = var_r31->unk08.x + var_r31->unk14.x * var_r31->unk20;
|
||||
var_r31->unk34.z = var_r31->unk08.z + var_r31->unk14.z * var_r31->unk20;
|
||||
var_r31->unk34.y = var_r31->unk08.y + var_r31->unk14.y * var_r31->unk20 - 0.2f * var_r31->unk20 * var_r31->unk20;
|
||||
var_r31->unk2C -= 0.25f;
|
||||
var_r31->unk20 += 1.0f;
|
||||
if (var_r31->unk2C <= 0.0f) {
|
||||
var_r31->unk2C = 0.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue