-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmessages.pb
112 lines (92 loc) · 4.1 KB
/
messages.pb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
; Lost Labyrinth VI: Portals
; messages
; written in PureBasic 4.20 (http://www.purebasic.com)
; created: 28.11.2008 Frank Malota <[email protected]>
; modified: 21.12.2008 Frank Malota <[email protected]>
; resets message list
Procedure reset_message_list()
Protected i.w = 0
For i=1 To #MAX_NUMBER_OF_MESSAGES - 1
message_list$(i) = "??? missing message ID " + Str(i) + " ???"
Next
EndProcedure
; load message list
Procedure load_message_list(filename$="data\messages.xml")
Protected val$, text$, id.w = 0, language$, *mainnode, *node, *childnode, val2$
reset_message_list()
If CreateXML(0) = 0
error_message("load_message_list(): could not create xml structure in memory!")
EndIf
If LoadXML(0, filename$) = 0
error_message("load_message_list(): could not open message xml file: " + Chr(34) + filename$ + Chr(34))
EndIf
If XMLStatus(0) <> 0
error_message("load_message_list(): error in xml structure of message file: " + XMLError(0))
EndIf
*mainnode = MainXMLNode(0)
If *mainnode
If ExamineXMLAttributes(*mainnode)
While NextXMLAttribute(*mainnode)
val$ = XMLAttributeValue(*mainnode)
Select XMLAttributeName(*mainnode)
Case "Lost_Labyrinth_version":
Default:
error_message("load_message_list(): unknown attribute " + Chr(34) + XMLAttributeName(*mainnode) + Chr(34) + " in messages xml file " + Chr(34) + filename$ + Chr(34))
EndSelect
Wend
EndIf
*node = ChildXMLNode(*mainnode)
While *node <> 0
Select GetXMLNodeName(*node)
Case "message":
id = 0
If ExamineXMLAttributes(*node)
While NextXMLAttribute(*node)
val$ = XMLAttributeValue(*node)
Select XMLAttributeName(*node)
Case "id":
id = Val(val$)
Default:
error_message("load_message_list(): unknown attribute " + Chr(34) + XMLAttributeName(*node) + Chr(34) + " in message tag in messages xml file " + Chr(34) + filename$ + Chr(34))
EndSelect
Wend
If id < 1 Or id > #MAX_NUMBER_OF_MESSAGES - 1
error_message("load_message_list(): wrong id " + Chr(34) + Str(id) + Chr(34) + " in message tag in messages xml file " + Chr(34) + filename$ + Chr(34))
EndIf
*childnode =ChildXMLNode(*node)
While *childnode <> 0
Select GetXMLNodeName(*childnode)
Case "text":
If ExamineXMLAttributes(*childnode)
While NextXMLAttribute(*childnode)
val2$ = XMLAttributeValue(*childnode)
Select XMLAttributeName(*childnode)
Case "language":
If val2$ = preferences\language$
message_list$(id) = GetXMLNodeText(*childnode)
EndIf
Default:
error_message("load_message_list(): unknown attribute " + Chr(34) + XMLAttributeName(*childnode) + Chr(34) + " in text tag in messages xml file " + Chr(34) + filename$ + Chr(34))
EndSelect
Wend
EndIf
Default:
error_message("load_message_list(): unknown tag " + Chr(34) + GetXMLNodeName(*childnode) + Chr(34) + " in messages xml file " + Chr(34) + filename$ + Chr(34))
EndSelect
*childnode = NextXMLNode(*childnode)
Wend
EndIf
Default:
error_message("load_message_list(): unknown tag " + Chr(34) + GetXMLNodeName(*node) + Chr(34) + " in messages xml file " + Chr(34) + filename$ + Chr(34))
EndSelect
*node = NextXMLNode(*node)
Wend
EndIf
FreeXML(0)
EndProcedure
; IDE Options = PureBasic 4.20 (Windows - x86)
; CursorPosition = 19
; FirstLine = 3
; Folding = -
; EnableXP
; CompileSourceDirectory