Matched REL/w04/big_boo + applying new macros
This commit is contained in:
parent
818428e4ff
commit
4229bfe0c1
19 changed files with 1449 additions and 277 deletions
1175
src/REL/w04Dll/big_boo.c
Executable file
1175
src/REL/w04Dll/big_boo.c
Executable file
File diff suppressed because it is too large
Load diff
|
|
@ -21,7 +21,7 @@
|
|||
#include "game/frand.h"
|
||||
|
||||
#include "dolphin.h"
|
||||
#include "math.h"
|
||||
#include "ext_math.h"
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ char unk00[0x50];
|
||||
|
|
@ -46,7 +46,6 @@ typedef struct {
|
|||
/* 0x2C */ Process *unk2C;
|
||||
} BssE4Data; // Size 0x30
|
||||
|
||||
static void fn_1_2044(void);
|
||||
static void fn_1_20EC(void);
|
||||
static void fn_1_28BC(void);
|
||||
static void fn_1_2B8C(void);
|
||||
|
|
@ -137,21 +136,6 @@ static float lbl_1_data_358[] = {
|
|||
-150.00001f, -170.00001f, -30.0f, -220.0f
|
||||
};
|
||||
|
||||
static void fn_1_2044(void) {
|
||||
lbl_1_bss_38 = NULL;
|
||||
}
|
||||
|
||||
void fn_1_2058(void) {
|
||||
s32 sp8;
|
||||
|
||||
sp8 = GWSystem.player_curr;
|
||||
lbl_1_bss_38 = HuPrcChildCreate(fn_1_1618, 0x2003, 0x2000, 0, boardMainProc);
|
||||
HuPrcDestructorSet2(lbl_1_bss_38, fn_1_2044);
|
||||
while (lbl_1_bss_38) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
||||
static void fn_1_20EC(void) {
|
||||
Vec sp20;
|
||||
Vec sp14;
|
||||
|
|
@ -223,7 +207,7 @@ static void fn_1_20EC(void) {
|
|||
lbl_1_bss_74 = lbl_1_bss_78 = var_r27->link[0];
|
||||
BoardSpacePosGet(0, lbl_1_bss_78, &sp14);
|
||||
BoardModelPosGet(lbl_1_bss_FA, &sp20);
|
||||
while (fn_1_1130(lbl_1_bss_FA, 180.0 * (atan2(sp14.x - sp20.x, sp14.z - sp20.z) / M_PI), 2.0f) == 0) {
|
||||
while (fn_1_1130(lbl_1_bss_FA, atan2d(sp14.x - sp20.x, sp14.z - sp20.z), 2.0f) == 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
PSVECSubtract(&sp14, &sp20, &sp8);
|
||||
|
|
@ -236,7 +220,7 @@ static void fn_1_20EC(void) {
|
|||
BoardAudSeqPause(0, 1, 1000);
|
||||
BoardModelPosSetV(lbl_1_bss_FA, &sp14);
|
||||
BoardPlayerPosGet(temp_r30, &sp14);
|
||||
while (fn_1_1130(lbl_1_bss_FA, 180.0 * (atan2(sp14.x - sp20.x, sp14.z - sp20.z) / M_PI), 3.0f) == 0) {
|
||||
while (fn_1_1130(lbl_1_bss_FA, atan2d(sp14.x - sp20.x, sp14.z - sp20.z), 3.0f) == 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
fn_1_2EE8(1);
|
||||
|
|
@ -306,7 +290,7 @@ static void fn_1_28BC(void) {
|
|||
}
|
||||
BoardSpacePosGet(0, var_r31, &sp20);
|
||||
BoardModelPosGet(lbl_1_bss_FA, &sp14);
|
||||
temp_f30 = 180.0 * (atan2(sp20.x - sp14.x, sp20.z - sp14.z) / M_PI);
|
||||
temp_f30 = atan2d(sp20.x - sp14.x, sp20.z - sp14.z);
|
||||
BoardModelRotYSet(lbl_1_bss_FA, temp_f30);
|
||||
PSVECSubtract(&sp20, &sp14, &sp8);
|
||||
PSVECScale(&sp8, &sp8, 0.022222223f);
|
||||
|
|
@ -427,7 +411,7 @@ static void fn_1_2FDC(void) {
|
|||
temp_r31 = HuPrcCurrentGet()->user_data;
|
||||
while (TRUE) {
|
||||
BoardModelPosGet(temp_r31->unk04, &sp8);
|
||||
sp8.y = temp_r31->unk1C + 4.0 * sin(temp_r31->unk14 * M_PI / 180.0);
|
||||
sp8.y = temp_r31->unk1C + 4.0 * sind(temp_r31->unk14);
|
||||
BoardModelPosSetV(temp_r31->unk04, &sp8);
|
||||
if (temp_r31->unk08 != -1) {
|
||||
sp8.y += 50.0f;
|
||||
|
|
@ -484,7 +468,7 @@ static void fn_1_30A4(void) {
|
|||
}
|
||||
fn_1_5980(temp_r22);
|
||||
BoardModelPosGet(temp_r31->unk04, &sp20);
|
||||
temp_f31 = 180.0 * (atan2(temp_r31->unk20.x - sp20.x, temp_r31->unk20.z - sp20.z) / M_PI);
|
||||
temp_f31 = atan2d(temp_r31->unk20.x - sp20.x, temp_r31->unk20.z - sp20.z);
|
||||
while (fn_1_1130(temp_r31->unk04, temp_f31, 5.0f) == 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -543,7 +527,7 @@ static void fn_1_30A4(void) {
|
|||
break;
|
||||
case 3:
|
||||
BoardModelPosGet(temp_r31->unk04, &sp20);
|
||||
temp_f31 = 180.0 * (atan2(temp_r31->unk20.x - sp20.x, temp_r31->unk20.z - sp20.z) / M_PI);
|
||||
temp_f31 = atan2d(temp_r31->unk20.x - sp20.x, temp_r31->unk20.z - sp20.z);
|
||||
BoardModelRotYSet(temp_r31->unk04, temp_f31);
|
||||
if (temp_r31->unk08 != -1) {
|
||||
BoardPlayerRotYSet(temp_r31->unk08, temp_f31);
|
||||
|
|
@ -623,7 +607,7 @@ static void fn_1_38D8(void) {
|
|||
sp18 = lbl_1_bss_80[temp_r31];
|
||||
GWPlayer[temp_r31].space_curr = lbl_1_bss_B0;
|
||||
BoardPlayerPosGet(temp_r31, &sp24);
|
||||
var_f28 = 180.0 * (atan2(sp18.x - sp24.x, sp18.z - sp24.z) / M_PI);
|
||||
var_f28 = atan2d(sp18.x - sp24.x, sp18.z - sp24.z);
|
||||
BoardPlayerRotYSet(temp_r31, var_f28);
|
||||
PSVECSubtract(&sp18, &sp24, &spC);
|
||||
PSVECScale(&spC, &spC, 0.025f);
|
||||
|
|
@ -637,7 +621,7 @@ static void fn_1_38D8(void) {
|
|||
sp24.y = sp18.y;
|
||||
break;
|
||||
}
|
||||
var_f28 = sqrtf((sp18.x - sp24.x) * (sp18.x - sp24.x) + (sp18.z - sp24.z) * (sp18.z - sp24.z));
|
||||
var_f28 = VECDistanceXZ(&sp18, &sp24);
|
||||
if (var_f28 <= 1.0f) {
|
||||
spC.x = spC.z = 0.0f;
|
||||
}
|
||||
|
|
@ -712,7 +696,7 @@ static s32 fn_1_3C9C(void) {
|
|||
BoardSpacePosGet(0, sp20[i], &sp44);
|
||||
sp50.y = sp44.y;
|
||||
PSVECSubtract(&sp44, &sp50, &sp38);
|
||||
var_f31 = 180.0 * (atan2(sp38.x, sp38.z) / M_PI);
|
||||
var_f31 = atan2d(sp38.x, sp38.z);
|
||||
if (var_f31 < 0.0f) {
|
||||
var_f31 += 360.0f;
|
||||
}
|
||||
|
|
@ -768,7 +752,7 @@ static s32 fn_1_3C9C(void) {
|
|||
var_r25 = 0;
|
||||
}
|
||||
if (var_r26 != 0 || var_r25 != 0) {
|
||||
var_f30 = 180.0 * (atan2(-var_r26, var_r25) / M_PI) - 180.0;
|
||||
var_f30 = atan2d(-var_r26, var_r25) - 180.0;
|
||||
var_f30 += var_f29;
|
||||
if (var_f30 >= 360.0f) {
|
||||
var_f30 -= 360.0f;
|
||||
|
|
@ -793,7 +777,7 @@ static s32 fn_1_3C9C(void) {
|
|||
}
|
||||
for (i = 0; i < var_r29; i++) {
|
||||
if (var_r27 == i) {
|
||||
sp38.x = sp38.y = sp38.z = 1.7999999523162842 + sin(var_f31 * M_PI / 180.0);
|
||||
sp38.x = sp38.y = sp38.z = 1.8f + sind(var_f31);
|
||||
var_f31 += 8.0f;
|
||||
if (var_f31 > 180.0f) {
|
||||
var_f31 -= 180.0f;
|
||||
|
|
@ -925,7 +909,7 @@ static void fn_1_4848(void) {
|
|||
BoardPlayerMotBlendSet(temp_r30, BoardModelRotYGet(lbl_1_bss_FA) - 180.0f, 0xA);
|
||||
while (!BoardPlayerMotBlendCheck(temp_r30)) {
|
||||
BoardModelPosGet(lbl_1_bss_FA, &sp14);
|
||||
temp_f28 = sqrtf((sp20.x - sp14.x) * (sp20.x - sp14.x) + (sp20.z - sp14.z) * (sp20.z - sp14.z));
|
||||
temp_f28 = VECDistanceXZ(&sp20, &sp14);
|
||||
if (temp_f28 <= 200.0f) {
|
||||
HuAudPlayerVoicePlay(temp_r30, 0x128);
|
||||
goto block_A;
|
||||
|
|
@ -936,7 +920,7 @@ static void fn_1_4848(void) {
|
|||
HuAudPlayerVoicePlay(temp_r30, 0x128);
|
||||
for (i = 0; i < 65; i++) {
|
||||
BoardModelPosGet(lbl_1_bss_FA, &sp14);
|
||||
temp_f28 = sqrtf((sp20.x - sp14.x) * (sp20.x - sp14.x) + (sp20.z - sp14.z) * (sp20.z - sp14.z));
|
||||
temp_f28 = VECDistanceXZ(&sp20, &sp14);
|
||||
if (temp_f28 <= 200.0f) {
|
||||
goto block_A;
|
||||
}
|
||||
|
|
@ -944,7 +928,7 @@ static void fn_1_4848(void) {
|
|||
}
|
||||
BoardPlayerMotionShiftSet(temp_r30, 1, 0.0f, 5.0f, 0);
|
||||
BoardModelPosGet(lbl_1_bss_FA, &sp14);
|
||||
temp_f28 = sqrtf((sp20.x - sp14.x) * (sp20.x - sp14.x) + (sp20.z - sp14.z) * (sp20.z - sp14.z));
|
||||
temp_f28 = VECDistanceXZ(&sp20, &sp14);
|
||||
if (temp_f28 > 200.0f) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
@ -1006,7 +990,7 @@ static void fn_1_5018(void) {
|
|||
BoardModelPosGet(lbl_1_bss_FA, &spC);
|
||||
for (i = 0; i < lbl_1_bss_C2; i++) {
|
||||
BoardPlayerPosGet(lbl_1_bss_BA[i], &sp18);
|
||||
var_f29 = sqrtf((sp18.x - spC.x) * (sp18.x - spC.x) + (sp18.z - spC.z) * (sp18.z - spC.z));
|
||||
var_f29 = VECDistanceXZ(&sp18, &spC);
|
||||
if (var_f29 < 900.0f && lbl_1_bss_B2[lbl_1_bss_BA[i]] == 0) {
|
||||
temp_r3 = HuPrcChildCreate(fn_1_4848, 0x2003, 0x2000, 0, boardMainProc);
|
||||
lbl_1_bss_D4[lbl_1_bss_BA[i]] = temp_r3;
|
||||
|
|
@ -1191,10 +1175,10 @@ static void fn_1_5A2C(ModelData *model, ParticleData *particle, Mtx matrix) {
|
|||
var_r26 = 0;
|
||||
for (i = 0; i < particle->unk_30; i++, var_r31++) {
|
||||
if (var_r31->unk08.z != 0.0f) {
|
||||
var_r31->unk34.x += var_r31->unk28 * sin(var_r31->unk08.x * M_PI / 180.0);
|
||||
var_r31->unk34.x += var_r31->unk28 * sind(var_r31->unk08.x);
|
||||
var_r31->unk34.y += var_r31->unk08.y;
|
||||
var_r31->unk34.z += var_r31->unk28 * cos(var_r31->unk08.x * M_PI / 180.0);
|
||||
var_r31->unk08.x += var_r31->unk24 * sin(var_r31->unk08.x * M_PI / 180.0);
|
||||
var_r31->unk34.z += var_r31->unk28 * cosd(var_r31->unk08.x);
|
||||
var_r31->unk08.x += var_r31->unk24 * sind(var_r31->unk08.x);
|
||||
if (var_r31->unk08.x >= 360.0f) {
|
||||
var_r31->unk08.x -= 360.0f;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
#include "game/board/window.h"
|
||||
|
||||
#include "dolphin.h"
|
||||
#include "math.h"
|
||||
#include "ext_math.h"
|
||||
|
||||
static void fn_1_17B4(s16 arg0, s16 arg1);
|
||||
static void fn_1_191C(void);
|
||||
|
|
@ -20,9 +20,10 @@ static void fn_1_1B98(s16 arg0);
|
|||
static void fn_1_1C2C(void);
|
||||
static void fn_1_1E60(void);
|
||||
static void fn_1_2008(void);
|
||||
static void fn_1_2044(void);
|
||||
|
||||
static Process *lbl_1_bss_3C[3];
|
||||
Process *lbl_1_bss_38;
|
||||
static Process *lbl_1_bss_38;
|
||||
|
||||
static s32 lbl_1_data_298[] = {
|
||||
DATA_MAKE_NUM(DATADIR_W04, 32),
|
||||
|
|
@ -61,7 +62,7 @@ void fn_1_12FC(void) {
|
|||
sp8.x = sp8.y = sp8.z = 2.0f;
|
||||
BoardModelScaleSetV(lbl_1_bss_14[11], &sp8);
|
||||
fn_1_1C2C();
|
||||
if (lbl_1_bss_0[0] & 1) {
|
||||
if (lbl_1_bss_0->unk00 & 1) {
|
||||
BoardModelMotionStartEndSet(lbl_1_bss_14[5], 0, 180);
|
||||
BoardModelMotionTimeSet(lbl_1_bss_14[5], 108.0f);
|
||||
fn_1_17B4(0, 1);
|
||||
|
|
@ -106,7 +107,7 @@ void fn_1_1618(void) {
|
|||
HuPrcVSleep();
|
||||
}
|
||||
BoardCameraMotionWait();
|
||||
*lbl_1_bss_0 ^= 1;
|
||||
lbl_1_bss_0->unk00 ^= 1;
|
||||
fn_1_191C();
|
||||
fn_1_1C2C();
|
||||
HuAudPlayerVoicePlay(temp_r31, 0x128);
|
||||
|
|
@ -115,7 +116,7 @@ void fn_1_1618(void) {
|
|||
HuPrcVSleep();
|
||||
}
|
||||
HuPrcSleep(30);
|
||||
if (!(*lbl_1_bss_0 & 1)) {
|
||||
if (!(lbl_1_bss_0->unk00 & 1)) {
|
||||
BoardWinCreate(2, MAKE_MESSID(32, 24), 11);
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
|
|
@ -164,7 +165,7 @@ static void fn_1_191C(void) {
|
|||
s32 var_r30;
|
||||
|
||||
HuAudFXPlay(0x4B);
|
||||
if (*lbl_1_bss_0 & 1) {
|
||||
if (lbl_1_bss_0->unk00 & 1) {
|
||||
BoardWinCreate(2, MAKE_MESSID(32, 23), 11);
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
|
|
@ -219,7 +220,7 @@ static void fn_1_1C2C(void) {
|
|||
s16 *var_r28;
|
||||
s32 i;
|
||||
|
||||
if (*lbl_1_bss_0 == 0) {
|
||||
if (lbl_1_bss_0->unk00 == 0) {
|
||||
BoardModelMotionStartEndSet(lbl_1_bss_14[3], 0, 80);
|
||||
BoardModelMotionTimeSet(lbl_1_bss_14[3], 0.0f);
|
||||
BoardModelVisibilitySet(lbl_1_bss_14[0], 1);
|
||||
|
|
@ -262,10 +263,10 @@ static void fn_1_1E60(void) {
|
|||
BoardSpacePosGet(0, var_r28, &sp8);
|
||||
PSVECSubtract(&sp8, &sp14, &sp20);
|
||||
PSVECScale(&sp20, &sp20, 0.008333334f);
|
||||
temp_f31 = 180.0 * (atan2(sp8.x - sp14.x, sp8.z - sp14.z) / M_PI);
|
||||
temp_f31 = atan2d(sp8.x - sp14.x, sp8.z - sp14.z);
|
||||
BoardModelPosGet(temp_r31[1], &sp14);
|
||||
while (fn_1_1130(temp_r31[1], temp_f31, 2.5f) == 0) {
|
||||
if (*lbl_1_bss_0 == 0) {
|
||||
if (lbl_1_bss_0->unk00 == 0) {
|
||||
BoardModelAlphaSet(temp_r31[1], 0xFF);
|
||||
} else {
|
||||
BoardModelAlphaSet(temp_r31[1], 0);
|
||||
|
|
@ -273,7 +274,7 @@ static void fn_1_1E60(void) {
|
|||
HuPrcVSleep();
|
||||
}
|
||||
for (i = 0; i < 120; i++) {
|
||||
if (*lbl_1_bss_0 == 0) {
|
||||
if (lbl_1_bss_0->unk00 == 0) {
|
||||
BoardModelAlphaSet(temp_r31[1], 0xFF);
|
||||
} else {
|
||||
BoardModelAlphaSet(temp_r31[1], 0);
|
||||
|
|
@ -295,3 +296,18 @@ static void fn_1_2008(void) {
|
|||
BoardModelKill(temp_r31[1]);
|
||||
HuMemDirectFree(temp_r31);
|
||||
}
|
||||
|
||||
static void fn_1_2044(void) {
|
||||
lbl_1_bss_38 = NULL;
|
||||
}
|
||||
|
||||
void fn_1_2058(void) {
|
||||
s32 sp8;
|
||||
|
||||
sp8 = GWSystem.player_curr;
|
||||
lbl_1_bss_38 = HuPrcChildCreate(fn_1_1618, 0x2003, 0x2000, 0, boardMainProc);
|
||||
HuPrcDestructorSet2(lbl_1_bss_38, fn_1_2044);
|
||||
while (lbl_1_bss_38) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ BoardMapObject lbl_1_data_0[MAPOBJ_MAX] = {
|
|||
static s32 *lbl_1_bss_10;
|
||||
static s16 lbl_1_bss_8[4];
|
||||
static Process *lbl_1_bss_4;
|
||||
s8 *lbl_1_bss_0;
|
||||
UnkW04BoardData *lbl_1_bss_0;
|
||||
|
||||
static s16 lbl_1_data_280 = -1;
|
||||
static s16 lbl_1_data_282 = -1;
|
||||
|
|
@ -79,7 +79,7 @@ void BoardCreate(void) {
|
|||
|
||||
omDBGMenuButton = 1;
|
||||
sp8 = GWBoardGet();
|
||||
lbl_1_bss_0 = (s8*) GWSystem.board_data;
|
||||
lbl_1_bss_0 = (UnkW04BoardData*) GWSystem.board_data;
|
||||
BoardSpaceInit(DATA_MAKE_NUM(DATADIR_W04, 0));
|
||||
lbl_1_data_280 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W04, 1), NULL, 0);
|
||||
fn_8006DDE8(lbl_1_data_280, -1.0f);
|
||||
|
|
@ -204,7 +204,7 @@ static s32 fn_1_7FC(void) {
|
|||
return 1;
|
||||
}
|
||||
if (temp_r3->flag & 0x100) {
|
||||
if (lbl_1_bss_0[0] & 1) {
|
||||
if (lbl_1_bss_0->unk00 & 1) {
|
||||
fn_1_55B4();
|
||||
} else {
|
||||
BoardDiceDigit2DShowSet(0);
|
||||
|
|
@ -422,12 +422,12 @@ s32 fn_1_1130(s16 arg0, float arg1, float arg2) {
|
|||
}
|
||||
if (var_f29 < 180.0f) {
|
||||
if (var_f29 > arg2) {
|
||||
var_f31 = var_f31 + arg2;
|
||||
var_f31 += arg2;
|
||||
} else {
|
||||
var_f31 = arg1;
|
||||
}
|
||||
} else if (360.0f - var_f29 > arg2) {
|
||||
var_f31 = var_f31 - arg2;
|
||||
var_f31 -= arg2;
|
||||
} else {
|
||||
var_f31 = arg1;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue