Files
Sun1602/Client/GameClient/OptionSoundDialog.cpp
T
2022-10-26 12:25:11 +08:00

673 lines
20 KiB
C++

#include "SunClientPrecompiledHeader.h"
#include "Application.h"
#include "OptionSoundDialog.h"
#include "ResourceManager.h"
#include "InterfaceManager.h"
#include "Map.h"
#include "Sound.h"
#include "SoundBGM.h"
#include "globalfunc.h"
const int c_iSoundMinVolume = 0;
const int c_iSoundMaxVolume = 100;
#pragma warning ( push )
#pragma warning(disable : 4800)
#ifdef _NA_000000_20130114_RENEWER_UI
#else
WzID OptionSoundDialog::m_wzId[OPTION_SOUND_MAX] =
{
StrToWzID("B999"), // 버튼 - 종료
StrToWzID("TI06"), // 초기화 버튼
StrToWzID("TI07"), // OK
StrToWzID("H000"), // 배경음악 스크롤
StrToWzID("H001"), // 배경효과음 스크롤
StrToWzID("H002"), // 효과음 스크롤
StrToWzID("H003"), // OPTION_SOUND_SYSTEM, // 시스템 볼륨 스크롤
StrToWzID("H004"), // OPTION_SOUND_SPEAKER, // 스피커 스크롤
StrToWzID("H005"), // OPTION_SOUND_MIC, // 마이크 스크롤
StrToWzID("C005"), // 시스템 음성 체크박스
StrToWzID("C006"), // NPC 음성 체크박스
StrToWzID("T102"), // 음성채팅 텍스트
};
OptionSoundDialog::OptionSoundDialog( InterfaceManager * pUIMan )
:uiBase( pUIMan )
{
int i;
for( i = 0 ; i < OCB_MAX ; ++i )
{
m_pCheckBox[i] = NULL;
}
for( i = 0 ; i < OHS_MAX ; ++i )
{
m_pHScroll[i] = NULL;
}
}
OptionSoundDialog::~OptionSoundDialog( void )
{
}
VOID OptionSoundDialog::Init( CDrawBase * pDrawBase )
{
//UpdatePosition();
TCHAR szMessage[INTERFACE_STRING_LENGTH] = {0,};
TCHAR szText[INTERFACE_STRING_LENGTH] = {0,};
DWORD dwTextColor = RGBA( 235, 192, 38, 255 );
DWORD dwWideTextColor = RGBA( 245, 166, 46, 255 );
DWORD dwSelectColor = RGBA( 0, 0, 255,255 );
DWORD dwBGColor = RGBA( 32, 32, 32, 0 );
DWORD dwSetColorSelBarOnText = RGBA( 255, 255, 255, 255 );
// 체크 박스 얻어오기( 효과 끄고 켜기 )
m_pCheckBox[OCB_SYSTEM_VOICE]= static_cast<CCtrlButtonCheckWZ *>(getControl(OPTION_SOUND_CHECKBOX_SYSTEM_VOICE));
m_pCheckBox[OCB_NPC_VOICE]= static_cast<CCtrlButtonCheckWZ *>(getControl(OPTION_SOUND_CHECKBOX_NPC_VOICE));
//TODO: 음성채팅용 컨트롤이 UI에서 제거되면 이 코드도 제거해야 함
CCtrlStaticWZ *pStaticCtrl = static_cast<CCtrlStaticWZ *>(getControl(OPTION_SOUND_STATIC_VOICE_CHAT_CATEGORY));
if(pStaticCtrl)
pStaticCtrl->ShowWindowWZ(WZ_HIDE);
// 사운드 볼륨 스크롤 바 얻어오기
m_pHScroll[OHS_BGM] = static_cast<CCtrlHScrollWZ *>(getControl(OPTION_SOUND_BG_MUSIC));
if (m_pHScroll[OHS_BGM])
{
if (m_pHScroll[OHS_BGM])
m_pHScroll[OHS_BGM]->SetScrollRangeWZ( c_iSoundMinVolume, c_iSoundMaxVolume );
}
m_pHScroll[OHS_AMBIENT_EFFECT] = static_cast<CCtrlHScrollWZ *>(getControl(OPTION_SOUND_AMBIENT_EFFECT_SOUND));
if (m_pHScroll[OHS_AMBIENT_EFFECT])
{
m_pHScroll[OHS_AMBIENT_EFFECT]->SetScrollRangeWZ( c_iSoundMinVolume, c_iSoundMaxVolume );
}
m_pHScroll[OHS_EFFECT] = static_cast<CCtrlHScrollWZ *>(getControl(OPTION_SOUND_EFFECT_SOUND));
if (m_pHScroll[OHS_EFFECT])
{
m_pHScroll[OHS_EFFECT]->SetScrollRangeWZ( c_iSoundMinVolume, c_iSoundMaxVolume );
}
m_pHScroll[OHS_SYSTEM] = static_cast<CCtrlHScrollWZ *>(getControl(OPTION_SOUND_SYSTEM));
if (m_pHScroll[OHS_SYSTEM])
{
m_pHScroll[OHS_SYSTEM]->SetScrollRangeWZ( c_iSoundMinVolume, c_iSoundMaxVolume );
}
m_pHScroll[OHS_SPEAKER] = static_cast<CCtrlHScrollWZ *>(getControl(OPTION_SOUND_SPEAKER));
if (m_pHScroll[OHS_SPEAKER])
{
m_pHScroll[OHS_SPEAKER]->SetScrollRangeWZ( c_iSoundMinVolume, c_iSoundMaxVolume );
}
m_pHScroll[OHS_MIC] = static_cast<CCtrlHScrollWZ *>(getControl(OPTION_SOUND_MIC));
if (m_pHScroll[OHS_MIC])
{
//TODO: 음성채팅용 컨트롤이 UI에서 제거되면 이 코드도 제거해야 함
m_pHScroll[OHS_MIC]->ShowWindowWZ(WZ_HIDE); //마이크 볼륨 스크롤 제거
}
//-------------------------------------------------------------------------
// 옵션 데이터 설정
//-------------------------------------------------------------------------
m_OptionParam = GAMEOPTION->GetGameOption();
m_OptionParam.SetOptionValue( nOptionType::SYSTEM_VOLUME, Sound::Instance()->GetMasterVolume() );
m_OptionParam.SetOptionValue( nOptionType::SPEAKER_VOLUME, Sound::Instance()->GetWaveVolume() );
m_InitOptionParam = m_OptionParam;
// 컨트롤에 적용
ApplyControl();
}
VOID OptionSoundDialog::Release()
{
}
VOID OptionSoundDialog::MessageProc( SI_MESSAGE * pMessage )
{
int iIndex = -1;
TCHAR szMessage[INTERFACE_STRING_LENGTH] = {0,};
TCHAR szText[INTERFACE_STRING_LENGTH] = {0,};
TCHAR *pszTRUE = _T("TRUE");
TCHAR *pszFALSE = _T("FALSE");
int iScrollPos;
float fSoundVolume = 0.0f;
float fVolumeStep = 0.15f;
switch( pMessage->eResultMsg )
{
//-----------------------------------------------------------------------------------------
// 사운드 스크롤 바 마우스로 끌어땡기기
//-----------------------------------------------------------------------------------------
case RT_MSG_SB_THUMBPOSITION:
{
switch( getCtrlIDToPos( pMessage->dwCtrlID ) )
{
case OPTION_SOUND_BG_MUSIC:
{
iScrollPos = m_pHScroll[OHS_BGM]->GetScrollPosWZ();
if( iScrollPos <= 0 )
{
g_SoundBGM.SetVolume( 0.0f );
}
else
{
fSoundVolume = (float)iScrollPos / (float)c_iSoundMaxVolume;
g_SoundBGM.SetVolume( fSoundVolume );
}
// 사운드 저장
m_OptionParam.SetOptionValue( nOptionType::BGM_VOLUME, iScrollPos );
}
break;
case OPTION_SOUND_AMBIENT_EFFECT_SOUND:
{
iScrollPos = m_pHScroll[OHS_AMBIENT_EFFECT]->GetScrollPosWZ();
if( iScrollPos <= 0 )
{
}
else
{
fSoundVolume = (float)iScrollPos / (float)c_iSoundMaxVolume;
}
// 사운드 저장
m_OptionParam.SetOptionValue( nOptionType::AMBIENT_VOLUME, iScrollPos );
if (g_pMap)
g_pMap->SetAmbientVolume(fSoundVolume);
}
break;
case OPTION_SOUND_EFFECT_SOUND:
{
iScrollPos = m_pHScroll[OHS_EFFECT]->GetScrollPosWZ();
if( iScrollPos <= 0 )
{
}
else
{
fSoundVolume = (float)iScrollPos / (float)c_iSoundMaxVolume;
}
// 사운드 저장
m_OptionParam.SetOptionValue( nOptionType::EFFECT_VOLUME, iScrollPos );
}
break;
case OPTION_SOUND_SYSTEM: // 마스터 볼륨 스크롤
{
iScrollPos = m_pHScroll[OHS_SYSTEM]->GetScrollPosWZ();
if( iScrollPos > 0 )
{
fSoundVolume = (float)iScrollPos / (float)c_iSoundMaxVolume;
}
Sound::Instance()->SetMasterVolume( fSoundVolume, FALSE );
// 사운드 저장
m_OptionParam.SetOptionValue( nOptionType::SYSTEM_VOLUME, iScrollPos );
}
break;
case OPTION_SOUND_SPEAKER: // 웨이브 스크롤
{
iScrollPos = m_pHScroll[OHS_SPEAKER]->GetScrollPosWZ();
if( iScrollPos > 0 )
{
fSoundVolume = (float)iScrollPos / (float)c_iSoundMaxVolume;
}
Sound::Instance()->SetWaveVolume( fSoundVolume, FALSE );
// 사운드 저장
m_OptionParam.SetOptionValue( nOptionType::SPEAKER_VOLUME, iScrollPos );
}
break;
}
}
break;
//-----------------------------------------------------------------------------------------
// 사운드 스크롤 바 왼쪽 버튼 클릭
//-----------------------------------------------------------------------------------------
case RT_MSG_SB_LINELEFT:
{
switch( getCtrlIDToPos( pMessage->dwCtrlID ) )
{
case OPTION_SOUND_BG_MUSIC:
{
int OldBGMVolume = m_OptionParam.GetOptionValue(nOptionType::BGM_VOLUME);
int SoundVolume = max(0, OldBGMVolume - 15 );
g_SoundBGM.SetVolume( (float)SoundVolume*0.01f );
if (m_pHScroll[OHS_BGM])
m_pHScroll[OHS_BGM]->SetScrollPosWZ( SoundVolume );
// 사운드 저장
m_OptionParam.SetOptionValue(nOptionType::BGM_VOLUME, SoundVolume );
}
break;
case OPTION_SOUND_AMBIENT_EFFECT_SOUND:
{
int OldAmbientVolume = m_OptionParam.GetOptionValue(nOptionType::AMBIENT_VOLUME);
int SoundVolume = max(0, OldAmbientVolume - 15 );
if (m_pHScroll[OHS_AMBIENT_EFFECT])
m_pHScroll[OHS_AMBIENT_EFFECT]->SetScrollPosWZ( SoundVolume );
// 사운드 저장
m_OptionParam.SetOptionValue(nOptionType::AMBIENT_VOLUME, SoundVolume );
if (g_pMap)
g_pMap->SetAmbientVolume((float)SoundVolume*0.01f);
}
break;
case OPTION_SOUND_EFFECT_SOUND:
{
int OldVolume = m_OptionParam.GetOptionValue(nOptionType::EFFECT_VOLUME);
int Volume = max(0, OldVolume - 15 );
if (m_pHScroll[OHS_EFFECT])
m_pHScroll[OHS_EFFECT]->SetScrollPosWZ( Volume );
// 사운드 저장
m_OptionParam.SetOptionValue(nOptionType::EFFECT_VOLUME, Volume );
}
break;
case OPTION_SOUND_SYSTEM: // 마스터 볼륨 스크롤
{
int OldVolume = m_OptionParam.GetOptionValue(nOptionType::SYSTEM_VOLUME);
int Volume = max(0, OldVolume - 15 );
if (m_pHScroll[OHS_SYSTEM])
m_pHScroll[OHS_SYSTEM]->SetScrollPosWZ( Volume );
// 사운드 저장
m_OptionParam.SetOptionValue(nOptionType::SYSTEM_VOLUME, Volume );
Sound::Instance()->SetMasterVolume( (float)Volume, FALSE );
}
break;
case OPTION_SOUND_SPEAKER: // 웨이브 스크롤
{
int OldVolume = m_OptionParam.GetOptionValue(nOptionType::SPEAKER_VOLUME);
int Volume = max(0, OldVolume - 15 );
if (m_pHScroll[OHS_SPEAKER])
m_pHScroll[OHS_SPEAKER]->SetScrollPosWZ( Volume );
// 사운드 저장
m_OptionParam.SetOptionValue(nOptionType::SPEAKER_VOLUME, Volume );
Sound::Instance()->SetWaveVolume( (float)Volume * 0.01f, FALSE );
}
break;
}
}
break;
//-----------------------------------------------------------------------------------------
// 사운드 스크롤 바 오른쪽 버튼 클릭
//-----------------------------------------------------------------------------------------
case RT_MSG_SB_LINERIGHT:
{
switch( getCtrlIDToPos( pMessage->dwCtrlID ) )
{
case OPTION_SOUND_BG_MUSIC:
{
int OldVolume = m_OptionParam.GetOptionValue(nOptionType::BGM_VOLUME);
int Volume = min(100, OldVolume + 15 );
if (m_pHScroll[OHS_BGM])
m_pHScroll[OHS_BGM]->SetScrollPosWZ( Volume );
m_OptionParam.SetOptionValue( nOptionType::BGM_VOLUME, Volume );
g_SoundBGM.SetVolume( (float)Volume * 0.01f );
}
break;
case OPTION_SOUND_AMBIENT_EFFECT_SOUND:
{
int OldVolume = m_OptionParam.GetOptionValue(nOptionType::AMBIENT_VOLUME);
int Volume = min(100, OldVolume + 15 );
if (m_pHScroll[OHS_AMBIENT_EFFECT])
m_pHScroll[OHS_AMBIENT_EFFECT]->SetScrollPosWZ( Volume );
m_OptionParam.SetOptionValue( nOptionType::AMBIENT_VOLUME, Volume );
if (g_pMap)
g_pMap->SetAmbientVolume((float)Volume * 0.01f);
}
break;
case OPTION_SOUND_EFFECT_SOUND:
{
int OldVolume = m_OptionParam.GetOptionValue(nOptionType::EFFECT_VOLUME);
int Volume = min(100, OldVolume + 15 );
if (m_pHScroll[OHS_EFFECT])
m_pHScroll[OHS_EFFECT]->SetScrollPosWZ( Volume );
m_OptionParam.SetOptionValue( nOptionType::EFFECT_VOLUME, Volume );
}
break;
case OPTION_SOUND_SYSTEM: // 마스터 볼륨 스크롤
{
int OldVolume = m_OptionParam.GetOptionValue(nOptionType::SYSTEM_VOLUME);
int Volume = min(100, OldVolume + 15 );
if (m_pHScroll[OHS_SYSTEM])
m_pHScroll[OHS_SYSTEM]->SetScrollPosWZ( Volume );
m_OptionParam.SetOptionValue( nOptionType::SYSTEM_VOLUME, Volume );
Sound::Instance()->SetMasterVolume( (float)Volume * 0.01f, FALSE );
}
break;
case OPTION_SOUND_SPEAKER: // 웨이브 스크롤
{
int OldVolume = m_OptionParam.GetOptionValue(nOptionType::SPEAKER_VOLUME);
int Volume = min(100, OldVolume + 15 );
if (m_pHScroll[OHS_SPEAKER])
m_pHScroll[OHS_SPEAKER]->SetScrollPosWZ( Volume );
m_OptionParam.SetOptionValue( nOptionType::SPEAKER_VOLUME, Volume );
Sound::Instance()->SetWaveVolume( (float)Volume * 0.01f, FALSE );
}
break;
}
}
break;
//-----------------------------------------------------------------------------------------
// 마우스 왼쪽 클릭 이벤트가 일어났을 때, 어디냐?
//-----------------------------------------------------------------------------------------
case RT_MSG_LBUTTONCLICK:
{
switch( getCtrlIDToPos( pMessage->dwCtrlID ) )
{
//---------------------------------------------------------------------------------
// 체크 박스들~
//---------------------------------------------------------------------------------
case OPTION_SOUND_CHECKBOX_SYSTEM_VOICE:
{
if (m_pCheckBox[OCB_SYSTEM_VOICE])
m_OptionParam.SetOptionValue( nOptionType::USE_SYSTEM_VOICE, m_pCheckBox[OCB_SYSTEM_VOICE]->GetCheckState() );
}
break;
case OPTION_SOUND_CHECKBOX_NPC_VOICE:
{
if (m_pCheckBox[OCB_NPC_VOICE])
m_OptionParam.SetOptionValue( nOptionType::USE_NPC_VOICE, m_pCheckBox[OCB_NPC_VOICE]->GetCheckState() );
}
break;
//---------------------------------------------------------------------------------
// 아래 세개 버튼과 X 종료 버튼
//---------------------------------------------------------------------------------
case OPTION_SOUND_BT_INIT: // 초기화 - 처음 창 열었을 때로 적용
{
m_OptionParam = m_InitOptionParam;
ApplyControl();
SoundSetting();
}
break;
case OPTION_SOUND_BT_OK: // OK 버튼 - 적용의 의미
{
ApplyScroll();
ApplyControl();
Apply();
ShowDialog(FALSE);
}
break;
case OPTION_SOUND_BT_EXIT: // 종료 버튼 - 취소의 의미
{
m_OptionParam = m_InitOptionParam;
ApplyControl();
SoundSetting();
ShowDialog(FALSE);
}
break;
}
}
break;
default:
{
SolarDialog::MessageProc( pMessage );
}
break;
}
}
VOID OptionSoundDialog::NetworkProc( MSG_BASE * pMsg )
{
}
CControlWZ* OptionSoundDialog::getControl( POSTYPE AtPos )
{
assert( AtPos < OPTION_SOUND_MAX );
return GetControlWZ( m_wzId[AtPos] );
}
POSTYPE OptionSoundDialog::getCtrlIDToPos( WzID wzId )
{
for( POSTYPE i = 0 ; i < OPTION_SOUND_MAX ; ++i )
{
if( m_wzId[i] == wzId )
{
return i;
}
}
return OPTION_SOUND_MAX;
}
VOID OptionSoundDialog::OnShowWindow( BOOL val )
{
if( val == TRUE )
{
ApplyControl();
keyMsg msg;
ZeroMemory(&msg,sizeof(msg));
msg.dwType=eDoType_dialog_Option_Sound;
msg.wParam=InterfaceManager::DIALOG_OPTION_SOUND;
msg.DoSomething=GlobalFunc::DoShowWindow;
g_KeyQueueManager.PushBack(msg);
}
else
{
ApplyControl();
g_KeyQueueManager.DeleteMsg(eDoType_dialog_Option_Sound);
}
}
void OptionSoundDialog::ApplyControl( void )
{
//-------------------------------------------------------------------------
// 체크 버튼들 값 설정
//-------------------------------------------------------------------------
if (m_pCheckBox[OCB_SYSTEM_VOICE])
m_pCheckBox[OCB_SYSTEM_VOICE]->SetCheckState( (bool)m_OptionParam.GetOptionValue(nOptionType::USE_SYSTEM_VOICE) );
if (m_pCheckBox[OCB_NPC_VOICE])
m_pCheckBox[OCB_NPC_VOICE]->SetCheckState( (bool)m_OptionParam.GetOptionValue(nOptionType::USE_NPC_VOICE) );
//-------------------------------------------------------------------------
// 사운드 볼륨 조절 바 초기화
//-------------------------------------------------------------------------
// 배경 음악 볼륨 조절 바 초기화
if (m_pHScroll[OHS_BGM])
{
m_pHScroll[OHS_BGM]->SetScrollPosWZ( m_OptionParam.GetOptionValue(nOptionType::BGM_VOLUME) );
}
// 배경 효과음 볼륨 조절 바 초기화
if (m_pHScroll[OHS_AMBIENT_EFFECT])
{
m_pHScroll[OHS_AMBIENT_EFFECT]->SetScrollPosWZ( m_OptionParam.GetOptionValue(nOptionType::AMBIENT_VOLUME) );
}
// 일반 효과음 볼륨 조절 바 초기화
if (m_pHScroll[OHS_EFFECT])
{
m_pHScroll[OHS_EFFECT]->SetScrollPosWZ( m_OptionParam.GetOptionValue(nOptionType::EFFECT_VOLUME) );
}
// 마스터
if (m_pHScroll[OHS_SYSTEM])
{
m_pHScroll[OHS_SYSTEM]->SetScrollPosWZ( m_OptionParam.GetOptionValue(nOptionType::SYSTEM_VOLUME) );
}
// 웨이브
if (m_pHScroll[OHS_SPEAKER])
{
m_pHScroll[OHS_SPEAKER]->SetScrollPosWZ( m_OptionParam.GetOptionValue(nOptionType::SPEAKER_VOLUME) );
}
}
void OptionSoundDialog::ApplyScroll()
{
// 배경 음악 볼륨 조절 바 초기화
if (m_pHScroll[OHS_BGM])
{
m_OptionParam.SetOptionValue( nOptionType::BGM_VOLUME, m_pHScroll[OHS_BGM]->GetScrollPosWZ() );
}
// 배경 효과음 볼륨 조절 바 초기화
if (m_pHScroll[OHS_AMBIENT_EFFECT])
{
m_OptionParam.SetOptionValue( nOptionType::AMBIENT_VOLUME, m_pHScroll[OHS_AMBIENT_EFFECT]->GetScrollPosWZ() );
}
// 일반 효과음 볼륨 조절 바 초기화
if (m_pHScroll[OHS_EFFECT])
{
m_OptionParam.SetOptionValue( nOptionType::EFFECT_VOLUME, m_pHScroll[OHS_EFFECT]->GetScrollPosWZ() );
}
// 마스터
if (m_pHScroll[OHS_SYSTEM])
{
m_OptionParam.SetOptionValue( nOptionType::SYSTEM_VOLUME, m_pHScroll[OHS_SYSTEM]->GetScrollPosWZ() );
}
// 웨이브
if (m_pHScroll[OHS_SPEAKER])
{
m_OptionParam.SetOptionValue( nOptionType::SPEAKER_VOLUME, m_pHScroll[OHS_SPEAKER]->GetScrollPosWZ() );
}
}
BOOL OptionSoundDialog::Apply( BOOL bCheckApply ,BOOL bProgramInit)
{
//---------------------------------------------------------------------------------------------
// 이 아래로 각종 설정 기능을 작업해 주시오.
//---------------------------------------------------------------------------------------------
SoundSetting();
// Copy
OptionParam tempOption = GAMEOPTION->GetGameOption();
tempOption.SetOptionValue( nOptionType::USE_NPC_VOICE, m_OptionParam.GetOptionValue(nOptionType::USE_NPC_VOICE ) );
tempOption.SetOptionValue( nOptionType::USE_SYSTEM_VOICE, m_OptionParam.GetOptionValue(nOptionType::USE_SYSTEM_VOICE ) );
tempOption.SetOptionValue( nOptionType::BGM_VOLUME, m_OptionParam.GetOptionValue(nOptionType::BGM_VOLUME ) );
tempOption.SetOptionValue( nOptionType::AMBIENT_VOLUME, m_OptionParam.GetOptionValue(nOptionType::AMBIENT_VOLUME ) );
tempOption.SetOptionValue( nOptionType::EFFECT_VOLUME, m_OptionParam.GetOptionValue(nOptionType::EFFECT_VOLUME ) );
tempOption.SetOptionValue( nOptionType::SYSTEM_VOLUME, m_OptionParam.GetOptionValue(nOptionType::SYSTEM_VOLUME ) );
tempOption.SetOptionValue( nOptionType::SPEAKER_VOLUME, m_OptionParam.GetOptionValue(nOptionType::SPEAKER_VOLUME ) );
m_InitOptionParam = tempOption;
GAMEOPTION->SetGameOption( tempOption );
if( bProgramInit == FALSE )
{
GAMEOPTION->Save();
}
return TRUE;
}
void OptionSoundDialog::SoundSetting()
{
// 사운드 볼륨 조절
Sound::Instance()->SetBGMVolume( m_OptionParam.GetOptionValueFloat( nOptionType::BGM_VOLUME ) );
g_SoundBGM.SetVolume( m_OptionParam.GetOptionValueFloat( nOptionType::BGM_VOLUME) );
Sound::Instance()->SetAmbientEffectVolume( m_OptionParam.GetOptionValueFloat( nOptionType::AMBIENT_VOLUME ) );
if (g_pMap)
{
g_pMap->SetAmbientVolume(m_OptionParam.GetOptionValueFloat( nOptionType::AMBIENT_VOLUME) );
}
Sound::Instance()->SetEffectVolume( m_OptionParam.GetOptionValueFloat( nOptionType::EFFECT_VOLUME ) );
Sound::Instance()->SetMasterVolume( m_OptionParam.GetOptionValueFloat( nOptionType::SYSTEM_VOLUME), TRUE );
Sound::Instance()->SetWaveVolume( m_OptionParam.GetOptionValueFloat( nOptionType::SPEAKER_VOLUME), TRUE );
}
#endif
#pragma warning ( pop )