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