📄 objed.bas
字号:
Attribute VB_Name = "Module1"
Global Const FILE_TAGFILE = "ObjectFormat.Dat"
Global Const IonFile$ = "Original.Ion"
Global Const TAGOPMAX = 200
Global Const TAGDEFMAX = 200
Global Const CURRVERSION$ = "ION FORMAT VERSION: 1.0"
Type TagDf
active As Boolean
TagName As String
NonOption As Boolean
TagOptions(1 To TAGOPMAX) As String
TagOptionMax As Integer
End Type
Global TagDefs(TAGDEFMAX) As TagDf
Global MaxTags As Integer
Type Objz
active As Boolean
Tags(TAGDEFMAX) As String
End Type
Global Const MAXOBJZ = 100
Global Objects(MAXOBJZ) As Objz
Global CObj As Integer
Sub LoadObjectTags()
On Error GoTo ErrRR
For i = 0 To TAGDEFMAX
TagDefs(i).active = False
Next i
MaxTags = 0
Open FILE_TAGFILE For Input As #1
Do
Line Input #1, a$
If a$ = "[ENDOFFILE]" Then Exit Do
If a$ = "[OBJTAGDEF]" Then
MaxTags = MaxTags + 1
TagDefs(MaxTags).active = True
Line Input #1, a$
TagDefs(MaxTags).TagName = a$
OpMax = 0
Do
Line Input #1, a$
If a$ = "[ENDOBJDEF]" Then Exit Do
If a$ = "NULL" Then
TagDefs(MaxTags).NonOption = True
Exit Do
Else
TagDefs(MaxTags).NonOption = False
End If
OpMax = OpMax + 1
TagDefs(MaxTags).TagOptions(OpMax) = a$
Loop
TagDefs(MaxTags).TagOptionMax = OpMax
End If
Loop
Close #1
Form1.HScroll1.Max = MaxTags
Call UpdatePage
Exit Sub
ErrRR:
Close
Call UpdatePage
End Sub
Sub UpdatePage()
On Error Resume Next
tval = Form1.HScroll1.Value
PVal = Form1.List1.ListIndex
Form1.List1.Clear
Form1.List1.AddItem "[New Object]"
For i = 1 To MAXOBJZ
If Objects(i).active = True Then
Form1.List1.AddItem Objects(i).Tags(1)
End If
Next i
DoEvents
Form1.List1.ListIndex = PVal
Form1.Text1.Text = TagDefs(tval).TagName
If TagDefs(tval).TagName = "ATTRIBUTE_SPRITE" Then
Form1.Combo1.Clear
Open "Sprites.Dat" For Input As #1
Form1.Combo1.AddItem "-Nothing-"
Do
Line Input #1, a$
If a$ = "[ENDOFFILE]" Then Exit Do
If a$ = "[SPRITEDEF]" Then
Line Input #1, a$
a$ = Right$(a$, Len(a$) - 12)
Form1.Combo1.AddItem a$
End If
Loop
Close #1
Form1.Combo1.Visible = True
Form1.Text2.Visible = False
If Objects(CObj).Tags(tval) <> "" Then Form1.Combo1.Text = Objects(CObj).Tags(tval)
ElseIf TagDefs(tval).TagName = "ATTRIBUTE_EXPLOSIONSPRITE" Then
Form1.Combo1.Clear
Form1.Combo1.AddItem "-Nothing-"
Open "Sprites.Dat" For Input As #1
Do
Line Input #1, a$
If a$ = "[ENDOFFILE]" Then Exit Do
If a$ = "[SPRITEDEF]" Then
Line Input #1, a$
a$ = Right$(a$, Len(a$) - 12)
Form1.Combo1.AddItem a$
End If
Loop
Close #1
Form1.Combo1.Visible = True
Form1.Text2.Visible = False
If Objects(CObj).Tags(tval) <> "" Then Form1.Combo1.Text = Objects(CObj).Tags(tval)
Else
If TagDefs(tval).NonOption = True Then
Form1.Combo1.Visible = False
Form1.Text2.Visible = True
If Objects(CObj).Tags(tval) = "" Then
Form1.Text2.Text = "-Enter a value-"
Else
Form1.Text2.Text = Objects(CObj).Tags(tval)
End If
Else
Form1.Combo1.Visible = True
Form1.Text2.Visible = False
Form1.Combo1.Clear
For i = 1 To TagDefs(tval).TagOptionMax
Form1.Combo1.AddItem TagDefs(tval).TagOptions(i)
Next i
If Objects(CObj).Tags(tval) <> "" Then
Form1.Combo1.Text = Objects(CObj).Tags(tval)
End If
End If
End If
End Sub
Sub LoadObjz()
On Error GoTo ER
Open "Units.Dat" For Input As #1
Line Input #1, a$
Mo = 0
Select Case a$
Case "ION FORMAT VERSION: 1.0"
Do
Line Input #1, a$
If a$ = "[ENDOFFILE]" Then Exit Do
If a$ = "[OBJECTDEFSTART]" Then
Mo = Mo + 1
Objects(Mo).active = True
For i = 1 To MaxTags
Line Input #1, a$
Objects(Mo).Tags(i) = GetPropertyValue(a$)
Next i
End If
Loop
End Select
Close #1
Call UpdatePage
Exit Sub
ER:
Close #1
End Sub
Sub SaveObjz()
Open "Units.Dat" For Output As #1
Print #1, CURRVERSION$
For i = 1 To MAXOBJZ
If Objects(i).active = True Then
Print #1, "[OBJECTDEFSTART]"
For i2 = 1 To MaxTags
If Objects(i).Tags(i2) <> "" Then
Print #1, TagDefs(i2).TagName & " " & Objects(i).Tags(i2)
Else
Print #1, TagDefs(i2).TagName
End If
Next i2
Print #1, "[OBJECTDEFEND]"
End If
Next i
Print #1, "[ENDOFFILE]"
Close #1
End Sub
Public Function GetPropertyValue(TextString) As String
GetPropertyValue = Right$(TextString, Len(TextString) - InStr(1, TextString, " "))
If InStr(1, TextString, " ") = 0 Then GetPropertyValue = ""
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -