diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2024-11-12 02:41:55 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-11-12 05:41:55 -0500 |
| commit | ebd7e3feed369cc482ec7b5f537c4d363f81eb60 (patch) | |
| tree | 9b7ed830aeff3a3af912df33efdb56d90c3cff8b /src/Z2AudioLib/Z2LinkMgr.cpp | |
| parent | f2a7b2a83a8976076eaf13d5754e6096a5887f24 (diff) | |
d_error_msg mostly done, little Z2LinkMgr work (#2248)
Diffstat (limited to 'src/Z2AudioLib/Z2LinkMgr.cpp')
| -rw-r--r-- | src/Z2AudioLib/Z2LinkMgr.cpp | 434 |
1 files changed, 141 insertions, 293 deletions
diff --git a/src/Z2AudioLib/Z2LinkMgr.cpp b/src/Z2AudioLib/Z2LinkMgr.cpp index 7481b74411..96664f7dc7 100644 --- a/src/Z2AudioLib/Z2LinkMgr.cpp +++ b/src/Z2AudioLib/Z2LinkMgr.cpp @@ -9,10 +9,6 @@ #include "dol2asm.h" #include "global.h" -// -// Types: -// - struct Z2SoundObjCoach { /* 802C54B8 */ Z2SoundObjCoach(); /* 802C54FC */ void init(Vec*, u8); @@ -21,126 +17,12 @@ struct Z2SoundObjCoach { /* 802C57C0 */ int startSound(JAISoundID, u32, s8); }; -// -// Forward References: -// - -extern "C" void setLinkGroupInfo__14Z2CreatureLinkFUc(); -extern "C" void setLinkHp__14Z2CreatureLinkFll(); -extern "C" void setLinkSwordType__14Z2CreatureLinkFll(); -extern "C" void setLinkShieldType__14Z2CreatureLinkFll(); -extern "C" void setLinkBootsType__14Z2CreatureLinkFl(); -extern "C" void __ct__14Z2CreatureLinkFv(); -extern "C" void __dt__18Z2LinkSoundStarterFv(); -extern "C" void __dt__14Z2CreatureLinkFv(); -extern "C" void deleteObject__14Z2CreatureLinkFv(); -extern "C" void init__14Z2CreatureLinkFP3VecP3VecP3Vec(); -extern "C" void initKantera__14Z2CreatureLinkFP3Vec(); -extern "C" void deleteKantera__14Z2CreatureLinkFv(); -extern "C" void setKanteraState__14Z2CreatureLinkFUc(); -extern "C" void framework__14Z2CreatureLinkFUlSc(); -extern "C" void setSinkDepth__14Z2CreatureLinkFSc(); -extern "C" void setRiding__14Z2CreatureLinkFb(); -extern "C" void setMagnetized__14Z2CreatureLinkFb(); -extern "C" void setWolfEyeOpen__14Z2CreatureLinkFb(); -extern "C" void startLinkSound__14Z2CreatureLinkF10JAISoundIDUlSc(); -extern "C" void startLinkSoundLevel__14Z2CreatureLinkF10JAISoundIDUlSc(); -extern "C" void startLinkVoice__14Z2CreatureLinkF10JAISoundIDSc(); -extern "C" void startLinkVoiceLevel__14Z2CreatureLinkF10JAISoundIDSc(); -extern "C" void startLinkSwordSound__14Z2CreatureLinkF10JAISoundIDUlSc(); -extern "C" void startCollisionSE__14Z2CreatureLinkFUlUl(); -extern "C" void startHitItemSE__14Z2CreatureLinkFUlUlP14Z2SoundObjBasef(); -extern "C" void setResumeAttack__14Z2CreatureLinkFb(); -extern "C" void __ct__18Z2LinkSoundStarterFv(); -extern "C" void func_802C4928(); -extern "C" void __ct__14Z2CreatureRideFv(); -extern "C" void __dt__18Z2RideSoundStarterFv(); -extern "C" void __dt__14Z2CreatureRideFv(); -extern "C" void deleteObject__14Z2CreatureRideFv(); -extern "C" void init__14Z2CreatureRideFP3VecP3VecUcUc(); -extern "C" void setLinkRiding__14Z2CreatureRideFb(); -extern "C" void __ct__18Z2RideSoundStarterFP14Z2CreatureRide(); -extern "C" void func_802C5284(); -extern "C" void __ct__15Z2SoundObjCoachFv(); -extern "C" void init__15Z2SoundObjCoachFP3VecUc(); -extern "C" void startWheelSound__15Z2SoundObjCoachFf(); -extern "C" void startFireSound__15Z2SoundObjCoachFUs(); -extern "C" void startSound__15Z2SoundObjCoachF10JAISoundIDUlSc(); -extern "C" static void func_802C588C(); -extern "C" static void func_802C5894(); -extern "C" u8 mLinkPtr__14Z2CreatureLink[4 + 4 /* padding */]; - -// -// External References: -// - -extern "C" void isEventBit__11dSv_event_cCFUs(); -extern "C" void stop__8JAISoundFUl(); -extern "C" void moveVolume__18JAISoundParamsMoveFfUl(); -extern "C" void movePitch__18JAISoundParamsMoveFfUl(); -extern "C" void __dt__15JAISoundStarterFv(); -extern "C" void linearTransform__6Z2CalcFfffffb(); -extern "C" void getParamByExp__6Z2CalcFffffffQ26Z2Calc9CurveSign(); -extern "C" void __ct__14Z2SoundStarterFb(); -extern "C" void func_802AABF4(); -extern "C" void func_802AAC3C(); -extern "C" void setPortData__14Z2SoundStarterFP14JAISoundHandleUlUsSc(); -extern "C" void getHandleSoundID__14Z2SoundHandlesF10JAISoundID(); -extern "C" void stopAllSounds__14Z2SoundHandlesFUl(); -extern "C" void isActive__14Z2SoundHandlesCFv(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void setBattleSeqState__8Z2SeqMgrFUc(); -extern "C" void setBattleLastHit__8Z2SeqMgrFUc(); -extern "C" void setFxForceOff__11Z2FxLineMgrFb(); -extern "C" void setTargetVolume__10Z2AudienceFfi(); -extern "C" void __ct__14Z2SoundObjBaseFv(); -extern "C" void __dt__14Z2SoundObjBaseFv(); -extern "C" void init__14Z2SoundObjBaseFP3VecUc(); -extern "C" void deleteObject__14Z2SoundObjBaseFv(); -extern "C" void framework__14Z2SoundObjBaseFUlSc(); -extern "C" void dispose__14Z2SoundObjBaseFv(); -extern "C" void stopOK__14Z2SoundObjBaseFR17Z2SoundHandlePool(); -extern "C" void startSound__14Z2SoundObjBaseF10JAISoundIDUlSc(); -extern "C" void startLevelSound__14Z2SoundObjBaseF10JAISoundIDUlSc(); -extern "C" void startCollisionSE__14Z2SoundObjBaseFUlUlP14Z2SoundObjBase(); -extern "C" void __ct__16Z2SoundObjSimpleFv(); -extern "C" void setGhostEnemyState__13Z2SoundObjMgrFUc(); -extern "C" void __ct__10Z2CreatureFv(); -extern "C" void __dt__10Z2CreatureFv(); -extern "C" void deleteObject__10Z2CreatureFv(); -extern "C" void init__10Z2CreatureFP3VecP3VecUcUc(); -extern "C" void init__10Z2CreatureFP3VecP3VecP3VecUcUcUc(); -extern "C" void setSoundStarter__10Z2CreatureFP14Z2SoundStarter(); -extern "C" void framework__10Z2CreatureFUlSc(); -extern "C" void startCreatureSound__10Z2CreatureF10JAISoundIDUlSc(); -extern "C" void startCreatureSoundLevel__10Z2CreatureF10JAISoundIDUlSc(); -extern "C" void startCreatureVoice__10Z2CreatureF10JAISoundIDSc(); -extern "C" void startCreatureVoiceLevel__10Z2CreatureF10JAISoundIDSc(); -extern "C" void startCreatureExtraSound__10Z2CreatureF10JAISoundIDUlSc(); -extern "C" void startCreatureExtraSoundLevel__10Z2CreatureF10JAISoundIDUlSc(); -extern "C" void startCollisionSE__10Z2CreatureFUlUl(); -extern "C" void __dl__FPv(); -extern "C" void _savegpr_24(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_24(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; -extern "C" extern void* __vt__14Z2SoundStarter[5 + 1 /* padding */]; -extern "C" extern void* __vt__16Z2SoundObjSimple[8]; - -// -// Declarations: -// - /* 802C321C-802C3220 2BDB5C 0004+00 0/0 1/1 0/0 .text setLinkGroupInfo__14Z2CreatureLinkFUc */ void Z2CreatureLink::setLinkGroupInfo(u8) {} /* 802C3220-802C3228 -00001 0008+00 0/0 0/0 0/0 .text setLinkHp__14Z2CreatureLinkFll */ -void Z2CreatureLink::setLinkHp(s32 hp, s32) { - mLinkHp = hp; +void Z2CreatureLink::setLinkHp(s32 i_hp, s32) { + mLinkHp = i_hp; } /* 802C3228-802C328C 2BDB68 0064+00 0/0 1/1 0/0 .text setLinkSwordType__14Z2CreatureLinkFll */ @@ -182,75 +64,6 @@ void Z2CreatureLink::setLinkBootsType(s32 i_bootsType) { } } -/* ############################################################################################## */ -/* 803CB8F0-803CB910 028A10 0020+00 1/1 0/0 1/1 .data __vt__15Z2SoundObjCoach */ -SECTION_DATA extern void* __vt__15Z2SoundObjCoach[8] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)framework__14Z2SoundObjBaseFUlSc, - (void*)dispose__14Z2SoundObjBaseFv, - (void*)stopOK__14Z2SoundObjBaseFR17Z2SoundHandlePool, - (void*)init__15Z2SoundObjCoachFP3VecUc, - (void*)startSound__15Z2SoundObjCoachF10JAISoundIDUlSc, - (void*)startLevelSound__14Z2SoundObjBaseF10JAISoundIDUlSc, -}; - -/* 803CB910-803CB924 028A30 0014+00 3/3 0/0 0/0 .data __vt__18Z2RideSoundStarter */ -SECTION_DATA extern void* __vt__18Z2RideSoundStarter[5] = { - (void*)NULL /* RTTI */, (void*)NULL, (void*)__dt__18Z2RideSoundStarterFv, - (void*)func_802AABF4, (void*)func_802C5284, -}; - -/* 803CB924-803CB96C 028A44 0048+00 2/2 0/0 0/0 .data __vt__14Z2CreatureRide */ -SECTION_DATA extern void* __vt__14Z2CreatureRide[18] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)deleteObject__14Z2CreatureRideFv, - (void*)setSoundStarter__10Z2CreatureFP14Z2SoundStarter, - (void*)framework__10Z2CreatureFUlSc, - (void*)startCreatureSound__10Z2CreatureF10JAISoundIDUlSc, - (void*)startCreatureSoundLevel__10Z2CreatureF10JAISoundIDUlSc, - (void*)startCreatureVoice__10Z2CreatureF10JAISoundIDSc, - (void*)startCreatureVoiceLevel__10Z2CreatureF10JAISoundIDSc, - (void*)startCreatureExtraSound__10Z2CreatureF10JAISoundIDUlSc, - (void*)startCreatureExtraSoundLevel__10Z2CreatureF10JAISoundIDUlSc, - (void*)startCollisionSE__10Z2CreatureFUlUl, - (void*)NULL, - (void*)NULL, - (void*)func_802C5894, - (void*)func_802AABF4, - (void*)func_802C5284, - (void*)__dt__14Z2CreatureRideFv, -}; - -/* 803CB96C-803CB980 028A8C 0014+00 3/3 0/0 0/0 .data __vt__18Z2LinkSoundStarter */ -SECTION_DATA extern void* __vt__18Z2LinkSoundStarter[5] = { - (void*)NULL /* RTTI */, (void*)NULL, (void*)__dt__18Z2LinkSoundStarterFv, - (void*)func_802AABF4, (void*)func_802C4928, -}; - -/* 803CB980-803CB9C8 028AA0 0048+00 2/2 0/0 0/0 .data __vt__14Z2CreatureLink */ -SECTION_DATA extern void* __vt__14Z2CreatureLink[18] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)deleteObject__14Z2CreatureLinkFv, - (void*)setSoundStarter__10Z2CreatureFP14Z2SoundStarter, - (void*)framework__14Z2CreatureLinkFUlSc, - (void*)startCreatureSound__10Z2CreatureF10JAISoundIDUlSc, - (void*)startCreatureSoundLevel__10Z2CreatureF10JAISoundIDUlSc, - (void*)startCreatureVoice__10Z2CreatureF10JAISoundIDSc, - (void*)startCreatureVoiceLevel__10Z2CreatureF10JAISoundIDSc, - (void*)startCreatureExtraSound__10Z2CreatureF10JAISoundIDUlSc, - (void*)startCreatureExtraSoundLevel__10Z2CreatureF10JAISoundIDUlSc, - (void*)startCollisionSE__14Z2CreatureLinkFUlUl, - (void*)NULL, - (void*)NULL, - (void*)func_802C588C, - (void*)func_802AABF4, - (void*)func_802C4928, - (void*)__dt__14Z2CreatureLinkFv, -}; - /* 80451360-80451368 000860 0004+04 3/3 15/15 0/0 .sbss mLinkPtr__14Z2CreatureLink */ Z2CreatureLink* Z2CreatureLink::mLinkPtr; @@ -282,13 +95,11 @@ Z2CreatureLink::Z2CreatureLink() { } /* 802C3464-802C3500 2BDDA4 009C+00 1/0 0/0 0/0 .text __dt__18Z2LinkSoundStarterFv */ -inline Z2LinkSoundStarter::~Z2LinkSoundStarter() { - // NONMATCHING -} +inline Z2LinkSoundStarter::~Z2LinkSoundStarter() {} /* 802C3500-802C35F8 2BDE40 00F8+00 2/1 1/1 0/0 .text __dt__14Z2CreatureLinkFv */ Z2CreatureLink::~Z2CreatureLink() { - // NONMATCHING + deleteObject(); } /* 802C35F8-802C3638 2BDF38 0040+00 1/0 0/0 0/0 .text deleteObject__14Z2CreatureLinkFv */ @@ -302,6 +113,8 @@ void Z2CreatureLink::deleteObject() { /* 802C3638-802C3710 2BDF78 00D8+00 0/0 1/1 0/0 .text init__14Z2CreatureLinkFP3VecP3VecP3Vec */ void Z2CreatureLink::init(Vec* param_0, Vec* param_1, Vec* param_2) { + OS_REPORT("[Z2CreatureLink::init]"); + Z2Creature::init(param_0, param_1, param_2, 6, 1, 2); Z2GetAudience()->getLinkMic()->setPosPtr(getCurrentPos()); @@ -339,57 +152,55 @@ void Z2CreatureLink::setKanteraState(u8 i_state) { mKanteraState = i_state; } -/* ############################################################################################## */ -/* 80455C98-80455C9C 004298 0004+00 9/9 0/0 0/0 .sdata2 @3721 */ -SECTION_SDATA2 static f32 lit_3721 = 1.0f; - -/* 80455C9C-80455CA0 00429C 0004+00 2/2 0/0 0/0 .sdata2 @3722 */ -SECTION_SDATA2 static f32 lit_3722 = -1.0f; - -/* 80455CA0-80455CA8 0042A0 0004+04 11/11 0/0 0/0 .sdata2 @3723 */ -SECTION_SDATA2 static f32 lit_3723[1 + 1 /* padding */] = { - 0.0f, - /* padding */ - 0.0f, -}; - -/* 80455CA8-80455CB0 0042A8 0008+00 1/1 0/0 0/0 .sdata2 @3724 */ -SECTION_SDATA2 static f64 lit_3724 = 0.5; - -/* 80455CB0-80455CB8 0042B0 0008+00 1/1 0/0 0/0 .sdata2 @3725 */ -SECTION_SDATA2 static f64 lit_3725 = 3.0; - -/* 80455CB8-80455CC0 0042B8 0008+00 1/1 0/0 0/0 .sdata2 @3726 */ -SECTION_SDATA2 static u8 lit_3726[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - /* 802C3780-802C3A64 2BE0C0 02E4+00 1/0 0/0 0/0 .text framework__14Z2CreatureLinkFUlSc */ void Z2CreatureLink::framework(u32 param_0, s8 param_1) { - // NONMATCHING -} - -/* void Z2CreatureLink::framework(u32 param_0, s8 param_1) { Z2Creature::framework(param_0, param_1); if (mKantera.isAlive()) { mKantera.framework(param_0, param_1); } - if (field_0xc1 != -1) { + if (field_0xc1 != 0xFF) { field_0xc1++; } - if (mMagnetized) { + if (mWolfEyeOpen) { Z2GetSeMgr()->seStartLevel(Z2SE_WOLF_SENSE_OPEN, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); } - if (isInWater() && Z2GetStatusMgr()->getCameraInWaterDepthRatio() > 0.0f) { - if (startLinkSoundLevel() && ) { + if (isInWater()) { + f32 var_f31 = Z2GetStatusMgr()->getCameraInWaterDepthRatio(); + if (var_f31 > 0.0f) { + JAISoundHandle* var_r29 = startLinkSoundLevel(Z2SE_AL_UNDERWATER_BUBBLE, 0, -1); + if (var_r29 != NULL && *var_r29) { + (*var_r29)->getAuxiliary().moveVolume(var_f31, 0); + } + } + } + if (mMagnetized) { + startLinkSoundLevel(Z2SE_AL_MAGNETIZED, 0, -1); + } + + mMoveSpeed = 0; + + if (getCurrentPos() != NULL) { + field_0xb4.y = getCurrentPos()->y; + mMoveSpeed = sqrtf(VECSquareDistance(getCurrentPos(), &field_0xb4)); + field_0xb4.x = getCurrentPos()->x; + field_0xb4.z = getCurrentPos()->z; + } + + if (Z2GetStatusMgr()->getDemoStatus() == 10) { + mMovingTime = 180; + } else if (mMoveSpeed < 5) { + if (mMovingTime < 180) { + mMovingTime++; } + } else if (mMovingTime != 0) { + mMovingTime--; } -} */ +} /* 802C3A64-802C3A6C -00001 0008+00 0/0 0/0 0/0 .text setSinkDepth__14Z2CreatureLinkFSc */ @@ -403,7 +214,7 @@ void Z2CreatureLink::setRiding(bool i_isRiding) { if (i_isRiding) { Z2GetAudience()->setTargetVolume(0.35f, 0); } else { - Z2GetAudience()->setTargetVolume(FLOAT_LABEL(lit_3723), 0); + Z2GetAudience()->setTargetVolume(0.0f, 0); } mRiding = i_isRiding; @@ -432,77 +243,114 @@ void Z2CreatureLink::setWolfEyeOpen(bool i_wolfEyeOpen) { } } - -/* ############################################################################################## */ -/* 80455CC4-80455CC8 0042C4 0004+00 1/1 0/0 0/0 .sdata2 @3834 */ -SECTION_SDATA2 static f32 lit_3834 = 32.0f; - -/* 80455CC8-80455CCC 0042C8 0004+00 4/4 0/0 0/0 .sdata2 @3835 */ -SECTION_SDATA2 static f32 lit_3835 = 127.0f; - -/* 80455CCC-80455CD0 0042CC 0004+00 2/2 0/0 0/0 .sdata2 @3836 */ -SECTION_SDATA2 static f32 lit_3836 = 2.0f / 5.0f; - -/* 80455CD0-80455CD4 0042D0 0004+00 4/4 0/0 0/0 .sdata2 @3837 */ -SECTION_SDATA2 static f32 lit_3837 = 7.0f / 10.0f; - -/* 80455CD4-80455CD8 0042D4 0004+00 3/3 0/0 0/0 .sdata2 @3838 */ -SECTION_SDATA2 static f32 lit_3838 = 23.0f; - -/* 80455CD8-80455CE0 0042D8 0004+04 4/4 0/0 0/0 .sdata2 @3839 */ -SECTION_SDATA2 static f32 lit_3839[1 + 1 /* padding */] = { - 0.5f, - /* padding */ - 0.0f, -}; - -/* 80455CE0-80455CE8 0042E0 0008+00 3/3 0/0 0/0 .sdata2 @3842 */ -SECTION_SDATA2 static f64 lit_3842 = 4503601774854144.0 /* cast s32 to float */; - /* 802C3BD4-802C3E68 2BE514 0294+00 3/3 3/3 0/0 .text * startLinkSound__14Z2CreatureLinkF10JAISoundIDUlSc */ -void Z2CreatureLink::startLinkSound(JAISoundID param_0, u32 param_1, s8 param_2) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80455CE8-80455CEC 0042E8 0004+00 1/1 0/0 0/0 .sdata2 @3941 */ -SECTION_SDATA2 static f32 lit_3941 = 30.0f; - -/* 80455CEC-80455CF0 0042EC 0004+00 3/3 0/0 0/0 .sdata2 @3942 */ -SECTION_SDATA2 static f32 lit_3942 = 3.0f / 10.0f; - -/* 80455CF0-80455CF4 0042F0 0004+00 4/4 0/0 0/0 .sdata2 @3943 */ -SECTION_SDATA2 static f32 lit_3943 = 4.0f / 5.0f; - -/* 80455CF4-80455CF8 0042F4 0004+00 1/1 0/0 0/0 .sdata2 @3944 */ -SECTION_SDATA2 static f32 lit_3944 = 180.0f; - -/* 80455CF8-80455CFC 0042F8 0004+00 1/1 0/0 0/0 .sdata2 @3945 */ -SECTION_SDATA2 static f32 lit_3945 = 120.0f; - -/* 80455CFC-80455D00 0042FC 0004+00 4/4 0/0 0/0 .sdata2 @3946 */ -SECTION_SDATA2 static f32 lit_3946 = 3.0f / 5.0f; - -/* 80455D00-80455D04 004300 0004+00 1/1 0/0 0/0 .sdata2 @3947 */ -SECTION_SDATA2 static f32 lit_3947 = 80.0f; +// stopSound seems to store to the stack twice +Z2SoundHandlePool* Z2CreatureLink::startLinkSound(JAISoundID i_soundID, u32 param_1, s8 param_2) { + Z2SoundHandlePool* var_r30 = startCreatureSound(i_soundID, param_1, param_2); + + switch (i_soundID) { + case Z2SE_AL_DAMAGE_NORMAL: + case Z2SE_AL_DAMAGE_LARGE: + case Z2SE_AL_FREEZE: + Z2GetSeqMgr()->onEnemyDamage(); + break; + case Z2SE_LK_HS_SHOOT: + mSoundObjAnime.stopSound(Z2SE_AL_HS_OPEN, 0); + break; + case Z2SE_AL_SINK_SAND_OUT: + if (var_r30 != NULL && *var_r30) { + f32 var_f31 = Z2Calc::linearTransform(mSinkDepth, 32.0f, 127.0f, 0.4f, 1.0f, false); + f32 var_f30 = Z2Calc::linearTransform(mSinkDepth, 32.0f, 127.0f, 1.0f, 0.7f, false); + + (*var_r30)->getAuxiliary().moveVolume(var_f31, 0); + (*var_r30)->getAuxiliary().movePitch(var_f30, 0); + } + break; + case Z2SE_AL_SINK_SNOW_OUT: + if (var_r30 != NULL && *var_r30) { + f32 var_f29 = Z2Calc::linearTransform(mSinkDepth, 0.0f, 23.0f, 0.5f, 1.0f, false); + f32 var_f28 = Z2Calc::linearTransform(mSinkDepth, 0.0f, 23.0f, 1.0f, 0.7f, false); + + (*var_r30)->getAuxiliary().moveVolume(var_f29, 0); + (*var_r30)->getAuxiliary().movePitch(var_f28, 0); + } + break; + } -/* 80455D04-80455D08 004304 0004+00 1/1 0/0 0/0 .sdata2 @3948 */ -SECTION_SDATA2 static f32 lit_3948 = 6.0f / 5.0f; + return var_r30; +} -/* 80455D08-80455D0C 004308 0004+00 2/2 0/0 0/0 .sdata2 @3949 */ -SECTION_SDATA2 static f32 lit_3949 = 0.25f; +/* 802C3E68-802C4320 2BE7A8 04B8+00 1/1 3/3 0/0 .text + * startLinkSoundLevel__14Z2CreatureLinkF10JAISoundIDUlSc */ +// NONMATCHING - small issue with i_soundID in startCreatureSoundLevel call +JAISoundHandle* Z2CreatureLink::startLinkSoundLevel(JAISoundID i_soundID, u32 param_1, s8 param_2) { + if (i_soundID == Z2SE_AL_LIGHTNING_SW_GLOW && (Z2GetStatusMgr()->getDemoStatus() == 2 || !Z2GetSceneMgr()->isInGame())) { + return NULL; + } -/* 80455D0C-80455D10 00430C 0004+00 1/1 0/0 0/0 .sdata2 @3950 */ -SECTION_SDATA2 static f32 lit_3950 = 11.0f / 10.0f; + Z2SoundHandlePool* temp_r3 = startCreatureSoundLevel(i_soundID, param_1, param_2); + if (temp_r3 != NULL && *temp_r3) { + f32 var_f31 = 1.0f; + f32 var_f30 = 1.0f; + int var_r30 = 0; + + switch (i_soundID) { + case Z2SE_AL_SINK_SAND_LEVEL: + if (mSinkDepth > 0) { + var_f31 = Z2Calc::linearTransform(mSinkDepth, 0.0f, 127.0f, 0.4f, 1.0f, true); + var_f30 = Z2Calc::linearTransform(mSinkDepth, 0.0f, 127.0f, 1.0f, 0.7f, true); + } + break; + case Z2SE_AL_SINK_SNOW_LEVEL: + if (mSinkDepth > 0) { + var_f31 = Z2Calc::linearTransform(mSinkDepth, 0.0f, 23.0f, 0.7f, 1.0f, true); + var_f30 = Z2Calc::linearTransform(mSinkDepth, 0.0f, 23.0f, 1.0f, 0.7f, true); + } + break; + case Z2SE_AL_SPINNER_RIDE: + var_f30 = Z2Calc::getParamByExp(mMoveSpeed, 0.0f, 30.0f, 0.3f, 0.8f, 1.0f, Z2Calc::CURVE_SIGN_0); + + if (mMoveSpeed == 0 && mMovingTime > 120) { + var_f31 = Z2Calc::getParamByExp(mMovingTime, 180.0f, 120.0f, 0.6f, 0.0f, 0.4f, Z2Calc::CURVE_SIGN_0); + } else { + var_f31 = Z2Calc::getParamByExp(mMoveSpeed, 0.0f, 30.0f, 0.6f, 0.4f, 1.0f, Z2Calc::CURVE_SIGN_0); + } + break; + case Z2SE_AL_SPINNER_RAIL: + var_f30 = Z2Calc::getParamByExp(mMoveSpeed, 0.0f, 80.0f, 0.3f, 0.8f, 1.2f, Z2Calc::CURVE_SIGN_0); + break; + case Z2SE_AL_SNOBO_RIDE: + case Z2SE_AL_SNOBO_BREAK: + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[266]) && Z2GetSeqMgr()->getSubBgmID() != Z2BGM_SNOW_BOARD) { + var_f31 = 0.0f; + var_r30 = 0; + } else if (mMoveSpeed == 0) { + var_f31 = 0.0f; + var_r30 = 10; + } else { + var_f31 = Z2Calc::getParamByExp(mMoveSpeed, 0.0f, 80.0f, 0.25f, 0.4f, 1.0f, Z2Calc::CURVE_SIGN_0); + } + + var_f30 = Z2Calc::getParamByExp(mMoveSpeed, 0.0f, 80.0f, 0.3f, 0.5f, 1.1f, Z2Calc::CURVE_SIGN_0); + break; + case Z2SE_AL_LIGHTNING_SW_GLOW: + f32 temp_f1_2 = (*temp_r3)->getAuxiliary().mTransition.mVolume.mDest; + if (Z2GetStatusMgr()->getDemoStatus() == 2 && temp_f1_2 != 0.3f) { + var_f31 = 0.3f; + var_r30 = 45; + } else if (temp_f1_2 != 1.0f) { + var_f31 = 1.0f; + var_r30 = 45; + } + break; + } -/* 80455D10-80455D18 004310 0008+00 2/2 0/0 0/0 .sdata2 @3954 */ -SECTION_SDATA2 static f64 lit_3954 = 4503599627370496.0 /* cast u32 to float */; + (*temp_r3)->getAuxiliary().moveVolume(var_f31, var_r30); + (*temp_r3)->getAuxiliary().movePitch(var_f30, 0); + } -/* 802C3E68-802C4320 2BE7A8 04B8+00 1/1 3/3 0/0 .text - * startLinkSoundLevel__14Z2CreatureLinkF10JAISoundIDUlSc */ -void Z2CreatureLink::startLinkSoundLevel(JAISoundID param_0, u32 param_1, s8 param_2) { - // NONMATCHING + return temp_r3; } /* 802C4320-802C45B0 2BEC60 0290+00 1/1 1/1 0/0 .text @@ -684,4 +532,4 @@ void Z2SoundObjCoach::startFireSound(u16 param_0) { * startSound__15Z2SoundObjCoachF10JAISoundIDUlSc */ int Z2SoundObjCoach::startSound(JAISoundID param_0, u32 param_1, s8 param_2) { // NONMATCHING -}
\ No newline at end of file +} |
