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,378 @@
|
||||
VERSION 5.00
|
||||
Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
|
||||
Begin VB.Form frmSimple
|
||||
BorderStyle = 3 'Fixed Dialog
|
||||
Caption = "Simple Audio Path"
|
||||
ClientHeight = 4380
|
||||
ClientLeft = 45
|
||||
ClientTop = 330
|
||||
ClientWidth = 7245
|
||||
Icon = "frmSimple.frx":0000
|
||||
LinkTopic = "Form1"
|
||||
MaxButton = 0 'False
|
||||
MinButton = 0 'False
|
||||
ScaleHeight = 4380
|
||||
ScaleWidth = 7245
|
||||
StartUpPosition = 3 'Windows Default
|
||||
Begin VB.Frame Frame3
|
||||
Caption = "Description"
|
||||
Height = 1695
|
||||
Left = 3660
|
||||
TabIndex = 17
|
||||
Top = 2220
|
||||
Width = 3495
|
||||
Begin VB.Label lbl
|
||||
BackStyle = 0 'Transparent
|
||||
Caption = $"frmSimple.frx":0442
|
||||
Height = 1335
|
||||
Index = 4
|
||||
Left = 60
|
||||
TabIndex = 18
|
||||
Top = 240
|
||||
Width = 3375
|
||||
End
|
||||
End
|
||||
Begin VB.Frame Frame2
|
||||
Caption = "3D Positioning of AudioPath"
|
||||
Height = 1695
|
||||
Left = 60
|
||||
TabIndex = 6
|
||||
Top = 2220
|
||||
Width = 3555
|
||||
Begin MSComctlLib.Slider sldX
|
||||
Height = 195
|
||||
Left = 300
|
||||
TabIndex = 10
|
||||
Top = 420
|
||||
Width = 2595
|
||||
_ExtentX = 4577
|
||||
_ExtentY = 344
|
||||
_Version = 393216
|
||||
LargeChange = 2
|
||||
Min = -20
|
||||
Max = 20
|
||||
TickFrequency = 4
|
||||
End
|
||||
Begin MSComctlLib.Slider sldY
|
||||
Height = 195
|
||||
Left = 300
|
||||
TabIndex = 11
|
||||
Top = 840
|
||||
Width = 2595
|
||||
_ExtentX = 4577
|
||||
_ExtentY = 344
|
||||
_Version = 393216
|
||||
LargeChange = 2
|
||||
Min = -20
|
||||
Max = 20
|
||||
TickFrequency = 4
|
||||
End
|
||||
Begin MSComctlLib.Slider SldZ
|
||||
Height = 195
|
||||
Left = 300
|
||||
TabIndex = 12
|
||||
Top = 1260
|
||||
Width = 2535
|
||||
_ExtentX = 4471
|
||||
_ExtentY = 344
|
||||
_Version = 393216
|
||||
LargeChange = 2
|
||||
Min = -20
|
||||
Max = 20
|
||||
TickFrequency = 4
|
||||
End
|
||||
Begin VB.Label lblZ
|
||||
Alignment = 2 'Center
|
||||
BackStyle = 0 'Transparent
|
||||
Height = 255
|
||||
Left = 2940
|
||||
TabIndex = 21
|
||||
Top = 1260
|
||||
Width = 555
|
||||
End
|
||||
Begin VB.Label lblY
|
||||
Alignment = 2 'Center
|
||||
BackStyle = 0 'Transparent
|
||||
Height = 255
|
||||
Left = 2940
|
||||
TabIndex = 20
|
||||
Top = 840
|
||||
Width = 555
|
||||
End
|
||||
Begin VB.Label lblX
|
||||
Alignment = 2 'Center
|
||||
BackStyle = 0 'Transparent
|
||||
Height = 255
|
||||
Left = 2940
|
||||
TabIndex = 19
|
||||
Top = 420
|
||||
Width = 555
|
||||
End
|
||||
Begin VB.Label Label1
|
||||
BackStyle = 0 'Transparent
|
||||
Caption = "Z"
|
||||
Height = 255
|
||||
Index = 2
|
||||
Left = 120
|
||||
TabIndex = 9
|
||||
Top = 1260
|
||||
Width = 135
|
||||
End
|
||||
Begin VB.Label Label1
|
||||
BackStyle = 0 'Transparent
|
||||
Caption = "Y"
|
||||
Height = 255
|
||||
Index = 1
|
||||
Left = 120
|
||||
TabIndex = 8
|
||||
Top = 840
|
||||
Width = 135
|
||||
End
|
||||
Begin VB.Label Label1
|
||||
BackStyle = 0 'Transparent
|
||||
Caption = "X"
|
||||
Height = 255
|
||||
Index = 0
|
||||
Left = 120
|
||||
TabIndex = 7
|
||||
Top = 420
|
||||
Width = 135
|
||||
End
|
||||
End
|
||||
Begin VB.CommandButton cmdExit
|
||||
Cancel = -1 'True
|
||||
Caption = "E&xit"
|
||||
Height = 375
|
||||
Left = 5760
|
||||
TabIndex = 5
|
||||
Top = 3960
|
||||
Width = 1395
|
||||
End
|
||||
Begin VB.Frame Frame1
|
||||
Caption = "DirectMusic Segments"
|
||||
Height = 1995
|
||||
Left = 60
|
||||
TabIndex = 0
|
||||
Top = 180
|
||||
Width = 7095
|
||||
Begin VB.CommandButton cmdSeg
|
||||
Caption = "Rude Awakening"
|
||||
Height = 315
|
||||
Index = 3
|
||||
Left = 120
|
||||
TabIndex = 4
|
||||
Top = 1500
|
||||
Width = 1395
|
||||
End
|
||||
Begin VB.CommandButton cmdSeg
|
||||
Caption = "Mumble"
|
||||
Height = 315
|
||||
Index = 2
|
||||
Left = 120
|
||||
TabIndex = 3
|
||||
Top = 1080
|
||||
Width = 1395
|
||||
End
|
||||
Begin VB.CommandButton cmdSeg
|
||||
Caption = "Snore"
|
||||
Height = 315
|
||||
Index = 1
|
||||
Left = 120
|
||||
TabIndex = 2
|
||||
Top = 660
|
||||
Width = 1395
|
||||
End
|
||||
Begin VB.CommandButton cmdSeg
|
||||
Caption = "Lullaby"
|
||||
Height = 315
|
||||
Index = 0
|
||||
Left = 120
|
||||
TabIndex = 1
|
||||
Top = 240
|
||||
Width = 1395
|
||||
End
|
||||
Begin VB.Label lbl
|
||||
BackStyle = 0 'Transparent
|
||||
Caption = "Segment file. Stops all sound on audio path. Plays as primary segment."
|
||||
Height = 255
|
||||
Index = 3
|
||||
Left = 1620
|
||||
TabIndex = 16
|
||||
Top = 1560
|
||||
Width = 5295
|
||||
End
|
||||
Begin VB.Label lbl
|
||||
BackStyle = 0 'Transparent
|
||||
Caption = "Wave file. Overlaps if pressed twice. Plays as secondary segment."
|
||||
Height = 255
|
||||
Index = 2
|
||||
Left = 1620
|
||||
TabIndex = 15
|
||||
Top = 1140
|
||||
Width = 5295
|
||||
End
|
||||
Begin VB.Label lbl
|
||||
BackStyle = 0 'Transparent
|
||||
Caption = "Segment file. Overlaps if pressed twice. Plays as secondary segment."
|
||||
Height = 255
|
||||
Index = 1
|
||||
Left = 1620
|
||||
TabIndex = 14
|
||||
Top = 720
|
||||
Width = 5295
|
||||
End
|
||||
Begin VB.Label lbl
|
||||
BackStyle = 0 'Transparent
|
||||
Caption = "Segment file. Starts over if pressed twice. Plays as primary segment."
|
||||
Height = 255
|
||||
Index = 0
|
||||
Left = 1620
|
||||
TabIndex = 13
|
||||
Top = 300
|
||||
Width = 5295
|
||||
End
|
||||
End
|
||||
End
|
||||
Attribute VB_Name = "frmSimple"
|
||||
Attribute VB_GlobalNameSpace = False
|
||||
Attribute VB_Creatable = False
|
||||
Attribute VB_PredeclaredId = True
|
||||
Attribute VB_Exposed = False
|
||||
Option Explicit
|
||||
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||||
'
|
||||
' Copyright (C) 1999-2001 Microsoft Corporation. All Rights Reserved.
|
||||
'
|
||||
' File: frmSimple.frm
|
||||
'
|
||||
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||||
|
||||
Private dx As New DirectX8
|
||||
Private dmPerf As DirectMusicPerformance8
|
||||
Private dmLoad As DirectMusicLoader8
|
||||
Private dmPath As DirectMusicAudioPath8
|
||||
Private dmSeg(0 To 3) As DirectMusicSegment8
|
||||
|
||||
Private sMediaFolder As String
|
||||
|
||||
Private Sub cmdExit_Click()
|
||||
Unload Me
|
||||
End Sub
|
||||
|
||||
Private Sub cmdSeg_Click(Index As Integer)
|
||||
If Not (dmSeg(Index) Is Nothing) Then
|
||||
If Index = 0 Then
|
||||
'Lullaby theme. This should play as a primary segment.
|
||||
dmPerf.PlaySegmentEx dmSeg(Index), DMUS_SEGF_DEFAULT, 0, Nothing, dmPath
|
||||
ElseIf Index = 3 Then
|
||||
'Rude awakening. Notice that this also passes the audio path in pFrom, indicating that
|
||||
'all segments currently playing on the audio path should be stopped at the exact time
|
||||
'this starts.
|
||||
dmPerf.PlaySegmentEx dmSeg(Index), 0, 0, dmPath, dmPath
|
||||
ElseIf Index < 3 Then
|
||||
'Sound effects. These play as secondary segments so they can be triggered multiple
|
||||
'times and will layer on top.
|
||||
dmPerf.PlaySegmentEx dmSeg(Index), DMUS_SEGF_SECONDARY Or DMUS_SEGF_DEFAULT, 0, , dmPath
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub Form_Load()
|
||||
SetPosition
|
||||
InitAudio
|
||||
End Sub
|
||||
|
||||
Private Sub InitAudio()
|
||||
On Error GoTo FailedInit
|
||||
Dim dma As DMUS_AUDIOPARAMS
|
||||
'Create our objects
|
||||
Set dmPerf = dx.DirectMusicPerformanceCreate
|
||||
Set dmLoad = dx.DirectMusicLoaderCreate
|
||||
'Initialize our audio
|
||||
dmPerf.InitAudio Me.hWnd, DMUS_AUDIOF_ALL, dma
|
||||
|
||||
Set dmPath = dmPerf.CreateStandardAudioPath(DMUS_APATH_DYNAMIC_3D, 64, True)
|
||||
sMediaFolder = FindMediaDir("audiopath1.sgt")
|
||||
If sMediaFolder = vbNullString Then sMediaFolder = AddDirSep(CurDir)
|
||||
dmLoad.SetSearchDirectory sMediaFolder
|
||||
'Now load the segments
|
||||
Set dmSeg(0) = dmLoad.LoadSegment(sMediaFolder & "audiopath1.sgt")
|
||||
Set dmSeg(1) = dmLoad.LoadSegment(sMediaFolder & "audiopath2.sgt")
|
||||
Set dmSeg(2) = dmLoad.LoadSegment(sMediaFolder & "audiopath3.wav")
|
||||
Set dmSeg(3) = dmLoad.LoadSegment(sMediaFolder & "audiopath4.sgt")
|
||||
|
||||
'Download our segments onto the audio path
|
||||
Dim lCount As Long
|
||||
For lCount = 0 To 3
|
||||
dmSeg(lCount).Download dmPath
|
||||
Next
|
||||
Exit Sub
|
||||
|
||||
FailedInit:
|
||||
MsgBox "Could not initialize DirectMusic." & vbCrLf & "This sample will exit.", vbOKOnly Or vbInformation, "Exiting..."
|
||||
Unload Me
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub Cleanup()
|
||||
Dim lCount As Long
|
||||
|
||||
'Unload all of our segments
|
||||
For lCount = 0 To 3
|
||||
If Not (dmSeg(lCount) Is Nothing) Then
|
||||
dmSeg(lCount).Unload dmPath
|
||||
End If
|
||||
Set dmSeg(lCount) = Nothing
|
||||
Next
|
||||
'Destroy everything
|
||||
Set dmPath = Nothing
|
||||
dmPerf.CloseDown
|
||||
Set dmPerf = Nothing
|
||||
Set dmLoad = Nothing
|
||||
End Sub
|
||||
|
||||
Private Sub SetPosition()
|
||||
Dim dsb As DirectSound3DBuffer8
|
||||
|
||||
If Not (dmPath Is Nothing) Then
|
||||
'First, get the 3D interface from the buffer by using GetObjectInPath.
|
||||
Set dsb = dmPath.GetObjectinPath(DMUS_PCHANNEL_ALL, DMUS_PATH_BUFFER, 0, GUID_ALL, 0, IID_DirectSound3DBuffer)
|
||||
If Not (dsb Is Nothing) Then
|
||||
'Then, set the coordinates
|
||||
dsb.SetPosition sldX.Value, sldY.Value, SldZ.Value, DS3D_IMMEDIATE
|
||||
End If
|
||||
End If
|
||||
'Update the text boxes as well
|
||||
lblX.Caption = CStr(sldX.Value)
|
||||
lblY.Caption = CStr(sldY.Value)
|
||||
lblZ.Caption = CStr(SldZ.Value)
|
||||
End Sub
|
||||
|
||||
Private Sub Form_Unload(Cancel As Integer)
|
||||
Cleanup
|
||||
End Sub
|
||||
|
||||
'Update the 3D Positions when any of the scroll bars move
|
||||
Private Sub sldX_Click()
|
||||
SetPosition
|
||||
End Sub
|
||||
|
||||
Private Sub sldX_Scroll()
|
||||
SetPosition
|
||||
End Sub
|
||||
|
||||
Private Sub sldY_Click()
|
||||
SetPosition
|
||||
End Sub
|
||||
|
||||
Private Sub sldY_Scroll()
|
||||
SetPosition
|
||||
End Sub
|
||||
|
||||
Private Sub SldZ_Click()
|
||||
SetPosition
|
||||
End Sub
|
||||
|
||||
Private Sub SldZ_Scroll()
|
||||
SetPosition
|
||||
End Sub
|
||||
Binary file not shown.
@@ -0,0 +1,58 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// Sample Name: SimpleAudioPath Sample
|
||||
//
|
||||
// Copyright (C) 1999-2001 Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// GM/GS<47> Sound Set Copyright <20>1996, Roland Corporation U.S.
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Description
|
||||
===========
|
||||
The AudioPath sample demonstrates how different sounds can be played
|
||||
on an audiopath, and how the parameters of all sounds are affected
|
||||
by changes made on the audiopath.
|
||||
|
||||
Path
|
||||
====
|
||||
Source: DXSDK\Samples\Multimedia\VBSamples\DirectMusic\SimpleAudioPath
|
||||
|
||||
Executable: DXSDK\Samples\Multimedia\VBSamples\DirectMusic\Bin
|
||||
|
||||
User's Guide
|
||||
============
|
||||
Click Lullaby, Snore, and Mumble to play different sounds. Adjust the
|
||||
3-D position of the sounds by using the sliders. Click Rude Awakening
|
||||
to play a different sound and stop all other sounds.
|
||||
|
||||
Programming Notes
|
||||
=================
|
||||
The AudioPath differs by showing some of the various uses of an
|
||||
audiopath. Here's how:
|
||||
|
||||
* Upon init.
|
||||
1. Calls DirectMusicPerformance8::CreateStandardAudioPath passing
|
||||
in DMUS_APATH_DYNAMIC_3D to create a 3D audiopath.
|
||||
2. Loads all of the files needed for this sample.
|
||||
|
||||
* Upon 3D positoin slider change. See SetPosition
|
||||
1. Calls DirectMusicAudioPath.GetObjectInPath on the 3D audiopath to
|
||||
get the DirectSound3DBuffer from it.
|
||||
2. Calls DirectSound3DBuffer.SetPosition to set a new 3D position on
|
||||
the buffer of the audiopath.
|
||||
|
||||
* Upon button click. See cmdSeg_Click.
|
||||
- If its the first button, "Lullaby", this plays the primary segment
|
||||
on the 3D audiopath by calling PlaySegmentEx passing in
|
||||
DMUS_SEGF_DEFAULT and the 3D audiopath.
|
||||
- If its the second or third button, this plays a secondary segment
|
||||
on the 3D audiopath by calling PlaySegmentEx passing in
|
||||
DMUS_SEGF_DEFAULT or DMUS_SEGF_SECONDARY and the 3D audiopath.
|
||||
- If its the forth button, "Rude Awakening", this plays a primary segment
|
||||
on the 3D audiopath by calling PlaySegmentEx passing in
|
||||
the 3D audiopath, and setting the pFrom to the 3D audiopath.
|
||||
This causes all currently playing segments to stop when this one starts.
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
Type=Exe
|
||||
Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#stdole2.tlb#OLE Automation
|
||||
Reference=*\G{E1211242-8E94-11D1-8808-00C04FC2C603}#1.0#0#dx8vb.dll#DirectX 8 for Visual Basic Type Library
|
||||
Form=frmSimple.frm
|
||||
Module=MediaDir; ..\..\common\media.bas
|
||||
Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0; Mscomctl.ocx
|
||||
Startup="frmSimple"
|
||||
Command32=""
|
||||
Name="vbSimpleAudioPath"
|
||||
HelpContextID="0"
|
||||
CompatibleMode="0"
|
||||
MajorVer=1
|
||||
MinorVer=0
|
||||
RevisionVer=0
|
||||
AutoIncrementVer=0
|
||||
ServerSupportFiles=0
|
||||
VersionCompanyName="Microsoft"
|
||||
CompilationType=0
|
||||
OptimizationType=0
|
||||
FavorPentiumPro(tm)=0
|
||||
CodeViewDebugInfo=0
|
||||
NoAliasing=0
|
||||
BoundsCheck=0
|
||||
OverflowCheck=0
|
||||
FlPointCheck=0
|
||||
FDIVCheck=0
|
||||
UnroundedFP=0
|
||||
StartMode=0
|
||||
Unattended=0
|
||||
Retained=0
|
||||
ThreadPerObject=0
|
||||
MaxNumberOfThreads=1
|
||||
Reference in New Issue
Block a user