home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / jpi / objed.bas < prev    next >
Encoding:
BASIC Source File  |  1998-01-21  |  4.6 KB  |  184 lines

  1. Attribute VB_Name = "Module1"
  2. Global Const FILE_TAGFILE = "ObjectFormat.Dat"
  3. Global Const IonFile$ = "Original.Ion"
  4. Global Const TAGOPMAX = 200
  5. Global Const TAGDEFMAX = 200
  6. Global Const CURRVERSION$ = "ION FORMAT VERSION: 1.0"
  7. Type TagDf
  8.   active As Boolean
  9.   TagName As String
  10.   NonOption As Boolean
  11.   TagOptions(1 To TAGOPMAX) As String
  12.   TagOptionMax As Integer
  13. End Type
  14. Global TagDefs(TAGDEFMAX) As TagDf
  15. Global MaxTags As Integer
  16.  
  17. Type Objz
  18.   active As Boolean
  19.   Tags(TAGDEFMAX) As String
  20. End Type
  21. Global Const MAXOBJZ = 100
  22. Global Objects(MAXOBJZ) As Objz
  23. Global CObj As Integer
  24. Sub LoadObjectTags()
  25. On Error GoTo ErrRR
  26. For i = 0 To TAGDEFMAX
  27.   TagDefs(i).active = False
  28. Next i
  29. MaxTags = 0
  30.  
  31. Open FILE_TAGFILE For Input As #1
  32. Do
  33.   Line Input #1, a$
  34.   If a$ = "[ENDOFFILE]" Then Exit Do
  35.   If a$ = "[OBJTAGDEF]" Then
  36.     MaxTags = MaxTags + 1
  37.     TagDefs(MaxTags).active = True
  38.     Line Input #1, a$
  39.     TagDefs(MaxTags).TagName = a$
  40.     OpMax = 0
  41.     Do
  42.       Line Input #1, a$
  43.       If a$ = "[ENDOBJDEF]" Then Exit Do
  44.       If a$ = "NULL" Then
  45.         TagDefs(MaxTags).NonOption = True
  46.         Exit Do
  47.       Else
  48.         TagDefs(MaxTags).NonOption = False
  49.       End If
  50.       OpMax = OpMax + 1
  51.       TagDefs(MaxTags).TagOptions(OpMax) = a$
  52.     Loop
  53.     TagDefs(MaxTags).TagOptionMax = OpMax
  54.   End If
  55. Loop
  56. Close #1
  57. Form1.HScroll1.Max = MaxTags
  58. Call UpdatePage
  59. Exit Sub
  60. ErrRR:
  61. Close
  62. Call UpdatePage
  63. End Sub
  64. Sub UpdatePage()
  65. On Error Resume Next
  66. tval = Form1.HScroll1.Value
  67. PVal = Form1.List1.ListIndex
  68. Form1.List1.Clear
  69. Form1.List1.AddItem "[New Object]"
  70. For i = 1 To MAXOBJZ
  71.   If Objects(i).active = True Then
  72.     Form1.List1.AddItem Objects(i).Tags(1)
  73.   End If
  74. Next i
  75. DoEvents
  76. Form1.List1.ListIndex = PVal
  77. Form1.Text1.Text = TagDefs(tval).TagName
  78. If TagDefs(tval).TagName = "ATTRIBUTE_SPRITE" Then
  79.   Form1.Combo1.Clear
  80.   Open "Sprites.Dat" For Input As #1
  81.   Form1.Combo1.AddItem "-Nothing-"
  82.   Do
  83.     Line Input #1, a$
  84.     If a$ = "[ENDOFFILE]" Then Exit Do
  85.     If a$ = "[SPRITEDEF]" Then
  86.       Line Input #1, a$
  87.       a$ = Right$(a$, Len(a$) - 12)
  88.       Form1.Combo1.AddItem a$
  89.     End If
  90.   Loop
  91.   Close #1
  92.   Form1.Combo1.Visible = True
  93.   Form1.Text2.Visible = False
  94.   If Objects(CObj).Tags(tval) <> "" Then Form1.Combo1.Text = Objects(CObj).Tags(tval)
  95. ElseIf TagDefs(tval).TagName = "ATTRIBUTE_EXPLOSIONSPRITE" Then
  96.   Form1.Combo1.Clear
  97.   Form1.Combo1.AddItem "-Nothing-"
  98.   Open "Sprites.Dat" For Input As #1
  99.   Do
  100.     Line Input #1, a$
  101.     If a$ = "[ENDOFFILE]" Then Exit Do
  102.     If a$ = "[SPRITEDEF]" Then
  103.       Line Input #1, a$
  104.       a$ = Right$(a$, Len(a$) - 12)
  105.       Form1.Combo1.AddItem a$
  106.     End If
  107.   Loop
  108.   Close #1
  109.   Form1.Combo1.Visible = True
  110.   Form1.Text2.Visible = False
  111.   If Objects(CObj).Tags(tval) <> "" Then Form1.Combo1.Text = Objects(CObj).Tags(tval)
  112. Else
  113.  
  114.     If TagDefs(tval).NonOption = True Then
  115.       Form1.Combo1.Visible = False
  116.       Form1.Text2.Visible = True
  117.       If Objects(CObj).Tags(tval) = "" Then
  118.         Form1.Text2.Text = "-Enter a value-"
  119.       Else
  120.         Form1.Text2.Text = Objects(CObj).Tags(tval)
  121.       End If
  122.     Else
  123.       Form1.Combo1.Visible = True
  124.       Form1.Text2.Visible = False
  125.       Form1.Combo1.Clear
  126.       For i = 1 To TagDefs(tval).TagOptionMax
  127.         Form1.Combo1.AddItem TagDefs(tval).TagOptions(i)
  128.       Next i
  129.       If Objects(CObj).Tags(tval) <> "" Then
  130.         Form1.Combo1.Text = Objects(CObj).Tags(tval)
  131.       End If
  132.     End If
  133. End If
  134. End Sub
  135. Sub LoadObjz()
  136. On Error GoTo ER
  137. Open "Units.Dat" For Input As #1
  138. Line Input #1, a$
  139. Mo = 0
  140. Select Case a$
  141. Case "ION FORMAT VERSION: 1.0"
  142.   Do
  143.     Line Input #1, a$
  144.     If a$ = "[ENDOFFILE]" Then Exit Do
  145.     If a$ = "[OBJECTDEFSTART]" Then
  146.       Mo = Mo + 1
  147.       Objects(Mo).active = True
  148.       For i = 1 To MaxTags
  149.         Line Input #1, a$
  150.         Objects(Mo).Tags(i) = GetPropertyValue(a$)
  151.       Next i
  152.     End If
  153.   Loop
  154. End Select
  155. Close #1
  156. Call UpdatePage
  157. Exit Sub
  158. ER:
  159. Close #1
  160. End Sub
  161. Sub SaveObjz()
  162. Open "Units.Dat" For Output As #1
  163. Print #1, CURRVERSION$
  164. For i = 1 To MAXOBJZ
  165.   If Objects(i).active = True Then
  166.     Print #1, "[OBJECTDEFSTART]"
  167.     For i2 = 1 To MaxTags
  168.       If Objects(i).Tags(i2) <> "" Then
  169.         Print #1, TagDefs(i2).TagName & " " & Objects(i).Tags(i2)
  170.       Else
  171.         Print #1, TagDefs(i2).TagName
  172.       End If
  173.     Next i2
  174.     Print #1, "[OBJECTDEFEND]"
  175.   End If
  176. Next i
  177. Print #1, "[ENDOFFILE]"
  178. Close #1
  179. End Sub
  180. Public Function GetPropertyValue(TextString) As String
  181. GetPropertyValue = Right$(TextString, Len(TextString) - InStr(1, TextString, " "))
  182. If InStr(1, TextString, " ") = 0 Then GetPropertyValue = ""
  183. End Function
  184.