mirror of
				https://github.com/KartKrewDev/RingRacers.git
				synced 2025-10-30 08:01:28 +00:00 
			
		
		
		
	Remove unmaintained SOCEdit
Written in VB6. Superceded by better tools and also probably not even buildable anymore.
This commit is contained in:
		
							parent
							
								
									d02357f857
								
							
						
					
					
						commit
						0907224122
					
				
					 27 changed files with 0 additions and 8369 deletions
				
			
		| 
						 | 
				
			
			@ -1,96 +0,0 @@
 | 
			
		|||
Attribute VB_Name = "Module1"
 | 
			
		||||
Option Explicit
 | 
			
		||||
Public SOCFile As String
 | 
			
		||||
Public SOCTemp As String
 | 
			
		||||
Public SourcePath As String
 | 
			
		||||
 | 
			
		||||
Public Function FirstToken(ByVal line As String)
 | 
			
		||||
    Dim index As Integer
 | 
			
		||||
 | 
			
		||||
    index = InStr(line, " ") - 1
 | 
			
		||||
    
 | 
			
		||||
    If index < 1 Then
 | 
			
		||||
        index = Len(line)
 | 
			
		||||
    End If
 | 
			
		||||
    
 | 
			
		||||
    FirstToken = TrimComplete(Left(line, index))
 | 
			
		||||
End Function
 | 
			
		||||
 | 
			
		||||
Public Function SecondToken(ByVal line As String)
 | 
			
		||||
    Dim startclip As Integer
 | 
			
		||||
    Dim endclip As Integer
 | 
			
		||||
    
 | 
			
		||||
    startclip = InStr(line, " ")
 | 
			
		||||
    
 | 
			
		||||
    startclip = startclip + 1
 | 
			
		||||
    
 | 
			
		||||
    SecondToken = TrimComplete(Mid(line, startclip, Len(line)))
 | 
			
		||||
End Function
 | 
			
		||||
 | 
			
		||||
Public Function SecondTokenEqual(ByVal line As String)
 | 
			
		||||
    Dim startclip As Integer
 | 
			
		||||
    Dim endclip As Integer
 | 
			
		||||
    
 | 
			
		||||
    startclip = InStr(line, "=")
 | 
			
		||||
    
 | 
			
		||||
    startclip = startclip + 2
 | 
			
		||||
    
 | 
			
		||||
    line = Mid(line, startclip, Len(line))
 | 
			
		||||
    
 | 
			
		||||
    SecondTokenEqual = TrimComplete(line)
 | 
			
		||||
End Function
 | 
			
		||||
 | 
			
		||||
Public Function TrimComplete(ByVal sValue As String) As String
 | 
			
		||||
    Dim sAns As String
 | 
			
		||||
    Dim sWkg As String
 | 
			
		||||
    Dim sChar As String
 | 
			
		||||
    Dim lLen As Long
 | 
			
		||||
    Dim lCtr As Long
 | 
			
		||||
    
 | 
			
		||||
    sAns = sValue
 | 
			
		||||
    lLen = Len(sValue)
 | 
			
		||||
    
 | 
			
		||||
    If lLen > 0 Then
 | 
			
		||||
        'Ltrim
 | 
			
		||||
        For lCtr = 1 To lLen
 | 
			
		||||
            sChar = Mid(sAns, lCtr, 1)
 | 
			
		||||
            If Asc(sChar) > 32 Then Exit For
 | 
			
		||||
        Next
 | 
			
		||||
        
 | 
			
		||||
        sAns = Mid(sAns, lCtr)
 | 
			
		||||
        lLen = Len(sAns)
 | 
			
		||||
        
 | 
			
		||||
        'Rtrim
 | 
			
		||||
        If lLen > 0 Then
 | 
			
		||||
            For lCtr = lLen To 1 Step -1
 | 
			
		||||
                sChar = Mid(sAns, lCtr, 1)
 | 
			
		||||
                If Asc(sChar) > 32 Then Exit For
 | 
			
		||||
            Next
 | 
			
		||||
        End If
 | 
			
		||||
        sAns = Left$(sAns, lCtr)
 | 
			
		||||
    End If
 | 
			
		||||
        
 | 
			
		||||
    TrimComplete = sAns
 | 
			
		||||
End Function
 | 
			
		||||
 | 
			
		||||
Public Function RTrimComplete(ByVal sValue As String) As String
 | 
			
		||||
    Dim sAns As String
 | 
			
		||||
    Dim sWkg As String
 | 
			
		||||
    Dim sChar As String
 | 
			
		||||
    Dim lLen As Long
 | 
			
		||||
    Dim lCtr As Long
 | 
			
		||||
    
 | 
			
		||||
    sAns = sValue
 | 
			
		||||
    lLen = Len(sValue)
 | 
			
		||||
    
 | 
			
		||||
    'Rtrim
 | 
			
		||||
    If lLen > 0 Then
 | 
			
		||||
        For lCtr = lLen To 1 Step -1
 | 
			
		||||
            sChar = Mid(sAns, lCtr, 1)
 | 
			
		||||
            If Asc(sChar) > 32 Then Exit For
 | 
			
		||||
        Next
 | 
			
		||||
    End If
 | 
			
		||||
    sAns = Left$(sAns, lCtr)
 | 
			
		||||
    
 | 
			
		||||
    RTrimComplete = sAns
 | 
			
		||||
End Function
 | 
			
		||||
| 
						 | 
				
			
			@ -1,53 +0,0 @@
 | 
			
		|||
Type=Exe
 | 
			
		||||
Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\WINNT\system32\stdole2.tlb#OLE Automation
 | 
			
		||||
Reference=*\G{420B2830-E718-11CF-893D-00A0C9054228}#1.0#0#..\..\..\WINNT\system32\scrrun.dll#Microsoft Scripting Runtime
 | 
			
		||||
Form=Things.frm
 | 
			
		||||
Module=Module1; Global.bas
 | 
			
		||||
Form=frmStateEdit.frm
 | 
			
		||||
Form=frmLevelHeader.frm
 | 
			
		||||
Form=frmHub.frm
 | 
			
		||||
Form=frmMaincfg.frm
 | 
			
		||||
Form=frmUnlockablesEdit.frm
 | 
			
		||||
Form=frmEmblemEdit.frm
 | 
			
		||||
Form=frmSoundEdit.frm
 | 
			
		||||
Form=frmCharacterEdit.frm
 | 
			
		||||
Form=frmCutsceneEdit.frm
 | 
			
		||||
Form=frmHelp.frm
 | 
			
		||||
Form=frmHUDEdit.frm
 | 
			
		||||
IconForm="frmThingEdit"
 | 
			
		||||
Startup="frmHub"
 | 
			
		||||
HelpFile=""
 | 
			
		||||
Title="SOC Editor"
 | 
			
		||||
ExeName32="SOCEdit.exe"
 | 
			
		||||
Path32="..\..\..\srb2demo2\SOCEdit"
 | 
			
		||||
Command32=""
 | 
			
		||||
Name="SOCEditor"
 | 
			
		||||
HelpContextID="0"
 | 
			
		||||
CompatibleMode="0"
 | 
			
		||||
MajorVer=0
 | 
			
		||||
MinorVer=7
 | 
			
		||||
RevisionVer=7
 | 
			
		||||
AutoIncrementVer=0
 | 
			
		||||
ServerSupportFiles=0
 | 
			
		||||
VersionComments="http://www.srb2.org/"
 | 
			
		||||
VersionCompanyName="Sonic Team Junior"
 | 
			
		||||
VersionFileDescription="For SRB2 v1.09.4"
 | 
			
		||||
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
 | 
			
		||||
DebugStartupOption=0
 | 
			
		||||
 | 
			
		||||
[MS Transaction Server]
 | 
			
		||||
AutoRefresh=1
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -1,320 +0,0 @@
 | 
			
		|||
VERSION 5.00
 | 
			
		||||
Begin VB.Form frmCharacterEdit 
 | 
			
		||||
   Caption         =   "Character Edit"
 | 
			
		||||
   ClientHeight    =   3345
 | 
			
		||||
   ClientLeft      =   60
 | 
			
		||||
   ClientTop       =   345
 | 
			
		||||
   ClientWidth     =   4680
 | 
			
		||||
   Icon            =   "frmCharacterEdit.frx":0000
 | 
			
		||||
   LinkTopic       =   "Form1"
 | 
			
		||||
   MaxButton       =   0   'False
 | 
			
		||||
   ScaleHeight     =   3345
 | 
			
		||||
   ScaleWidth      =   4680
 | 
			
		||||
   Begin VB.CommandButton cmdExample 
 | 
			
		||||
      Caption         =   "Show Me An &Example"
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   1320
 | 
			
		||||
      Style           =   1  'Graphical
 | 
			
		||||
      TabIndex        =   14
 | 
			
		||||
      Top             =   2400
 | 
			
		||||
      Width           =   975
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CheckBox chkEnabled 
 | 
			
		||||
      Caption         =   "Enable this player selection."
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   1080
 | 
			
		||||
      TabIndex        =   13
 | 
			
		||||
      Top             =   1560
 | 
			
		||||
      Width           =   1455
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdDelete 
 | 
			
		||||
      Caption         =   "&Delete from SOC"
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      Style           =   1  'Graphical
 | 
			
		||||
      TabIndex        =   12
 | 
			
		||||
      Top             =   2760
 | 
			
		||||
      Width           =   855
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdSave 
 | 
			
		||||
      Caption         =   "&Save"
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   11
 | 
			
		||||
      Top             =   2160
 | 
			
		||||
      Width           =   855
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtSkinname 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   3240
 | 
			
		||||
      TabIndex        =   9
 | 
			
		||||
      Top             =   1200
 | 
			
		||||
      Width           =   1335
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtPicname 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   3240
 | 
			
		||||
      MaxLength       =   8
 | 
			
		||||
      TabIndex        =   7
 | 
			
		||||
      Top             =   840
 | 
			
		||||
      Width           =   1095
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtMenuposition 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   3240
 | 
			
		||||
      MaxLength       =   3
 | 
			
		||||
      TabIndex        =   5
 | 
			
		||||
      Top             =   480
 | 
			
		||||
      Width           =   495
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtPlayername 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   3240
 | 
			
		||||
      MaxLength       =   64
 | 
			
		||||
      TabIndex        =   3
 | 
			
		||||
      Top             =   120
 | 
			
		||||
      Width           =   1335
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtPlayertext 
 | 
			
		||||
      Height          =   1455
 | 
			
		||||
      Left            =   2640
 | 
			
		||||
      MultiLine       =   -1  'True
 | 
			
		||||
      TabIndex        =   1
 | 
			
		||||
      Top             =   1800
 | 
			
		||||
      Width           =   1935
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.ListBox lstPlayers 
 | 
			
		||||
      Height          =   1815
 | 
			
		||||
      ItemData        =   "frmCharacterEdit.frx":0442
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      List            =   "frmCharacterEdit.frx":0461
 | 
			
		||||
      TabIndex        =   0
 | 
			
		||||
      Top             =   240
 | 
			
		||||
      Width           =   855
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblSkinname 
 | 
			
		||||
      Caption         =   "Name of player (skin) to use:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   1080
 | 
			
		||||
      TabIndex        =   10
 | 
			
		||||
      Top             =   1200
 | 
			
		||||
      Width           =   2055
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblPicname 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Picture to display:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   1560
 | 
			
		||||
      TabIndex        =   8
 | 
			
		||||
      Top             =   840
 | 
			
		||||
      Width           =   1575
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblMenuposition 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Vertical menu position:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   1320
 | 
			
		||||
      TabIndex        =   6
 | 
			
		||||
      Top             =   480
 | 
			
		||||
      Width           =   1815
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblPlayername 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Displayed name of player:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   1320
 | 
			
		||||
      TabIndex        =   4
 | 
			
		||||
      Top             =   120
 | 
			
		||||
      Width           =   1815
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblPlayertext 
 | 
			
		||||
      Caption         =   "Short Description:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   2640
 | 
			
		||||
      TabIndex        =   2
 | 
			
		||||
      Top             =   1560
 | 
			
		||||
      Width           =   1455
 | 
			
		||||
   End
 | 
			
		||||
End
 | 
			
		||||
Attribute VB_Name = "frmCharacterEdit"
 | 
			
		||||
Attribute VB_GlobalNameSpace = False
 | 
			
		||||
Attribute VB_Creatable = False
 | 
			
		||||
Attribute VB_PredeclaredId = True
 | 
			
		||||
Attribute VB_Exposed = False
 | 
			
		||||
Option Explicit
 | 
			
		||||
 | 
			
		||||
Private Sub cmdDelete_Click()
 | 
			
		||||
    Call WriteCharacter(True)
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdExample_Click()
 | 
			
		||||
    txtPlayername.Text = "SONIC"
 | 
			
		||||
    txtMenuposition.Text = "20"
 | 
			
		||||
    txtPicname.Text = "SONCCHAR"
 | 
			
		||||
    txtSkinname.Text = "SONIC"
 | 
			
		||||
    chkEnabled.Value = 1
 | 
			
		||||
    txtPlayertext.Text = "             Fastest" & vbCrLf & "                 Speed Thok" & vbCrLf & "             Not a good pick" & vbCrLf & "for starters, but when" & vbCrLf & "controlled properly," & vbCrLf & "Sonic is the most" & vbCrLf & "powerful of the three."
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdSave_Click()
 | 
			
		||||
    Call WriteCharacter(False)
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub ClearForm()
 | 
			
		||||
    txtPlayername.Text = ""
 | 
			
		||||
    txtMenuposition.Text = ""
 | 
			
		||||
    txtPicname.Text = ""
 | 
			
		||||
    txtSkinname.Text = ""
 | 
			
		||||
    chkEnabled.Value = 0
 | 
			
		||||
    txtPlayertext.Text = ""
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub ReadSOCPlayer(num As Integer)
 | 
			
		||||
    Dim myFSO As New Scripting.FileSystemObject
 | 
			
		||||
    Dim ts As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim word As String
 | 
			
		||||
    Dim word2 As String
 | 
			
		||||
    
 | 
			
		||||
    Set ts = myFSO.OpenTextFile(SOCFile, ForReading, False)
 | 
			
		||||
    
 | 
			
		||||
SOCLoad:
 | 
			
		||||
    Do While Not ts.AtEndOfStream
 | 
			
		||||
        line = ts.ReadLine
 | 
			
		||||
        
 | 
			
		||||
        If Left(line, 1) = "#" Then GoTo SOCLoad
 | 
			
		||||
        
 | 
			
		||||
        If Left(line, 1) = vbCrLf Then GoTo SOCLoad
 | 
			
		||||
        
 | 
			
		||||
        If Len(line) < 1 Then GoTo SOCLoad
 | 
			
		||||
        
 | 
			
		||||
        word = FirstToken(line)
 | 
			
		||||
        word2 = SecondToken(line)
 | 
			
		||||
        
 | 
			
		||||
        If UCase(word) = "CHARACTER" And Val(word2) = num Then
 | 
			
		||||
            Do While Len(line) > 0 And Not ts.AtEndOfStream
 | 
			
		||||
                line = ts.ReadLine
 | 
			
		||||
                word = UCase(FirstToken(line))
 | 
			
		||||
                word2 = UCase(SecondTokenEqual(line))
 | 
			
		||||
                    
 | 
			
		||||
                If word = "PLAYERTEXT" Then
 | 
			
		||||
                    Dim startclip As Integer, endclip As Integer
 | 
			
		||||
                    startclip = InStr(line, "=")
 | 
			
		||||
    
 | 
			
		||||
                    startclip = startclip + 2
 | 
			
		||||
    
 | 
			
		||||
                    line = Mid(line, startclip, Len(line))
 | 
			
		||||
                    
 | 
			
		||||
                    txtPlayertext.Text = line & vbCrLf
 | 
			
		||||
                    
 | 
			
		||||
                    Do While InStr(line, "#") = 0 And Not ts.AtEndOfStream
 | 
			
		||||
                        line = ts.ReadLine & vbCrLf
 | 
			
		||||
                        txtPlayertext.Text = txtPlayertext.Text & line
 | 
			
		||||
                    Loop
 | 
			
		||||
                    
 | 
			
		||||
                    txtPlayertext.Text = RTrimComplete(txtPlayertext.Text)
 | 
			
		||||
                    If Right(txtPlayertext.Text, 1) = "#" Then
 | 
			
		||||
                        txtPlayertext.Text = Left(txtPlayertext.Text, Len(txtPlayertext.Text) - 1)
 | 
			
		||||
                    End If
 | 
			
		||||
                ElseIf word = "PLAYERNAME" Then
 | 
			
		||||
                    txtPlayername.Text = word2
 | 
			
		||||
                ElseIf word = "MENUPOSITION" Then
 | 
			
		||||
                    txtMenuposition.Text = Val(word2)
 | 
			
		||||
                ElseIf word = "PICNAME" Then
 | 
			
		||||
                    txtPicname.Text = word2
 | 
			
		||||
                ElseIf word = "STATUS" Then
 | 
			
		||||
                    If Val(word2) = 32 Then
 | 
			
		||||
                        chkEnabled.Value = 1
 | 
			
		||||
                    Else
 | 
			
		||||
                        chkEnabled.Value = 0
 | 
			
		||||
                    End If
 | 
			
		||||
                ElseIf word = "SKINNAME" Then
 | 
			
		||||
                    txtSkinname.Text = word2
 | 
			
		||||
                ElseIf Len(line) > 0 And Left(line, 1) <> "#" Then
 | 
			
		||||
                    MsgBox "Error in SOC!" & vbCrLf & "Unknown line: " & line
 | 
			
		||||
                End If
 | 
			
		||||
            Loop
 | 
			
		||||
            Exit Do
 | 
			
		||||
        End If
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.Close
 | 
			
		||||
    Set myFSO = Nothing
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub lstPlayers_Click()
 | 
			
		||||
    Call ClearForm
 | 
			
		||||
    Call ReadSOCPlayer(lstPlayers.ListIndex)
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub WriteCharacter(Remove As Boolean)
 | 
			
		||||
    Dim myFSOSource As New Scripting.FileSystemObject
 | 
			
		||||
    Dim tsSource As TextStream
 | 
			
		||||
    Dim myFSOTarget As New Scripting.FileSystemObject
 | 
			
		||||
    Dim tsTarget As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim word As String
 | 
			
		||||
    Dim word2 As String
 | 
			
		||||
    Dim charfound As Boolean
 | 
			
		||||
    
 | 
			
		||||
    charfound = False
 | 
			
		||||
    
 | 
			
		||||
    Set tsSource = myFSOSource.OpenTextFile(SOCFile, ForReading, False)
 | 
			
		||||
    Set tsTarget = myFSOTarget.OpenTextFile(SOCTemp, ForWriting, True)
 | 
			
		||||
    
 | 
			
		||||
    Do While Not tsSource.AtEndOfStream
 | 
			
		||||
        line = tsSource.ReadLine
 | 
			
		||||
        word = UCase(FirstToken(line))
 | 
			
		||||
        word2 = UCase(SecondToken(line))
 | 
			
		||||
        
 | 
			
		||||
        'If the current character exists in the SOC, delete it.
 | 
			
		||||
        If word = "CHARACTER" And Val(word2) = lstPlayers.ListIndex Then
 | 
			
		||||
            charfound = True
 | 
			
		||||
            Do While Len(TrimComplete(tsSource.ReadLine)) > 0 And Not (tsSource.AtEndOfStream)
 | 
			
		||||
            Loop
 | 
			
		||||
        Else
 | 
			
		||||
            tsTarget.WriteLine line
 | 
			
		||||
        End If
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    tsSource.Close
 | 
			
		||||
    Set myFSOSource = Nothing
 | 
			
		||||
    
 | 
			
		||||
    If Remove = False Then
 | 
			
		||||
        If line <> "" Then tsTarget.WriteLine ""
 | 
			
		||||
    
 | 
			
		||||
        tsTarget.WriteLine "CHARACTER " & lstPlayers.ListIndex
 | 
			
		||||
        txtPlayername.Text = TrimComplete(txtPlayername.Text)
 | 
			
		||||
        txtMenuposition.Text = TrimComplete(txtMenuposition.Text)
 | 
			
		||||
        txtPicname.Text = TrimComplete(txtPicname.Text)
 | 
			
		||||
        txtSkinname.Text = TrimComplete(txtSkinname.Text)
 | 
			
		||||
        If txtPlayername.Text <> "" Then tsTarget.WriteLine "PLAYERNAME = " & txtPlayername.Text
 | 
			
		||||
        If txtMenuposition.Text <> "" Then tsTarget.WriteLine "MENUPOSITION = " & Val(txtMenuposition.Text)
 | 
			
		||||
        If txtPicname.Text <> "" Then tsTarget.WriteLine "PICNAME = " & txtPicname.Text
 | 
			
		||||
        If txtSkinname.Text <> "" Then tsTarget.WriteLine "SKINNAME = " & txtSkinname.Text
 | 
			
		||||
        If chkEnabled.Value = 1 Then
 | 
			
		||||
            tsTarget.WriteLine "STATUS = 32"
 | 
			
		||||
        Else
 | 
			
		||||
            tsTarget.WriteLine "STATUS = 0"
 | 
			
		||||
        End If
 | 
			
		||||
        If txtPlayertext.Text <> "" Then tsTarget.WriteLine "PLAYERTEXT = " & txtPlayertext.Text & "#"
 | 
			
		||||
    End If
 | 
			
		||||
    
 | 
			
		||||
    tsTarget.Close
 | 
			
		||||
    Set myFSOTarget = Nothing
 | 
			
		||||
    
 | 
			
		||||
    FileCopy SOCTemp, SOCFile
 | 
			
		||||
    
 | 
			
		||||
    Kill SOCTemp
 | 
			
		||||
    
 | 
			
		||||
    If Remove = True Then
 | 
			
		||||
        If charfound = True Then
 | 
			
		||||
            MsgBox "Player choice removed from SOC."
 | 
			
		||||
        Else
 | 
			
		||||
            MsgBox "Player choice not found in SOC."
 | 
			
		||||
        End If
 | 
			
		||||
    Else
 | 
			
		||||
        MsgBox "Character Saved."
 | 
			
		||||
    End If
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -1,384 +0,0 @@
 | 
			
		|||
VERSION 5.00
 | 
			
		||||
Begin VB.Form frmEmblemEdit 
 | 
			
		||||
   Caption         =   "Emblem Edit"
 | 
			
		||||
   ClientHeight    =   2865
 | 
			
		||||
   ClientLeft      =   60
 | 
			
		||||
   ClientTop       =   345
 | 
			
		||||
   ClientWidth     =   5160
 | 
			
		||||
   Icon            =   "frmEmblemEdit.frx":0000
 | 
			
		||||
   LinkTopic       =   "Form1"
 | 
			
		||||
   MaxButton       =   0   'False
 | 
			
		||||
   ScaleHeight     =   2865
 | 
			
		||||
   ScaleWidth      =   5160
 | 
			
		||||
   StartUpPosition =   3  'Windows Default
 | 
			
		||||
   Begin VB.CommandButton cmdDelete 
 | 
			
		||||
      Caption         =   "&Delete Last Emblem"
 | 
			
		||||
      Height          =   735
 | 
			
		||||
      Left            =   1560
 | 
			
		||||
      Style           =   1  'Graphical
 | 
			
		||||
      TabIndex        =   17
 | 
			
		||||
      Top             =   600
 | 
			
		||||
      Width           =   855
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdAdd 
 | 
			
		||||
      Caption         =   "&Add"
 | 
			
		||||
      Height          =   375
 | 
			
		||||
      Left            =   1560
 | 
			
		||||
      TabIndex        =   16
 | 
			
		||||
      Top             =   120
 | 
			
		||||
      Width           =   855
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdSave 
 | 
			
		||||
      Caption         =   "&Save Emblem"
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   4200
 | 
			
		||||
      Style           =   1  'Graphical
 | 
			
		||||
      TabIndex        =   13
 | 
			
		||||
      Top             =   2280
 | 
			
		||||
      Width           =   855
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdReload 
 | 
			
		||||
      Caption         =   "&Reload"
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   3120
 | 
			
		||||
      TabIndex        =   12
 | 
			
		||||
      Top             =   2280
 | 
			
		||||
      Width           =   975
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtPlayernum 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   4320
 | 
			
		||||
      MaxLength       =   3
 | 
			
		||||
      TabIndex        =   9
 | 
			
		||||
      Top             =   1800
 | 
			
		||||
      Width           =   735
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtMapnum 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   4320
 | 
			
		||||
      MaxLength       =   4
 | 
			
		||||
      TabIndex        =   7
 | 
			
		||||
      Top             =   1320
 | 
			
		||||
      Width           =   735
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtZ 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   4320
 | 
			
		||||
      MaxLength       =   5
 | 
			
		||||
      TabIndex        =   3
 | 
			
		||||
      Top             =   960
 | 
			
		||||
      Width           =   735
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtY 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   4320
 | 
			
		||||
      MaxLength       =   5
 | 
			
		||||
      TabIndex        =   2
 | 
			
		||||
      Top             =   600
 | 
			
		||||
      Width           =   735
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtX 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   4320
 | 
			
		||||
      MaxLength       =   5
 | 
			
		||||
      TabIndex        =   1
 | 
			
		||||
      Top             =   240
 | 
			
		||||
      Width           =   735
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.ListBox lstEmblems 
 | 
			
		||||
      Height          =   2400
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   0
 | 
			
		||||
      Top             =   120
 | 
			
		||||
      Width           =   1335
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label Label1 
 | 
			
		||||
      Caption         =   "Emblem #s must be linear, sorry!"
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   1560
 | 
			
		||||
      TabIndex        =   18
 | 
			
		||||
      Top             =   2400
 | 
			
		||||
      Width           =   1455
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblNumEmblems 
 | 
			
		||||
      Caption         =   "# of Emblems:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   15
 | 
			
		||||
      Top             =   2520
 | 
			
		||||
      Width           =   1335
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblNote2 
 | 
			
		||||
      Caption         =   "Don't forget to set Game Data file and # of Emblems in Global Game Settings!"
 | 
			
		||||
      Height          =   855
 | 
			
		||||
      Left            =   1560
 | 
			
		||||
      TabIndex        =   14
 | 
			
		||||
      Top             =   1440
 | 
			
		||||
      Width           =   1575
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblNote 
 | 
			
		||||
      Appearance      =   0  'Flat
 | 
			
		||||
      BorderStyle     =   1  'Fixed Single
 | 
			
		||||
      Caption         =   "Note: Enter map coordinates, not game coordinates. (I.e., 128, not 8388608)"
 | 
			
		||||
      ForeColor       =   &H80000008&
 | 
			
		||||
      Height          =   1095
 | 
			
		||||
      Left            =   2640
 | 
			
		||||
      TabIndex        =   11
 | 
			
		||||
      Top             =   120
 | 
			
		||||
      Width           =   1335
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblPlayernum 
 | 
			
		||||
      Caption         =   "Player # (255 for all players):"
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   3240
 | 
			
		||||
      TabIndex        =   10
 | 
			
		||||
      Top             =   1680
 | 
			
		||||
      Width           =   1095
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblMapnum 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Map #:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   3600
 | 
			
		||||
      TabIndex        =   8
 | 
			
		||||
      Top             =   1320
 | 
			
		||||
      Width           =   615
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblZ 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Z:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   3960
 | 
			
		||||
      TabIndex        =   6
 | 
			
		||||
      Top             =   960
 | 
			
		||||
      Width           =   255
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblY 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Y:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   3960
 | 
			
		||||
      TabIndex        =   5
 | 
			
		||||
      Top             =   600
 | 
			
		||||
      Width           =   255
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblX 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "X:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   3960
 | 
			
		||||
      TabIndex        =   4
 | 
			
		||||
      Top             =   240
 | 
			
		||||
      Width           =   255
 | 
			
		||||
   End
 | 
			
		||||
End
 | 
			
		||||
Attribute VB_Name = "frmEmblemEdit"
 | 
			
		||||
Attribute VB_GlobalNameSpace = False
 | 
			
		||||
Attribute VB_Creatable = False
 | 
			
		||||
Attribute VB_PredeclaredId = True
 | 
			
		||||
Attribute VB_Exposed = False
 | 
			
		||||
Option Explicit
 | 
			
		||||
 | 
			
		||||
Private Sub cmdAdd_Click()
 | 
			
		||||
    lstEmblems.AddItem "Emblem " & lstEmblems.ListCount + 1
 | 
			
		||||
    lstEmblems.ListIndex = lstEmblems.ListCount - 1
 | 
			
		||||
    lblNumEmblems.Caption = "# of Emblems: " & lstEmblems.ListCount
 | 
			
		||||
    txtX.Text = 0
 | 
			
		||||
    txtY.Text = 0
 | 
			
		||||
    txtZ.Text = 0
 | 
			
		||||
    txtPlayernum.Text = 255
 | 
			
		||||
    txtMapnum.Text = 1
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdDelete_Click()
 | 
			
		||||
    Call WriteEmblem(True)
 | 
			
		||||
    lstEmblems.RemoveItem lstEmblems.ListCount - 1
 | 
			
		||||
    lstEmblems.ListIndex = lstEmblems.ListCount - 1
 | 
			
		||||
    lblNumEmblems.Caption = "# of Emblems: " & lstEmblems.ListCount
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdReload_Click()
 | 
			
		||||
    Call Reload
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub Reload()
 | 
			
		||||
    lstEmblems.Clear
 | 
			
		||||
    txtX.Text = ""
 | 
			
		||||
    txtY.Text = ""
 | 
			
		||||
    txtZ.Text = ""
 | 
			
		||||
    txtMapnum.Text = ""
 | 
			
		||||
    txtPlayernum.Text = ""
 | 
			
		||||
    lblNumEmblems.Caption = "# of Emblems: " & lstEmblems.ListCount
 | 
			
		||||
    Call ReadSOCEmblems
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdSave_Click()
 | 
			
		||||
    If lstEmblems.ListCount <= 0 Then
 | 
			
		||||
        MsgBox "You have no emblems to save!"
 | 
			
		||||
    Else
 | 
			
		||||
        Call WriteEmblem(False)
 | 
			
		||||
    End If
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub Form_Load()
 | 
			
		||||
    Call Reload
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub ReadSOCEmblems()
 | 
			
		||||
    Dim myFSO As New Scripting.FileSystemObject
 | 
			
		||||
    Dim ts As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim word As String
 | 
			
		||||
    Dim word2 As String
 | 
			
		||||
    
 | 
			
		||||
    Set ts = myFSO.OpenTextFile(SOCFile, ForReading, False)
 | 
			
		||||
    
 | 
			
		||||
    lstEmblems.Clear
 | 
			
		||||
    
 | 
			
		||||
EmblemLoad:
 | 
			
		||||
    Do While Not ts.AtEndOfStream
 | 
			
		||||
        line = ts.ReadLine
 | 
			
		||||
        
 | 
			
		||||
        If Left(line, 1) = "#" Then GoTo EmblemLoad
 | 
			
		||||
        
 | 
			
		||||
        If Left(line, 1) = vbCrLf Then GoTo EmblemLoad
 | 
			
		||||
        
 | 
			
		||||
        If Len(line) < 1 Then GoTo EmblemLoad
 | 
			
		||||
        
 | 
			
		||||
        word = FirstToken(line)
 | 
			
		||||
        word2 = SecondToken(line)
 | 
			
		||||
        
 | 
			
		||||
        If UCase(word) = "EMBLEM" Then
 | 
			
		||||
            lstEmblems.AddItem ("Emblem " & Val(word2))
 | 
			
		||||
        End If
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.Close
 | 
			
		||||
    Set myFSO = Nothing
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub ReadSOCEmblemNum(num As Integer)
 | 
			
		||||
    Dim myFSO As New Scripting.FileSystemObject
 | 
			
		||||
    Dim ts As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim word As String
 | 
			
		||||
    Dim word2 As String
 | 
			
		||||
    
 | 
			
		||||
    Set ts = myFSO.OpenTextFile(SOCFile, ForReading, False)
 | 
			
		||||
    
 | 
			
		||||
EmblemLoad:
 | 
			
		||||
    Do While Not ts.AtEndOfStream
 | 
			
		||||
        line = ts.ReadLine
 | 
			
		||||
        
 | 
			
		||||
        If Left(line, 1) = "#" Then GoTo EmblemLoad
 | 
			
		||||
        
 | 
			
		||||
        If Left(line, 1) = vbCrLf Then GoTo EmblemLoad
 | 
			
		||||
        
 | 
			
		||||
        If Len(line) < 1 Then GoTo EmblemLoad
 | 
			
		||||
        
 | 
			
		||||
        word = UCase(FirstToken(line))
 | 
			
		||||
        word2 = UCase(SecondToken(line))
 | 
			
		||||
        
 | 
			
		||||
        If word = "EMBLEM" Then
 | 
			
		||||
            If Val(word2) = num Then
 | 
			
		||||
                Do While Len(line) > 0 And Not ts.AtEndOfStream
 | 
			
		||||
                    line = ts.ReadLine
 | 
			
		||||
                    word = UCase(FirstToken(line))
 | 
			
		||||
                    word2 = UCase(SecondTokenEqual(line))
 | 
			
		||||
                    
 | 
			
		||||
                    If word = "X" Then
 | 
			
		||||
                        txtX.Text = Val(word2)
 | 
			
		||||
                    ElseIf word = "Y" Then
 | 
			
		||||
                        txtY.Text = Val(word2)
 | 
			
		||||
                    ElseIf word = "Z" Then
 | 
			
		||||
                        txtZ.Text = Val(word2)
 | 
			
		||||
                    ElseIf word = "PLAYERNUM" Then
 | 
			
		||||
                        txtPlayernum.Text = Val(word2)
 | 
			
		||||
                    ElseIf word = "MAPNUM" Then
 | 
			
		||||
                        txtMapnum.Text = Val(word2)
 | 
			
		||||
                    ElseIf Len(line) > 0 And Left(line, 1) <> "#" Then
 | 
			
		||||
                        MsgBox "Error in SOC with Emblem " & num & vbCrLf & "Unknown line: " & line
 | 
			
		||||
                    End If
 | 
			
		||||
                Loop
 | 
			
		||||
                Exit Do
 | 
			
		||||
            End If
 | 
			
		||||
        End If
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.Close
 | 
			
		||||
    Set myFSO = Nothing
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub lstEmblems_Click()
 | 
			
		||||
    Dim i As Integer
 | 
			
		||||
    
 | 
			
		||||
    i = InStr(lstEmblems.List(lstEmblems.ListIndex), " ") + 1
 | 
			
		||||
    
 | 
			
		||||
    i = Mid(lstEmblems.List(lstEmblems.ListIndex), i, Len(lstEmblems.List(lstEmblems.ListIndex)) - i + 1)
 | 
			
		||||
    i = Val(i)
 | 
			
		||||
    Call ReadSOCEmblemNum(i)
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub WriteEmblem(Remove As Boolean)
 | 
			
		||||
    Dim myFSOSource As New Scripting.FileSystemObject
 | 
			
		||||
    Dim tsSource As TextStream
 | 
			
		||||
    Dim myFSOTarget As New Scripting.FileSystemObject
 | 
			
		||||
    Dim tsTarget As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim word As String
 | 
			
		||||
    Dim word2 As String
 | 
			
		||||
    Dim i As Integer
 | 
			
		||||
    
 | 
			
		||||
    Set tsSource = myFSOSource.OpenTextFile(SOCFile, ForReading, False)
 | 
			
		||||
    Set tsTarget = myFSOTarget.OpenTextFile(SOCTemp, ForWriting, True)
 | 
			
		||||
    
 | 
			
		||||
    Do While Not tsSource.AtEndOfStream
 | 
			
		||||
        line = tsSource.ReadLine
 | 
			
		||||
        word = UCase(FirstToken(line))
 | 
			
		||||
        word2 = UCase(SecondToken(line))
 | 
			
		||||
        i = InStr(lstEmblems.List(lstEmblems.ListIndex), " ") + 1
 | 
			
		||||
    
 | 
			
		||||
        i = Mid(lstEmblems.List(lstEmblems.ListIndex), i, Len(lstEmblems.List(lstEmblems.ListIndex)) - i + 1)
 | 
			
		||||
        i = Val(i)
 | 
			
		||||
 | 
			
		||||
        'If the current emblem exists in the SOC, delete it.
 | 
			
		||||
        If word = "EMBLEM" And Val(word2) = i Then
 | 
			
		||||
            Do While Len(TrimComplete(tsSource.ReadLine)) > 0 And Not (tsSource.AtEndOfStream)
 | 
			
		||||
            Loop
 | 
			
		||||
        Else
 | 
			
		||||
            tsTarget.WriteLine line
 | 
			
		||||
        End If
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    tsSource.Close
 | 
			
		||||
    Set myFSOSource = Nothing
 | 
			
		||||
    
 | 
			
		||||
    If Remove = False Then
 | 
			
		||||
        If line <> "" Then tsTarget.WriteLine ""
 | 
			
		||||
    
 | 
			
		||||
        tsTarget.WriteLine UCase(lstEmblems.List(lstEmblems.ListIndex))
 | 
			
		||||
        txtX.Text = TrimComplete(txtX.Text)
 | 
			
		||||
        txtY.Text = TrimComplete(txtY.Text)
 | 
			
		||||
        txtZ.Text = TrimComplete(txtZ.Text)
 | 
			
		||||
        txtMapnum.Text = TrimComplete(txtMapnum.Text)
 | 
			
		||||
        txtPlayernum.Text = TrimComplete(txtPlayernum.Text)
 | 
			
		||||
        If txtX.Text <> "" Then tsTarget.WriteLine "X = " & Val(txtX.Text)
 | 
			
		||||
        If txtY.Text <> "" Then tsTarget.WriteLine "Y = " & Val(txtY.Text)
 | 
			
		||||
        If txtZ.Text <> "" Then tsTarget.WriteLine "Z = " & Val(txtZ.Text)
 | 
			
		||||
        If txtMapnum.Text <> "" Then tsTarget.WriteLine "MAPNUM = " & Val(txtMapnum.Text)
 | 
			
		||||
        If txtPlayernum.Text <> "" Then tsTarget.WriteLine "PLAYERNUM = " & Val(txtPlayernum.Text)
 | 
			
		||||
    End If
 | 
			
		||||
    
 | 
			
		||||
    tsTarget.Close
 | 
			
		||||
    Set myFSOTarget = Nothing
 | 
			
		||||
    
 | 
			
		||||
    FileCopy SOCTemp, SOCFile
 | 
			
		||||
    
 | 
			
		||||
    Kill SOCTemp
 | 
			
		||||
    
 | 
			
		||||
    If Remove = True Then
 | 
			
		||||
        MsgBox "Emblem deleted."
 | 
			
		||||
    Else
 | 
			
		||||
        MsgBox "Emblem Saved."
 | 
			
		||||
    End If
 | 
			
		||||
End Sub
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -1,315 +0,0 @@
 | 
			
		|||
VERSION 5.00
 | 
			
		||||
Begin VB.Form frmHUDEdit 
 | 
			
		||||
   Caption         =   "HUD Edit"
 | 
			
		||||
   ClientHeight    =   2505
 | 
			
		||||
   ClientLeft      =   60
 | 
			
		||||
   ClientTop       =   345
 | 
			
		||||
   ClientWidth     =   5160
 | 
			
		||||
   Icon            =   "frmHUDEdit.frx":0000
 | 
			
		||||
   LinkTopic       =   "Form1"
 | 
			
		||||
   MaxButton       =   0   'False
 | 
			
		||||
   ScaleHeight     =   2505
 | 
			
		||||
   ScaleWidth      =   5160
 | 
			
		||||
   StartUpPosition =   3  'Windows Default
 | 
			
		||||
   Begin VB.CommandButton cmdCodeDefault 
 | 
			
		||||
      Caption         =   "&Load Code Default"
 | 
			
		||||
      Height          =   375
 | 
			
		||||
      Left            =   3480
 | 
			
		||||
      TabIndex        =   9
 | 
			
		||||
      Top             =   1080
 | 
			
		||||
      Width           =   1575
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdDelete 
 | 
			
		||||
      Caption         =   "&Delete from SOC"
 | 
			
		||||
      Height          =   375
 | 
			
		||||
      Left            =   3480
 | 
			
		||||
      TabIndex        =   7
 | 
			
		||||
      Top             =   2040
 | 
			
		||||
      Width           =   1575
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdSave 
 | 
			
		||||
      Caption         =   "&Save Changes"
 | 
			
		||||
      Height          =   375
 | 
			
		||||
      Left            =   3480
 | 
			
		||||
      TabIndex        =   6
 | 
			
		||||
      Top             =   1560
 | 
			
		||||
      Width           =   1575
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtY 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   4080
 | 
			
		||||
      MaxLength       =   3
 | 
			
		||||
      TabIndex        =   3
 | 
			
		||||
      Top             =   720
 | 
			
		||||
      Width           =   615
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtX 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   4080
 | 
			
		||||
      MaxLength       =   3
 | 
			
		||||
      TabIndex        =   2
 | 
			
		||||
      Top             =   360
 | 
			
		||||
      Width           =   615
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.ListBox lstHUD 
 | 
			
		||||
      Height          =   2010
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   0
 | 
			
		||||
      Top             =   360
 | 
			
		||||
      Width           =   3255
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblNote 
 | 
			
		||||
      Caption         =   "HUD items are placed on a 320x200 grid."
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   1680
 | 
			
		||||
      TabIndex        =   8
 | 
			
		||||
      Top             =   120
 | 
			
		||||
      Width           =   3015
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblY 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Y:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   3600
 | 
			
		||||
      TabIndex        =   5
 | 
			
		||||
      Top             =   720
 | 
			
		||||
      Width           =   375
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblX 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "X:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   3720
 | 
			
		||||
      TabIndex        =   4
 | 
			
		||||
      Top             =   360
 | 
			
		||||
      Width           =   255
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblHUDItems 
 | 
			
		||||
      Caption         =   "HUD Items:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   1
 | 
			
		||||
      Top             =   120
 | 
			
		||||
      Width           =   975
 | 
			
		||||
   End
 | 
			
		||||
End
 | 
			
		||||
Attribute VB_Name = "frmHUDEdit"
 | 
			
		||||
Attribute VB_GlobalNameSpace = False
 | 
			
		||||
Attribute VB_Creatable = False
 | 
			
		||||
Attribute VB_PredeclaredId = True
 | 
			
		||||
Attribute VB_Exposed = False
 | 
			
		||||
Option Explicit
 | 
			
		||||
 | 
			
		||||
Private Sub cmdCodeDefault_Click()
 | 
			
		||||
    LoadHUDInfo (lstHUD.ListIndex)
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdDelete_Click()
 | 
			
		||||
    Call WriteHUDItem(True)
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdSave_Click()
 | 
			
		||||
    Call WriteHUDItem(False)
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub Form_Load()
 | 
			
		||||
    Call Reload
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub Reload()
 | 
			
		||||
    txtX.Text = ""
 | 
			
		||||
    txtY.Text = ""
 | 
			
		||||
    Call LoadCode
 | 
			
		||||
    lstHUD.ListIndex = 0
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub LoadCode()
 | 
			
		||||
    Dim myFSO As New Scripting.FileSystemObject
 | 
			
		||||
    Dim ts As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim number As Integer
 | 
			
		||||
    Dim startclip As Integer, endclip As Integer
 | 
			
		||||
    Dim addstring As String
 | 
			
		||||
    
 | 
			
		||||
    ChDir SourcePath
 | 
			
		||||
    Set ts = myFSO.OpenTextFile("st_stuff.h", ForReading, False)
 | 
			
		||||
    
 | 
			
		||||
    Do While ts.ReadLine <> "/** HUD location information (don't move this comment)"
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.ReadLine ' */
 | 
			
		||||
    ts.ReadLine ' typedef struct
 | 
			
		||||
    ts.ReadLine ' {
 | 
			
		||||
    ts.ReadLine ' int x, y;
 | 
			
		||||
    ts.ReadLine ' } hudinfo_t;
 | 
			
		||||
    ts.ReadLine '
 | 
			
		||||
    ts.ReadLine ' typedef enum
 | 
			
		||||
    ts.ReadLine ' {
 | 
			
		||||
    
 | 
			
		||||
    line = ts.ReadLine
 | 
			
		||||
    number = 0
 | 
			
		||||
    
 | 
			
		||||
    lstHUD.Clear
 | 
			
		||||
    
 | 
			
		||||
    Do While InStr(line, "NUMHUDITEMS") = 0
 | 
			
		||||
        startclip = InStr(line, "HUD_")
 | 
			
		||||
        If InStr(line, "HUD_") <> 0 Then
 | 
			
		||||
            endclip = InStr(line, ",")
 | 
			
		||||
            line = Mid(line, startclip, endclip - startclip)
 | 
			
		||||
            addstring = number & " - " & line
 | 
			
		||||
            lstHUD.AddItem addstring
 | 
			
		||||
            number = number + 1
 | 
			
		||||
        End If
 | 
			
		||||
        line = ts.ReadLine
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.Close
 | 
			
		||||
    Set myFSO = Nothing
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub lstHUD_Click()
 | 
			
		||||
    LoadHUDInfo (lstHUD.ListIndex)
 | 
			
		||||
    Call ReadSOC(lstHUD.ListIndex)
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub LoadHUDInfo(HUDNum As Integer)
 | 
			
		||||
    Dim myFSO As New Scripting.FileSystemObject
 | 
			
		||||
    Dim ts As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim number As Integer
 | 
			
		||||
    Dim startclip As Integer, endclip As Integer
 | 
			
		||||
    
 | 
			
		||||
    ChDir SourcePath
 | 
			
		||||
    Set ts = myFSO.OpenTextFile("st_stuff.c", ForReading, False)
 | 
			
		||||
    
 | 
			
		||||
    Do While InStr(ts.ReadLine, "hudinfo[NUMHUDITEMS] =") = 0
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.SkipLine ' {
 | 
			
		||||
    line = ts.ReadLine ' First HUD item
 | 
			
		||||
    
 | 
			
		||||
    number = 0
 | 
			
		||||
    
 | 
			
		||||
    Do While number <> HUDNum
 | 
			
		||||
        line = ts.ReadLine
 | 
			
		||||
        number = number + 1
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    startclip = InStr(line, "{") + 1
 | 
			
		||||
    endclip = InStr(line, ",")
 | 
			
		||||
    
 | 
			
		||||
    txtX.Text = TrimComplete(Mid(line, startclip, endclip - startclip))
 | 
			
		||||
    
 | 
			
		||||
    startclip = endclip + 2
 | 
			
		||||
    endclip = InStr(startclip, line, "}") - 1
 | 
			
		||||
    
 | 
			
		||||
    txtY.Text = TrimComplete(Mid(line, startclip, endclip - startclip))
 | 
			
		||||
        
 | 
			
		||||
    ts.Close
 | 
			
		||||
    Set myFSO = Nothing
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub ReadSOC(HUDNum As Integer)
 | 
			
		||||
    Dim myFSO As New Scripting.FileSystemObject
 | 
			
		||||
    Dim ts As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim word As String
 | 
			
		||||
    Dim word2 As String
 | 
			
		||||
    
 | 
			
		||||
    Set ts = myFSO.OpenTextFile(SOCFile, ForReading, False)
 | 
			
		||||
    
 | 
			
		||||
SOCLoad:
 | 
			
		||||
    Do While Not ts.AtEndOfStream
 | 
			
		||||
        line = ts.ReadLine
 | 
			
		||||
        
 | 
			
		||||
        If Left(line, 1) = "#" Then GoTo SOCLoad
 | 
			
		||||
        
 | 
			
		||||
        If Left(line, 1) = vbCrLf Then GoTo SOCLoad
 | 
			
		||||
        
 | 
			
		||||
        If Len(line) < 1 Then GoTo SOCLoad
 | 
			
		||||
        
 | 
			
		||||
        word = FirstToken(line)
 | 
			
		||||
        word2 = SecondToken(line)
 | 
			
		||||
        
 | 
			
		||||
        If UCase(word) = "HUDITEM" And Val(word2) = HUDNum Then
 | 
			
		||||
            Do While Len(line) > 0 And Not ts.AtEndOfStream
 | 
			
		||||
                line = ts.ReadLine
 | 
			
		||||
                word = UCase(FirstToken(line))
 | 
			
		||||
                word2 = UCase(SecondTokenEqual(line))
 | 
			
		||||
                    
 | 
			
		||||
                If word = "X" Then
 | 
			
		||||
                    txtX.Text = Val(word2)
 | 
			
		||||
                ElseIf word = "Y" Then
 | 
			
		||||
                    txtY.Text = Val(word2)
 | 
			
		||||
                ElseIf Len(line) > 0 And Left(line, 1) <> "#" Then
 | 
			
		||||
                    MsgBox "Error in SOC!" & vbCrLf & "Unknown line: " & line
 | 
			
		||||
                End If
 | 
			
		||||
            Loop
 | 
			
		||||
            Exit Do
 | 
			
		||||
        End If
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.Close
 | 
			
		||||
    Set myFSO = Nothing
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub WriteHUDItem(Remove As Boolean)
 | 
			
		||||
    Dim myFSOSource As New Scripting.FileSystemObject
 | 
			
		||||
    Dim tsSource As TextStream
 | 
			
		||||
    Dim myFSOTarget As New Scripting.FileSystemObject
 | 
			
		||||
    Dim tsTarget As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim word As String
 | 
			
		||||
    Dim word2 As String
 | 
			
		||||
    Dim hudremoved As Boolean
 | 
			
		||||
    
 | 
			
		||||
    hudremoved = False
 | 
			
		||||
    
 | 
			
		||||
    Set tsSource = myFSOSource.OpenTextFile(SOCFile, ForReading, False)
 | 
			
		||||
    Set tsTarget = myFSOTarget.OpenTextFile(SOCTemp, ForWriting, True)
 | 
			
		||||
    
 | 
			
		||||
    Do While Not tsSource.AtEndOfStream
 | 
			
		||||
        line = tsSource.ReadLine
 | 
			
		||||
        word = UCase(FirstToken(line))
 | 
			
		||||
        word2 = UCase(SecondToken(line))
 | 
			
		||||
        
 | 
			
		||||
        'If the current item exists in the SOC, delete it.
 | 
			
		||||
        If word = "HUDITEM" And Val(word2) = lstHUD.ListIndex Then
 | 
			
		||||
            hudremoved = True
 | 
			
		||||
            Do While Len(TrimComplete(tsSource.ReadLine)) > 0 And Not tsSource.AtEndOfStream
 | 
			
		||||
            Loop
 | 
			
		||||
        Else
 | 
			
		||||
            tsTarget.WriteLine line
 | 
			
		||||
        End If
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    tsSource.Close
 | 
			
		||||
    Set myFSOSource = Nothing
 | 
			
		||||
    
 | 
			
		||||
    If Remove = False Then
 | 
			
		||||
        If line <> "" Then tsTarget.WriteLine ""
 | 
			
		||||
    
 | 
			
		||||
        tsTarget.WriteLine "HUDITEM " & lstHUD.ListIndex
 | 
			
		||||
        txtX.Text = TrimComplete(txtX.Text)
 | 
			
		||||
        txtY.Text = TrimComplete(txtY.Text)
 | 
			
		||||
        If txtX.Text <> "" Then tsTarget.WriteLine "X = " & Val(txtX.Text)
 | 
			
		||||
        If txtY.Text <> "" Then tsTarget.WriteLine "Y = " & Val(txtY.Text)
 | 
			
		||||
    End If
 | 
			
		||||
    
 | 
			
		||||
    tsTarget.Close
 | 
			
		||||
    Set myFSOTarget = Nothing
 | 
			
		||||
    
 | 
			
		||||
    FileCopy SOCTemp, SOCFile
 | 
			
		||||
    
 | 
			
		||||
    Kill SOCTemp
 | 
			
		||||
    
 | 
			
		||||
    If Remove = True Then
 | 
			
		||||
        If hudremoved = True Then
 | 
			
		||||
            MsgBox "HUD Item deleted from SOC."
 | 
			
		||||
        Else
 | 
			
		||||
            MsgBox "Couldn't find HUD Item in SOC."
 | 
			
		||||
        End If
 | 
			
		||||
    Else
 | 
			
		||||
        MsgBox "HUD Item Saved."
 | 
			
		||||
    End If
 | 
			
		||||
End Sub
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -1,213 +0,0 @@
 | 
			
		|||
VERSION 5.00
 | 
			
		||||
Begin VB.Form frmHelp 
 | 
			
		||||
   BorderStyle     =   3  'Fixed Dialog
 | 
			
		||||
   Caption         =   "Getting Started"
 | 
			
		||||
   ClientHeight    =   7395
 | 
			
		||||
   ClientLeft      =   45
 | 
			
		||||
   ClientTop       =   330
 | 
			
		||||
   ClientWidth     =   6360
 | 
			
		||||
   Icon            =   "frmHelp.frx":0000
 | 
			
		||||
   LinkTopic       =   "Form1"
 | 
			
		||||
   MaxButton       =   0   'False
 | 
			
		||||
   MinButton       =   0   'False
 | 
			
		||||
   ScaleHeight     =   7395
 | 
			
		||||
   ScaleWidth      =   6360
 | 
			
		||||
   ShowInTaskbar   =   0   'False
 | 
			
		||||
   StartUpPosition =   1  'CenterOwner
 | 
			
		||||
   Begin VB.CommandButton cmdOK 
 | 
			
		||||
      Caption         =   "&OK, I know what I'm doing now."
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   1920
 | 
			
		||||
      Style           =   1  'Graphical
 | 
			
		||||
      TabIndex        =   8
 | 
			
		||||
      Top             =   6840
 | 
			
		||||
      Width           =   2535
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Line Line9 
 | 
			
		||||
      X1              =   120
 | 
			
		||||
      X2              =   6120
 | 
			
		||||
      Y1              =   4800
 | 
			
		||||
      Y2              =   4800
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Line Line7 
 | 
			
		||||
      X1              =   120
 | 
			
		||||
      X2              =   6120
 | 
			
		||||
      Y1              =   5400
 | 
			
		||||
      Y2              =   5400
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label Label12 
 | 
			
		||||
      Caption         =   $"frmHelp.frx":0442
 | 
			
		||||
      Height          =   615
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   12
 | 
			
		||||
      Top             =   4800
 | 
			
		||||
      Width           =   6015
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Line Line6 
 | 
			
		||||
      X1              =   120
 | 
			
		||||
      X2              =   6120
 | 
			
		||||
      Y1              =   4200
 | 
			
		||||
      Y2              =   4200
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label Label11 
 | 
			
		||||
      Caption         =   $"frmHelp.frx":04F8
 | 
			
		||||
      Height          =   615
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   11
 | 
			
		||||
      Top             =   4200
 | 
			
		||||
      Width           =   6015
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Line Line8 
 | 
			
		||||
      X1              =   120
 | 
			
		||||
      X2              =   6120
 | 
			
		||||
      Y1              =   6360
 | 
			
		||||
      Y2              =   6360
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Line Line5 
 | 
			
		||||
      X1              =   120
 | 
			
		||||
      X2              =   6120
 | 
			
		||||
      Y1              =   3720
 | 
			
		||||
      Y2              =   3720
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Line Line4 
 | 
			
		||||
      X1              =   120
 | 
			
		||||
      X2              =   6120
 | 
			
		||||
      Y1              =   2880
 | 
			
		||||
      Y2              =   2880
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Line Line3 
 | 
			
		||||
      X1              =   120
 | 
			
		||||
      X2              =   6120
 | 
			
		||||
      Y1              =   2400
 | 
			
		||||
      Y2              =   2400
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Line Line2 
 | 
			
		||||
      X1              =   120
 | 
			
		||||
      X2              =   6120
 | 
			
		||||
      Y1              =   1800
 | 
			
		||||
      Y2              =   1800
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Line Line1 
 | 
			
		||||
      X1              =   120
 | 
			
		||||
      X2              =   6120
 | 
			
		||||
      Y1              =   1200
 | 
			
		||||
      Y2              =   1200
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label Label10 
 | 
			
		||||
      Caption         =   $"frmHelp.frx":05EC
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   10
 | 
			
		||||
      Top             =   3720
 | 
			
		||||
      Width           =   6135
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label Label9 
 | 
			
		||||
      Caption         =   $"frmHelp.frx":068F
 | 
			
		||||
      Height          =   615
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   9
 | 
			
		||||
      Top             =   1200
 | 
			
		||||
      Width           =   6135
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label Label8 
 | 
			
		||||
      Caption         =   $"frmHelp.frx":0772
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   7
 | 
			
		||||
      Top             =   6360
 | 
			
		||||
      Width           =   6135
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label Label7 
 | 
			
		||||
      Caption         =   "However, if you have these settings in the SOC you are using, don't worry - the editor will not erase them from your file."
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   6
 | 
			
		||||
      Top             =   5880
 | 
			
		||||
      Width           =   6135
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label Label6 
 | 
			
		||||
      Caption         =   $"frmHelp.frx":0816
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   5
 | 
			
		||||
      Top             =   5400
 | 
			
		||||
      Width           =   6135
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label Label5 
 | 
			
		||||
      Caption         =   $"frmHelp.frx":08A9
 | 
			
		||||
      BeginProperty Font 
 | 
			
		||||
         Name            =   "MS Sans Serif"
 | 
			
		||||
         Size            =   8.25
 | 
			
		||||
         Charset         =   0
 | 
			
		||||
         Weight          =   700
 | 
			
		||||
         Underline       =   0   'False
 | 
			
		||||
         Italic          =   0   'False
 | 
			
		||||
         Strikethrough   =   0   'False
 | 
			
		||||
      EndProperty
 | 
			
		||||
      Height          =   855
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   4
 | 
			
		||||
      Top             =   2880
 | 
			
		||||
      Width           =   6135
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label Label4 
 | 
			
		||||
      Caption         =   $"frmHelp.frx":09B1
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   3
 | 
			
		||||
      Top             =   2400
 | 
			
		||||
      Width           =   6135
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label Label3 
 | 
			
		||||
      Caption         =   $"frmHelp.frx":0A5A
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   2
 | 
			
		||||
      Top             =   1920
 | 
			
		||||
      Width           =   6135
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label Label2 
 | 
			
		||||
      Caption         =   "Finally! A way to easily edit SOC files! I know you're anxious to get started, but here are some things you should know first:"
 | 
			
		||||
      BeginProperty Font 
 | 
			
		||||
         Name            =   "MS Sans Serif"
 | 
			
		||||
         Size            =   9.75
 | 
			
		||||
         Charset         =   0
 | 
			
		||||
         Weight          =   400
 | 
			
		||||
         Underline       =   0   'False
 | 
			
		||||
         Italic          =   0   'False
 | 
			
		||||
         Strikethrough   =   0   'False
 | 
			
		||||
      EndProperty
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   1
 | 
			
		||||
      Top             =   600
 | 
			
		||||
      Width           =   6135
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label Label1 
 | 
			
		||||
      Caption         =   "How To Use This Program"
 | 
			
		||||
      BeginProperty Font 
 | 
			
		||||
         Name            =   "MS Sans Serif"
 | 
			
		||||
         Size            =   13.5
 | 
			
		||||
         Charset         =   0
 | 
			
		||||
         Weight          =   700
 | 
			
		||||
         Underline       =   -1  'True
 | 
			
		||||
         Italic          =   0   'False
 | 
			
		||||
         Strikethrough   =   0   'False
 | 
			
		||||
      EndProperty
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   0
 | 
			
		||||
      Top             =   120
 | 
			
		||||
      Width           =   3855
 | 
			
		||||
   End
 | 
			
		||||
End
 | 
			
		||||
Attribute VB_Name = "frmHelp"
 | 
			
		||||
Attribute VB_GlobalNameSpace = False
 | 
			
		||||
Attribute VB_Creatable = False
 | 
			
		||||
Attribute VB_PredeclaredId = True
 | 
			
		||||
Attribute VB_Exposed = False
 | 
			
		||||
Option Explicit
 | 
			
		||||
 | 
			
		||||
Private Sub cmdOK_Click()
 | 
			
		||||
    frmHelp.Hide
 | 
			
		||||
End Sub
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -1,429 +0,0 @@
 | 
			
		|||
VERSION 5.00
 | 
			
		||||
Begin VB.Form frmHub 
 | 
			
		||||
   Caption         =   "SOC Editor"
 | 
			
		||||
   ClientHeight    =   6960
 | 
			
		||||
   ClientLeft      =   60
 | 
			
		||||
   ClientTop       =   345
 | 
			
		||||
   ClientWidth     =   4920
 | 
			
		||||
   Icon            =   "frmHub.frx":0000
 | 
			
		||||
   LinkTopic       =   "Form1"
 | 
			
		||||
   MaxButton       =   0   'False
 | 
			
		||||
   ScaleHeight     =   6960
 | 
			
		||||
   ScaleWidth      =   4920
 | 
			
		||||
   StartUpPosition =   3  'Windows Default
 | 
			
		||||
   Begin VB.CommandButton cmdCreateBlank 
 | 
			
		||||
      Caption         =   "Make a &Blank SOC"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   240
 | 
			
		||||
      TabIndex        =   22
 | 
			
		||||
      Top             =   2520
 | 
			
		||||
      Width           =   2055
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdUnlockables 
 | 
			
		||||
      Caption         =   "Edit &Unlockables"
 | 
			
		||||
      Enabled         =   0   'False
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   2760
 | 
			
		||||
      Style           =   1  'Graphical
 | 
			
		||||
      TabIndex        =   21
 | 
			
		||||
      Top             =   6360
 | 
			
		||||
      Width           =   1095
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdAuthor 
 | 
			
		||||
      Caption         =   "Enter &Author Info"
 | 
			
		||||
      Enabled         =   0   'False
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      Style           =   1  'Graphical
 | 
			
		||||
      TabIndex        =   19
 | 
			
		||||
      Top             =   3960
 | 
			
		||||
      Width           =   1215
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdHelp 
 | 
			
		||||
      Caption         =   "Getting Starte&d / READ ME FIRST!"
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   480
 | 
			
		||||
      TabIndex        =   18
 | 
			
		||||
      Top             =   2880
 | 
			
		||||
      Width           =   1575
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdEditCutscenes 
 | 
			
		||||
      Caption         =   "Edit C&utscenes"
 | 
			
		||||
      Enabled         =   0   'False
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   17
 | 
			
		||||
      Top             =   6360
 | 
			
		||||
      Width           =   1215
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdCharacterEdit 
 | 
			
		||||
      Caption         =   "Edit &Character Select Screen"
 | 
			
		||||
      Enabled         =   0   'False
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      Style           =   1  'Graphical
 | 
			
		||||
      TabIndex        =   16
 | 
			
		||||
      Top             =   5760
 | 
			
		||||
      Width           =   1215
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.PictureBox Picture1 
 | 
			
		||||
      Height          =   1965
 | 
			
		||||
      Left            =   2760
 | 
			
		||||
      Picture         =   "frmHub.frx":0442
 | 
			
		||||
      ScaleHeight     =   1905
 | 
			
		||||
      ScaleWidth      =   1905
 | 
			
		||||
      TabIndex        =   15
 | 
			
		||||
      Top             =   3960
 | 
			
		||||
      Width           =   1965
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdSoundEdit 
 | 
			
		||||
      Caption         =   "Edit &Sounds"
 | 
			
		||||
      Enabled         =   0   'False
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   14
 | 
			
		||||
      Top             =   5160
 | 
			
		||||
      Width           =   1215
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdEmblemEdit 
 | 
			
		||||
      Caption         =   "Edit &Emblem Locations"
 | 
			
		||||
      Enabled         =   0   'False
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      Style           =   1  'Graphical
 | 
			
		||||
      TabIndex        =   13
 | 
			
		||||
      Top             =   4560
 | 
			
		||||
      Width           =   1215
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdHUDEdit 
 | 
			
		||||
      Caption         =   "Edit &HUD Coordinates"
 | 
			
		||||
      Enabled         =   0   'False
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   1440
 | 
			
		||||
      Style           =   1  'Graphical
 | 
			
		||||
      TabIndex        =   12
 | 
			
		||||
      Top             =   3960
 | 
			
		||||
      Width           =   1215
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdMaincfg 
 | 
			
		||||
      Caption         =   "Edit &Global Game Settings"
 | 
			
		||||
      Enabled         =   0   'False
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   1440
 | 
			
		||||
      Style           =   1  'Graphical
 | 
			
		||||
      TabIndex        =   11
 | 
			
		||||
      Top             =   4560
 | 
			
		||||
      Width           =   1215
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.DriveListBox Drive2 
 | 
			
		||||
      Height          =   315
 | 
			
		||||
      Left            =   2640
 | 
			
		||||
      TabIndex        =   9
 | 
			
		||||
      Top             =   360
 | 
			
		||||
      Width           =   2175
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.DirListBox Dir2 
 | 
			
		||||
      Height          =   1665
 | 
			
		||||
      Left            =   2520
 | 
			
		||||
      TabIndex        =   8
 | 
			
		||||
      Top             =   720
 | 
			
		||||
      Width           =   2295
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.FileListBox File1 
 | 
			
		||||
      Height          =   1455
 | 
			
		||||
      Left            =   2520
 | 
			
		||||
      Pattern         =   "*.soc"
 | 
			
		||||
      TabIndex        =   7
 | 
			
		||||
      Top             =   2400
 | 
			
		||||
      Width           =   2295
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.DriveListBox Drive1 
 | 
			
		||||
      Height          =   315
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   6
 | 
			
		||||
      Top             =   360
 | 
			
		||||
      Width           =   2295
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.DirListBox Dir1 
 | 
			
		||||
      Height          =   1665
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   4
 | 
			
		||||
      Top             =   720
 | 
			
		||||
      Width           =   2295
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdAbout 
 | 
			
		||||
      Caption         =   "&About"
 | 
			
		||||
      Height          =   375
 | 
			
		||||
      Left            =   3960
 | 
			
		||||
      TabIndex        =   3
 | 
			
		||||
      Top             =   6000
 | 
			
		||||
      Width           =   735
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdStateEdit 
 | 
			
		||||
      Caption         =   "Edit St&ates"
 | 
			
		||||
      Enabled         =   0   'False
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   1440
 | 
			
		||||
      TabIndex        =   2
 | 
			
		||||
      Top             =   6360
 | 
			
		||||
      Width           =   1215
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdLevelHeader 
 | 
			
		||||
      Caption         =   "Edit &Level Headers"
 | 
			
		||||
      Enabled         =   0   'False
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   1440
 | 
			
		||||
      Style           =   1  'Graphical
 | 
			
		||||
      TabIndex        =   1
 | 
			
		||||
      Top             =   5160
 | 
			
		||||
      Width           =   1215
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdThingEdit 
 | 
			
		||||
      Caption         =   "Edit &Things"
 | 
			
		||||
      Enabled         =   0   'False
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   1440
 | 
			
		||||
      TabIndex        =   0
 | 
			
		||||
      Top             =   5760
 | 
			
		||||
      Width           =   1215
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblAuthor 
 | 
			
		||||
      Caption         =   "Modification By:"
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   20
 | 
			
		||||
      Top             =   3480
 | 
			
		||||
      Width           =   2295
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblSOCFile 
 | 
			
		||||
      Caption         =   "SOC File to use (double click):"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   2640
 | 
			
		||||
      TabIndex        =   10
 | 
			
		||||
      Top             =   120
 | 
			
		||||
      Width           =   2175
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblSourcePath 
 | 
			
		||||
      Caption         =   "Path to SRB2 Source Code:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   5
 | 
			
		||||
      Top             =   120
 | 
			
		||||
      Width           =   2175
 | 
			
		||||
   End
 | 
			
		||||
End
 | 
			
		||||
Attribute VB_Name = "frmHub"
 | 
			
		||||
Attribute VB_GlobalNameSpace = False
 | 
			
		||||
Attribute VB_Creatable = False
 | 
			
		||||
Attribute VB_PredeclaredId = True
 | 
			
		||||
Attribute VB_Exposed = False
 | 
			
		||||
Option Explicit
 | 
			
		||||
 | 
			
		||||
Private Sub cmdAbout_Click()
 | 
			
		||||
    MsgBox App.Title & " v" & App.Major & "." & App.Minor & "." & App.Revision & vbCrLf & "By " & App.CompanyName & vbCrLf & "(SSNTails)" & vbCrLf & App.Comments & vbCrLf & App.FileDescription
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdAuthor_Click()
 | 
			
		||||
    Dim Response As String
 | 
			
		||||
    
 | 
			
		||||
    Response$ = InputBox("Enter name to appear on credits (type in NOBODY to delete):", "Modification By", GetAuthor)
 | 
			
		||||
    
 | 
			
		||||
    If Response = "" Then Exit Sub
 | 
			
		||||
    
 | 
			
		||||
    Response = TrimComplete(Response)
 | 
			
		||||
    
 | 
			
		||||
    If UCase(Response) = "NOBODY" Then
 | 
			
		||||
        Call WriteAuthor(True, Response)
 | 
			
		||||
        lblAuthor.Caption = "Modification By: "
 | 
			
		||||
    Else
 | 
			
		||||
        Call WriteAuthor(False, Response)
 | 
			
		||||
        lblAuthor.Caption = "Modification By: " & Response
 | 
			
		||||
    End If
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdCharacterEdit_Click()
 | 
			
		||||
    frmCharacterEdit.Show vbModal, Me
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdCreateBlank_Click()
 | 
			
		||||
    Dim socname As String
 | 
			
		||||
    
 | 
			
		||||
    socname = InputBox("This file will be created in the directory you have selected on the main window." & vbCrLf & vbCrLf & "Enter the filename you want (do not include .SOC at the end):", "Make A Blank SOC")
 | 
			
		||||
    Trim (socname)
 | 
			
		||||
    
 | 
			
		||||
    If InStr(LCase(socname), ".soc") > 0 Then
 | 
			
		||||
        MsgBox "The thing says not to include the .SOC at the end, stupid.", vbOKOnly, "You goofed!"
 | 
			
		||||
        Exit Sub
 | 
			
		||||
    End If
 | 
			
		||||
    
 | 
			
		||||
    If Len(socname) > 0 Then
 | 
			
		||||
        socname = socname & ".soc"
 | 
			
		||||
        
 | 
			
		||||
        Dim myFSOSOC As New Scripting.FileSystemObject
 | 
			
		||||
        Dim tsSOC As TextStream
 | 
			
		||||
    
 | 
			
		||||
        Set tsSOC = myFSOSOC.OpenTextFile(File1.Path & "\" & socname, ForWriting, True)
 | 
			
		||||
        tsSOC.Close
 | 
			
		||||
        Set myFSOSOC = Nothing
 | 
			
		||||
        
 | 
			
		||||
        MsgBox "Blank SOC named " & socname & " created in " & File1.Path, vbOKOnly, "Success!"
 | 
			
		||||
    End If
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdEditCutscenes_Click()
 | 
			
		||||
    frmCutsceneEdit.Show vbModal, Me
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdEmblemEdit_Click()
 | 
			
		||||
    frmEmblemEdit.Show vbModal, Me
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdHelp_Click()
 | 
			
		||||
    frmHelp.Show vbModal, Me
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdHUDEdit_Click()
 | 
			
		||||
    frmHUDEdit.Show vbModal, Me
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdLevelHeader_Click()
 | 
			
		||||
    frmLevelHeader.Show vbModal, Me
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdMaincfg_Click()
 | 
			
		||||
    frmMaincfg.Show vbModal, Me
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdSoundEdit_Click()
 | 
			
		||||
    frmSoundEdit.Show vbModal, Me
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdStateEdit_Click()
 | 
			
		||||
    frmStateEdit.Show vbModal, Me
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdThingEdit_Click()
 | 
			
		||||
    frmThingEdit.Show vbModal, Me
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdUnlockables_Click()
 | 
			
		||||
    frmUnlockablesEdit.Show vbModal, Me
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub Dir1_Change()
 | 
			
		||||
    SourcePath = Dir1.Path
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub Dir2_Change()
 | 
			
		||||
    File1.Path = Dir2.Path
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub Drive1_Change()
 | 
			
		||||
    Dir1.Path = Drive1.Drive
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub Drive2_Change()
 | 
			
		||||
    Dir2.Path = Drive2.Drive
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub File1_DblClick()
 | 
			
		||||
    SOCTemp = File1.Path & "\" & "socedit.tmp"
 | 
			
		||||
    SOCFile = File1.Path & "\" & File1.List(File1.ListIndex)
 | 
			
		||||
    MsgBox "You are now using the file: " & vbCrLf & SOCFile
 | 
			
		||||
    cmdLevelHeader.Enabled = True
 | 
			
		||||
    cmdThingEdit.Enabled = True
 | 
			
		||||
    cmdStateEdit.Enabled = True
 | 
			
		||||
    cmdHUDEdit.Enabled = True
 | 
			
		||||
    cmdMaincfg.Enabled = True
 | 
			
		||||
    cmdEmblemEdit.Enabled = True
 | 
			
		||||
    cmdSoundEdit.Enabled = True
 | 
			
		||||
    cmdCharacterEdit.Enabled = True
 | 
			
		||||
    cmdEditCutscenes.Enabled = True
 | 
			
		||||
    cmdAuthor.Enabled = True
 | 
			
		||||
    cmdUnlockables.Enabled = True
 | 
			
		||||
    lblAuthor.Caption = "Modification By: " & GetAuthor
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub Form_Load()
 | 
			
		||||
    SourcePath = App.Path
 | 
			
		||||
    Dir1.Path = SourcePath
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Function GetAuthor() As String
 | 
			
		||||
    Dim myFSO As New Scripting.FileSystemObject
 | 
			
		||||
    Dim ts As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim word As String
 | 
			
		||||
    Dim word2 As String
 | 
			
		||||
    
 | 
			
		||||
    Set ts = myFSO.OpenTextFile(SOCFile, ForReading, False)
 | 
			
		||||
    
 | 
			
		||||
SOCLoad:
 | 
			
		||||
    Do While Not ts.AtEndOfStream
 | 
			
		||||
        line = ts.ReadLine
 | 
			
		||||
        
 | 
			
		||||
        If Left(line, 1) = "#" Then GoTo SOCLoad
 | 
			
		||||
        
 | 
			
		||||
        If Left(line, 1) = vbCrLf Then GoTo SOCLoad
 | 
			
		||||
        
 | 
			
		||||
        If Len(line) < 1 Then GoTo SOCLoad
 | 
			
		||||
        
 | 
			
		||||
        word = FirstToken(line)
 | 
			
		||||
        word2 = SecondToken(line)
 | 
			
		||||
        
 | 
			
		||||
        If UCase(word) = "MODBY" Then
 | 
			
		||||
            GetAuthor = word2
 | 
			
		||||
            Exit Do
 | 
			
		||||
        End If
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.Close
 | 
			
		||||
    Set myFSO = Nothing
 | 
			
		||||
End Function
 | 
			
		||||
 | 
			
		||||
Private Sub WriteAuthor(Remove As Boolean, ModderName As String)
 | 
			
		||||
    Dim myFSOSource As New Scripting.FileSystemObject
 | 
			
		||||
    Dim tsSource As TextStream
 | 
			
		||||
    Dim myFSOTarget As New Scripting.FileSystemObject
 | 
			
		||||
    Dim tsTarget As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim word As String
 | 
			
		||||
    Dim word2 As String
 | 
			
		||||
   
 | 
			
		||||
    Set tsSource = myFSOSource.OpenTextFile(SOCFile, ForReading, False)
 | 
			
		||||
    Set tsTarget = myFSOTarget.OpenTextFile(SOCTemp, ForWriting, True)
 | 
			
		||||
    
 | 
			
		||||
    Do While Not tsSource.AtEndOfStream
 | 
			
		||||
        line = tsSource.ReadLine
 | 
			
		||||
        word = UCase(FirstToken(line))
 | 
			
		||||
        word2 = UCase(SecondToken(line))
 | 
			
		||||
        
 | 
			
		||||
        'If the entry exists in the SOC, delete it.
 | 
			
		||||
        If word <> "MODBY" Then
 | 
			
		||||
            tsTarget.WriteLine line
 | 
			
		||||
        End If
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    tsSource.Close
 | 
			
		||||
    Set myFSOSource = Nothing
 | 
			
		||||
    
 | 
			
		||||
    If Remove = False Then
 | 
			
		||||
        If line <> "" Then tsTarget.WriteLine ""
 | 
			
		||||
    
 | 
			
		||||
        tsTarget.WriteLine "ModBy " & ModderName
 | 
			
		||||
    End If
 | 
			
		||||
    
 | 
			
		||||
    tsTarget.Close
 | 
			
		||||
    Set myFSOTarget = Nothing
 | 
			
		||||
    
 | 
			
		||||
    FileCopy SOCTemp, SOCFile
 | 
			
		||||
    
 | 
			
		||||
    Kill SOCTemp
 | 
			
		||||
    
 | 
			
		||||
    If Remove = True Then
 | 
			
		||||
        MsgBox "Name removed."
 | 
			
		||||
    Else
 | 
			
		||||
        MsgBox "Name Saved."
 | 
			
		||||
    End If
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -1,839 +0,0 @@
 | 
			
		|||
VERSION 5.00
 | 
			
		||||
Begin VB.Form frmLevelHeader 
 | 
			
		||||
   Caption         =   "Level Header Info"
 | 
			
		||||
   ClientHeight    =   5250
 | 
			
		||||
   ClientLeft      =   60
 | 
			
		||||
   ClientTop       =   345
 | 
			
		||||
   ClientWidth     =   7650
 | 
			
		||||
   Icon            =   "frmLevelHeader.frx":0000
 | 
			
		||||
   LinkTopic       =   "Form1"
 | 
			
		||||
   MaxButton       =   0   'False
 | 
			
		||||
   ScaleHeight     =   5250
 | 
			
		||||
   ScaleWidth      =   7650
 | 
			
		||||
   StartUpPosition =   3  'Windows Default
 | 
			
		||||
   Begin VB.TextBox txtRunSOC 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   6240
 | 
			
		||||
      MaxLength       =   8
 | 
			
		||||
      TabIndex        =   49
 | 
			
		||||
      Top             =   4680
 | 
			
		||||
      Width           =   1215
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CheckBox chkLevelSelect 
 | 
			
		||||
      Caption         =   "Show on Host Game selection menu"
 | 
			
		||||
      Height          =   375
 | 
			
		||||
      Left            =   1680
 | 
			
		||||
      TabIndex        =   48
 | 
			
		||||
      Top             =   4800
 | 
			
		||||
      Width           =   1935
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CheckBox chkTimeAttack 
 | 
			
		||||
      Caption         =   "Include in Time Attack calculations"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   1680
 | 
			
		||||
      TabIndex        =   47
 | 
			
		||||
      Top             =   4440
 | 
			
		||||
      Width           =   2775
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CheckBox chkNoReload 
 | 
			
		||||
      Caption         =   "Retain level state when player dies."
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   1680
 | 
			
		||||
      TabIndex        =   46
 | 
			
		||||
      Top             =   4080
 | 
			
		||||
      Width           =   2895
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdSave 
 | 
			
		||||
      Caption         =   "&Save Map"
 | 
			
		||||
      Height          =   735
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      Style           =   1  'Graphical
 | 
			
		||||
      TabIndex        =   45
 | 
			
		||||
      Top             =   4440
 | 
			
		||||
      Width           =   1215
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdRename 
 | 
			
		||||
      Caption         =   "&Rename Map"
 | 
			
		||||
      Height          =   375
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   44
 | 
			
		||||
      Top             =   3960
 | 
			
		||||
      Width           =   1215
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdDelete 
 | 
			
		||||
      Caption         =   "&Delete Map"
 | 
			
		||||
      Height          =   375
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   43
 | 
			
		||||
      Top             =   3480
 | 
			
		||||
      Width           =   1215
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdAddMap 
 | 
			
		||||
      Caption         =   "&Add Map"
 | 
			
		||||
      Height          =   375
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   42
 | 
			
		||||
      Top             =   3000
 | 
			
		||||
      Width           =   1215
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CheckBox chkNossmusic 
 | 
			
		||||
      Caption         =   "Disable Super Sonic music changes"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   4560
 | 
			
		||||
      TabIndex        =   29
 | 
			
		||||
      Top             =   1200
 | 
			
		||||
      Width           =   2895
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CheckBox chkHidden 
 | 
			
		||||
      Caption         =   "Don't show on level selection menu"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   4560
 | 
			
		||||
      TabIndex        =   28
 | 
			
		||||
      Top             =   480
 | 
			
		||||
      Width           =   2895
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtCountdown 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   6360
 | 
			
		||||
      MaxLength       =   3
 | 
			
		||||
      TabIndex        =   26
 | 
			
		||||
      Top             =   840
 | 
			
		||||
      Width           =   735
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtCutscenenum 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   4440
 | 
			
		||||
      MaxLength       =   3
 | 
			
		||||
      TabIndex        =   25
 | 
			
		||||
      Top             =   3720
 | 
			
		||||
      Width           =   495
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtPrecutscenenum 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   2640
 | 
			
		||||
      MaxLength       =   3
 | 
			
		||||
      TabIndex        =   22
 | 
			
		||||
      Top             =   3720
 | 
			
		||||
      Width           =   495
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CheckBox chkScriptislump 
 | 
			
		||||
      Caption         =   "Script is a lump in WAD, not a file"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   1680
 | 
			
		||||
      TabIndex        =   21
 | 
			
		||||
      Top             =   3360
 | 
			
		||||
      Width           =   2775
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtScriptname 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   2640
 | 
			
		||||
      MaxLength       =   191
 | 
			
		||||
      TabIndex        =   19
 | 
			
		||||
      Top             =   3000
 | 
			
		||||
      Width           =   1455
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtSkynum 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   2640
 | 
			
		||||
      MaxLength       =   4
 | 
			
		||||
      TabIndex        =   17
 | 
			
		||||
      Top             =   2640
 | 
			
		||||
      Width           =   495
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.ComboBox cmbWeather 
 | 
			
		||||
      Height          =   315
 | 
			
		||||
      ItemData        =   "frmLevelHeader.frx":0442
 | 
			
		||||
      Left            =   2640
 | 
			
		||||
      List            =   "frmLevelHeader.frx":0458
 | 
			
		||||
      TabIndex        =   15
 | 
			
		||||
      Top             =   2280
 | 
			
		||||
      Width           =   2295
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtForcecharacter 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   2640
 | 
			
		||||
      MaxLength       =   2
 | 
			
		||||
      TabIndex        =   13
 | 
			
		||||
      Top             =   1920
 | 
			
		||||
      Width           =   495
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.ComboBox cmbMusicslot 
 | 
			
		||||
      Height          =   315
 | 
			
		||||
      Left            =   2640
 | 
			
		||||
      TabIndex        =   11
 | 
			
		||||
      Top             =   1560
 | 
			
		||||
      Width           =   1815
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtNextlevel 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   2640
 | 
			
		||||
      MaxLength       =   4
 | 
			
		||||
      TabIndex        =   9
 | 
			
		||||
      Top             =   1200
 | 
			
		||||
      Width           =   615
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Frame frmTypeOfLevel 
 | 
			
		||||
      Caption         =   "Type of Level"
 | 
			
		||||
      Height          =   2775
 | 
			
		||||
      Left            =   5040
 | 
			
		||||
      TabIndex        =   8
 | 
			
		||||
      Top             =   1680
 | 
			
		||||
      Width           =   2535
 | 
			
		||||
      Begin VB.CheckBox chkTypeoflevel 
 | 
			
		||||
         Caption         =   "Christmas"
 | 
			
		||||
         Height          =   255
 | 
			
		||||
         Index           =   11
 | 
			
		||||
         Left            =   1440
 | 
			
		||||
         TabIndex        =   41
 | 
			
		||||
         Tag             =   "1024"
 | 
			
		||||
         Top             =   960
 | 
			
		||||
         Width           =   975
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.CheckBox chkTypeoflevel 
 | 
			
		||||
         Caption         =   "2D"
 | 
			
		||||
         Height          =   255
 | 
			
		||||
         Index           =   10
 | 
			
		||||
         Left            =   1440
 | 
			
		||||
         TabIndex        =   40
 | 
			
		||||
         Tag             =   "512"
 | 
			
		||||
         Top             =   720
 | 
			
		||||
         Width           =   735
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.CheckBox chkTypeoflevel 
 | 
			
		||||
         Caption         =   "Mario"
 | 
			
		||||
         Height          =   255
 | 
			
		||||
         Index           =   9
 | 
			
		||||
         Left            =   120
 | 
			
		||||
         TabIndex        =   39
 | 
			
		||||
         Tag             =   "256"
 | 
			
		||||
         Top             =   2400
 | 
			
		||||
         Width           =   1455
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.CheckBox chkTypeoflevel 
 | 
			
		||||
         Caption         =   "Sonic Adventure"
 | 
			
		||||
         Height          =   255
 | 
			
		||||
         Index           =   8
 | 
			
		||||
         Left            =   120
 | 
			
		||||
         TabIndex        =   38
 | 
			
		||||
         Tag             =   "128"
 | 
			
		||||
         Top             =   2160
 | 
			
		||||
         Width           =   1575
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.CheckBox chkTypeoflevel 
 | 
			
		||||
         Caption         =   "NiGHTS"
 | 
			
		||||
         Height          =   255
 | 
			
		||||
         Index           =   7
 | 
			
		||||
         Left            =   120
 | 
			
		||||
         TabIndex        =   37
 | 
			
		||||
         Tag             =   "64"
 | 
			
		||||
         Top             =   1920
 | 
			
		||||
         Width           =   1335
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.CheckBox chkTypeoflevel 
 | 
			
		||||
         Caption         =   "Chaos"
 | 
			
		||||
         Height          =   255
 | 
			
		||||
         Index           =   6
 | 
			
		||||
         Left            =   120
 | 
			
		||||
         TabIndex        =   36
 | 
			
		||||
         Tag             =   "32"
 | 
			
		||||
         Top             =   1680
 | 
			
		||||
         Width           =   1455
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.CheckBox chkTypeoflevel 
 | 
			
		||||
         Caption         =   "Capture the Flag"
 | 
			
		||||
         Height          =   255
 | 
			
		||||
         Index           =   5
 | 
			
		||||
         Left            =   120
 | 
			
		||||
         TabIndex        =   35
 | 
			
		||||
         Tag             =   "16"
 | 
			
		||||
         Top             =   1440
 | 
			
		||||
         Width           =   1695
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.CheckBox chkTypeoflevel 
 | 
			
		||||
         Caption         =   "Tag"
 | 
			
		||||
         Height          =   255
 | 
			
		||||
         Index           =   4
 | 
			
		||||
         Left            =   120
 | 
			
		||||
         TabIndex        =   34
 | 
			
		||||
         Tag             =   "8"
 | 
			
		||||
         Top             =   1200
 | 
			
		||||
         Width           =   1215
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.CheckBox chkTypeoflevel 
 | 
			
		||||
         Caption         =   "Match"
 | 
			
		||||
         Height          =   255
 | 
			
		||||
         Index           =   3
 | 
			
		||||
         Left            =   120
 | 
			
		||||
         TabIndex        =   33
 | 
			
		||||
         Tag             =   "4"
 | 
			
		||||
         Top             =   960
 | 
			
		||||
         Width           =   855
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.CheckBox chkTypeoflevel 
 | 
			
		||||
         Caption         =   "Race"
 | 
			
		||||
         Height          =   255
 | 
			
		||||
         Index           =   2
 | 
			
		||||
         Left            =   120
 | 
			
		||||
         TabIndex        =   32
 | 
			
		||||
         Tag             =   "2"
 | 
			
		||||
         Top             =   720
 | 
			
		||||
         Width           =   855
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.CheckBox chkTypeoflevel 
 | 
			
		||||
         Caption         =   "Cooperative"
 | 
			
		||||
         Height          =   255
 | 
			
		||||
         Index           =   1
 | 
			
		||||
         Left            =   120
 | 
			
		||||
         TabIndex        =   31
 | 
			
		||||
         Tag             =   "1"
 | 
			
		||||
         Top             =   480
 | 
			
		||||
         Width           =   1215
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.CheckBox chkTypeoflevel 
 | 
			
		||||
         Caption         =   "Single Player"
 | 
			
		||||
         Height          =   255
 | 
			
		||||
         Index           =   0
 | 
			
		||||
         Left            =   120
 | 
			
		||||
         TabIndex        =   30
 | 
			
		||||
         Tag             =   "4096"
 | 
			
		||||
         Top             =   240
 | 
			
		||||
         Width           =   1215
 | 
			
		||||
      End
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CheckBox chkNozone 
 | 
			
		||||
      Caption         =   "Don't show ""ZONE"" after Level Name"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   4560
 | 
			
		||||
      TabIndex        =   7
 | 
			
		||||
      Top             =   120
 | 
			
		||||
      Width           =   3015
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtAct 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   2640
 | 
			
		||||
      MaxLength       =   2
 | 
			
		||||
      TabIndex        =   5
 | 
			
		||||
      Top             =   840
 | 
			
		||||
      Width           =   495
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtInterscreen 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   2640
 | 
			
		||||
      MaxLength       =   8
 | 
			
		||||
      TabIndex        =   3
 | 
			
		||||
      Top             =   480
 | 
			
		||||
      Width           =   1335
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.ListBox lstMaps 
 | 
			
		||||
      Height          =   2790
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      Sorted          =   -1  'True
 | 
			
		||||
      TabIndex        =   2
 | 
			
		||||
      Top             =   120
 | 
			
		||||
      Width           =   1215
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtLevelName 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   2640
 | 
			
		||||
      MaxLength       =   32
 | 
			
		||||
      TabIndex        =   0
 | 
			
		||||
      Top             =   120
 | 
			
		||||
      Width           =   1815
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblRunSOC 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Run SOC at level load (lump name):"
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   4440
 | 
			
		||||
      TabIndex        =   50
 | 
			
		||||
      Top             =   4560
 | 
			
		||||
      Width           =   1695
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblCountdown 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Level Timer (seconds):"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   4560
 | 
			
		||||
      TabIndex        =   27
 | 
			
		||||
      Top             =   840
 | 
			
		||||
      Width           =   1695
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblCutscenenum 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Cutscene to play after level:"
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   3240
 | 
			
		||||
      TabIndex        =   24
 | 
			
		||||
      Top             =   3600
 | 
			
		||||
      Width           =   1095
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblPrecutscenenum 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Cutscene to play before level:"
 | 
			
		||||
      Height          =   375
 | 
			
		||||
      Left            =   1320
 | 
			
		||||
      TabIndex        =   23
 | 
			
		||||
      Top             =   3600
 | 
			
		||||
      Width           =   1215
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblScriptName 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Script Name:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   1440
 | 
			
		||||
      TabIndex        =   20
 | 
			
		||||
      Top             =   3000
 | 
			
		||||
      Width           =   1095
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblSkynum 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Sky #:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   1800
 | 
			
		||||
      TabIndex        =   18
 | 
			
		||||
      Top             =   2640
 | 
			
		||||
      Width           =   735
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label Label1 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Weather:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   1680
 | 
			
		||||
      TabIndex        =   16
 | 
			
		||||
      Top             =   2280
 | 
			
		||||
      Width           =   855
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblForcecharacter 
 | 
			
		||||
      Caption         =   "Force Character #:"
 | 
			
		||||
      Height          =   375
 | 
			
		||||
      Left            =   1440
 | 
			
		||||
      TabIndex        =   14
 | 
			
		||||
      Top             =   1800
 | 
			
		||||
      Width           =   1095
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblMusicslot 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Music:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   1800
 | 
			
		||||
      TabIndex        =   12
 | 
			
		||||
      Top             =   1560
 | 
			
		||||
      Width           =   735
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblNextlevel 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Next Level:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   1440
 | 
			
		||||
      TabIndex        =   10
 | 
			
		||||
      Top             =   1200
 | 
			
		||||
      Width           =   1095
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblAct 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Act:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   2040
 | 
			
		||||
      TabIndex        =   6
 | 
			
		||||
      Top             =   840
 | 
			
		||||
      Width           =   495
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblInterscreen 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Intermission BG:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   1320
 | 
			
		||||
      TabIndex        =   4
 | 
			
		||||
      Top             =   480
 | 
			
		||||
      Width           =   1215
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblLevelName 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Level Name:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   1560
 | 
			
		||||
      TabIndex        =   1
 | 
			
		||||
      Top             =   120
 | 
			
		||||
      Width           =   975
 | 
			
		||||
   End
 | 
			
		||||
End
 | 
			
		||||
Attribute VB_Name = "frmLevelHeader"
 | 
			
		||||
Attribute VB_GlobalNameSpace = False
 | 
			
		||||
Attribute VB_Creatable = False
 | 
			
		||||
Attribute VB_PredeclaredId = True
 | 
			
		||||
Attribute VB_Exposed = False
 | 
			
		||||
Option Explicit
 | 
			
		||||
 | 
			
		||||
Private Sub cmdAddMap_Click()
 | 
			
		||||
    Dim Response As String
 | 
			
		||||
    Dim NewNum As Integer
 | 
			
		||||
    
 | 
			
		||||
    Response$ = InputBox("Enter the new level (NUMBER ONLY):")
 | 
			
		||||
    
 | 
			
		||||
    If Response = "" Then
 | 
			
		||||
        Exit Sub
 | 
			
		||||
    End If
 | 
			
		||||
    
 | 
			
		||||
    NewNum = Val(TrimComplete(Response))
 | 
			
		||||
    
 | 
			
		||||
    lstMaps.AddItem "Level " & NewNum
 | 
			
		||||
    lstMaps.ListIndex = lstMaps.ListCount - 1
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdDelete_Click()
 | 
			
		||||
    Dim i As Integer
 | 
			
		||||
    
 | 
			
		||||
    If MsgBox("Delete this level header?", vbYesNo) = vbNo Then
 | 
			
		||||
        Exit Sub
 | 
			
		||||
    End If
 | 
			
		||||
    
 | 
			
		||||
    i = InStr(lstMaps.List(lstMaps.ListIndex), " ") + 1
 | 
			
		||||
    
 | 
			
		||||
    i = Mid(lstMaps.List(lstMaps.ListIndex), i, Len(lstMaps.List(lstMaps.ListIndex)) - i + 1)
 | 
			
		||||
    i = Val(i)
 | 
			
		||||
    Call WriteLevel(True, i)
 | 
			
		||||
    lstMaps.RemoveItem lstMaps.ListIndex
 | 
			
		||||
    
 | 
			
		||||
    If lstMaps.ListCount > 0 Then
 | 
			
		||||
        lstMaps.ListIndex = 0
 | 
			
		||||
    End If
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdRename_Click()
 | 
			
		||||
    Dim Response As String
 | 
			
		||||
    Dim NewNum As Integer
 | 
			
		||||
    Dim i As Integer
 | 
			
		||||
    
 | 
			
		||||
    Response$ = InputBox("Rename level to (NUMBER ONLY):")
 | 
			
		||||
    
 | 
			
		||||
    If Response = "" Then
 | 
			
		||||
        Exit Sub
 | 
			
		||||
    End If
 | 
			
		||||
    
 | 
			
		||||
    NewNum = Val(TrimComplete(Response))
 | 
			
		||||
    
 | 
			
		||||
    i = InStr(lstMaps.List(lstMaps.ListIndex), " ") + 1
 | 
			
		||||
    
 | 
			
		||||
    i = Mid(lstMaps.List(lstMaps.ListIndex), i, Len(lstMaps.List(lstMaps.ListIndex)) - i + 1)
 | 
			
		||||
    i = Val(i)
 | 
			
		||||
    Call WriteLevel(True, i)
 | 
			
		||||
    lstMaps.List(lstMaps.ListIndex) = "Level " & NewNum
 | 
			
		||||
    Call cmdSave_Click
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdSave_Click()
 | 
			
		||||
    Dim i As Integer
 | 
			
		||||
    
 | 
			
		||||
    i = InStr(lstMaps.List(lstMaps.ListIndex), " ") + 1
 | 
			
		||||
    
 | 
			
		||||
    i = Val(Mid(lstMaps.List(lstMaps.ListIndex), i, Len(lstMaps.List(lstMaps.ListIndex)) - i + 1))
 | 
			
		||||
    Call WriteLevel(False, i)
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub Form_Load()
 | 
			
		||||
    Call LoadMusic
 | 
			
		||||
    Call LoadSOCMaps
 | 
			
		||||
    If lstMaps.ListCount > 0 Then lstMaps.ListIndex = 0
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub LoadSOCMaps()
 | 
			
		||||
    Dim myFSO As New Scripting.FileSystemObject
 | 
			
		||||
    Dim ts As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim word As String
 | 
			
		||||
    Dim word2 As String
 | 
			
		||||
    
 | 
			
		||||
    Set ts = myFSO.OpenTextFile(SOCFile, ForReading, False)
 | 
			
		||||
    
 | 
			
		||||
    lstMaps.Clear
 | 
			
		||||
    
 | 
			
		||||
SOCLoad:
 | 
			
		||||
    Do While Not ts.AtEndOfStream
 | 
			
		||||
        line = ts.ReadLine
 | 
			
		||||
        
 | 
			
		||||
        If Left(line, 1) = "#" Then GoTo SOCLoad
 | 
			
		||||
        
 | 
			
		||||
        If Left(line, 1) = vbCrLf Then GoTo SOCLoad
 | 
			
		||||
        
 | 
			
		||||
        If Len(line) < 1 Then GoTo SOCLoad
 | 
			
		||||
        
 | 
			
		||||
        word = FirstToken(line)
 | 
			
		||||
        word2 = SecondToken(line)
 | 
			
		||||
        
 | 
			
		||||
        If UCase(word) = "LEVEL" Then
 | 
			
		||||
            lstMaps.AddItem ("Level " & Val(word2))
 | 
			
		||||
        End If
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.Close
 | 
			
		||||
    Set myFSO = Nothing
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub LoadMusic()
 | 
			
		||||
    Dim myFSO As New Scripting.FileSystemObject
 | 
			
		||||
    Dim ts As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim number As Integer
 | 
			
		||||
    Dim startclip As Integer, endclip As Integer
 | 
			
		||||
    Dim addstring As String
 | 
			
		||||
    
 | 
			
		||||
    ChDir SourcePath
 | 
			
		||||
    Set ts = myFSO.OpenTextFile("sounds.h", ForReading, False)
 | 
			
		||||
    
 | 
			
		||||
    Do While InStr(ts.ReadLine, "Music list (don't edit this comment!)") = 0
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.SkipLine ' typedef enum
 | 
			
		||||
    ts.SkipLine ' {
 | 
			
		||||
    
 | 
			
		||||
    line = ts.ReadLine
 | 
			
		||||
    number = 0
 | 
			
		||||
    
 | 
			
		||||
    cmbMusicslot.Clear
 | 
			
		||||
    
 | 
			
		||||
    Do While InStr(line, "NUMMUSIC") = 0
 | 
			
		||||
        startclip = InStr(line, "mus_")
 | 
			
		||||
        If InStr(line, "mus_") <> 0 Then
 | 
			
		||||
            endclip = InStr(line, ",")
 | 
			
		||||
            line = Mid(line, startclip, endclip - startclip)
 | 
			
		||||
            addstring = number & " - " & line
 | 
			
		||||
            cmbMusicslot.AddItem addstring
 | 
			
		||||
            number = number + 1
 | 
			
		||||
        End If
 | 
			
		||||
        line = ts.ReadLine
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.Close
 | 
			
		||||
    Set myFSO = Nothing
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub ClearForm()
 | 
			
		||||
    Dim j As Integer
 | 
			
		||||
    
 | 
			
		||||
    txtLevelName.Text = ""
 | 
			
		||||
    txtInterscreen.Text = ""
 | 
			
		||||
    txtAct.Text = ""
 | 
			
		||||
    txtNextlevel.Text = ""
 | 
			
		||||
    cmbMusicslot.Text = ""
 | 
			
		||||
    txtForcecharacter.Text = ""
 | 
			
		||||
    cmbWeather.Text = ""
 | 
			
		||||
    txtSkynum.Text = ""
 | 
			
		||||
    txtScriptname.Text = ""
 | 
			
		||||
    chkScriptislump.Value = 0
 | 
			
		||||
    txtPrecutscenenum.Text = ""
 | 
			
		||||
    txtCutscenenum.Text = ""
 | 
			
		||||
    txtRunSOC.Text = ""
 | 
			
		||||
    chkNozone.Value = 0
 | 
			
		||||
    chkHidden.Value = 0
 | 
			
		||||
    txtCountdown.Text = ""
 | 
			
		||||
    chkNossmusic.Value = 0
 | 
			
		||||
    chkNoReload.Value = 0
 | 
			
		||||
    chkTimeAttack.Value = 0
 | 
			
		||||
    chkLevelSelect = 0
 | 
			
		||||
    
 | 
			
		||||
    For j = 0 To 11
 | 
			
		||||
        chkTypeoflevel(j).Value = 0
 | 
			
		||||
    Next j
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub lstMaps_Click()
 | 
			
		||||
    Dim startclip As Integer
 | 
			
		||||
    Call ClearForm
 | 
			
		||||
    startclip = InStr(lstMaps.List(lstMaps.ListIndex), " ")
 | 
			
		||||
    Call LoadSOCMapInfo(Val(Mid(lstMaps.List(lstMaps.ListIndex), startclip + 1, Len(lstMaps.List(lstMaps.ListIndex)))))
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub LoadSOCMapInfo(num As Integer)
 | 
			
		||||
    Dim myFSO As New Scripting.FileSystemObject
 | 
			
		||||
    Dim ts As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim word As String
 | 
			
		||||
    Dim word2 As String
 | 
			
		||||
    
 | 
			
		||||
    Set ts = myFSO.OpenTextFile(SOCFile, ForReading, False)
 | 
			
		||||
    
 | 
			
		||||
SOCLoad:
 | 
			
		||||
    Do While Not ts.AtEndOfStream
 | 
			
		||||
        line = ts.ReadLine
 | 
			
		||||
        
 | 
			
		||||
        If Left(line, 1) = "#" Then GoTo SOCLoad
 | 
			
		||||
        
 | 
			
		||||
        If Left(line, 1) = vbCrLf Then GoTo SOCLoad
 | 
			
		||||
        
 | 
			
		||||
        If Len(line) < 1 Then GoTo SOCLoad
 | 
			
		||||
        
 | 
			
		||||
        word = UCase(FirstToken(line))
 | 
			
		||||
        word2 = UCase(SecondToken(line))
 | 
			
		||||
        
 | 
			
		||||
        If word = "LEVEL" Then
 | 
			
		||||
            If Val(word2) = num Then
 | 
			
		||||
                Do While Len(line) > 0 And Not ts.AtEndOfStream
 | 
			
		||||
                    line = ts.ReadLine
 | 
			
		||||
                    word = UCase(FirstToken(line))
 | 
			
		||||
                    word2 = UCase(SecondTokenEqual(line))
 | 
			
		||||
                    
 | 
			
		||||
                    If word = "LEVELNAME" Then
 | 
			
		||||
                        txtLevelName.Text = word2
 | 
			
		||||
                    ElseIf word = "INTERSCREEN" Then
 | 
			
		||||
                        txtInterscreen.Text = word2
 | 
			
		||||
                    ElseIf word = "ACT" Then
 | 
			
		||||
                        txtAct.Text = Val(word2)
 | 
			
		||||
                    ElseIf word = "NOZONE" Then
 | 
			
		||||
                        chkNozone.Value = Val(word2)
 | 
			
		||||
                    ElseIf word = "TYPEOFLEVEL" Then
 | 
			
		||||
                        ProcessMapFlags (Val(word2))
 | 
			
		||||
                    ElseIf word = "NEXTLEVEL" Then
 | 
			
		||||
                        txtNextlevel.Text = Val(word2)
 | 
			
		||||
                    ElseIf word = "MUSICSLOT" Then
 | 
			
		||||
                        cmbMusicslot.ListIndex = Val(word2)
 | 
			
		||||
                    ElseIf word = "FORCECHARACTER" Then
 | 
			
		||||
                        txtForcecharacter.Text = Val(word2)
 | 
			
		||||
                    ElseIf word = "WEATHER" Then
 | 
			
		||||
                        cmbWeather.ListIndex = Val(word2)
 | 
			
		||||
                    ElseIf word = "SKYNUM" Then
 | 
			
		||||
                        txtSkynum.Text = Val(word2)
 | 
			
		||||
                    ElseIf word = "SCRIPTNAME" Then
 | 
			
		||||
                        txtScriptname.Text = word2
 | 
			
		||||
                    ElseIf word = "SCRIPTISLUMP" Then
 | 
			
		||||
                        chkScriptislump.Value = Val(word2)
 | 
			
		||||
                    ElseIf word = "PRECUTSCENENUM" Then
 | 
			
		||||
                        txtPrecutscenenum.Text = Val(word2)
 | 
			
		||||
                    ElseIf word = "CUTSCENENUM" Then
 | 
			
		||||
                        txtCutscenenum.Text = Val(word2)
 | 
			
		||||
                    ElseIf word = "COUNTDOWN" Then
 | 
			
		||||
                        txtCountdown.Text = Val(word2)
 | 
			
		||||
                    ElseIf word = "HIDDEN" Then
 | 
			
		||||
                        chkHidden.Value = Val(word2)
 | 
			
		||||
                    ElseIf word = "NOSSMUSIC" Then
 | 
			
		||||
                        chkNossmusic.Value = Val(word2)
 | 
			
		||||
                    ElseIf word = "NORELOAD" Then
 | 
			
		||||
                        chkNoReload.Value = Val(word2)
 | 
			
		||||
                    ElseIf word = "TIMEATTACK" Then
 | 
			
		||||
                        chkTimeAttack.Value = Val(word2)
 | 
			
		||||
                    ElseIf word = "LEVELSELECT" Then
 | 
			
		||||
                        chkLevelSelect.Value = Val(word2)
 | 
			
		||||
                    ElseIf word = "RUNSOC" Then
 | 
			
		||||
                        txtRunSOC.Text = word2
 | 
			
		||||
                   ElseIf Len(line) > 0 And Left(line, 1) <> "#" Then
 | 
			
		||||
                        MsgBox "Error in SOC!" & vbCrLf & "Unknown line: " & line
 | 
			
		||||
                    End If
 | 
			
		||||
                Loop
 | 
			
		||||
                Exit Do
 | 
			
		||||
            End If
 | 
			
		||||
        End If
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.Close
 | 
			
		||||
    Set myFSO = Nothing
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub ProcessMapFlags(flags As Long)
 | 
			
		||||
    Dim j As Integer
 | 
			
		||||
    
 | 
			
		||||
    For j = 0 To 11
 | 
			
		||||
        If flags And chkTypeoflevel(j).Tag Then
 | 
			
		||||
            chkTypeoflevel(j).Value = 1
 | 
			
		||||
        Else
 | 
			
		||||
            chkTypeoflevel(j).Value = 0
 | 
			
		||||
        End If
 | 
			
		||||
    Next j
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub WriteLevel(Remove As Boolean, Mapnum As Integer)
 | 
			
		||||
    Dim myFSOSource As New Scripting.FileSystemObject
 | 
			
		||||
    Dim tsSource As TextStream
 | 
			
		||||
    Dim myFSOTarget As New Scripting.FileSystemObject
 | 
			
		||||
    Dim tsTarget As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim word As String
 | 
			
		||||
    Dim word2 As String
 | 
			
		||||
    Dim flags As Long
 | 
			
		||||
    Dim i As Integer
 | 
			
		||||
    
 | 
			
		||||
    Set tsSource = myFSOSource.OpenTextFile(SOCFile, ForReading, False)
 | 
			
		||||
    Set tsTarget = myFSOTarget.OpenTextFile(SOCTemp, ForWriting, True)
 | 
			
		||||
    
 | 
			
		||||
    Do While Not tsSource.AtEndOfStream
 | 
			
		||||
        line = tsSource.ReadLine
 | 
			
		||||
        word = UCase(FirstToken(line))
 | 
			
		||||
        word2 = UCase(SecondToken(line))
 | 
			
		||||
        
 | 
			
		||||
        i = InStr(lstMaps.List(lstMaps.ListIndex), " ") + 1
 | 
			
		||||
    
 | 
			
		||||
        i = Mid(lstMaps.List(lstMaps.ListIndex), i, Len(lstMaps.List(lstMaps.ListIndex)) - i + 1)
 | 
			
		||||
        i = Val(i)
 | 
			
		||||
        'If the current level exists in the SOC, delete it.
 | 
			
		||||
        If word = "LEVEL" And Val(word2) = i Then
 | 
			
		||||
            Do While Len(TrimComplete(tsSource.ReadLine)) > 0 And Not (tsSource.AtEndOfStream)
 | 
			
		||||
            Loop
 | 
			
		||||
        Else
 | 
			
		||||
            tsTarget.WriteLine line
 | 
			
		||||
        End If
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    tsSource.Close
 | 
			
		||||
    Set myFSOSource = Nothing
 | 
			
		||||
    
 | 
			
		||||
    If Remove = False Then
 | 
			
		||||
        If line <> "" Then tsTarget.WriteLine ""
 | 
			
		||||
    
 | 
			
		||||
        tsTarget.WriteLine UCase(lstMaps.List(lstMaps.ListIndex))
 | 
			
		||||
        txtLevelName.Text = TrimComplete(txtLevelName.Text)
 | 
			
		||||
        txtInterscreen.Text = TrimComplete(txtInterscreen.Text)
 | 
			
		||||
        txtAct.Text = TrimComplete(txtAct.Text)
 | 
			
		||||
        txtNextlevel.Text = TrimComplete(txtNextlevel.Text)
 | 
			
		||||
        cmbMusicslot.Text = TrimComplete(cmbMusicslot.Text)
 | 
			
		||||
        txtForcecharacter.Text = TrimComplete(txtForcecharacter.Text)
 | 
			
		||||
        cmbWeather.Text = TrimComplete(cmbWeather.Text)
 | 
			
		||||
        txtSkynum.Text = TrimComplete(txtSkynum.Text)
 | 
			
		||||
        txtScriptname.Text = TrimComplete(txtScriptname.Text)
 | 
			
		||||
        txtPrecutscenenum.Text = TrimComplete(txtPrecutscenenum.Text)
 | 
			
		||||
        txtCutscenenum.Text = TrimComplete(txtCutscenenum.Text)
 | 
			
		||||
        txtCountdown.Text = TrimComplete(txtCountdown.Text)
 | 
			
		||||
        txtRunSOC.Text = TrimComplete(txtRunSOC.Text)
 | 
			
		||||
        
 | 
			
		||||
        If txtLevelName.Text <> "" Then tsTarget.WriteLine "LEVELNAME = " & txtLevelName.Text
 | 
			
		||||
        If txtInterscreen.Text <> "" Then tsTarget.WriteLine "INTERSCREEN = " & txtInterscreen.Text
 | 
			
		||||
        If txtAct.Text <> "" Then tsTarget.WriteLine "ACT = " & Val(txtAct.Text)
 | 
			
		||||
        If txtNextlevel.Text <> "" Then tsTarget.WriteLine "NEXTLEVEL = " & Val(txtNextlevel.Text)
 | 
			
		||||
        If cmbMusicslot.Text <> "" Then tsTarget.WriteLine "MUSICSLOT = " & cmbMusicslot.ListIndex
 | 
			
		||||
        If txtForcecharacter.Text <> "" Then tsTarget.WriteLine "FORCECHARACTER = " & Val(txtForcecharacter.Text)
 | 
			
		||||
        If cmbWeather.Text <> "" Then tsTarget.WriteLine "WEATHER = " & cmbWeather.ListIndex
 | 
			
		||||
        If txtSkynum.Text <> "" Then tsTarget.WriteLine "SKYNUM = " & Val(txtSkynum.Text)
 | 
			
		||||
        If txtScriptname.Text <> "" Then tsTarget.WriteLine "SCRIPTNAME = " & txtScriptname.Text
 | 
			
		||||
        If txtPrecutscenenum.Text <> "" Then tsTarget.WriteLine "PRECUTSCENENUM = " & Val(txtPrecutscenenum.Text)
 | 
			
		||||
        If txtCutscenenum.Text <> "" Then tsTarget.WriteLine "CUTSCENENUM = " & Val(txtCutscenenum.Text)
 | 
			
		||||
        If txtCountdown.Text <> "" Then tsTarget.WriteLine "COUNTDOWN = " & Val(txtCountdown.Text)
 | 
			
		||||
        If chkScriptislump.Value = 1 Then tsTarget.WriteLine "SCRIPTISLUMP = 1"
 | 
			
		||||
        If chkNozone.Value = 1 Then tsTarget.WriteLine "NOZONE = 1"
 | 
			
		||||
        If chkHidden.Value = 1 Then tsTarget.WriteLine "HIDDEN = 1"
 | 
			
		||||
        If chkNossmusic.Value = 1 Then tsTarget.WriteLine "NOSSMUSIC = 1"
 | 
			
		||||
        If chkNoReload.Value = 1 Then tsTarget.WriteLine "NORELOAD = 1"
 | 
			
		||||
        If chkTimeAttack.Value = 1 Then tsTarget.WriteLine "TIMEATTACK = 1"
 | 
			
		||||
        If chkLevelSelect.Value = 1 Then tsTarget.WriteLine "LEVELSELECT = 1"
 | 
			
		||||
        If txtRunSOC.Text <> "" Then tsTarget.WriteLine "RUNSOC = " & txtRunSOC.Text
 | 
			
		||||
    
 | 
			
		||||
        flags = 0
 | 
			
		||||
        For i = 0 To 11
 | 
			
		||||
            If chkTypeoflevel(i).Value = 1 Then
 | 
			
		||||
                flags = flags + Val(chkTypeoflevel(i).Tag)
 | 
			
		||||
            End If
 | 
			
		||||
        Next
 | 
			
		||||
        
 | 
			
		||||
        If flags > 0 Then tsTarget.WriteLine "TYPEOFLEVEL = " & flags
 | 
			
		||||
    End If
 | 
			
		||||
    
 | 
			
		||||
    tsTarget.Close
 | 
			
		||||
    Set myFSOTarget = Nothing
 | 
			
		||||
    
 | 
			
		||||
    FileCopy SOCTemp, SOCFile
 | 
			
		||||
    
 | 
			
		||||
    Kill SOCTemp
 | 
			
		||||
    
 | 
			
		||||
    If Remove = True Then
 | 
			
		||||
        MsgBox "Level Deleted."
 | 
			
		||||
    Else
 | 
			
		||||
        MsgBox "Level Saved."
 | 
			
		||||
    End If
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -1,644 +0,0 @@
 | 
			
		|||
VERSION 5.00
 | 
			
		||||
Begin VB.Form frmMaincfg 
 | 
			
		||||
   Caption         =   "Global Game Settings"
 | 
			
		||||
   ClientHeight    =   5295
 | 
			
		||||
   ClientLeft      =   60
 | 
			
		||||
   ClientTop       =   345
 | 
			
		||||
   ClientWidth     =   9360
 | 
			
		||||
   Icon            =   "frmMaincfg.frx":0000
 | 
			
		||||
   LinkTopic       =   "Form1"
 | 
			
		||||
   MaxButton       =   0   'False
 | 
			
		||||
   ScaleHeight     =   5295
 | 
			
		||||
   ScaleWidth      =   9360
 | 
			
		||||
   StartUpPosition =   3  'Windows Default
 | 
			
		||||
   Begin VB.Frame frmReset 
 | 
			
		||||
      Caption         =   "Reset Data (Be sure this is at the TOP of your SOC)"
 | 
			
		||||
      Height          =   975
 | 
			
		||||
      Left            =   4800
 | 
			
		||||
      TabIndex        =   43
 | 
			
		||||
      Top             =   4200
 | 
			
		||||
      Width           =   4455
 | 
			
		||||
      Begin VB.CheckBox chkReset 
 | 
			
		||||
         Caption         =   "Thing Properties"
 | 
			
		||||
         Height          =   255
 | 
			
		||||
         Index           =   2
 | 
			
		||||
         Left            =   1680
 | 
			
		||||
         TabIndex        =   46
 | 
			
		||||
         Tag             =   "4"
 | 
			
		||||
         Top             =   240
 | 
			
		||||
         Width           =   1575
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.CheckBox chkReset 
 | 
			
		||||
         Caption         =   "States"
 | 
			
		||||
         Height          =   255
 | 
			
		||||
         Index           =   1
 | 
			
		||||
         Left            =   240
 | 
			
		||||
         TabIndex        =   45
 | 
			
		||||
         Tag             =   "2"
 | 
			
		||||
         Top             =   600
 | 
			
		||||
         Width           =   1335
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.CheckBox chkReset 
 | 
			
		||||
         Caption         =   "Sprite Names"
 | 
			
		||||
         Height          =   255
 | 
			
		||||
         Index           =   0
 | 
			
		||||
         Left            =   240
 | 
			
		||||
         TabIndex        =   44
 | 
			
		||||
         Tag             =   "1"
 | 
			
		||||
         Top             =   240
 | 
			
		||||
         Width           =   1575
 | 
			
		||||
      End
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CheckBox chkDisableSpeedAdjust 
 | 
			
		||||
      Caption         =   "Disable speed adjustment of player animations depending on how fast they are moving."
 | 
			
		||||
      Height          =   375
 | 
			
		||||
      Left            =   1080
 | 
			
		||||
      TabIndex        =   42
 | 
			
		||||
      Top             =   4200
 | 
			
		||||
      Width           =   3615
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtTitleScrollSpeed 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   4080
 | 
			
		||||
      TabIndex        =   41
 | 
			
		||||
      Top             =   1920
 | 
			
		||||
      Width           =   495
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CheckBox chkLoopTitle 
 | 
			
		||||
      Caption         =   "Loop the title screen music?"
 | 
			
		||||
      Height          =   195
 | 
			
		||||
      Left            =   1080
 | 
			
		||||
      TabIndex        =   39
 | 
			
		||||
      Top             =   3840
 | 
			
		||||
      Width           =   2415
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtCreditsCutscene 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   4080
 | 
			
		||||
      TabIndex        =   37
 | 
			
		||||
      Top             =   1560
 | 
			
		||||
      Width           =   495
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdSave 
 | 
			
		||||
      Caption         =   "&Save"
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   36
 | 
			
		||||
      Top             =   3120
 | 
			
		||||
      Width           =   735
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdReload 
 | 
			
		||||
      Caption         =   "&Reload"
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   35
 | 
			
		||||
      Top             =   2520
 | 
			
		||||
      Width           =   735
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtNumemblems 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   4080
 | 
			
		||||
      MaxLength       =   2
 | 
			
		||||
      TabIndex        =   33
 | 
			
		||||
      Top             =   3360
 | 
			
		||||
      Width           =   495
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtGamedata 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   3240
 | 
			
		||||
      MaxLength       =   64
 | 
			
		||||
      TabIndex        =   31
 | 
			
		||||
      Top             =   2880
 | 
			
		||||
      Width           =   1335
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtExeccfg 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   3240
 | 
			
		||||
      TabIndex        =   9
 | 
			
		||||
      Top             =   2400
 | 
			
		||||
      Width           =   1335
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Frame frmTimers 
 | 
			
		||||
      Caption         =   "Timers (35 = 1 second)"
 | 
			
		||||
      Height          =   3975
 | 
			
		||||
      Left            =   4800
 | 
			
		||||
      TabIndex        =   8
 | 
			
		||||
      Top             =   120
 | 
			
		||||
      Width           =   4455
 | 
			
		||||
      Begin VB.TextBox txtGameovertics 
 | 
			
		||||
         Height          =   285
 | 
			
		||||
         Left            =   3000
 | 
			
		||||
         TabIndex        =   29
 | 
			
		||||
         Top             =   3480
 | 
			
		||||
         Width           =   1335
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.TextBox txtHelpertics 
 | 
			
		||||
         Height          =   285
 | 
			
		||||
         Left            =   3000
 | 
			
		||||
         TabIndex        =   27
 | 
			
		||||
         Top             =   3120
 | 
			
		||||
         Width           =   1335
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.TextBox txtParalooptics 
 | 
			
		||||
         Height          =   285
 | 
			
		||||
         Left            =   3000
 | 
			
		||||
         TabIndex        =   25
 | 
			
		||||
         Top             =   2760
 | 
			
		||||
         Width           =   1335
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.TextBox txtExtralifetics 
 | 
			
		||||
         Height          =   285
 | 
			
		||||
         Left            =   3000
 | 
			
		||||
         TabIndex        =   23
 | 
			
		||||
         Top             =   2400
 | 
			
		||||
         Width           =   1335
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.TextBox txtSpacetimetics 
 | 
			
		||||
         Height          =   285
 | 
			
		||||
         Left            =   3000
 | 
			
		||||
         TabIndex        =   21
 | 
			
		||||
         Top             =   2040
 | 
			
		||||
         Width           =   1335
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.TextBox txtUnderwatertics 
 | 
			
		||||
         Height          =   285
 | 
			
		||||
         Left            =   3000
 | 
			
		||||
         TabIndex        =   19
 | 
			
		||||
         Top             =   1680
 | 
			
		||||
         Width           =   1335
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.TextBox txtTailsflytics 
 | 
			
		||||
         Height          =   285
 | 
			
		||||
         Left            =   3000
 | 
			
		||||
         TabIndex        =   17
 | 
			
		||||
         Top             =   1320
 | 
			
		||||
         Width           =   1335
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.TextBox txtFlashingtics 
 | 
			
		||||
         Height          =   285
 | 
			
		||||
         Left            =   3000
 | 
			
		||||
         TabIndex        =   15
 | 
			
		||||
         Top             =   960
 | 
			
		||||
         Width           =   1335
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.TextBox txtSneakertics 
 | 
			
		||||
         Height          =   285
 | 
			
		||||
         Left            =   3000
 | 
			
		||||
         TabIndex        =   13
 | 
			
		||||
         Top             =   600
 | 
			
		||||
         Width           =   1335
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.TextBox txtInvulntics 
 | 
			
		||||
         Height          =   285
 | 
			
		||||
         Left            =   3000
 | 
			
		||||
         TabIndex        =   11
 | 
			
		||||
         Top             =   240
 | 
			
		||||
         Width           =   1335
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.Label lblGameovertics 
 | 
			
		||||
         Alignment       =   1  'Right Justify
 | 
			
		||||
         Caption         =   "Game Over Screen Time:"
 | 
			
		||||
         Height          =   255
 | 
			
		||||
         Left            =   960
 | 
			
		||||
         TabIndex        =   30
 | 
			
		||||
         Top             =   3480
 | 
			
		||||
         Width           =   1935
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.Label lblHelpertics 
 | 
			
		||||
         Alignment       =   1  'Right Justify
 | 
			
		||||
         Caption         =   "NiGHTS Nightopian Helper Time:"
 | 
			
		||||
         Height          =   255
 | 
			
		||||
         Left            =   240
 | 
			
		||||
         TabIndex        =   28
 | 
			
		||||
         Top             =   3120
 | 
			
		||||
         Width           =   2655
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.Label lblParalooptics 
 | 
			
		||||
         Alignment       =   1  'Right Justify
 | 
			
		||||
         Caption         =   "NiGHTS Paraloop Powerup Time:"
 | 
			
		||||
         Height          =   255
 | 
			
		||||
         Left            =   360
 | 
			
		||||
         TabIndex        =   26
 | 
			
		||||
         Top             =   2760
 | 
			
		||||
         Width           =   2535
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.Label lblExtralifetics 
 | 
			
		||||
         Alignment       =   1  'Right Justify
 | 
			
		||||
         Caption         =   "Extra Life Music Duration:"
 | 
			
		||||
         Height          =   255
 | 
			
		||||
         Left            =   960
 | 
			
		||||
         TabIndex        =   24
 | 
			
		||||
         Top             =   2400
 | 
			
		||||
         Width           =   1935
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.Label lblSpacetimetics 
 | 
			
		||||
         Alignment       =   1  'Right Justify
 | 
			
		||||
         Caption         =   "Space Breath Timeout:"
 | 
			
		||||
         Height          =   255
 | 
			
		||||
         Left            =   1200
 | 
			
		||||
         TabIndex        =   22
 | 
			
		||||
         Top             =   2040
 | 
			
		||||
         Width           =   1695
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.Label lblUnderwatertics 
 | 
			
		||||
         Alignment       =   1  'Right Justify
 | 
			
		||||
         Caption         =   "Underwater Breath Timeout:"
 | 
			
		||||
         Height          =   255
 | 
			
		||||
         Left            =   840
 | 
			
		||||
         TabIndex        =   20
 | 
			
		||||
         Top             =   1680
 | 
			
		||||
         Width           =   2055
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.Label lblTailsflytics 
 | 
			
		||||
         Alignment       =   1  'Right Justify
 | 
			
		||||
         Caption         =   "Tails Flying Time:"
 | 
			
		||||
         Height          =   255
 | 
			
		||||
         Left            =   1440
 | 
			
		||||
         TabIndex        =   18
 | 
			
		||||
         Top             =   1320
 | 
			
		||||
         Width           =   1455
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.Label lblFlashingtics 
 | 
			
		||||
         Alignment       =   1  'Right Justify
 | 
			
		||||
         Caption         =   "Flashing Time After Being Hit:"
 | 
			
		||||
         Height          =   255
 | 
			
		||||
         Left            =   360
 | 
			
		||||
         TabIndex        =   16
 | 
			
		||||
         Top             =   960
 | 
			
		||||
         Width           =   2535
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.Label lblSneakertics 
 | 
			
		||||
         Alignment       =   1  'Right Justify
 | 
			
		||||
         Caption         =   "Super Sneakers Time:"
 | 
			
		||||
         Height          =   255
 | 
			
		||||
         Left            =   240
 | 
			
		||||
         TabIndex        =   14
 | 
			
		||||
         Top             =   600
 | 
			
		||||
         Width           =   2655
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.Label lblInvulntics 
 | 
			
		||||
         Alignment       =   1  'Right Justify
 | 
			
		||||
         Caption         =   "Invincibility Time:"
 | 
			
		||||
         Height          =   255
 | 
			
		||||
         Left            =   360
 | 
			
		||||
         TabIndex        =   12
 | 
			
		||||
         Top             =   240
 | 
			
		||||
         Width           =   2535
 | 
			
		||||
      End
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtIntrotoplay 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   4080
 | 
			
		||||
      TabIndex        =   6
 | 
			
		||||
      Top             =   1200
 | 
			
		||||
      Width           =   495
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtRacestage_start 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   4080
 | 
			
		||||
      MaxLength       =   4
 | 
			
		||||
      TabIndex        =   4
 | 
			
		||||
      Top             =   840
 | 
			
		||||
      Width           =   495
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtSpstage_start 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   4080
 | 
			
		||||
      MaxLength       =   4
 | 
			
		||||
      TabIndex        =   2
 | 
			
		||||
      Top             =   480
 | 
			
		||||
      Width           =   495
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtSstage_start 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   4080
 | 
			
		||||
      MaxLength       =   4
 | 
			
		||||
      TabIndex        =   0
 | 
			
		||||
      Top             =   120
 | 
			
		||||
      Width           =   495
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblTitleScrollSpeed 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Scroll speed of title background:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   1560
 | 
			
		||||
      TabIndex        =   40
 | 
			
		||||
      Top             =   1920
 | 
			
		||||
      Width           =   2415
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblCreditsCutscene 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Cutscene # to replace credits with:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   1080
 | 
			
		||||
      TabIndex        =   38
 | 
			
		||||
      Top             =   1560
 | 
			
		||||
      Width           =   2895
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblNumemblems 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "# of LEVEL Emblems (Gamedata field must also be filled out):"
 | 
			
		||||
      Height          =   375
 | 
			
		||||
      Left            =   1440
 | 
			
		||||
      TabIndex        =   34
 | 
			
		||||
      Top             =   3240
 | 
			
		||||
      Width           =   2535
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblGamedata 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Gamedata file (to save mod emblems and time data):"
 | 
			
		||||
      Height          =   375
 | 
			
		||||
      Left            =   960
 | 
			
		||||
      TabIndex        =   32
 | 
			
		||||
      Top             =   2760
 | 
			
		||||
      Width           =   2175
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblExeccfg 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "CFG file to instantly execute upon loading this SOC:"
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   960
 | 
			
		||||
      TabIndex        =   10
 | 
			
		||||
      Top             =   2280
 | 
			
		||||
      Width           =   2175
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblIntrotoplay 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Cutscene # to use for introduction:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   1440
 | 
			
		||||
      TabIndex        =   7
 | 
			
		||||
      Top             =   1200
 | 
			
		||||
      Width           =   2535
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblRacestage_start 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Racing mode starts/loops back to this map #:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   720
 | 
			
		||||
      TabIndex        =   5
 | 
			
		||||
      Top             =   840
 | 
			
		||||
      Width           =   3255
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblSpstage_start 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Single Player Game Starts on this map #:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   1080
 | 
			
		||||
      TabIndex        =   3
 | 
			
		||||
      Top             =   480
 | 
			
		||||
      Width           =   2895
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblSstage_start 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "First Special Stage Map #:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   2040
 | 
			
		||||
      TabIndex        =   1
 | 
			
		||||
      Top             =   120
 | 
			
		||||
      Width           =   1935
 | 
			
		||||
   End
 | 
			
		||||
End
 | 
			
		||||
Attribute VB_Name = "frmMaincfg"
 | 
			
		||||
Attribute VB_GlobalNameSpace = False
 | 
			
		||||
Attribute VB_Creatable = False
 | 
			
		||||
Attribute VB_PredeclaredId = True
 | 
			
		||||
Attribute VB_Exposed = False
 | 
			
		||||
Private Sub cmdReload_Click()
 | 
			
		||||
    Call Reload
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdSave_Click()
 | 
			
		||||
    Call WriteSettings
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub Form_Load()
 | 
			
		||||
    Call Reload
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub ClearForm()
 | 
			
		||||
    Dim i As Integer
 | 
			
		||||
    
 | 
			
		||||
    txtSstage_start.Text = ""
 | 
			
		||||
    txtSpstage_start.Text = ""
 | 
			
		||||
    txtRacestage_start.Text = ""
 | 
			
		||||
    txtIntrotoplay.Text = ""
 | 
			
		||||
    txtExeccfg.Text = ""
 | 
			
		||||
    txtGamedata.Text = ""
 | 
			
		||||
    txtNumemblems.Text = ""
 | 
			
		||||
    txtInvulntics.Text = ""
 | 
			
		||||
    txtSneakertics.Text = ""
 | 
			
		||||
    txtFlashingtics.Text = ""
 | 
			
		||||
    txtTailsflytics.Text = ""
 | 
			
		||||
    txtUnderwatertics.Text = ""
 | 
			
		||||
    txtSpacetimetics.Text = ""
 | 
			
		||||
    txtExtralifetics.Text = ""
 | 
			
		||||
    txtParalooptics.Text = ""
 | 
			
		||||
    txtHelpertics.Text = ""
 | 
			
		||||
    txtGameovertics.Text = ""
 | 
			
		||||
    txtCreditsCutscene.Text = ""
 | 
			
		||||
    txtTitleScrollSpeed.Text = ""
 | 
			
		||||
    chkLoopTitle.Value = 0
 | 
			
		||||
    chkDisableSpeedAdjust.Value = 0
 | 
			
		||||
    
 | 
			
		||||
    For i = 0 To 2
 | 
			
		||||
        chkReset(i).Value = 0
 | 
			
		||||
    Next i
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub Reload()
 | 
			
		||||
    Call ClearForm
 | 
			
		||||
    Call ReadSOCMaincfg
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub ReadSOCMaincfg()
 | 
			
		||||
    Dim myFSO As New Scripting.FileSystemObject
 | 
			
		||||
    Dim ts As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim word As String
 | 
			
		||||
    Dim word2 As String
 | 
			
		||||
    
 | 
			
		||||
    Set ts = myFSO.OpenTextFile(SOCFile, ForReading, False)
 | 
			
		||||
    
 | 
			
		||||
SOCLoad:
 | 
			
		||||
    Do While Not ts.AtEndOfStream
 | 
			
		||||
        line = ts.ReadLine
 | 
			
		||||
        
 | 
			
		||||
        If Left(line, 1) = "#" Then GoTo SOCLoad
 | 
			
		||||
        
 | 
			
		||||
        If Left(line, 1) = vbCrLf Then GoTo SOCLoad
 | 
			
		||||
        
 | 
			
		||||
        If Len(line) < 1 Then GoTo SOCLoad
 | 
			
		||||
        
 | 
			
		||||
        word = FirstToken(line)
 | 
			
		||||
        word2 = SecondToken(line)
 | 
			
		||||
        
 | 
			
		||||
        If UCase(word) = "MAINCFG" Then
 | 
			
		||||
            Do While Len(line) > 0 And Not ts.AtEndOfStream
 | 
			
		||||
                line = ts.ReadLine
 | 
			
		||||
                word = UCase(FirstToken(line))
 | 
			
		||||
                word2 = UCase(SecondTokenEqual(line))
 | 
			
		||||
                    
 | 
			
		||||
                If word = "SSTAGE_START" Then
 | 
			
		||||
                    txtSstage_start.Text = Val(word2)
 | 
			
		||||
                ElseIf word = "SPSTAGE_START" Then
 | 
			
		||||
                    txtSpstage_start.Text = Val(word2)
 | 
			
		||||
                ElseIf word = "RACESTAGE_START" Then
 | 
			
		||||
                    txtRacestage_start.Text = Val(word2)
 | 
			
		||||
                ElseIf word = "INVULNTICS" Then
 | 
			
		||||
                    txtInvulntics.Text = Val(word2)
 | 
			
		||||
                ElseIf word = "SNEAKERTICS" Then
 | 
			
		||||
                    txtSneakertics.Text = Val(word2)
 | 
			
		||||
                ElseIf word = "FLASHINGTICS" Then
 | 
			
		||||
                    txtFlashingtics.Text = Val(word2)
 | 
			
		||||
                ElseIf word = "TAILSFLYTICS" Then
 | 
			
		||||
                    txtTailsflytics.Text = Val(word2)
 | 
			
		||||
                ElseIf word = "UNDERWATERTICS" Then
 | 
			
		||||
                    txtUnderwatertics.Text = Val(word2)
 | 
			
		||||
                ElseIf word = "SPACETIMETICS" Then
 | 
			
		||||
                    txtSpacetimetics.Text = Val(word2)
 | 
			
		||||
                ElseIf word = "EXTRALIFETICS" Then
 | 
			
		||||
                    txtExtralifetics.Text = Val(word2)
 | 
			
		||||
                ElseIf word = "PARALOOPTICS" Then
 | 
			
		||||
                    txtParalooptics.Text = Val(word2)
 | 
			
		||||
                ElseIf word = "HELPERTICS" Then
 | 
			
		||||
                    txtHelpertics.Text = Val(word2)
 | 
			
		||||
                ElseIf word = "GAMEOVERTICS" Then
 | 
			
		||||
                    txtGameovertics.Text = Val(word2)
 | 
			
		||||
                ElseIf word = "INTROTOPLAY" Then
 | 
			
		||||
                    txtIntrotoplay.Text = Val(word2)
 | 
			
		||||
                ElseIf word = "CREDITSCUTSCENE" Then
 | 
			
		||||
                    txtCreditsCutscene.Text = Val(word2)
 | 
			
		||||
                ElseIf word = "TITLESCROLLSPEED" Then
 | 
			
		||||
                    txtTitleScrollSpeed.Text = Val(word2)
 | 
			
		||||
                ElseIf word = "LOOPTITLE" Then
 | 
			
		||||
                    chkLoopTitle.Value = Val(word2)
 | 
			
		||||
                ElseIf word = "DISABLESPEEDADJUST" Then
 | 
			
		||||
                    chkDisableSpeedAdjust.Value = Val(word2)
 | 
			
		||||
                ElseIf word = "GAMEDATA" Then
 | 
			
		||||
                    txtGamedata.Text = word2
 | 
			
		||||
                ElseIf word = "NUMEMBLEMS" Then
 | 
			
		||||
                    txtNumemblems.Text = Val(word2)
 | 
			
		||||
                ElseIf word = "RESETDATA" Then
 | 
			
		||||
                    Dim resetflags As Integer
 | 
			
		||||
                    Dim z As Integer
 | 
			
		||||
                    
 | 
			
		||||
                    resetflags = Val(word2)
 | 
			
		||||
                    
 | 
			
		||||
                    For z = 0 To 2
 | 
			
		||||
                        If resetflags And chkReset(z).Tag Then
 | 
			
		||||
                            chkReset(z).Value = 1
 | 
			
		||||
                        Else
 | 
			
		||||
                            chkReset(z).Value = 0
 | 
			
		||||
                        End If
 | 
			
		||||
                    Next z
 | 
			
		||||
                ElseIf Len(line) > 0 And Left(line, 1) <> "#" Then
 | 
			
		||||
                    MsgBox "Error in SOC!" & vbCrLf & "Unknown line: " & line
 | 
			
		||||
                End If
 | 
			
		||||
            Loop
 | 
			
		||||
            Exit Do
 | 
			
		||||
        End If
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.Close
 | 
			
		||||
    Set myFSO = Nothing
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub WriteSettings()
 | 
			
		||||
    Dim myFSOSource As New Scripting.FileSystemObject
 | 
			
		||||
    Dim tsSource As TextStream
 | 
			
		||||
    Dim myFSOTarget As New Scripting.FileSystemObject
 | 
			
		||||
    Dim tsTarget As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim word As String
 | 
			
		||||
    Dim word2 As String
 | 
			
		||||
    Dim flags As Long
 | 
			
		||||
    Dim i As Integer
 | 
			
		||||
    
 | 
			
		||||
    Set tsSource = myFSOSource.OpenTextFile(SOCFile, ForReading, False)
 | 
			
		||||
    Set tsTarget = myFSOTarget.OpenTextFile(SOCTemp, ForWriting, True)
 | 
			
		||||
    
 | 
			
		||||
    Do While Not tsSource.AtEndOfStream
 | 
			
		||||
        line = tsSource.ReadLine
 | 
			
		||||
        word = UCase(FirstToken(line))
 | 
			
		||||
        word2 = UCase(SecondToken(line))
 | 
			
		||||
        
 | 
			
		||||
        'If the category exists in the SOC, delete it.
 | 
			
		||||
        If word = "MAINCFG" Then
 | 
			
		||||
            Do While Len(TrimComplete(tsSource.ReadLine)) > 0 And Not (tsSource.AtEndOfStream)
 | 
			
		||||
            Loop
 | 
			
		||||
        Else
 | 
			
		||||
            tsTarget.WriteLine line
 | 
			
		||||
        End If
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    tsSource.Close
 | 
			
		||||
    Set myFSOSource = Nothing
 | 
			
		||||
    
 | 
			
		||||
    If line <> "" Then tsTarget.WriteLine ""
 | 
			
		||||
    
 | 
			
		||||
    tsTarget.WriteLine "MAINCFG CATEGORY"
 | 
			
		||||
    txtSstage_start.Text = TrimComplete(txtSstage_start.Text)
 | 
			
		||||
    txtSpstage_start.Text = TrimComplete(txtSpstage_start.Text)
 | 
			
		||||
    txtRacestage_start.Text = TrimComplete(txtRacestage_start.Text)
 | 
			
		||||
    txtIntrotoplay.Text = TrimComplete(txtIntrotoplay.Text)
 | 
			
		||||
    txtCreditsCutscene.Text = TrimComplete(txtCreditsCutscene.Text)
 | 
			
		||||
    txtExeccfg.Text = TrimComplete(txtExeccfg.Text)
 | 
			
		||||
    txtGamedata.Text = TrimComplete(txtGamedata.Text)
 | 
			
		||||
    txtNumemblems.Text = TrimComplete(txtNumemblems.Text)
 | 
			
		||||
    txtInvulntics.Text = TrimComplete(txtInvulntics.Text)
 | 
			
		||||
    txtSneakertics.Text = TrimComplete(txtSneakertics.Text)
 | 
			
		||||
    txtFlashingtics.Text = TrimComplete(txtFlashingtics.Text)
 | 
			
		||||
    txtTailsflytics.Text = TrimComplete(txtTailsflytics.Text)
 | 
			
		||||
    txtUnderwatertics.Text = TrimComplete(txtUnderwatertics.Text)
 | 
			
		||||
    txtSpacetimetics.Text = TrimComplete(txtSpacetimetics.Text)
 | 
			
		||||
    txtExtralifetics.Text = TrimComplete(txtExtralifetics.Text)
 | 
			
		||||
    txtParalooptics.Text = TrimComplete(txtParalooptics.Text)
 | 
			
		||||
    txtHelpertics.Text = TrimComplete(txtHelpertics.Text)
 | 
			
		||||
    txtGameovertics.Text = TrimComplete(txtGameovertics.Text)
 | 
			
		||||
    txtTitleScrollSpeed.Text = TrimComplete(txtTitleScrollSpeed.Text)
 | 
			
		||||
      
 | 
			
		||||
    If txtSstage_start.Text <> "" Then tsTarget.WriteLine "SSTAGE_START = " & Val(txtSstage_start.Text)
 | 
			
		||||
    If txtSpstage_start.Text <> "" Then tsTarget.WriteLine "SPSTAGE_START = " & Val(txtSpstage_start.Text)
 | 
			
		||||
    If txtRacestage_start.Text <> "" Then tsTarget.WriteLine "RACESTAGE_START = " & Val(txtRacestage_start.Text)
 | 
			
		||||
    If txtIntrotoplay.Text <> "" Then tsTarget.WriteLine "INTROTOPLAY = " & Val(txtIntrotoplay.Text)
 | 
			
		||||
    If txtCreditsCutscene.Text <> "" Then tsTarget.WriteLine "CREDITSCUTSCENE = " & Val(txtCreditsCutscene.Text)
 | 
			
		||||
    If txtExeccfg.Text <> "" Then tsTarget.WriteLine "EXECCFG = " & txtExeccfg.Text
 | 
			
		||||
    If txtGamedata.Text <> "" Then tsTarget.WriteLine "GAMEDATA = " & txtGamedata.Text
 | 
			
		||||
    If txtNumemblems.Text <> "" Then
 | 
			
		||||
        tsTarget.WriteLine "NUMEMBLEMS = " & Val(txtNumemblems.Text)
 | 
			
		||||
        EditedNumemblems = True
 | 
			
		||||
    End If
 | 
			
		||||
    If txtInvulntics.Text <> "" Then tsTarget.WriteLine "INVULNTICS = " & Val(txtInvulntics.Text)
 | 
			
		||||
    If txtSneakertics.Text <> "" Then tsTarget.WriteLine "SNEAKERTICS = " & Val(txtSneakertics.Text)
 | 
			
		||||
    If txtFlashingtics.Text <> "" Then tsTarget.WriteLine "FLASHINGTICS = " & Val(txtFlashingtics.Text)
 | 
			
		||||
    If txtTailsflytics.Text <> "" Then tsTarget.WriteLine "TAILSFLYTICS = " & Val(txtTailsflytics.Text)
 | 
			
		||||
    If txtUnderwatertics.Text <> "" Then tsTarget.WriteLine "UNDERWATERTICS = " & Val(txtUnderwatertics.Text)
 | 
			
		||||
    If txtSpacetimetics.Text <> "" Then tsTarget.WriteLine "SPACETIMETICS = " & Val(txtSpacetimetics.Text)
 | 
			
		||||
    If txtExtralifetics.Text <> "" Then tsTarget.WriteLine "EXTRALIFETICS = " & Val(txtExtralifetics.Text)
 | 
			
		||||
    If txtParalooptics.Text <> "" Then tsTarget.WriteLine "PARALOOPTICS = " & Val(txtParalooptics.Text)
 | 
			
		||||
    If txtHelpertics.Text <> "" Then tsTarget.WriteLine "HELPERTICS = " & Val(txtHelpertics.Text)
 | 
			
		||||
    If txtGameovertics.Text <> "" Then tsTarget.WriteLine "GAMEOVERTICS = " & Val(txtGameovertics.Text)
 | 
			
		||||
    If txtTitleScrollSpeed.Text <> "" Then tsTarget.WriteLine "TITLESCROLLSPEED = " & Val(txtTitleScrollSpeed.Text)
 | 
			
		||||
    If chkLoopTitle.Value = 1 Then tsTarget.WriteLine "LOOPTITLE = " & chkLoopTitle.Value
 | 
			
		||||
    If chkDisableSpeedAdjust.Value = 1 Then tsTarget.WriteLine "DISABLESPEEDADJUST = " & chkDisableSpeedAdjust.Value
 | 
			
		||||
    
 | 
			
		||||
    flags = 0
 | 
			
		||||
    For i = 0 To 2
 | 
			
		||||
        If chkReset(i).Value = 1 Then
 | 
			
		||||
            flags = flags + Val(chkReset(i).Tag)
 | 
			
		||||
        End If
 | 
			
		||||
    Next
 | 
			
		||||
        
 | 
			
		||||
    If flags > 0 Then tsTarget.WriteLine "RESETDATA = " & flags
 | 
			
		||||
    
 | 
			
		||||
    tsTarget.Close
 | 
			
		||||
    Set myFSOTarget = Nothing
 | 
			
		||||
    
 | 
			
		||||
    FileCopy SOCTemp, SOCFile
 | 
			
		||||
    
 | 
			
		||||
    Kill SOCTemp
 | 
			
		||||
    
 | 
			
		||||
    MsgBox "Settings Saved."
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -1,485 +0,0 @@
 | 
			
		|||
VERSION 5.00
 | 
			
		||||
Begin VB.Form frmSoundEdit 
 | 
			
		||||
   Caption         =   "Sound Edit"
 | 
			
		||||
   ClientHeight    =   4995
 | 
			
		||||
   ClientLeft      =   60
 | 
			
		||||
   ClientTop       =   345
 | 
			
		||||
   ClientWidth     =   6180
 | 
			
		||||
   Icon            =   "frmSoundEdit.frx":0000
 | 
			
		||||
   LinkTopic       =   "Form1"
 | 
			
		||||
   MaxButton       =   0   'False
 | 
			
		||||
   ScaleHeight     =   4995
 | 
			
		||||
   ScaleWidth      =   6180
 | 
			
		||||
   StartUpPosition =   3  'Windows Default
 | 
			
		||||
   Begin VB.CommandButton cmdDelete 
 | 
			
		||||
      Caption         =   "&Delete sound from SOC"
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   5040
 | 
			
		||||
      Style           =   1  'Graphical
 | 
			
		||||
      TabIndex        =   13
 | 
			
		||||
      Top             =   4320
 | 
			
		||||
      Width           =   1095
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdSave 
 | 
			
		||||
      Caption         =   "&Save"
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   3840
 | 
			
		||||
      TabIndex        =   6
 | 
			
		||||
      Top             =   4320
 | 
			
		||||
      Width           =   1095
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdReload 
 | 
			
		||||
      Caption         =   "&Load Code Default"
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   2640
 | 
			
		||||
      Style           =   1  'Graphical
 | 
			
		||||
      TabIndex        =   5
 | 
			
		||||
      Top             =   4320
 | 
			
		||||
      Width           =   1095
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Frame frmSpecial 
 | 
			
		||||
      Caption         =   "Special Properties"
 | 
			
		||||
      Height          =   3375
 | 
			
		||||
      Left            =   2640
 | 
			
		||||
      TabIndex        =   4
 | 
			
		||||
      Top             =   840
 | 
			
		||||
      Width           =   3495
 | 
			
		||||
      Begin VB.CheckBox chkTotallySingle 
 | 
			
		||||
         Caption         =   "Make sure only one sound of this is playing at a time on any sound channel."
 | 
			
		||||
         Height          =   615
 | 
			
		||||
         Left            =   120
 | 
			
		||||
         TabIndex        =   12
 | 
			
		||||
         Tag             =   "1"
 | 
			
		||||
         Top             =   2640
 | 
			
		||||
         Width           =   3255
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.CheckBox chkEightEx 
 | 
			
		||||
         Caption         =   "Sound can be heard across 8x the distance"
 | 
			
		||||
         Height          =   375
 | 
			
		||||
         Left            =   120
 | 
			
		||||
         TabIndex        =   10
 | 
			
		||||
         Tag             =   "16"
 | 
			
		||||
         Top             =   2160
 | 
			
		||||
         Width           =   2295
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.CheckBox chkOutside 
 | 
			
		||||
         Caption         =   "Volume dependent on how close you are to outside"
 | 
			
		||||
         Height          =   375
 | 
			
		||||
         Left            =   120
 | 
			
		||||
         TabIndex        =   9
 | 
			
		||||
         Tag             =   "4"
 | 
			
		||||
         Top             =   360
 | 
			
		||||
         Width           =   2295
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.CheckBox chkFourEx 
 | 
			
		||||
         Caption         =   "Sound can be heard across 4x the distance"
 | 
			
		||||
         Height          =   375
 | 
			
		||||
         Left            =   120
 | 
			
		||||
         TabIndex        =   8
 | 
			
		||||
         Tag             =   "8"
 | 
			
		||||
         Top             =   1560
 | 
			
		||||
         Width           =   2055
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.CheckBox chkMultiple 
 | 
			
		||||
         Caption         =   "More than one of this sound can be played per object at a time (i.e., thunder)"
 | 
			
		||||
         Height          =   615
 | 
			
		||||
         Left            =   120
 | 
			
		||||
         TabIndex        =   7
 | 
			
		||||
         Tag             =   "2"
 | 
			
		||||
         Top             =   840
 | 
			
		||||
         Width           =   2535
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.Label Label1 
 | 
			
		||||
         Caption         =   "Combine for 32x"
 | 
			
		||||
         Height          =   495
 | 
			
		||||
         Left            =   2760
 | 
			
		||||
         TabIndex        =   11
 | 
			
		||||
         Top             =   1800
 | 
			
		||||
         Width           =   615
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.Line Line4 
 | 
			
		||||
         X1              =   2400
 | 
			
		||||
         X2              =   2640
 | 
			
		||||
         Y1              =   2400
 | 
			
		||||
         Y2              =   2400
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.Line Line2 
 | 
			
		||||
         X1              =   2400
 | 
			
		||||
         X2              =   2640
 | 
			
		||||
         Y1              =   1800
 | 
			
		||||
         Y2              =   1800
 | 
			
		||||
      End
 | 
			
		||||
      Begin VB.Line Line1 
 | 
			
		||||
         X1              =   2640
 | 
			
		||||
         X2              =   2640
 | 
			
		||||
         Y1              =   2400
 | 
			
		||||
         Y2              =   1800
 | 
			
		||||
      End
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.ComboBox cmbPriority 
 | 
			
		||||
      Height          =   315
 | 
			
		||||
      ItemData        =   "frmSoundEdit.frx":0442
 | 
			
		||||
      Left            =   3360
 | 
			
		||||
      List            =   "frmSoundEdit.frx":0444
 | 
			
		||||
      TabIndex        =   2
 | 
			
		||||
      Top             =   120
 | 
			
		||||
      Width           =   855
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CheckBox chkSingularity 
 | 
			
		||||
      Caption         =   "Only one can be played at a time per object."
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   2640
 | 
			
		||||
      TabIndex        =   1
 | 
			
		||||
      Top             =   480
 | 
			
		||||
      Width           =   3495
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.ListBox lstSounds 
 | 
			
		||||
      Height          =   4740
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   0
 | 
			
		||||
      Top             =   120
 | 
			
		||||
      Width           =   2415
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Line Line3 
 | 
			
		||||
      X1              =   0
 | 
			
		||||
      X2              =   720
 | 
			
		||||
      Y1              =   0
 | 
			
		||||
      Y2              =   0
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblPriority 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Priority:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   2640
 | 
			
		||||
      TabIndex        =   3
 | 
			
		||||
      Top             =   120
 | 
			
		||||
      Width           =   615
 | 
			
		||||
   End
 | 
			
		||||
End
 | 
			
		||||
Attribute VB_Name = "frmSoundEdit"
 | 
			
		||||
Attribute VB_GlobalNameSpace = False
 | 
			
		||||
Attribute VB_Creatable = False
 | 
			
		||||
Attribute VB_PredeclaredId = True
 | 
			
		||||
Attribute VB_Exposed = False
 | 
			
		||||
Option Explicit
 | 
			
		||||
 | 
			
		||||
Private Sub cmdDelete_Click()
 | 
			
		||||
    Call WriteSound(True)
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdReload_Click()
 | 
			
		||||
    Call ClearForm
 | 
			
		||||
    If InStr(lstSounds.List(lstSounds.ListIndex), "(free slot)") = 0 Then
 | 
			
		||||
        Call LoadSoundInfo(lstSounds.ListIndex)
 | 
			
		||||
    Else
 | 
			
		||||
        MsgBox "Free slots do not have a code default."
 | 
			
		||||
    End If
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdSave_Click()
 | 
			
		||||
    Call WriteSound(False)
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub Form_Load()
 | 
			
		||||
    Call Reload
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub ClearForm()
 | 
			
		||||
    cmbPriority.Text = ""
 | 
			
		||||
    chkSingularity.Value = 0
 | 
			
		||||
    chkOutside.Value = 0
 | 
			
		||||
    chkMultiple.Value = 0
 | 
			
		||||
    chkFourEx.Value = 0
 | 
			
		||||
    chkEightEx.Value = 0
 | 
			
		||||
    chkTotallySingle.Value = 0
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub Reload()
 | 
			
		||||
    Call ClearForm
 | 
			
		||||
    Call LoadCode
 | 
			
		||||
    lstSounds.ListIndex = 0
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub LoadCode()
 | 
			
		||||
    Dim myFSO As New Scripting.FileSystemObject
 | 
			
		||||
    Dim ts As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim number As Integer
 | 
			
		||||
    Dim startclip As Integer, endclip As Integer
 | 
			
		||||
    Dim addstring As String
 | 
			
		||||
    Dim i As Integer, numfreeslots As Integer
 | 
			
		||||
    
 | 
			
		||||
    ChDir SourcePath
 | 
			
		||||
    Set ts = myFSO.OpenTextFile("sounds.h", ForReading, False)
 | 
			
		||||
    
 | 
			
		||||
    Do While InStr(ts.ReadLine, "List of sounds (don't modify this comment!)") = 0
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.SkipLine ' typedef enum
 | 
			
		||||
    ts.SkipLine ' {
 | 
			
		||||
    
 | 
			
		||||
    line = ts.ReadLine
 | 
			
		||||
    number = 0
 | 
			
		||||
    
 | 
			
		||||
    lstSounds.Clear
 | 
			
		||||
    
 | 
			
		||||
    Do While InStr(line, "sfx_freeslot0") = 0
 | 
			
		||||
        startclip = InStr(line, "sfx_")
 | 
			
		||||
        If InStr(line, "sfx_") <> 0 Then
 | 
			
		||||
            endclip = InStr(line, ",")
 | 
			
		||||
            line = Mid(line, startclip, endclip - startclip)
 | 
			
		||||
            addstring = number & " - " & line
 | 
			
		||||
            lstSounds.AddItem addstring
 | 
			
		||||
            number = number + 1
 | 
			
		||||
        End If
 | 
			
		||||
        line = ts.ReadLine
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.Close
 | 
			
		||||
    Set myFSO = Nothing
 | 
			
		||||
    
 | 
			
		||||
'Populate the free slots!
 | 
			
		||||
    numfreeslots = 800
 | 
			
		||||
 | 
			
		||||
    For i = 1 To numfreeslots
 | 
			
		||||
        If i < 10 Then
 | 
			
		||||
            addstring = number & " - " & "sfx_fre00" & i & " (free slot)"
 | 
			
		||||
        ElseIf i < 100 Then
 | 
			
		||||
            addstring = number & " - " & "sfx_fre0" & i & " (free slot)"
 | 
			
		||||
        Else
 | 
			
		||||
            addstring = number & " - " & "sfx_fre" & i & " (free slot)"
 | 
			
		||||
        End If
 | 
			
		||||
        lstSounds.AddItem addstring
 | 
			
		||||
        number = number + 1
 | 
			
		||||
    Next
 | 
			
		||||
    
 | 
			
		||||
    For i = 0 To 127
 | 
			
		||||
        cmbPriority.AddItem i
 | 
			
		||||
    Next
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub lstSounds_Click()
 | 
			
		||||
    Call ClearForm
 | 
			
		||||
    If InStr(lstSounds.List(lstSounds.ListIndex), "(free slot)") = 0 Then
 | 
			
		||||
        Call LoadSoundInfo(lstSounds.ListIndex)
 | 
			
		||||
    End If
 | 
			
		||||
    Call LoadSOCSoundInfo(lstSounds.ListIndex)
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub LoadSOCSoundInfo(SoundNum As Integer)
 | 
			
		||||
    Dim myFSO As New Scripting.FileSystemObject
 | 
			
		||||
    Dim ts As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim word As String
 | 
			
		||||
    Dim word2 As String
 | 
			
		||||
    
 | 
			
		||||
    Set ts = myFSO.OpenTextFile(SOCFile, ForReading, False)
 | 
			
		||||
    
 | 
			
		||||
SOCLoad:
 | 
			
		||||
    Do While Not ts.AtEndOfStream
 | 
			
		||||
        line = ts.ReadLine
 | 
			
		||||
        
 | 
			
		||||
        If Left(line, 1) = "#" Then GoTo SOCLoad
 | 
			
		||||
        
 | 
			
		||||
        If Left(line, 1) = vbCrLf Then GoTo SOCLoad
 | 
			
		||||
        
 | 
			
		||||
        If Len(line) < 1 Then GoTo SOCLoad
 | 
			
		||||
        
 | 
			
		||||
        word = FirstToken(line)
 | 
			
		||||
        word2 = SecondToken(line)
 | 
			
		||||
        
 | 
			
		||||
        If UCase(word) = "SOUND" And Val(word2) = SoundNum Then
 | 
			
		||||
            Do While Len(line) > 0 And Not ts.AtEndOfStream
 | 
			
		||||
                line = ts.ReadLine
 | 
			
		||||
                word = UCase(FirstToken(line))
 | 
			
		||||
                word2 = UCase(SecondTokenEqual(line))
 | 
			
		||||
                    
 | 
			
		||||
                If word = "SINGULAR" Then
 | 
			
		||||
                    If Val(word2) = 1 Then
 | 
			
		||||
                        chkSingularity.Value = 1
 | 
			
		||||
                    Else
 | 
			
		||||
                        chkSingularity.Value = 0
 | 
			
		||||
                    End If
 | 
			
		||||
                ElseIf word = "PRIORITY" Then
 | 
			
		||||
                    cmbPriority.Text = Val(word2)
 | 
			
		||||
                ElseIf word = "FLAGS" Then
 | 
			
		||||
                    ProcessSoundFlags (Val(word2))
 | 
			
		||||
                ElseIf Len(line) > 0 And Left(line, 1) <> "#" Then
 | 
			
		||||
                    MsgBox "Error in SOC!" & vbCrLf & "Unknown line: " & line
 | 
			
		||||
                End If
 | 
			
		||||
            Loop
 | 
			
		||||
            Exit Do
 | 
			
		||||
        End If
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.Close
 | 
			
		||||
    Set myFSO = Nothing
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub LoadSoundInfo(StateNum As Integer)
 | 
			
		||||
    Dim myFSO As New Scripting.FileSystemObject
 | 
			
		||||
    Dim ts As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim number As Integer
 | 
			
		||||
    Dim startclip As Integer, endclip As Integer
 | 
			
		||||
    Dim token As String
 | 
			
		||||
    Dim frame As Long
 | 
			
		||||
    
 | 
			
		||||
    ChDir SourcePath
 | 
			
		||||
    Set ts = myFSO.OpenTextFile("sounds.c", ForReading, False)
 | 
			
		||||
    
 | 
			
		||||
    Do While InStr(ts.ReadLine, "S_sfx[0] needs to be a dummy for odd reasons.") = 0
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    number = 0
 | 
			
		||||
    
 | 
			
		||||
    Do While number <> StateNum
 | 
			
		||||
        Do While InStr(ts.ReadLine, """") = 0
 | 
			
		||||
        Loop
 | 
			
		||||
        number = number + 1
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    Do While InStr(line, """") = 0
 | 
			
		||||
        line = ts.ReadLine
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    startclip = InStr(line, """") + 1
 | 
			
		||||
    line = Mid(line, startclip, Len(line) - startclip)
 | 
			
		||||
    endclip = InStr(line, """") - 1
 | 
			
		||||
    token = TrimComplete(Left(line, endclip))
 | 
			
		||||
    
 | 
			
		||||
    'txtName.Text = line
 | 
			
		||||
    
 | 
			
		||||
    startclip = InStr(line, ",") + 1
 | 
			
		||||
    line = Mid(line, startclip, Len(line) - startclip)
 | 
			
		||||
    endclip = InStr(line, ",") - 1
 | 
			
		||||
    token = TrimComplete(Left(line, endclip))
 | 
			
		||||
    
 | 
			
		||||
    If token = "true" Then
 | 
			
		||||
        chkSingularity.Value = 1
 | 
			
		||||
    Else
 | 
			
		||||
        chkSingularity.Value = 0
 | 
			
		||||
    End If
 | 
			
		||||
    
 | 
			
		||||
    startclip = InStr(line, ",") + 1
 | 
			
		||||
    line = Mid(line, startclip, Len(line) - startclip)
 | 
			
		||||
    endclip = InStr(line, ",") - 1
 | 
			
		||||
    token = TrimComplete(Left(line, endclip))
 | 
			
		||||
    cmbPriority.Text = token
 | 
			
		||||
    
 | 
			
		||||
    startclip = InStr(line, ",") + 1
 | 
			
		||||
    line = Mid(line, startclip, Len(line) - startclip)
 | 
			
		||||
    endclip = InStr(line, ",") - 1
 | 
			
		||||
    token = TrimComplete(Left(line, endclip))
 | 
			
		||||
    
 | 
			
		||||
    ProcessSoundFlags (Val(token))
 | 
			
		||||
    
 | 
			
		||||
    ts.Close
 | 
			
		||||
    Set myFSO = Nothing
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub ProcessSoundFlags(flags As Long)
 | 
			
		||||
 | 
			
		||||
    chkTotallySingle.Value = 0
 | 
			
		||||
    chkMultiple.Value = 0
 | 
			
		||||
    chkOutside.Value = 0
 | 
			
		||||
    chkFourEx.Value = 0
 | 
			
		||||
    chkEightEx.Value = 0
 | 
			
		||||
    
 | 
			
		||||
    If flags = -1 Then
 | 
			
		||||
        Exit Sub
 | 
			
		||||
    End If
 | 
			
		||||
    
 | 
			
		||||
    If flags And 1 Then
 | 
			
		||||
        chkTotallySingle.Value = 1
 | 
			
		||||
    End If
 | 
			
		||||
    
 | 
			
		||||
    If flags And 2 Then
 | 
			
		||||
        chkMultiple.Value = 1
 | 
			
		||||
    End If
 | 
			
		||||
    
 | 
			
		||||
    If flags And 4 Then
 | 
			
		||||
        chkOutside.Value = 1
 | 
			
		||||
    End If
 | 
			
		||||
    
 | 
			
		||||
    If flags And 8 Then
 | 
			
		||||
        chkFourEx.Value = 1
 | 
			
		||||
    End If
 | 
			
		||||
    
 | 
			
		||||
    If flags And 16 Then
 | 
			
		||||
        chkEightEx.Value = 1
 | 
			
		||||
    End If
 | 
			
		||||
    
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub WriteSound(Remove As Boolean)
 | 
			
		||||
    Dim myFSOSource As New Scripting.FileSystemObject
 | 
			
		||||
    Dim tsSource As TextStream
 | 
			
		||||
    Dim myFSOTarget As New Scripting.FileSystemObject
 | 
			
		||||
    Dim tsTarget As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim word As String
 | 
			
		||||
    Dim word2 As String
 | 
			
		||||
    Dim flags As Long
 | 
			
		||||
    Dim soundfound As Boolean
 | 
			
		||||
    
 | 
			
		||||
    soundfound = False
 | 
			
		||||
    
 | 
			
		||||
    Set tsSource = myFSOSource.OpenTextFile(SOCFile, ForReading, False)
 | 
			
		||||
    Set tsTarget = myFSOTarget.OpenTextFile(SOCTemp, ForWriting, True)
 | 
			
		||||
    
 | 
			
		||||
    Do While Not tsSource.AtEndOfStream
 | 
			
		||||
        line = tsSource.ReadLine
 | 
			
		||||
        word = UCase(FirstToken(line))
 | 
			
		||||
        word2 = UCase(SecondToken(line))
 | 
			
		||||
 | 
			
		||||
        'If the current sound exists in the SOC, delete it.
 | 
			
		||||
        If word = "SOUND" And Val(word2) = lstSounds.ListIndex Then
 | 
			
		||||
            soundfound = True
 | 
			
		||||
            Do While Len(TrimComplete(tsSource.ReadLine)) > 0 And Not (tsSource.AtEndOfStream)
 | 
			
		||||
            Loop
 | 
			
		||||
        Else
 | 
			
		||||
            tsTarget.WriteLine line
 | 
			
		||||
        End If
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    tsSource.Close
 | 
			
		||||
    Set myFSOSource = Nothing
 | 
			
		||||
    
 | 
			
		||||
    If Remove = False Then
 | 
			
		||||
        If line <> "" Then tsTarget.WriteLine ""
 | 
			
		||||
    
 | 
			
		||||
        tsTarget.WriteLine "SOUND " & lstSounds.ListIndex
 | 
			
		||||
        cmbPriority.Text = TrimComplete(cmbPriority.Text)
 | 
			
		||||
        If cmbPriority.Text <> "" Then tsTarget.WriteLine "PRIORITY = " & Val(cmbPriority.Text)
 | 
			
		||||
        If chkSingularity.Value = 1 Then tsTarget.WriteLine "SINGULAR = 1"
 | 
			
		||||
        
 | 
			
		||||
        flags = 0
 | 
			
		||||
        
 | 
			
		||||
        If chkOutside.Value = 1 Then flags = flags + Val(chkOutside.Tag)
 | 
			
		||||
        If chkMultiple.Value = 1 Then flags = flags + Val(chkMultiple.Tag)
 | 
			
		||||
        If chkFourEx.Value = 1 Then flags = flags + Val(chkFourEx.Tag)
 | 
			
		||||
        If chkEightEx.Value = 1 Then flags = flags + Val(chkEightEx.Tag)
 | 
			
		||||
        If chkTotallySingle.Value = 1 Then flags = flags + Val(chkTotallySingle.Tag)
 | 
			
		||||
        
 | 
			
		||||
        If flags > 0 Then tsTarget.WriteLine "FLAGS = " & flags
 | 
			
		||||
    End If
 | 
			
		||||
    
 | 
			
		||||
    tsTarget.Close
 | 
			
		||||
    Set myFSOTarget = Nothing
 | 
			
		||||
    
 | 
			
		||||
    FileCopy SOCTemp, SOCFile
 | 
			
		||||
    
 | 
			
		||||
    Kill SOCTemp
 | 
			
		||||
    
 | 
			
		||||
    If Remove = True Then
 | 
			
		||||
        If soundfound = True Then
 | 
			
		||||
            MsgBox "Sound removed from SOC."
 | 
			
		||||
        Else
 | 
			
		||||
            MsgBox "Sound not found in SOC."
 | 
			
		||||
        End If
 | 
			
		||||
    Else
 | 
			
		||||
        MsgBox "Sound Saved."
 | 
			
		||||
    End If
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -1,940 +0,0 @@
 | 
			
		|||
VERSION 5.00
 | 
			
		||||
Begin VB.Form frmStateEdit 
 | 
			
		||||
   Caption         =   "State Edit"
 | 
			
		||||
   ClientHeight    =   6750
 | 
			
		||||
   ClientLeft      =   60
 | 
			
		||||
   ClientTop       =   345
 | 
			
		||||
   ClientWidth     =   8970
 | 
			
		||||
   Icon            =   "frmStateEdit.frx":0000
 | 
			
		||||
   LinkTopic       =   "Form1"
 | 
			
		||||
   MaxButton       =   0   'False
 | 
			
		||||
   ScaleHeight     =   6750
 | 
			
		||||
   ScaleWidth      =   8970
 | 
			
		||||
   StartUpPosition =   3  'Windows Default
 | 
			
		||||
   Begin VB.TextBox lblVar2Desc 
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   4440
 | 
			
		||||
      Locked          =   -1  'True
 | 
			
		||||
      MultiLine       =   -1  'True
 | 
			
		||||
      ScrollBars      =   2  'Vertical
 | 
			
		||||
      TabIndex        =   25
 | 
			
		||||
      Top             =   3000
 | 
			
		||||
      Width           =   4455
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox lblVar1Desc 
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   4440
 | 
			
		||||
      Locked          =   -1  'True
 | 
			
		||||
      MultiLine       =   -1  'True
 | 
			
		||||
      ScrollBars      =   2  'Vertical
 | 
			
		||||
      TabIndex        =   24
 | 
			
		||||
      Top             =   2400
 | 
			
		||||
      Width           =   4455
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox lblActionDesc 
 | 
			
		||||
      Height          =   735
 | 
			
		||||
      Left            =   4440
 | 
			
		||||
      Locked          =   -1  'True
 | 
			
		||||
      MultiLine       =   -1  'True
 | 
			
		||||
      ScrollBars      =   2  'Vertical
 | 
			
		||||
      TabIndex        =   23
 | 
			
		||||
      Top             =   1560
 | 
			
		||||
      Width           =   4455
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.ListBox lstThings 
 | 
			
		||||
      Height          =   450
 | 
			
		||||
      ItemData        =   "frmStateEdit.frx":0442
 | 
			
		||||
      Left            =   7440
 | 
			
		||||
      List            =   "frmStateEdit.frx":0444
 | 
			
		||||
      TabIndex        =   22
 | 
			
		||||
      Top             =   6120
 | 
			
		||||
      Visible         =   0   'False
 | 
			
		||||
      Width           =   975
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtFuncVar2 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   7200
 | 
			
		||||
      TabIndex        =   19
 | 
			
		||||
      Top             =   3600
 | 
			
		||||
      Width           =   1215
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtFuncVar1 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   5520
 | 
			
		||||
      TabIndex        =   18
 | 
			
		||||
      Top             =   3600
 | 
			
		||||
      Width           =   1095
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdCopy 
 | 
			
		||||
      Caption         =   "&Copy state to..."
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   6120
 | 
			
		||||
      Style           =   1  'Graphical
 | 
			
		||||
      TabIndex        =   17
 | 
			
		||||
      Top             =   6120
 | 
			
		||||
      Width           =   1095
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdDelete 
 | 
			
		||||
      Caption         =   "&Delete State from SOC"
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   6120
 | 
			
		||||
      Style           =   1  'Graphical
 | 
			
		||||
      TabIndex        =   16
 | 
			
		||||
      Top             =   5520
 | 
			
		||||
      Width           =   1095
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdReload 
 | 
			
		||||
      Caption         =   "&Load Code Default"
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   4920
 | 
			
		||||
      Style           =   1  'Graphical
 | 
			
		||||
      TabIndex        =   15
 | 
			
		||||
      Top             =   5520
 | 
			
		||||
      Width           =   1095
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdSave 
 | 
			
		||||
      Caption         =   "&Save"
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   7320
 | 
			
		||||
      TabIndex        =   14
 | 
			
		||||
      Top             =   5520
 | 
			
		||||
      Width           =   1095
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.ComboBox cmbTranslucency 
 | 
			
		||||
      Height          =   315
 | 
			
		||||
      ItemData        =   "frmStateEdit.frx":0446
 | 
			
		||||
      Left            =   6720
 | 
			
		||||
      List            =   "frmStateEdit.frx":045C
 | 
			
		||||
      TabIndex        =   12
 | 
			
		||||
      Top             =   5040
 | 
			
		||||
      Width           =   1695
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CheckBox chkFullbright 
 | 
			
		||||
      Caption         =   "Make sprite full-brightness (unaffected by lighting)"
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   6240
 | 
			
		||||
      TabIndex        =   11
 | 
			
		||||
      Top             =   4440
 | 
			
		||||
      Width           =   2175
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.ComboBox cmbNextstate 
 | 
			
		||||
      Height          =   315
 | 
			
		||||
      Left            =   6120
 | 
			
		||||
      TabIndex        =   9
 | 
			
		||||
      Top             =   3960
 | 
			
		||||
      Width           =   2295
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.ComboBox cmbAction 
 | 
			
		||||
      Height          =   315
 | 
			
		||||
      Left            =   6000
 | 
			
		||||
      TabIndex        =   7
 | 
			
		||||
      Top             =   1200
 | 
			
		||||
      Width           =   2295
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtTics 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   7800
 | 
			
		||||
      TabIndex        =   5
 | 
			
		||||
      Top             =   720
 | 
			
		||||
      Width           =   495
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtFrame 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   5880
 | 
			
		||||
      MaxLength       =   2
 | 
			
		||||
      TabIndex        =   3
 | 
			
		||||
      Top             =   720
 | 
			
		||||
      Width           =   495
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.ComboBox cmbSprite 
 | 
			
		||||
      Height          =   315
 | 
			
		||||
      Left            =   5880
 | 
			
		||||
      TabIndex        =   1
 | 
			
		||||
      Top             =   120
 | 
			
		||||
      Width           =   2415
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.ListBox lstStates 
 | 
			
		||||
      Height          =   6495
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   0
 | 
			
		||||
      Top             =   120
 | 
			
		||||
      Width           =   4215
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblFuncVar2 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Var2:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   6600
 | 
			
		||||
      TabIndex        =   21
 | 
			
		||||
      Top             =   3600
 | 
			
		||||
      Width           =   495
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblFuncVar1 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Var1:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   4920
 | 
			
		||||
      TabIndex        =   20
 | 
			
		||||
      Top             =   3600
 | 
			
		||||
      Width           =   495
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblTranslucency 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Translucency:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   5520
 | 
			
		||||
      TabIndex        =   13
 | 
			
		||||
      Top             =   5040
 | 
			
		||||
      Width           =   1095
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblNextstate 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Next State:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   5160
 | 
			
		||||
      TabIndex        =   10
 | 
			
		||||
      Top             =   3960
 | 
			
		||||
      Width           =   855
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblAction 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Function to Call:"
 | 
			
		||||
      Height          =   375
 | 
			
		||||
      Left            =   5040
 | 
			
		||||
      TabIndex        =   8
 | 
			
		||||
      Top             =   1080
 | 
			
		||||
      Width           =   855
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblTics 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Tics (-1 for infinite duration):"
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   6480
 | 
			
		||||
      TabIndex        =   6
 | 
			
		||||
      Top             =   600
 | 
			
		||||
      Width           =   1215
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblFrame 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Frame:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   5160
 | 
			
		||||
      TabIndex        =   4
 | 
			
		||||
      Top             =   720
 | 
			
		||||
      Width           =   615
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblSprite 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Sprite:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   5160
 | 
			
		||||
      TabIndex        =   2
 | 
			
		||||
      Top             =   120
 | 
			
		||||
      Width           =   615
 | 
			
		||||
   End
 | 
			
		||||
End
 | 
			
		||||
Attribute VB_Name = "frmStateEdit"
 | 
			
		||||
Attribute VB_GlobalNameSpace = False
 | 
			
		||||
Attribute VB_Creatable = False
 | 
			
		||||
Attribute VB_PredeclaredId = True
 | 
			
		||||
Attribute VB_Exposed = False
 | 
			
		||||
Option Explicit
 | 
			
		||||
 | 
			
		||||
Private Sub cmbAction_Click()
 | 
			
		||||
    Dim myFSO As New Scripting.FileSystemObject
 | 
			
		||||
    Dim ts As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim index As Integer
 | 
			
		||||
    Dim ActionName As String
 | 
			
		||||
    
 | 
			
		||||
    ActionName = cmbAction.List(cmbAction.ListIndex)
 | 
			
		||||
    
 | 
			
		||||
    If cmbAction.ListIndex = 0 Then
 | 
			
		||||
        lblActionDesc.Text = ""
 | 
			
		||||
        lblVar1Desc.Text = ""
 | 
			
		||||
        lblVar2Desc.Text = ""
 | 
			
		||||
        Exit Sub
 | 
			
		||||
    End If
 | 
			
		||||
    
 | 
			
		||||
    ChDir SourcePath
 | 
			
		||||
    Set ts = myFSO.OpenTextFile("p_enemy.c", ForReading, False)
 | 
			
		||||
    
 | 
			
		||||
    Do While Not ts.AtEndOfStream
 | 
			
		||||
        line = ts.ReadLine
 | 
			
		||||
        
 | 
			
		||||
        If Mid(line, 4, 9) = "Function:" And InStr(line, ActionName) > 0 Then
 | 
			
		||||
            ts.ReadLine ' //
 | 
			
		||||
            line = ts.ReadLine ' // Description:
 | 
			
		||||
            index = InStr(line, ":")
 | 
			
		||||
            lblActionDesc.Text = Mid(line, index + 2, Len(line) - (index + 1))
 | 
			
		||||
            
 | 
			
		||||
            ts.ReadLine ' //
 | 
			
		||||
            line = ts.ReadLine ' // var1 =
 | 
			
		||||
            If InStr(line, "var1:") Then
 | 
			
		||||
                lblVar1Desc.Text = Mid(line, 4, Len(line) - 3)
 | 
			
		||||
                line = ts.ReadLine
 | 
			
		||||
                Do While Left(line, 7) <> "// var2"
 | 
			
		||||
                    lblVar1Desc.Text = lblVar1Desc.Text & vbCrLf & TrimComplete(Mid(line, 4, Len(line) - 3))
 | 
			
		||||
                    line = ts.ReadLine
 | 
			
		||||
                Loop
 | 
			
		||||
            Else
 | 
			
		||||
                lblVar1Desc.Text = Mid(line, 4, Len(line) - 3)
 | 
			
		||||
            End If
 | 
			
		||||
            
 | 
			
		||||
            If Left(line, 7) <> "// var2" Then
 | 
			
		||||
                line = ts.ReadLine ' // var2 =
 | 
			
		||||
            End If
 | 
			
		||||
            
 | 
			
		||||
            If InStr(line, "var2:") Then
 | 
			
		||||
                lblVar2Desc.Text = Mid(line, 4, Len(line) - 3)
 | 
			
		||||
                line = ts.ReadLine
 | 
			
		||||
                Do While Len(line) > 4
 | 
			
		||||
                    lblVar2Desc.Text = lblVar2Desc.Text & vbCrLf & TrimComplete(Mid(line, 4, Len(line) - 3))
 | 
			
		||||
                    line = ts.ReadLine
 | 
			
		||||
                Loop
 | 
			
		||||
            Else
 | 
			
		||||
                lblVar2Desc.Text = Mid(line, 4, Len(line) - 3)
 | 
			
		||||
            End If
 | 
			
		||||
        End If
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.Close
 | 
			
		||||
    Set myFSO = Nothing
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdCopy_Click()
 | 
			
		||||
    Dim Response As String
 | 
			
		||||
    
 | 
			
		||||
    Response$ = InputBox("Copy state to #:", "Copy State")
 | 
			
		||||
    
 | 
			
		||||
    If Response = "" Then Exit Sub
 | 
			
		||||
    
 | 
			
		||||
    Response = TrimComplete(Response)
 | 
			
		||||
    
 | 
			
		||||
    Call WriteState(False, Val(Response))
 | 
			
		||||
    
 | 
			
		||||
    MsgBox "State copied to #" & Val(Response)
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdDelete_Click()
 | 
			
		||||
    Call WriteState(True, lstStates.ListIndex)
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdReload_Click()
 | 
			
		||||
    Call ClearForm
 | 
			
		||||
    
 | 
			
		||||
    If InStr(lstStates.List(lstStates.ListIndex), "S_FREESLOT") = 0 Then
 | 
			
		||||
        LoadStateInfo (lstStates.ListIndex)
 | 
			
		||||
    Else
 | 
			
		||||
        MsgBox "Free slots do not have a code default."
 | 
			
		||||
    End If
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdSave_Click()
 | 
			
		||||
    If TrimComplete(txtFrame.Text) = "" And (chkFullbright.Value = 1 Or cmbTranslucency.ListIndex > 0) Then
 | 
			
		||||
        MsgBox "ERROR: Frame field required for fullbright/translucency."
 | 
			
		||||
        Exit Sub
 | 
			
		||||
    End If
 | 
			
		||||
    Call WriteState(False, lstStates.ListIndex)
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub Form_Load()
 | 
			
		||||
    Call Reload
 | 
			
		||||
    lstStates.ListIndex = 0
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub ClearForm()
 | 
			
		||||
    cmbNextstate.Text = ""
 | 
			
		||||
    cmbSprite.Text = ""
 | 
			
		||||
    txtFrame.Text = ""
 | 
			
		||||
    cmbAction.Text = ""
 | 
			
		||||
    txtFuncVar1.Text = ""
 | 
			
		||||
    txtFuncVar2.Text = ""
 | 
			
		||||
    lblActionDesc.Text = ""
 | 
			
		||||
    lblVar1Desc.Text = ""
 | 
			
		||||
    lblVar2Desc.Text = ""
 | 
			
		||||
    chkFullbright.Value = False
 | 
			
		||||
    cmbTranslucency.ListIndex = 0
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub Reload()
 | 
			
		||||
    LoadStates
 | 
			
		||||
    LoadSprites
 | 
			
		||||
    LoadActions
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub LoadStates()
 | 
			
		||||
    Dim myFSO As New Scripting.FileSystemObject
 | 
			
		||||
    Dim ts As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim number As Integer
 | 
			
		||||
    Dim startclip As Integer, endclip As Integer
 | 
			
		||||
    Dim addstring As String
 | 
			
		||||
    Dim numfreeslots As Integer, i As Integer
 | 
			
		||||
    
 | 
			
		||||
    ChDir SourcePath
 | 
			
		||||
    Set ts = myFSO.OpenTextFile("info.h", ForReading, False)
 | 
			
		||||
    
 | 
			
		||||
    Do While InStr(ts.ReadLine, "Object states (don't modify this comment!)") = 0
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.SkipLine ' typedef enum
 | 
			
		||||
    ts.SkipLine ' {
 | 
			
		||||
    
 | 
			
		||||
    line = ts.ReadLine
 | 
			
		||||
    number = 0
 | 
			
		||||
    
 | 
			
		||||
    lstStates.Clear
 | 
			
		||||
    
 | 
			
		||||
    Do While InStr(line, "S_FIRSTFREESLOT") = 0
 | 
			
		||||
        startclip = InStr(line, "S_")
 | 
			
		||||
        If InStr(line, "S_") <> 0 Then
 | 
			
		||||
            endclip = InStr(line, ",")
 | 
			
		||||
            line = Mid(line, startclip, endclip - startclip)
 | 
			
		||||
            addstring = number & " - " & line
 | 
			
		||||
            lstStates.AddItem addstring
 | 
			
		||||
            cmbNextstate.AddItem addstring
 | 
			
		||||
            number = number + 1
 | 
			
		||||
        End If
 | 
			
		||||
        line = ts.ReadLine
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.Close
 | 
			
		||||
    
 | 
			
		||||
    'Populate the free slots!
 | 
			
		||||
    Set ts = myFSO.OpenTextFile("info.h", ForReading, False)
 | 
			
		||||
 | 
			
		||||
    line = ts.ReadLine
 | 
			
		||||
    Do While InStr(line, "#define NUMMOBJFREESLOTS") = 0
 | 
			
		||||
        line = ts.ReadLine
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    startclip = InStr(line, "SLOTS ") + 6
 | 
			
		||||
    numfreeslots = Val(Mid(line, startclip, Len(line) - startclip + 1)) * 6
 | 
			
		||||
 | 
			
		||||
    For i = 1 To numfreeslots
 | 
			
		||||
        addstring = number & " - " & "S_FREESLOT" & i
 | 
			
		||||
        lstStates.AddItem addstring
 | 
			
		||||
        cmbNextstate.AddItem addstring
 | 
			
		||||
        number = number + 1
 | 
			
		||||
    Next
 | 
			
		||||
 | 
			
		||||
    ts.Close
 | 
			
		||||
    Set myFSO = Nothing
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub LoadSprites()
 | 
			
		||||
    Dim myFSO As New Scripting.FileSystemObject
 | 
			
		||||
    Dim ts As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim number As Integer
 | 
			
		||||
    Dim startclip As Integer, endclip As Integer
 | 
			
		||||
    Dim addstring As String
 | 
			
		||||
    Dim numfreeslots As Integer, i As Integer
 | 
			
		||||
    
 | 
			
		||||
    ChDir SourcePath
 | 
			
		||||
    Set ts = myFSO.OpenTextFile("info.h", ForReading, False)
 | 
			
		||||
    
 | 
			
		||||
    Do While InStr(ts.ReadLine, "Hey, moron! If you change this table, don't forget about") = 0
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.SkipLine ' typedef enum
 | 
			
		||||
    ts.SkipLine ' {
 | 
			
		||||
    
 | 
			
		||||
    line = ts.ReadLine
 | 
			
		||||
    number = 0
 | 
			
		||||
    
 | 
			
		||||
    cmbSprite.Clear
 | 
			
		||||
    
 | 
			
		||||
    Do While InStr(line, "SPR_FIRSTFREESLOT") = 0
 | 
			
		||||
        startclip = InStr(line, "SPR_")
 | 
			
		||||
        If InStr(line, "SPR_") <> 0 Then
 | 
			
		||||
            endclip = InStr(line, ",")
 | 
			
		||||
            line = Mid(line, startclip, endclip - startclip)
 | 
			
		||||
            addstring = number & " - " & line
 | 
			
		||||
            cmbSprite.AddItem addstring
 | 
			
		||||
            number = number + 1
 | 
			
		||||
        End If
 | 
			
		||||
        line = ts.ReadLine
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.Close
 | 
			
		||||
    
 | 
			
		||||
    'Populate the free slots!
 | 
			
		||||
    Set ts = myFSO.OpenTextFile("info.h", ForReading, False)
 | 
			
		||||
 | 
			
		||||
    line = ts.ReadLine
 | 
			
		||||
    Do While InStr(line, "#define NUMMOBJFREESLOTS") = 0
 | 
			
		||||
        line = ts.ReadLine
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    startclip = InStr(line, "SLOTS ") + 6
 | 
			
		||||
    numfreeslots = Val(Mid(line, startclip, Len(line) - startclip + 1))
 | 
			
		||||
 | 
			
		||||
    For i = 1 To numfreeslots
 | 
			
		||||
        If i < 10 Then
 | 
			
		||||
            addstring = number & " - " & "SPR_F00" & i & " (Free slot)"
 | 
			
		||||
        ElseIf i < 100 Then
 | 
			
		||||
            addstring = number & " - " & "SPR_F0" & i & " (Free slot)"
 | 
			
		||||
        Else
 | 
			
		||||
            addstring = number & " - " & "SPR_F" & i & " (Free slot)"
 | 
			
		||||
        End If
 | 
			
		||||
        
 | 
			
		||||
        cmbSprite.AddItem addstring
 | 
			
		||||
        number = number + 1
 | 
			
		||||
    Next
 | 
			
		||||
 | 
			
		||||
    ts.Close
 | 
			
		||||
 | 
			
		||||
    Set myFSO = Nothing
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub LoadActions()
 | 
			
		||||
    Dim myFSO As New Scripting.FileSystemObject
 | 
			
		||||
    Dim ts As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim number As Integer
 | 
			
		||||
    Dim startclip As Integer, endclip As Integer
 | 
			
		||||
    Dim addstring As String
 | 
			
		||||
    
 | 
			
		||||
    ChDir SourcePath
 | 
			
		||||
    Set ts = myFSO.OpenTextFile("dehacked.c", ForReading, False)
 | 
			
		||||
    
 | 
			
		||||
    Do While InStr(ts.ReadLine, "actionpointer_t actionpointers[]") = 0
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.SkipLine ' {
 | 
			
		||||
    
 | 
			
		||||
    line = ts.ReadLine
 | 
			
		||||
    number = 0
 | 
			
		||||
    
 | 
			
		||||
    cmbAction.Clear
 | 
			
		||||
    
 | 
			
		||||
    cmbAction.AddItem "None"
 | 
			
		||||
    
 | 
			
		||||
    Do While InStr(line, "NULL") = 0
 | 
			
		||||
        startclip = InStr(line, "A_")
 | 
			
		||||
        If InStr(line, "A_") <> 0 Then
 | 
			
		||||
            endclip = InStr(line, "}")
 | 
			
		||||
            line = Mid(line, startclip, endclip - startclip)
 | 
			
		||||
            cmbAction.AddItem line
 | 
			
		||||
            number = number + 1
 | 
			
		||||
        End If
 | 
			
		||||
        line = ts.ReadLine
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.Close
 | 
			
		||||
    Set myFSO = Nothing
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub lstStates_Click()
 | 
			
		||||
    Call ClearForm
 | 
			
		||||
 | 
			
		||||
    If InStr(lstStates.List(lstStates.ListIndex), "S_FREESLOT") = 0 Then
 | 
			
		||||
        LoadStateInfo (lstStates.ListIndex)
 | 
			
		||||
    End If
 | 
			
		||||
    
 | 
			
		||||
    LoadSOCStateInfo (lstStates.ListIndex)
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub LoadSOCStateInfo(StateNum As Integer)
 | 
			
		||||
    Dim myFSO As New Scripting.FileSystemObject
 | 
			
		||||
    Dim ts As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim word As String
 | 
			
		||||
    Dim word2 As String
 | 
			
		||||
    Dim frameNum As Long
 | 
			
		||||
    
 | 
			
		||||
    Set ts = myFSO.OpenTextFile(SOCFile, ForReading, False)
 | 
			
		||||
    
 | 
			
		||||
SOCLoad:
 | 
			
		||||
    Do While Not ts.AtEndOfStream
 | 
			
		||||
        line = ts.ReadLine
 | 
			
		||||
        
 | 
			
		||||
        If Left(line, 1) = "#" Then GoTo SOCLoad
 | 
			
		||||
        
 | 
			
		||||
        If Left(line, 1) = vbCrLf Then GoTo SOCLoad
 | 
			
		||||
        
 | 
			
		||||
        If Len(line) < 1 Then GoTo SOCLoad
 | 
			
		||||
        
 | 
			
		||||
        word = FirstToken(line)
 | 
			
		||||
        word2 = SecondToken(line)
 | 
			
		||||
        
 | 
			
		||||
        If UCase(word) = "FRAME" And Val(word2) = StateNum Then
 | 
			
		||||
            Do While Len(line) > 0 And Not ts.AtEndOfStream
 | 
			
		||||
                line = ts.ReadLine
 | 
			
		||||
                word = UCase(FirstToken(line))
 | 
			
		||||
                word2 = UCase(SecondTokenEqual(line))
 | 
			
		||||
                    
 | 
			
		||||
                If word = "SPRITENUMBER" Then
 | 
			
		||||
                    cmbSprite.ListIndex = Val(word2)
 | 
			
		||||
                ElseIf word = "SPRITESUBNUMBER" Then
 | 
			
		||||
                    frameNum = Val(word2)
 | 
			
		||||
                    
 | 
			
		||||
                    If frameNum >= 327680 Then ' 5 << 16
 | 
			
		||||
                        cmbTranslucency.ListIndex = 5
 | 
			
		||||
                        frameNum = frameNum And Not 327680
 | 
			
		||||
                    ElseIf frameNum >= 262144 Then ' 4 << 16
 | 
			
		||||
                        cmbTranslucency.ListIndex = 4
 | 
			
		||||
                        frameNum = frameNum And Not 262144
 | 
			
		||||
                    ElseIf frameNum >= 196608 Then ' 3 << 16
 | 
			
		||||
                        cmbTranslucency.ListIndex = 3
 | 
			
		||||
                        frameNum = frameNum And Not 196608
 | 
			
		||||
                    ElseIf frameNum >= 131072 Then ' 2 << 16
 | 
			
		||||
                        cmbTranslucency.ListIndex = 2
 | 
			
		||||
                        frameNum = frameNum And Not 131072
 | 
			
		||||
                    ElseIf frameNum >= 65536 Then ' 1 << 16
 | 
			
		||||
                        cmbTranslucency.ListIndex = 1
 | 
			
		||||
                        frameNum = frameNum And Not 65536
 | 
			
		||||
                    End If
 | 
			
		||||
                    
 | 
			
		||||
                    If frameNum >= 32768 Then
 | 
			
		||||
                        chkFullbright.Value = 1
 | 
			
		||||
                        frameNum = frameNum And Not 32768
 | 
			
		||||
                    Else
 | 
			
		||||
                        chkFullbright.Value = 0
 | 
			
		||||
                    End If
 | 
			
		||||
                    
 | 
			
		||||
                    txtFrame.Text = frameNum
 | 
			
		||||
                ElseIf word = "DURATION" Then
 | 
			
		||||
                    txtTics.Text = Val(word2)
 | 
			
		||||
                ElseIf word = "NEXT" Then
 | 
			
		||||
                    cmbNextstate.ListIndex = Val(word2)
 | 
			
		||||
                ElseIf word = "ACTION" Then
 | 
			
		||||
                    Call FindComboIndex(cmbAction, UCase(SecondToken(line)))
 | 
			
		||||
                ElseIf word = "VAR1" Then
 | 
			
		||||
                    txtFuncVar1.Text = Val(word2)
 | 
			
		||||
                ElseIf word = "VAR2" Then
 | 
			
		||||
                    txtFuncVar2.Text = Val(word2)
 | 
			
		||||
                ElseIf Len(line) > 0 And Left(line, 1) <> "#" Then
 | 
			
		||||
                    MsgBox "Error in SOC!" & vbCrLf & "Unknown line: " & line
 | 
			
		||||
                End If
 | 
			
		||||
            Loop
 | 
			
		||||
            Exit Do
 | 
			
		||||
        End If
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.Close
 | 
			
		||||
    Set myFSO = Nothing
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub LoadStateInfo(StateNum As Integer)
 | 
			
		||||
    Dim myFSO As New Scripting.FileSystemObject
 | 
			
		||||
    Dim ts As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim number As Integer
 | 
			
		||||
    Dim startclip As Integer, endclip As Integer
 | 
			
		||||
    Dim token As String
 | 
			
		||||
    Dim frame As Long
 | 
			
		||||
    Dim templine As String
 | 
			
		||||
    
 | 
			
		||||
    ChDir SourcePath
 | 
			
		||||
    Set ts = myFSO.OpenTextFile("info.c", ForReading, False)
 | 
			
		||||
    
 | 
			
		||||
    Do While InStr(ts.ReadLine, "Keep this comment directly above S_NULL") = 0
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    number = 0
 | 
			
		||||
    
 | 
			
		||||
    Do While number <> StateNum
 | 
			
		||||
        Do While InStr(ts.ReadLine, "SPR_") = 0
 | 
			
		||||
        Loop
 | 
			
		||||
        number = number + 1
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    Do While InStr(line, "SPR_") = 0
 | 
			
		||||
        line = ts.ReadLine
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    startclip = InStr(line, "SPR_")
 | 
			
		||||
    line = Mid(line, startclip, Len(line) - startclip)
 | 
			
		||||
    endclip = InStr(line, ",") - 1
 | 
			
		||||
    token = Left(line, endclip)
 | 
			
		||||
    Call FindComboIndex(cmbSprite, token)
 | 
			
		||||
    
 | 
			
		||||
    startclip = InStr(line, ",") + 1
 | 
			
		||||
    line = TrimComplete(Mid(line, startclip, Len(line) - startclip))
 | 
			
		||||
    endclip = InStr(line, ",") - 1
 | 
			
		||||
    frame = Val(Left(line, endclip))
 | 
			
		||||
    
 | 
			
		||||
    If frame >= 32768 Then
 | 
			
		||||
        chkFullbright.Value = 1
 | 
			
		||||
        frame = frame - 32768
 | 
			
		||||
    Else
 | 
			
		||||
        chkFullbright.Value = 0
 | 
			
		||||
    End If
 | 
			
		||||
        
 | 
			
		||||
    txtFrame.Text = frame
 | 
			
		||||
    
 | 
			
		||||
    cmbTranslucency.ListIndex = 0
 | 
			
		||||
    
 | 
			
		||||
    startclip = InStr(line, ",") + 1
 | 
			
		||||
    line = TrimComplete(Mid(line, startclip, Len(line) - startclip))
 | 
			
		||||
    endclip = InStr(line, ",") - 1
 | 
			
		||||
    txtTics.Text = Val(Left(line, endclip))
 | 
			
		||||
    
 | 
			
		||||
    startclip = InStr(line, "{") + 1
 | 
			
		||||
    line = TrimComplete(Mid(line, startclip, Len(line) - startclip))
 | 
			
		||||
    endclip = InStr(line, "}") - 1
 | 
			
		||||
    cmbAction.Text = TrimComplete(Left(line, endclip))
 | 
			
		||||
    If cmbAction.Text = "NULL" Then cmbAction.Text = "None"
 | 
			
		||||
 | 
			
		||||
    startclip = InStr(line, ",") + 1
 | 
			
		||||
    line = TrimComplete(Mid(line, startclip, Len(line) - startclip))
 | 
			
		||||
    endclip = InStr(line, ",") - 1
 | 
			
		||||
    templine = Left(line, endclip)
 | 
			
		||||
    
 | 
			
		||||
    templine = TrimComplete(templine)
 | 
			
		||||
    'Check for *FRACUNIT values
 | 
			
		||||
    endclip = InStr(templine, "*FRACUNIT")
 | 
			
		||||
    If endclip <> 0 Then
 | 
			
		||||
        templine = Left(templine, endclip - 1)
 | 
			
		||||
        templine = Val(templine) * 65536
 | 
			
		||||
    End If
 | 
			
		||||
    'Check for crazy-odd MT_ usage
 | 
			
		||||
    endclip = InStr(templine, "MT_")
 | 
			
		||||
    If endclip <> 0 Then
 | 
			
		||||
        templine = FindThingNum(templine) & " - " & templine
 | 
			
		||||
    End If
 | 
			
		||||
    'Check for crazy-odd pw_ usage
 | 
			
		||||
    endclip = InStr(templine, "pw_")
 | 
			
		||||
    If endclip <> 0 Then
 | 
			
		||||
        templine = FindPowerNum(templine) & " - " & templine
 | 
			
		||||
    End If
 | 
			
		||||
    txtFuncVar1.Text = templine
 | 
			
		||||
    
 | 
			
		||||
    startclip = InStr(line, ",") + 1
 | 
			
		||||
    line = TrimComplete(Mid(line, startclip, Len(line) - startclip))
 | 
			
		||||
    endclip = InStr(line, ",") - 1
 | 
			
		||||
    templine = Left(line, endclip)
 | 
			
		||||
    
 | 
			
		||||
    templine = TrimComplete(templine)
 | 
			
		||||
    'Check for *FRACUNIT values
 | 
			
		||||
    endclip = InStr(templine, "*FRACUNIT")
 | 
			
		||||
    If endclip <> 0 Then
 | 
			
		||||
        templine = Left(templine, endclip - 1)
 | 
			
		||||
        templine = Val(templine) * 65536
 | 
			
		||||
    End If
 | 
			
		||||
    'Check for crazy-odd MT_ usage
 | 
			
		||||
    endclip = InStr(templine, "MT_")
 | 
			
		||||
    If endclip <> 0 Then
 | 
			
		||||
        templine = FindThingNum(templine) & " - " & templine
 | 
			
		||||
    End If
 | 
			
		||||
    'Check for crazy-odd pw_ usage
 | 
			
		||||
    endclip = InStr(templine, "pw_")
 | 
			
		||||
    If endclip <> 0 Then
 | 
			
		||||
        templine = FindPowerNum(templine) & " - " & templine
 | 
			
		||||
    End If
 | 
			
		||||
    txtFuncVar2.Text = templine
 | 
			
		||||
    
 | 
			
		||||
    startclip = InStr(line, ",") + 1
 | 
			
		||||
    line = TrimComplete(Mid(line, startclip, Len(line) - startclip))
 | 
			
		||||
    endclip = InStr(line, "}") - 1
 | 
			
		||||
    Call FindComboIndex(cmbNextstate, TrimComplete(Left(line, endclip)))
 | 
			
		||||
    
 | 
			
		||||
    ts.Close
 | 
			
		||||
    Set myFSO = Nothing
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub FindComboIndex(ByRef Box As ComboBox, line As String)
 | 
			
		||||
    Dim i As Integer
 | 
			
		||||
    
 | 
			
		||||
    For i = 0 To Box.ListCount
 | 
			
		||||
        If InStr(UCase(Box.List(i)), UCase(line)) Then
 | 
			
		||||
            Box.ListIndex = i
 | 
			
		||||
            Exit For
 | 
			
		||||
        End If
 | 
			
		||||
    Next
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub WriteState(Remove As Boolean, num As Integer)
 | 
			
		||||
    Dim myFSOSource As New Scripting.FileSystemObject
 | 
			
		||||
    Dim tsSource As TextStream
 | 
			
		||||
    Dim myFSOTarget As New Scripting.FileSystemObject
 | 
			
		||||
    Dim tsTarget As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim word As String
 | 
			
		||||
    Dim word2 As String
 | 
			
		||||
    Dim flags As Long
 | 
			
		||||
    Dim statefound As Boolean
 | 
			
		||||
    
 | 
			
		||||
    statefound = False
 | 
			
		||||
    
 | 
			
		||||
    Set tsSource = myFSOSource.OpenTextFile(SOCFile, ForReading, False)
 | 
			
		||||
    Set tsTarget = myFSOTarget.OpenTextFile(SOCTemp, ForWriting, True)
 | 
			
		||||
    
 | 
			
		||||
    Do While Not tsSource.AtEndOfStream
 | 
			
		||||
        line = tsSource.ReadLine
 | 
			
		||||
        word = UCase(FirstToken(line))
 | 
			
		||||
        word2 = UCase(SecondToken(line))
 | 
			
		||||
 | 
			
		||||
        'If the current sound exists in the SOC, delete it.
 | 
			
		||||
        If word = "FRAME" And Val(word2) = num Then
 | 
			
		||||
            statefound = True
 | 
			
		||||
            Do While Len(TrimComplete(tsSource.ReadLine)) > 0 And Not (tsSource.AtEndOfStream)
 | 
			
		||||
            Loop
 | 
			
		||||
        Else
 | 
			
		||||
            tsTarget.WriteLine line
 | 
			
		||||
        End If
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    tsSource.Close
 | 
			
		||||
    Set myFSOSource = Nothing
 | 
			
		||||
    
 | 
			
		||||
    If Remove = False Then
 | 
			
		||||
        If line <> "" Then tsTarget.WriteLine ""
 | 
			
		||||
    
 | 
			
		||||
        tsTarget.WriteLine "FRAME " & num
 | 
			
		||||
        cmbSprite.Text = TrimComplete(cmbSprite.Text)
 | 
			
		||||
        txtFrame.Text = TrimComplete(txtFrame.Text)
 | 
			
		||||
        txtTics.Text = TrimComplete(txtTics.Text)
 | 
			
		||||
        cmbAction.Text = TrimComplete(cmbAction.Text)
 | 
			
		||||
        txtFuncVar1.Text = TrimComplete(txtFuncVar1.Text)
 | 
			
		||||
        txtFuncVar2.Text = TrimComplete(txtFuncVar2.Text)
 | 
			
		||||
        cmbNextstate.Text = TrimComplete(cmbNextstate.Text)
 | 
			
		||||
        cmbTranslucency.Text = TrimComplete(cmbTranslucency.Text)
 | 
			
		||||
        
 | 
			
		||||
        If cmbSprite.Text <> "" Then tsTarget.WriteLine "SPRITENUMBER = " & cmbSprite.ListIndex
 | 
			
		||||
        
 | 
			
		||||
        flags = Val(txtFrame.Text)
 | 
			
		||||
        If chkFullbright.Value = 1 Then flags = flags + 32768
 | 
			
		||||
        
 | 
			
		||||
        ' Grrr VB doesn't have bitshifts!!
 | 
			
		||||
        If cmbTranslucency.Text <> "" Then
 | 
			
		||||
            flags = flags + cmbTranslucency.ListIndex * 65536
 | 
			
		||||
        End If
 | 
			
		||||
        
 | 
			
		||||
        If txtFrame.Text <> "" Then tsTarget.WriteLine "SPRITESUBNUMBER = " & flags
 | 
			
		||||
        If txtTics.Text <> "" Then tsTarget.WriteLine "DURATION = " & Val(txtTics.Text)
 | 
			
		||||
        If cmbNextstate.Text <> "" Then tsTarget.WriteLine "NEXT = " & cmbNextstate.ListIndex
 | 
			
		||||
        If cmbAction.Text <> "" Then tsTarget.WriteLine "ACTION " & cmbAction.Text
 | 
			
		||||
        If txtFuncVar1.Text <> "" Then tsTarget.WriteLine "VAR1 = " & Val(txtFuncVar1.Text)
 | 
			
		||||
        If txtFuncVar2.Text <> "" Then tsTarget.WriteLine "VAR2 = " & Val(txtFuncVar2.Text)
 | 
			
		||||
    End If
 | 
			
		||||
    
 | 
			
		||||
    tsTarget.Close
 | 
			
		||||
    Set myFSOTarget = Nothing
 | 
			
		||||
    
 | 
			
		||||
    FileCopy SOCTemp, SOCFile
 | 
			
		||||
    
 | 
			
		||||
    Kill SOCTemp
 | 
			
		||||
    
 | 
			
		||||
    If Remove = True Then
 | 
			
		||||
        If statefound = True Then
 | 
			
		||||
            MsgBox "State removed from SOC."
 | 
			
		||||
        Else
 | 
			
		||||
            MsgBox "State not found in SOC."
 | 
			
		||||
        End If
 | 
			
		||||
    Else
 | 
			
		||||
        MsgBox "State Saved."
 | 
			
		||||
    End If
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub LoadThings()
 | 
			
		||||
    Dim myFSO As New Scripting.FileSystemObject
 | 
			
		||||
    Dim ts As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim number As Integer
 | 
			
		||||
    Dim startclip As Integer, endclip As Integer
 | 
			
		||||
    Dim numfreeslots As Integer, i As Integer
 | 
			
		||||
    
 | 
			
		||||
    ChDir SourcePath
 | 
			
		||||
    Set ts = myFSO.OpenTextFile("info.h", ForReading, False)
 | 
			
		||||
    
 | 
			
		||||
    Do While InStr(ts.ReadLine, "Little flag for SOC editor (don't change this comment!)") = 0
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.SkipLine ' typedef enum
 | 
			
		||||
    ts.SkipLine ' {
 | 
			
		||||
    
 | 
			
		||||
    line = ts.ReadLine
 | 
			
		||||
    number = 0
 | 
			
		||||
    
 | 
			
		||||
    lstThings.Clear
 | 
			
		||||
    
 | 
			
		||||
    Do While InStr(line, "MT_FIRSTFREESLOT") = 0
 | 
			
		||||
        startclip = InStr(line, "MT_")
 | 
			
		||||
        If InStr(line, "MT_") <> 0 Then
 | 
			
		||||
            endclip = InStr(line, ",")
 | 
			
		||||
            line = Mid(line, startclip, endclip - startclip)
 | 
			
		||||
            lstThings.AddItem number & " - " & line
 | 
			
		||||
            number = number + 1
 | 
			
		||||
        End If
 | 
			
		||||
        line = ts.ReadLine
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.Close
 | 
			
		||||
    
 | 
			
		||||
    'Populate the free slots!
 | 
			
		||||
    Set ts = myFSO.OpenTextFile("info.h", ForReading, False)
 | 
			
		||||
 | 
			
		||||
    line = ts.ReadLine
 | 
			
		||||
    Do While InStr(line, "#define NUMMOBJFREESLOTS") = 0
 | 
			
		||||
        line = ts.ReadLine
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    startclip = InStr(line, "SLOTS ") + 6
 | 
			
		||||
    numfreeslots = Val(Mid(line, startclip, Len(line) - startclip + 1))
 | 
			
		||||
 | 
			
		||||
    For i = 1 To numfreeslots
 | 
			
		||||
        lstThings.AddItem number & " - " & "MT_FREESLOT" & i
 | 
			
		||||
        number = number + 1
 | 
			
		||||
    Next
 | 
			
		||||
 | 
			
		||||
    ts.Close
 | 
			
		||||
    Set myFSO = Nothing
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Function FindThingNum(ThingName As String) As Integer
 | 
			
		||||
    Dim i As Integer
 | 
			
		||||
    Dim temp As String
 | 
			
		||||
    Dim startpoint As Integer
 | 
			
		||||
    Dim endpoint As Integer
 | 
			
		||||
    
 | 
			
		||||
    lstThings.Clear
 | 
			
		||||
    LoadThings
 | 
			
		||||
    
 | 
			
		||||
    For i = 0 To lstThings.ListCount - 1
 | 
			
		||||
        temp = lstThings.List(i)
 | 
			
		||||
        startpoint = InStr(temp, "-") + 2
 | 
			
		||||
        endpoint = Len(temp) - startpoint + 1
 | 
			
		||||
        temp = Mid(temp, startpoint, endpoint)
 | 
			
		||||
        If temp = ThingName Then
 | 
			
		||||
            FindThingNum = Val(lstThings.List(i))
 | 
			
		||||
            Exit For
 | 
			
		||||
        End If
 | 
			
		||||
    Next
 | 
			
		||||
End Function
 | 
			
		||||
 | 
			
		||||
Private Function FindPowerNum(PowerName As String) As Integer
 | 
			
		||||
    Dim myFSO As New Scripting.FileSystemObject
 | 
			
		||||
    Dim ts As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim number As Integer
 | 
			
		||||
    Dim startclip As Integer
 | 
			
		||||
    
 | 
			
		||||
    ChDir SourcePath
 | 
			
		||||
    Set ts = myFSO.OpenTextFile("d_player.h", ForReading, False)
 | 
			
		||||
    
 | 
			
		||||
    Do While InStr(ts.ReadLine, "Player powers. (don't edit this comment)") = 0
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.SkipLine ' typedef enum
 | 
			
		||||
    ts.SkipLine ' {
 | 
			
		||||
    
 | 
			
		||||
    line = ts.ReadLine
 | 
			
		||||
    number = 0
 | 
			
		||||
    
 | 
			
		||||
    Do While InStr(line, "NUMPOWERS") = 0
 | 
			
		||||
        startclip = InStr(line, PowerName)
 | 
			
		||||
        If startclip <> 0 Then
 | 
			
		||||
            FindPowerNum = number
 | 
			
		||||
            Exit Do
 | 
			
		||||
        End If
 | 
			
		||||
        number = number + 1
 | 
			
		||||
        line = ts.ReadLine
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.Close
 | 
			
		||||
    Set myFSO = Nothing
 | 
			
		||||
End Function
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -1,391 +0,0 @@
 | 
			
		|||
VERSION 5.00
 | 
			
		||||
Begin VB.Form frmUnlockablesEdit 
 | 
			
		||||
   Caption         =   "Unlockables Edit"
 | 
			
		||||
   ClientHeight    =   3675
 | 
			
		||||
   ClientLeft      =   60
 | 
			
		||||
   ClientTop       =   345
 | 
			
		||||
   ClientWidth     =   8130
 | 
			
		||||
   Icon            =   "frmUnlockablesEdit.frx":0000
 | 
			
		||||
   LinkTopic       =   "Form1"
 | 
			
		||||
   MaxButton       =   0   'False
 | 
			
		||||
   ScaleHeight     =   3675
 | 
			
		||||
   ScaleWidth      =   8130
 | 
			
		||||
   StartUpPosition =   3  'Windows Default
 | 
			
		||||
   Begin VB.CheckBox chkGrade 
 | 
			
		||||
      Caption         =   "Must have beaten Ultimate"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Index           =   4
 | 
			
		||||
      Left            =   5400
 | 
			
		||||
      TabIndex        =   20
 | 
			
		||||
      Tag             =   "1024"
 | 
			
		||||
      Top             =   2160
 | 
			
		||||
      Width           =   2655
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CheckBox chkGrade 
 | 
			
		||||
      Caption         =   "Must have beaten Very Hard"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Index           =   3
 | 
			
		||||
      Left            =   5400
 | 
			
		||||
      TabIndex        =   19
 | 
			
		||||
      Tag             =   "128"
 | 
			
		||||
      Top             =   1800
 | 
			
		||||
      Width           =   2655
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CheckBox chkGrade 
 | 
			
		||||
      Caption         =   "Must have all emblems"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Index           =   2
 | 
			
		||||
      Left            =   5400
 | 
			
		||||
      TabIndex        =   18
 | 
			
		||||
      Tag             =   "16"
 | 
			
		||||
      Top             =   1440
 | 
			
		||||
      Width           =   2055
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CheckBox chkGrade 
 | 
			
		||||
      Caption         =   "Must have gotten all 7 emeralds"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Index           =   1
 | 
			
		||||
      Left            =   5400
 | 
			
		||||
      TabIndex        =   17
 | 
			
		||||
      Tag             =   "8"
 | 
			
		||||
      Top             =   1080
 | 
			
		||||
      Width           =   2655
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CheckBox chkGrade 
 | 
			
		||||
      Caption         =   "Game must be completed"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Index           =   0
 | 
			
		||||
      Left            =   5400
 | 
			
		||||
      TabIndex        =   16
 | 
			
		||||
      Tag             =   "1"
 | 
			
		||||
      Top             =   720
 | 
			
		||||
      Width           =   2175
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtVar 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   4320
 | 
			
		||||
      TabIndex        =   14
 | 
			
		||||
      Top             =   2640
 | 
			
		||||
      Width           =   615
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.ComboBox cmbType 
 | 
			
		||||
      Height          =   315
 | 
			
		||||
      ItemData        =   "frmUnlockablesEdit.frx":0442
 | 
			
		||||
      Left            =   3360
 | 
			
		||||
      List            =   "frmUnlockablesEdit.frx":044C
 | 
			
		||||
      TabIndex        =   12
 | 
			
		||||
      Top             =   2160
 | 
			
		||||
      Width           =   1575
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtNeededTime 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   4080
 | 
			
		||||
      TabIndex        =   10
 | 
			
		||||
      Top             =   1680
 | 
			
		||||
      Width           =   855
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtNeededEmblems 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   4440
 | 
			
		||||
      TabIndex        =   9
 | 
			
		||||
      Top             =   1200
 | 
			
		||||
      Width           =   495
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtObjective 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   3240
 | 
			
		||||
      TabIndex        =   7
 | 
			
		||||
      Top             =   720
 | 
			
		||||
      Width           =   1695
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.TextBox txtName 
 | 
			
		||||
      Height          =   285
 | 
			
		||||
      Left            =   3240
 | 
			
		||||
      TabIndex        =   5
 | 
			
		||||
      Top             =   240
 | 
			
		||||
      Width           =   1695
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdDelete 
 | 
			
		||||
      Caption         =   "&Delete from SOC"
 | 
			
		||||
      Height          =   375
 | 
			
		||||
      Left            =   3480
 | 
			
		||||
      TabIndex        =   3
 | 
			
		||||
      Top             =   3120
 | 
			
		||||
      Width           =   1575
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.CommandButton cmdSave 
 | 
			
		||||
      Caption         =   "&Save Changes"
 | 
			
		||||
      Height          =   375
 | 
			
		||||
      Left            =   1800
 | 
			
		||||
      TabIndex        =   2
 | 
			
		||||
      Top             =   3120
 | 
			
		||||
      Width           =   1575
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.ListBox lstUnlockables 
 | 
			
		||||
      Height          =   2985
 | 
			
		||||
      ItemData        =   "frmUnlockablesEdit.frx":046A
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      List            =   "frmUnlockablesEdit.frx":049B
 | 
			
		||||
      TabIndex        =   0
 | 
			
		||||
      Top             =   480
 | 
			
		||||
      Width           =   1215
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblNote 
 | 
			
		||||
      Caption         =   "Note: All requirements are combinable."
 | 
			
		||||
      Height          =   495
 | 
			
		||||
      Left            =   6000
 | 
			
		||||
      TabIndex        =   22
 | 
			
		||||
      Top             =   2760
 | 
			
		||||
      Width           =   1695
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblOtherReqs 
 | 
			
		||||
      Caption         =   "Other Requirements:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   5400
 | 
			
		||||
      TabIndex        =   21
 | 
			
		||||
      Top             =   360
 | 
			
		||||
      Width           =   1935
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblVar 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Map # to warp to:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   2880
 | 
			
		||||
      TabIndex        =   15
 | 
			
		||||
      Top             =   2640
 | 
			
		||||
      Width           =   1335
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblType 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Type of Unlockable:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   1800
 | 
			
		||||
      TabIndex        =   13
 | 
			
		||||
      Top             =   2160
 | 
			
		||||
      Width           =   1455
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblNeededTime 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Needed time on Time Attack rank (in seconds):"
 | 
			
		||||
      Height          =   375
 | 
			
		||||
      Left            =   1440
 | 
			
		||||
      TabIndex        =   11
 | 
			
		||||
      Top             =   1560
 | 
			
		||||
      Width           =   2535
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblNeededEmblems 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "# of Emblems Needed:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   2640
 | 
			
		||||
      TabIndex        =   8
 | 
			
		||||
      Top             =   1200
 | 
			
		||||
      Width           =   1695
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblObjective 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Objective:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   2400
 | 
			
		||||
      TabIndex        =   6
 | 
			
		||||
      Top             =   720
 | 
			
		||||
      Width           =   735
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblName 
 | 
			
		||||
      Alignment       =   1  'Right Justify
 | 
			
		||||
      Caption         =   "Name:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   2640
 | 
			
		||||
      TabIndex        =   4
 | 
			
		||||
      Top             =   240
 | 
			
		||||
      Width           =   495
 | 
			
		||||
   End
 | 
			
		||||
   Begin VB.Label lblHUDItems 
 | 
			
		||||
      Caption         =   "Unlockables:"
 | 
			
		||||
      Height          =   255
 | 
			
		||||
      Left            =   120
 | 
			
		||||
      TabIndex        =   1
 | 
			
		||||
      Top             =   240
 | 
			
		||||
      Width           =   975
 | 
			
		||||
   End
 | 
			
		||||
End
 | 
			
		||||
Attribute VB_Name = "frmUnlockablesEdit"
 | 
			
		||||
Attribute VB_GlobalNameSpace = False
 | 
			
		||||
Attribute VB_Creatable = False
 | 
			
		||||
Attribute VB_PredeclaredId = True
 | 
			
		||||
Attribute VB_Exposed = False
 | 
			
		||||
Option Explicit
 | 
			
		||||
 | 
			
		||||
Private Sub cmdDelete_Click()
 | 
			
		||||
    Call WriteUnlockableItem(True)
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub cmdSave_Click()
 | 
			
		||||
    Call WriteUnlockableItem(False)
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub Form_Load()
 | 
			
		||||
    Call Reload
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub Reload()
 | 
			
		||||
    txtName.Text = ""
 | 
			
		||||
    txtObjective.Text = ""
 | 
			
		||||
    txtNeededEmblems.Text = ""
 | 
			
		||||
    txtNeededTime.Text = ""
 | 
			
		||||
    cmbType.Text = ""
 | 
			
		||||
    txtVar.Text = ""
 | 
			
		||||
    
 | 
			
		||||
    Dim i As Integer
 | 
			
		||||
    
 | 
			
		||||
    For i = 0 To chkGrade.Count - 1
 | 
			
		||||
        chkGrade(i).Value = 0
 | 
			
		||||
    Next i
 | 
			
		||||
    
 | 
			
		||||
    lstUnlockables.ListIndex = 0
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub lstUnlockables_Click()
 | 
			
		||||
    Call ReadSOC(lstUnlockables.ListIndex + 1)
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub ReadSOC(UnlockableNum As Integer)
 | 
			
		||||
    Dim myFSO As New Scripting.FileSystemObject
 | 
			
		||||
    Dim ts As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim word As String
 | 
			
		||||
    Dim word2 As String
 | 
			
		||||
    
 | 
			
		||||
    Set ts = myFSO.OpenTextFile(SOCFile, ForReading, False)
 | 
			
		||||
    
 | 
			
		||||
SOCLoad:
 | 
			
		||||
    Do While Not ts.AtEndOfStream
 | 
			
		||||
        line = ts.ReadLine
 | 
			
		||||
        
 | 
			
		||||
        If Left(line, 1) = "#" Then GoTo SOCLoad
 | 
			
		||||
        
 | 
			
		||||
        If Left(line, 1) = vbCrLf Then GoTo SOCLoad
 | 
			
		||||
        
 | 
			
		||||
        If Len(line) < 1 Then GoTo SOCLoad
 | 
			
		||||
        
 | 
			
		||||
        word = FirstToken(line)
 | 
			
		||||
        word2 = SecondToken(line)
 | 
			
		||||
        
 | 
			
		||||
        If UCase(word) = "UNLOCKABLE" And Val(word2) = UnlockableNum Then
 | 
			
		||||
            Do While Len(line) > 0 And Not ts.AtEndOfStream
 | 
			
		||||
                line = ts.ReadLine
 | 
			
		||||
                word = UCase(FirstToken(line))
 | 
			
		||||
                word2 = UCase(SecondTokenEqual(line))
 | 
			
		||||
                    
 | 
			
		||||
                If word = "NAME" Then
 | 
			
		||||
                    txtName.Text = word2
 | 
			
		||||
                ElseIf word = "OBJECTIVE" Then
 | 
			
		||||
                    txtObjective.Text = word2
 | 
			
		||||
                ElseIf word = "NEEDEDEMBLEMS" Then
 | 
			
		||||
                    txtNeededEmblems.Text = Val(word2)
 | 
			
		||||
                ElseIf word = "NEEDEDTIME" Then
 | 
			
		||||
                    txtNeededTime.Text = Val(word2)
 | 
			
		||||
                ElseIf word = "TYPE" Then
 | 
			
		||||
                    cmbType.ListIndex = Val(word2)
 | 
			
		||||
                ElseIf word = "VAR" Then
 | 
			
		||||
                    txtVar.Text = Val(word2)
 | 
			
		||||
                ElseIf word = "NEEDEDGRADE" Then
 | 
			
		||||
                    Dim i As Integer
 | 
			
		||||
                    
 | 
			
		||||
                    For i = 0 To chkGrade.Count - 1
 | 
			
		||||
                        If Val(word2) And chkGrade(i).Tag Then
 | 
			
		||||
                            chkGrade(i).Tag = True
 | 
			
		||||
                        End If
 | 
			
		||||
                    Next i
 | 
			
		||||
                ElseIf Len(line) > 0 And Left(line, 1) <> "#" Then
 | 
			
		||||
                    MsgBox "Error in SOC!" & vbCrLf & "Unknown line: " & line
 | 
			
		||||
                End If
 | 
			
		||||
            Loop
 | 
			
		||||
            Exit Do
 | 
			
		||||
        End If
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    ts.Close
 | 
			
		||||
    Set myFSO = Nothing
 | 
			
		||||
End Sub
 | 
			
		||||
 | 
			
		||||
Private Sub WriteUnlockableItem(Remove As Boolean)
 | 
			
		||||
    Dim myFSOSource As New Scripting.FileSystemObject
 | 
			
		||||
    Dim tsSource As TextStream
 | 
			
		||||
    Dim myFSOTarget As New Scripting.FileSystemObject
 | 
			
		||||
    Dim tsTarget As TextStream
 | 
			
		||||
    Dim line As String
 | 
			
		||||
    Dim word As String
 | 
			
		||||
    Dim word2 As String
 | 
			
		||||
    Dim unlockableremoved As Boolean
 | 
			
		||||
    
 | 
			
		||||
    unlockableremoved = False
 | 
			
		||||
    
 | 
			
		||||
    Set tsSource = myFSOSource.OpenTextFile(SOCFile, ForReading, False)
 | 
			
		||||
    Set tsTarget = myFSOTarget.OpenTextFile(SOCTemp, ForWriting, True)
 | 
			
		||||
    
 | 
			
		||||
    Do While Not tsSource.AtEndOfStream
 | 
			
		||||
        line = tsSource.ReadLine
 | 
			
		||||
        word = UCase(FirstToken(line))
 | 
			
		||||
        word2 = UCase(SecondToken(line))
 | 
			
		||||
        
 | 
			
		||||
        'If the current item exists in the SOC, delete it.
 | 
			
		||||
        If word = "UNLOCKABLE" And Val(word2) = lstUnlockables.ListIndex + 1 Then
 | 
			
		||||
            unlockableremoved = True
 | 
			
		||||
            Do While Len(TrimComplete(tsSource.ReadLine)) > 0 And Not tsSource.AtEndOfStream
 | 
			
		||||
            Loop
 | 
			
		||||
        Else
 | 
			
		||||
            tsTarget.WriteLine line
 | 
			
		||||
        End If
 | 
			
		||||
    Loop
 | 
			
		||||
    
 | 
			
		||||
    tsSource.Close
 | 
			
		||||
    Set myFSOSource = Nothing
 | 
			
		||||
    
 | 
			
		||||
    If Remove = False Then
 | 
			
		||||
        If line <> "" Then tsTarget.WriteLine ""
 | 
			
		||||
    
 | 
			
		||||
        tsTarget.WriteLine "UNLOCKABLE " & lstUnlockables.ListIndex + 1
 | 
			
		||||
        txtName.Text = TrimComplete(txtName.Text)
 | 
			
		||||
        txtObjective.Text = TrimComplete(txtObjective.Text)
 | 
			
		||||
        txtNeededEmblems.Text = TrimComplete(txtNeededEmblems.Text)
 | 
			
		||||
        txtNeededTime.Text = TrimComplete(txtNeededTime.Text)
 | 
			
		||||
        txtVar.Text = TrimComplete(txtVar.Text)
 | 
			
		||||
        
 | 
			
		||||
        If txtName.Text <> "" Then tsTarget.WriteLine "NAME = " & txtName.Text
 | 
			
		||||
        If txtObjective.Text <> "" Then tsTarget.WriteLine "OBJECTIVE = " & txtObjective.Text
 | 
			
		||||
        If txtNeededEmblems.Text <> "" Then tsTarget.WriteLine "NEEDEDEMBLEMS = " & txtNeededEmblems.Text
 | 
			
		||||
        If txtNeededTime.Text <> "" Then tsTarget.WriteLine "NEEDEDTIME = " & txtNeededTime.Text
 | 
			
		||||
        If cmbType.ListIndex <> -1 Then tsTarget.WriteLine "TYPE = " & cmbType.ListIndex
 | 
			
		||||
        If txtVar.Text <> "" Then tsTarget.WriteLine "VAR = " & txtVar.Text
 | 
			
		||||
        
 | 
			
		||||
        Dim writegrade As Long
 | 
			
		||||
        Dim i As Integer
 | 
			
		||||
        writegrade = 0
 | 
			
		||||
        
 | 
			
		||||
        For i = 0 To chkGrade.Count - 1
 | 
			
		||||
            If chkGrade(i).Value = 1 Then
 | 
			
		||||
                writegrade = writegrade + chkGrade(i).Tag
 | 
			
		||||
            End If
 | 
			
		||||
        Next i
 | 
			
		||||
        
 | 
			
		||||
        If writegrade > 0 Then tsTarget.WriteLine "NEEDEDGRADE = " & writegrade
 | 
			
		||||
    End If
 | 
			
		||||
    
 | 
			
		||||
    tsTarget.Close
 | 
			
		||||
    Set myFSOTarget = Nothing
 | 
			
		||||
    
 | 
			
		||||
    FileCopy SOCTemp, SOCFile
 | 
			
		||||
    
 | 
			
		||||
    Kill SOCTemp
 | 
			
		||||
    
 | 
			
		||||
    If Remove = True Then
 | 
			
		||||
        If unlockableremoved = True Then
 | 
			
		||||
            MsgBox "Unlockable deleted from SOC."
 | 
			
		||||
        Else
 | 
			
		||||
            MsgBox "Couldn't find Unlockable in SOC."
 | 
			
		||||
        End If
 | 
			
		||||
    Else
 | 
			
		||||
        MsgBox "Unlockable Saved."
 | 
			
		||||
    End If
 | 
			
		||||
End Sub
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 1.1 KiB  | 
		Loading…
	
	Add table
		
		Reference in a new issue