match w03Dll mg_coin.c
This commit is contained in:
parent
385088879e
commit
4962ae7ee6
3 changed files with 774 additions and 41 deletions
|
|
@ -252,44 +252,44 @@ lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 scope:local data:
|
|||
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
|
||||
lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float
|
||||
|
|
@ -383,13 +383,13 @@ lbl_1_data_454 = .data:0x00000454; // type:object size:0x2 data:2byte
|
|||
lbl_1_data_456 = .data:0x00000456; // type:object size:0x2 data:2byte
|
||||
lbl_1_data_458 = .data:0x00000458; // type:object size:0x2 data:2byte
|
||||
lbl_1_data_45C = .data:0x0000045C; // type:object size:0xC
|
||||
lbl_1_data_468 = .data:0x00000468; // type:object size:0x8
|
||||
lbl_1_data_468 = .data:0x00000468; // type:object size:0x8 scope:local
|
||||
lbl_1_data_470 = .data:0x00000470; // type:object size:0x20
|
||||
lbl_1_data_490 = .data:0x00000490; // type:object size:0x20
|
||||
lbl_1_data_4B0 = .data:0x000004B0; // type:object size:0x1 data:byte
|
||||
lbl_1_data_4B4 = .data:0x000004B4; // type:object size:0x14
|
||||
lbl_1_data_4C8 = .data:0x000004C8; // type:object size:0x6
|
||||
lbl_1_data_4CE = .data:0x000004CE; // type:object size:0xA
|
||||
lbl_1_data_4CE = .data:0x000004CE; // type:object size:0xA scope:local
|
||||
lbl_1_data_4D8 = .data:0x000004D8; // type:object size:0x2 data:2byte
|
||||
lbl_1_data_4DA = .data:0x000004DA; // type:object size:0x2 data:2byte
|
||||
lbl_1_data_4DC = .data:0x000004DC; // type:object size:0x2 data:2byte
|
||||
|
|
|
|||
|
|
@ -996,7 +996,7 @@ config.libs = [
|
|||
Object(NonMatching, "REL/w03Dll/condor.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_coin.c"),
|
||||
Object(Matching, "REL/w03Dll/mg_item.c"),
|
||||
}
|
||||
),
|
||||
|
|
|
|||
733
src/REL/w03Dll/mg_coin.c
Normal file
733
src/REL/w03Dll/mg_coin.c
Normal file
|
|
@ -0,0 +1,733 @@
|
|||
#include "dolphin.h"
|
||||
#include "game/object.h"
|
||||
#include "REL/w03Dll.h"
|
||||
#include "board_unsplit.h"
|
||||
#include "game/board/main.h"
|
||||
#include "game/board/player.h"
|
||||
|
||||
extern u16 HuPadBtnDown[4];
|
||||
extern s16 lbl_1_bss_C[14];
|
||||
|
||||
typedef struct someBits3 { //make sure this is defined correctly
|
||||
/* 0x00 */ struct {
|
||||
u8 unk00_bit0 : 1;
|
||||
u8 unk00_bit1 : 4;
|
||||
u8 unk00_bit5 : 2;
|
||||
u8 unk00_bit7 : 1;
|
||||
};
|
||||
u8 unk1;
|
||||
u8 unk2;
|
||||
u8 unk3;
|
||||
s16 unk_04;
|
||||
s16 unk_06[3];
|
||||
s32 unk_0C;
|
||||
} someBits3;
|
||||
|
||||
typedef struct unkTemp {
|
||||
s8 unk0;
|
||||
u8 unk1;
|
||||
s16 unk_02;
|
||||
f32 unk4;
|
||||
Vec unk8;
|
||||
} unkTemp;
|
||||
|
||||
typedef struct unkTemp2 {
|
||||
/* 0x00 */ struct {
|
||||
u8 unk00_bit0 : 1;
|
||||
};
|
||||
char unk_01[3];
|
||||
s8 unk4;
|
||||
char unk_05[3];
|
||||
f32 unk8;
|
||||
unkTemp* unk_0C;
|
||||
} unkTemp2;
|
||||
|
||||
//function signatures
|
||||
void fn_1_7C98(void);
|
||||
void fn_1_7C38(void);
|
||||
s32 fn_1_7D18(s32 arg0);
|
||||
void fn_1_8140(s32 arg0);
|
||||
void fn_1_81E0(s32 arg0);
|
||||
void fn_1_8530(omObjData* arg0);
|
||||
void fn_1_84A8(s32 arg0);
|
||||
void fn_1_8698(omObjData* arg0, someBits3* arg1);
|
||||
void fn_1_8C08(omObjData* arg0, someBits3* arg1);
|
||||
void fn_1_8E44(omObjData* arg0, someBits3* arg1);
|
||||
void fn_1_9044(omObjData* arg0, someBits3* arg1);
|
||||
void fn_1_91B8(void);
|
||||
void fn_1_9230(s32 arg0);
|
||||
void fn_1_9384(void);
|
||||
void fn_1_9474(s32 arg0);
|
||||
void fn_1_97F8(s32 arg0);
|
||||
void fn_1_9A1C(unkTemp2* arg0);
|
||||
|
||||
double sin(double x);
|
||||
double cos(double x);
|
||||
double atan2(double y, double x);
|
||||
extern s16 MGSeqCreate(s32, ...);
|
||||
u8 MGSeqGetStat(s16);
|
||||
float BoardModelMotionTimeGet(s16 model);
|
||||
float BoardModelMotionMaxTimeGet(s16 model);
|
||||
s32 BoardModelMotionShiftSet(s16 model, s32 motion, float time, float shift_time, u32 attr);
|
||||
void Hu3DModelObjPosGet(s16 arg0, char *arg1, Vec *arg2);
|
||||
|
||||
//DATA
|
||||
s32 lbl_1_data_450 = -1;
|
||||
s16 lbl_1_data_454 = -1;
|
||||
s16 lbl_1_data_456 = -1;
|
||||
s16 lbl_1_data_458 = -1;
|
||||
s32 lbl_1_data_45C[] = {0x00770021, 0x00770022, -1};
|
||||
char phei_str[] = "phei";
|
||||
s32 lbl_1_data_470[] = {
|
||||
0x005F0066,
|
||||
0x001A0066,
|
||||
0x006D0066,
|
||||
0x008A0066,
|
||||
0x00850066,
|
||||
0x00110066,
|
||||
0x000D0066,
|
||||
0x00810066
|
||||
};
|
||||
|
||||
s32 lbl_1_data_490[] = {
|
||||
0x005F0067,
|
||||
0x001A0067,
|
||||
0x006D0067,
|
||||
0x008A0067,
|
||||
0x00850067,
|
||||
0x00110067,
|
||||
0x000D0067,
|
||||
0x00810067
|
||||
};
|
||||
|
||||
s8 lbl_1_data_4B0 = -1;
|
||||
|
||||
s32 lbl_1_data_4B4[] = {
|
||||
0x00000440,
|
||||
0x00000441,
|
||||
0x00000442,
|
||||
0x00000443,
|
||||
0x00000444
|
||||
};
|
||||
|
||||
s8 lbl_1_data_4C8[] = {1, 5, 10, 15, 20, 20};
|
||||
|
||||
//BSS
|
||||
char lbl_1_bss_150[0x30];
|
||||
s16 lbl_1_bss_14E;
|
||||
s8 lbl_1_bss_14C;
|
||||
omObjData* lbl_1_bss_148;
|
||||
omObjData* lbl_1_bss_144;
|
||||
Process* lbl_1_bss_140;
|
||||
|
||||
|
||||
void fn_1_7ABC(void) {
|
||||
lbl_1_data_456 = BoardModelCreate(0x770020, lbl_1_data_45C, 0);
|
||||
BoardModelHookSet(lbl_1_bss_C[7], phei_str, lbl_1_data_456);
|
||||
BoardModelMotionStart(lbl_1_data_456, 2, 0x40000002);
|
||||
BoardModelRotYSet(lbl_1_data_456, -45.0f);
|
||||
}
|
||||
|
||||
void fn_1_7B58(void) {
|
||||
if (lbl_1_data_456 != -1) {
|
||||
BoardModelKill(lbl_1_data_456);
|
||||
lbl_1_data_456 = -1;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_7BA8(void) {
|
||||
BoardDiceDigit2DShowSet(0);
|
||||
lbl_1_bss_140 = HuPrcChildCreate(&fn_1_7C98, 0x2003, 0x2000, 0, boardMainProc);
|
||||
HuPrcDestructorSet2(lbl_1_bss_140, &fn_1_7C38);
|
||||
while (lbl_1_bss_140) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardDiceDigit2DShowSet(1);
|
||||
}
|
||||
|
||||
void fn_1_7C38(void) {
|
||||
if (lbl_1_data_454 != -1) {
|
||||
HuWinKill(lbl_1_data_454);
|
||||
lbl_1_data_454 = -1;
|
||||
}
|
||||
lbl_1_bss_140 = 0;
|
||||
}
|
||||
|
||||
void fn_1_7C98(void) {
|
||||
s32 temp_r31;
|
||||
|
||||
temp_r31 = GWSystem.player_curr;
|
||||
lbl_1_bss_14C = 0;
|
||||
lbl_1_bss_14E = 0;
|
||||
if (fn_1_7D18(temp_r31) != 0) {
|
||||
fn_1_8140(temp_r31);
|
||||
fn_1_9474(temp_r31);
|
||||
fn_1_9230(temp_r31);
|
||||
}
|
||||
HuPrcEnd();
|
||||
}
|
||||
|
||||
s32 fn_1_7D18(s32 arg0) {
|
||||
Point3d sp38;
|
||||
Point3d sp2C;
|
||||
Point3d sp20;
|
||||
Vec sp14;
|
||||
Vec sp8;
|
||||
f32 var_f31;
|
||||
s16 model;
|
||||
s16 space;
|
||||
s16 temp_r28;
|
||||
f32 arctan;
|
||||
|
||||
BoardWinCreateChoice(2, 0x160015, 2, 0);
|
||||
if (GWPlayer[arg0].com != 0) {
|
||||
BoardComKeySetLeft();
|
||||
}
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
if (BoardWinChoiceGet() != 0) {
|
||||
BoardWinCreate(2, 0x160018, 2);
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
return 0;
|
||||
}
|
||||
BoardAudSeqPause(0, 1, 1000);
|
||||
sp14.x = 0.0f;
|
||||
sp14.y = 200.0f;
|
||||
sp14.z = 0.0f;
|
||||
sp8.x = -10.0f;
|
||||
sp8.y = 0.0f;
|
||||
sp8.z = 0.0f;
|
||||
BoardCameraMotionStartEx(lbl_1_bss_C[7], &sp8, &sp14, 1500.0f, -1.0f, 0x15);
|
||||
space = GWPlayer[arg0].space_curr;
|
||||
temp_r28 = BoardSpaceLinkFlagSearch(0, space, 0x02000000);
|
||||
BoardPlayerPosGet(arg0, &sp2C);
|
||||
BoardSpacePosGet(0, temp_r28, &sp38);
|
||||
PSVECSubtract(&sp38, &sp2C, &sp20);
|
||||
PSVECNormalize(&sp20, &sp20);
|
||||
BoardPlayerRotYSet(arg0, 180.0 * (atan2(-sp20.x, -sp20.z) / 3.141592653589793));
|
||||
HuPrcSleep(0x1E);
|
||||
model = BoardModelIDGet(lbl_1_bss_C[7]);
|
||||
Hu3DModelObjPosGet(model, phei_str, &sp38);
|
||||
if (GWPlayer[arg0].character == 5) {
|
||||
var_f31 = 54.000004f;
|
||||
} else {
|
||||
var_f31 = 39.0f;
|
||||
}
|
||||
sp38.x = sp38.x + (var_f31 * sin((3.141592653589793 * (180.0f + BoardModelRotYGet(lbl_1_data_456))) / 180.0));
|
||||
sp38.z = sp38.z + (var_f31 * cos((3.141592653589793 * (180.0f + BoardModelRotYGet(lbl_1_data_456))) / 180.0));
|
||||
BoardPlayerPosGet(arg0, &sp2C);
|
||||
BoardPlayerPosLerpStart(arg0, &sp2C, &sp38, 0x14);
|
||||
while (GWPlayer[arg0].moving != 0) {
|
||||
BoardModelPosGet(lbl_1_bss_C[10], &sp2C);
|
||||
BoardPlayerPosGet(arg0, &sp38);
|
||||
PSVECSubtract(&sp38, &sp2C, &sp20);
|
||||
arctan = atan2(sp20.x, sp20.z) / 3.141592653589793 * 180.0;
|
||||
BoardModelRotYSet(lbl_1_bss_C[10], arctan);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardPlayerMotBlendSet(arg0, -0x2D, 7);
|
||||
while (BoardPlayerMotBlendCheck(arg0) == 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
void fn_1_8140(s32 arg0) {
|
||||
s16 temp_r31;
|
||||
|
||||
fn_1_81E0(arg0);
|
||||
BoardMusStart(1, 0x16, 0x7F, 0);
|
||||
temp_r31 = MGSeqCreate(3, 0);
|
||||
while (MGSeqGetStat(temp_r31)) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
fn_1_9384();
|
||||
fn_1_84A8(0);
|
||||
while (lbl_1_bss_144) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
fn_1_91B8();
|
||||
}
|
||||
|
||||
void fn_1_81E0(s32 arg0) {
|
||||
Point3d sp8;
|
||||
omObjData* temp_r3;
|
||||
f32 temp_f31;
|
||||
s32 temp_r28;
|
||||
s32 temp_r5;
|
||||
s32 temp_r5_2;
|
||||
someBits3* temp_r31;
|
||||
|
||||
temp_r3 = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, fn_1_8530);
|
||||
lbl_1_bss_144 = temp_r3;
|
||||
temp_r31 = OM_GET_WORK_PTR(temp_r3, someBits3);
|
||||
temp_r31->unk00_bit0 = 0;
|
||||
temp_r31->unk00_bit5 = arg0;
|
||||
temp_r31->unk00_bit1 = 4; //?
|
||||
temp_r31->unk1 = 0;
|
||||
temp_r31->unk2 = 5;
|
||||
temp_r31->unk3 = 0x3C;
|
||||
temp_r31->unk_0C = -1;
|
||||
lbl_1_data_450 = -1;
|
||||
temp_r3->trans.x = 0.0f;
|
||||
temp_r3->trans.y = 0.0f;
|
||||
temp_r28 = GWPlayer[arg0].character;
|
||||
temp_r31->unk_06[1] = BoardPlayerMotionCreate(arg0, lbl_1_data_470[temp_r28]);
|
||||
temp_r31->unk_06[2] = BoardPlayerMotionCreate(arg0, lbl_1_data_490[temp_r28]);
|
||||
temp_f31 = 0.3f;
|
||||
temp_r31->unk_06[0] = BoardModelCreate(0x770009, NULL, 0);
|
||||
BoardModelVisibilitySet(temp_r31->unk_06[0], 0);
|
||||
BoardPlayerPosGet(arg0, &sp8);
|
||||
BoardModelPosSetV(temp_r31->unk_06[0], &sp8);
|
||||
BoardModelScaleSet(temp_r31->unk_06[0], temp_f31, temp_f31, temp_f31);
|
||||
BoardModelMotionStart(temp_r31->unk_06[0], 0, 0x40000001);
|
||||
BoardModelMotionStart(lbl_1_data_456, 0, 0x40000001);
|
||||
BoardModelMotionSpeedSet(lbl_1_data_456, temp_r3->trans.x);
|
||||
BoardPlayerMotionStart(arg0, temp_r31->unk_06[1], 0x40000001);
|
||||
BoardPlayerMotionSpeedSet(arg0, temp_r3->trans.x);
|
||||
lbl_1_data_458 = BoardModelMotionCreate(lbl_1_bss_C[10], 0x770025);
|
||||
}
|
||||
|
||||
void fn_1_8434(someBits3* arg0) {
|
||||
if (arg0->unk_06[1] != -1) {
|
||||
BoardPlayerMotionKill(arg0->unk00_bit5, arg0->unk_06[1]);
|
||||
}
|
||||
if (arg0->unk_06[2] != -1) {
|
||||
BoardPlayerMotionKill(arg0->unk00_bit5, arg0->unk_06[2]);
|
||||
}
|
||||
if (arg0->unk_06[0] != -1) {
|
||||
BoardModelKill(arg0->unk_06[0]);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_84A8(s32 arg0) {
|
||||
someBits3* temp_r31;
|
||||
|
||||
if (lbl_1_bss_144) {
|
||||
temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_144, someBits3);
|
||||
temp_r31->unk00_bit1 = arg0;
|
||||
if (arg0 == 0) {
|
||||
temp_r31->unk_04 = MGSeqCreate(1, temp_r31->unk2, 0x120, 0x40);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_8530(omObjData* arg0) {
|
||||
s32 temp_r0;
|
||||
someBits3* temp_r31;
|
||||
|
||||
temp_r31 = OM_GET_WORK_PTR(arg0, someBits3);
|
||||
|
||||
if ((temp_r31->unk00_bit0 != 0) || (BoardIsKill() != 0)) {
|
||||
if (temp_r31->unk_04 != -1) {
|
||||
MGSeqSetParam(temp_r31->unk_04, 2, -1);
|
||||
}
|
||||
if (temp_r31->unk_06[1] != -1) {
|
||||
BoardPlayerMotionKill(temp_r31->unk00_bit5, temp_r31->unk_06[1]);
|
||||
}
|
||||
if (temp_r31->unk_06[2] != -1) {
|
||||
BoardPlayerMotionKill(temp_r31->unk00_bit5, temp_r31->unk_06[2]);
|
||||
}
|
||||
if (temp_r31->unk_06[0] != -1) {
|
||||
BoardModelKill(temp_r31->unk_06[0]);
|
||||
}
|
||||
lbl_1_bss_144 = NULL;
|
||||
|
||||
omDelObjEx(HuPrcCurrentGet(), arg0);
|
||||
return;
|
||||
}
|
||||
if (temp_r31->unk1 != 0) {
|
||||
temp_r31->unk1--;
|
||||
return;
|
||||
}
|
||||
switch (temp_r31->unk00_bit1) {
|
||||
case 0:
|
||||
fn_1_8698(arg0, temp_r31);
|
||||
return;
|
||||
case 1:
|
||||
fn_1_8C08(arg0, temp_r31);
|
||||
return;
|
||||
case 2:
|
||||
fn_1_8E44(arg0, temp_r31);
|
||||
return;
|
||||
case 3:
|
||||
fn_1_9044(arg0, temp_r31);
|
||||
/* fallthrough */
|
||||
case 4:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_8698(omObjData* arg0, someBits3* arg1) {
|
||||
s32 temp_r27;
|
||||
u32 var_r28;
|
||||
u32 var_r26;
|
||||
f32 temp;
|
||||
Vec sp8;
|
||||
|
||||
if (arg1->unk3 != 0) {
|
||||
arg1->unk3--;
|
||||
} else {
|
||||
if (arg1->unk2 != 0) {
|
||||
arg1->unk2--;
|
||||
} else {
|
||||
MGSeqSetParam(arg1->unk_04, 2, -1);
|
||||
arg1->unk_04 = -1;
|
||||
arg1->unk00_bit1 = 1;
|
||||
temp = BoardModelMotionTimeGet(lbl_1_bss_C[7]);
|
||||
if (temp == 0.0f) {
|
||||
temp = 1.0f;
|
||||
}
|
||||
if (lbl_1_bss_14E > 30) {
|
||||
lbl_1_bss_14E = 30;
|
||||
}
|
||||
//temp2 =
|
||||
OSu16tof32((u16*)&lbl_1_bss_14E, &arg0->rot.x); //??
|
||||
BoardModelAttrReset(lbl_1_data_456, 0x40000002);
|
||||
BoardModelAttrReset(lbl_1_bss_C[7], 0x40000002);
|
||||
BoardModelAttrReset(lbl_1_bss_C[10], 0x40000002);
|
||||
BoardPlayerModelAttrReset(arg1->unk00_bit5, 0x40000002);
|
||||
BoardModelMotionStart(lbl_1_data_456, 1, 0x40000001);
|
||||
BoardModelMotionStart(lbl_1_bss_C[7], 0, 0);
|
||||
BoardModelMotionStart(lbl_1_bss_C[10], lbl_1_data_458, 0);
|
||||
BoardPlayerMotionStart(arg1->unk00_bit5, arg1->unk_06[2], 0);
|
||||
BoardModelVisibilitySet(arg1->unk_06[0], 0);
|
||||
arg1->unk_0C = HuAudFXPlay(0x43F);
|
||||
BoardModelPosGet(lbl_1_data_456, &sp8);
|
||||
arg0->trans.z = sp8.y;
|
||||
arg0->rot.y = 16.666666f * arg0->rot.x;
|
||||
arg0->scale.x = BoardModelMotionMaxTimeGet(lbl_1_bss_C[7]);
|
||||
HuWinDispOff(lbl_1_data_454);
|
||||
BoardCameraMotionStartEx(-1, 0, 0, 1900.0f, -1.0f, 0x15);
|
||||
return;
|
||||
}
|
||||
MGSeqSetParam(arg1->unk_04, 1, arg1->unk2);
|
||||
arg1->unk3 = 60;
|
||||
}
|
||||
|
||||
|
||||
var_r26 = GWPlayer[arg1->unk00_bit5].port;
|
||||
var_r28 = 0;
|
||||
if ((GWPlayer[arg1->unk00_bit5].com) != 0) {
|
||||
temp_r27 = BoardRandMod(100);
|
||||
switch (GWPlayer[arg1->unk00_bit5].diff) {
|
||||
case 0:
|
||||
if (temp_r27 < 12) {
|
||||
var_r28 = 0x100;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (temp_r27 < 22) {
|
||||
var_r28 = 0x100;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (temp_r27 < 50) {
|
||||
var_r28 = 0x100;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
var_r28 = 0x100;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
var_r28 = HuPadBtnDown[var_r26] & 0x100;
|
||||
}
|
||||
if ((var_r28 & 0x100)) {
|
||||
arg0->trans.y += 0.5f;
|
||||
if (arg0->trans.y > 2.0f) {
|
||||
arg0->trans.y = 2.0f;
|
||||
}
|
||||
if (lbl_1_data_450 == -1) {
|
||||
lbl_1_data_450 = HuAudFXPlay(0x43E);
|
||||
}
|
||||
lbl_1_bss_14E += 1;
|
||||
BoardModelVisibilitySet(arg1->unk_06[0], 1);
|
||||
BoardModelRotYSet(arg1->unk_06[0], BoardPlayerRotYGet(arg1->unk00_bit5));
|
||||
} else {
|
||||
arg0->trans.x *= 0.98f;
|
||||
arg0->trans.y = 0.0f;
|
||||
if (arg0->trans.x <= 1.0f) {
|
||||
BoardModelVisibilitySet(arg1->unk_06[0], 0);
|
||||
if (lbl_1_data_450 != -1) {
|
||||
HuAudFXStop(lbl_1_data_450);
|
||||
lbl_1_data_450 = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((lbl_1_data_450 != -1) && (HuAudFXStatusGet(lbl_1_data_450) == 0)) {
|
||||
lbl_1_data_450 = -1;
|
||||
}
|
||||
arg0->trans.x += arg0->trans.y;
|
||||
if (arg0->trans.x > 3.0f) {
|
||||
arg0->trans.x = 3.0f;
|
||||
}
|
||||
BoardPlayerMotionSpeedSet(arg1->unk00_bit5, arg0->trans.x);
|
||||
BoardModelMotionSpeedSet(lbl_1_data_456, arg0->trans.x);
|
||||
}
|
||||
|
||||
void fn_1_8C08(omObjData* arg0, someBits3* arg1) {
|
||||
Point3d spC;
|
||||
f32 temp_f31;
|
||||
f32 temp_f30;
|
||||
s8 temp_r27;
|
||||
|
||||
BoardModelPosGet(lbl_1_data_456, &spC);
|
||||
spC.y += 1.6666666f;
|
||||
if (spC.y >= (arg0->trans.z + arg0->rot.y)) {
|
||||
spC.y = arg0->trans.z + arg0->rot.y;
|
||||
BoardModelMotionSpeedSet(lbl_1_bss_C[10], 0.0f);
|
||||
BoardPlayerMotionSpeedSet(arg1->unk00_bit5, 0.0f);
|
||||
BoardModelAttrSet(lbl_1_bss_C[7], 0x40000002);
|
||||
BoardModelAttrSet(lbl_1_data_456, 0x40000002);
|
||||
arg1->unk00_bit1 = 2;
|
||||
arg1->unk1 = 0x3C;
|
||||
arg1->unk2 = 0;
|
||||
}
|
||||
BoardModelPosSetV(lbl_1_data_456, &spC);
|
||||
temp_f30 = arg0->scale.x * ((spC.y - arg0->trans.z) / 500.0f);
|
||||
OSf32tos8(&temp_f30, &temp_r27);
|
||||
temp_r27 = temp_r27 / 30;
|
||||
if (lbl_1_data_4B0 != temp_r27) {
|
||||
lbl_1_data_4B0 = temp_r27;
|
||||
HuAudFXPlay(lbl_1_data_4B4[temp_r27]);
|
||||
}
|
||||
BoardModelMotionTimeSet(lbl_1_bss_C[7], temp_f30);
|
||||
BoardModelMotionTimeSet(lbl_1_bss_C[10], 0.2f * temp_f30);
|
||||
BoardPlayerMotionTimeSet(arg1->unk00_bit5, 2.0f * temp_f30);
|
||||
}
|
||||
|
||||
void fn_1_8E44(omObjData* arg0, someBits3* arg1) {
|
||||
Point3d sp8;
|
||||
f32 temp_f1;
|
||||
f32 temp_f31;
|
||||
|
||||
if (arg1->unk00_bit7 == 0) {
|
||||
HuAudFXPlay(0x448);
|
||||
arg1->unk00_bit7 = 1;
|
||||
if (arg1->unk_0C != -1) {
|
||||
HuAudFXStop(arg1->unk_0C);
|
||||
arg1->unk_0C = -1;
|
||||
}
|
||||
BoardAudSeqFadeOut(1, 0x3E8);
|
||||
}
|
||||
OSu8tof32(&arg1->unk2, &temp_f31);
|
||||
BoardModelPosGet(lbl_1_data_456, &sp8);
|
||||
sp8.y = (sp8.y + (-0.08166666666666668 * temp_f31 * temp_f31));
|
||||
if (sp8.y < arg0->trans.z) {
|
||||
sp8.y = arg0->trans.z;
|
||||
arg1->unk00_bit1 = 3;
|
||||
arg0->trans.x = arg0->rot.y / 20.0f;
|
||||
arg0->trans.y = 0.0f;
|
||||
arg0->trans.z = 24.0f;
|
||||
BoardModelAttrReset(lbl_1_bss_C[10], 0x40000003);
|
||||
BoardModelMotionSpeedSet(lbl_1_bss_C[10], -2.0f);
|
||||
BoardPlayerModelAttrReset(arg1->unk00_bit5, 0x40000003);
|
||||
BoardPlayerMotionSpeedSet(arg1->unk00_bit5, -2.0f);
|
||||
HuAudFXPlay(0x449);
|
||||
BoardAudSeqPause(0, 0, 0x3E8);
|
||||
}
|
||||
arg1->unk2 += 1;
|
||||
BoardModelPosSetV(lbl_1_data_456, &sp8);
|
||||
}
|
||||
|
||||
void fn_1_9044(omObjData* arg0, someBits3* arg1) {
|
||||
Vec sp8;
|
||||
|
||||
BoardModelRotGet(lbl_1_data_456, &sp8);
|
||||
arg0->trans.y = BoardDAngleCalc(arg0->trans.y + arg0->trans.z);
|
||||
if (arg0->trans.y <= 2.0f) {
|
||||
if (arg0->trans.y >= -2.0) {
|
||||
arg0->trans.x *= 0.5f;
|
||||
if (arg0->trans.x <= 1.0f) {
|
||||
arg0->trans.y = 0.0f;
|
||||
BoardRotateDiceNumbers(arg1->unk00_bit5);
|
||||
BoardModelMotionShiftSet(lbl_1_bss_C[10], 1, 0.0f, 10.0f, 0x40000001U);
|
||||
arg1->unk00_bit0 = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
sp8.z = arg0->trans.x * sin((3.141592653589793 * arg0->trans.y) / 180.0);
|
||||
BoardModelRotSetV(lbl_1_data_456, &sp8);
|
||||
}
|
||||
|
||||
void fn_1_91B8(void) {
|
||||
s8 temp_r3;
|
||||
|
||||
if (lbl_1_bss_14E == 0) {
|
||||
lbl_1_bss_14E = 1;
|
||||
}
|
||||
temp_r3 = lbl_1_bss_14E / 6;
|
||||
lbl_1_bss_14C = lbl_1_data_4C8[temp_r3];
|
||||
}
|
||||
|
||||
void fn_1_9230(s32 arg0) {
|
||||
Point3d sp20;
|
||||
Point3d sp14;
|
||||
Point3d sp8;
|
||||
s16 temp_r30;
|
||||
f32 rotY;
|
||||
|
||||
temp_r30 = GWPlayer[arg0].space_curr;
|
||||
BoardPlayerPosGet(arg0, &sp20);
|
||||
BoardSpacePosGet(0, temp_r30, &sp14);
|
||||
BoardCameraTargetPlayerSet(arg0);
|
||||
BoardCameraViewSet(1);
|
||||
BoardPlayerPosLerpStart(arg0, &sp20, &sp14, 0x14);
|
||||
while (GWPlayer[arg0].moving != 0) {
|
||||
BoardModelPosGet(lbl_1_bss_C[10], &sp20);
|
||||
BoardPlayerPosGet(arg0, &sp14);
|
||||
PSVECSubtract(&sp14, &sp20, &sp8);
|
||||
rotY = atan2(sp8.x, sp8.z) / 3.141592653589793 * 180.0;
|
||||
BoardModelRotYSet(lbl_1_bss_C[10], rotY);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardModelRotYSet(lbl_1_bss_C[10], 0.0f);
|
||||
BoardCameraMotionWait();
|
||||
}
|
||||
|
||||
void fn_1_9384(void) {
|
||||
f32 widthHeight[2];
|
||||
f32 x, y;
|
||||
|
||||
HuWinMesMaxSizeGet(1, widthHeight, 0x160019);
|
||||
x = -10000.0f;
|
||||
y = 288.0f;
|
||||
lbl_1_data_454 = HuWinCreate(x, y, widthHeight[0], widthHeight[1], 0);
|
||||
HuWinBGTPLvlSet(lbl_1_data_454, 0.0f);
|
||||
HuWinMesSpeedSet(lbl_1_data_454, 0);
|
||||
HuWinMesSet(lbl_1_data_454, 0x160019U);
|
||||
}
|
||||
|
||||
void fn_1_9474(s32 arg0) {
|
||||
sprintf(lbl_1_bss_150, "%d", lbl_1_bss_14C);
|
||||
BoardWinCreate(2, 0x160017U, 2);
|
||||
BoardWinInsertMesSet((u32)lbl_1_bss_150, 4);
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
BoardPlayerMotBlendSet(arg0, 0, 0xF);
|
||||
while (BoardPlayerMotBlendCheck(arg0) == 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
fn_1_97F8(arg0);
|
||||
while (lbl_1_bss_148) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardPlayerMotionShiftSet(arg0, 7, 0.0f, 8.0f, 0U);
|
||||
HuPrcSleep(8);
|
||||
while (BoardPlayerMotionEndCheck(arg0) == 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardWinCreate(2, 0x160018U, 2);
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
BoardModelMotionStart(lbl_1_bss_C[7], 0, 0x40000002);
|
||||
}
|
||||
|
||||
void fn_1_95B8(omObjData* arg0) {
|
||||
f32 temp_f31;
|
||||
s32 var_r25;
|
||||
s32 var_r26;
|
||||
s32 var_r27;
|
||||
s32 var_r28;
|
||||
unkTemp* var_r30;
|
||||
unkTemp2* temp_r29;
|
||||
s32 i;
|
||||
s32 temp;
|
||||
|
||||
temp_r29 = OM_GET_WORK_PTR(arg0, unkTemp2);
|
||||
if ((temp_r29->unk00_bit0 != 0) || (BoardIsKill() != 0)) {
|
||||
fn_1_9A1C(temp_r29);
|
||||
HuMemDirectFree((void*)temp_r29->unk_0C);
|
||||
lbl_1_bss_148 = 0;
|
||||
omDelObjEx(HuPrcCurrentGet(), arg0);
|
||||
return;
|
||||
}
|
||||
var_r30 = temp_r29->unk_0C;
|
||||
|
||||
for (var_r27 = i = 0; i < 20; i++, var_r30++) {
|
||||
if (var_r30->unk0 == 0) {
|
||||
var_r27++;
|
||||
}
|
||||
}
|
||||
|
||||
if (var_r27 == 20) {
|
||||
temp_r29->unk00_bit0 = 1;
|
||||
return;
|
||||
}
|
||||
var_r25 = 0;
|
||||
for (i = 0; i < 20; i++) {
|
||||
var_r30 = &temp_r29->unk_0C[i];
|
||||
if ((var_r30->unk0 == 1) && (var_r25 == 0)) {
|
||||
var_r30->unk0 = 2U;
|
||||
var_r25 = 1;
|
||||
}
|
||||
if (var_r30->unk0 == 2) {
|
||||
var_r30->unk1++;
|
||||
OSu8tof32(&var_r30->unk1, &temp_f31);
|
||||
var_r30->unk4 += 45.0f;
|
||||
var_r30->unk8.y += -0.08166667f * temp_f31 * temp_f31 * 0.75f;
|
||||
if (var_r30->unk8.y < temp_r29->unk8) {
|
||||
var_r30->unk8.y = temp_r29->unk8;
|
||||
CharModelCreateCoinParticle(1, &var_r30->unk8);
|
||||
BoardModelVisibilitySet(var_r30->unk_02, 0);
|
||||
HuAudFXPlay(7);
|
||||
BoardPlayerCoinsAdd(temp_r29->unk4, 1);
|
||||
omVibrate(temp_r29->unk4, 0xC, 6, 6);
|
||||
var_r30->unk0 = 0;
|
||||
}
|
||||
BoardModelPosSetV(var_r30->unk_02, &var_r30->unk8);
|
||||
BoardModelRotYSet(var_r30->unk_02, var_r30->unk4);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void fn_1_97F8(s32 arg0) {
|
||||
Point3d sp8;
|
||||
f32 temp_f2;
|
||||
f32 var_f31;
|
||||
f64 temp_f1;
|
||||
omObjData* temp_r3;
|
||||
s32 i;
|
||||
unkTemp2* temp_r30;
|
||||
unkTemp* temp_r31;
|
||||
|
||||
temp_r3 = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, fn_1_95B8);
|
||||
lbl_1_bss_148 = temp_r3;
|
||||
temp_r30 = OM_GET_WORK_PTR(temp_r3, unkTemp2);
|
||||
temp_r30->unk00_bit0 = 0;
|
||||
temp_r30->unk4 = arg0;
|
||||
temp_r30->unk_0C = HuMemDirectMallocNum(0, 0x190, 0x10000000);
|
||||
BoardPlayerPosGet(arg0, &sp8);
|
||||
temp_r30->unk8 = (80.0f + sp8.y);
|
||||
memset(temp_r30->unk_0C, 0, 0x190);
|
||||
for (i = 0; i < lbl_1_bss_14C; i++) {
|
||||
if (i == 0) {
|
||||
var_f31 = 0.0f;
|
||||
} else {
|
||||
var_f31 = BoardRandFloat();
|
||||
}
|
||||
temp_r31 = &temp_r30->unk_0C[i];
|
||||
temp_r31->unk0 = 1;
|
||||
temp_r31->unk8.x = sp8.x + (50.0f * sin((3.141592653589793 * var_f31) / 180.0));
|
||||
temp_r31->unk8.z = sp8.z + (50.0f * cos((3.141592653589793 * var_f31) / 180.0));
|
||||
temp_r31->unk8.y = 600.0f + sp8.y + (500.0f * BoardRandFloat());
|
||||
temp_r31->unk1 = 0;
|
||||
temp_r31->unk4 = BoardRandFloat() * 360.0f;
|
||||
temp_r31->unk_02 = BoardModelCreate(0x7000A, NULL, 1);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_9A1C(unkTemp2* arg0) {
|
||||
s32 i;
|
||||
unkTemp* temp;
|
||||
|
||||
for (i = 0; i < 20; i++) {
|
||||
temp = &arg0->unk_0C[i];
|
||||
BoardModelKill(temp->unk_02);
|
||||
}
|
||||
}
|
||||
|
||||
char mg_pad[] = "\0\0\0\0\0\0";
|
||||
Loading…
Add table
Add a link
Reference in a new issue