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,121 @@
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "cRoom"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Option Explicit
Private Const mnRoomX As Single = 0
Private Const mnRoomY As Single = 2
Private Const mnRoomZ As Single = 0
Private Const mnBarRoomX As Single = 0
Private Const mnBarRoomY As Single = -5
Private Const mnBarRoomZ As Single = 0
Private Const mnLobbyScaleX As Single = 8
Private Const mnLobbyScaleY As Single = 5
Private Const mnLobbyScaleZ As Single = 9
Private moRoom As CD3DFrame ' Our Room frame
Private moOfficeRoom As CD3DFrame ' Our Room frame
Public DrawRoom As Boolean 'Should we draw the room at all
Public BarRoom As Boolean 'Should we draw the bar or the MS lobby
'Methods
Public Sub Init(ByVal sMedia As String, sRoom As String, sLobby As String)
Set moRoom = D3DUtil_LoadFromFile(AddDirSep(sMedia) & sRoom, Nothing, Nothing)
Set moOfficeRoom = D3DUtil_LoadFromFile(AddDirSep(sMedia) & sLobby, Nothing, Nothing)
End Sub
Public Sub CleanupFrame()
If Not (moRoom Is Nothing) Then moRoom.Destroy
If Not (moOfficeRoom Is Nothing) Then moOfficeRoom.Destroy
Set moRoom = Nothing
Set moOfficeRoom = Nothing
End Sub
Public Sub Render(dev As Direct3DDevice8)
Dim matRoom As D3DMATRIX
Dim matScale As D3DMATRIX
If DrawRoom Then
If BarRoom Then
'First the room
D3DXMatrixIdentity matRoom
D3DXMatrixTranslation matRoom, mnBarRoomX, mnBarRoomY, mnBarRoomZ
moRoom.SetMatrix matRoom
moRoom.Render g_dev
Else
'First the room
D3DXMatrixIdentity matRoom
D3DXMatrixTranslation matRoom, mnRoomX, mnRoomY, mnRoomZ
D3DXMatrixScaling matScale, mnLobbyScaleX, mnLobbyScaleY, mnLobbyScaleZ
D3DXMatrixMultiply matRoom, matRoom, matScale
moOfficeRoom.SetMatrix matRoom
moOfficeRoom.Render g_dev
End If
End If
End Sub
Public Function FadeMesh(FadeInterval As Single) As Boolean
Dim lNumMaterial As Long
Dim lCount As Long
Dim oMaterial As D3DMATERIAL8
Dim fDoneFading As Boolean
Dim oMesh As CD3DMesh
Dim nInternalInterval As Single
Static lFadeTime As Long
FadeMesh = True
nInternalInterval = FadeInterval
If lFadeTime = 0 Then
lFadeTime = timeGetTime
Exit Function 'We'll do the fade next render pass
End If
nInternalInterval = (((timeGetTime - lFadeTime) / 1000000) * nInternalInterval)
If Not DrawRoom Then Exit Function
fDoneFading = True
If BarRoom Then
Set oMesh = moRoom.FindChildObject("room", 0)
Else
Set oMesh = moOfficeRoom.FindChildObject("Unnamed_0", 0)
End If
lNumMaterial = oMesh.GetMaterialCount
For lCount = 0 To lNumMaterial - 1
oMaterial = oMesh.GetMaterial(lCount)
If nInternalInterval > 0 And oMaterial.diffuse.a <= 1 Then
oMaterial.diffuse.a = oMaterial.diffuse.a + nInternalInterval
fDoneFading = False
ElseIf nInternalInterval < 0 And oMaterial.diffuse.a >= -1 Then
oMaterial.diffuse.a = oMaterial.diffuse.a + nInternalInterval
fDoneFading = False
End If
oMesh.SetMaterial lCount, oMaterial
Next
FadeMesh = fDoneFading
End Function
Private Sub Class_Initialize()
DrawRoom = True
Set moRoom = Nothing
Set moOfficeRoom = Nothing
End Sub
Private Sub Class_Terminate()
If Not (moRoom Is Nothing) Then moRoom.Destroy
If Not (moOfficeRoom Is Nothing) Then moOfficeRoom.Destroy
Set moRoom = Nothing
Set moOfficeRoom = Nothing
End Sub