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:
2025-11-29 16:24:34 +09:00
commit e067522598
5135 changed files with 1745744 additions and 0 deletions

View File

@@ -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

View File

@@ -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.

View File

@@ -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