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,120 @@
|
||||
VERSION 1.0 CLASS
|
||||
BEGIN
|
||||
MultiUse = -1 'True
|
||||
Persistable = 0 'NotPersistable
|
||||
DataBindingBehavior = 0 'vbNone
|
||||
DataSourceBehavior = 0 'vbNone
|
||||
MTSTransactionMode = 0 'NotAnMTSObject
|
||||
END
|
||||
Attribute VB_Name = "cTable"
|
||||
Attribute VB_GlobalNameSpace = False
|
||||
Attribute VB_Creatable = True
|
||||
Attribute VB_PredeclaredId = False
|
||||
Attribute VB_Exposed = False
|
||||
Option Explicit
|
||||
|
||||
'Here we will encapsulate all of the code needed for the table
|
||||
'Local variables for the properties of the table
|
||||
Private moPosition As D3DVECTOR 'Current position of the table
|
||||
Private moTable As CD3DFrame 'D3D Mesh for the table
|
||||
Private mlTransparantPaddle As Boolean
|
||||
Public DrawTable As Boolean ' You can also turn off the table (dunno why, but let'em)
|
||||
|
||||
'Position property
|
||||
Public Property Let Position(oPos As D3DVECTOR)
|
||||
moPosition = oPos
|
||||
End Property
|
||||
|
||||
Public Property Get Position() As D3DVECTOR
|
||||
Position = moPosition
|
||||
End Property
|
||||
|
||||
'Transparent property
|
||||
Public Property Let Transparent(ByVal fTrans As Boolean)
|
||||
Dim oMesh As CD3DMesh, oMaterial As D3DMATERIAL8
|
||||
Dim lNumMaterial As Long, lCount As Long
|
||||
|
||||
mlTransparantPaddle = fTrans
|
||||
'now set the property
|
||||
Set oMesh = moTable.FindChildObject("table", 0)
|
||||
lNumMaterial = oMesh.GetMaterialCount
|
||||
For lCount = 0 To lNumMaterial - 1
|
||||
oMaterial = oMesh.GetMaterial(lCount)
|
||||
If fTrans Then
|
||||
oMaterial.diffuse.a = 0.5
|
||||
Else
|
||||
oMaterial.diffuse.a = 1
|
||||
End If
|
||||
oMesh.SetMaterial lCount, oMaterial
|
||||
Next
|
||||
End Property
|
||||
|
||||
Public Property Get Transparent() As Boolean
|
||||
Transparent = mlTransparantPaddle
|
||||
End Property
|
||||
|
||||
'Methods
|
||||
Public Sub Init(ByVal sMedia As String, sFile As String)
|
||||
Set moTable = D3DUtil_LoadFromFile(AddDirSep(sMedia) & sFile, Nothing, Nothing)
|
||||
End Sub
|
||||
|
||||
Public Sub Render(dev As Direct3DDevice8)
|
||||
Dim matTable As D3DMATRIX
|
||||
If DrawTable Then
|
||||
'Now the table
|
||||
D3DXMatrixIdentity matTable
|
||||
D3DXMatrixTranslation matTable, moPosition.X, moPosition.Y, moPosition.z
|
||||
moTable.SetMatrix matTable
|
||||
moTable.Render g_dev
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Sub CleanupFrame()
|
||||
moTable.Destroy
|
||||
Set moTable = Nothing
|
||||
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)
|
||||
|
||||
fDoneFading = True
|
||||
If Not DrawTable Then Exit Function
|
||||
Set oMesh = moTable.FindChildObject("table", 0)
|
||||
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()
|
||||
DrawTable = True
|
||||
Set moTable = Nothing
|
||||
End Sub
|
||||
|
||||
Private Sub Class_Terminate()
|
||||
If Not moTable Is Nothing Then moTable.Destroy
|
||||
Set moTable = Nothing
|
||||
End Sub
|
||||
Reference in New Issue
Block a user