match river.c in w03Dll
This commit is contained in:
parent
92497d4e32
commit
a00bec938a
7 changed files with 523 additions and 41 deletions
|
|
@ -31,12 +31,13 @@ REL/w03Dll/river.c:
|
|||
.text start:0x000063F4 end:0x0000785C
|
||||
.rodata start:0x00000218 end:0x000002A8
|
||||
.data start:0x00000368 end:0x00000410
|
||||
.bss start:0x00000120 end:0x00000140
|
||||
.bss start:0x00000120 end:0x00000138
|
||||
|
||||
REL/w03Dll/smoke.c:
|
||||
.text start:0x0000785C end:0x00007ABC
|
||||
.rodata start:0x000002A8 end:0x000002B0
|
||||
.data start:0x00000410 end:0x00000450
|
||||
.bss start:0x00000138 end:0x00000140
|
||||
|
||||
REL/w03Dll/mg_coin.c:
|
||||
.text start:0x00007ABC end:0x00009A7C
|
||||
|
|
|
|||
|
|
@ -222,34 +222,34 @@ lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double
|
|||
lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:float
|
||||
lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float
|
||||
|
|
@ -366,12 +366,12 @@ lbl_1_data_388 = .data:0x00000388; // type:object size:0x2 data:2byte
|
|||
lbl_1_data_38A = .data:0x0000038A; // type:object size:0x2 data:2byte
|
||||
lbl_1_data_38C = .data:0x0000038C; // type:object size:0x2 data:2byte
|
||||
lbl_1_data_390 = .data:0x00000390; // type:object size:0x10
|
||||
lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0xB data:string
|
||||
lbl_1_data_3AB = .data:0x000003AB; // type:object size:0x6 data:string
|
||||
lbl_1_data_3B1 = .data:0x000003B1; // type:object size:0x7
|
||||
lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0xB scope:local data:string
|
||||
lbl_1_data_3AB = .data:0x000003AB; // type:object size:0x6 scope:local data:string
|
||||
lbl_1_data_3B1 = .data:0x000003B1; // type:object size:0x7 scope:local
|
||||
lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0x48
|
||||
lbl_1_data_400 = .data:0x00000400; // type:object size:0x3 data:string
|
||||
lbl_1_data_403 = .data:0x00000403; // type:object size:0xD
|
||||
lbl_1_data_400 = .data:0x00000400; // type:object size:0x3 scope:local data:string
|
||||
lbl_1_data_403 = .data:0x00000403; // type:object size:0xD scope:local
|
||||
lbl_1_data_410 = .data:0x00000410; // type:object size:0x8 scope:local data:string
|
||||
lbl_1_data_418 = .data:0x00000418; // type:object size:0x8 scope:local data:string
|
||||
lbl_1_data_420 = .data:0x00000420; // type:object size:0x8 scope:local data:string
|
||||
|
|
|
|||
|
|
@ -994,7 +994,7 @@ config.libs = [
|
|||
Object(Matching, "REL/w03Dll/main.c"),
|
||||
Object(Matching, "REL/w03Dll/statue.c"),
|
||||
Object(NonMatching, "REL/w03Dll/condor.c"),
|
||||
Object(NonMatching, "REL/w03Dll/river.c"),
|
||||
Object(Matching, "REL/w03Dll/river.c"),
|
||||
Object(Matching, "REL/w03Dll/smoke.c"),
|
||||
Object(NonMatching, "REL/w03Dll/mg_coin.c"),
|
||||
Object(Matching, "REL/w03Dll/mg_item.c"),
|
||||
|
|
|
|||
|
|
@ -448,4 +448,6 @@ void fn_1_10E4(omObjData* arg0) {
|
|||
lbl_1_bss_8 = 0;
|
||||
}
|
||||
HuAudFXListnerUpdate(&sp14, &sp8);
|
||||
}
|
||||
}
|
||||
|
||||
f32 const padMain = 0.0f;
|
||||
477
src/REL/w03Dll/river.c
Normal file
477
src/REL/w03Dll/river.c
Normal file
|
|
@ -0,0 +1,477 @@
|
|||
#include "dolphin.h"
|
||||
#include "game/object.h"
|
||||
#include "REL/w03Dll.h"
|
||||
#include "board_unsplit.h"
|
||||
#include "game/board/main.h"
|
||||
|
||||
double sin(double x);
|
||||
double cos(double x);
|
||||
double atan2(double y, double x);
|
||||
s16 BoardModelIDGet(s16 model);
|
||||
void Hu3DModelObjPosGet(s16 arg0, char *arg1, Vec *arg2);
|
||||
void BoardPlayerMotBlendSet(s32, s32, s32);
|
||||
float BoardModelMotionTimeGet(s16 model);
|
||||
s32 BoardModelMotionShiftSet(s16 model, s32 motion, float time, float shift_time, u32 attr);
|
||||
void BoardPlayerPosSet(s32, f32, f32, f32);
|
||||
s32 BoardModelHookSet(s16 model, char *name, s16 hook);
|
||||
void BoardPlayerMotionShiftSet(s32, s32, f32, f32, s32);
|
||||
|
||||
|
||||
#define OM_GET_WORK_PTR(object, type) ((type *)(&((object)->work[0])))
|
||||
|
||||
extern s16 lbl_1_bss_C[14];
|
||||
extern s16 boardPlayerMdl[4];
|
||||
|
||||
char lbl_1_bss_130[8];
|
||||
omObjData* lbl_1_bss_12C;
|
||||
s16 lbl_1_bss_128;
|
||||
s32 lbl_1_bss_124;
|
||||
Process* lbl_1_bss_120;
|
||||
|
||||
//function signatures
|
||||
void fn_1_67F8(void);
|
||||
void fn_1_6884(void);
|
||||
void fn_1_767C(omObjData* arg0);
|
||||
s32 fn_1_6898(s32 arg0);
|
||||
void fn_1_6B98(s32 arg0);
|
||||
void fn_1_6F9C(s32 arg0);
|
||||
void fn_1_767C(omObjData* arg0);
|
||||
void fn_1_735C(s32 arg0);
|
||||
void fn_1_77E4(s32 arg0);
|
||||
|
||||
typedef struct unkWorkStruct {
|
||||
struct {
|
||||
u8 temp1 : 1;
|
||||
};
|
||||
s8 unk_01[3];
|
||||
f32 unk_04;
|
||||
} unkWorkStruct;
|
||||
|
||||
//DATA
|
||||
s32 lbl_1_data_368[] = {
|
||||
0x00000105, 0x00000145, 0x00000185,
|
||||
0x000001C5, 0x00000205, 0x00000245,
|
||||
0x00000285, 0x000002C5
|
||||
};
|
||||
|
||||
s16 lbl_1_data_388 = -1;
|
||||
s16 lbl_1_data_38A = -1;
|
||||
s16 lbl_1_data_38C = -1;
|
||||
s32 lbl_1_data_390[] = {
|
||||
0x00770026,
|
||||
0x00770027,
|
||||
0x00770028,
|
||||
-1
|
||||
};
|
||||
|
||||
char itemhook_RString[] = "itemhook_R";
|
||||
char hei01String[] = "hei01";
|
||||
char ikadaString[] = "ikada";
|
||||
|
||||
typedef struct unkPos {
|
||||
s32 x;
|
||||
s32 y;
|
||||
s32 z;
|
||||
} unkPos;
|
||||
|
||||
unkPos lbl_1_data_3B8[6] = {
|
||||
{5, 20, 5},
|
||||
{21, 35, 7},
|
||||
{31, 50, 10},
|
||||
{51, 80, 15},
|
||||
{81, 100, 17},
|
||||
{101, 999, 20},
|
||||
};
|
||||
|
||||
void fn_1_63F4(s32 arg0) {
|
||||
Vec spC;
|
||||
unkWorkStruct* work = OM_GET_WORK_PTR(lbl_1_bss_12C, unkWorkStruct);
|
||||
|
||||
work->unk_04 = 0.0f;
|
||||
BoardModelPosGet(lbl_1_data_388, &spC);
|
||||
if (arg0 != 0) {
|
||||
spC.y = -185.0f;
|
||||
} else {
|
||||
spC.y = 10.0f;
|
||||
}
|
||||
BoardModelPosSetV(lbl_1_data_388, &spC);
|
||||
}
|
||||
|
||||
void fn_1_6494(void) {
|
||||
Vec sp14;
|
||||
Vec sp8;
|
||||
unkWorkStruct* temp_r31;
|
||||
|
||||
lbl_1_data_388 = BoardModelCreate(0x77000E, NULL, 0);
|
||||
lbl_1_data_38C = BoardModelCreate(0x77000F, NULL, 0);
|
||||
lbl_1_data_38A = BoardModelCreate(0x2000D, &lbl_1_data_390[0], 0);
|
||||
BoardModelMotionStart(lbl_1_data_38A, 1, 0x40000001);
|
||||
BoardModelHookSet(lbl_1_data_38A, itemhook_RString, lbl_1_data_38C);
|
||||
BoardModelHookSet(lbl_1_data_388, hei01String, lbl_1_data_38A);
|
||||
|
||||
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_C[0]), ikadaString, &sp14);
|
||||
BoardSpaceFlagPosGet(0, 0x200, &sp8);
|
||||
sp14.x = sp8.x + (400.0 * sin(-1.5707963267948966));
|
||||
sp14.z = sp8.z + (400.0 * cos(-1.5707963267948966));
|
||||
BoardModelPosSetV(lbl_1_data_388, &sp14);
|
||||
lbl_1_bss_12C = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, (void*)fn_1_767C);
|
||||
temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_12C, unkWorkStruct);
|
||||
temp_r31->temp1 = 0;
|
||||
temp_r31->unk_04 = 0.0f;
|
||||
lbl_1_bss_124 = 0;
|
||||
}
|
||||
|
||||
s32 fn_1_6698(void) {
|
||||
Vec sp14;
|
||||
Vec sp8;
|
||||
|
||||
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_C[0]), ikadaString, &sp14);
|
||||
BoardSpaceFlagPosGet(0, 0x200, &sp8);
|
||||
sp14.x = sp8.x + (400.0 * sin(-1.5707963267948966));
|
||||
sp14.z = sp8.z + (400.0 * cos(-1.5707963267948966));
|
||||
BoardModelPosSetV(lbl_1_data_388, (Point3d* ) &sp14);
|
||||
return 1;
|
||||
}
|
||||
|
||||
s16 fn_1_675C(void) {
|
||||
BoardDiceDigit2DShowSet(0);
|
||||
lbl_1_bss_120 = HuPrcChildCreate(fn_1_67F8, 0x2003, 0x2000, 0, boardMainProc);
|
||||
HuPrcDestructorSet2(lbl_1_bss_120, fn_1_6884);
|
||||
while ((u32) lbl_1_bss_120 != 0U) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardDiceDigit2DShowSet(1);
|
||||
return lbl_1_bss_128;
|
||||
}
|
||||
|
||||
void fn_1_67F8(void) {
|
||||
s32 temp_r31;
|
||||
|
||||
temp_r31 = GWSystem.player_curr;
|
||||
lbl_1_bss_128 = 0;
|
||||
if (fn_1_6898(temp_r31) != 0) {
|
||||
fn_1_6F9C(temp_r31);
|
||||
fn_1_6B98(temp_r31);
|
||||
fn_1_735C(temp_r31);
|
||||
lbl_1_bss_128 = 1;
|
||||
}
|
||||
BoardCameraViewSet(1);
|
||||
BoardCameraMotionWait();
|
||||
HuPrcEnd();
|
||||
}
|
||||
|
||||
void fn_1_6884(void) {
|
||||
lbl_1_bss_120 = 0;
|
||||
}
|
||||
|
||||
s32 fn_1_6898(s32 arg0) {
|
||||
Vec sp20;
|
||||
Vec sp14;
|
||||
Vec sp8;
|
||||
f32 temp_f31;
|
||||
s32 var_r27;
|
||||
s32 temp_r3;
|
||||
s32 i, j;
|
||||
s32 temp, temp2;
|
||||
|
||||
BoardRotateDiceNumbers(arg0);
|
||||
BoardCameraViewSet(2);
|
||||
BoardCameraMotionWait();
|
||||
|
||||
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_388), hei01String, &sp20);
|
||||
BoardPlayerPosGet(arg0, &sp14);
|
||||
PSVECSubtract(&sp20, &sp14, &sp8);
|
||||
temp_f31 = 180.0 * (atan2(sp8.x, sp8.z) / 3.141592653589793);
|
||||
BoardCameraTargetModelSet(lbl_1_data_388);
|
||||
BoardPlayerMotBlendSet(arg0, temp_f31, 0xF);
|
||||
while (BoardPlayerMotBlendCheck(arg0) == 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardCameraTargetModelSet(-1);
|
||||
BoardWinCreate(2, 0x160009, 2);
|
||||
BoardWinWait();
|
||||
temp_r3 = BoardPlayerCoinsGet(arg0);
|
||||
if (temp_r3 < 5) {
|
||||
BoardWinCreate(2, 0x16000A, 2);
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
return 0;
|
||||
}
|
||||
|
||||
for (var_r27 = i = 0; i < 6; i++) {
|
||||
temp = lbl_1_data_3B8[i].x;
|
||||
temp2 = lbl_1_data_3B8[i].y;
|
||||
if (temp_r3 >= temp) {
|
||||
if (temp_r3 <= temp2) {
|
||||
var_r27 = lbl_1_data_3B8[i].z;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
sprintf(lbl_1_bss_130, "%d", var_r27);
|
||||
j = 0;
|
||||
while (j == 0) {
|
||||
BoardWinCreateChoice(2, 0x16000B, 2, 0);
|
||||
BoardWinInsertMesSet(lbl_1_bss_130, 2);
|
||||
BoardWinAttrSet(0x10);
|
||||
if (GWPlayer[arg0].com != 0) {
|
||||
fn_1_77E4(arg0);
|
||||
}
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
switch (BoardWinChoiceGet()) {
|
||||
case 0:
|
||||
j = 1;
|
||||
break;
|
||||
case 1:
|
||||
case -1:
|
||||
BoardWinCreate(2, 0x16000E, 2);
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
return 0;
|
||||
default:
|
||||
BoardViewMapExec(arg0);
|
||||
}
|
||||
}
|
||||
for (i = 0; i < var_r27; i++) {
|
||||
BoardPlayerCoinsAdd(arg0, -1);
|
||||
HuAudFXPlay(0xE);
|
||||
HuPrcSleep(6);
|
||||
}
|
||||
HuAudFXPlay(0xF);
|
||||
BoardWinCreate(2, 0x0016000C, 2);
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
return 1;
|
||||
}
|
||||
|
||||
float BoardModelRotYGet(s16 model);
|
||||
s32 BoardDAngleCalcRange(float *value, float min, float range);
|
||||
float BoardModelRotYGet(s16 model);
|
||||
|
||||
void fn_1_6B98(s32 arg0) {
|
||||
Vec sp30;
|
||||
Point3d sp24;
|
||||
Vec sp18;
|
||||
Point3d spC;
|
||||
f32 sp8;
|
||||
f32 temp_f1;
|
||||
f32 temp_f31;
|
||||
s16 var_r31;
|
||||
s16 i;
|
||||
|
||||
BoardModelMotionShiftSet(lbl_1_data_38A, 2, 0.0f, 10.0f, 0);
|
||||
sp8 = BoardModelRotYGet(lbl_1_data_38A);
|
||||
temp_f31 = sp8 + 180.0f;
|
||||
while (BoardDAngleCalcRange(&sp8, temp_f31, 3.0f) == 0) {
|
||||
BoardModelRotYSet(lbl_1_data_38A, sp8);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
while (BoardModelMotionEndCheck(lbl_1_data_38A) == 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardModelPosGet(lbl_1_data_388, &sp24);
|
||||
BoardSpaceFlagPosGet(0, 0x100, &sp30);
|
||||
sp18.x = sp30.x + (400.0 * sin(1.5707963267948966));
|
||||
sp18.z = sp30.z + (400.0 * cos(1.5707963267948966));
|
||||
sp18.y = sp24.y;
|
||||
PSVECSubtract(&sp18, &sp24, &spC);
|
||||
spC.x = spC.x / 120.0f;
|
||||
spC.y /= 120.0f;
|
||||
spC.z = spC.z / 120.0f;
|
||||
BoardCameraTargetModelSet(lbl_1_data_388);
|
||||
BoardModelMotionShiftSet(lbl_1_data_38A, 3, 0.0f, 4.0f, 0x40000001U);
|
||||
HuPrcSleep(4);
|
||||
var_r31 = 0;
|
||||
for (i = 0; i < 0x78U; i++) {
|
||||
PSVECAdd(&spC, &sp24, &sp24);
|
||||
temp_f1 = BoardModelMotionTimeGet(lbl_1_data_38A);
|
||||
if ((temp_f1 >= 5.0f) && (temp_f1 < 15.0f) && ((s16) var_r31 == 0)) {
|
||||
HuAudFXPlay(0x451);
|
||||
var_r31 = 1;
|
||||
}
|
||||
if ((BoardModelMotionTimeGet(lbl_1_data_38A) >= 21.0f) && ((s16) var_r31 != 0)) {
|
||||
var_r31 = 0;
|
||||
}
|
||||
BoardModelPosSetV(lbl_1_data_388, &sp24);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
||||
BoardModelPosSetV(lbl_1_data_388, &sp18);
|
||||
BoardCameraTargetModelSet(-1);
|
||||
BoardModelMotionShiftSet(lbl_1_data_38A, 2, 0.0f, 10.0f, 0x40000004U);
|
||||
sp8 = BoardModelRotYGet(lbl_1_data_38A);
|
||||
temp_f31 = 0.0f;
|
||||
while (BoardDAngleCalcRange(&sp8, temp_f31, 3.0f) == 0) {
|
||||
BoardModelRotYSet(lbl_1_data_38A, sp8);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
while (BoardModelMotionEndCheck(lbl_1_data_38A) == 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardModelMotionShiftSet(lbl_1_data_38A, 1, 0.0f, 10.0f, 0x40000001U);
|
||||
}
|
||||
|
||||
extern s32 lbl_1_data_368[];
|
||||
extern w03State* lbl_1_bss_0;
|
||||
|
||||
static inline PlayerState *BoardPlayerGet(s32 player) {
|
||||
return &GWPlayer[player];
|
||||
}
|
||||
|
||||
static inline s16 BoardPlayerModelGet(s32 player) {
|
||||
PlayerState *player_ptr = BoardPlayerGet(player);
|
||||
return boardPlayerMdl[player_ptr->player_idx];
|
||||
}
|
||||
|
||||
void fn_1_6F9C(s32 arg0) {
|
||||
Vec sp20;
|
||||
Vec sp14;
|
||||
Vec sp8;
|
||||
f32 var_f30;
|
||||
f32 var_f29;
|
||||
f32 var_f31;
|
||||
s32 temp_r4;
|
||||
s32 var_r30;
|
||||
s16 model;
|
||||
|
||||
BoardPlayerPosGet(arg0, &sp14);
|
||||
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_388), "chara01", &sp20);
|
||||
PSVECSubtract(&sp20, &sp14, &sp8);
|
||||
sp8.x /= 60.0f;
|
||||
sp8.z /= 60.0f;
|
||||
sp8.y = 0.0f;
|
||||
if (lbl_1_bss_0->unk0 != 0) {
|
||||
var_f30 = 10.0f;
|
||||
var_f29 = 0.21f;
|
||||
sp14.y += sp20.y;
|
||||
} else {
|
||||
var_f30 = 0.0f;
|
||||
var_f29 = 0.15f;
|
||||
}
|
||||
lbl_1_bss_124 = 1;
|
||||
HuAudFXPlay(lbl_1_data_368[GWPlayer[arg0].character]);
|
||||
BoardPlayerMotionShiftSet(arg0, 4, 0.0f, 10.0f, 0U);
|
||||
for (var_r30 = 0, var_f31 = 0.0f; var_f31 < 60.0f; var_f31 += 1.0f) {
|
||||
PSVECAdd(&sp14, &sp8, &sp14);
|
||||
sp14.y += 10.0f + var_f30 + (var_f29 * (-0.08166667f * var_f31 * var_f31));
|
||||
if (sp14.y <= sp20.y) {
|
||||
sp14.y = sp20.y;
|
||||
if (var_r30 == 0) {
|
||||
BoardPlayerMotionShiftSet(arg0, 5, 0.0f, 8.0f, 0U);
|
||||
var_r30 = 1;
|
||||
}
|
||||
}
|
||||
BoardPlayerPosSetV(arg0, &sp14);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
||||
BoardPlayerMotionShiftSet(arg0, 5, 0.0f, 8.0f, 0U);
|
||||
HuPrcSleep(10);
|
||||
BoardRotateDiceNumbers(arg0);
|
||||
if (GWPlayer[arg0].bowser_suit != 0) {
|
||||
BoardModelHookSet(lbl_1_data_388, "chara01", BoardPlayerModelGet(arg0));
|
||||
} else {
|
||||
BoardModelHookSet(lbl_1_data_388, "chara01", BoardPlayerModelGet(arg0));
|
||||
}
|
||||
BoardPlayerPosSet(arg0, 0.0f, 0.0f, 0.0f);
|
||||
lbl_1_bss_124 = 0;
|
||||
}
|
||||
|
||||
void fn_1_735C(s32 arg0) {
|
||||
Vec sp20;
|
||||
Vec sp14;
|
||||
Point3d sp8;
|
||||
f32 temp_f1;
|
||||
f32 var_f30;
|
||||
f32 var_f31;
|
||||
s32 temp_r29;
|
||||
s32 temp_r4;
|
||||
s32 var_r30;
|
||||
|
||||
temp_r29 = BoardSpaceFlagPosGet(0, 0x100, &sp20);
|
||||
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_388), "chara01", &sp14);
|
||||
BoardPlayerPosSetV(arg0, &sp14);
|
||||
BoardModelHookObjReset(lbl_1_data_388, "chara01");
|
||||
PSVECSubtract(&sp20, &sp14, &sp8);
|
||||
|
||||
sp8.x = sp8.x / 60.0f;
|
||||
sp8.z = sp8.z / 60.0f;
|
||||
sp8.y = 0.0f;
|
||||
|
||||
HuAudFXPlay(lbl_1_data_368[GWPlayer[arg0].character]);
|
||||
BoardPlayerMotionShiftSet(arg0, 4, 0.0f, 10.0f, 0U);
|
||||
if (lbl_1_bss_0->unk0 != 0) {
|
||||
var_f30 = 0.25f;
|
||||
} else {
|
||||
var_f30 = 0.2f;
|
||||
}
|
||||
|
||||
for (var_r30 = 0, var_f31 = 0.0f; var_f31 < 60.0f; var_f31 += 1.0f) {
|
||||
PSVECAdd(&sp14, &sp8, &sp14);
|
||||
sp14.y += 20.0f + (var_f30 * (-0.08166667f * var_f31 * var_f31));
|
||||
if (sp14.y <= sp20.y && var_f31 > 48.0f) {
|
||||
sp14.y = sp20.y;
|
||||
if (var_r30 == 0) {
|
||||
BoardPlayerMotionShiftSet(arg0, 5, 0.0f, 8.0f, 0U);
|
||||
var_r30 = 1;
|
||||
}
|
||||
}
|
||||
BoardPlayerPosSetV(arg0, &sp14);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
||||
BoardPlayerPosSetV(arg0, &sp20);
|
||||
HuPrcSleep(0xA);
|
||||
BoardPlayerMotBlendSet(arg0, 0, 0xF);
|
||||
while (BoardPlayerMotBlendCheck(arg0) == 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardRotateDiceNumbers(arg0);
|
||||
GWPlayer[arg0].space_curr = temp_r29;
|
||||
GWPlayer[arg0].space_prev = -1;
|
||||
BoardPlayerPostTurnHookSet(arg0, fn_1_6698);
|
||||
BoardWinCreate(2, 0x16000D, 2);
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
}
|
||||
|
||||
|
||||
void fn_1_767C(omObjData* arg0) {
|
||||
Point3d sp8;
|
||||
s32 temp_r30;
|
||||
unkWorkStruct* temp_r31;
|
||||
|
||||
temp_r31 = OM_GET_WORK_PTR(arg0, unkWorkStruct);
|
||||
if ( (temp_r31->temp1 != 0) || (BoardIsKill() != 0)) {
|
||||
lbl_1_bss_12C = NULL;
|
||||
omDelObjEx(HuPrcCurrentGet(), arg0);
|
||||
return;
|
||||
}
|
||||
if ((lbl_1_data_388 != -1) && (lbl_1_bss_124 == 0)) {
|
||||
temp_r31->unk_04 += 3.0f;
|
||||
if (temp_r31->unk_04 >= 360.0f) {
|
||||
temp_r31->unk_04 = (f32) (temp_r31->unk_04 - 360.0f);
|
||||
}
|
||||
BoardModelPosGet(lbl_1_data_388, &sp8);
|
||||
sp8.y = (f32) ((f64) sp8.y + (0.25 * (2.0 * sin((3.141592653589793 * (f64) temp_r31->unk_04) / 180.0))));
|
||||
BoardModelPosSetV(lbl_1_data_388, &sp8);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_77E4(s32 arg0) {
|
||||
s32 boardIndex;
|
||||
s32 var_r30 = 0;
|
||||
|
||||
boardIndex = GWSystem.star_pos;
|
||||
if ((boardIndex == 1) || (boardIndex == 2) || (boardIndex == 3) || (boardIndex == 4)) {
|
||||
var_r30 = 1;
|
||||
}
|
||||
if (var_r30 != 0) {
|
||||
BoardComKeySetLeft();
|
||||
return;
|
||||
}
|
||||
BoardComKeySetRight();
|
||||
}
|
||||
|
||||
char padRiver[] = "\0\0\0\0";
|
||||
|
|
@ -11,7 +11,7 @@ typedef struct w03UnkWorkStruct {
|
|||
} w03UnkWorkStruct;
|
||||
|
||||
extern w03State* lbl_1_bss_0;
|
||||
extern omObjData* lbl_1_bss_138;
|
||||
omObjData* lbl_1_bss_138[2];
|
||||
extern Process *boardObjMan;
|
||||
extern s16 lbl_1_data_1E0;
|
||||
|
||||
|
|
@ -35,8 +35,8 @@ void fn_1_785C(void) {
|
|||
w03UnkWorkStruct* temp_r31;
|
||||
char* temp_r29;
|
||||
|
||||
lbl_1_bss_138 = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, fn_1_79E0);
|
||||
temp_r31 = (w03UnkWorkStruct*)&lbl_1_bss_138->work[0];
|
||||
lbl_1_bss_138[0] = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, fn_1_79E0);
|
||||
temp_r31 = (w03UnkWorkStruct*)&lbl_1_bss_138[0]->work[0];
|
||||
for (i = 0; i < 5; i++) {
|
||||
temp_r31->unk_00[i] = BoardModelCreate(0x770008, NULL, 0);
|
||||
temp_r29 = kemuri_strings[i];
|
||||
|
|
@ -66,7 +66,7 @@ void fn_1_79E0(omObjData* arg0) {
|
|||
for (i = 0; i < 5; i++) {
|
||||
BoardModelKill(temp_r30->unk_00[i]);
|
||||
}
|
||||
lbl_1_bss_138 = NULL;
|
||||
lbl_1_bss_138[0] = NULL;
|
||||
omDelObjEx(HuPrcCurrentGet(), arg0);
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -646,4 +646,6 @@ void fn_1_2B44(void) {
|
|||
GXPosition2u16(temp_f28, temp_f29);
|
||||
GXPosition2f32(0.0f, 1.0f);
|
||||
GXSetChanMatColor(GX_COLOR0A0, sp1C);
|
||||
}
|
||||
}
|
||||
|
||||
f32 const padStatue = 0.0f;
|
||||
Loading…
Add table
Add a link
Reference in a new issue