map.c revision 1.1
1/*	$NetBSD: map.c,v 1.2 1995/03/24 03:58:58 cgd Exp $	*/
2
3#define	minusminus	plusplus
4#define	minusplus	plusminus
5
6main()
7{
8    /* Set up */
9
10    openpl();
11    space(-1400, -1000, 1200, 1200);
12
13    /* Big box */
14
15    move(-1400, -1000);
16    cont(-1400, 1000);
17    cont(600, 1000);
18    cont(600, -1000);
19    cont(-1400, -1000);
20
21    /* Grid -- horizontal lines every 200 */
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    /* Grid -- vertical lines every 200 */
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    /* Circles radius +250 on "center" */
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    /* A few labels */
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    /* Close down */
124
125    move(-1380, 1180);
126    closepl();
127    exit(0);
128}
129
130plusplus(s, x, y)	/* draw strings in plus plus quadrant */
131char	*s;
132int	x, y;
133{
134char	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
147plusminus(s, x, y)	/* draw strings in plus minus quadrant */
148char	*s;
149int	x, y;
150{
151char	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}
163