rendered paste bodyHLTSOUND CClientSoundMgr::PlaySound(PlaySoundInfo & psi)
{
HLTSOUND hSnd = NULL;
if (!GetConsoleInt("SoundEnable",1)) return NULL;
// Play the sound...
// Optimization, if we can't hear the sound and it isn't looping
// don't play it!
if ((psi.m_dwFlags & PLAYSOUND_3D) &&
!(psi.m_dwFlags & PLAYSOUND_LOOP) &&
g_vtSoundPlayOnlyIfHeard.GetFloat())
{
LTVector vListenerPos;
bool bListenerInClient;
LTRotation rRot;
g_pLTClient->GetListener(&bListenerInClient, &vListenerPos, &rRot);
LTVector vPos = psi.m_vPosition - vListenerPos;
if (vPos.Mag() > psi.m_fOuterRadius)
{
return NULL;
}
}
LTRESULT hResult = g_pLTClient->SoundMgr()->PlaySound(&psi, hSnd);
if (hResult != LT_OK)
{
DebugCPrint(1,"ERROR in CClientSoundMgr::PlaySound() - Couldn't play sound '%s'", psi.m_szSoundName);
return NULL;
}
//===============================================
10022A40 83EC 20 SUB ESP,20
10022A43 6A 01 PUSH 1
10022A45 68 B0221710 PUSH Gam628.101722B0 ; ASCII "SoundEnable"
10022A4A C74424 08 000000>MOV DWORD PTR SS:[ESP+8],0
10022A52 E8 99180000 CALL Gam628.100242F0
10022A57 83C4 08 ADD ESP,8
10022A5A 85C0 TEST EAX,EAX
10022A5C 75 06 JNZ SHORT Gam628.10022A64
10022A5E 83C4 20 ADD ESP,20
10022A61 C2 0400 RETN 4
10022A64 56 PUSH ESI
10022A65 8B7424 28 MOV ESI,DWORD PTR SS:[ESP+28]
10022A69 8B06 MOV EAX,DWORD PTR DS:[ESI]
10022A6B A8 02 TEST AL,2
10022A6D 0F84 B3000000 JE Gam628.10022B26
10022A73 A8 04 TEST AL,4
10022A75 0F85 AB000000 JNZ Gam628.10022B26
10022A7B 8B0D C4461A10 MOV ECX,DWORD PTR DS:[101A46C4] ; FEARMP.0056A2A8
10022A81 85C9 TEST ECX,ECX
10022A83 0F84 9D000000 JE Gam628.10022B26
10022A89 8B15 C0461A10 MOV EDX,DWORD PTR DS:[101A46C0]
10022A8F 8B01 MOV EAX,DWORD PTR DS:[ECX]
10022A91 52 PUSH EDX
10022A92 FF90 14010000 CALL DWORD PTR DS:[EAX+114]
10022A98 D905 FC021710 FLD DWORD PTR DS:[101702FC]
10022A9E D9C9 FXCH ST(1)
10022AA0 DAE9 FUCOMPP
10022AA2 DFE0 FSTSW AX
10022AA4 F6C4 44 TEST AH,44
10022AA7 7B 7D JPO SHORT Gam628.10022B26
10022AA9 8D4424 14 LEA EAX,DWORD PTR SS:[ESP+14]
10022AAD 50 PUSH EAX
10022AAE A1 18541A10 MOV EAX,DWORD PTR DS:[101A5418]
10022AB3 8D4C24 0C LEA ECX,DWORD PTR SS:[ESP+C]
10022AB7 51 PUSH ECX
10022AB8 8D5424 30 LEA EDX,DWORD PTR SS:[ESP+30]
10022ABC 52 PUSH EDX
10022ABD C74424 20 000000>MOV DWORD PTR SS:[ESP+20],0 ;declares?
10022AC5 C74424 24 000000>MOV DWORD PTR SS:[ESP+24],0
10022ACD C74424 28 000000>MOV DWORD PTR SS:[ESP+28],0
10022AD5 C74424 2C 000080>MOV DWORD PTR SS:[ESP+2C],3F800000
10022ADD FF50 20 CALL DWORD PTR DS:[EAX+20] ;g_pLTClient->GetListener?
10022AE0 D986 28010000 FLD DWORD PTR DS:[ESI+128]
10022AE6 D86424 14 FSUB DWORD PTR SS:[ESP+14]
10022AEA 83C4 0C ADD ESP,0C
10022AED D986 2C010000 FLD DWORD PTR DS:[ESI+12C]
10022AF3 D86424 0C FSUB DWORD PTR SS:[ESP+C]
10022AF7 D986 30010000 FLD DWORD PTR DS:[ESI+130]
10022AFD D86424 10 FSUB DWORD PTR SS:[ESP+10]
10022B01 D9C0 FLD ST ;vector stuff
10022B03 D8C9 FMUL ST,ST(1)
10022B05 D9C2 FLD ST(2)
10022B07 D8CB FMUL ST,ST(3)
10022B09 DEC1 FADDP ST(1),ST
10022B0B D9C3 FLD ST(3)
10022B0D D8CC FMUL ST,ST(4)
10022B0F DEC1 FADDP ST(1),ST
10022B11 D9FA FSQRT
10022B13 DDDB FSTP ST(3)
10022B15 DDD8 FSTP ST
10022B17 DDD8 FSTP ST
10022B19 D89E 18010000 FCOMP DWORD PTR DS:[ESI+118]
10022B1F DFE0 FSTSW AX
10022B21 F6C4 41 TEST AH,41
10022B24 74 2F JE SHORT Gam628.10022B55
10022B26 8B0D 18541A10 MOV ECX,DWORD PTR DS:[101A5418] ; FEARMP.0056A2A8
10022B2C 8B11 MOV EDX,DWORD PTR DS:[ECX]
10022B2E FF52 48 CALL DWORD PTR DS:[EDX+48]
10022B31 8B10 MOV EDX,DWORD PTR DS:[EAX]
10022B33 8D4C24 04 LEA ECX,DWORD PTR SS:[ESP+4]
10022B37 51 PUSH ECX
10022B38 56 PUSH ESI
10022B39 8BC8 MOV ECX,EAX
10022B3B FF52 04 CALL DWORD PTR DS:[EDX+4]
10022B3E 85C0 TEST EAX,EAX ;!= NULL stuff
10022B40 74 1C JE SHORT Gam628.10022B5E
10022B42 83C6 04 ADD ESI,4
10022B45 56 PUSH ESI
10022B46 68 18231710 PUSH Gam628.10172318 ; ASCII "ERROR in CClientSoundMgr::PlaySound() - Couldn't play sound '%s'" ;CDebugPrint
10022B4B 6A 01 PUSH 1
10022B4D E8 7EF41100 CALL Gam628.10141FD0