X operations(XOPS)に非常に近いFPSゲームを制作・リメイクし、成果物をオープンソースとして公開することを目的としたプロジェクトです。
| Revision | 225 (tree) |
|---|---|
| Time | 2019-12-31 01:38:54 |
| Author | |
Configの「ENABLE SOUND」設定に対応するためマスターボリューム機能を追加(ezds版はR220から復活、DirectSound版は新規対応)
| @@ -119,7 +119,7 @@ | ||
| 119 | 119 | //! @param volume 再生音量 (0.0=無音 1.0=100%) |
| 120 | 120 | void SoundControl::SetVolume(float volume) |
| 121 | 121 | { |
| 122 | - // | |
| 122 | + mastervolume = volume; | |
| 123 | 123 | } |
| 124 | 124 | |
| 125 | 125 | //! @brief カメラの座標と角度を設定 |
| @@ -481,7 +481,8 @@ | ||
| 481 | 481 | if( volume <= -100 ){ return DSBVOLUME_MIN; } |
| 482 | 482 | if( volume >= 100 ){ return DSBVOLUME_MAX; } |
| 483 | 483 | |
| 484 | - float volume2 = 1.0f/200 * (volume + 100); | |
| 484 | + //float volume2 = 1.0f/200 * (volume + 100); | |
| 485 | + float volume2 = 1.0f/200 * (volume + 100) * mastervolume; | |
| 485 | 486 | int retn = (int)((DSBVOLUME_MIN-DSBVOLUME_MAX) * (1.0f - volume2)); |
| 486 | 487 | return retn; |
| 487 | 488 | } |
| @@ -132,7 +132,7 @@ | ||
| 132 | 132 | //! @param volume 再生音量 (0.0=無音 1.0=100%) |
| 133 | 133 | void SoundControl::SetVolume(float volume) |
| 134 | 134 | { |
| 135 | - //mastervolume = volume; | |
| 135 | + mastervolume = volume; | |
| 136 | 136 | } |
| 137 | 137 | |
| 138 | 138 | //! @brief カメラの座標と角度を設定 |
| @@ -211,8 +211,8 @@ | ||
| 211 | 211 | |
| 212 | 212 | //サウンドを再生 |
| 213 | 213 | if( DSplay == NULL ){ return 0; } |
| 214 | - //return DSplay(id, (int)(mastervolume * volume), pan); | |
| 215 | - return DSplay(id, volume, pan); | |
| 214 | + //return DSplay(id, volume, pan); | |
| 215 | + return DSplay(id, (int)(mastervolume * (volume + 100)) - 100, pan); | |
| 216 | 216 | } |
| 217 | 217 | |
| 218 | 218 | //! @brief サウンドを再生(3D再生) |
| @@ -71,6 +71,7 @@ | ||
| 71 | 71 | LPDIRECTSOUND8 pDSound; //!< DIRECTSOUND8のポインタ |
| 72 | 72 | LPDIRECTSOUNDBUFFER pDSBuffer[MAX_LOADSOUND][MAX_SOUNDLISTS]; //!< セカンダリーバッファー |
| 73 | 73 | LPDIRECTSOUND3DLISTENER8 p3DListener; //!< リスナー |
| 74 | + float mastervolume; //!< 音量 | |
| 74 | 75 | |
| 75 | 76 | bool CheckSoundFile(char* filename, int *filesize, int *fileoffset, WAVEFORMATEX** pwfex); |
| 76 | 77 | int GetDSVolume(int volume); |
| @@ -101,7 +102,7 @@ | ||
| 101 | 102 | float camera_y; //!< カメラ座標 |
| 102 | 103 | float camera_z; //!< カメラ座標 |
| 103 | 104 | float camera_rx; //!< カメラX軸角度 |
| 104 | - //float mastervolume; //!< 音量 | |
| 105 | + float mastervolume; //!< 音量 | |
| 105 | 106 | |
| 106 | 107 | |
| 107 | 108 | bool CheckSourceDist(float x, float y, float z, bool near, float *out_dist); |