MCPcopy Create free account
hub / github.com/StrongPC123/Far-Cry-1-Source-Full / LoadDialog

Method LoadDialog

CryEntitySystem/LipSync.cpp:470–518  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

468}
469
470bool CLipSync::LoadDialog(const char *pszFilename, int nSoundVolume, float fMinSoundRadius, float fMaxSoundRadius, float fClipDist, int nSoundFlags,IScriptObject *pAITable)
471{
472 if ((!m_pScriptSystem) || (!m_pSoundSystem) || (!m_pCharInst))
473 return false; // not initialized
474 FUNCTION_PROFILER(m_pSystem, PROFILE_GAME);
475 {
476 FRAME_PROFILER("LoadDialog: Unload previous dialog", m_pSystem, PROFILE_GAME);
477 UnloadDialog();
478 }
479
480 m_bUnloadWhenDone=false;
481 m_pAITable=pAITable;
482
483 char sSoundFilename[MAX_PATH];
484 strncpy(sSoundFilename, pszFilename, MAX_PATH);
485 sSoundFilename[MAX_PATH-1]=0;
486 char sSyncFilename[MAX_PATH];
487 strncpy(sSyncFilename, pszFilename, MAX_PATH);
488 sSyncFilename[MAX_PATH-1]=0;
489 RemoveExtension(sSyncFilename);
490#ifdef MAGPIE_SUPPORT
491 AddExtension(sSyncFilename, ".txt");
492#else
493 AddExtension(sSyncFilename, ".lsf");
494#endif
495 {
496 FRAME_PROFILER("LoadDialog: Loading sound", m_pSystem, PROFILE_GAME);
497 if (m_pSound)
498 m_pSound->RemoveEventListener( this );
499 m_pSound=m_pSoundSystem->LoadSound(sSoundFilename, FLAG_SOUND_3D | nSoundFlags); // FLAG_SOUND_STREAM
500 }
501 if (!m_pSound)
502 return false;
503 m_pSound->AddEventListener( this );
504 m_pSound->SetVolume(nSoundVolume);
505 m_pSound->SetMinMaxDistance(fMinSoundRadius, fMaxSoundRadius*0.5f);
506 m_pSound->SetLoopMode(false);
507
508 // ATTENTION,PlayDialog may be already called here.
509 m_pSound->Preload(); // this will force starting to load ansynchronously
510
511 m_pReadStream=m_pStreamEngine->StartRead("LipSync", sSyncFilename, this);
512 if (m_pReadStream->IsFinished())
513 {
514 //m_pLog->LogToFile("\006io:CLipSync(%p)::LoadDialog IsFinished", this);
515 m_pReadStream=NULL;
516 }
517 return true;
518}
519
520bool CLipSync::UnloadDialog()
521{

Callers 2

SayDialogMethod · 0.80
DoReadibilityPackMethod · 0.80

Calls 11

RemoveExtensionFunction · 0.85
AddExtensionFunction · 0.85
IsFinishedMethod · 0.80
RemoveEventListenerMethod · 0.45
LoadSoundMethod · 0.45
AddEventListenerMethod · 0.45
SetVolumeMethod · 0.45
SetMinMaxDistanceMethod · 0.45
SetLoopModeMethod · 0.45
PreloadMethod · 0.45
StartReadMethod · 0.45

Tested by

no test coverage detected