1:
2:
3: #define minusminus plusplus
4: #define minusplus plusminus
5:
6: main()
7: {
8:
9:
10: openpl();
11: space(-1400, -1000, 1200, 1200);
12:
13:
14:
15: move(-1400, -1000);
16: cont(-1400, 1000);
17: cont(600, 1000);
18: cont(600, -1000);
19: cont(-1400, -1000);
20:
21:
22:
23: linemod("dotted");
24: line(600, -800, -1400, -800);
25: line(-1400, -600, 600, -600);
26: line(600, -400, -1400, -400);
27: line(-1400, -200, 600, -200);
28: linemod("solid");
29: line(600, 0, -1400, 0);
30: linemod("dotted");
31: line(-1400, 200, 600, 200);
32: line(600, 400, -1400, 400);
33: line(-1400, 600, 600, 600);
34: line(600, 800, -1400, 800);
35:
36:
37:
38: line(-1200, 1000, -1200, -1000);
39: line(-1000, 1000, -1000, -1000);
40: line(-800, 1000, -800, -1000);
41: line(-600, 1000, -600, -1000);
42: linemod("solid");
43: line(-400, 1000, -400, -1000);
44: linemod("dotted");
45: line(-200, 1000, -200, -1000);
46: line(0, 1000, 0, -1000);
47: line(200, 1000, 200, -1000);
48: line(400, 1000, 400, -1000);
49:
50:
51:
52: linemod("solid");
53: circle(-400, 0, 250);
54: circle(-400, 0, 500);
55: circle(-400, 0, 750);
56: circle(-400, 0, 1000);
57:
58:
59:
60: move(-670, 1075);
61: label("- THE PHANTASIA UNIVERSE -");
62: line(-630, 1045, -115, 1045);
63: move(-360, 80);
64: label("Lorien");
65: move(-385, -100);
66: label("Ithilien");
67: move(-560, 80);
68: label("Rohan");
69: move(-580, -100);
70: label("Anorien");
71: plusplus("Rovanion", -250, 320);
72: plusplus("The Iron Hills", -100, 560);
73: plusplus("Rhun", 250, 570);
74: minusplus("Dunland", -700, 160);
75: minusplus("Eriador", -920, 300);
76: minusplus("The Northern Waste", -1240, 320);
77: minusminus("Gondor", -720, -180);
78: minusminus("South Gondor", -940, -270);
79: minusminus("Far Harad", -1100, -500);
80: plusminus("Mordor", -180, -300);
81: plusminus("Khand", 0, -500);
82: plusminus("Near Harad", 40, -780);
83: move(340, 900);
84: label("The Moors");
85: move(300, 840);
86: label("Adventurous");
87: move(340, -840);
88: label("The Moors");
89: move(300, -900);
90: label("Adventurous");
91: move(-1340, 900);
92: label("The Moors");
93: move(-1340, 840);
94: label("Adventurous");
95: move(-1340, -840);
96: label("The Moors");
97: move(-1340, -900);
98: label("Adventurous");
99: move(700, 1000);
100: label("OUTER CIRCLES:");
101: line(690, 970, 1000, 970);
102: move(700, 900);
103: label("> 9: The Outer Waste");
104: move(700, 800);
105: label("> 20: The Dead Marshes");
106: move(700, 700);
107: label("> 35: Kennaquhair");
108: move(700, 600);
109: label("> 55: Morannon");
110: move(700, 300);
111: label("(0,0): The Lord's Chamber");
112:
113: move(700, -400);
114: label("Grid squares are 100 x 100");
115: move(700, -800);
116: label("Created by Ted Estes");
117: move(700, -860);
118: label("Plotted by Chris Robertson");
119: move(700, -920);
120: label(" c 1985");
121: circle(723, -923, 20);
122:
123:
124:
125: move(-1380, 1180);
126: closepl();
127: exit(0);
128: }
129:
130: plusplus(s, x, y)
131: char *s;
132: int x, y;
133: {
134: char s1[2];
135:
136: while (*s)
137: {
138: move(x, y);
139: s1[0] = *s++;
140: s1[1] = '\0';
141: label(s1);
142: x += 25;
143: y -= 30;
144: }
145: }
146:
147: plusminus(s, x, y)
148: char *s;
149: int x, y;
150: {
151: char s1[2];
152:
153: while (*s)
154: {
155: move(x, y);
156: s1[0] = *s++;
157: s1[1] = '\0';
158: label(s1);
159: x += 25;
160: y += 30;
161: }
162: }