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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,420 @@
VERSION 5.00
Begin VB.Form frmMain
BorderStyle = 1 'Fixed Single
Caption = "JoyStick Sample"
ClientHeight = 6240
ClientLeft = 45
ClientTop = 330
ClientWidth = 6000
Icon = "frmMain.frx":0000
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 6240
ScaleWidth = 6000
StartUpPosition = 3 'Windows Default
Begin VB.ListBox lstHat
Enabled = 0 'False
Height = 1230
ItemData = "frmMain.frx":0442
Left = 4080
List = "frmMain.frx":0444
TabIndex = 6
Top = 3240
Width = 1695
End
Begin VB.ListBox lstButton
Enabled = 0 'False
Height = 2790
ItemData = "frmMain.frx":0446
Left = 2160
List = "frmMain.frx":0448
TabIndex = 2
Top = 3240
Width = 1695
End
Begin VB.ListBox lstJoyAxis
Enabled = 0 'False
Height = 2790
ItemData = "frmMain.frx":044A
Left = 240
List = "frmMain.frx":044C
TabIndex = 1
Top = 3240
Width = 1695
End
Begin VB.ListBox lstJoySticks
Height = 1815
ItemData = "frmMain.frx":044E
Left = 240
List = "frmMain.frx":0450
TabIndex = 0
Top = 720
Width = 5535
End
Begin VB.Label lblHats
Caption = "POVs"
BeginProperty Font
Name = "MS Sans Serif"
Size = 18
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 4080
TabIndex = 7
Top = 2760
Width = 1335
End
Begin VB.Label lblButtons
Caption = "Buttons"
BeginProperty Font
Name = "MS Sans Serif"
Size = 18
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 2160
TabIndex = 5
Top = 2760
Width = 1575
End
Begin VB.Label lblAxis
Caption = "Axes"
BeginProperty Font
Name = "MS Sans Serif"
Size = 18
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 240
TabIndex = 4
Top = 2760
Width = 1335
End
Begin VB.Label lblJoy
Caption = "Joysticks"
BeginProperty Font
Name = "MS Sans Serif"
Size = 18
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 240
TabIndex = 3
Top = 120
Width = 4215
End
End
Attribute VB_Name = "frmMain"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' Copyright (C) 1999-2001 Microsoft Corporation. All Rights Reserved.
'
' File: FrmMain.Frm
' Content: This sample shows one way to use DirectInput with a Joystick device
'
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Option Explicit
Implements DirectXEvent8
Dim dx As New DirectX8
Dim di As DirectInput8
Dim diDev As DirectInputDevice8
Dim diDevEnum As DirectInputEnumDevices8
Dim EventHandle As Long
Dim joyCaps As DIDEVCAPS
Dim js As DIJOYSTATE
Dim DiProp_Dead As DIPROPLONG
Dim DiProp_Range As DIPROPRANGE
Dim DiProp_Saturation As DIPROPLONG
Dim AxisPresent(1 To 8) As Boolean
Dim running As Boolean
Sub InitDirectInput()
Set di = dx.DirectInputCreate()
Set diDevEnum = di.GetDIDevices(DI8DEVCLASS_GAMECTRL, DIEDFL_ATTACHEDONLY)
If diDevEnum.GetCount = 0 Then
MsgBox "No joystick attached."
Unload Me
End If
'Add attached joysticks to the listbox
Dim i As Integer
For i = 1 To diDevEnum.GetCount
Call lstJoySticks.AddItem(diDevEnum.GetItem(i).GetInstanceName)
Next
' Get an event handle to associate with the device
EventHandle = dx.CreateEvent(Me)
Exit Sub
Error_Out:
MsgBox "Error initializing DirectInput."
Unload Me
End Sub
Private Sub DirectXEvent8_DXCallback(ByVal eventid As Long)
' This is called whenever there's a change in the joystick state.
' We check the new state and update the display.
Dim i As Integer
Dim ListPos As Integer
Dim S As String
If diDev Is Nothing Then Exit Sub
'' Get the device info
On Local Error Resume Next
diDev.GetDeviceStateJoystick js
If Err.Number = DIERR_NOTACQUIRED Or Err.Number = DIERR_INPUTLOST Then
diDev.Acquire
Exit Sub
End If
On Error GoTo err_out
' Display axis coordinates
ListPos = 0
For i = 1 To 8
If AxisPresent(i) Then
Select Case i
Case 1
S = "X: " & js.x
Case 2
S = "Y: " & js.y
Case 3
S = "Z: " & js.z
Case 4
S = "RX: " & js.rx
Case 5
S = "RY: " & js.ry
Case 6
S = "RZ: " & js.rz
Case 7
S = "Slider0: " & js.slider(0)
Case 8
S = "Slider1: " & js.slider(1)
End Select
lstJoyAxis.List(ListPos) = S
ListPos = ListPos + 1
End If
Next
' Buttons
For i = 0 To joyCaps.lButtons - 1
Select Case js.Buttons(i)
Case 0
lstButton.List(i) = "Button " + CStr(i + 1) + ": Up"
Case Else
lstButton.List(i) = "Button " + CStr(i + 1) + ": Down"
End Select
Next
' Hats
For i = 0 To joyCaps.lPOVs - 1
lstHat.List(i) = "POV " + CStr(i + 1) + ": " + CStr(js.POV(i))
Next
Me.Caption = "Joystick Sample: Available"
Exit Sub
err_out:
MsgBox Err.Description & " : " & Err.Number, vbApplicationModal
End
End Sub
Private Sub Form_Load()
running = True
InitDirectInput
End Sub
Private Sub Form_Unload(cancel As Integer)
On Local Error Resume Next
If EventHandle <> 0 Then dx.DestroyEvent EventHandle
running = False
'Unacquire if we are holding a device
If Not diDev Is Nothing Then
diDev.Unacquire
End If
DoEvents
End
End Sub
Private Sub lstJoySticks_Click()
On Local Error Resume Next
Call CLRLISTS
'Unacquire the current device
'if we are holding a device
If Not diDev Is Nothing Then
diDev.Unacquire
End If
'Create the joystick device
Set diDev = Nothing
Set diDev = di.CreateDevice(diDevEnum.GetItem(lstJoySticks.ListIndex + 1).GetGuidInstance)
diDev.SetCommonDataFormat DIFORMAT_JOYSTICK
diDev.SetCooperativeLevel Me.hWnd, DISCL_BACKGROUND Or DISCL_NONEXCLUSIVE
' Find out what device objects it has
diDev.GetCapabilities joyCaps
Call IdentifyAxes(diDev)
' Ask for notification of events
Call diDev.SetEventNotification(EventHandle)
' Set deadzone for X and Y axis to 10 percent of the range of travel
With DiProp_Dead
.lData = 1000
.lHow = DIPH_BYOFFSET
.lObj = DIJOFS_X
diDev.SetProperty "DIPROP_DEADZONE", DiProp_Dead
.lObj = DIJOFS_Y
diDev.SetProperty "DIPROP_DEADZONE", DiProp_Dead
End With
' Set saturation zones for X and Y axis to 5 percent of the range
With DiProp_Saturation
.lData = 9500
.lHow = DIPH_BYOFFSET
.lObj = DIJOFS_X
diDev.SetProperty "DIPROP_SATURATION", DiProp_Saturation
.lObj = DIJOFS_Y
diDev.SetProperty "DIPROP_SATURATION", DiProp_Saturation
End With
SetPropRange
diDev.Acquire
Me.Caption = "Joystick Sample: Querying Properties"
' Get the list of current properties
' USB joysticks wont call this callback until you play with the joystick
' so we call the callback ourselves the first time
DirectXEvent8_DXCallback 0
' Poll the device so that events are sure to be signaled.
' Usually this would be done in Sub Main or in the game rendering loop.
While running = True
DoEvents
diDev.Poll
Wend
End Sub
Sub SetPropRange()
' NOTE Some devices do not let you set the range
On Local Error Resume Next
' Set range for all axes
With DiProp_Range
.lHow = DIPH_DEVICE
.lMin = 0
.lMax = 10000
End With
diDev.SetProperty "DIPROP_RANGE", DiProp_Range
End Sub
Sub CLRLISTS()
lstJoyAxis.Clear
lstButton.Clear
lstHat.Clear
End Sub
Sub IdentifyAxes(diDev As DirectInputDevice8)
' It's not enough to count axes; we need to know which in particular
' are present.
Dim didoEnum As DirectInputEnumDeviceObjects
Dim dido As DirectInputDeviceObjectInstance
Dim i As Integer
For i = 1 To 8
AxisPresent(i) = False
Next
' Enumerate the axes
Set didoEnum = diDev.GetDeviceObjectsEnum(DIDFT_AXIS)
' Check data offset of each axis to learn what it is
Dim sGuid As String
For i = 1 To didoEnum.GetCount
Set dido = didoEnum.GetItem(i)
sGuid = dido.GetGuidType
Select Case sGuid
Case "GUID_XAxis"
AxisPresent(1) = True
Case "GUID_YAxis"
AxisPresent(2) = True
Case "GUID_ZAxis"
AxisPresent(3) = True
Case "GUID_RxAxis"
AxisPresent(4) = True
Case "GUID_RyAxis"
AxisPresent(5) = True
Case "GUID_RzAxis"
AxisPresent(6) = True
Case "GUID_Slider"
AxisPresent(8) = True
AxisPresent(7) = True
End Select
Next
End Sub

View File

@@ -0,0 +1,34 @@
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=frmMain.frm
Startup="frmMain"
ExeName32="vb_joystick.exe"
Command32=""
Name="Project1"
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
[MS Transaction Server]
AutoRefresh=1

View File

@@ -0,0 +1,29 @@
//-----------------------------------------------------------------------------
// Name: Joystick DirectInput Sample
//
// Copyright (C) 1999-2001 Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
Description
===========
The Joystick sample illustrates the use of DirectInput to poll for joystick position
and button information.
Path
====
Source: DXSDK\Samples\Multimedia\Vbsamples\DirectInput\Joystick
Executable: DXSDK\Samples\Multimedia\vbsamples\DirectInput\Bin
User's Guide
============
Observe how the displayed data changes when you move and twist the stick,
rotate the throttle wheel, and press buttons in various combinations.
Programming Notes
=================
The application retrieves joystick input via a DirectXEvent8 callback.