/[cvs]/rabit/RaBit's Rapid Racers/Module_Sound.bas
ViewVC logotype

Annotation of /rabit/RaBit's Rapid Racers/Module_Sound.bas

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations)
Tue Mar 12 21:23:10 2002 UTC (22 years, 9 months ago) by cvsrabit
Branch point for: NFO, MAIN
Initial revision

1 cvsrabit 1.1 Attribute VB_Name = "Module_Sound"
2     Option Explicit
3    
4     Global clDSPrimaryBuffer As DirectSoundPrimaryBuffer8
5    
6     'Global clDSSoundBuffer1 As DirectSoundSecondaryBuffer8
7     'Global clDS3DBuffer1 As DirectSound3DBuffer8
8     '
9     'Global clDSSoundBuffer2 As DirectSoundSecondaryBuffer8
10     'Global clDS3DBuffer2 As DirectSound3DBuffer8
11     '
12     'Global clDSSoundBuffer3 As DirectSoundSecondaryBuffer8
13     'Global clDS3DBuffer3 As DirectSound3DBuffer8
14    
15     Global clDSListener As DirectSound3DListener8
16     '
17    
18     Public Function RenderSounds() As Boolean
19    
20     Dim lPlayerIndex As Long
21    
22     Dim dsbc As DSBCAPS
23     Dim sgTireScream As Single
24    
25     Dim clPlayer As Class_Player
26    
27     Dim sgPlayerVelocityX As Single
28     Dim sgPlayerVelocityZ As Single
29    
30     For lPlayerIndex = 1 To clGame.Col_clPlayers.Count
31    
32     Set clPlayer = clGame.Col_clPlayers(lPlayerIndex)
33    
34     With clPlayer
35    
36     ' clDSPrimaryBuffer.SetVolume Form_Start.HScroll_Volume.Value
37    
38     ' Set clPlayer = clGame.Col_clPlayers("p" & lLocalPlayerHandle)
39    
40     sgPlayerVelocityX = .sgSpeed * Sin(.sgAngleY * Const_sgDeg2Rad)
41     sgPlayerVelocityZ = .sgSpeed * -Cos(.sgAngleY * Const_sgDeg2Rad)
42    
43     ' clDS3DBuffer1.SetPosition clPlayer.sgPosX, clPlayer.sgPosY, clPlayer.sgPosZ, DS3D_IMMEDIATE
44     ' clDS3DBuffer1.SetVelocity sgPlayerVelocityX, 0, sgPlayerVelocityZ, DS3D_IMMEDIATE
45     ' clDS3DBuffer2.SetPosition clPlayer.sgPosX, clPlayer.sgPosY, clPlayer.sgPosZ, DS3D_IMMEDIATE
46     ' clDS3DBuffer2.SetVelocity sgPlayerVelocityX, 0, sgPlayerVelocityZ, DS3D_IMMEDIATE
47     ' clDS3DBuffer3.SetPosition clPlayer.sgPosX, clPlayer.sgPosY, clPlayer.sgPosZ, DS3D_IMMEDIATE
48     ' clDS3DBuffer3.SetVelocity sgPlayerVelocityX, 0, sgPlayerVelocityZ, DS3D_IMMEDIATE
49    
50     .DS3DBuffer(1).SetVelocity sgPlayerVelocityX, 0, sgPlayerVelocityZ, DS3D_IMMEDIATE
51     .DS3DBuffer(2).SetVelocity sgPlayerVelocityX, 0, sgPlayerVelocityZ, DS3D_IMMEDIATE
52     .DS3DBuffer(3).SetVelocity sgPlayerVelocityX, 0, sgPlayerVelocityZ, DS3D_IMMEDIATE
53    
54     'If lCamMode = 4 Then
55     If True Then
56    
57     clDSListener.SetVelocity 0, 0, 0, DS3D_IMMEDIATE
58     clDSListener.SetDopplerFactor 0.1, DS3D_IMMEDIATE
59    
60     Else
61    
62     clDSListener.SetVelocity sgPlayerVelocityX, 0, sgPlayerVelocityZ, DS3D_IMMEDIATE
63     clDSListener.SetDopplerFactor 0, DS3D_IMMEDIATE
64    
65     End If
66    
67     .DSSoundBuffer(1).Play DSBPLAY_LOOPING
68     .DSSoundBuffer(1).GetCaps dsbc
69    
70     If Rnd > (0.96 + 0.015 * .sgSpeedRate) Then
71    
72     .DSSoundBuffer(1).SetCurrentPosition CLng(Rnd * dsbc.lBufferBytes)
73    
74     End If
75    
76     .DSSoundBuffer(1).SetVolume 0.9 * Form_Start.HScroll_Volume.Value - 0.1 * 8192
77     ' clDSSoundBuffer1.SetVolume -512
78     .DSSoundBuffer(1).SetFrequency 22050 + 30000 * Abs(.sgSpeedRate)
79    
80     sgTireScream = Abs(.sgSpeedRate) * Abs(.sgSteeringWheelPosition)
81    
82     If sgTireScream > 0.01 And Not clPlayer.bOffroad Then
83    
84     .DSSoundBuffer(2).SetVolume -8192 + sgTireScream * (8192 + Form_Start.HScroll_Volume.Value)
85     ' clDSSoundBuffer2.SetVolume -8192 + sgTireScream * 7700
86     .DSSoundBuffer(2).Play DSBPLAY_LOOPING
87    
88     Else
89    
90     .DSSoundBuffer(2).SetVolume -8192
91     .DSSoundBuffer(2).Stop
92    
93     End If
94    
95     'clDSSoundBuffer3.Stop
96    
97     If (.lPlayerControlFlags And ePCF_Horn) = ePCF_Horn Then
98    
99     .DSSoundBuffer(3).Play DSBPLAY_DEFAULT
100     'clDSSoundBuffer3.SetCurrentPosition 0
101    
102     ' Else
103    
104     End If
105    
106     .DSSoundBuffer(3).SetVolume 0.95 * Form_Start.HScroll_Volume.Value - 0.05 * 8192
107     ' clDSSoundBuffer3.SetVolume -512
108    
109     End With
110    
111     Next lPlayerIndex
112    
113     End Function
114    
115     Public Sub InitialiseSound()
116    
117     Dim tpSoundBufferDescription As DSBUFFERDESC
118    
119     Dim tpDSBufferDescription As DSBUFFERDESC
120    
121     tpDSBufferDescription.lFlags = DSBCAPS_PRIMARYBUFFER Or DSBCAPS_CTRL3D Or DSBCAPS_CTRLVOLUME ' Or DSBCAPS_CTRLFREQUENCY Or DSBCAPS_CTRLPAN
122     Set clDSPrimaryBuffer = clSystem.DS8.CreatePrimarySoundBuffer(tpDSBufferDescription)
123    
124     ' clDSPrimaryBuffer.SetVolume Form_Start.HScroll_Volume.Value
125    
126     Set clDSListener = clDSPrimaryBuffer.GetDirectSound3DListener
127    
128     With clDSListener
129    
130     .SetRolloffFactor 0.02, DS3D_IMMEDIATE
131    
132     End With
133    
134     '' tpSoundBufferDescription.lFlags = DSBCAPS_STATIC Or DSBCAPS_CTRLVOLUME Or DSBCAPS_CTRLFREQUENCY ' Or DSBCAPS_CTRLPAN Or DSBCAPS_LOCSOFTWARE
135     ' tpSoundBufferDescription.lFlags = DSBCAPS_CTRL3D Or DSBCAPS_LOCSOFTWARE Or DSBCAPS_CTRLVOLUME Or DSBCAPS_CTRLFREQUENCY ' Or DSBCAPS_CTRLVOLUME Or DSBCAPS_CTRLPAN
136     ' tpSoundBufferDescription.guid3DAlgorithm = ""
137     ' Set clDSSoundBuffer1 = clSystem.DS8.CreateSoundBufferFromFile(App.Path + "\Audio\motor1.wav", tpSoundBufferDescription)
138     ' Set clDS3DBuffer1 = clDSSoundBuffer1.GetDirectSound3DBuffer
139     '
140     '' tpSoundBufferDescription.lFlags = DSBCAPS_STATIC Or DSBCAPS_CTRLVOLUME
141     ' tpSoundBufferDescription.lFlags = DSBCAPS_CTRL3D Or DSBCAPS_LOCSOFTWARE Or DSBCAPS_CTRLVOLUME
142     ' Set clDSSoundBuffer2 = clSystem.DS8.CreateSoundBufferFromFile(App.Path + "\Audio\brake1.wav", tpSoundBufferDescription)
143     ' Set clDS3DBuffer2 = clDSSoundBuffer2.GetDirectSound3DBuffer
144     ' Set clDSSoundBuffer3 = clSystem.DS8.CreateSoundBufferFromFile(App.Path + "\Audio\horn1.wav", tpSoundBufferDescription)
145     ' Set clDS3DBuffer3 = clDSSoundBuffer3.GetDirectSound3DBuffer
146    
147     ' clDSSoundBuffer1.SetVolume -8192
148     ' clDSSoundBuffer2.SetVolume -8192
149     ' clDSSoundBuffer3.SetVolume -8192
150    
151     End Sub

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed