Patrick Welche <prlw1@cam.ac.uk>
[netbsd-mini2440.git] / games / phantasia / map.c
bloba334b423f65e06c1b109b867098719377ff0aac4
1 /* $NetBSD$ */
3 #define minusminus plusplus
4 #define minusplus plusminus
6 main()
8 /* Set up */
10 openpl();
11 space(-1400, -1000, 1200, 1200);
13 /* Big box */
15 move(-1400, -1000);
16 cont(-1400, 1000);
17 cont(600, 1000);
18 cont(600, -1000);
19 cont(-1400, -1000);
21 /* Grid -- horizontal lines every 200 */
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);
36 /* Grid -- vertical lines every 200 */
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);
50 /* Circles radius +250 on "center" */
52 linemod("solid");
53 circle(-400, 0, 250);
54 circle(-400, 0, 500);
55 circle(-400, 0, 750);
56 circle(-400, 0, 1000);
58 /* A few labels */
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");
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);
123 /* Close down */
125 move(-1380, 1180);
126 closepl();
127 exit(0);
130 plusplus(s, x, y) /* draw strings in plus plus quadrant */
131 char *s;
132 int x, y;
134 char s1[2];
136 while (*s)
138 move(x, y);
139 s1[0] = *s++;
140 s1[1] = '\0';
141 label(s1);
142 x += 25;
143 y -= 30;
147 plusminus(s, x, y) /* draw strings in plus minus quadrant */
148 char *s;
149 int x, y;
151 char s1[2];
153 while (*s)
155 move(x, y);
156 s1[0] = *s++;
157 s1[1] = '\0';
158 label(s1);
159 x += 25;
160 y += 30;