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