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