// // Generated By: dol2asm // Translation Unit: Z2EnvSeMgr // #include "Z2AudioLib/Z2EnvSeMgr.h" #include "Z2AudioLib/Z2Calc.h" #include "JSystem/JAudio2/JASCalc.h" #include "d/save/d_save.h" #include "d/com/d_com_inf_game.h" #include "dol2asm.h" // // Forward References: // extern "C" void __ct__11Z2EnvSeBaseFP3Vec(); extern "C" void __dt__11Z2EnvSeBaseFv(); extern "C" void startEnvSe__11Z2EnvSeBaseF10JAISoundIDfffffUl(); extern "C" void startEnvSeLevel__11Z2EnvSeBaseF10JAISoundIDfffffUl(); extern "C" void __ct__10Z2EnvSeDirFP3Vec(); extern "C" void __dt__10Z2EnvSeDirFv(); extern "C" void setPanDir__10Z2EnvSeDirFP3Vec(); extern "C" void calcPan__10Z2EnvSeDirFf(); extern "C" void startEnvSeDirLevel__10Z2EnvSeDirF10JAISoundIDff(); extern "C" void __ct__14Z2EnvSeAutoPanFv(); extern "C" void __dt__14Z2EnvSeAutoPanFv(); extern "C" void setPanParam__14Z2EnvSeAutoPanFffbbff(); extern "C" void calcPan__14Z2EnvSeAutoPanFv(); extern "C" void startEnvSeAutoPanLevel__14Z2EnvSeAutoPanF10JAISoundIDfff(); extern "C" void __ct__10Z2EnvSeMgrFv(); extern "C" void __dt__10Z2EnvSeMgrFv(); extern "C" void framework__10Z2EnvSeMgrFv(); extern "C" void resetScene__10Z2EnvSeMgrFv(); extern "C" void resetSceneInner__10Z2EnvSeMgrFv(); extern "C" void initSceneEnvSe__10Z2EnvSeMgrFlScf(); extern "C" void playSceneEnvSe__10Z2EnvSeMgrFv(); extern "C" void initStaticEnvSe__10Z2EnvSeMgrFUcUcUcUcP3Vec(); extern "C" void startStaticEnvSe__10Z2EnvSeMgrFSc(); extern "C" void registWindowPos__10Z2EnvSeMgrFP3Vec(); extern "C" void startRainSe__10Z2EnvSeMgrFlSc(); extern "C" void startNearThunderSe__10Z2EnvSeMgrFSc(); extern "C" void startFarThunderSe__10Z2EnvSeMgrFP3VecSc(); extern "C" void setSnowPower__10Z2EnvSeMgrFSc(); extern "C" void initStrongWindSe__10Z2EnvSeMgrFv(); extern "C" void setWindDirection__10Z2EnvSeMgrFP3Vec(); extern "C" void startStrongWindSe__10Z2EnvSeMgrFSc(); extern "C" void initRiverSe__10Z2EnvSeMgrFUcUcUcUc(); extern "C" void registRiverSePos__10Z2EnvSeMgrFP3Vec(); extern "C" void setHyrulSewerOpen__10Z2EnvSeMgrFb(); extern "C" void startRiverSe__10Z2EnvSeMgrFSc(); extern "C" void initFallSe__10Z2EnvSeMgrFUcUcUcUc(); extern "C" void registFallSePos__10Z2EnvSeMgrFP3Vec(); extern "C" void startFallSe__10Z2EnvSeMgrFSc(); extern "C" void initEtcSe__10Z2EnvSeMgrFUcUcUcUc(); extern "C" void registEtcSePos__10Z2EnvSeMgrFP3Vec(); extern "C" void startEtcSe__10Z2EnvSeMgrFSc(); extern "C" void registWolfSmellSePos__10Z2EnvSeMgrFP3Vec(); extern "C" void startFogWipeTrigger__10Z2EnvSeMgrFP3Vec(); extern "C" void setFogWipeWidth__10Z2EnvSeMgrFf(); extern "C" void getFogDensity__10Z2EnvSeMgrFv(); extern "C" void startFogSe__10Z2EnvSeMgrFv(); extern "C" void initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc(); extern "C" void registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec(); extern "C" void startLv3WaterSe__10Z2EnvSeMgrFSc(); // // External References: // extern "C" void dComIfGp_getReverb__Fi(); extern "C" void isSwitch__12dSv_memBit_cCFi(); extern "C" void isEventBit__11dSv_event_cCFUs(); extern "C" void releaseSound__14JAISoundHandleFv(); extern "C" void releaseHandle__8JAISoundFv(); extern "C" void stop__8JAISoundFUl(); extern "C" void moveVolume__18JAISoundParamsMoveFfUl(); extern "C" void movePitch__18JAISoundParamsMoveFfUl(); extern "C" void moveFxMix__18JAISoundParamsMoveFfUl(); extern "C" void movePan__18JAISoundParamsMoveFfUl(); extern "C" void moveDolby__18JAISoundParamsMoveFfUl(); extern "C" void func_802A2FEC(); extern "C" void linearTransform__6Z2CalcFfffffb(); extern "C" void getParamByExp__6Z2CalcFffffffQ26Z2Calc9CurveSign(); extern "C" void getRandom__6Z2CalcFfff(); extern "C" void setParam__Q26Z2Calc8FNoise1fFfff(); extern "C" void calcNoise1f__Q26Z2Calc8FNoise1fFv(); extern "C" void setIIR__10Z2SoundMgrFP8JAISoundPCs(); extern "C" void setPortData__14Z2SoundStarterFP14JAISoundHandleUlUsSc(); extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); extern "C" void __ct__12Z2MultiSeMgrFv(); extern "C" void __dt__12Z2MultiSeMgrFv(); extern "C" void registMultiSePos__12Z2MultiSeMgrFP3Vec(); extern "C" void resetMultiSePos__12Z2MultiSeMgrFv(); extern "C" void getPanPower__12Z2MultiSeMgrFv(); extern "C" void getDolbyPower__12Z2MultiSeMgrFv(); extern "C" void convertAbsToRel__10Z2AudienceFR3VecP3Veci(); extern "C" void calcRelPosVolume__10Z2AudienceFRC3Vecfi(); extern "C" void calcRelPosPan__10Z2AudienceFRC3Veci(); extern "C" void calcRelPosDolby__10Z2AudienceFRC3Veci(); extern "C" void __dl__FPv(); extern "C" void JMAFastVECNormalize__FPC3VecP3Vec(); extern "C" void __cvt_fp2unsigned(); extern "C" void _savegpr_27(); extern "C" void _savegpr_28(); extern "C" void _savegpr_29(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); extern "C" u8 const CUTOFF_TO_IIR_TABLE__7JASCalc[1024]; extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; extern "C" extern u8 data_80450B44[4]; extern "C" extern u8 data_80450B60[4]; extern "C" extern u8 data_80450B74[4]; extern "C" extern u8 data_80450B7C[4]; extern "C" extern u8 data_80450B80[4]; extern "C" u8 mLinkPtr__14Z2CreatureLink[4 + 4 /* padding */]; extern "C" f32 cEqualCSlope__6Z2Calc; extern "C" f32 cEqualPSlope__6Z2Calc; extern "C" extern u8 __OSReport_disable; // // Declarations: // /* 802C589C-802C58AC 2C01DC 0010+00 3/3 0/0 0/0 .text __ct__11Z2EnvSeBaseFP3Vec */ Z2EnvSeBase::Z2EnvSeBase(Vec* param_0) { mPos = param_0; } /* 802C58AC-802C5908 2C01EC 005C+00 3/3 0/0 0/0 .text __dt__11Z2EnvSeBaseFv */ Z2EnvSeBase::~Z2EnvSeBase() {} /* ############################################################################################## */ /* 80455D40-80455D44 004340 0004+00 2/2 0/0 0/0 .sdata2 @3501 */ SECTION_SDATA2 static f32 lit_3501 = 0.33f; /* 80455D44-80455D48 004344 0004+00 24/24 0/0 0/0 .sdata2 @3502 */ SECTION_SDATA2 static f32 lit_3502 = 1.0f; /* 80455D48-80455D4C 004348 0004+00 19/19 0/0 0/0 .sdata2 @3503 */ SECTION_SDATA2 static u8 lit_3503[4] = { 0x00, 0x00, 0x00, 0x00, }; /* 80455D4C-80455D50 00434C 0004+00 2/2 0/0 0/0 .sdata2 @3504 */ SECTION_SDATA2 static f32 lit_3504 = 1500.0f; /* 80455D50-80455D58 004350 0004+04 9/9 0/0 0/0 .sdata2 @3505 */ SECTION_SDATA2 static f32 lit_3505[1 + 1 /* padding */] = { 1.0f / 10.0f, /* padding */ 0.0f, }; /* 80455D58-80455D60 004358 0008+00 8/8 0/0 0/0 .sdata2 @3508 */ SECTION_SDATA2 static f64 lit_3508 = 4503599627370496.0 /* cast u32 to float */; /* 802C5908-802C5AB4 2C0248 01AC+00 2/2 0/0 0/0 .text * startEnvSe__11Z2EnvSeBaseF10JAISoundIDfffffUl */ // Matches with literals #ifdef NONMATCHING bool Z2EnvSeBase::startEnvSe(JAISoundID param_1, f32 param_2, f32 param_3, f32 param_4, f32 param_5, f32 param_6, u32 param_7) { if (Z2GetStatusMgr()->isPaused()) { param_3 *= 0.33f; } f32 dVar16 = 1.0f; bool uStack_44 = Z2GetStatusMgr()->getCameraInWaterDepth() > 0.0f; f32 fVar1 = uStack_44; if (fVar1) { dVar16 = Z2Calc::getParamByExp( fVar1, 1500.0f, 0.0f, 0.1f, 0.0f, dVar16, Z2Calc::CURVE_SIGN_0); param_3 *= dVar16; } bool rv = Z2GetSoundStarter()->startSound(param_1, &mHandle, (JGeometry::TVec3*)mPos, 0, param_2, param_6, param_3, param_4, param_5, param_7); if (mHandle) { if (dVar16 < 1.0f) { Z2GetSoundMgr()->setIIR(mHandle.getSound(), JASCalc::CUTOFF_TO_IIR_TABLE[64]); } else { Z2GetSoundMgr()->setIIR(mHandle.getSound(), JASCalc::CUTOFF_TO_IIR_TABLE[127]); } } return rv; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm bool Z2EnvSeBase::startEnvSe(JAISoundID param_0, f32 param_1, f32 param_2, f32 param_3, f32 param_4, f32 param_5, u32 param_6) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/startEnvSe__11Z2EnvSeBaseF10JAISoundIDfffffUl.s" } #pragma pop #endif /* 802C5AB4-802C5C9C 2C03F4 01E8+00 9/9 0/0 0/0 .text * startEnvSeLevel__11Z2EnvSeBaseF10JAISoundIDfffffUl */ // Matches with literals #ifdef NONMATCHING bool Z2EnvSeBase::startEnvSeLevel(JAISoundID param_1, f32 param_2, f32 param_3, f32 param_4, f32 param_5, f32 param_6, u32 param_7) { if (Z2GetStatusMgr()->isPaused()) { param_3 *= 0.33f; } f32 dVar16 = 1.0f; bool uStack_44 = Z2GetStatusMgr()->getCameraInWaterDepth() > 0.0f; f32 fVar1 = uStack_44; if (fVar1) { dVar16 = Z2Calc::getParamByExp( fVar1, 1500.0f, 0.0f, 0.1f, 0.0f, dVar16, Z2Calc::CURVE_SIGN_0); param_3 *= dVar16; } bool rv = Z2GetSoundStarter()->startLevelSound(param_1, &mHandle, (JGeometry::TVec3*)mPos); if (mHandle) { if (dVar16 < 1.0f) { Z2GetSoundMgr()->setIIR(mHandle.getSound(), JASCalc::CUTOFF_TO_IIR_TABLE[64]); } else { Z2GetSoundMgr()->setIIR(mHandle.getSound(), JASCalc::CUTOFF_TO_IIR_TABLE[127]); } mHandle->getAuxiliary().moveVolume(param_3, param_7); mHandle->getAuxiliary().movePan(param_4, param_7); mHandle->getAuxiliary().moveDolby(param_5, param_7); mHandle->getAuxiliary().moveFxMix(param_2, param_7); mHandle->getAuxiliary().movePitch(param_6, param_7); } return rv; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm bool Z2EnvSeBase::startEnvSeLevel(JAISoundID param_0, f32 param_1, f32 param_2, f32 param_3, f32 param_4, f32 param_5, u32 param_6) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/startEnvSeLevel__11Z2EnvSeBaseF10JAISoundIDfffffUl.s" } #pragma pop #endif /* ############################################################################################## */ /* 8039C250-8039C260 0288B0 000C+04 2/2 0/0 0/0 .rodata cNullVec__6Z2Calc */ SECTION_RODATA static Vec const cNullVec__6Z2Calc = {0.0f, 0.0f, 0.0f}; COMPILER_STRIP_GATE(0x8039C250, &cNullVec__6Z2Calc); /* 80455D60-80455D64 004360 0004+00 10/10 0/0 0/0 .sdata2 @3574 */ SECTION_SDATA2 static f32 lit_3574 = 0.5f; /* 802C5C9C-802C5D1C 2C05DC 0080+00 1/1 0/0 0/0 .text __ct__10Z2EnvSeDirFP3Vec */ // matches with literals #ifdef NONMATCHING Z2EnvSeDir::Z2EnvSeDir(Vec* param_0) { field_0x8 = 0.5f; field_0xc = 0.5f; if (param_0) { setPanDir(param_0); } else { mPanDir = cNullVec__6Z2Calc; } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm Z2EnvSeDir::Z2EnvSeDir(Vec* param_0) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/__ct__10Z2EnvSeDirFP3Vec.s" } #pragma pop #endif /* 802C5D1C-802C5D70 2C065C 0054+00 1/1 0/0 0/0 .text __dt__10Z2EnvSeDirFv */ Z2EnvSeDir::~Z2EnvSeDir() {} /* ############################################################################################## */ /* 80455D64-80455D68 004364 0004+00 1/1 0/0 0/0 .sdata2 @3585 */ SECTION_SDATA2 static f32 lit_3585 = -1000.0f; /* 802C5D70-802C5D9C 2C06B0 002C+00 2/2 0/0 0/0 .text setPanDir__10Z2EnvSeDirFP3Vec */ // matches with literals #ifdef NONMATCHING void Z2EnvSeDir::setPanDir(Vec* dir) { mPanDir.x = dir->x * -1000.0f; mPanDir.y = dir->y * -1000.0f; mPanDir.z = dir->z * -1000.0f; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2EnvSeDir::setPanDir(Vec* param_0) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/setPanDir__10Z2EnvSeDirFP3Vec.s" } #pragma pop #endif /* 802C5D9C-802C5E90 2C06DC 00F4+00 1/1 0/0 0/0 .text calcPan__10Z2EnvSeDirFf */ // Matches with literals #ifdef NONMATCHING void Z2EnvSeDir::calcPan(f32 param_0) { if (*getHandle()) { if (0.0f == mPanDir.x && 0.0f == mPanDir.y && 0.0f == mPanDir.z) { (*getHandle())->getAuxiliary().movePan(0.5f, 0); (*getHandle())->getAuxiliary().moveDolby(0.5f, 0); } else { Z2GetAudience()->convertAbsToRel(mPanDir, &mPanDir, 0); JMAFastVECNormalize(&mPanDir, &mPanDir); field_0x8 = Z2GetAudience()->calcRelPosPan(mPanDir, 0); field_0xc = Z2GetAudience()->calcRelPosDolby(mPanDir, 0); (*getHandle())->getAuxiliary().movePan(field_0x8, 0); (*getHandle())->getAuxiliary().moveDolby(field_0xc, 0); } } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2EnvSeDir::calcPan(f32 param_0) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/calcPan__10Z2EnvSeDirFf.s" } #pragma pop #endif /* 802C5E90-802C5ECC 2C07D0 003C+00 1/1 0/0 0/0 .text * startEnvSeDirLevel__10Z2EnvSeDirF10JAISoundIDff */ // Matches with literals #ifdef NONMATCHING bool Z2EnvSeDir::startEnvSeDirLevel(JAISoundID param_1, f32 param_2, f32 param_3) { return Z2EnvSeBase::startEnvSeLevel(param_1, param_2, param_3, field_0x8, field_0xc, 1.0f, 0); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm bool Z2EnvSeDir::startEnvSeDirLevel(JAISoundID param_0, f32 param_1, f32 param_2) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/startEnvSeDirLevel__10Z2EnvSeDirF10JAISoundIDff.s" } #pragma pop #endif /* ############################################################################################## */ /* 80455D68-80455D6C 004368 0004+00 3/3 0/0 0/0 .sdata2 @3654 */ SECTION_SDATA2 static f32 lit_3654 = 0.0018554000416770577f; /* 80455D6C-80455D70 00436C 0004+00 3/3 0/0 0/0 .sdata2 @3655 */ SECTION_SDATA2 static f32 lit_3655 = 0.0008553999941796064f; /* 802C5ECC-802C5F28 2C080C 005C+00 1/1 0/0 0/0 .text __ct__14Z2EnvSeAutoPanFv */ // matches with literals #ifdef NONMATCHING Z2EnvSeAutoPan::Z2EnvSeAutoPan() { field_0x8 = 0.5f; field_0xc = 0.5f; field_0x10 = 0.0018554000416770577f; field_0x14 = 0.0008553999941796064f; field_0x18 = 1; field_0x19 = 1; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm Z2EnvSeAutoPan::Z2EnvSeAutoPan() { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/__ct__14Z2EnvSeAutoPanFv.s" } #pragma pop #endif /* 802C5F28-802C5F7C 2C0868 0054+00 1/1 0/0 0/0 .text __dt__14Z2EnvSeAutoPanFv */ Z2EnvSeAutoPan::~Z2EnvSeAutoPan() {} /* 802C5F7C-802C5F98 2C08BC 001C+00 2/2 0/0 0/0 .text setPanParam__14Z2EnvSeAutoPanFffbbff */ void Z2EnvSeAutoPan::setPanParam(f32 param_1, f32 param_2, bool param_3, bool param_4, f32 param_5, f32 param_6) { field_0x8 = param_1; field_0xc = param_2; field_0x10 = param_5; field_0x14 = param_6; field_0x18 = param_3; field_0x19 = param_4; } /* ############################################################################################## */ /* 80455D70-80455D74 004370 0004+00 4/4 0/0 0/0 .sdata2 @3704 */ SECTION_SDATA2 static f32 lit_3704 = 2.0f; /* 80455D74-80455D78 004374 0004+00 7/7 0/0 0/0 .sdata2 @3705 */ SECTION_SDATA2 static f32 lit_3705 = -1.0f; /* 802C5F98-802C60E0 2C08D8 0148+00 2/2 0/0 0/0 .text calcPan__14Z2EnvSeAutoPanFv */ // Matches with literals #ifdef NONMATCHING void Z2EnvSeAutoPan::calcPan() { if (field_0x18) { field_0x8 += field_0x10; if (field_0x8 > 1.0f) { field_0x8 = 2.0f - field_0x8; field_0x18 = false; } } else { field_0x8 = field_0x8 - field_0x10; if (field_0x8 < 0.0f) { field_0x8 *= -1.0f; field_0x18 = true; } } if (field_0x19) { field_0xc = field_0xc + field_0x14; if (field_0xc > 1.0f) { field_0xc = 2.0f - field_0xc; field_0x19 = false; } } else { field_0xc = field_0xc - field_0x14; if (field_0xc < 0.0f) { field_0xc *= -1.0f; field_0x19 = true; } } if (*getHandle()) { (*getHandle())->getAuxiliary().movePan(field_0x8, 0); (*getHandle())->getAuxiliary().moveDolby(field_0xc, 0); } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2EnvSeAutoPan::calcPan() { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/calcPan__14Z2EnvSeAutoPanFv.s" } #pragma pop #endif /* 802C60E0-802C611C 2C0A20 003C+00 2/2 0/0 0/0 .text * startEnvSeAutoPanLevel__14Z2EnvSeAutoPanF10JAISoundIDfff */ bool Z2EnvSeAutoPan::startEnvSeAutoPanLevel(JAISoundID param_1, f32 param_2, f32 param_3, f32 param_4) { return Z2EnvSeBase::startEnvSeLevel(param_1, param_2, param_3, field_0x8, field_0xc, param_4, 0); } /* ############################################################################################## */ /* 80455D78-80455D7C 004378 0004+00 8/8 0/0 0/0 .sdata2 @3749 */ SECTION_SDATA2 static f32 lit_3749 = 1.0f / 100.0f; /* 80455D7C-80455D80 00437C 0004+00 1/1 0/0 0/0 .sdata2 @3750 */ SECTION_SDATA2 static f32 lit_3750 = 0.007823764346539974f; /* 80455D80-80455D84 004380 0004+00 1/1 0/0 0/0 .sdata2 @3751 */ SECTION_SDATA2 static f32 lit_3751 = 3.0f / 50.0f; /* 80455D84-80455D88 004384 0004+00 4/4 0/0 0/0 .sdata2 @3752 */ SECTION_SDATA2 static f32 lit_3752 = 1.0f / 5.0f; /* 80455D88-80455D8C 004388 0004+00 1/1 0/0 0/0 .sdata2 @3753 */ SECTION_SDATA2 static f32 lit_3753 = 0.026302523910999298f; /* 80455D8C-80455D90 00438C 0004+00 1/1 0/0 0/0 .sdata2 @3754 */ SECTION_SDATA2 static f32 lit_3754 = 0.004999999888241291f; /* 80455D90-80455D94 004390 0004+00 2/2 0/0 0/0 .sdata2 @3755 */ SECTION_SDATA2 static f32 lit_3755 = 9.0f / 10.0f; /* 80455D94-80455D98 004394 0004+00 1/1 0/0 0/0 .sdata2 @3756 */ SECTION_SDATA2 static f32 lit_3756 = 0.023310113698244095f; /* 80455D98-80455D9C 004398 0004+00 1/1 0/0 0/0 .sdata2 @3757 */ SECTION_SDATA2 static f32 lit_3757 = 0.003000000026077032f; /* 80455D9C-80455DA0 00439C 0004+00 1/1 0/0 0/0 .sdata2 @3758 */ SECTION_SDATA2 static f32 lit_3758 = 0.006385157350450754f; /* 80455DA0-80455DA4 0043A0 0004+00 1/1 0/0 0/0 .sdata2 @3759 */ SECTION_SDATA2 static f32 lit_3759 = 0.004000000189989805f; /* 80455DA4-80455DA8 0043A4 0004+00 6/6 0/0 0/0 .sdata2 @3760 */ SECTION_SDATA2 static f32 lit_3760 = 4.0f / 5.0f; /* 80455DA8-80455DAC 0043A8 0004+00 1/1 0/0 0/0 .sdata2 @3761 */ SECTION_SDATA2 static f32 lit_3761 = 0.006188805215060711f; /* 80455DAC-80455DB0 0043AC 0004+00 1/1 0/0 0/0 .sdata2 @3762 */ SECTION_SDATA2 static f32 lit_3762 = 0.0044999998062849045f; /* 80455DB0-80455DB4 0043B0 0004+00 6/6 0/0 0/0 .sdata2 @3763 */ SECTION_SDATA2 static f32 lit_3763 = 3.0f / 10.0f; /* 80455DB4-80455DB8 0043B4 0004+00 1/1 0/0 0/0 .sdata2 @3764 */ SECTION_SDATA2 static f32 lit_3764 = 0.05343298241496086f; /* 80455DB8-80455DBC 0043B8 0004+00 1/1 0/0 0/0 .sdata2 @3765 */ SECTION_SDATA2 static f32 lit_3765 = 0.0020000000949949026f; /* 80455DBC-80455DC0 0043BC 0004+00 7/7 0/0 0/0 .sdata2 @3766 */ SECTION_SDATA2 static f32 lit_3766 = 7.0f / 10.0f; /* 80455DC0-80455DC4 0043C0 0004+00 1/1 0/0 0/0 .sdata2 @3767 */ SECTION_SDATA2 static f32 lit_3767 = 0.04256627336144447f; /* 80455DC4-80455DC8 0043C4 0004+00 1/1 0/0 0/0 .sdata2 @3768 */ SECTION_SDATA2 static f32 lit_3768 = 0.0024999999441206455f; /* 80455DC8-80455DCC 0043C8 0004+00 5/5 0/0 0/0 .sdata2 @3769 */ SECTION_SDATA2 static f32 lit_3769 = 2.0f / 5.0f; /* 80455DCC-80455DD0 0043CC 0004+00 1/1 0/0 0/0 .sdata2 @3770 */ SECTION_SDATA2 static f32 lit_3770 = 0.01293395459651947f; /* 80455DD0-80455DD4 0043D0 0004+00 1/1 0/0 0/0 .sdata2 @3771 */ SECTION_SDATA2 static f32 lit_3771 = 0.006000000052154064f; /* 80455DD4-80455DD8 0043D4 0004+00 3/3 0/0 0/0 .sdata2 @3772 */ SECTION_SDATA2 static f32 lit_3772 = 3.0f / 5.0f; /* 80455DD8-80455DDC 0043D8 0004+00 1/1 0/0 0/0 .sdata2 @3773 */ SECTION_SDATA2 static f32 lit_3773 = 0.012157413177192211f; /* 80455DDC-80455DE0 0043DC 0004+00 1/1 0/0 0/0 .sdata2 @3774 */ SECTION_SDATA2 static f32 lit_3774 = 0.006500000134110451f; /* 80455DE0-80455DE4 0043E0 0004+00 1/1 0/0 0/0 .sdata2 @3775 */ SECTION_SDATA2 static f32 lit_3775 = 0.020923573523759842f; /* 80455DE4-80455DE8 0043E4 0004+00 1/1 0/0 0/0 .sdata2 @3776 */ SECTION_SDATA2 static f32 lit_3776 = 0.0010000000474974513f; /* 80455DE8-80455DEC 0043E8 0004+00 1/1 0/0 0/0 .sdata2 @3777 */ SECTION_SDATA2 static f32 lit_3777 = 0.0037908784579485655f; /* 802C611C-802C6540 2C0A5C 0424+00 0/0 1/1 0/0 .text __ct__10Z2EnvSeMgrFv */ // matches with literals #ifdef NONMATCHING Z2EnvSeMgr::Z2EnvSeMgr() : JASGlobalInstance(this), field_0x38(), field_0x48(1.0f), field_0x4c(1.0f), field_0x50(1.0f), field_0x140(), mSnowPower(), mWindType(), field_0x188(), field_0x1ac(1.0f), field_0x1b0(1.0f), field_0x1b4(1.0f), field_0x1b8(), field_0x1e0(), field_0x1e4(1.0f), field_0x1e8(1.0f), field_0x1ec(1.0f), field_0x214(), field_0x218(1.0f), field_0x21c(1.0f), field_0x220(1.0f), field_0x248(), field_0x24c(1.0f), field_0x250(1.0f), field_0x254(1.0f), field_0x27c(), field_0x280(1.0f), field_0x284(1.0f), field_0x288(1.0f), field_0x2b0(), field_0x2b4(1.0f), field_0x2b8(1.0f), field_0x2bc(1.0f), field_0x2e4(), mFogDensity() { field_0x3c.x = 0.0f; field_0x3c.y = 0.0f; field_0x3c.z = 0.0f; field_0x54 = 0.0f; field_0x58 = 0.0f; field_0x5c = 0.0f; field_0x39 = 0; field_0x2e8.setParam(0.1f, 0.007823764f, 0.06f); field_0x2f8.setParam(0.2f, 0.007823764f, 0.06f); field_0x90.setParam(0.1f, 0.02630252f, 0.005f); field_0xa0.setParam(0.9f, 0.02331011f, 0.003f); field_0xb0.setParam(0.2f, 0.006385157f, 0.004f); field_0xc0.setParam(0.8f, 0.006188805f, 0.0045f); field_0xd0.setParam(0.3f, 0.05343298f, 0.002f); field_0xe0.setParam(0.7f, 0.04256627f, 0.0025f); field_0xf0.setParam(0.4f, 0.01293395f, 0.006f); field_0x100.setParam(0.6f, 0.01215741f, 0.0065f); field_0x18c.setParam(0.1f, 0.02331011f, 0.005f); field_0x19c.setParam(0.5f, 0.05343298f, 0.0025f); field_0x64.setVolumeScale(1.0f); field_0x2c0.setVolumeScale(1.0f); field_0x120.setParam(0.5f, 0.02092357f, 0.001f); field_0x130.setParam(0.1f, 0.003790878f, 0.005f); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm Z2EnvSeMgr::Z2EnvSeMgr() { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/__ct__10Z2EnvSeMgrFv.s" } #pragma pop #endif /* 802C6540-802C66B0 2C0E80 0170+00 0/0 1/1 0/0 .text __dt__10Z2EnvSeMgrFv */ Z2EnvSeMgr::~Z2EnvSeMgr() {} /* ############################################################################################## */ /* 80455DEC-80455DF0 0043EC 0004+00 1/1 0/0 0/0 .sdata2 @3928 */ SECTION_SDATA2 static f32 lit_3928 = 30.0f; /* 802C66B0-802C6998 2C0FF0 02E8+00 0/0 1/1 0/0 .text framework__10Z2EnvSeMgrFv */ // Matches with literals #ifdef NONMATCHING void Z2EnvSeMgr::framework() { int sceneNum = Z2GetSceneMgr()->getCurrentSceneNum(); if (field_0x64.getPosCount() >= 0) { if (field_0x214 == 0x12 || (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[104]) && !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[250]))) { int lVar12 = 0; if (sceneNum == 0x17 || sceneNum == 0x18 || (sceneNum == 0x19)) { lVar12 = 1; } startRainSe(lVar12, 100); } field_0x64.resetMultiSePos(); } if (sceneNum == 0x2e) { startLv3WaterSe(-1); field_0x140 = 0; } if (Z2GetSceneMgr()->isSceneExist()) { playSceneEnvSe(); if (field_0x140 > 0 && mSnowPower == 0) { JAISoundHandle* pJVar8 = field_0x80.getHandle(); if (*pJVar8) { (*pJVar8)->updateLifeTime(field_0x140); } pJVar8 = field_0x88.getHandle(); if (*pJVar8) { (*pJVar8)->updateLifeTime(field_0x140); } field_0x140 = 0; } } if (mFogDensity > 0.0f) { mFogDensity -= 0.01f; if (mFogDensity < 0.0f) { mFogDensity = 0.0f; } } if (field_0x1b8 > 0 && field_0x1b8 < 100) { field_0x1b8++; } else if (field_0x1b8 < 0 && field_0x1b8 > -100) { field_0x1b8--; } if (mSnowPower > 0) { mSnowPower--; } if (Z2GetLink() != NULL) { if (Z2GetLink()->isWolfSmellOpen() != 0) { if (field_0x2e4 < 0x1e) { field_0x2e4++; } if (field_0x2c0.getPosCount() >= 0) { f32 maxVolume = field_0x2c0.getMaxVolume(); field_0x2dc.startEnvSeLevel(Z2SE_ENV_SCENT_GRAVE, 0.0f, (field_0x2e4 / 30.0f) * maxVolume, field_0x2c0.getPanPower(), field_0x2c0.getDolbyPower(), 1.0f, 0); field_0x2c0.resetMultiSePos(); } return; } } if (field_0x2e4 != 0) { field_0x2e4--; } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2EnvSeMgr::framework() { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/framework__10Z2EnvSeMgrFv.s" } #pragma pop #endif /* 802C6998-802C699C 2C12D8 0004+00 0/0 1/1 0/0 .text resetScene__10Z2EnvSeMgrFv */ void Z2EnvSeMgr::resetScene() { /* empty function */ } /* 802C699C-802C6AC0 2C12DC 0124+00 0/0 1/1 0/0 .text resetSceneInner__10Z2EnvSeMgrFv */ #ifdef NONMATCHING void Z2EnvSeMgr::resetSceneInner() { if (-1.0f == field_0x60) { field_0x38 = 0; field_0x48 = 1.0f; field_0x4c = 1.0f; field_0x50 = 1.0f; field_0x54 = 0.0f; field_0x58 = 0.0f; field_0x5c = 0.0f; field_0x39 = 0; field_0x3c = 0.0f; field_0x40 = 0.0f; field_0x44 = 0.0f; } field_0x140 = 0; mWindType = WIND_TYPE_0; field_0x188 = 0; field_0x1e0 = 0; field_0x214 = 0; field_0x248 = 0; field_0x27c = 0; field_0x2b0 = 0; field_0x1b8 = 0; field_0x1ac = 1.0f; field_0x1b0 = 1.0f; field_0x1b4 = 1.0f; field_0x1e4 = 1.0f; field_0x1e8 = 1.0f; field_0x1ec = 1.0f; field_0x218 = 1.0f; field_0x21c = 1.0f; field_0x220 = 1.0f; field_0x24c = 1.0f; field_0x250 = 1.0f; field_0x254 = 1.0f; field_0x280 = 1.0f; field_0x284 = 1.0f; field_0x288 = 1.0f; field_0x2b4 = 1.0f; field_0x2b8 = 1.0f; field_0x2bc = 1.0f; mRiverSeMgr.resetMultiSePos(); mFallSeMgr.resetMultiSePos(); mEtcSeMgr.resetMultiSePos(); field_0x224.resetMultiSePos(); field_0x258.resetMultiSePos(); field_0x28c.resetMultiSePos(); mWolfSmellSeMgr.resetMultiSePos(); field_0x64.resetMultiSePos(); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2EnvSeMgr::resetSceneInner() { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/resetSceneInner__10Z2EnvSeMgrFv.s" } #pragma pop #endif /* ############################################################################################## */ /* 80455DF0-80455DF4 0043F0 0004+00 2/2 0/0 0/0 .sdata2 @3963 */ SECTION_SDATA2 static f32 lit_3963 = 100.0f; /* 802C6AC0-802C6C1C 2C1400 015C+00 0/0 1/1 0/0 .text initSceneEnvSe__10Z2EnvSeMgrFlScf */ // Matches with literals #ifdef NONMATCHING void Z2EnvSeMgr::initSceneEnvSe(s32 param_1, s8 param_2, f32 param_3) { field_0x60 = -1.0f; if (-1.0f == param_3) { return; } u8 r6 = 100.0f * param_3; u8 uVar3 = 0; switch(param_1) { case 0x1e: switch(param_2) { case 0xd: uVar3 = 10; break; case 7: case 9: case 0xb: case 0xc: uVar3 = 2; break; case 8: case 0xa: default: uVar3 = 6; break; } break; case 0x1f: switch(param_2) { case 8: case 0x10: uVar3 = 6; break; case 0x11: uVar3 = 10; break; } break; case 0x20: uVar3 = 10; break; case 0x22: uVar3 = 6; break; case 0x45: uVar3 = 7; break; } initStaticEnvSe(uVar3, r6, 0xff, 0xff, NULL); field_0x60 = param_3; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2EnvSeMgr::initSceneEnvSe(s32 param_0, s8 param_1, f32 param_2) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/initSceneEnvSe__10Z2EnvSeMgrFlScf.s" } #pragma pop #endif /* 802C6C1C-802C6C84 2C155C 0068+00 1/1 0/0 0/0 .text playSceneEnvSe__10Z2EnvSeMgrFv */ // Matches with literals #ifdef NONMATCHING void Z2EnvSeMgr::playSceneEnvSe() { if (-1.0f != field_0x60) { if (field_0x1b8 != 100) { startStaticEnvSe(Z2GetSceneMgr()->getRoomReverb()); } field_0x1b8 = 0; } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2EnvSeMgr::playSceneEnvSe() { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/playSceneEnvSe__10Z2EnvSeMgrFv.s" } #pragma pop #endif /* ############################################################################################## */ /* 803CB9C8-803CB9F8 -00001 0030+00 1/1 0/0 0/0 .data @4025 */ SECTION_DATA static void* lit_4025[12] = { (void*)(((char*)initStaticEnvSe__10Z2EnvSeMgrFUcUcUcUcP3Vec) + 0x428), (void*)(((char*)initStaticEnvSe__10Z2EnvSeMgrFUcUcUcUcP3Vec) + 0x1C8), (void*)(((char*)initStaticEnvSe__10Z2EnvSeMgrFUcUcUcUcP3Vec) + 0x20C), (void*)(((char*)initStaticEnvSe__10Z2EnvSeMgrFUcUcUcUcP3Vec) + 0x250), (void*)(((char*)initStaticEnvSe__10Z2EnvSeMgrFUcUcUcUcP3Vec) + 0x294), (void*)(((char*)initStaticEnvSe__10Z2EnvSeMgrFUcUcUcUcP3Vec) + 0x2D8), (void*)(((char*)initStaticEnvSe__10Z2EnvSeMgrFUcUcUcUcP3Vec) + 0x31C), (void*)(((char*)initStaticEnvSe__10Z2EnvSeMgrFUcUcUcUcP3Vec) + 0x360), (void*)(((char*)initStaticEnvSe__10Z2EnvSeMgrFUcUcUcUcP3Vec) + 0x3A4), (void*)(((char*)initStaticEnvSe__10Z2EnvSeMgrFUcUcUcUcP3Vec) + 0x3E8), (void*)(((char*)initStaticEnvSe__10Z2EnvSeMgrFUcUcUcUcP3Vec) + 0x31C), (void*)(((char*)initStaticEnvSe__10Z2EnvSeMgrFUcUcUcUcP3Vec) + 0x2D8), }; /* 802C6C84-802C70C8 2C15C4 0444+00 2/1 1/1 0/0 .text initStaticEnvSe__10Z2EnvSeMgrFUcUcUcUcP3Vec */ // Matches with literals #ifdef NONMATCHING void Z2EnvSeMgr::initStaticEnvSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4, Vec* param_5) { f32 dVar7; f32 dVar6; f32 fVar1; if (-1.0f == field_0x60) { if (param_2 >= 100) { dVar7 = 1.0f; } else { dVar7 = 0.01f * param_2; } if (param_3 == 0xff) { dVar6 = 1.0f; } else { dVar6 = 0.01f * param_3; } if (param_4 == 0xff) { fVar1 = 0.0f; } else { field_0x3c = *param_5; fVar1 = 0.1f * param_4; } if (field_0x38 != 0 && field_0x38 == param_1) { field_0x39 = 100; if (dVar7 != field_0x48) { field_0x54 = (dVar7 - field_0x48) / 100.0f; } else { field_0x48 = dVar7; field_0x54 = 0.0f; } if (dVar6 != field_0x4c) { field_0x58 = (dVar6 - field_0x4c) / 100.0f; } else { field_0x4c = dVar6; field_0x58 = 0.0f; } if (fVar1 != field_0x50) { field_0x5c = (fVar1 - field_0x50) / 100.0f; } else { field_0x50 = fVar1; field_0x5c = 0.0f; } } else { field_0x48 = dVar7; field_0x4c = dVar6; field_0x50 = fVar1; field_0x54 = 0.0f; field_0x58 = 0.0f; field_0x5c = 0.0f; } switch (param_1) { case 1: field_0x0.setPanParam( 1.0f, 0.0f, true, false, 0.0018554000416770577f, 0.0008553999941796064f); field_0x1c.setPanParam( 0.0f, 1.0f, false, true, 0.0018554000416770577f, 0.0008553999941796064f); break; case 2: field_0x0.setPanParam( 1.0f, 0.0f, true, false, 0.0018554000416770577f, 0.0008553999941796064f); field_0x1c.setPanParam( 0.0f, 1.0f, false, true, 0.0018554000416770577f, 0.0008553999941796064f); break; case 3: field_0x0.setPanParam( 1.0f, 0.0f, true, false, 0.0018554000416770577f, 0.0008553999941796064f); field_0x1c.setPanParam( 0.0f, 1.0f, false, true, 0.0018554000416770577f, 0.0008553999941796064f); break; case 4: field_0x0.setPanParam( 1.0f, 0.0f, true, false, 0.0018554000416770577f, 0.0008553999941796064f); field_0x1c.setPanParam( 0.0f, 1.0f, false, true, 0.0018554000416770577f, 0.0008553999941796064f); break; case 5: case 11: field_0x0.setPanParam( 1.0f, 0.0f, true, false, 0.0018554000416770577f, 0.0008553999941796064f); field_0x1c.setPanParam( 0.0f, 1.0f, false, true, 0.0018554000416770577f, 0.0008553999941796064f); break; case 6: case 10: field_0x0.setPanParam( 1.0f, 0.0f, true, false, 0.0018554000416770577f, 0.0008553999941796064f); field_0x1c.setPanParam( 0.0f, 1.0f, false, true, 0.0018554000416770577f, 0.0008553999941796064f); break; case 7: field_0x0.setPanParam( 1.0f, 0.0f, true, false, 0.0018554000416770577f, 0.0008553999941796064f); field_0x1c.setPanParam( 0.0f, 1.0f, false, true, 0.0018554000416770577f, 0.0008553999941796064f); break; case 8: field_0x0.setPanParam( 1.0f, 0.0f, true, false, 0.0018554000416770577f, 0.0008553999941796064f); field_0x1c.setPanParam( 0.0f, 1.0f, false, true, 0.0018554000416770577f, 0.0008553999941796064f); break; case 9: field_0x0.setPanParam( 1.0f, 0.0f, true, false, 0.0018554000416770577f, 0.0008553999941796064f); field_0x1c.setPanParam( 0.0f, 1.0f, false, true, 0.0018554000416770577f, 0.0008553999941796064f); } field_0x38 = param_1; } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2EnvSeMgr::initStaticEnvSe(u8 param_0, u8 param_1, u8 param_2, u8 param_3, Vec* param_4) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/initStaticEnvSe__10Z2EnvSeMgrFUcUcUcUcP3Vec.s" } #pragma pop #endif /* ############################################################################################## */ /* 803CB9F8-803CBA28 -00001 0030+00 1/1 0/0 0/0 .data @4272 */ SECTION_DATA static void* lit_4272[12] = { (void*)(((char*)startStaticEnvSe__10Z2EnvSeMgrFSc) + 0x168), (void*)(((char*)startStaticEnvSe__10Z2EnvSeMgrFSc) + 0x170), (void*)(((char*)startStaticEnvSe__10Z2EnvSeMgrFSc) + 0x1C4), (void*)(((char*)startStaticEnvSe__10Z2EnvSeMgrFSc) + 0x204), (void*)(((char*)startStaticEnvSe__10Z2EnvSeMgrFSc) + 0x220), (void*)(((char*)startStaticEnvSe__10Z2EnvSeMgrFSc) + 0x46C), (void*)(((char*)startStaticEnvSe__10Z2EnvSeMgrFSc) + 0x48C), (void*)(((char*)startStaticEnvSe__10Z2EnvSeMgrFSc) + 0x528), (void*)(((char*)startStaticEnvSe__10Z2EnvSeMgrFSc) + 0x558), (void*)(((char*)startStaticEnvSe__10Z2EnvSeMgrFSc) + 0x578), (void*)(((char*)startStaticEnvSe__10Z2EnvSeMgrFSc) + 0x4DC), (void*)(((char*)startStaticEnvSe__10Z2EnvSeMgrFSc) + 0x464), }; /* 80455DF4-80455DF8 0043F4 0004+00 9/9 0/0 0/0 .sdata2 @4260 */ SECTION_SDATA2 static f32 lit_4260 = 127.0f; /* 80455DF8-80455DFC 0043F8 0004+00 1/1 0/0 0/0 .sdata2 @4261 */ SECTION_SDATA2 static f32 lit_4261 = 21.0f / 10.0f; /* 80455DFC-80455E00 0043FC 0004+00 1/1 0/0 0/0 .sdata2 @4262 */ SECTION_SDATA2 static f32 lit_4262 = 64.0f; /* 80455E00-80455E04 004400 0004+00 1/1 0/0 0/0 .sdata2 @4263 */ SECTION_SDATA2 static f32 lit_4263 = 7.0f / 20.0f; /* 80455E04-80455E08 004404 0004+00 1/1 0/0 0/0 .sdata2 @4264 */ SECTION_SDATA2 static f32 lit_4264 = 23.0f / 20.0f; /* 80455E08-80455E0C 004408 0004+00 1/1 0/0 0/0 .sdata2 @4265 */ SECTION_SDATA2 static f32 lit_4265 = 8.0f / 5.0f; /* 80455E0C-80455E10 00440C 0004+00 1/1 0/0 0/0 .sdata2 @4266 */ SECTION_SDATA2 static f32 lit_4266 = 13.0f / 20.0f; /* 80455E10-80455E14 004410 0004+00 1/1 0/0 0/0 .sdata2 @4267 */ SECTION_SDATA2 static f32 lit_4267 = 3.0f / 25.0f; /* 80455E14-80455E18 004414 0004+00 1/1 0/0 0/0 .sdata2 @4268 */ SECTION_SDATA2 static f32 lit_4268 = 17.0f / 20.0f; /* 80455E18-80455E20 004418 0004+04 3/3 0/0 0/0 .sdata2 @4269 */ SECTION_SDATA2 static f32 lit_4269[1 + 1 /* padding */] = { 0.75f, /* padding */ 0.0f, }; /* 80455E20-80455E28 004420 0008+00 9/9 0/0 0/0 .sdata2 @4271 */ SECTION_SDATA2 static f64 lit_4271 = 4503601774854144.0 /* cast s32 to float */; /* 802C70C8-802C780C 2C1A08 0744+00 2/1 1/1 0/0 .text startStaticEnvSe__10Z2EnvSeMgrFSc */ // Matches with literals #ifdef NONMATCHING bool Z2EnvSeMgr::startStaticEnvSe(s8 param_1) { field_0x1b8 = 100; f32 local_90 = param_1 / 127.0f; if (field_0x39 != 0) { field_0x48 += field_0x54; field_0x4c += field_0x58; field_0x50 += field_0x5c; field_0x39--; if (field_0x39 == 0) { field_0x54 = 0.0f; field_0x58 = 0.0f; field_0x5c = 0.0f; } } field_0x0.calcPan(); field_0x1c.calcPan(); JAISoundID aJStack_94; JAISoundID aJStack_98 = 0xffffffff; f32 local_9c = 1.0f; if (0.0f != field_0x50) { Vec VStack_8c; Z2GetAudience()->convertAbsToRel(field_0x3c, &VStack_8c, 0); local_9c = Z2GetAudience()->calcRelPosVolume(VStack_8c, field_0x50, 0); } f32 dVar22 = field_0x48 * local_9c; f32 dVar21 = field_0x48 * local_9c; f32 dVar20 = field_0x4c; f32 dVar18 = field_0x4c; u8 bVar15 = Z2GetStatusMgr()->getHour(); switch (field_0x38) { case 0: return false; case 1: if (bVar15 >= 6 && bVar15 <= 18) { aJStack_94 = Z2SE_ENV_FOREST_DAY; aJStack_98 = Z2SE_ENV_FORESTWIND; dVar21 *= 0.7f; } else { aJStack_94 = Z2SE_ENV_FORESTWIND; aJStack_98 = Z2SE_ENV_FORESTWIND; } break; case 2: if (bVar15 >= 6 && bVar15 <= 18) { dVar22 *= 0.7f; dVar21 *= 0.7f; } aJStack_94 = JA_SE_ATM_WIND_HOT; aJStack_98 = JA_SE_ATM_WIND_HOT; dVar20 = 2.0f; dVar18 = 2.1f; break; case 3: aJStack_94 = JA_SE_ATM_WIND_HOT; aJStack_98 = JA_SE_ATM_WIND_HOT; break; case 4: aJStack_94 = Z2SE_ENV_SNOW_MT_WIND_L; aJStack_98 = Z2SE_ENV_SNOW_MT_WIND_R; if (mSnowPower > 64) { dVar22 *= Z2Calc::getParamByExp(mSnowPower, 64.0f, 127.0f, 0.4f, 0.35f, 1.0f, Z2Calc::CURVE_SIGN_1); dVar20 *= Z2Calc::getParamByExp(mSnowPower, 64.0f, 127.0f, 0.4f, 1.15f, 1.6f, Z2Calc::CURVE_SIGN_1); dVar21 *= Z2Calc::getParamByExp(mSnowPower, 64.0f, 127.0f, 0.3f, 0.2f, 1.0f, Z2Calc::CURVE_SIGN_1); dVar18 *= Z2Calc::getParamByExp(mSnowPower, 127.0f, 64.0f, 0.4f, 0.65f, 0.9f, Z2Calc::CURVE_SIGN_0); } else { dVar22 *= Z2Calc::getParamByExp(mSnowPower, 0.0f, 64.0f, 0.4f, 0.2f, 0.35f, Z2Calc::CURVE_SIGN_0); dVar20 *= Z2Calc::getParamByExp(mSnowPower, 0.0f, 64.0f, 0.3f, 1.0f, 1.15f, Z2Calc::CURVE_SIGN_0); dVar21 *= Z2Calc::getParamByExp(mSnowPower, 0.0f, 64.0f, 0.3f, 0.1f, 0.2f, Z2Calc::CURVE_SIGN_0); dVar18 *= ::Z2Calc::getParamByExp(mSnowPower, 64.0f, 0.0f, 0.4f, 0.9f, 1.0f, Z2Calc::CURVE_SIGN_1); } break; case 11: dVar22 = 0.5f; dVar21 = 0.6f; case 5: aJStack_94 = Z2SE_ENV_WINDTAG_STRONG; aJStack_98 = Z2SE_ENV_WINDTAG_SLOW; break; case 6: if (bVar15 >= 6 && bVar15 <= 18) { dVar22 *= 0.1f; dVar21 *= 0.12f; } else { dVar22 *= 0.2f; dVar21 *= 0.2f; } aJStack_94 = Z2SE_ENV_FIELD_WIND_L; aJStack_98 = Z2SE_ENV_FIELD_WIND_R; break; case 10: if (bVar15 >= 6 && bVar15 <= 18) { dVar22 *= 0.1f; dVar21 *= 0.6f; } else { dVar22 *= 0.2f; } aJStack_94 = Z2SE_ENV_FIELD_WIND_L; aJStack_98 = Z2SE_ENV_VALLEY_WIND; break; case 7: dVar22 *= 0.85f; dVar21 *= 0.6f; aJStack_94 = Z2SE_ENV_WINDTAG_STRONG; aJStack_98 = Z2SE_ENV_WINDTAG_SLOW; break; case 8: aJStack_94 = Z2SE_ENV_ICED_VILLAGE_L; aJStack_98 = Z2SE_ENV_ICED_VILLAGE_R; break; case 9: aJStack_94 = Z2SE_ENV_OUGI_FIELD_L; aJStack_98 = Z2SE_ENV_OUGI_FIELD_R; break; default: return false; } dVar22 *= 1.0f - getFogDensity(); dVar21 *= 1.0f - getFogDensity(); if (Z2GetSceneMgr()->isInDarkness()) { dVar22 *= 0.75f; dVar21 *= 0.75f; } JAISoundHandle* pJVar10 = field_0x0.getHandle(); if (*pJVar10) { if ((u32)(*pJVar10)->getID() != (u32)aJStack_94) { (*pJVar10)->stop(0x1e); (*pJVar10)->releaseHandle(); } } pJVar10 = field_0x1c.getHandle(); if (*pJVar10) { if ((u32)(*pJVar10)->getID() != (u32)aJStack_98) { (*pJVar10)->stop(0x1e); (*pJVar10)->releaseHandle(); } } bool iVar9 = field_0x0.startEnvSeAutoPanLevel(aJStack_94, local_90, dVar22, dVar20); bool iVar11 = field_0x1c.startEnvSeAutoPanLevel(aJStack_98, local_90, dVar21, dVar18); if (field_0x38 == 4) { JAISoundHandle* pJVar10 = field_0x0.getHandle(); JAISoundHandle* this_02 = field_0x1c.getHandle(); if (*pJVar10) { Z2GetSoundStarter()->setPortData(pJVar10, 6, mSnowPower, -1); } if (*this_02) { Z2GetSoundStarter()->setPortData(this_02, 6, mSnowPower, -1); } } bool rv = 0; if (iVar9 && iVar11) { rv = 1; } return rv; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm bool Z2EnvSeMgr::startStaticEnvSe(s8 param_0) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/startStaticEnvSe__10Z2EnvSeMgrFSc.s" } #pragma pop #endif /* 802C780C-802C7830 2C214C 0024+00 0/0 1/1 0/0 .text registWindowPos__10Z2EnvSeMgrFP3Vec */ void Z2EnvSeMgr::registWindowPos(Vec* param_0) { field_0x64.registMultiSePos(param_0); } /* ############################################################################################## */ /* 80455E28-80455E2C 004428 0004+00 3/3 0/0 0/0 .sdata2 @4400 */ SECTION_SDATA2 static f32 lit_4400 = 11.0f / 10.0f; /* 802C7830-802C7CF4 2C2170 04C4+00 1/1 1/1 0/0 .text startRainSe__10Z2EnvSeMgrFlSc */ // Matches with literals #ifdef NONMATCHING bool Z2EnvSeMgr::startRainSe(s32 param_1, s8 param_2) { if (mSnowPower > 0) { return false; } mSnowPower = 1; JAISoundID aJStack_118 = 0xffffffff; JAISoundID aJStack_11c = 0xffffffff; JAISoundID aJStack_120 = 0xffffffff; f32 dVar21 = param_2 / 127.0f; s8 unaff_r29; switch (param_1) { case 0: aJStack_118 = Z2SE_ENV_RAIN_NORMAL_L; aJStack_11c = Z2SE_ENV_RAIN_NORMAL_R; aJStack_120 = Z2SE_ENV_RAIN_ROOM; unaff_r29 = 100; break; case 1: aJStack_118 = Z2SE_ENV_RAIN_HARD_L; aJStack_11c = Z2SE_ENV_RAIN_HARD_R; aJStack_120 = Z2SE_ENV_RAIN_HARD_ROOM; unaff_r29 = 50; break; } if (field_0x140 < unaff_r29) { field_0x140++; } else if (field_0x140 > unaff_r29) { field_0x140 = unaff_r29; } if (field_0x64.getPosCount() < 0) { f32 dVar13 = Z2Calc::linearTransform(field_0x90.calcNoise1f(), 0.0f, 1.0f, 0.7f, 1.0f, true); f32 dVar14 = Z2Calc::linearTransform(field_0xa0.calcNoise1f(), 0.0f, 1.0f, 0.7f, 1.0f, true); f32 dVar15 = Z2Calc::linearTransform(field_0xd0.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.1f, true); f32 dVar16 = Z2Calc::linearTransform(field_0xe0.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.1f, true); f32 dVar17 = Z2Calc::getParamByExp(field_0xb0.calcNoise1f(), 0.0f, 1.0f, 0.3f, 0.0f, 0.3f, Z2Calc::CURVE_SIGN_1); f32 dVar18 = Z2Calc::getParamByExp(field_0xc0.calcNoise1f(), 0.0f, 1.0f, 0.3f, 1.0f, 0.7f, Z2Calc::CURVE_SIGN_1); f32 dVar19 = Z2Calc::getParamByExp(field_0xf0.calcNoise1f(), 0.0f, 1.0f, 0.3f, 0.0f, 1.0f, Z2Calc::CURVE_SIGN_1); f32 dVar20 = Z2Calc::getParamByExp(field_0x100.calcNoise1f(), 0.0f, 1.0f, 0.3f, 0.0f, 1.0f, Z2Calc::CURVE_SIGN_1); if (Z2GetSceneMgr()->isInDarkness()) { dVar13 *= 0.5f; dVar14 *= 0.5f; } JAISoundHandle* pJVar8 = field_0x80.getHandle(); if (*pJVar8) { if ((*pJVar8)->getID() != (u32)aJStack_118) { (*pJVar8)->stop(0x1e); (*pJVar8)->releaseHandle(); } } pJVar8 = field_0x88.getHandle(); if (*pJVar8) { if ((*pJVar8)->getID() != (u32)aJStack_11c) { (*pJVar8)->stop(0x1e); (*pJVar8)->releaseHandle(); } } bool iVar7 = field_0x80.startEnvSeLevel(aJStack_118, dVar21, dVar13, dVar17, dVar19, dVar15, 0); bool iVar9 = field_0x88.startEnvSeLevel(aJStack_11c, dVar21, dVar14, dVar18, dVar20, dVar16, 0); bool uVar5 = 0; if (iVar7 && iVar9) { uVar5 = 1; } return uVar5; } f32 dVar13 = Z2Calc::linearTransform(field_0x90.calcNoise1f(), 0.0f, 1.0f, 0.7f, 1.0f, true); f32 dVar14 = Z2Calc::linearTransform(field_0xd0.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.1f, true); JAISoundHandle* pJVar8 = field_0x80.getHandle(); if (*pJVar8) { if ((*pJVar8)->getID() != (u32)aJStack_120) { (*pJVar8)->stop(0x1e); (*pJVar8)->releaseHandle(); } } f32 maxVolume = field_0x64.getMaxVolume(); return field_0x80.startEnvSeLevel(aJStack_120, dVar21, dVar13 * maxVolume, field_0x64.getPanPower(), field_0x64.getDolbyPower(), dVar14, 0); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm bool Z2EnvSeMgr::startRainSe(s32 param_0, s8 param_1) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/startRainSe__10Z2EnvSeMgrFlSc.s" } #pragma pop #endif /* ############################################################################################## */ /* 80455E2C-80455E30 00442C 0004+00 1/1 0/0 0/0 .sdata2 @4422 */ SECTION_SDATA2 static f32 lit_4422 = 0.25f; /* 802C7CF4-802C7E68 2C2634 0174+00 0/0 1/1 0/0 .text startNearThunderSe__10Z2EnvSeMgrFSc */ // Matches with literals #ifdef NONMATCHING void Z2EnvSeMgr::startNearThunderSe(s8 param_1) { if (field_0x64.getPosCount() < 0) { f32 dVar10 = Z2Calc::getRandom(0.25f, Z2Calc::cEqualCSlope, Z2Calc::cEqualPSlope); dVar10 += 0.5f; f32 dVar8 = Z2Calc::getRandom(0.25f, Z2Calc::cEqualCSlope, Z2Calc::cEqualPSlope); dVar8 += 0.5f; field_0x118.startEnvSe(Z2SE_ENV_THUNDER_NEAR, param_1 / 127.0f, 1.0f, dVar10, dVar8, 1.0f, 0); } else { f32 maxVolume = field_0x64.getMaxVolume(); field_0x118.startEnvSe(Z2SE_ENV_THUND_NEAR_WIN, param_1 / 127.0f, maxVolume, field_0x64.getPanPower(), field_0x64.getDolbyPower(), 1.0f, 0); } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2EnvSeMgr::startNearThunderSe(s8 param_0) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/startNearThunderSe__10Z2EnvSeMgrFSc.s" } #pragma pop #endif /* 802C7E68-802C7FB4 2C27A8 014C+00 0/0 2/2 0/0 .text startFarThunderSe__10Z2EnvSeMgrFP3VecSc */ // Matches with literals #ifdef NONMATCHING void Z2EnvSeMgr::startFarThunderSe(Vec* param_1, s8 param_2) { if (field_0x64.getPosCount() < 0) { field_0x110.setPos(param_1); field_0x110.startEnvSe(Z2SE_ENV_THUNDER_FAR, param_2 / 127.0f, 1.0f, 0.5f, 0.0f, 1.0f, 0); } else { f32 maxVolume = field_0x64.getMaxVolume(); field_0x110.startEnvSe(Z2SE_ENV_THUND_FAR_WIN, param_2 / 127.0f, maxVolume, field_0x64.getPanPower(), field_0x64.getDolbyPower(), 1.0f, 0); } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2EnvSeMgr::startFarThunderSe(Vec* param_0, s8 param_1) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/startFarThunderSe__10Z2EnvSeMgrFP3VecSc.s" } #pragma pop #endif /* 802C7FB4-802C7FBC -00001 0008+00 0/0 0/0 0/0 .text setSnowPower__10Z2EnvSeMgrFSc */ void Z2EnvSeMgr::setSnowPower(s8 param_0) { mSnowPower = param_0; } /* 802C7FBC-802C7FC8 2C28FC 000C+00 0/0 1/1 1/1 .text initStrongWindSe__10Z2EnvSeMgrFv */ void Z2EnvSeMgr::initStrongWindSe() { mWindType = WIND_TYPE_3; } /* 802C7FC8-802C800C 2C2908 0044+00 0/0 1/1 1/1 .text setWindDirection__10Z2EnvSeMgrFP3Vec */ void Z2EnvSeMgr::setWindDirection(Vec* param_0) { if (mWindType == WIND_TYPE_3) { field_0x144.setPanDir((Vec*)&cNullVec__6Z2Calc); } else { field_0x144.setPanDir(param_0); } } /* 802C800C-802C80F8 2C294C 00EC+00 0/0 1/1 1/1 .text startStrongWindSe__10Z2EnvSeMgrFSc */ // Matches with literals #ifdef NONMATCHING bool Z2EnvSeMgr::startStrongWindSe(s8 param_1) { field_0x144.calcPan(1.0f); JAISoundID aJStack_24 = 0xffffffff; switch (mWindType) { case WIND_TYPE_1: aJStack_24 = Z2SE_ENV_WINDTAG_STRONG; break; case WIND_TYPE_2: aJStack_24 = Z2SE_ENV_WINDTAG_SLOW; break; case WIND_TYPE_3: aJStack_24 = Z2SE_ENV_WINDTAG_CEASE; break; default: return false; } return field_0x144.startEnvSeDirLevel(aJStack_24, param_1 / 127.0f, 1.0f); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm bool Z2EnvSeMgr::startStrongWindSe(s8 param_0) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/startStrongWindSe__10Z2EnvSeMgrFSc.s" } #pragma pop #endif /* ############################################################################################## */ /* 80455E30-80455E34 004430 0004+00 3/3 0/0 0/0 .sdata2 @4510 */ SECTION_SDATA2 static f32 lit_4510 = 1.5f; /* 80455E34-80455E38 004434 0004+00 3/3 0/0 0/0 .sdata2 @4511 */ SECTION_SDATA2 static f32 lit_4511 = 3.0f; /* 802C80F8-802C8234 2C2A38 013C+00 0/0 1/1 0/0 .text initRiverSe__10Z2EnvSeMgrFUcUcUcUc */ // Matches with literals #ifdef NONMATCHING void Z2EnvSeMgr::initRiverSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4) { field_0x188 = param_1; if (param_2 >= 100) { field_0x1ac = 1.0f; } else { field_0x1ac = 0.01f * param_2; } if (param_3 == 0xff) { field_0x1b0 = 1.0f; } else { field_0x1b0 = 0.01f * param_3; } if (param_4 == 0xff) { field_0x1b4 = 1.0f; } else { field_0x1b4 = 0.1f * param_4; } switch (param_1) { case 1: mRiverSeMgr.setVolumeScale(1.5f * field_0x1b4); break; case 2: mRiverSeMgr.setVolumeScale(3.0f * field_0x1b4); break; case 3: mRiverSeMgr.setVolumeScale(0.5f * field_0x1b4); break; case 5: mRiverSeMgr.setVolumeScale(1.5f * field_0x1b4); break; } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2EnvSeMgr::initRiverSe(u8 param_0, u8 param_1, u8 param_2, u8 param_3) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/initRiverSe__10Z2EnvSeMgrFUcUcUcUc.s" } #pragma pop #endif /* 802C8234-802C8258 2C2B74 0024+00 1/1 1/1 0/0 .text registRiverSePos__10Z2EnvSeMgrFP3Vec */ void Z2EnvSeMgr::registRiverSePos(Vec* param_0) { mRiverSeMgr.registMultiSePos(param_0); } /* 802C8258-802C8300 2C2B98 00A8+00 0/0 0/0 1/1 .text setHyrulSewerOpen__10Z2EnvSeMgrFb */ // Matches with literals #ifdef NONMATCHING void Z2EnvSeMgr::setHyrulSewerOpen(bool param_0) { if (param_0) { field_0x1b8 = 1; Z2GetSeMgr()->seStart(Z2SE_ENV_SEWER_FILL, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); } else { field_0x1b8 = 0xff; Z2GetSeMgr()->seStart(Z2SE_ENV_SEWER_OUT, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2EnvSeMgr::setHyrulSewerOpen(bool param_0) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/setHyrulSewerOpen__10Z2EnvSeMgrFb.s" } #pragma pop #endif /* ############################################################################################## */ /* 803CBA28-803CBAD0 -00001 00A8+00 1/1 0/0 0/0 .data @4622 */ SECTION_DATA static void* lit_4622[42] = { (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0x80), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0x9C), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0x8C), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xAC), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xAC), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xAC), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xA0), (void*)(((char*)startRiverSe__10Z2EnvSeMgrFSc) + 0xAC), }; /* 80455E38-80455E3C 004438 0004+00 2/2 0/0 0/0 .sdata2 @4619 */ SECTION_SDATA2 static f32 lit_4619 = -14500.0f; /* 80455E3C-80455E40 00443C 0004+00 1/1 0/0 0/0 .sdata2 @4621 */ SECTION_SDATA2 static f32 lit_4621 = 150.0f; /* 802C8300-802C8730 2C2C40 0430+00 2/1 1/1 0/0 .text startRiverSe__10Z2EnvSeMgrFSc */ // missing branch and JAISound stack issues #ifdef NONMATCHING bool Z2EnvSeMgr::startRiverSe(s8 param_1) { if (Z2GetStatusMgr()->mCameraMapInfo == 6) { switch (Z2GetSceneMgr()->getCurrentSceneNum()) { case 5: if (Z2GetSceneMgr()->getCurrentRoomNum() != 1) { break; } case 0x10: if (Z2GetStatusMgr()->mPolygonPosition.y < 14500.0f) { break; } case 8: default: registRiverSePos(&Z2GetStatusMgr()->mPolygonPosition); break; case 0x15: case 0x1e: case 0x1f: case 0x2e: break; } } if (mRiverSeMgr.getPosCount() < 0) { return false; } JAISoundID aJStack_742 = 0xffffffff; bool uVar8 = false; f32 dVar16 = param_1 / 127.0f; f32 dVar18 = field_0x1ac * mRiverSeMgr.getMaxVolume(); f32 dVar13 = mRiverSeMgr.getPanPower(); f32 dVar14 = mRiverSeMgr.getDolbyPower(); f32 dVar17 = field_0x1b0; switch (field_0x188) { case 0: return false; case 1: aJStack_742 = Z2SE_ENV_RIVER_SMALL; dVar18 *= Z2Calc::linearTransform(field_0x18c.calcNoise1f(), 0.0f, 1.0f, 0.7f, 1.0f, true); dVar17 *= Z2Calc::linearTransform(field_0x19c.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.1f, true); uVar8 = field_0x180.startEnvSeLevel(aJStack_742, dVar16, dVar18, dVar13, dVar14, dVar17, 0); break; case 2: aJStack_742 = Z2SE_ENV_RIVER_NORMAL; mRiverSeMgr.getMaxPowL(); mRiverSeMgr.getMaxPowR(); mRiverSeMgr.getDolbyPower(); uVar8 = field_0x180.startEnvSeLevel(aJStack_742, dVar16, dVar18, dVar13, dVar14, dVar17, 0); break; case 3: if (field_0x1b8 > 0) { dVar18 *= (field_0x1b8 + 50) / 150.0f; } else { if (field_0x1b8 < 0) { dVar18 *= (field_0x1b8 + 150) / 150.0f; } else { dVar18 *= 0.3f; } } aJStack_742 = Z2SE_ENV_SEWER; dVar18 *= linearTransform(field_0x18c.calcNoise1f(), 0.0f, 1.0f, 0.6f, 1.0f, true); dVar17 *= Z2Calc::linearTransform(field_0x19c.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.0f, true); uVar8 = field_0x180.startEnvSeLevel(aJStack_742, dVar16, dVar18, dVar13, dVar14, dVar17, 0); break; case 5: aJStack_742 = Z2SE_ENV_SPIRIT_FOUNTAIN; dVar18 *= Z2Calc::linearTransform(field_0x18c.calcNoise1f(), 0.0f, 1.0f, 0.6f, 1.0f, true); dVar17 *= Z2Calc::linearTransform(field_0x19c.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.0f, true); uVar8 = field_0x180.startEnvSeLevel(aJStack_742, dVar16, dVar18, dVar13, dVar14, dVar17, 0); break; } mRiverSeMgr.resetMultiSePos(); return uVar8; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm bool Z2EnvSeMgr::startRiverSe(s8 param_1) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/startRiverSe__10Z2EnvSeMgrFSc.s" } #pragma pop #endif /* 802C8730-802C886C 2C3070 013C+00 1/1 1/1 0/0 .text initFallSe__10Z2EnvSeMgrFUcUcUcUc */ // Matches with literals #ifdef NONMATCHING void Z2EnvSeMgr::initFallSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4) { field_0x1e0 = param_1; if (param_2 >= 100) { field_0x1e4 = 1.0f; } else { field_0x1e4 = 0.01f * param_2; } if (param_3 == 0xff) { field_0x1e8 = 1.0f; } else { field_0x1e8 = 0.01f * param_3; } if (param_4 == 0xff) { field_0x1ec = 1.0f; } else { field_0x1ec = 0.1f * param_4; } switch (param_1) { case 8: mFallSeMgr.setVolumeScale(3.0f * field_0x1ec); break; case 9: mFallSeMgr.setVolumeScale(3.0f * field_0x1ec); break; case 10: mFallSeMgr.setVolumeScale(1.5f * field_0x1ec); break; case 11: mFallSeMgr.setVolumeScale(1.5f * field_0x1ec); break; } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2EnvSeMgr::initFallSe(u8 param_0, u8 param_1, u8 param_2, u8 param_3) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/initFallSe__10Z2EnvSeMgrFUcUcUcUc.s" } #pragma pop #endif /* 802C886C-802C8890 2C31AC 0024+00 0/0 1/1 0/0 .text registFallSePos__10Z2EnvSeMgrFP3Vec */ void Z2EnvSeMgr::registFallSePos(Vec* param_0) { mFallSeMgr.registMultiSePos(param_0); } /* 802C8890-802C8A90 2C31D0 0200+00 1/1 1/1 0/0 .text startFallSe__10Z2EnvSeMgrFSc */ // Matches with literals #ifdef NONMATCHING bool Z2EnvSeMgr::startFallSe(s8 param_1) { if (mFallSeMgr.getPosCount() < 0) { return false; } JAISoundID aJStack_80 = 0xffffffff; f32 dVar14 = param_1 / 127.0f; f32 dVar13 = ((field_0x1e4 * mFallSeMgr.getMaxVolume()) * Z2Calc::linearTransform(field_0x90.calcNoise1f(), 0.0f, 1.0f, 0.7f, 1.0f, true)); f32 dVar15 = (field_0x1e8 * Z2Calc::linearTransform(field_0xd0.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.1f, true)); f32 dVar11 = mFallSeMgr.getPanPower(); f32 dVar12 = mFallSeMgr.getDolbyPower(); switch (field_0x1e0) { case 8: aJStack_80 = Z2SE_ENV_WATERFALL_NORMAL; break; case 9: aJStack_80 = Z2SE_ENV_FALL_LV1BOSS; break; case 10: aJStack_80 = Z2SE_ENV_SPIRIT_FALL; dVar15 *= 0.75f; break; case 11: aJStack_80 = Z2SE_ENV_SAND_FALL; break; } bool rv = field_0x1d8.startEnvSeLevel(aJStack_80, dVar14, dVar13, dVar11, dVar12, dVar15, 0); mFallSeMgr.resetMultiSePos(); return rv; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm bool Z2EnvSeMgr::startFallSe(s8 param_0) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/startFallSe__10Z2EnvSeMgrFSc.s" } #pragma pop #endif /* ############################################################################################## */ /* 803CBAD0-803CBB10 -00001 0040+00 1/1 0/0 0/0 .data @4734 */ SECTION_DATA static void* lit_4734[16] = { (void*)(((char*)initEtcSe__10Z2EnvSeMgrFUcUcUcUc) + 0x15C), (void*)(((char*)initEtcSe__10Z2EnvSeMgrFUcUcUcUc) + 0xF4), (void*)(((char*)initEtcSe__10Z2EnvSeMgrFUcUcUcUc) + 0x108), (void*)(((char*)initEtcSe__10Z2EnvSeMgrFUcUcUcUc) + 0x180), (void*)(((char*)initEtcSe__10Z2EnvSeMgrFUcUcUcUc) + 0x150), (void*)(((char*)initEtcSe__10Z2EnvSeMgrFUcUcUcUc) + 0x180), (void*)(((char*)initEtcSe__10Z2EnvSeMgrFUcUcUcUc) + 0x180), (void*)(((char*)initEtcSe__10Z2EnvSeMgrFUcUcUcUc) + 0x180), (void*)(((char*)initEtcSe__10Z2EnvSeMgrFUcUcUcUc) + 0x170), (void*)(((char*)initEtcSe__10Z2EnvSeMgrFUcUcUcUc) + 0x11C), (void*)(((char*)initEtcSe__10Z2EnvSeMgrFUcUcUcUc) + 0x13C), (void*)(((char*)initEtcSe__10Z2EnvSeMgrFUcUcUcUc) + 0x180), (void*)(((char*)initEtcSe__10Z2EnvSeMgrFUcUcUcUc) + 0x180), (void*)(((char*)initEtcSe__10Z2EnvSeMgrFUcUcUcUc) + 0x180), (void*)(((char*)initEtcSe__10Z2EnvSeMgrFUcUcUcUc) + 0x13C), (void*)(((char*)initEtcSe__10Z2EnvSeMgrFUcUcUcUc) + 0x13C), }; /* 80455E40-80455E44 004440 0004+00 1/1 0/0 0/0 .sdata2 @4732 */ SECTION_SDATA2 static f32 lit_4732 = 4.0f; /* 802C8A90-802C8C24 2C33D0 0194+00 2/1 1/1 0/0 .text initEtcSe__10Z2EnvSeMgrFUcUcUcUc */ // Matches with literals #ifdef NONMATCHING void Z2EnvSeMgr::initEtcSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4) { field_0x214 = param_1; if (param_2 >= 100) { field_0x218 = 1.0f; } else { field_0x218 = 0.01f * param_2; } if (param_3 == 0xff) { field_0x21c = 1.0f; } else { field_0x21c = 0.01f * param_3; } if (param_4 == 0xff) { field_0x220 = 1.0f; } else { field_0x220 = 0.1f * param_4; } switch (param_1) { case 17: mEtcSeMgr.setVolumeScale(2.0f * field_0x220); break; case 18: mEtcSeMgr.setVolumeScale(0.7f * field_0x220); break; case 25: field_0x1c.setPanParam(0.0f, 1.0f, false, true, 0.0018554000416770577f, 0.0008553999941796064f); case 26: case 30: case 31: mEtcSeMgr.setVolumeScale(2.0f * field_0x220); break; case 20: mEtcSeMgr.setVolumeScale(field_0x220); break; case 16: mEtcSeMgr.setVolumeScale(2.0f * field_0x220); break; case 24: mEtcSeMgr.setVolumeScale(4.0f * field_0x1b4); break; } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2EnvSeMgr::initEtcSe(u8 param_0, u8 param_1, u8 param_2, u8 param_3) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/initEtcSe__10Z2EnvSeMgrFUcUcUcUc.s" } #pragma pop #endif /* 802C8C24-802C8C48 2C3564 0024+00 1/1 1/1 0/0 .text registEtcSePos__10Z2EnvSeMgrFP3Vec */ void Z2EnvSeMgr::registEtcSePos(Vec* param_0) { mEtcSeMgr.registMultiSePos(param_0); } /* ############################################################################################## */ /* 803CBB10-803CBB90 -00001 0080+00 1/1 0/0 0/0 .data @4839 */ SECTION_DATA static void* lit_4839[32] = { (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x62C), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x624), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x624), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x624), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x624), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x624), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x624), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x624), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x624), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x624), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x624), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x624), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x624), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x624), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x624), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x624), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x518), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0xE4), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x20C), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x624), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x498), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x624), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x624), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x624), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x28C), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x374), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x2D8), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x624), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x624), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x624), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x2D8), (void*)(((char*)startEtcSe__10Z2EnvSeMgrFSc) + 0x324), }; /* 80455E44-80455E48 004444 0004+00 1/1 0/0 0/0 .sdata2 @4833 */ SECTION_SDATA2 static f32 lit_4833 = 6.0f / 5.0f; /* 80455E48-80455E4C 004448 0004+00 1/1 0/0 0/0 .sdata2 @4834 */ SECTION_SDATA2 static f32 lit_4834 = 13.0f / 10.0f; /* 80455E4C-80455E50 00444C 0004+00 1/1 0/0 0/0 .sdata2 @4835 */ SECTION_SDATA2 static f32 lit_4835 = 89.0f / 100.0f; /* 80455E50-80455E54 004450 0004+00 2/2 0/0 0/0 .sdata2 @4836 */ SECTION_SDATA2 static f32 lit_4836 = 0.332f; /* 80455E54-80455E58 004454 0004+00 2/2 0/0 0/0 .sdata2 @4837 */ SECTION_SDATA2 static f32 lit_4837 = 0.668f; /* 802C8C48-802C92C8 2C3588 0680+00 2/1 1/1 0/0 .text startEtcSe__10Z2EnvSeMgrFSc */ // Matches with literals #ifdef NONMATCHING bool Z2EnvSeMgr::startEtcSe(s8 param_1) { f32 dVar17 = param_1 / 127.0f; f32 dVar19 = (field_0x218 * mEtcSeMgr.getMaxVolume()); f32 dVar14 = mEtcSeMgr.getPanPower(); f32 dVar15 = mEtcSeMgr.getDolbyPower(); bool rv = false; f32 dVar18 = field_0x21c; f32 local_90; switch (field_0x214) { case 0x11: local_90 = Z2Calc::linearTransform(field_0x120.calcNoise1f(), 0.0f, 1.0f, 0.01f, 1.0f, true); dVar18 *= Z2Calc::linearTransform(field_0x130.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.2f, true); bool iVar8 = field_0x20c.startEnvSeLevel(Z2SE_OBJ_RANCH_WOODPLATE, dVar17, (dVar19 * local_90), dVar14, dVar15, dVar18, 0); local_90 = Z2Calc::linearTransform(local_90, 0.0f, 1.0f, 0.3f, 1.0f, true); field_0x0.calcPan(); field_0x1c.calcPan(); bool iVar6 = field_0x0.startEnvSeAutoPanLevel(JA_SE_ATM_WIND_1, dVar17, local_90, dVar18); bool iVar7 = field_0x1c.startEnvSeAutoPanLevel(JA_SE_ATM_WIND_1, dVar17, 0.7f * local_90, (0.8f * dVar18)); bool iVar5 = false; if (iVar8 && iVar6 && iVar7) { iVar5 = true; } rv = iVar5; break; case 0x12: local_90 = ::Z2Calc::linearTransform(field_0x120.calcNoise1f(), 0.0f, 1.0f, 0.4f, 0.8f, true); dVar18 *= ::Z2Calc::linearTransform(field_0x130.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.3f, true); rv = field_0x20c.startEnvSeLevel(JA_SE_OBJ_WIND_TAG, dVar17, (dVar19 * local_90), dVar14, dVar15, dVar18, 0); break; case 0x18: if (mEtcSeMgr.getPosCount() < 0) { return false; } rv = field_0x20c.startEnvSeLevel(JA_SE_MAGMA_L, dVar17, dVar19, dVar14, dVar15, dVar18, 0); break; case 0x1a: case 0x1e: if (mEtcSeMgr.getPosCount() < 0) { return false; } rv = field_0x20c.startEnvSeLevel(Z2SE_ENV_WATER_SURFACE, dVar17, dVar19, dVar14, dVar15, dVar18, 0); break; case 0x1f: if (mEtcSeMgr.getPosCount() < 0) { return false; } rv = field_0x20c.startEnvSeLevel(Z2SE_ENV_RIVER_NORMAL, dVar17, dVar19, dVar14, dVar15, 0.89f * dVar18, 0); break; case 0x19: if (Z2GetStatusMgr()->mCameraMapInfo == 6 && (Z2GetSceneMgr()->getCurrentSceneNum() != 0x10 || Z2GetStatusMgr()->mPolygonPosition.y < -14500.0f)) { f32 local_94 = (1.0f - dVar19); registEtcSePos(&Z2GetStatusMgr()->mPolygonPosition); dVar14 = mEtcSeMgr.getMaxVolume(); dVar19 = field_0x218 * dVar14; dVar14 = mEtcSeMgr.getPanPower(); dVar15 = mEtcSeMgr.getDolbyPower(); if (Z2GetSceneMgr()->isInDarkness()) { dVar19 *= 0.75f; } local_94 *= dVar19; field_0x1c.calcPan(); field_0x1c.startEnvSeAutoPanLevel(Z2SE_ENV_LAKE_OFFSHORE, dVar17, local_94, 1.0f); } else if (Z2GetSceneMgr()->isInDarkness()) { dVar19 *= 0.75f; } rv = field_0x20c.startEnvSeLevel(Z2SE_ENV_LAKEWATER, dVar17, dVar19, dVar14, dVar15, dVar18, 0); break; case 0x14: local_90 = ::Z2Calc::linearTransform(field_0x120.calcNoise1f(), 0.0f, 1.0f, 0.4f, 0.8f, true); dVar18 *= ::Z2Calc::linearTransform(field_0x130.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.3f, true); rv = field_0x20c.startEnvSeLevel(Z2SE_ENV_SNOW_MT_WIND_ROOM, dVar17, (dVar19 * local_90), dVar14, dVar15, dVar18, 0); break; case 0x0: break; case 0x10: f32 local_98 = Z2Calc::getParamByExp(getFogDensity(), 0.4f, 1.0f, 0.2f, 0.2f, 1.0f, Z2Calc::CURVE_SIGN_0); f32 local_9c = Z2Calc::getParamByExp(getFogDensity(), 0.4f, 1.0f, 0.2f, 0.75f, 1.0f, Z2Calc::CURVE_SIGN_0); f32 local_a0 = field_0x2e8.calcNoise1f(); rv = field_0x240.startEnvSeLevel(Z2SE_ENV_PUPPET_FOG_L, 0.3f, (dVar19 * ((0.332f + 0.668f * local_a0) * local_98)), dVar14, dVar15, 0.8f + 0.2f * local_a0, 0); local_a0 = field_0x2f8.calcNoise1f(); field_0x274.startEnvSeLevel(Z2SE_ENV_PUPPET_FOG_R, 0.3f, local_98 * (dVar19 * (0.332f + 0.668f * local_a0)), dVar14, dVar15, 0.8f + 0.2f * local_a0, 0); break; default: return false; } mEtcSeMgr.resetMultiSePos(); return rv; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm bool Z2EnvSeMgr::startEtcSe(s8 param_0) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/startEtcSe__10Z2EnvSeMgrFSc.s" } #pragma pop #endif /* 802C92C8-802C92EC 2C3C08 0024+00 0/0 0/0 1/1 .text registWolfSmellSePos__10Z2EnvSeMgrFP3Vec */ void Z2EnvSeMgr::registWolfSmellSePos(Vec* param_0) { mWolfSmellSeMgr.registMultiSePos(param_0); } /* ############################################################################################## */ /* 80455E58-80455E5C 004458 0004+00 1/1 0/0 0/0 .sdata2 @4856 */ SECTION_SDATA2 static f32 lit_4856 = 340.0f; /* 802C92EC-802C93A0 2C3C2C 00B4+00 0/0 0/0 1/1 .text startFogWipeTrigger__10Z2EnvSeMgrFP3Vec */ // Matches with literals #ifdef NONMATCHING bool Z2EnvSeMgr::startFogWipeTrigger(Vec* param_0) { if (*field_0x240.getHandle()) { f32 fogDensity = getFogDensity(); u32 fogDensity2 = 340.0f * getFogDensity(); return Z2GetSoundStarter()->startSound(Z2SE_ENV_FOG_WIPE, field_0x20c.getHandle(), (JGeometry::TVec3*)param_0, fogDensity2, 0.3f, 1.0f, fogDensity, -1.0f, -1.0f, 0); } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm bool Z2EnvSeMgr::startFogWipeTrigger(Vec* param_0) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/startFogWipeTrigger__10Z2EnvSeMgrFP3Vec.s" } #pragma pop #endif /* 802C93A0-802C93E4 2C3CE0 0044+00 0/0 0/0 1/1 .text setFogWipeWidth__10Z2EnvSeMgrFf */ // Matches with literals #ifdef NONMATCHING void Z2EnvSeMgr::setFogWipeWidth(f32 param_0) { mFogDensity = Z2Calc::linearTransform(param_0, 0.0f, 1.0f, 1.0f, 0.4f, true); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2EnvSeMgr::setFogWipeWidth(f32 param_0) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/setFogWipeWidth__10Z2EnvSeMgrFf.s" } #pragma pop #endif /* 802C93E4-802C9400 2C3D24 001C+00 3/3 2/2 0/0 .text getFogDensity__10Z2EnvSeMgrFv */ // Matches with literals #ifdef NONMATCHING f32 Z2EnvSeMgr::getFogDensity() { if (field_0x214 == 0x10) { return mFogDensity; } return 0.0f; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm f32 Z2EnvSeMgr::getFogDensity() { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/getFogDensity__10Z2EnvSeMgrFv.s" } #pragma pop #endif /* ############################################################################################## */ /* 80455E5C-80455E60 00445C 0004+00 1/1 0/0 0/0 .sdata2 @4879 */ SECTION_SDATA2 static f32 lit_4879 = 20.0f; /* 802C9400-802C950C 2C3D40 010C+00 0/0 0/0 1/1 .text startFogSe__10Z2EnvSeMgrFv */ // fmuls reg order #ifdef NONMATCHING bool Z2EnvSeMgr::startFogSe() { f32 dVar10 = field_0x2e8.calcNoise1f(); f32 dVar14 = 0.332f + (0.668f * dVar10); f32 dVar13 = 0.8f + (dVar10 * 0.2f); f32 dVar12 = 0.5f - (dVar10 * 0.4f) / 2; bool iVar5 = field_0x240.startEnvSeLevel(Z2SE_ENV_PUPPET_FOG_L, 20.0f, dVar14, dVar12, 0.5f, dVar13, 0); dVar10 = field_0x2f8.calcNoise1f(); dVar14 = (0.332f + (0.668f * dVar10)); dVar13 = (0.8f + (0.2f * dVar10)); dVar12 = (0.5f + ( 0.4f * dVar10) / 2); bool iVar6 = field_0x274.startEnvSeLevel(Z2SE_ENV_PUPPET_FOG_R, 20.0f, dVar14, dVar12, 0.5f, dVar13, 0); bool uVar8 = false; if (iVar5 && iVar6) { uVar8 = 1; } return uVar8; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm bool Z2EnvSeMgr::startFogSe() { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/startFogSe__10Z2EnvSeMgrFv.s" } #pragma pop #endif /* ############################################################################################## */ /* 803CBB90-803CBBC8 -00001 0038+00 1/1 0/0 0/0 .data @5076 */ SECTION_DATA static void* lit_5076[14] = { (void*)(((char*)initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc) + 0x640), (void*)(((char*)initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc) + 0x61C), (void*)(((char*)initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc) + 0x668), (void*)(((char*)initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc) + 0x6C4), (void*)(((char*)initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc) + 0xA34), (void*)(((char*)initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc) + 0x640), (void*)(((char*)initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc) + 0x640), (void*)(((char*)initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc) + 0x780), (void*)(((char*)initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc) + 0x7CC), (void*)(((char*)initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc) + 0x640), (void*)(((char*)initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc) + 0x844), (void*)(((char*)initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc) + 0x8D8), (void*)(((char*)initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc) + 0x950), (void*)(((char*)initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc) + 0x99C), }; /* 803CBBC8-803CBBF0 -00001 0028+00 1/1 0/0 0/0 .data @5074 */ SECTION_DATA static void* lit_5074[10] = { (void*)(((char*)initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc) + 0x50), (void*)(((char*)initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc) + 0x1E8), (void*)(((char*)initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc) + 0x380), (void*)(((char*)initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc) + 0x5E4), (void*)(((char*)initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc) + 0x5E4), (void*)(((char*)initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc) + 0x11C), (void*)(((char*)initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc) + 0x2B4), (void*)(((char*)initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc) + 0x44C), (void*)(((char*)initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc) + 0x5E4), (void*)(((char*)initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc) + 0x518), }; /* 802C950C-802C9F58 2C3E4C 0A4C+00 2/0 1/1 0/0 .text initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc */ // Matches with literals #ifdef NONMATCHING void Z2EnvSeMgr::initLv3WaterSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4) { switch (param_1) { case 110: field_0x248 = param_1; if (param_2 >= 100) { field_0x24c = 1.0f; } else { field_0x24c = 0.01f * param_2; } if (param_3 == 0xff) { field_0x250 = 1.0f; } else { field_0x250 = 0.01f * param_3; } if (param_4 == 0xff) { field_0x254 = 1.0f; } else { field_0x254 = 0.1f * param_4; } field_0x224.setVolumeScale(2.0f * field_0x254); break; case 115: field_0x248 = param_1; if (param_2 >= 100) { field_0x24c = 1.0f; } else { field_0x24c = 0.01f * param_2; } if (param_3 == 0xff) { field_0x250 = 1.0f; } else { field_0x250 = 0.01f * param_3; } if (param_4 == 0xff) { field_0x254 = 1.0f; } else { field_0x254 = 0.1f * param_4; } field_0x224.setVolumeScale(1.5f * field_0x254); break; case 111: field_0x27c = param_1; if (param_2 >= 100) { field_0x280 = 1.0f; } else { field_0x280 = 0.01f * param_2; } if (param_3 == 0xff) { field_0x284 = 1.0f; } else { field_0x284 = 0.01f * param_3; } if (param_4 == 0xff) { field_0x288 = 1.0f; } else { field_0x288 = 0.1f * param_4; } field_0x258.setVolumeScale(2.0f * field_0x288); break; case 116: field_0x27c = param_1; if (param_2 >= 100) { field_0x280 = 1.0f; } else { field_0x280 = 0.01f * param_2; } if (param_3 == 0xff) { field_0x284 = 1.0f; } else { field_0x284 = 0.01f * param_3; } if (param_4 == 0xff) { field_0x288 = 1.0f; } else { field_0x288 = 0.1f * param_4; } field_0x258.setVolumeScale(1.5f * field_0x288); break; case 112: field_0x2b0 = param_1; if (param_2 >= 100) { field_0x2b4 = 1.0f; } else { field_0x2b4 = 0.01f *param_2; } if (param_3 == 0xff) { field_0x2b8 = 1.0f; } else { field_0x2b8 = 0.01f * param_3; } if (param_4 == 0xff) { field_0x2bc = 1.0f; } else { field_0x2bc = 0.1f * param_4; } field_0x28c.setVolumeScale(2.0f * field_0x2bc); break; case 117: field_0x2b0 = param_1; if (param_2 >= 100) { field_0x2b4 = 1.0f; } else { field_0x2b4 = 0.01f * param_2; } if (param_3 == 0xff) { field_0x2b8 = 1.0f; } else { field_0x2b8 = 0.01f * param_3; } if (param_4 == 0xff) { field_0x2bc = 1.0f; } else { field_0x2bc = 0.1f * param_4; } field_0x28c.setVolumeScale(1.5f * field_0x2bc); break; case 'w': field_0x2b0 = param_1; if (param_2 >= 100) { field_0x2b4 = 1.0f; } else { field_0x2b4 = 0.01f * param_2; } if (param_3 == 0xff) { field_0x2b8 = 1.0f; } else { field_0x2b8 = 0.01f * param_3; } if (param_4 == 0xff) { field_0x2bc = 1.0f; } else { field_0x2bc = 0.1f * param_4; } field_0x28c.setVolumeScale(3.0f * field_0x2bc); break; default: if (Z2GetSceneMgr()->getCurrentSceneNum() == 46) { switch (Z2GetSceneMgr()->getCurrentRoomNum()) { case 1: if (param_1 == 107) { initFallSe(9, param_2, 0x82, 5); } case 0: case 5: case 6: case 9: if (param_1 == 100) { initEtcSe(0x1e, param_2, param_3, param_4); } break; case 2: if (param_1 == 100) { initEtcSe(0x1f, param_2, param_3, 20); } else if ((((param_1 == 103) || (param_1 == 104)) || (param_1 == 105)) || (param_1 == 106)) { initLv3WaterSe(115, param_2, param_3, param_4); } break; case 3: if (((param_1 == 100) || (param_1 == 101)) || (param_1 == 102)) { initEtcSe(0x1e, param_2, param_3, param_4); } else if ((param_1 == 103) || (param_1 == 104)) { initLv3WaterSe(115, param_2, param_3, param_4); } else if ((param_1 == 105) || (param_1 == 106)) { initLv3WaterSe(117, param_2, param_3, param_4); } else if ((param_1 == 107) || (param_1 == 108)) { initLv3WaterSe(111, param_2, param_3, 15); } break; case 7: if (param_1 == 103) { initLv3WaterSe(115, param_2, param_3, param_4); } else if (param_1 == 107) { initFallSe(9, param_2, 0x82, param_4); } break; case 8: if ((param_1 == 100) || (param_1 == 101)) { initEtcSe(0x1e, param_2, param_3, param_4); } else if (param_1 == 103) { initLv3WaterSe(115, param_2, param_3, param_4); } else if (param_1 == 107) { initLv3WaterSe(111, param_2, param_3, param_4); } break; case 10: if (param_1 == 100) { initEtcSe(0x1e, param_2, param_3, param_4); } else if (param_1 == 103) { initLv3WaterSe(117, param_2, param_3, param_4); } else if (param_1 == 104) { initLv3WaterSe(116, param_2, param_3, param_4); } else if (param_1 == 107) { initFallSe(9, param_2, 0xa0, param_4); } break; case 0xb: if (param_1 == 100 || param_1 == 101) { initEtcSe(0x1e, param_2, param_3, param_4); } else if (param_1 == 103) { initLv3WaterSe(115, param_2, param_3, param_4); } else if (param_1 == 107) { initFallSe(9, param_2, 0x82, param_4); } break; case 0xc: if (param_1 == 103) { initLv3WaterSe(115, param_2, param_3, param_4); } else if (param_1 == 107) { initLv3WaterSe(111, param_2, 0x82, param_4); } break; case 0xd: if ((param_1 == 100) || (param_1 == 101)) { initEtcSe(0x1e, param_2, param_3, param_4); } else if (param_1 == 103) { initLv3WaterSe(117, param_2, param_3, param_4); } else if (param_1 == 104) { initLv3WaterSe(116, param_2, param_3, param_4); } else if (param_1 == 107) { initFallSe(9, param_2, 0xa0, param_4); } break; } } break; } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2EnvSeMgr::initLv3WaterSe(u8 param_0, u8 param_1, u8 param_2, u8 param_3) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc.s" } #pragma pop #endif /* 802C9F58-802CA794 2C4898 083C+00 2/0 1/1 0/0 .text registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec */ void Z2EnvSeMgr::registLv3WaterSePos(u8 param_1, Vec* param_2) { switch (param_1) { case 110: case 115: field_0x224.registMultiSePos(param_2); break; case 111: case 116: field_0x258.registMultiSePos(param_2); break; case 112: case 117: case 119: field_0x28c.registMultiSePos(param_2); break; default: switch (Z2GetSceneMgr()->getCurrentRoomNum()) { case 1: if (param_1 == 107) { mFallSeMgr.registMultiSePos(param_2); } case 0: case 5: case 6: case 9: if (param_1 == 100) { mEtcSeMgr.registMultiSePos(param_2); } break; case 2: if (param_1 == 100) { mEtcSeMgr.registMultiSePos(param_2); } else if (param_1 == 103 && dComIfGs_isSaveSwitch(8)) { field_0x224.registMultiSePos(param_2); } else if (param_1 == 104 && dComIfGs_isSaveSwitch(9)) { field_0x224.registMultiSePos(param_2); } else if (param_1 == 105 && dComIfGs_isSaveSwitch(8) && dComIfGs_isSaveSwitch(3)) { field_0x224.registMultiSePos(param_2); } else if (param_1 == 106 && dComIfGs_isSaveSwitch(9) && dComIfGs_isSaveSwitch(1)) { field_0x224.registMultiSePos(param_2); } break; case 3: if (param_1 == 100 && !dComIfGs_isSaveSwitch(8) && !dComIfGs_isSaveSwitch(9)) { mEtcSeMgr.registMultiSePos(param_2); } else if ((param_1 == 101 && dComIfGs_isSaveSwitch(8) && (!dComIfGs_isSaveSwitch(9))) || (!dComIfGs_isSaveSwitch(8) && dComIfGs_isSaveSwitch(9))) { mEtcSeMgr.registMultiSePos(param_2); } else if (param_1 == 102 && dComIfGs_isSaveSwitch(8) && dComIfGs_isSaveSwitch(9)) { mEtcSeMgr.registMultiSePos(param_2); } if (param_1 == 103 && dComIfGs_isSaveSwitch(8)) { field_0x224.registMultiSePos(param_2); } if (param_1 == 104 && dComIfGs_isSaveSwitch(9)) { field_0x224.registMultiSePos(param_2); } if (param_1 == 105 && dComIfGs_isSaveSwitch(8) && dComIfGs_isSaveSwitch(3)) { field_0x28c.registMultiSePos(param_2); } else if (param_1 == 107 && dComIfGs_isSaveSwitch(8) && !dComIfGs_isSaveSwitch(3)) { field_0x258.registMultiSePos(param_2); } if (param_1 == 106 && dComIfGs_isSaveSwitch(9) && dComIfGs_isSaveSwitch(1)) { field_0x28c.registMultiSePos(param_2); } else if (param_1 == 108 && dComIfGs_isSaveSwitch(9) && !dComIfGs_isSaveSwitch(1)) { field_0x258.registMultiSePos(param_2); } break; case 7: if (dComIfGs_isSaveSwitch(8)) { if (param_1 == 103) { field_0x224.registMultiSePos(param_2); } else if (param_1 == 107) { mFallSeMgr.registMultiSePos(param_2); } } break; case 8: if (dComIfGs_isSaveSwitch(9) && dComIfGs_isSaveSwitch(1)) { if (param_1 == 101) { mEtcSeMgr.registMultiSePos(param_2); } else if (param_1 == 103) { field_0x224.registMultiSePos(param_2); } else if (param_1 == 107) { field_0x258.registMultiSePos(param_2); } } else if (param_1 == 100) { mEtcSeMgr.registMultiSePos(param_2); } break; case 10: if ((param_1 == 100) && dComIfGs_isSaveSwitch(0x31)) { mEtcSeMgr.registMultiSePos(param_2); } else if (param_1 == 103 && dComIfGs_isSaveSwitch(0x31)) { field_0x28c.registMultiSePos(param_2); } else if (param_1 == 104 && (dComIfGs_isSaveSwitch(8))) { field_0x258.registMultiSePos(param_2); } else if (param_1 == 107 && dComIfGs_isSaveSwitch(0x31)) { mFallSeMgr.registMultiSePos(param_2); } break; case 11: if (dComIfGs_isSaveSwitch(9)) { if (param_1 == 101) { mEtcSeMgr.registMultiSePos(param_2); } else if (param_1 == 103) { field_0x224.registMultiSePos(param_2); } else if (param_1 == 107) { mFallSeMgr.registMultiSePos(param_2); } } else if (param_1 == 100) { mEtcSeMgr.registMultiSePos(param_2); } break; case 12: if (dComIfGs_isSaveSwitch(8) && dComIfGs_isSaveSwitch(3)) { if (param_1 == 103) { field_0x224.registMultiSePos(param_2); } else if (param_1 == 107) { field_0x258.registMultiSePos(param_2); } } break; case 13: if (dComIfGs_isSaveSwitch(0x30)) { if (param_1 == 101) { mEtcSeMgr.registMultiSePos(param_2); } else if (param_1 == 103) { field_0x28c.registMultiSePos(param_2); } else if ((param_1 == 104) && (dComIfGs_isSaveSwitch(9))) { field_0x258.registMultiSePos(param_2); } else if (param_1 == 107) { mFallSeMgr.registMultiSePos(param_2); } } else if (param_1 == 100) { mEtcSeMgr.registMultiSePos(param_2); } } } } /* 802CA794-802CAAC0 2C50D4 032C+00 1/1 1/1 0/0 .text startLv3WaterSe__10Z2EnvSeMgrFSc */ // Matches with literals #ifdef NONMATCHING void Z2EnvSeMgr::startLv3WaterSe(s8 param_1) { if (Z2GetSceneMgr()->getCurrentSceneNum() == 0x2e) { if (param_1 >= 0) { field_0x140 = param_1; return; } param_1 = field_0x140; } JAISoundID aJStack_60 = 0xffffffff; f32 dVar12 = param_1 / 127.0f; f32 maxVolume; f32 panPower; f32 dolbyPower; if (field_0x224.getPosCount() >= 0) { if (field_0x248 == 0x73) { aJStack_60 = Z2SE_ENV_WATER_WAY; } else if (field_0x248 == 0x6e) { aJStack_60 = Z2SE_ENV_WATERFALL_CALM; } maxVolume = field_0x24c * field_0x224.getMaxVolume(); panPower = field_0x224.getPanPower(); dolbyPower = field_0x224.getDolbyPower(); field_0x240.startEnvSeLevel(aJStack_60, dVar12, maxVolume, panPower, dolbyPower, field_0x250, 0); field_0x224.resetMultiSePos(); } if (field_0x258.getPosCount() >= 0) { if (field_0x27c == 0x74) { aJStack_60 = Z2SE_ENV_WATER_WAY; } else if (field_0x27c == 0x6f) { aJStack_60 = Z2SE_ENV_WATERFALL_CALM; } maxVolume = field_0x280 * field_0x258.getMaxVolume(); panPower = field_0x258.getPanPower(); dolbyPower = field_0x258.getDolbyPower(); field_0x274.startEnvSeLevel(aJStack_60, dVar12, maxVolume, panPower, dolbyPower, field_0x284, 0); field_0x258.resetMultiSePos(); } if (field_0x28c.getPosCount() >= 0) { if (field_0x2b0 == 0x75) { aJStack_60 = Z2SE_ENV_WATER_WAY_L; } else if (field_0x2b0 == 0x70) { aJStack_60 = Z2SE_ENV_WATERFALL_CALM; } else if (field_0x2b0 == 0x77) { aJStack_60 = Z2SE_ENV_VALLEY_WIND; } maxVolume = field_0x2b4 * field_0x28c.getMaxVolume(); panPower = field_0x28c.getPanPower(); dolbyPower = field_0x28c.getDolbyPower(); field_0x2a8.startEnvSeLevel(aJStack_60, dVar12, maxVolume, panPower, dolbyPower, field_0x2b8, 0); field_0x28c.resetMultiSePos(); } startRiverSe(param_1); startFallSe(param_1); startEtcSe(param_1); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2EnvSeMgr::startLv3WaterSe(s8 param_0) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/startLv3WaterSe__10Z2EnvSeMgrFSc.s" } #pragma pop #endif