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 } 164