Initial commit: ROW Client source code
Game client codebase including: - CharacterActionControl: Character and creature management - GlobalScript: Network, items, skills, quests, utilities - RYLClient: Main client application with GUI and event handlers - Engine: 3D rendering engine (RYLGL) - MemoryManager: Custom memory allocation - Library: Third-party dependencies (DirectX, boost, etc.) - Tools: Development utilities 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
Attribute VB_Name = "modAudio"
|
||||
Option Explicit
|
||||
|
||||
'We will keep our Audio vars here
|
||||
Dim dmPerf As DirectMusicPerformance8
|
||||
Dim dmLoad As DirectMusicLoader8
|
||||
Dim dmSegBank() As DirectMusicSegment8
|
||||
Dim dmSegHit() As DirectMusicSegment8
|
||||
Dim dmScore As DirectMusicSegment8
|
||||
|
||||
Public glNumBankSounds As Long
|
||||
Public glNumHitSounds As Long
|
||||
|
||||
Public Sub SetNumberSounds()
|
||||
Dim sFile As String
|
||||
Dim lCount As Long
|
||||
|
||||
lCount = 1
|
||||
sFile = Dir$(App.path & "\sounds\bank" & format$(CStr(lCount), "00") & ".wav")
|
||||
Do While sFile <> vbNullString
|
||||
lCount = lCount + 1
|
||||
sFile = Dir$(App.path & "\sounds\bank" & format$(CStr(lCount), "00") & ".wav")
|
||||
Loop
|
||||
glNumBankSounds = lCount - 1
|
||||
lCount = 1
|
||||
sFile = Dir$(App.path & "\sounds\hit" & format$(CStr(lCount), "00") & ".wav")
|
||||
Do While sFile <> vbNullString
|
||||
lCount = lCount + 1
|
||||
sFile = Dir$(App.path & "\sounds\hit" & format$(CStr(lCount), "00") & ".wav")
|
||||
Loop
|
||||
glNumHitSounds = lCount - 1
|
||||
End Sub
|
||||
|
||||
Public Function InitAudio() As Boolean
|
||||
|
||||
Dim lCount As Long, dma As DMUS_AUDIOPARAMS
|
||||
|
||||
On Error GoTo FailedInit
|
||||
InitAudio = True
|
||||
'Create our objects
|
||||
Set dmPerf = dx.DirectMusicPerformanceCreate
|
||||
Set dmLoad = dx.DirectMusicLoaderCreate
|
||||
'Get the total number of sounds we have for each type of sound
|
||||
SetNumberSounds
|
||||
|
||||
'Using that information create an array of segments
|
||||
ReDim dmSegBank(1 To glNumBankSounds)
|
||||
ReDim dmSegHit(1 To glNumHitSounds)
|
||||
|
||||
'Create a default audio path
|
||||
dmPerf.InitAudio frmAir.hwnd, DMUS_AUDIOF_ALL, dma, , DMUS_APATH_SHARED_STEREOPLUSREVERB, 128
|
||||
'Load each of the sounds
|
||||
For lCount = 1 To glNumBankSounds
|
||||
Set dmSegBank(lCount) = dmLoad.LoadSegment(App.path & "\sounds\bank" & format$(CStr(lCount), "00") & ".wav")
|
||||
dmSegBank(lCount).Download dmPerf.GetDefaultAudioPath
|
||||
Next
|
||||
For lCount = 1 To glNumHitSounds
|
||||
Set dmSegHit(lCount) = dmLoad.LoadSegment(App.path & "\sounds\hit" & format$(CStr(lCount), "00") & ".wav")
|
||||
dmSegHit(lCount).Download dmPerf.GetDefaultAudioPath
|
||||
Next
|
||||
Set dmScore = dmLoad.LoadSegment(App.path & "\sounds\score.wav")
|
||||
dmScore.Download dmPerf.GetDefaultAudioPath
|
||||
Exit Function
|
||||
|
||||
FailedInit:
|
||||
InitAudio = False
|
||||
End Function
|
||||
|
||||
Public Sub PlayRandomBankSound()
|
||||
Dim lRnd As Long
|
||||
|
||||
'Pick a valid 'Bank' sound randomly and play it
|
||||
Randomize
|
||||
lRnd = CLng(Rnd * glNumBankSounds) + 1
|
||||
Do While lRnd < 1 Or lRnd > glNumBankSounds
|
||||
lRnd = CLng(Rnd * glNumBankSounds) + 1
|
||||
Loop
|
||||
dmPerf.PlaySegmentEx dmSegBank(lRnd), DMUS_SEGF_SECONDARY, 0
|
||||
End Sub
|
||||
|
||||
Public Sub PlayRandomHitSound()
|
||||
Dim lRnd As Long
|
||||
|
||||
'Pick a valid 'Hit' sound randomly and play it
|
||||
Randomize
|
||||
lRnd = CLng(Rnd * glNumHitSounds) + 1
|
||||
Do While lRnd < 1 Or lRnd > glNumHitSounds
|
||||
lRnd = CLng(Rnd * glNumHitSounds) + 1
|
||||
Loop
|
||||
dmPerf.PlaySegmentEx dmSegHit(lRnd), DMUS_SEGF_SECONDARY, 0
|
||||
End Sub
|
||||
|
||||
Public Sub PlayScoreSound()
|
||||
'Play the sound that happens when we score
|
||||
dmPerf.PlaySegmentEx dmScore, DMUS_SEGF_SECONDARY, 0
|
||||
End Sub
|
||||
|
||||
Public Sub CleanupAudio()
|
||||
|
||||
On Error Resume Next
|
||||
Dim lCount As Long
|
||||
|
||||
'Unload all of our sounds off of the audio path and destroy them
|
||||
For lCount = 1 To glNumBankSounds
|
||||
dmSegBank(lCount).Unload dmPerf.GetDefaultAudioPath
|
||||
Set dmSegBank(lCount) = Nothing
|
||||
Next
|
||||
For lCount = 1 To glNumHitSounds
|
||||
dmSegHit(lCount).Unload dmPerf.GetDefaultAudioPath
|
||||
Set dmSegHit(lCount) = Nothing
|
||||
Next
|
||||
If Not (dmScore Is Nothing) Then dmScore.Unload dmPerf.GetDefaultAudioPath
|
||||
Set dmScore = Nothing
|
||||
|
||||
'Destroy the rest of the objects
|
||||
Set dmPerf = Nothing
|
||||
Set dmLoad = Nothing
|
||||
End Sub
|
||||
Reference in New Issue
Block a user