1 | [
|
---|
2 | [ lgc.VersionCheck
|
---|
3 | [
|
---|
4 | [
|
---|
5 | [ This logic uses takes advantage of AGI's failure to validate
|
---|
6 | [ string numbers to determine what version of AGI is running.
|
---|
7 | [ Because the data in agidata.ovl varies between versions, by
|
---|
8 | [ testing certain string values it is possible to know exactly
|
---|
9 | [ which version is running
|
---|
10 |
|
---|
11 | [ s29=" Durgan" means 2.089
|
---|
12 | s1 = m1;
|
---|
13 | if (compare.strings(s1, s29)) {
|
---|
14 | IntVersion = VERSION_2089;
|
---|
15 | goto(found);
|
---|
16 | }
|
---|
17 |
|
---|
18 | [ s41="uit." means 2.272
|
---|
19 | s1 = m2;
|
---|
20 | if (compare.strings(s1, s41)) {
|
---|
21 | IntVersion = VERSION_2272;
|
---|
22 | goto(found);
|
---|
23 | }
|
---|
24 |
|
---|
25 | [ s55="ersion 2.xxx" means 2.411 through 2.440
|
---|
26 | s1 = m3;
|
---|
27 | if (compare.strings(s1, s55)) {
|
---|
28 | IntVersion = VERSION_2411;
|
---|
29 | goto(found);
|
---|
30 | }
|
---|
31 | s1 = m4;
|
---|
32 | if (compare.strings(s1, s55)) {
|
---|
33 | IntVersion = VERSION_2425;
|
---|
34 | goto(found);
|
---|
35 | }
|
---|
36 | s1 = m5;
|
---|
37 | if (compare.strings(s1, s55)) {
|
---|
38 | IntVersion = VERSION_2426;
|
---|
39 | goto(found);
|
---|
40 | }
|
---|
41 | s1 = m6;
|
---|
42 | if (compare.strings(s1, s55)) {
|
---|
43 | IntVersion = VERSION_2435;
|
---|
44 | goto(found);
|
---|
45 | }
|
---|
46 | s1 = m7;
|
---|
47 | if (compare.strings(s1, s55)) {
|
---|
48 | IntVersion = VERSION_2439;
|
---|
49 | goto(found);
|
---|
50 | }
|
---|
51 | s1 = m8;
|
---|
52 | if (compare.strings(s1, s55)) {
|
---|
53 | IntVersion = VERSION_2440;
|
---|
54 | goto(found);
|
---|
55 | }
|
---|
56 |
|
---|
57 | [ s56=".xxx" means 2.903 through 2.917
|
---|
58 | s1 = m9;
|
---|
59 | if (compare.strings(s1, s56)) {
|
---|
60 | IntVersion = VERSION_2903;
|
---|
61 | goto(found);
|
---|
62 | }
|
---|
63 |
|
---|
64 | s1 = m10;
|
---|
65 | if (compare.strings(s1, s56)) {
|
---|
66 | IntVersion = VERSION_2911;
|
---|
67 | goto(found);
|
---|
68 | }
|
---|
69 | s1 = m11;
|
---|
70 | if (compare.strings(s1, s56)) {
|
---|
71 | IntVersion = VERSION_2912;
|
---|
72 | goto(found);
|
---|
73 | }
|
---|
74 | s1 = m12;
|
---|
75 | if (compare.strings(s1, s56)) {
|
---|
76 | IntVersion = VERSION_2915;
|
---|
77 | goto(found);
|
---|
78 | }
|
---|
79 | s1 = m13;
|
---|
80 | if (compare.strings(s1, s56)) {
|
---|
81 | IntVersion = VERSION_2917;
|
---|
82 | goto(found);
|
---|
83 | }
|
---|
84 |
|
---|
85 | [ s56="ersion 2.936" means 2.936
|
---|
86 | s1 = m14;
|
---|
87 | if (compare.strings(s1, s56)) {
|
---|
88 | IntVersion = VERSION_2936;
|
---|
89 | goto(found);
|
---|
90 | }
|
---|
91 |
|
---|
92 | [ not found
|
---|
93 | IntVersion = 0;
|
---|
94 |
|
---|
95 | :found
|
---|
96 | [ verify version supports menus
|
---|
97 | if (IntVersion <= 2) {
|
---|
98 | print("Flag Quest requires an interpreter version that supports "
|
---|
99 | "menus. This interpreter does not. Your quest has failed.");
|
---|
100 | quit(1);
|
---|
101 | }
|
---|
102 |
|
---|
103 | return();
|
---|
104 |
|
---|
105 | [*****
|
---|
106 | [ messages [ declared messages go here
|
---|
107 | [*****
|
---|
108 | #message 1 " Durgan" [2.089
|
---|
109 | #message 2 "uit." [2.272
|
---|
110 | #message 3 "ersion 2.411" [2.411
|
---|
111 | #message 4 "ersion 2.425" [2.425
|
---|
112 | #message 5 "ersion 2.426" [2.426
|
---|
113 | #message 6 "ersion 2.435" [2.435
|
---|
114 | #message 7 "ersion 2.439" [2.439
|
---|
115 | #message 8 "ersion 2.440" [2.440
|
---|
116 | #message 9 ".903" [2.903
|
---|
117 | #message 10 ".911" [2.911
|
---|
118 | #message 11 ".912" [2.912
|
---|
119 | #message 12 ".915" [2.915
|
---|
120 | #message 13 ".917" [2.917
|
---|
121 | #message 14 "ersion 2.936" [2.936
|
---|
122 | #message 15 "ss ESC to quit." [3.002.086
|
---|
123 | #message 16 "98" [3.002.098
|
---|
124 | #message 17 "2.102" [3.002.102
|
---|
125 | #message 18 "2.107" [3.002.107
|
---|
126 | #message 19 "2.149" [3.002.149
|
---|