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,211 @@
|
||||
Attribute VB_Name = "modGlobalData"
|
||||
'*******************************************************************************
|
||||
'* This is a part of the Microsoft DXSDK Code Samples.
|
||||
'* Copyright (C) 1999-2001 Microsoft Corporation.
|
||||
'* All rights reserved.
|
||||
'* This source code is only intended as a supplement to
|
||||
'* Microsoft Development Tools and/or SDK documentation.
|
||||
'* See these sources for detailed information regarding the
|
||||
'* Microsoft samples programs.
|
||||
'*******************************************************************************
|
||||
Option Explicit
|
||||
Option Base 0
|
||||
Option Compare Text
|
||||
|
||||
|
||||
' **************************************************************************************************************************************
|
||||
' * GLOBAL INTERFACE- DATA
|
||||
' *
|
||||
' *
|
||||
'global timeline reference in application
|
||||
Global gbl_bstrLoadFile As String 'the last file name/path opened by the user
|
||||
Global gbl_colNormalEnum As Collection 'collection for maintaining node/object relational data
|
||||
Global gbl_objQuartzVB As VBQuartzHelper 'helper object for rendering filtergraph's using quartz.dll
|
||||
Global gbl_objTimeline As AMTimeline 'global application timeline
|
||||
Global gbl_objRenderEngine As RenderEngine 'global application render engine
|
||||
Global gbl_objFilterGraph As FilgraphManager 'global application filtergraph manager
|
||||
Global gbl_objDexterObject As AMTimelineObj 'global application dexter object (current object in treeview)
|
||||
|
||||
|
||||
|
||||
|
||||
' **************************************************************************************************************************************
|
||||
' * PUBLIC INTERFACE- PROCEDURES
|
||||
' *
|
||||
' *
|
||||
' ******************************************************************************************************************************
|
||||
' * procedure name: Main
|
||||
' * procedure description: Application Entry Point
|
||||
' *
|
||||
' ******************************************************************************************************************************
|
||||
Public Sub Main()
|
||||
Dim nStart As Long
|
||||
Dim nLength As Long
|
||||
Dim bstrFileName As String
|
||||
Dim boolDynamic As Boolean
|
||||
Dim boolPlayback As Boolean
|
||||
Dim boolSmartRecomp As Boolean
|
||||
Dim boolCloseOnComplete As Boolean
|
||||
Dim objLocalTimeline As AMTimeline
|
||||
On Local Error GoTo ErrLine
|
||||
|
||||
|
||||
'inhibit dupe instances of this application
|
||||
If App.PrevInstance = False Then
|
||||
'initalize global data
|
||||
Set gbl_objTimeline = New AMTimeline
|
||||
'display the main form for the application
|
||||
Load frmMain: frmMain.Move 0, 0: frmMain.Show: frmMain.Refresh
|
||||
Else: Exit Sub
|
||||
End If
|
||||
|
||||
|
||||
'handle command line
|
||||
If Command <> vbNullString Then
|
||||
'check the command line argument(s) for a valid xtl filename with double quotes
|
||||
If InStr(1, UCase(Command), Chr(34)) > 0 Then
|
||||
nStart = InStr(1, UCase(Command), Chr(34))
|
||||
nLength = InStr(nStart + 1, Command, Chr(34))
|
||||
If nLength - nStart > Len(Command) Then
|
||||
bstrFileName = Mid(Command, nStart, nLength)
|
||||
End If
|
||||
bstrFileName = Trim(LCase(Command))
|
||||
bstrFileName = Replace(bstrFileName, "/r", vbNullString)
|
||||
bstrFileName = Replace(bstrFileName, "/d", vbNullString)
|
||||
bstrFileName = Replace(bstrFileName, Chr(34), vbNullString)
|
||||
bstrFileName = Trim(bstrFileName)
|
||||
If InStr(1, bstrFileName, ".xtl") > 0 Then
|
||||
If InStr(1, bstrFileName, ".xtl") + 4 <> Len(bstrFileName) Then
|
||||
bstrFileName = Left(bstrFileName, InStr(1, bstrFileName, ".xtl") + 4)
|
||||
End If
|
||||
End If
|
||||
'check the command line argument(s) for a valid xtl filename with single quotes
|
||||
ElseIf InStr(1, UCase(Command), Chr(39)) > 0 Then
|
||||
nStart = InStr(1, UCase(Command), Chr(39))
|
||||
nLength = InStr(nStart + 1, Command, Chr(39))
|
||||
If nLength - nStart > Len(Command) Then
|
||||
bstrFileName = Mid(Command, nStart, nLength)
|
||||
End If
|
||||
bstrFileName = Trim(LCase(Command))
|
||||
bstrFileName = Replace(bstrFileName, "/r", vbNullString)
|
||||
bstrFileName = Replace(bstrFileName, "/d", vbNullString)
|
||||
bstrFileName = Replace(bstrFileName, Chr(39), vbNullString)
|
||||
bstrFileName = Trim(bstrFileName)
|
||||
If InStr(1, bstrFileName, ".xtl") > 0 Then
|
||||
If InStr(1, bstrFileName, ".xtl") + 4 <> Len(bstrFileName) Then
|
||||
bstrFileName = Left(bstrFileName, InStr(1, bstrFileName, ".xtl") + 4)
|
||||
End If
|
||||
End If
|
||||
'check the command line argument(s) for a valid xtl filename with no quotes
|
||||
Else
|
||||
bstrFileName = Trim(LCase(Command))
|
||||
bstrFileName = Replace(bstrFileName, "/r", vbNullString)
|
||||
bstrFileName = Replace(bstrFileName, "/d", vbNullString)
|
||||
bstrFileName = Trim(bstrFileName)
|
||||
If InStr(1, bstrFileName, ".xtl") > 0 Then
|
||||
If InStr(1, bstrFileName, ".xtl") + 4 <> Len(bstrFileName) Then
|
||||
bstrFileName = Left(bstrFileName, InStr(1, bstrFileName, ".xtl") + 4)
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
'check the command line argument(s) for smart recomp optional
|
||||
If InStr(1, UCase(Command), Space(1) & "/R") > 0 Then
|
||||
boolSmartRecomp = True
|
||||
End If
|
||||
|
||||
'check the command line argument(s) for dynamic connections optional
|
||||
If InStr(1, UCase(Command), Space(1) & "/D") > 0 Then
|
||||
boolDynamic = True
|
||||
End If
|
||||
|
||||
'check the command line argument(s) for playback optional
|
||||
If InStr(1, UCase(Command), Space(1) & "/P") > 0 Then
|
||||
boolPlayback = True
|
||||
End If
|
||||
|
||||
'check the command line argument(s) for close when finished optional
|
||||
If InStr(1, UCase(Command), Space(1) & "/C") > 0 Then
|
||||
boolCloseOnComplete = True
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
|
||||
'proceed to load the xtl file into the application ide and render it
|
||||
If InStr(1, LCase(bstrFileName), ".xtl") > 0 Then
|
||||
'at least it's been named an xtl file, proceed to attempt an import..
|
||||
Set objLocalTimeline = New AMTimeline
|
||||
Call RestoreTimeline(objLocalTimeline, bstrFileName, DEXImportXTL)
|
||||
'verify restoration
|
||||
If Not objLocalTimeline Is Nothing Then
|
||||
'import succeeded; clean-up global scope
|
||||
If Not gbl_objTimeline Is Nothing Then
|
||||
Call ClearTimeline(gbl_objTimeline)
|
||||
Set gbl_objTimeline = Nothing
|
||||
End If
|
||||
'assign the local timeline to global scope
|
||||
Set gbl_objTimeline = objLocalTimeline
|
||||
'reset application-level filename
|
||||
gbl_bstrLoadFile = bstrFileName
|
||||
'reset the caption on the application's main form
|
||||
bstrFileName = Mid(bstrFileName, InStrRev(bstrFileName, "\") + 1)
|
||||
frmMain.Caption = "DexterVB - " & bstrFileName
|
||||
Else: Exit Sub
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
'render the timeline and derive a filter graph manager
|
||||
Set gbl_objFilterGraph = RenderTimeline(gbl_objTimeline, boolDynamic, boolSmartRecomp)
|
||||
Set gbl_objQuartzVB.FilterGraph = gbl_objFilterGraph
|
||||
'map the timeline to the userinterface
|
||||
Call GetTimelineDirect(frmMain.tvwSimpleTree, gbl_objTimeline, gbl_colNormalEnum)
|
||||
frmMain.mnuTimeLineClearRenderEngine.Enabled = False
|
||||
'update the button(s)
|
||||
With frmMain.tbMain.Buttons
|
||||
.Item("Play").Image = 6
|
||||
.Item("Pause").Image = 7
|
||||
.Item("Stop").Image = 22
|
||||
.Item("Rewind").Image = 18
|
||||
.Item("FastForward").Image = 24
|
||||
.Item("SeekForward").Image = 23
|
||||
.Item("SeekBackward").Image = 19
|
||||
.Item("Play").Enabled = True
|
||||
.Item("Pause").Enabled = True
|
||||
.Item("Stop").Enabled = False
|
||||
.Item("Rewind").Enabled = False
|
||||
.Item("FastForward").Enabled = False
|
||||
.Item("SeekForward").Enabled = False
|
||||
.Item("SeekBackward").Enabled = False
|
||||
End With
|
||||
'update the state on the popup context menu
|
||||
frmMain.mnuTimeLinePlay.Enabled = True
|
||||
frmMain.mnuTimeLineStop.Enabled = False
|
||||
frmMain.mnuTimeLinePause.Enabled = True
|
||||
frmMain.mnuTimeLineRenderTimeLine.Enabled = False
|
||||
frmMain.mnuTimeLineClearRenderEngine.Enabled = False
|
||||
|
||||
If boolPlayback Then
|
||||
'run the graph
|
||||
Call gbl_objFilterGraph.Run
|
||||
|
||||
'if optional close on complete, unload when the timeline is finished rendering..
|
||||
If boolCloseOnComplete = True Then
|
||||
Do Until gbl_objQuartzVB.Position = gbl_objQuartzVB.StopTime: DoEvents: DoEvents
|
||||
If frmMain.Visible = False Then
|
||||
Exit Do
|
||||
End If
|
||||
Loop
|
||||
Unload frmMain: Set frmMain = Nothing: Exit Sub
|
||||
End If
|
||||
End If
|
||||
|
||||
'clean-up & dereference
|
||||
If Not objLocalTimeline Is Nothing Then Set objLocalTimeline = Nothing
|
||||
Exit Sub
|
||||
|
||||
ErrLine:
|
||||
Err.Clear
|
||||
Exit Sub
|
||||
End Sub
|
||||
Reference in New Issue
Block a user