summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Andersson <tor@ccxvii.net>2024-03-17 14:01:52 +0100
committerTor Andersson <tor@ccxvii.net>2024-03-17 14:01:52 +0100
commiteb1b52100cc054f7ddbeb865e8b001828b07704d (patch)
treeb7b8f150bd2831755514ffdf30a85d32ad768fb0
parent7cc262183757b83ff1a5400f3816389b7f175583 (diff)
downloadmaria-eb1b52100cc054f7ddbeb865e8b001828b07704d.tar.gz
Parse layout and generate map data.
-rw-r--r--data.js2
-rw-r--r--tools/layout.svg1234
-rw-r--r--tools/names.txt2
-rw-r--r--tools/parse-layout.js235
4 files changed, 859 insertions, 614 deletions
diff --git a/data.js b/data.js
new file mode 100644
index 0000000..d6c3c5d
--- /dev/null
+++ b/data.js
@@ -0,0 +1,2 @@
+const data = {"type":{"major_fortress":[21,52,75,76,186,202,216,247,248,292,384,466,508,544,576],"minor_fortress":[0,4,5,10,11,12,22,23,24,39,40,41,42,43,53,54,55,56,57,77,78,102,103,143,169,187,188,189,203,217,218,219,249,250,251,252,253,293,294,295,329,330,331,332,333,371,382,385,386,467,468,487,488,489,509,534,545,561,577,578,590,595,596,602]},"suit":{"clubs":[[0,3],[21,38],[102,118],[186,201],[216,246],[363,370],[394,395],[432,432],[466,486],[525,533],[576,589]],"diamonds":[[4,9],[39,51],[119,142],[247,291],[371,381],[396,409],[433,452],[487,506],[534,543],[590,594]],"hearts":[[10,18],[52,74],[143,168],[202,215],[292,328],[382,383],[410,413],[453,464],[507,507],[544,560],[595,601]],"spades":[[19,20],[75,101],[169,185],[329,362],[384,393],[414,431],[465,465],[508,524],[561,575],[602,616]]},"map":{"Flanders":[[0,215]],"Bohemia":[[216,616]]},"country":{"Austria":[[0,20],[216,362]],"Bavaria":[[363,393]],"France":[[21,101]],"Netherlands":[[186,215]],"Poland":[[432,465]],"Prussia":[[466,524]],"Saxony":[[525,575]],"Silesia":[[576,616]],"Holy Roman Empire":[[102,185],[394,431]]},"cities":{"name":["Brüssel","Antwerpen","Geel","Mecheln","Namur","Rochefort","Bastogne","Löwen","Nivelles","Verviers","Brügge","Luxembourg","Tournai","Arlon","Eeklo","Gent","Poperinge","Roeselare","Wiltz","Ath","Mans","Reims","Belfort","Colmar","Meaux","Châlons-en-Champ.","Château-Thierry","Créspy-en-V.","Epernay","Montbeliard","Mulhouse","Provins","Rethel","Romilly s. S.","Sezianne","Soissons","Valdahon","Valmy","Vesoul","Chaumont","Haguenau","St. Dizier","Strasbourg","Troyes","Bar-s.-Aube","Bouillon","Chaource","Châtillon s. S.","Langres","Sens","Tonnere","Vitry","Dijon","Besançon","Lille","Metz","Sedan","Verdun","Armientières","Autun","Avallon","Beaumont","Beaune","Calais","Dole","Dunkerque","Gray","Longuyon","Montbard","Montmédy","Omans","Perne","St. Avold","St. Omer","Thionville","Amiens","Nancy","Maubeuge","St. Quentin","Arras","Bar-le-Duc","Cambrai","Charleville-Mézieres","Compiègne","Douai","Doullens","Epinal","Guise","Jussey","Laon","Lens","Lunéville","Mondidier","Noyon","Péronne","Sarrebourg","Sarreguemines","St. Die","Toul","Valenciennes","Vervins","Vittel","Mainz","Mannheim","Aschaffenburg","Bingen","Cochem","Darmstadt","Frankfurt","Idar Oberstein","Kaiserslautern","Lörrach","Miltenberg","Mülheim","Nauheim","Wiesbaden","Wittlich","Worms","Zweibrücken","Aachen","Baden","Bruchsal","Charleroi","Genk","Givet","Göppingen","Heidelberg","Heilbronn","Karlsruhe","Landau","Lüttich","Maastricht","Malmedy","Offenburg","Pirmasens","Prüm","Reutlingen","Roermond","Speyer","Stuttgart","Tienen","Tübingen","Wolfach","Trier","Ahlen","Biberach","Bocholt","Coesfeld","Dortmund","Ehingen","Essen","Freiburg","Geldern","Hamm","Kleve","Krefeld","Lingen","Meppen","Münster","Pfullendorf","Ravensburg","Reichenbach","Rheine","Rottweil","Saarbrücken","Saarlouis","Stühlingen","Tecklenburg","Wesel","Köln","Barmen","Betzdorf","Bonn","Düsseldorf","Euskirchen","Gerolstein","Gimborn","Hagen","Iserlohn","Jülich","Koblenz","Limburg","Olpe","Siegen","Waldbröl","Wetzlar","Amsterdam","Bergen","Breda","Nijmegen","Alkmaar","Den Haag","Dordrecht","Eindhoven","Haarlem","Hertogenbosch","Leiden","Rotterdam","Terneuzen","Tilburg","Utrecht","Venlo","Groningen","Zwolle","Almelo","Apeldoorn","Arnhem","Assen","Delfzijl","Deventer","Dokkum","Emmen","Enschede","Heerenveen","Leeuwarden","Meppel","Brünn","Olmütz","Zwittau","Ödenburg","Aschach","Aussig","Austerlitz","Baden","Boskowitz","Braunau","Brod","Brüx","Gloggnitz","Gols","Güns","Hlinsko","Kaaden","Karlsbad","Krieglach","Krummau","Laun","Proßnitz","Purb","Rohrbach","Saaz","Schlan","Schärding","Steinamanger","Teplitz","Trebitsch","Wels","Linz","Prag","Budweis","Königgrätz","Melk","Nimburg","Zwettl","Enns","Friedek Mistek","Friedland","Gmünd","Gran","Hohenelbe","Horn","Jitschin","Jungbunzlau","Kolin","Komorn","Krems","Kufstein","Leipa","Leitmeritz","Luhatschowitz","Melnik","Neuhäusel","Neutitschein","Pardubitz","Prerau","Pápa","Raab","Raudnitz","Reichenberg","Rumburg","Sillein","St. Pölten","Sternberg","Stuhlweißenburg","Tatabanya","Tetschen","Turnau","Unter Haid","Vsetin","Waidhofen","Weißbrunn","Zliny","Wien","Klattau","Pilsen","Pressburg","Abasdorf","Bad Ischl","Beraun","Freiwaldau","Gairing","Gmunden","Hollabrunn","Hostau","Korneuburg","Kosteletz","Kulm","Lundenburg","Marienbad","Mies","Mistelbach","Nachod","Nikolsburg","Nürschan","Orth","Pisek","Prachatitz","Prestitz","Pribram","Rakonitz","Schneegattern","Schönberg","Schüttenhofen","Tepl","Trautenau","Trübau","Wildenschwert","Wostitz","Znaim","Eger","Frankenfels","Iglau","Schemnitz","Tabor","Amstetten","Beneschau","Bruck","Fratres","Freudenthal","Galanta","Hieflau","Kremnitz","Leoben","Levice","Liezen","Mariazell","Neutra","Orlik","Ostrau","Pilgram","Pistyan","Rohr","Schiltern","Slapy","Steyr","Teschen","Trentschin","Trieben","Troppau","Tschaslau","Tyrnau","Wittingau","Wotitz","Deggendorf","Falkenstein","Landau","Mühldorf","Pfarrkirchen","Regen","Straubing","Wasserburg","Landsberg","Amberg","Murnau","Neumarkt","Rosenheim","Schwandorf","Starnberg","Sulzbach","Tegernsee","Tirschenreuth","Tölz","Cham","Traunstein","München","Ingolstadt","Landshut","Beilngries","Dachau","Ergoldsbach","Freising","Kelheim","Pfaffenhofen","Schrobenhausen","Freyung","Passau","Bamberg","Bayreuth","Bernburg","Dessau","Erlangen","Füssen","Kulmbach","Köthen","Marktredwitz","Nürnberg","Partenkirchen","Quedlinburg","Schwabach","Weiden","Berchtesgaden","Hallein","Salzburg","Werfen","Altenburg","Arnstadt","Augsburg","Coburg","Donauwörth","Eichstätt","Erfurt","Gera","Greiz","Hof","Jena","Kronach","Naila","Regensburg","Rudolstadt","Saalfeld","Sonneberg","Weimar","Krotoszyn","Aleksandrów","Bełchatów","Kalisz","Konin","Koło","Krzepice","Krzyż","Kępno","Lask","Miedzychód","Miedzyzecz","Ostrów","Pleszew","Sieradz","Skwierzyna","Turek","Warta","Wielun","Zduńska Wola","Złoczew","Gostýn","Grodzisk","Jarocin","Kościan","Leszno","Poznań","Rawicz","Srem","Szamotuły","Wolztyn","Wronki","Wschowa","Czestochowa","Berlin","Brandenburg","Schwedt","Angermünde","Barath","Beeskow","Bernau","Eberswalde","Fehrbellin","Freienwalde","Fürstenwalde","Königs Wusterhausen","Luckenwalde","Neuruppin","Oranienburg","Potsdam","Spandau","Templin","Treuenbrietzen","Zehdenick","Zossen","Frankfurt","Halbenstadt","Küstrin","Berlinchen","Drossen","Eisleben","Friedeberg","Halle","Krossen","Landsberg","Neudamm","Pyritz","Reppen","Schwiebus","Seelow","Soldin","Staßfurt","Woldenburg","Zielenzig","Züllichau","Jüterbog","Magdeburg","Havelberg","Burg","Gardelegen","Genthin","Haldensleben","Kyritz","Oebisfelde","Oschersleben","Pritzwalk","Rathenow","Salzwedel","Schönebeck","Schöningen","Stendal","Tangermünde","Wittenberge","Aue","Chemnitz","Deuben","Dippoldiswalde","Döbeln","Freiberg","Marienberg","Pirna","Rochlitz","Leipzig","Artern","Aschersleben","Bitterfeld","Borna","Merseburg","Naumburg","Querfurt","Sangerhausen","Zittau","Dresden","Torgau","Dahme","Elsterwerda","Falkenberg","Finsterwalde","Grimma","Großenhain","Herzberg","Luckau","Lübben","Meißsen","Oschatz","Radeberg","Riesa","Senftenberg","Wittenberg","Bautzen","Belzig","Cottbus","Forst","Guben","Görlitz","Hoyerswerda","Lauban","Muskau","Penzig","Plauen","Sorau","Spremberg","Weißwasser","Zwickau","Breslau","Glogau","Liegnitz","Guhrau","Militsch","Neumarkt","Oels","Ohlau","Schweidnitz","Steinau","Strehlen","Striegau","Trebnitz","Wohlau","Brieg","Kreuzburg","Lublinitz","Namslau","Rosenberg","Glatz","Neisse","Frankenstein","Grottkau","Habelschwerdt","Reichenbach","Waldenburg","Cosel","Beuthen","Gleiwitz","Groß Strehlitz","Grünberg","Hirschberg","Kattowitz","Löwenberg","Oppeln","Priebus","Ratibor","Rybnik","Sprottau","Tichan","Ziegenhals"],"x":[397,432,497,448,438,511,557,462,396,589,283,546,281,497,326,324,225,250,578,310,331,245,510,595,77,254,152,72,212,451,576,78,289,117,160,145,406,323,381,276,744,323,697,142,235,422,131,184,301,71,95,270,201,318,195,514,384,389,154,75,75,375,145,72,238,147,288,466,136,421,318,78,578,80,549,79,482,290,180,139,382,182,322,69,193,71,483,229,388,193,141,542,74,121,136,606,636,567,425,237,259,408,862,878,961,794,750,896,928,720,776,639,961,644,949,845,709,837,703,642,784,893,378,549,429,956,936,947,834,793,533,590,578,719,728,625,906,625,848,882,516,845,759,634,959,949,813,860,873,932,807,705,703,912,704,724,939,931,912,877,931,833,908,779,643,613,739,960,766,730,803,854,765,764,709,690,858,861,935,707,795,891,941,907,802,955,596,467,540,637,592,473,559,596,539,633,514,521,382,570,599,647,861,766,813,695,700,903,935,756,801,878,831,730,713,769,2051,2138,2019,2074,1543,1568,2134,1963,2043,1438,1909,1481,1931,2144,2060,1917,1410,1375,1923,1568,1531,2134,2092,1566,1458,1566,1500,2107,1532,1957,1562,1627,1641,1638,1855,1792,1760,1786,1700,2347,1792,1733,2416,1858,1842,1846,1696,1756,2307,1858,1277,1661,1619,2253,1675,2323,2261,1851,2194,2209,2233,1618,1758,1661,2407,1856,2186,2421,2367,1622,1811,1631,2293,1789,2281,2235,2006,1452,1483,2133,1916,1553,1568,2112,2122,1565,1950,1353,1979,1939,1530,2088,1341,1384,2007,1930,2017,1433,2072,1570,1567,1481,1568,1481,1491,2074,1485,1406,1924,2000,1989,1963,1922,1282,1786,1854,2395,1678,1728,1696,1849,1783,2188,2240,1686,2379,1764,2411,1621,1797,2320,1625,2302,1796,2247,1861,1853,1623,1664,2383,2279,1677,2237,1834,2226,1718,1692,1415,1343,1344,1367,1428,1435,1357,1335,1073,1207,1100,1146,1255,1276,1149,1194,1218,1274,1157,1379,1331,1184,1161,1276,1171,1127,1276,1223,1215,1203,1083,1500,1487,1053,1129,1174,1255,1041,1046,1123,1228,1226,1052,1108,1090,1045,1258,1378,1428,1422,1444,1267,1044,1047,1059,1041,1092,1049,1223,1252,1207,1169,1118,1183,1259,1095,1096,1050,1115,2144,2380,2417,2239,2197,2296,2385,1844,2234,2406,1859,1859,2218,2192,2316,1812,2267,2318,2353,2366,2335,2093,1938,2138,1997,2005,2020,2041,2068,1979,1918,1911,1945,2430,1445,1336,1562,1552,1477,1561,1490,1514,1337,1561,1555,1499,1413,1340,1418,1395,1390,1450,1361,1393,1450,1646,1062,1652,1730,1691,1168,1762,1219,1758,1712,1636,1666,1711,1770,1617,1671,1145,1790,1742,1816,1405,1175,1215,1226,1158,1275,1119,1277,1060,1103,1241,1291,1086,1197,1044,1201,1231,1148,1336,1351,1469,1494,1407,1414,1414,1556,1336,1276,1092,1121,1281,1281,1212,1185,1151,1094,1729,1510,1352,1452,1444,1409,1502,1336,1513,1406,1496,1550,1453,1354,1564,1400,1551,1334,1641,1288,1623,1681,1694,1728,1616,1782,1680,1779,1269,1760,1619,1687,1286,2075,1925,1923,1988,2122,2041,2134,2137,1994,1992,2082,1930,2066,1990,2190,2259,2336,2205,2287,2036,2131,2069,2137,2047,2022,1932,2262,2351,2327,2286,1845,1853,2405,1849,2246,1759,2294,2357,1855,2404,2190],"y":[587,528,573,563,705,803,832,641,662,719,474,941,582,909,491,538,479,532,887,647,691,938,1433,1388,993,1067,973,908,1025,1469,1449,1059,894,1086,1043,892,1538,1054,1403,1273,1187,1186,1246,1173,1205,847,1235,1292,1331,1160,1304,1142,1419,1499,588,1078,896,1033,539,1496,1390,957,1500,475,1515,474,1407,990,1387,957,1580,593,1098,536,1020,731,1156,738,778,686,1142,707,840,840,649,659,1299,781,1331,845,642,1208,791,814,755,1226,1140,1299,1168,663,831,1248,960,1077,979,950,895,1013,943,1007,1071,1493,1061,1437,901,906,942,1028,1087,685,1248,1196,750,642,782,1284,1136,1213,1195,1136,718,667,771,1302,1134,833,1335,644,1144,1261,675,1330,1340,984,545,1441,465,490,575,1397,588,1387,547,594,491,594,391,332,504,1461,1498,1418,440,1390,1072,1038,1476,458,556,722,666,772,775,641,776,847,701,642,644,679,839,838,715,768,718,831,312,446,461,446,232,346,416,535,289,497,327,384,478,501,390,578,191,316,355,346,405,237,171,397,156,295,402,213,174,262,1056,932,892,1465,1268,718,1097,1388,940,1339,950,758,1461,1397,1518,896,802,844,1524,1169,794,1011,1401,1229,841,839,1293,1581,741,1036,1334,1320,841,1156,795,1323,782,1228,1328,924,643,1185,1422,687,1200,748,746,845,1439,1258,1529,716,747,1088,798,1387,940,847,1003,1525,1469,791,687,645,1022,1334,899,1522,1482,680,722,1232,1028,1161,1522,1046,1327,1047,939,1321,1260,1478,907,782,1249,1423,1210,994,1260,799,1568,1192,898,933,1206,740,1164,958,1330,1032,1089,1003,961,889,1393,834,1093,891,685,844,805,1134,1161,842,1407,1038,1234,1043,1390,908,1568,1089,790,1332,1479,1168,1596,1326,1520,1468,1310,1001,848,980,1196,1408,1092,947,1393,843,1137,1573,832,906,1268,1087,961,1190,1138,1236,1307,1270,1140,1184,1340,1393,1045,1473,1095,1425,1040,1383,959,1470,926,1452,1086,1421,1331,1198,1260,1137,1312,1187,1294,1169,1246,1257,1177,1223,924,951,429,406,996,1473,898,435,884,1039,1536,447,1091,973,1508,1498,1440,1540,648,710,1303,847,1182,1156,646,694,751,827,698,848,791,1136,724,771,800,654,395,320,496,378,268,285,581,131,469,436,177,237,427,351,430,202,325,354,538,402,479,336,232,286,280,322,213,353,248,175,281,155,331,645,209,259,65,113,349,336,184,152,141,176,273,275,330,75,145,246,188,57,347,71,297,277,398,196,76,237,525,122,506,335,147,141,64,277,276,229,103,396,81,218,311,392,300,119,297,153,282,260,121,250,340,63,214,168,356,320,192,230,104,770,721,653,689,637,693,745,642,646,543,582,484,480,591,556,600,562,527,636,581,486,420,523,492,455,589,528,449,411,393,569,549,591,559,486,417,589,354,426,436,394,585,533,570,479,533,795,430,474,541,729,528,408,502,394,436,471,499,564,588,441,593,571,435,519,591,539,596,536,576,703,685,655,644,757,642,641,733,651,703,674,404,579,725,525,643,474,778,780,456,774,705],"major_roads":[[3,8,19],[],[188,3],[2,0],[122,124,130],[],[18,132],[],[0,122],[130,119,132],[],[74,18],[19,54],[],[],[],[],[],[11,6],[0,12],[],[89,32,28],[29,30],[],[31,27],[28,51],[],[24,83],[21,25],[53,22],[22,113],[33,24],[21,82],[43,31],[],[],[],[],[],[],[],[51,44,80],[133,95],[44,33],[41,43,47],[],[],[44,52],[101,52],[],[],[25,41],[47,64,48],[64,70,29],[12,90],[76,72,74],[],[],[],[],[],[],[],[],[52,53],[],[],[],[],[],[53],[],[55,164],[],[55,11],[],[91,55,98,101],[],[94,89,93],[90,94],[41,98],[],[32,124],[27,93],[],[],[],[],[],[78,21],[54,79],[95,76],[],[83,78],[79,78],[42,91],[],[],[80,76],[],[],[76,48],[115,117],[117,126],[],[],[],[],[],[],[117,134],[],[],[30,151],[],[181,102],[],[102,103,110],[164,134],[9,179],[133,128],[128,127],[8,4],[],[4,82],[139,416],[418,103],[121,418],[129,120,121,139],[134,128],[4,9],[],[6,9],[151,42,120],[110,118,129],[],[],[],[],[128,125],[],[],[],[],[],[],[],[212,148],[147,150],[161,416],[148,173],[113,133],[],[],[],[173,201],[],[],[],[],[],[166,149],[],[],[72,118],[],[161],[],[],[179,173,172],[],[],[169,180],[169,155,150],[],[],[],[],[],[119,169],[172,181],[180,115],[],[],[],[],[200,196],[],[192,2,199],[],[],[197,196],[200,188,197],[201,199],[],[],[191,186],[192,191],[],[193,188],[205,186,192],[155,193],[208,215],[215,204,205],[203,212],[203,200],[],[],[202],[],[],[],[204,147],[],[],[202,203],[327,245,237],[237,282],[],[230,238],[395,247],[],[],[],[],[],[331,245,359],[],[],[],[243,219],[],[],[],[],[],[],[216,217],[219,314],[],[],[],[],[230],[],[216,226],[],[220,254,287],[335,298,263],[287,333],[311,273],[281,254],[],[],[251,247],[],[],[],[],[],[],[],[],[273,248,359],[271],[],[],[],[],[],[],[264,339],[],[250,263],[],[],[],[],[],[],[],[292,251],[217,338],[],[],[532],[],[247,249],[],[],[],[],[314,281,304],[],[298,313],[339,314],[],[],[248,294],[],[],[],[304,328],[],[292,302],[],[],[],[309,329],[313,308],[],[595,250],[],[294,309],[238,295,292],[],[],[],[],[],[],[],[],[],[],[],[],[328,216],[302,327,352],[404,308],[],[352,226],[],[249,362],[],[362,248],[],[],[282,358],[271,295],[],[],[],[],[],[],[],[],[],[],[],[],[328,331],[],[],[],[],[],[338,612],[263,226],[],[],[333,335],[],[],[386,367],[],[365,395],[],[],[],[416,388],[],[],[],[],[],[],[],[],[],[],[],[],[388,390],[392,419],[390,365],[],[371,384],[],[384,392,386],[],[390,385],[],[],[367,220],[],[405,404],[],[],[],[],[],[494,520],[397,329],[408,397],[],[],[419,405],[],[],[],[],[],[],[],[125,149,371],[],[127,126,419],[418,385,408],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[481,482,477,472],[512,481],[469,498],[473,468],[554,486],[],[466,473],[472,469],[514,482],[],[477,487],[466,476],[],[],[],[467,486,466],[466,474],[],[],[],[481,470],[476,495],[516],[491,496],[493,502],[499,489],[],[496,504,490],[537,403],[487,499,606],[489,493],[],[502,468],[495,491],[],[],[490,498],[],[493],[],[],[],[520,516,513,510],[514],[508,512],[],[510,467],[515,508],[509,474],[513],[508,488],[],[],[],[403,508],[],[],[],[],[],[],[],[],[],[],[],[285,544],[],[],[],[],[545,494],[],[],[],[],[],[],[532,557,555],[556,537],[],[],[],[],[],[],[],[],[563,470],[544,558],[558,545],[544,561],[555,556],[],[],[557,566],[],[554],[],[],[561],[],[],[],[],[],[],[],[],[],[583,584,581],[606,585],[],[],[],[585,576],[],[590,576],[576,600],[577,581],[],[],[],[],[610,583],[],[],[],[],[600,311],[],[],[],[],[584,595],[],[612,604],[],[602,605],[604,610],[495,577],[],[],[],[605,590],[],[358,602],[],[],[],[]],"roads":[[7],[15,3,187],[123],[1],[],[45,124,6,130],[5],[140,0],[],[],[16,14],[67,13,143],[99,17,15],[11,45],[10,15,198],[12,14,1],[17,10,65],[54,12,16],[135],[20],[77,19],[],[38,86],[30,42],[26],[37],[24,28,35],[],[34,26],[36],[23],[],[61],[49,34],[33,28],[26,89,93],[70,29],[25,41,61],[66,53,88,22],[48,44,41],[96,42,129],[39,37],[23,40],[46],[39],[13,56,5],[50,47,43,49],[46],[39,88],[46,33],[60,46],[],[62,68,66],[38],[17],[],[82,69,61,45],[80,61,67],[73,90,65],[62,60],[68,59,50],[37,32,57,56],[64,59,52],[65,73],[62],[16,58,63],[52,38],[57,69,11],[52,60],[67,56],[36],[85,73],[96],[71,58,63],[],[92,94,85],[],[81,100,122,20,99],[87],[84,85],[57],[94,77,84],[100,56],[],[81,99,79],[75,79,71],[22,97,88,91],[78,100],[48,38,86],[35],[58],[97,86],[93,75],[35,92],[75,81],[96],[95,40,72],[86,91],[],[77,84,12],[87,82,77],[],[105,108],[107,138],[108,112],[109,102],[175,180,116],[108,103],[102,107,114,104],[164,116,105],[],[113,166],[104,126],[111],[108,185],[],[143,106,109],[],[],[174,137],[],[126],[77],[140,2,193],[5],[127,136],[112,121],[125],[],[138,40],[5,131,140],[130,137],[135],[142],[],[143,18,132,175,174],[125,141,149],[131,119,201],[103,129],[141],[130,123,7],[136,139,142],[141,133,163],[165,11,116,135],[167,153],[160,149],[206,168,147],[146,162,158],[177],[145,136],[168],[],[154,155],[144,177,178],[189,152,168],[152],[157,167,162],[211,156],[147,167],[161,160],[159,145,401],[163,159],[156,147],[142,161],[165,109],[164,143],[111],[156,158,144],[150,154,146],[170],[177,169],[183,172],[184,171,174],[],[135,119,172],[135,106],[184,182,177],[148,153,170,176],[153,182],[],[106],[185],[176,178,183],[182,171,185],[172,176],[114,181,183],[194],[188,1,198],[187],[195,154,192,206],[194],[],[189],[123,195],[186,190],[193,189],[],[],[14,187],[],[],[137],[210,207],[],[209,211],[206],[189,205,209,146],[211,202],[],[206,204],[202,214],[215,207,204,157],[],[214,215],[210,213],[213,211],[222],[224],[224,325],[],[239],[244,268,285],[291,307,216],[351,228,292],[245,218,217],[366,383,242,246],[231,349],[236,232,244],[234,223],[339,238,276],[234],[273,325,226],[531,233,240,227],[232,329,323],[336,230,228],[239,249],[240,227,241,277],[274],[229],[394,220,235],[232,319,236],[236,248],[225,395],[275],[227,221,528],[224],[225,247,320],[246,354],[241,277,270],[316,361,235,257],[261,305],[],[262,263,286],[254,257,289,265],[287,253],[355,272,280],[607,278,543],[249,253],[264,343,284],[286,324],[289,265],[250,286],[270,267,278,252],[252],[276,258],[260,253,281,296,328],[375],[262,285],[277,221],[291,356],[248,262],[343,346],[255,348,274],[231],[272,237,291],[290,276,243],[229,264,275],[248,236,268],[262,286,256],[285,543],[288,255,341],[330,265],[321],[284],[258,283,290],[221,279,267],[252,261,278,259],[254],[291,280],[352,253,260],[284,275],[274,288,269,222],[296,223],[317,382,322],[319,318,317],[300,360],[265,292],[320,301,306],[353],[596,321],[307,295],[297,354],[],[313,376],[310],[250,326],[297,344],[350,222,310,312,300],[380],[323],[304,307],[],[328,307],[303],[],[333,317],[249,322],[315,293,294],[347,294],[240,294],[246,412,297],[325,299,282],[293,316],[233,309],[259,595,601],[326,231,321,218],[305,325,599],[],[265,312],[571,525,233],[334,345,340,351,281],[],[341,350,346,343],[349,347,315],[354,330],[359,349],[342,234],[361,352],[616],[229],[344,330],[280,356,332],[357,336],[332,271,258],[306,357,340],[330],[332,271],[333,353,318],[358,355,272],[226,335,333],[356,332,307,360],[330,223],[337,289],[347,298],[301,334,247],[348,615,255],[269,341,350],[344,342],[348],[335],[295,350],[249,337],[],[395,368,369],[382,369,427],[369],[370,225,367],[366],[382,363],[363,365,364],[375,384,366,386],[377,401],[427,374,378],[401,381,406],[372,408,387],[384,379,266,383,370],[303,382,409,427],[371,384,381],[372,409,397],[381,375],[308,409],[377,373,379],[376,293,364,368],[375,225,410,412],[377,375,370],[393,387],[370,389],[374,391,385],[393],[386,427],[],[427,387],[],[416,418,385,388],[395,239],[242,363,394],[417,402,400],[378,402],[536,403],[520,512,562,537],[396,405],[160,371,373,406],[425,423,397,396],[398],[423,409],[400],[401,373],[488,536],[374],[380,376,378,404],[383],[412,413],[383,411,320],[411],[538,575,421],[428,420],[393],[396,425,430],[393],[],[535,415,431],[540,424,422,414],[571,421],[402,404,571,426],[428,421,431],[417,402],[423,429],[376,372,364,389,391],[429,415,424],[426,430,428],[429,417],[540,424,420],[453,444,580],[437,451],[441,438],[446,448,444,445],[455,437,448],[436,433],[434,465,450],[463,493],[582,452,444],[451,434],[447,463,443],[500,442,454],[435,440,432],[455,435],[452,451,449,435],[505,442],[449,435,436],[446,448],[438,594,452],[433,441,446],[440,450,446],[455,432,457],[443,461,462],[460,436,445,453],[462,460,457],[453,459,456,464],[460,461],[457,579,580],[456,458,455],[463,454,458],[506,454,456],[442,439,461],[457,577],[438,608],[],[562],[497],[483,497],[],[554,487,565],[],[475,480],[479],[501,489,473],[],[486],[484,486,507],[517,474,485],[482,473,485],[482],[518,481,480],[485,469],[562,478,560],[480,479,483],[478,477],[471,501,499],[407],[475,497],[],[505],[542,494],[439],[534,539,492],[],[],[469,468,502,489],[],[487,500],[499,506,443],[487,475],[497],[520,536],[],[491,447],[500,462,606],[478,546,552],[],[522,517],[],[519,522],[523,399],[522],[],[521,519],[521],[509,524,479],[523,482],[515,511,524],[399,503],[516,515],[513,523,511,509],[522,512,518],[517,519],[329,526],[575,533,525,529,530],[544,529,530,528],[244,527],[555,550,527,526],[526,527,531],[530,232],[],[538,526],[556,550,538,539,494],[540,420,541,542],[542,398,503,407],[560,399],[533,414,534],[534,494,540,541],[539,421,431,535],[535,539],[535,492,536],[566,279,256],[527],[548],[553,507],[551,558,548],[547,549,552,545],[559,548,553],[534,529],[557,559,555,547],[507,548,560],[554,549,546],[471,553],[551,529],[534],[567,551],[547],[567,563,551,549],[484,552,537],[567,574],[467,399,484],[564,573,559],[565,563,569],[471,572,564],[570,568,543],[573,559,557,561],[566,607],[564,574,611],[566,609,614],[329,423,422,575],[606,565],[563,567],[561,569],[571,526,414],[582,586,589],[464,614,579],[607,609,589,614],[459,577],[459,432,582,588],[],[593,440,580,576],[],[601,587],[589,588],[576,598,600],[584,607],[585,580],[578,576,585],[593,598],[594,593],[594,603,610],[591,590,582],[450,592,591],[599,324,596],[597,595,299,616,598],[600,596],[590,586,596],[326,595],[586,601,597],[584,607,324,600],[616],[592,604],[613,608,603],[],[506,614,572],[587,578,601,568,256],[604,615,465],[578,570],[592,616],[569,614],[613],[615,612,604],[577,578,606,570,611],[355,613,608],[596,610,602,338]]}}
+if (typeof module === 'object') module.exports = data
diff --git a/tools/layout.svg b/tools/layout.svg
index a0c043e..20c77f0 100644
--- a/tools/layout.svg
+++ b/tools/layout.svg
@@ -40,10 +40,10 @@
inkscape:window-height="480"
id="namedview6"
showgrid="false"
- inkscape:zoom="0.96460962"
- inkscape:cx="1030.3441"
- inkscape:cy="834.95823"
- inkscape:current-layer="svg4"
+ inkscape:zoom="2.9584691"
+ inkscape:cx="719.82834"
+ inkscape:cy="902.87542"
+ inkscape:current-layer="g5174"
inkscape:document-rotation="0"
showguides="false">
<inkscape:grid
@@ -53,17 +53,566 @@
<image
sodipodi:absref="/home/tor/src/rally/public/maria/Maria.Gameboard.150.png"
xlink:href="../Maria.Gameboard.150.png"
- style="display:inline"
- x="0"
- y="0"
- width="2485"
- height="1654"
- image-rendering="pixelated"
+ id="image2"
sodipodi:insensitive="true"
- id="image2" />
+ image-rendering="pixelated"
+ height="1654"
+ width="2485"
+ y="0"
+ x="0"
+ style="display:inline" />
+ <g
+ id="g2467"
+ inkscape:label="major_fortress"
+ style="fill:#ffffff"
+ sodipodi:insensitive="true">
+ <circle
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="circle2422"
+ cx="78.936989"
+ cy="730.62244"
+ r="16" />
+ <circle
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="circle2424"
+ cx="201.31735"
+ cy="1418.5251"
+ r="16" />
+ <circle
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="circle2426"
+ cx="482.35126"
+ cy="1155.5575"
+ r="16" />
+ <circle
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="circle2428"
+ cx="595.6712"
+ cy="312.47647"
+ r="16" />
+ <circle
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="circle2430"
+ cx="861.29175"
+ cy="190.86034"
+ r="16" />
+ <circle
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="circle2432"
+ cx="1175.3353"
+ cy="300.33441"
+ r="16" />
+ <circle
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="circle2434"
+ cx="1445.4271"
+ cy="209.21451"
+ r="16" />
+ <circle
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="circle2436"
+ cx="1509.8654"
+ cy="581.40253"
+ r="16" />
+ <circle
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="circle2438"
+ cx="1640.8955"
+ cy="840.84808"
+ r="16" />
+ <circle
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="circle2440"
+ cx="2050.6885"
+ cy="1055.5642"
+ r="16" />
+ <circle
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="circle2442"
+ cx="2075.1187"
+ cy="528.09021"
+ r="16" />
+ <circle
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="circle2444"
+ cx="2006.139"
+ cy="1327.3361"
+ r="16" />
+ <circle
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="circle2446"
+ cx="1627.3788"
+ cy="1320.0774"
+ r="16" />
+ <circle
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="circle2448"
+ cx="1184.2834"
+ cy="1330.5629"
+ r="16" />
+ <circle
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="circle2450"
+ cx="245.14282"
+ cy="937.73083"
+ r="16" />
+ </g>
+ <g
+ id="g2403"
+ inkscape:label="minor_fortress"
+ sodipodi:insensitive="true">
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2211"
+ width="26"
+ height="26"
+ x="270"
+ y="461" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2213"
+ width="26"
+ height="26"
+ x="268"
+ y="569" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2215"
+ width="26"
+ height="26"
+ x="182"
+ y="575" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2217"
+ width="26"
+ height="26"
+ x="384"
+ y="574" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2219"
+ width="26"
+ height="26"
+ x="277"
+ y="725" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:1.03846"
+ id="rect2221"
+ width="27"
+ height="27"
+ x="166"
+ y="764" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
+ id="rect2223"
+ width="26"
+ height="26"
+ x="64"
+ y="980" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:1.03846"
+ id="rect2225"
+ width="27"
+ height="27"
+ x="375"
+ y="1019" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
+ id="rect2227"
+ width="26"
+ height="26"
+ x="371.01392"
+ y="882.64435" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
+ id="rect2229"
+ width="26"
+ height="26"
+ x="501.0282"
+ y="1065.3435" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
+ id="rect2231"
+ width="26"
+ height="26"
+ x="533.38898"
+ y="927.52374" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
+ id="rect2233"
+ width="26"
+ height="26"
+ x="620.91315"
+ y="971.07019" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
+ id="rect2235"
+ width="26"
+ height="26"
+ x="498.40408"
+ y="789.68854" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
+ id="rect2237"
+ width="26"
+ height="26"
+ x="425.12064"
+ y="692.22241" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
+ id="rect2239"
+ width="26"
+ height="26"
+ x="717.38831"
+ y="708.78241" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
+ id="rect2241"
+ width="26"
+ height="26"
+ x="849.22089"
+ y="947.05914" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
+ id="rect2243"
+ width="26"
+ height="26"
+ x="865.2486"
+ y="1063.5491" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
+ id="rect2245"
+ width="26"
+ height="26"
+ x="731.14117"
+ y="1174.0287" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
+ id="rect2247"
+ width="26"
+ height="26"
+ x="684.0929"
+ y="1232.8259" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
+ id="rect2249"
+ width="26"
+ height="26"
+ x="582.27399"
+ y="1374.7003" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
+ id="rect2251"
+ width="26"
+ height="26"
+ x="497.19083"
+ y="1420.0902" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
+ id="rect2253"
+ width="26"
+ height="26"
+ x="305.03281"
+ y="1486.0468" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
+ id="rect2255"
+ width="26"
+ height="26"
+ x="263.19327"
+ y="1259.7412" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
+ id="rect2257"
+ width="26"
+ height="26"
+ x="310.34464"
+ y="1173.1018" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
+ id="rect2259"
+ width="26"
+ height="26"
+ x="128.80182"
+ y="1159.8348" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2261"
+ width="26"
+ height="26"
+ x="454.17908"
+ y="433.18094" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2263"
+ width="26"
+ height="26"
+ x="527.41046"
+ y="447.88062" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2265"
+ width="26"
+ height="26"
+ x="624.04517"
+ y="433.48523" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2267"
+ width="26"
+ height="26"
+ x="753.31445"
+ y="303.02036" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2269"
+ width="26"
+ height="26"
+ x="1048.9004"
+ y="384.70389" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2271"
+ width="26"
+ height="26"
+ x="1263.3169"
+ y="530.0434" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2273"
+ width="26"
+ height="26"
+ x="1201.8419"
+ y="106.1827" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2275"
+ width="26"
+ height="26"
+ x="1322.778"
+ y="246.24741" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2277"
+ width="26"
+ height="26"
+ x="1549.025"
+ y="52.092632" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2279"
+ width="26"
+ height="26"
+ x="1638.6183"
+ y="182.5576" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2281"
+ width="26"
+ height="26"
+ x="1632.9553"
+ y="263.98206" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2283"
+ width="26"
+ height="26"
+ x="1912.0334"
+ y="394.68832" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2285"
+ width="26"
+ height="26"
+ x="1909.589"
+ y="488.77457" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2287"
+ width="26"
+ height="26"
+ x="2177.282"
+ y="577.66821" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2289"
+ width="26"
+ height="26"
+ x="1628.0166"
+ y="576.09015" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2291"
+ width="26"
+ height="26"
+ x="1339.2861"
+ y="473.21582" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2293"
+ width="26"
+ height="26"
+ x="1268.5806"
+ y="828.63672" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2295"
+ width="26"
+ height="26"
+ x="1365.8672"
+ y="1073.4138" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2297"
+ width="26"
+ height="26"
+ x="1438.8331"
+ y="1033.9116" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2299"
+ width="26"
+ height="26"
+ x="1470.244"
+ y="926.052" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2301"
+ width="26"
+ height="26"
+ x="1664.891"
+ y="1029.7375" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2303"
+ width="26"
+ height="26"
+ x="1841.1085"
+ y="1024.7279" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2305"
+ width="26"
+ height="26"
+ x="1747.2759"
+ y="768.98206" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2307"
+ width="26"
+ height="26"
+ x="1841.9778"
+ y="781.73883" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2309"
+ width="26"
+ height="26"
+ x="2022.9529"
+ y="689.95984" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2311"
+ width="26"
+ height="26"
+ x="2117.7231"
+ y="672.01459" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2313"
+ width="26"
+ height="26"
+ x="2248.9602"
+ y="720.04028" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2315"
+ width="26"
+ height="26"
+ x="2124.9131"
+ y="918.68433" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2317"
+ width="26"
+ height="26"
+ x="2005.8229"
+ y="878.57733" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2319"
+ width="26"
+ height="26"
+ x="1148.3192"
+ y="1185.2131" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2321"
+ width="26"
+ height="26"
+ x="1263.027"
+ y="1246.7566" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2323"
+ width="26"
+ height="26"
+ x="1059.7507"
+ y="1379.9696" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2325"
+ width="26"
+ height="26"
+ x="1625.4631"
+ y="1142.5958" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2327"
+ width="26"
+ height="26"
+ x="1773.0425"
+ y="1214.9004" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2329"
+ width="26"
+ height="26"
+ x="1779.3464"
+ y="1310.1035" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2331"
+ width="26"
+ height="26"
+ x="1773.1526"
+ y="1394.2606" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2333"
+ width="26"
+ height="26"
+ x="2061.053"
+ y="1451.6844" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2335"
+ width="26"
+ height="26"
+ x="2119.8042"
+ y="1308.219" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
+ id="rect2337"
+ width="26"
+ height="26"
+ x="2382.0105"
+ y="1220.9221" />
+ </g>
<g
id="g1382"
- inkscape:label="dots"
+ inkscape:label="city"
sodipodi:insensitive="true">
<circle
style="fill:#ff2f2f;fill-opacity:0.54878;stroke:none;stroke-opacity:1"
@@ -3477,557 +4026,8 @@
r="7" />
</g>
<g
- id="g2403"
- inkscape:label="squares"
- sodipodi:insensitive="true">
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2211"
- width="26"
- height="26"
- x="270"
- y="461" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2213"
- width="26"
- height="26"
- x="268"
- y="569" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2215"
- width="26"
- height="26"
- x="182"
- y="575" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2217"
- width="26"
- height="26"
- x="384"
- y="574" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2219"
- width="26"
- height="26"
- x="277"
- y="725" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:1.03846"
- id="rect2221"
- width="27"
- height="27"
- x="166"
- y="764" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
- id="rect2223"
- width="26"
- height="26"
- x="64"
- y="980" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:1.03846"
- id="rect2225"
- width="27"
- height="27"
- x="375"
- y="1019" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
- id="rect2227"
- width="26"
- height="26"
- x="371.01392"
- y="882.64435" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
- id="rect2229"
- width="26"
- height="26"
- x="501.0282"
- y="1065.3435" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
- id="rect2231"
- width="26"
- height="26"
- x="533.38898"
- y="927.52374" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
- id="rect2233"
- width="26"
- height="26"
- x="620.91315"
- y="971.07019" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
- id="rect2235"
- width="26"
- height="26"
- x="498.40408"
- y="789.68854" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
- id="rect2237"
- width="26"
- height="26"
- x="425.12064"
- y="692.22241" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
- id="rect2239"
- width="26"
- height="26"
- x="717.38831"
- y="708.78241" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
- id="rect2241"
- width="26"
- height="26"
- x="849.22089"
- y="947.05914" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
- id="rect2243"
- width="26"
- height="26"
- x="865.2486"
- y="1063.5491" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
- id="rect2245"
- width="26"
- height="26"
- x="731.14117"
- y="1174.0287" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
- id="rect2247"
- width="26"
- height="26"
- x="684.0929"
- y="1232.8259" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
- id="rect2249"
- width="26"
- height="26"
- x="582.27399"
- y="1374.7003" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
- id="rect2251"
- width="26"
- height="26"
- x="497.19083"
- y="1420.0902" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
- id="rect2253"
- width="26"
- height="26"
- x="305.03281"
- y="1486.0468" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
- id="rect2255"
- width="26"
- height="26"
- x="263.19327"
- y="1259.7412" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
- id="rect2257"
- width="26"
- height="26"
- x="310.34464"
- y="1173.1018" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none;stroke-width:0.999999"
- id="rect2259"
- width="26"
- height="26"
- x="128.80182"
- y="1159.8348" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2261"
- width="26"
- height="26"
- x="454.17908"
- y="433.18094" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2263"
- width="26"
- height="26"
- x="527.41046"
- y="447.88062" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2265"
- width="26"
- height="26"
- x="624.04517"
- y="433.48523" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2267"
- width="26"
- height="26"
- x="753.31445"
- y="303.02036" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2269"
- width="26"
- height="26"
- x="1048.9004"
- y="384.70389" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2271"
- width="26"
- height="26"
- x="1263.3169"
- y="530.0434" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2273"
- width="26"
- height="26"
- x="1201.8419"
- y="106.1827" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2275"
- width="26"
- height="26"
- x="1322.778"
- y="246.24741" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2277"
- width="26"
- height="26"
- x="1549.025"
- y="52.092632" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2279"
- width="26"
- height="26"
- x="1638.6183"
- y="182.5576" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2281"
- width="26"
- height="26"
- x="1632.9553"
- y="263.98206" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2283"
- width="26"
- height="26"
- x="1912.0334"
- y="394.68832" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2285"
- width="26"
- height="26"
- x="1909.589"
- y="488.77457" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2287"
- width="26"
- height="26"
- x="2177.282"
- y="577.66821" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2289"
- width="26"
- height="26"
- x="1628.0166"
- y="576.09015" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2291"
- width="26"
- height="26"
- x="1339.2861"
- y="473.21582" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2293"
- width="26"
- height="26"
- x="1268.5806"
- y="828.63672" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2295"
- width="26"
- height="26"
- x="1365.8672"
- y="1073.4138" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2297"
- width="26"
- height="26"
- x="1438.8331"
- y="1033.9116" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2299"
- width="26"
- height="26"
- x="1470.244"
- y="926.052" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2301"
- width="26"
- height="26"
- x="1664.891"
- y="1029.7375" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2303"
- width="26"
- height="26"
- x="1841.1085"
- y="1024.7279" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2305"
- width="26"
- height="26"
- x="1747.2759"
- y="768.98206" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2307"
- width="26"
- height="26"
- x="1841.9778"
- y="781.73883" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2309"
- width="26"
- height="26"
- x="2022.9529"
- y="689.95984" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2311"
- width="26"
- height="26"
- x="2117.7231"
- y="672.01459" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2313"
- width="26"
- height="26"
- x="2248.9602"
- y="720.04028" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2315"
- width="26"
- height="26"
- x="2124.9131"
- y="918.68433" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2317"
- width="26"
- height="26"
- x="2005.8229"
- y="878.57733" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2319"
- width="26"
- height="26"
- x="1148.3192"
- y="1185.2131" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2321"
- width="26"
- height="26"
- x="1263.027"
- y="1246.7566" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2323"
- width="26"
- height="26"
- x="1059.7507"
- y="1379.9696" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2325"
- width="26"
- height="26"
- x="1625.4631"
- y="1142.5958" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2327"
- width="26"
- height="26"
- x="1773.0425"
- y="1214.9004" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2329"
- width="26"
- height="26"
- x="1779.3464"
- y="1310.1035" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2331"
- width="26"
- height="26"
- x="1773.1526"
- y="1394.2606" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2333"
- width="26"
- height="26"
- x="2061.053"
- y="1451.6844" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2335"
- width="26"
- height="26"
- x="2119.8042"
- y="1308.219" />
- <rect
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="rect2337"
- width="26"
- height="26"
- x="2382.0105"
- y="1220.9221" />
- </g>
- <g
- id="g2467"
- inkscape:label="stars"
- style="fill:#ffffff"
- sodipodi:insensitive="true">
- <circle
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="circle2422"
- cx="78.936989"
- cy="730.62244"
- r="16" />
- <circle
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="circle2424"
- cx="201.31735"
- cy="1418.5251"
- r="16" />
- <circle
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="circle2426"
- cx="482.35126"
- cy="1155.5575"
- r="16" />
- <circle
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="circle2428"
- cx="595.6712"
- cy="312.47647"
- r="16" />
- <circle
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="circle2430"
- cx="861.29175"
- cy="190.86034"
- r="16" />
- <circle
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="circle2432"
- cx="1175.3353"
- cy="300.33441"
- r="16" />
- <circle
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="circle2434"
- cx="1445.4271"
- cy="209.21451"
- r="16" />
- <circle
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="circle2436"
- cx="1509.8654"
- cy="581.40253"
- r="16" />
- <circle
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="circle2438"
- cx="1640.8955"
- cy="840.84808"
- r="16" />
- <circle
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="circle2440"
- cx="2050.6885"
- cy="1055.5642"
- r="16" />
- <circle
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="circle2442"
- cx="2075.1187"
- cy="528.09021"
- r="16" />
- <circle
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="circle2444"
- cx="2006.139"
- cy="1327.3361"
- r="16" />
- <circle
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="circle2446"
- cx="1627.3788"
- cy="1320.0774"
- r="16" />
- <circle
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="circle2448"
- cx="1184.2834"
- cy="1330.5629"
- r="16" />
- <circle
- style="fill:#ffffff;fill-opacity:0.809893;stroke:none"
- id="circle2450"
- cx="245.14282"
- cy="937.73083"
- r="16" />
- </g>
- <g
id="g3273"
- inkscape:label="major roads"
+ inkscape:label="major_road"
sodipodi:insensitive="true">
<path
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
@@ -5043,7 +5043,7 @@
</g>
<g
id="g5326"
- inkscape:label="roads"
+ inkscape:label="road"
sodipodi:insensitive="true">
<path
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#e5e5e5;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
@@ -7793,7 +7793,7 @@
<g
id="g5174"
inkscape:label="names"
- sodipodi:insensitive="true">
+ style="display:inline">
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none"
@@ -13367,9 +13367,9 @@
y="987.9718"
id="text3699"><tspan
sodipodi:role="line"
- id="tspan3697"
x="636.53473"
- y="987.9718">Trietr</tspan></text>
+ y="987.9718"
+ id="tspan3040">Trier</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8px;line-height:1.25;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
@@ -14035,7 +14035,7 @@
<g
id="g2869"
inkscape:label="$HEARTS"
- style="fill:#ff2a2a">
+ style="display:none;fill:#ff2a2a">
<rect
style="fill:#ff2a2a;fill-opacity:0.54878"
id="rect2836"
@@ -14116,7 +14116,8 @@
</g>
<g
id="g2974"
- inkscape:label="$DIAMONDS">
+ inkscape:label="$DIAMONDS"
+ style="display:none">
<rect
style="fill:#ffff00;fill-opacity:0.54878"
id="rect2938"
@@ -14205,7 +14206,8 @@
</g>
<g
id="g2904"
- inkscape:label="$SPADES">
+ inkscape:label="$SPADES"
+ style="display:none">
<rect
style="fill:#000080;fill-opacity:0.54878"
id="rect2871"
@@ -14286,7 +14288,8 @@
</g>
<g
id="g2936"
- inkscape:label="$CLUBS">
+ inkscape:label="$CLUBS"
+ style="display:none">
<rect
style="fill:#008000;fill-opacity:0.54878"
id="rect2906"
@@ -14361,7 +14364,7 @@
<g
id="g2897"
inkscape:label="$France"
- style="display:inline">
+ style="display:none">
<rect
style="fill:#ff2f2f;fill-opacity:0.54878"
id="rect2870"
@@ -14428,8 +14431,8 @@
</g>
<g
id="g3734"
- inkscape:label="$Nederland"
- style="display:inline">
+ inkscape:label="$Netherlands"
+ style="display:none">
<rect
style="fill:#808080;fill-opacity:0.54878"
id="rect2899"
@@ -14461,8 +14464,8 @@
</g>
<g
id="g3754"
- inkscape:label="$Preussen"
- style="display:inline">
+ inkscape:label="$Prussia"
+ style="display:none">
<rect
style="fill:#0000ff;fill-opacity:0.54878"
id="rect3736"
@@ -14508,8 +14511,8 @@
</g>
<g
id="g3777"
- inkscape:label="$Polska"
- style="display:inline">
+ inkscape:label="$Poland"
+ style="display:none">
<rect
style="fill:#ffff00;fill-opacity:0.54878"
id="rect3756"
@@ -14562,15 +14565,8 @@
</g>
<g
id="g3800"
- inkscape:label="$Schlesien"
- style="display:inline">
- <rect
- style="fill:#808000;fill-opacity:0.54878"
- id="rect3779"
- width="275.84698"
- height="276.13602"
- x="1829.4836"
- y="385.8418" />
+ inkscape:label="$Silesia"
+ style="display:none">
<rect
style="fill:#808000;fill-opacity:0.54878"
id="rect3781"
@@ -14613,11 +14609,18 @@
height="47.593063"
x="1732.1372"
y="450.37595" />
+ <rect
+ style="fill:#808000;fill-opacity:0.54878;stroke-width:1.90983"
+ id="rect2967"
+ width="294.16193"
+ height="293.64902"
+ x="1823.5614"
+ y="378.36554" />
</g>
<g
id="g3847"
- inkscape:label="$Sachsen"
- style="display:inline">
+ inkscape:label="$Saxony"
+ style="display:none">
<rect
style="fill:#008000;fill-opacity:0.54878"
id="rect3802"
@@ -14726,8 +14729,8 @@
</g>
<g
id="g3872"
- inkscape:label="$Bayern"
- style="display:inline">
+ inkscape:label="$Bavaria"
+ style="display:none">
<rect
style="fill:#ff6600;fill-opacity:0.54878"
id="rect3849"
@@ -14780,8 +14783,8 @@
</g>
<g
id="g3912"
- inkscape:label="$Austria.East"
- style="display:inline">
+ inkscape:label="$Austria_E"
+ style="display:none">
<rect
style="fill:#ffffff;fill-opacity:0.54878"
id="rect3937"
@@ -14873,18 +14876,25 @@
height="65.829742"
x="1975.6816"
y="770.68939" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.54878"
+ id="rect2971"
+ width="55.772087"
+ height="44.279659"
+ x="1258.4211"
+ y="821.7088" />
</g>
<g
id="g3931"
- inkscape:label="$Austria.West"
+ inkscape:label="$Austria_W"
style="display:none">
<rect
style="fill:#ffffff;fill-opacity:0.54878"
id="rect3914"
- width="135.73157"
- height="117.65475"
- x="462.2421"
- y="813.98218" />
+ width="149.80991"
+ height="173.32671"
+ x="457.45102"
+ y="783.26971" />
<rect
style="fill:#ffffff;fill-opacity:0.54878"
id="rect3918"
@@ -14913,10 +14923,32 @@
height="108.76128"
x="255.17949"
y="554.64777" />
+ <rect
+ style="fill:#ffffff;fill-opacity:0.54878"
+ id="rect2973"
+ width="38.871456"
+ height="29.069088"
+ x="578.33966"
+ y="707.1225" />
</g>
<g
id="g3974"
- inkscape:label="$HRR.East">
+ inkscape:label="$HRE_E"
+ style="display:none">
+ <rect
+ style="fill:#ffff00;fill-opacity:0.54878"
+ id="rect2963"
+ width="66.250481"
+ height="45.63171"
+ x="1224.9579"
+ y="1104.2874" />
+ <rect
+ style="fill:#ffff00;fill-opacity:0.54878"
+ id="rect2961"
+ width="54.999489"
+ height="42.070503"
+ x="1235.2311"
+ y="952.84564" />
<rect
style="fill:#ffff00;fill-opacity:0.54878"
id="rect3933"
@@ -15004,9 +15036,9 @@
</g>
<g
id="g4011"
- inkscape:label="$HRR.West"
- inkscape:groupmode="layer"
- sodipodi:insensitive="true">
+ inkscape:label="$HRE_W"
+ sodipodi:insensitive="true"
+ style="display:none">
<rect
style="fill:#ffff00;fill-opacity:0.54878"
id="rect3976"
diff --git a/tools/names.txt b/tools/names.txt
index a008331..22aa225 100644
--- a/tools/names.txt
+++ b/tools/names.txt
@@ -2222,7 +2222,7 @@
<tspan x="579.256" y="887.654">Wiltz</tspan>
</text>
<text xml:space="preserve" x="636.535" y="987.972" style="font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:8px;line-height:1.25;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000;stop-opacity:1">
-<tspan x="636.535" y="987.972">Trietr</tspan>
+<tspan x="636.535" y="987.972">Trier</tspan>
</text>
<text xml:space="preserve" x="614.853" y="1036.836" style="font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:8px;line-height:1.25;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000;stop-opacity:1">
<tspan x="614.853" y="1036.836">Saarlouis</tspan>
diff --git a/tools/parse-layout.js b/tools/parse-layout.js
index 5219705..e3a76fd 100644
--- a/tools/parse-layout.js
+++ b/tools/parse-layout.js
@@ -2,7 +2,7 @@ const fs = require("fs")
let points = {}
let rects = {}
-let edges = []
+let edges = {}
let mode, name, x, y, w, h, cx, cy, rx, ry, x2, y2
function add_point(x, y) {
@@ -19,9 +19,16 @@ function add_rect(x, y, w, h) {
rects[name] = [ [x,y,x+w,y+h] ]
}
+function add_edge(x1, y1, x2, y2) {
+ if (name in edges)
+ edges[name].push({x1,y1,x2,y2})
+ else
+ edges[name] = [ {x1,y1,x2,y2} ]
+}
+
function flush() {
if (mode === 'path') {
- edges.push([ x, y, x2, y2 ])
+ add_edge(x, y, x2, y2)
}
if (mode === 'rect') {
if (name.startsWith("$"))
@@ -180,6 +187,21 @@ function find_closest_node(list, x, y) {
return [ nn, nd ]
}
+function find_closest_city(x, y) {
+ let nd = Infinity, nn = -1
+
+ for (let i = 0; i < cities.length; ++i) {
+ let n = cities[i]
+ let d = Math.hypot(n.x - x, n.y - y)
+ if (d < nd) {
+ nd = d
+ nn = i
+ }
+ }
+
+ return nn
+}
+
function find_enclosing_rect(list, x, y) {
for (let [x1, y1, x2, y2] of list) {
if (x >= x1 && x <= x2)
@@ -189,36 +211,225 @@ function find_enclosing_rect(list, x, y) {
return false
}
+const FLANDERS = "Flanders"
+const BOHEMIA = "Bohemia"
+
+const CLUBS = "clubs"
+const HEARTS = "hearts"
+const SPADES = "spades"
+const DIAMONDS = "diamonds"
+
+const FRANCE = "France"
+const BAVARIA = "Bavaria"
+const PRUSSIA = "Prussia"
+const SAXONY = "Saxony"
+const AUSTRIA = "Austria"
+const AUSTRIAN_NETHERLANDS = "Austrian Netherlands"
+const HRE = "Holy Roman Empire"
+const NETHERLANDS = "Netherlands"
+const SILESIA = "Silesia"
+const POLAND = "Poland"
+
+const PRAGMATIC_ARMY = "Pragmatic Army"
+
// FIND and label all points!
let all_labels = labels.slice()
-let out = {}
+let cities = []
for (let key in points) {
- out = {}
for (let [x, y] of points[key]) {
let [ node, dist ] = find_closest_node(labels, x, y)
if (dist > 10) {
console.log(key,x,y, dist)
}
if (node) {
- if (node.name in out)
- console.log("DUPLICATE", node.name, x, y, out[node.name])
labels = labels.filter(x => x !== node)
let suit = "UNKNOWN"
+
if (find_enclosing_rect(rects.$CLUBS, x, y))
- suit = "clubs"
+ suit = CLUBS
else if (find_enclosing_rect(rects.$HEARTS, x, y))
- suit = "hearts"
+ suit = HEARTS
else if (find_enclosing_rect(rects.$DIAMONDS, x, y))
- suit = "diamonds"
+ suit = DIAMONDS
else if (find_enclosing_rect(rects.$SPADES, x, y))
- suit = "spades"
+ suit = SPADES
else
console.log("NOT ASSIGNED SUIT", x, y)
- out[node.name] = [x, y, dist, suit]
+
+ let map = "UNKNOWN"
+ let country = "UNKNOWN"
+ if (find_enclosing_rect(rects.$HRE_W, x, y)) {
+ map = FLANDERS
+ country = HRE
+ }
+ else if (find_enclosing_rect(rects.$HRE_E, x, y)) {
+ map = BOHEMIA
+ country = HRE
+ }
+ else if (find_enclosing_rect(rects.$Austria_W, x, y)) {
+ map = FLANDERS
+ country = AUSTRIA
+ }
+ else if (find_enclosing_rect(rects.$Austria_E, x, y)) {
+ map = BOHEMIA
+ country = AUSTRIA
+ }
+ else if (find_enclosing_rect(rects.$Bavaria, x, y)) {
+ map = BOHEMIA
+ country = BAVARIA
+ }
+ else if (find_enclosing_rect(rects.$Saxony, x, y)) {
+ map = BOHEMIA
+ country = SAXONY
+ }
+ else if (find_enclosing_rect(rects.$Silesia, x, y)) {
+ map = BOHEMIA
+ country = SILESIA
+ }
+ else if (find_enclosing_rect(rects.$Poland, x, y)) {
+ map = BOHEMIA
+ country = POLAND
+ }
+ else if (find_enclosing_rect(rects.$Prussia, x, y)) {
+ map = BOHEMIA
+ country = PRUSSIA
+ }
+ else if (find_enclosing_rect(rects.$Netherlands, x, y)) {
+ map = FLANDERS
+ country = NETHERLANDS
+ }
+ else if (find_enclosing_rect(rects.$France, x, y)) {
+ map = FLANDERS
+ country = FRANCE
+ }
+
+ if (country === "UNKNOWN")
+ console.log("no country:", node)
+
+ cities.push({
+ name: node.name,
+ map,
+ country,
+ suit,
+ type: key,
+ x: Math.round(x),
+ y: Math.round(y),
+ major_roads: [],
+ roads: [],
+ })
} else {
let [ dupname, dupdist ] = find_closest_node(all_labels, x, y)
- console.log("ALREADY USED", dupname, dupdist, x, y, "OLD", out[dupname])
+ console.log("ALREADY USED", dupname, dupdist, x, y)
}
}
}
+cities.sort((a,b) => {
+ if (a.map < b.map) return 1
+ if (a.map > b.map) return -1
+ if (a.country < b.country) return -1
+ if (a.country > b.country) return 1
+ if (a.suit < b.suit) return -1
+ if (a.suit > b.suit) return 1
+ if (a.type === "major_fortress" && b.type !== "major_fortress") return -1
+ if (a.type !== "major_fortress" && b.type === "major_fortress") return 1
+ if (a.type === "minor_fortress" && b.type !== "minor_fortress") return -1
+ if (a.type !== "minor_fortress" && b.type === "minor_fortress") return 1
+ if (a.name < b.name) return -1
+ if (a.name > b.name) return 1
+ return b.y - a.y
+})
+
+for (let e of edges.major_road) {
+ let a = find_closest_city(e.x1, e.y1)
+ let b = find_closest_city(e.x2, e.y2)
+ cities[a].major_roads.push(b)
+ cities[b].major_roads.push(a)
+}
+
+for (let e of edges.road) {
+ let a = find_closest_city(e.x1, e.y1)
+ let b = find_closest_city(e.x2, e.y2)
+ cities[a].roads.push(b)
+ cities[b].roads.push(a)
+}
+
+let arrays = {
+ name: [],
+ // map: [],
+ // country: [],
+ // suit: [],
+ // type: [],
+ x: [],
+ y: [],
+ major_roads: [],
+ roads: [],
+}
+
+let sets = {
+ type: {
+ major_fortress: [],
+ minor_fortress: [],
+ city: [],
+ },
+ suit: {
+ clubs: [],
+ diamonds: [],
+ hearts: [],
+ spades: [],
+ },
+ map: {
+ Flanders: [],
+ Bohemia: [],
+ },
+ country: {
+ Austria: [],
+ Bavaria: [],
+ France: [],
+ Netherlands: [],
+ Poland: [],
+ Prussia: [],
+ Saxony: [],
+ Silesia: [],
+ "Holy Roman Empire": [],
+ },
+}
+
+for (let i = 0; i < cities.length; ++i) {
+ let city = cities[i]
+ for (let key in city) {
+ if (arrays[key])
+ arrays[key].push(city[key])
+ if (sets[key])
+ sets[key][city[key]].push(i)
+ }
+}
+
+function map_to_range(x) {
+ let pairs = []
+ let a = 0, b = 1
+ for (; b < x.length; ++b) {
+ if (x[b-1] + 1 === x[b])
+ continue
+ pairs.push([x[a],x[b-1]])
+ a = b
+ }
+ pairs.push([x[a],x[b-1]])
+ return pairs
+}
+
+function remap_to_range(obj) {
+ for (let key in obj)
+ obj[key] = map_to_range(obj[key])
+}
+
+remap_to_range(sets.map)
+remap_to_range(sets.suit)
+remap_to_range(sets.country)
+
+delete sets.type.city
+
+sets.cities = arrays
+
+console.log("const data = " + JSON.stringify(sets))
+console.log("if (typeof module === 'object') module.exports = data")