Sollte eigendlich alles funktionieren

Code: Alles auswählen
;- OpenFile
OpenFile(0,"map.txt")
;
Structure Maps
Name.s
Hoehe.w
Breite.w
PlayerX.w
PlayerY.w
EndStructure
Structure Fields
X.w
Y.w
House.w
Boden.w
State.w
Target.w
EndStructure
NewList Maps.Maps()
NewList Fields.Fields()
Procedure XML_Game(A$)
X = FindString(A$,"<game>",1)
If X
ProcedureReturn 1
Else
ProcedureReturn 0
EndIf
EndProcedure
Procedure XML_Map(A$)
X = FindString(A$,"<map",1)
If X
Y = FindString(A$,"name=",X)
Start = FindString(A$,Chr(34), Y+4)
Ende = FindString(A$,Chr(34), Start+1)
Map_Name$ = Mid(A$, Start+1, Ende-Start-1)
Y = FindString(A$,"height=",X)
Start = FindString(A$,Chr(34), Y+4)
Ende = FindString(A$,Chr(34), Start+1)
Map_Hoehe.b = Val(Mid(A$, Start+1, Ende-Start-1))
Y = FindString(A$,"width=",X)
Start = FindString(A$,Chr(34), Y+4)
Ende = FindString(A$,Chr(34), Start+1)
Map_Breite.b = Val(Mid(A$, Start+1, Ende-Start-1))
Y = FindString(A$,"playerx=",X)
Start = FindString(A$,Chr(34), Y+4)
Ende = FindString(A$,Chr(34), Start+1)
Map_PlayerX.b = Val(Mid(A$, Start+1, Ende-Start-1))
Y = FindString(A$,"playery=",X)
Start = FindString(A$,Chr(34), Y+4)
Ende = FindString(A$,Chr(34), Start+1)
Map_PlayerY.b = Val(Mid(A$, Start+1, Ende-Start-1))
AddElement(Maps())
Maps()\Name = Map_Name$
Maps()\Hoehe = Map_Hoehe
Maps()\Breite = Map_Breite
Maps()\PlayerX = Map_PlayerX
Maps()\PlayerY = Map_PlayerY
Else
ProcedureReturn 0
EndIf
EndProcedure
Procedure XML_Field(A$)
X = FindString(A$,"<field",1)
If X
Y = FindString(A$,"x=",X)
Start = FindString(A$,Chr(34), Y+4)
Ende = FindString(A$,Chr(34), Start+1)
Field_X.b = Val(Mid(A$, Start+1, Ende-Start-1))
Y = FindString(A$,"y=",X)
Start = FindString(A$,Chr(34), Y+4)
Ende = FindString(A$,Chr(34), Start+1)
Field_Y.b = Val(Mid(A$, Start+1, Ende-Start-1))
Y = FindString(A$,"house=",X)
Start = FindString(A$,Chr(34), Y+4)
Ende = FindString(A$,Chr(34), Start+1)
Field_House.b = Val(Mid(A$, Start+1, Ende-Start-1))
Y = FindString(A$,"state=",X)
Start = FindString(A$,Chr(34), Y+4)
Ende = FindString(A$,Chr(34), Start+1)
Field_State.b = Val(Mid(A$, Start+1, Ende-Start-1))
Y = FindString(A$,"boden=",X)
Start = FindString(A$,Chr(34), Y+4)
Ende = FindString(A$,Chr(34), Start+1)
Field_Boden.b = Val(Mid(A$, Start+1, Ende-Start-1))
Y = FindString(A$,"target=",X)
Start = FindString(A$,Chr(34), Y+4)
Ende = FindString(A$,Chr(34), Start+1)
Field_Target.b = Val(Mid(A$, Start+1, Ende-Start-1))
AddElement(Fields())
Fields()\X = Field_X.b
Fields()\Y = Field_Y
Fields()\House = Field_House
Fields()\Boden = Field_Boden
Fields()\State = Field_State
Fields()\Target = Field_Target
Else
ProcedureReturn 0
EndIf
EndProcedure
Repeat
String$ = ReadString()
XML_Map(String$)
XML_Field(String$)
Until Eof(0)
While NextElement(Maps())
MessageRequester("Go","X: "+Str(Fields()\X),0)
Wend
While NextElement(Fields())
MessageRequester("Go","X: "+Str(Fields()\X),0)
Wend