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