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,87 @@
vs.1.0
;------------------------------------------------------------------------------
; Constants specified by the app
; c0 = (0,0,0,0)
; c1 = (1,1,1,1)
; c2 = (0,1,2,3)
; c3 = (4,5,6,7)
; c4-c7 = matWorld0
; c8-c11 = matWorld1
; c12-c15 = matViewProj
; c20 = light direction
; c21 = material diffuse color * light diffuse color
; c22 = material ambient color
;
; Vertex components (as specified in the vertex DECL)
; v0 = Position
; v1.x = Blend weight
; v3 = Normal
; v7 = Texcoords
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
; Vertex blending
;------------------------------------------------------------------------------
; Transform position for world0 matrix
dp4 r0.x, v0, c4
dp4 r0.y, v0, c5
dp4 r0.z, v0, c6
dp4 r0.w, v0, c7
; Transform position for world1 matrix
dp4 r1.x, v0, c8
dp4 r1.y, v0, c9
dp4 r1.z, v0, c10
dp4 r1.w, v0, c11
; Lerp the two positions r0 and r1 into r2
mul r0, r0, v1.x ; v0 * weight
add r2, c1.x, -v1.x ; r2 = 1 - weight
mad r2, r1, r2, r0 ; pos = (1-weight)*v1 + v0*weight
; Transform to projection space
dp4 oPos.x, r2, c12
dp4 oPos.y, r2, c13
dp4 oPos.z, r2, c14
dp4 oPos.w, r2, c15
;------------------------------------------------------------------------------
; Lighting calculation
;------------------------------------------------------------------------------
; Transform normal for world0 matrix
dp4 r0.x, v3, c4
dp4 r0.y, v3, c5
dp4 r0.z, v3, c6
dp4 r0.w, v3, c7
; Transform normal for world1 matrix
dp4 r1.x, v3, c8
dp4 r1.y, v3, c9
dp4 r1.z, v3, c10
dp4 r1.w, v3, c11
; Lerp the two normals r0 and r1 into r2
mul r0, r0, v1.x ; v0 * weight
add r2, c1.x, -v1.x ; r2 = 1 - weight
mad r2, r1, r2, r0 ; normal = (1-weight)*v1 + v0*weight
; Do the lighting calculation
dp3 r1.x, r2, c20 ; r1 = normal dot light
max r1, r1.x, c0 ; if dot < 0 then dot = 0
mul r0, r1.x, c21 ; Multiply with diffuse
add r0, r0, c22 ; Add in ambient
min oD0, r0, c1.x ; clamp if > 1
;------------------------------------------------------------------------------
; Texture coordinates
;------------------------------------------------------------------------------
; Just copy the texture coordinates
mov oT0, v7