mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2024-12-26 20:31:30 +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
600f7e2102
commit
260d69720d
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…
Reference in a new issue