diff --git a/.gitignore b/.gitignore index 65658a04..81558d47 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,4 @@ orig/*/* !orig/*/.gitkeep /*.txt ctx.c -tools/output/* +tools/output/* \ No newline at end of file diff --git a/configure.py b/configure.py index b2fd7516..ebbdb46f 100644 --- a/configure.py +++ b/configure.py @@ -911,7 +911,7 @@ config.libs = [ Rel('w03Dll', objects = { Object(Matching, "REL/board_executor.c"), - Object(NonMatching, "REL/w03Dll/main.c"), + Object(Matching, "REL/w03Dll/main.c"), Object(NonMatching, "REL/w03Dll/statue.c"), Object(NonMatching, "REL/w03Dll/condor.c"), Object(NonMatching, "REL/w03Dll/river.c"), diff --git a/include/REL/w03Dll.h b/include/REL/w03Dll.h new file mode 100644 index 00000000..ce63d4d8 --- /dev/null +++ b/include/REL/w03Dll.h @@ -0,0 +1,29 @@ +#include "game/gamework_data.h" +#include "dolphin.h" +#include "REL/executor.h" +#include "game/process.h" +#include "game/window.h" +#include "game/object.h" + +#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) + +typedef struct w03StructUnk0 { +/* 0x00 */ Vec unk_00; +/* 0x0C */ Vec unk_0C; +/* 0x18 */ Vec unk_18; +/* 0x24 */ s32 datanum; +} w03StructUnk0; + +typedef struct w03UnkStruct2{ + u8 unk0 : 1; +} w03UnkStruct2; + +typedef struct w03State { + s8 unk0; + u8 unk1; + u8 unk2; + s8 unk3; + u16 unk4; + u16 unk6; + s16 unk8; +} w03State; \ No newline at end of file diff --git a/include/game/audio.h b/include/game/audio.h index 5c058fee..09fd50cf 100644 --- a/include/game/audio.h +++ b/include/game/audio.h @@ -18,8 +18,8 @@ void HuAudFXStop(s32 arg0); void HuAudFXAllStop(void); void HuAudFXFadeOut(s32 arg0, s32 arg1); void HuAudFXPanning(s32 arg0, s16 arg1); -void HuAudFXListnerSet(s32 arg0, s32 arg1, float arg2, float arg3); -void HuAudFXListnerSetEX(s32 arg0, s32 arg1, float sndDist, float sndSpeed, float arg4, float arg5, float arg6); +void HuAudFXListnerSet(Vec* arg0, Vec* arg1, float arg2, float arg3); +void HuAudFXListnerSetEX(Vec* arg0, Vec* arg1, float sndDist, float sndSpeed, float arg4, float arg5, float arg6); void HuAudFXListnerUpdate(s32 arg0, s32 arg1); s32 HuAudFXEmiterPlay(s32 arg0, Vec *arg1); void HuAudFXEmiterUpDate(s32 arg0, Vec *arg1); diff --git a/include/game/msm.h b/include/game/msm.h index f1c0f006..07df3881 100644 --- a/include/game/msm.h +++ b/include/game/msm.h @@ -54,7 +54,7 @@ void msmMusStop(s32 arg0, s32 arg1); s32 msmMusPlay(s32 arg0, s32 arg1); void msmSeDelListener(void); void msmSeUpdataListener(s32 arg0, s32 arg1); -void msmSeSetListener(s32 arg0, s32 arg1, float arg2, float arg3, UnkMsmStruct_02 *arg4); +void msmSeSetListener(Vec* arg0, Vec* arg1, float arg2, float arg3, UnkMsmStruct_02 *arg4); s32 msmSeGetEntryID(s32 arg0, void *arg1); s32 msmSeGetNumPlay(s32 arg0); s32 msmSeGetStatus(s32 arg0); diff --git a/src/REL/w03Dll/main.c b/src/REL/w03Dll/main.c new file mode 100644 index 00000000..7f3ec9ea --- /dev/null +++ b/src/REL/w03Dll/main.c @@ -0,0 +1,469 @@ +#include "dolphin.h" +#include "REL/executor.h" +#include "game/process.h" +#include "game/data.h" +#include "game/gamework_data.h" +#include "REL/w03Dll.h" +#include "game/board/space.h" +#include "game/object.h" +#include "game/board/player.h" +#include "math.h" + +void fn_8005B150(void*, void*); +void fn_1_740(void); +void fn_1_E0(void); +void fn_1_2930(void); +void fn_1_884(void); +void fn_1_8F0(void); +s32 fn_1_910(void); +s32 fn_1_A74(void); +void fn_1_AF8(void); +void fn_1_DEC(void); +void fn_1_10B0(void); +s32 fn_1_12C8(void); +void fn_8006DDE8(s16, f32); +BoardSpace* BoardSpaceGet(s32, s32); +void fn_1_10E4(omObjData* arg0); +extern Process *boardObjMan; +typedef void (*VoidFunc)(void); +extern const VoidFunc _ctors[]; +extern const VoidFunc _dtors[]; +void BoardModelPosSet(s16, f32, f32, f32); +void BoardModelMotionStart(s16, s32, s32); +f32 BoardModelMotionTimeGet(s16); +s16 BoardModelCreate(s32, void*, s32); +void BoardModelKill(s16); +void BoardModelMotionTimeRangeSet(s16, s32, s32); +void Hu3DFogSet(f32, f32, u8, u8, u8); +void HuAudFXListnerSetEX(Vec* arg0, Vec* arg1, float sndDist, float sndSpeed, float arg4, float arg5, float arg6); +u8 WipeStatGet(void); + +//DATA +w03StructUnk0 lbl_1_data_0[] = { +{{0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x0004)}, +{{145.0988f, 65.6173f, -2004.14f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x0005)}, +{{-1548.14f, -1148.76f, -1095.54f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x0006)}, +{{1050.0f, 50.0f, -1810.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x000B)}, +{{-1950.0f, 50.0f, 1790.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 0.914f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x000B)}, +{{1050.0f, 0.0f, -1750.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x000A)}, +{{-1950.0f, 0.0f, 1850.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 0.914f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x000A)}, +{{1950.0f, 0.0f, -1800.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x0010)}, +{{-3150.0f, 0.0f, -600.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x0011)}, +{{-3150.0f, 270.0f, -600.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x0012)}, +{{2080.0f, 0.0f, -1635.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0002, 0x000D)}, +{{-3000.0f, 0.0f, -500.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0002, 0x000D)}, +}; + +s16 lbl_1_data_1E0 = -1; +s16 lbl_1_data_1E2 = -1; +s16 lbl_1_data_1E4 = -1; +s16 lbl_1_data_1E6 = -1; +s16 lbl_1_data_1E8 = -1; + +typedef struct w03StructUnk1 { + f32 unk_00; + f32 unk_04; + f32 unk_08; + f32 unk_0C; + f32 unk_10; + f32 unk_14; + f32 unk_18; + f32 unk_1C; +} w03StructUnk1; + +w03StructUnk1 lbl_1_data_1EC = { + 0.0f, 118.0f, 120.0f, 180.0f, 180.0f, 240.0f, 240.0f, 300.0f +}; + +s32 lbl_1_data_20C[] = { + MAKE_DATA_NUM(0x0077, 0x001C), + DATA_NUM_LISTEND +}; + +s32 lbl_1_data_214[] = { + MAKE_DATA_NUM(0x0002, 0x000E), + DATA_NUM_LISTEND +}; + +s32 lbl_1_data_21C[] = { + -1, -1, -1, -1 +}; + +Vec lbl_1_data_22C[] = { + {3900.0f, 0.0f, 2100.0f}, + {3900.0f, 0.0f, 3600.0f}, + {2700.0f, 0.0f, 5400.0f}, + {2700.0f, 0.0f, 6300.0f}, +}; + +s32 lbl_1_data_25C[] = { + 0x0000044B, 0x00000439, 0x00000439, 0x0000044D +}; + +s32 lbl_1_data_26C[] = { + 0x0000044C, 0x0000043A, 0x0000043A, 0x0000044E +}; + +s32 pad_27C[] = {0}; + +//BSS +s16 lbl_1_bss_C[14]; +s32 lbl_1_bss_8; +omObjData* lbl_1_bss_4; +w03State* lbl_1_bss_0; + +void fn_1_CF4(void); + +// void fn_1_0(void) { +// fn_8005B150(&fn_1_E0, &fn_1_740); +// } + +// int _prolog(void) { +// const VoidFunc* ctors = _ctors; +// while (*ctors != 0) { +// (**ctors)(); +// ctors++; +// } +// fn_8005B150(&fn_1_E0, &fn_1_740); +// return 0; +// } + +// void _epilog(void) { +// const VoidFunc* dtors = _dtors; +// while (*dtors != 0) { +// (**dtors)(); +// dtors++; +// } +// } + +void BoardCreate(void) { + s32* var_r29; + f32 var_f30; + f32 var_f31; + s32 var_r31; + s32 var_r31_2; + w03StructUnk0* temp_r30; + s32 i; + + lbl_1_bss_0 = (w03State*)&GWSystem.board_data; + lbl_1_bss_0->unk3 = 0; + BoardSpaceInit(0x770000); + lbl_1_data_1E0 = BoardModelCreate(0x770001, NULL, 0); + fn_8006DDE8(lbl_1_data_1E0, -1.0f); + BoardModelPosSet(lbl_1_data_1E0, 0.0f, 0.0f, 0.0f); + BoardModelMotionStart(lbl_1_data_1E0, 0, 0x40000001); + lbl_1_data_1E8 = BoardModelCreate(0x770003, NULL, 0); + fn_8006DDE8(lbl_1_data_1E8, -1.0f); + BoardModelPosSet(lbl_1_data_1E8, 0.0f, 0.0f, 0.0f); + BoardModelLayerSet(lbl_1_data_1E8, 2); + lbl_1_data_1E2 = BoardModelCreate(0x770002, NULL, 0); + fn_8006DDE8(lbl_1_data_1E2, -1.0f); + BoardModelPosSet(lbl_1_data_1E2, 0.0f, 0.0f, 0.0f); + BoardModelMotionStart(lbl_1_data_1E2, 0, 0x40000001); + lbl_1_data_1E4 = BoardModelCreate(0x77001B, &lbl_1_data_20C, 0); + BoardModelPosSet(lbl_1_data_1E4, 0.0f, 0.0f, 0.0f); + BoardModelMotionStart(lbl_1_data_1E4, 1, 0x40000001); + lbl_1_data_1E6 = BoardModelCreate(0x2000D, &lbl_1_data_214, 0); + BoardModelPosSet(lbl_1_data_1E6, 0.0f, 0.0f, 0.0f); + BoardModelMotionStart(lbl_1_data_1E6, 1, 0x40000001); + + for (i = 0; i < 12; i++) { + temp_r30 = &lbl_1_data_0[i]; + if (temp_r30->datanum != -1) { + if ((i == 10) || (i == 11)) { + var_r29 = lbl_1_data_214; + } else { + var_r29 = NULL; + } + lbl_1_bss_C[i]= BoardModelCreate(temp_r30->datanum, var_r29, 0); + BoardModelPosSetV(lbl_1_bss_C[i], temp_r30); + BoardModelRotSetV(lbl_1_bss_C[i], &temp_r30->unk_0C); + BoardModelScaleSetV(lbl_1_bss_C[i], &temp_r30->unk_18); + BoardModelVisibilitySet(lbl_1_bss_C[i], 1); + } + } + BoardModelMotionStart(lbl_1_bss_C[10], 1, 0x40000001); + BoardModelMotionStart(lbl_1_bss_C[11], 1, 0x40000001); + BoardModelMotionStart(lbl_1_bss_C[7], 0, 0x40000002); + BoardModelMotionStart(lbl_1_bss_C[9], 0, 0x40000002); + BoardModelMotionStart(lbl_1_bss_C[1], 0, 0x40000002); + fn_1_3058(); + fn_1_6494(); + fn_1_7ABC(); + fn_1_9A7C(); + BoardLightHookSet(&fn_1_884, &fn_1_8F0); + BoardSpaceWalkEventFuncSet(&fn_1_910); + BoardSpaceWalkMiniEventFuncSet(&fn_1_A74); + BoardSpaceLandEventFuncSet((void*)&fn_1_AF8); + fn_80083EDC(lbl_1_data_1E4); + fn_800A4F6C(lbl_1_data_1E6); + fn_8007A83C(lbl_1_data_1E6); + BoardShopHostSet(lbl_1_data_1E6); + BoardJunctionMaskSet(0x0000C000); + BoardJunctionMaskSet(0x3000); + fn_1_CF4(); + BoardModelMotionStart(lbl_1_bss_C[0], 0, 0x40000001); + if (lbl_1_bss_0->unk0 != 0) { + var_f30 = lbl_1_data_1EC.unk_10; + var_f31 = lbl_1_data_1EC.unk_14; + fn_1_63F4(0); + } else { + var_f30 = lbl_1_data_1EC.unk_00; + var_f31 = lbl_1_data_1EC.unk_04; + fn_1_63F4(1); + } + BoardModelMotionTimeRangeSet(lbl_1_bss_C[0], var_f30, var_f31); + BoardModelMotionStart(lbl_1_bss_C[2], 0, 0x40000001); + BoardModelMotionTimeRangeSet(lbl_1_bss_C[2], 1, 0x64); + fn_1_785C(); + if (lbl_1_bss_0->unk2 != 0) { + for (i = 0; i < 4; i++) { + if ((lbl_1_bss_0->unk2 & (1 << i)) != 0) { + BoardPlayerPreTurnHookSet(i, &fn_1_2930); + break; + } + } + } + fn_1_DEC(); +} + +void BoardDestroy(void) { + s32 i; + + fn_1_10B0(); + fn_1_9A9C(); + fn_1_7B58(); + for (i = 0; i < 0x0C; i++) { + BoardModelKill(lbl_1_bss_C[i]); + lbl_1_bss_C[i] = -1; + } + if (lbl_1_data_1E6 != -1) { + BoardModelKill(lbl_1_data_1E6); + lbl_1_data_1E6 = -1; + } + if (lbl_1_data_1E4 != -1) { + BoardModelKill(lbl_1_data_1E4); + lbl_1_data_1E4 = -1; + } + if (lbl_1_data_1E0 != -1) { + BoardModelKill(lbl_1_data_1E0); + lbl_1_data_1E0 = -1; + } + if (lbl_1_data_1E2 != -1) { + BoardModelKill(lbl_1_data_1E2); + lbl_1_data_1E2 = -1; + } +} + +void fn_1_884(void) { + s32 var = BoardModelIDGet(lbl_1_data_1E0); + Hu3DModelLightInfoSet(var, 1); + Hu3DFogSet(5000.0f, 30000.0f, 0xE4U, 0xF0U, 0xFFU); +} + +void fn_1_8F0(void) { + Hu3DFogClear(); +} + +s32 fn_1_910(void) { + u32 temp_r3; + s32 cur_player_index; + s32 space; + + cur_player_index = GWSystem.player_curr; + space = GWPlayer[cur_player_index].space_curr; + temp_r3 = BoardSpaceFlagGet(0, space); + if (temp_r3 & 0xC000) { + if ((BoardPlayerSizeGet(cur_player_index) == 2) || ((u8) (( GWPlayer[cur_player_index].bowser_suit)))) { + return 0; + } + if (temp_r3 & 0x4000) { + if (lbl_1_bss_0->unk1 == 0) { + return 0; + } + } + else if (temp_r3 & 0x8000 && lbl_1_bss_0->unk1 != 0) { + return 0; + } + + return fn_1_309C(); + } + if (temp_r3 & 0x200) { + if ((BoardPlayerSizeGet(cur_player_index) == 2) || ((u8) ((GWPlayer[cur_player_index].bowser_suit)) != 0)) { + return 0; + } + return fn_1_675C(); + } + return 0; +} + +s32 fn_1_A74(void) { + s16 space = GWPlayer[GWSystem.player_curr].space_curr; + u32 var = BoardSpaceFlagGet(0, space) & 0x600000; + if (var + -0x200000 == 0) { + fn_1_7BA8(); + return; + } + if (var + -0x400000 == 0) { + fn_1_9AA0(); + } +} + +void fn_1_AF8(void) { + if ((BoardPlayerSizeGet(GWSystem.player_curr) == 0) && (fn_1_12C8() != 0) && (lbl_1_bss_0->unk2 != 0)) { + BoardJunctionMaskSet(0xC00); + } +} +void fn_1_B5C(s32 arg0) { + f32 var_f31; + f32 var_f30; + f32 var_f29; + f32 var_f28; + f32 temp; + + if (arg0 != 0) { + var_f30 = lbl_1_data_1EC.unk_08; + var_f29 = lbl_1_data_1EC.unk_0C; + var_f31 = lbl_1_data_1EC.unk_10; + var_f28 = lbl_1_data_1EC.unk_14; + fn_1_63F4(0); + } else { + var_f30 = lbl_1_data_1EC.unk_18; + var_f29 = lbl_1_data_1EC.unk_1C; + var_f31 = lbl_1_data_1EC.unk_00; + var_f28 = lbl_1_data_1EC.unk_04; + fn_1_63F4(1); + } + BoardModelMotionStart(lbl_1_bss_C[0], 0, 0); + BoardModelMotionTimeSet(lbl_1_bss_C[0], var_f30); + while (1) { + temp = BoardModelMotionTimeGet(lbl_1_bss_C[0]); + if (temp >= var_f29) { + break; + } + HuPrcVSleep(); + } + BoardModelAttrSet(lbl_1_bss_C[0], 0x40000001); + BoardModelMotionTimeSet(lbl_1_bss_C[0], var_f31); + BoardModelMotionTimeRangeSet(lbl_1_bss_C[0], (s32) var_f31, (s32) var_f28); +} + +void fn_1_CF4(void) { + s16 var; + s32 i, j; + BoardSpace* temp_r28; + BoardSpace* temp_r31; + + for (i = 0; i < BoardSpaceCountGet(0); i++) { + var = i + 1; + temp_r31 = BoardSpaceGet(0, var); + for (j = 0; j < temp_r31->link_cnt; j++) { + if (BoardSpaceFlagGet(0, temp_r31->link[j]) & 0xC00) { + temp_r28 = BoardSpaceGet(0, temp_r31->link[j]); + if (lbl_1_bss_0->unk0 != 0) { + temp_r28->flag |= 0x04000000; + BoardJunctionMaskSet(0xC00); + } else { + temp_r28->flag &= ~0x04000000; + BoardJunctionMaskReset(0xC00); + } + } + } + } +} + +void fn_1_DEC(void) { + Vec sp20; + Vec sp14; + Vec sp8; + omObjData* temp_r3; + s32 var_r31; + s32 var_r31_2; + w03UnkStruct2* temp_r29; + s32 i; + + temp_r3 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, &fn_1_10E4); + lbl_1_bss_4 = temp_r3; + temp_r29 = (w03UnkStruct2*)&temp_r3->work[0]; + temp_r29->unk0 = 0; + lbl_1_bss_8 = 0; + BoardCameraPosGet(&sp20); + BoardCameraDirGet(&sp14); + HuAudFXListnerSetEX(&sp20, &sp14, 4800.0f, 36000.0f, 0.0f, 1200.0f, 1200.0f); + for (i = 0; i < 4; i++) { + sp8.x = lbl_1_data_22C[i].x - 3600.0f; + sp8.y = lbl_1_data_22C[i].y; + sp8.z = lbl_1_data_22C[i].z - 3600.0f; + if (lbl_1_bss_0->unk2 != 0) { + lbl_1_data_21C[i] = HuAudFXEmiterPlay(lbl_1_data_26C[i], &sp8); + } else { + lbl_1_data_21C[i] = HuAudFXEmiterPlay(lbl_1_data_25C[i], &sp8); + } + } + + for (i = 0; i < 4; i++) { + if ((WipeStatGet() != 0) || (_CheckFlag(0x1001CU) != 0)) { + HuAudFXVolSet(lbl_1_data_21C[i], 0); + } else { + HuAudFXVolSet(lbl_1_data_21C[i], 0x7F); + } + } + + if (_CheckFlag(0x10010) == 0) { + if (lbl_1_bss_8 == 0) { + HuAudFXPauseAll(1); + lbl_1_bss_8 = 1; + } + } else if (lbl_1_bss_8 != 0) { + HuAudFXPauseAll(0); + lbl_1_bss_8 = 0; + } +} + +void fn_1_10B0(void) { + if (lbl_1_bss_4) { + ((w03UnkStruct2*)&lbl_1_bss_4->work[0])->unk0 = 1; + } +} + +// void fn_1_10E4(omObjData* arg0) { +// Vec sp14; +// Vec sp8; +// s32 i; +// w03UnkStruct2* temp_r29; + +// temp_r29 = (w03UnkStruct2*)&arg0->work[0]; +// if (temp_r29->unk0 != 0 || (fn_8005B6A8() != 0)) { +// for (i = 0; i < 4; i++) { +// if (lbl_1_data_21C[i] != -1) { +// HuAudFXFadeOut(lbl_1_data_21C[i], 100); +// } +// } +// HuAudFXListnerKill(); +// lbl_1_bss_4 = 0; +// omDelObjEx(HuPrcCurrentGet(), arg0); +// return; +// } +// fn_8005D628(&sp8); +// fn_8005D578(&sp14); + +// for (i = 0; i < 4; i++) { +// if ((WipeStatGet() != 0) || (_CheckFlag(0x1001C) != 0)) { +// HuAudFXVolSet(lbl_1_data_21C[i], 0); +// } else { +// HuAudFXVolSet(lbl_1_data_21C[i], 0x7F); +// } +// } + +// sp14.y += 2000.0f; +// if (_CheckFlag(0x10010) == 0) { +// if (lbl_1_bss_8 == 0) { +// HuAudFXPauseAll(1); +// lbl_1_bss_8 = 1; +// } +// } else if (lbl_1_bss_8 != 0) { +// HuAudFXPauseAll(0); +// lbl_1_bss_8 = 0; +// } +// HuAudFXListnerUpdate(&sp14, &sp8); +// } \ No newline at end of file diff --git a/src/game/audio.c b/src/game/audio.c index 25b3006b..238122eb 100644 --- a/src/game/audio.c +++ b/src/game/audio.c @@ -160,7 +160,7 @@ void HuAudFXPanning(s32 arg0, s16 arg1) { } } -void HuAudFXListnerSet(s32 arg0, s32 arg1, float arg2, float arg3) { +void HuAudFXListnerSet(Vec* arg0, Vec* arg1, float arg2, float arg3) { if (omSysExitReq == 0) { HuAudFXListnerSetEX(arg0, arg1, arg2 + Snd3DDistOffset, @@ -171,7 +171,7 @@ void HuAudFXListnerSet(s32 arg0, s32 arg1, float arg2, float arg3) { } } -void HuAudFXListnerSetEX(s32 arg0, s32 arg1, float sndDist, float sndSpeed, float arg4, float arg5, float arg6) { +void HuAudFXListnerSetEX(Vec* arg0, Vec* arg1, float sndDist, float sndSpeed, float arg4, float arg5, float arg6) { UnkMsmStruct_02 sp1C; if (omSysExitReq == 0) {