xref: /netbsd/games/phantasia/map.c (revision bf9ec67e)
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 
6 main()
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 
130 plusplus(s, x, y)	/* draw strings in plus plus quadrant */
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)	/* draw strings in plus minus quadrant */
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 }
163