--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<worldmap>
+<div id="pwcave4" x-posx="327" x-posy="89" x-width="30" x-height="30" x-outside="0">pwcave4</div>
+<div id="waytobrimhaven2" x-posx="342" x-posy="235" x-width="30" x-height="30" x-outside="1">waytobrimhaven2</div>
+<div id="waytobrimhaven3" x-posx="373" x-posy="237" x-width="30" x-height="30" x-outside="1">waytobrimhaven3</div>
+<div id="waytobrimhaven0" x-posx="277" x-posy="249" x-width="33" x-height="16" x-outside="1">waytobrimhaven0</div>
+<div id="waytobrimhaven1" x-posx="311" x-posy="245" x-width="30" x-height="20" x-outside="1">waytobrimhaven1</div>
+<div id="roadtocarntower1" x-posx="125" x-posy="298" x-width="30" x-height="20" x-outside="1">roadtocarntower1</div>
+<div id="roadtocarntower0" x-posx="156" x-posy="298" x-width="30" x-height="20" x-outside="1">roadtocarntower0</div>
+<div id="woodsettlement0" x-posx="210" x-posy="365" x-width="29" x-height="14" x-outside="1">woodsettlement0</div>
+<div id="fallhaven_arcir_basement" x-posx="228" x-posy="397" x-width="12" x-height="9" x-outside="0">fallhaven_arcir_basement</div>
+<div id="roadtocarntower2" x-posx="94" x-posy="298" x-width="30" x-height="26" x-outside="1">roadtocarntower2</div>
+<div id="lodarcave7" x-posx="381" x-posy="410" x-width="15" x-height="20" x-outside="0">lodarcave7</div>
+<div id="lodarcave5" x-posx="356" x-posy="377" x-width="25" x-height="20" x-outside="0">lodarcave5</div>
+<div id="lodarcave6" x-posx="360" x-posy="398" x-width="20" x-height="23" x-outside="0">lodarcave6</div>
+<div id="lodarcave3" x-posx="331" x-posy="325" x-width="30" x-height="30" x-outside="0">lodarcave3</div>
+<div id="lodarcave4" x-posx="343" x-posy="356" x-width="25" x-height="20" x-outside="0">lodarcave4</div>
+<div id="lodarcave1" x-posx="317" x-posy="273" x-width="18" x-height="30" x-outside="0">lodarcave1</div>
+<div id="lodarcave2" x-posx="327" x-posy="304" x-width="15" x-height="20" x-outside="0">lodarcave2</div>
+<div id="fields9" x-posx="125" x-posy="282" x-width="30" x-height="15" x-outside="1">fields9</div>
+<div id="lodarcave0" x-posx="313" x-posy="272" x-width="20" x-height="15" x-outside="0">lodarcave0</div>
+<div id="waterway9" x-posx="559" x-posy="218" x-width="30" x-height="30" x-outside="1">waterway9</div>
+<div id="fields6" x-posx="187" x-posy="222" x-width="30" x-height="28" x-outside="1">fields6</div>
+<div id="waterway8" x-posx="528" x-posy="218" x-width="30" x-height="30" x-outside="1">waterway8</div>
+<div id="fields5" x-posx="156" x-posy="220" x-width="30" x-height="30" x-outside="1">fields5</div>
+<div id="fields8" x-posx="156" x-posy="282" x-width="30" x-height="15" x-outside="1">fields8</div>
+<div id="crossglen_cave" x-posx="172" x-posy="335" x-width="20" x-height="20" x-outside="0">crossglen_cave</div>
+<div id="fields7" x-posx="218" x-posy="226" x-width="27" x-height="24" x-outside="1">fields7</div>
+<div id="fields2" x-posx="156" x-posy="251" x-width="30" x-height="30" x-outside="1">fields2</div>
+<div id="fields1" x-posx="187" x-posy="251" x-width="30" x-height="30" x-outside="1">fields1</div>
+<div id="fields4" x-posx="218" x-posy="251" x-width="27" x-height="24" x-outside="1">fields4</div>
+<div id="fields3" x-posx="135" x-posy="261" x-width="20" x-height="20" x-outside="1">fields3</div>
+<div id="fields0" x-posx="187" x-posy="282" x-width="30" x-height="15" x-outside="1">fields0</div>
+<div id="wild14_clearing" x-posx="326" x-posy="423" x-width="15" x-height="15" x-outside="1">wild14_clearing</div>
+<div id="blackwater_mountain7" x-posx="34" x-posy="368" x-width="30" x-height="30" x-outside="0">blackwater_mountain7</div>
+<div id="lodarhouse1" x-posx="395" x-posy="403" x-width="20" x-height="16" x-outside="0">lodarhouse1</div>
+<div id="blackwater_mountain6" x-posx="31" x-posy="384" x-width="10" x-height="10" x-outside="0">blackwater_mountain6</div>
+<div id="lodarhouse0" x-posx="387" x-posy="412" x-width="26" x-height="20" x-outside="0">lodarhouse0</div>
+<div id="blackwater_mountain5" x-posx="22" x-posy="389" x-width="15" x-height="15" x-outside="0">blackwater_mountain5</div>
+<div id="mountainlake10a" x-posx="703" x-posy="31" x-width="25" x-height="20" x-outside="1">mountainlake10a</div>
+<div id="blackwater_mountain4" x-posx="22" x-posy="401" x-width="15" x-height="15" x-outside="1">blackwater_mountain4</div>
+<div id="blackwater_mountain9" x-posx="42" x-posy="350" x-width="17" x-height="23" x-outside="0">blackwater_mountain9</div>
+<div id="blackwater_mountain8" x-posx="47" x-posy="378" x-width="20" x-height="20" x-outside="0">blackwater_mountain8</div>
+<div id="crossglen_farmhouse" x-posx="160" x-posy="364" x-width="10" x-height="8" x-outside="0">crossglen_farmhouse</div>
+<div id="fallhaven_storage" x-posx="248" x-posy="407" x-width="15" x-height="10" x-outside="0">fallhaven_storage</div>
+<div id="pwcave2" x-posx="296" x-posy="58" x-width="30" x-height="30" x-outside="0">pwcave2</div>
+<div id="pwcave3" x-posx="327" x-posy="58" x-width="30" x-height="30" x-outside="0">pwcave3</div>
+<div id="pwcave0" x-posx="316" x-posy="120" x-width="11" x-height="30" x-outside="0">pwcave0</div>
+<div id="pwcave1" x-posx="296" x-posy="89" x-width="30" x-height="30" x-outside="0">pwcave1</div>
+<div id="wild16_cave" x-posx="92" x-posy="454" x-width="20" x-height="15" x-outside="0">wild16_cave</div>
+<div id="lodarcave4a" x-posx="369" x-posy="358" x-width="20" x-height="20" x-outside="0">lodarcave4a</div>
+<div id="wild3" x-posx="181" x-posy="384" x-width="20" x-height="20" x-outside="1">wild3</div>
+<div id="wild2" x-posx="160" x-posy="384" x-width="20" x-height="20" x-outside="1">wild2</div>
+<div id="wild5" x-posx="167" x-posy="405" x-width="20" x-height="20" x-outside="1">wild5</div>
+<div id="wild4" x-posx="209" x-posy="349" x-width="20" x-height="15" x-outside="1">wild4</div>
+<div id="wild7" x-posx="155" x-posy="457" x-width="20" x-height="20" x-outside="1">wild7</div>
+<div id="wild6" x-posx="163" x-posy="426" x-width="30" x-height="30" x-outside="1">wild6</div>
+<div id="remgard_weapon" x-posx="621" x-posy="92" x-width="12" x-height="8" x-outside="0">remgard_weapon</div>
+<div id="wild9" x-posx="194" x-posy="440" x-width="30" x-height="15" x-outside="1">wild9</div>
+<div id="clearing_level2" x-posx="251" x-posy="463" x-width="15" x-height="15" x-outside="0">clearing_level2</div>
+<div id="wild8" x-posx="134" x-posy="466" x-width="20" x-height="15" x-outside="1">wild8</div>
+<div id="clearing_level1" x-posx="244" x-posy="461" x-width="20" x-height="16" x-outside="0">clearing_level1</div>
+<div id="blackwater_mountain0" x-posx="61" x-posy="467" x-width="20" x-height="15" x-outside="1">blackwater_mountain0</div>
+<div id="blackwater_mountain1" x-posx="19" x-posy="439" x-width="20" x-height="20" x-outside="1">blackwater_mountain1</div>
+<div id="blackwater_mountain2" x-posx="19" x-posy="428" x-width="20" x-height="10" x-outside="1">blackwater_mountain2</div>
+<div id="blackwater_mountain3" x-posx="22" x-posy="417" x-width="15" x-height="10" x-outside="1">blackwater_mountain3</div>
+<div id="vilegard_erttu" x-posx="368" x-posy="470" x-width="10" x-height="8" x-outside="0">vilegard_erttu</div>
+<div id="flagstone_upper" x-posx="111" x-posy="480" x-width="20" x-height="12" x-outside="0">flagstone_upper</div>
+<div id="wild1" x-posx="187" x-posy="351" x-width="21" x-height="21" x-outside="1">wild1</div>
+<div id="wild0" x-posx="187" x-posy="329" x-width="21" x-height="21" x-outside="1">wild0</div>
+<div id="wild17" x-posx="40" x-posy="453" x-width="20" x-height="20" x-outside="1">wild17</div>
+<div id="wild15" x-posx="343" x-posy="446" x-width="20" x-height="15" x-outside="1">wild15</div>
+<div id="mountainlake13a" x-posx="627" x-posy="50" x-width="15" x-height="25" x-outside="1">mountainlake13a</div>
+<div id="wild16" x-posx="82" x-posy="467" x-width="20" x-height="15" x-outside="1">wild16</div>
+<div id="wild13" x-posx="301" x-posy="434" x-width="20" x-height="15" x-outside="1">wild13</div>
+<div id="flagstone0" x-posx="103" x-posy="467" x-width="30" x-height="30" x-outside="1">flagstone0</div>
+<div id="wild14" x-posx="322" x-posy="439" x-width="20" x-height="16" x-outside="1">wild14</div>
+<div id="wild11" x-posx="246" x-posy="432" x-width="20" x-height="20" x-outside="1">wild11</div>
+<div id="wild12" x-posx="280" x-posy="424" x-width="20" x-height="20" x-outside="1">wild12</div>
+<div id="wild10" x-posx="225" x-posy="432" x-width="20" x-height="20" x-outside="1">wild10</div>
+<div id="waterway6" x-posx="404" x-posy="218" x-width="30" x-height="30" x-outside="1">waterway6</div>
+<div id="waterway7" x-posx="435" x-posy="218" x-width="30" x-height="30" x-outside="1">waterway7</div>
+<div id="waterway4" x-posx="381" x-posy="156" x-width="30" x-height="30" x-outside="1">waterway4</div>
+<div id="waterway5" x-posx="389" x-posy="187" x-width="30" x-height="30" x-outside="1">waterway5</div>
+<div id="flagstone1" x-posx="120" x-posy="486" x-width="20" x-height="11" x-outside="0">flagstone1</div>
+<div id="waterway2" x-posx="350" x-posy="148" x-width="30" x-height="30" x-outside="1">waterway2</div>
+<div id="flagstone2" x-posx="132" x-posy="481" x-width="11" x-height="30" x-outside="0">flagstone2</div>
+<div id="loneford10" x-posx="250" x-posy="245" x-width="11" x-height="11" x-outside="0">loneford10</div>
+<div id="waterway3" x-posx="319" x-posy="148" x-width="30" x-height="20" x-outside="1">waterway3</div>
+<div id="woodhouse3" x-posx="221" x-posy="362" x-width="16" x-height="8" x-outside="0">woodhouse3</div>
+<div id="waterway0" x-posx="288" x-posy="190" x-width="30" x-height="30" x-outside="1">waterway0</div>
+<div id="lodar8cave0" x-posx="308" x-posy="319" x-width="25" x-height="17" x-outside="0">lodar8cave0</div>
+<div id="flagstone3" x-posx="138" x-posy="512" x-width="20" x-height="13" x-outside="0">flagstone3</div>
+<div id="waterway1" x-posx="319" x-posy="169" x-width="30" x-height="30" x-outside="1">waterway1</div>
+<div id="flagstone4" x-posx="159" x-posy="508" x-width="25" x-height="13" x-outside="0">flagstone4</div>
+<div id="road4_gargoylecave" x-posx="433" x-posy="436" x-width="15" x-height="15" x-outside="1">road4_gargoylecave</div>
+<div id="fallhaven_prison" x-posx="226" x-posy="395" x-width="15" x-height="10" x-outside="0">fallhaven_prison</div>
+<div id="lonelyhouse1" x-posx="706" x-posy="37" x-width="15" x-height="10" x-outside="0">lonelyhouse1</div>
+<div id="lonelyhouse0" x-posx="700" x-posy="35" x-width="15" x-height="10" x-outside="0">lonelyhouse0</div>
+<div id="minerhouse0" x-posx="404" x-posy="328" x-width="20" x-height="8" x-outside="0">minerhouse0</div>
+<div id="waytobrimhavencave3b" x-posx="462" x-posy="277" x-width="14" x-height="7" x-outside="0">waytobrimhavencave3b</div>
+<div id="remgard_villager4" x-posx="639" x-posy="116" x-width="12" x-height="8" x-outside="0">remgard_villager4</div>
+<div id="minerhouse4" x-posx="435" x-posy="299" x-width="26" x-height="8" x-outside="0">minerhouse4</div>
+<div id="remgard_villager3" x-posx="669" x-posy="120" x-width="13" x-height="8" x-outside="0">remgard_villager3</div>
+<div id="minerhouse3" x-posx="416" x-posy="317" x-width="16" x-height="8" x-outside="0">minerhouse3</div>
+<div id="minerhouse2" x-posx="407" x-posy="315" x-width="20" x-height="8" x-outside="0">minerhouse2</div>
+<div id="minerhouse1" x-posx="405" x-posy="320" x-width="20" x-height="8" x-outside="0">minerhouse1</div>
+<div id="remgard_villager5" x-posx="619" x-posy="114" x-width="12" x-height="8" x-outside="0">remgard_villager5</div>
+<div id="minerhouse8" x-posx="438" x-posy="336" x-width="16" x-height="8" x-outside="0">minerhouse8</div>
+<div id="fallhaven_nocmar" x-posx="216" x-posy="394" x-width="12" x-height="8" x-outside="0">fallhaven_nocmar</div>
+<div id="minerhouse7" x-posx="446" x-posy="331" x-width="16" x-height="8" x-outside="0">minerhouse7</div>
+<div id="remgard_villager2" x-posx="670" x-posy="112" x-width="10" x-height="8" x-outside="0">remgard_villager2</div>
+<div id="minerhouse6" x-posx="438" x-posy="330" x-width="12" x-height="8" x-outside="0">minerhouse6</div>
+<div id="remgard_villager1" x-posx="665" x-posy="83" x-width="11" x-height="8" x-outside="0">remgard_villager1</div>
+<div id="minerhouse5" x-posx="447" x-posy="311" x-width="16" x-height="8" x-outside="0">minerhouse5</div>
+<div id="waytobrimhavencave3a" x-posx="468" x-posy="264" x-width="20" x-height="22" x-outside="0">waytobrimhavencave3a</div>
+<div id="lodar12cave0" x-posx="378" x-posy="294" x-width="15" x-height="15" x-outside="0">lodar12cave0</div>
+<div id="crossglen_hall" x-posx="170" x-posy="358" x-width="20" x-height="15" x-outside="0">crossglen_hall</div>
+<div id="lodar12cave1" x-posx="386" x-posy="278" x-width="20" x-height="25" x-outside="0">lodar12cave1</div>
+<div id="vilegard_ogam" x-posx="356" x-posy="500" x-width="8" x-height="7" x-outside="0">vilegard_ogam</div>
+<div id="minerhouse9" x-posx="449" x-posy="338" x-width="12" x-height="8" x-outside="0">minerhouse9</div>
+<div id="fallhaven_church" x-posx="243" x-posy="377" x-width="20" x-height="15" x-outside="0">fallhaven_church</div>
+<div id="vilegard_chapel" x-posx="371" x-posy="481" x-width="18" x-height="14" x-outside="0">vilegard_chapel</div>
+<div id="remgard_clothes" x-posx="653" x-posy="91" x-width="18" x-height="8" x-outside="0">remgard_clothes</div>
+<div id="foaming_flask" x-posx="374" x-posy="437" x-width="20" x-height="13" x-outside="0">foaming_flask</div>
+<div id="remgard_tavern1" x-posx="643" x-posy="91" x-width="25" x-height="20" x-outside="0">remgard_tavern1</div>
+<div id="roadcave0" x-posx="232" x-posy="325" x-width="20" x-height="20" x-outside="0">roadcave0</div>
+<div id="roadcave1" x-posx="246" x-posy="330" x-width="25" x-height="25" x-outside="0">roadcave1</div>
+<div id="vilegard_sw" x-posx="357" x-posy="503" x-width="10" x-height="10" x-outside="1">vilegard_sw</div>
+<div id="lostmine3" x-posx="457" x-posy="286" x-width="19" x-height="30" x-outside="0">lostmine3</div>
+<div id="lostmine4" x-posx="460" x-posy="297" x-width="15" x-height="17" x-outside="0">lostmine4</div>
+<div id="lostmine5" x-posx="460" x-posy="305" x-width="12" x-height="29" x-outside="0">lostmine5</div>
+<div id="lostmine6" x-posx="462" x-posy="335" x-width="12" x-height="19" x-outside="0">lostmine6</div>
+<div id="gapfiller1" x-posx="267" x-posy="432" x-width="12" x-height="12" x-outside="1">gapfiller1</div>
+<div id="gapfiller3" x-posx="187" x-posy="373" x-width="11" x-height="10" x-outside="1">gapfiller3</div>
+<div id="lostmine0" x-posx="434" x-posy="359" x-width="20" x-height="20" x-outside="1">lostmine0</div>
+<div id="lostmine1" x-posx="421" x-posy="337" x-width="29" x-height="30" x-outside="0">lostmine1</div>
+<div id="gapfiller4" x-posx="202" x-posy="380" x-width="15" x-height="15" x-outside="1">gapfiller4</div>
+<div id="lostmine2" x-posx="444" x-posy="317" x-width="30" x-height="30" x-outside="0">lostmine2</div>
+<div id="waytolake0" x-posx="628" x-posy="266" x-width="20" x-height="30" x-outside="1">waytolake0</div>
+<div id="lostmine9" x-posx="448" x-posy="349" x-width="28" x-height="28" x-outside="0">lostmine9</div>
+<div id="fallhaven_farmer" x-posx="264" x-posy="409" x-width="12" x-height="8" x-outside="0">fallhaven_farmer</div>
+<div id="vilegard_n" x-posx="368" x-posy="469" x-width="20" x-height="20" x-outside="1">vilegard_n</div>
+<div id="lostmine8" x-posx="470" x-posy="359" x-width="13" x-height="19" x-outside="0">lostmine8</div>
+<div id="lostmine7" x-posx="461" x-posy="349" x-width="29" x-height="30" x-outside="0">lostmine7</div>
+<div id="waytolostmine0" x-posx="403" x-posy="345" x-width="30" x-height="30" x-outside="1">waytolostmine0</div>
+<div id="waytolake5" x-posx="666" x-posy="179" x-width="23" x-height="18" x-outside="0">waytolake5</div>
+<div id="waytolake3" x-posx="651" x-posy="208" x-width="20" x-height="20" x-outside="1">waytolake3</div>
+<div id="waytolake4" x-posx="650" x-posy="190" x-width="20" x-height="25" x-outside="0">waytolake4</div>
+<div id="vilegard_s" x-posx="368" x-posy="490" x-width="20" x-height="20" x-outside="1">vilegard_s</div>
+<div id="waytolake1" x-posx="649" x-posy="255" x-width="20" x-height="20" x-outside="1">waytolake1</div>
+<div id="waytolake2" x-posx="649" x-posy="229" x-width="20" x-height="25" x-outside="1">waytolake2</div>
+<div id="road5_house" x-posx="469" x-posy="457" x-width="11" x-height="8" x-outside="0">road5_house</div>
+<div id="waytolostmine2" x-posx="434" x-posy="299" x-width="29" x-height="28" x-outside="1">waytolostmine2</div>
+<div id="waytolostmine1" x-posx="403" x-posy="317" x-width="30" x-height="27" x-outside="1">waytolostmine1</div>
+<div id="waytolostmine3" x-posx="434" x-posy="328" x-width="29" x-height="30" x-outside="1">waytolostmine3</div>
+<div id="waytobrimhavencave1a" x-posx="358" x-posy="289" x-width="30" x-height="15" x-outside="0">waytobrimhavencave1a</div>
+<div id="lostmine10" x-posx="468" x-posy="332" x-width="14" x-height="20" x-outside="0">lostmine10</div>
+<div id="lostmine11" x-posx="471" x-posy="311" x-width="17" x-height="20" x-outside="0">lostmine11</div>
+<div id="fallhaven_potions" x-posx="263" x-posy="391" x-width="10" x-height="8" x-outside="0">fallhaven_potions</div>
+<div id="remgard_armour" x-posx="622" x-posy="81" x-width="15" x-height="10" x-outside="0">remgard_armour</div>
+<div id="mountainlake13" x-posx="619" x-posy="20" x-width="30" x-height="29" x-outside="1">mountainlake13</div>
+<div id="mountainlake12" x-posx="650" x-posy="8" x-width="29" x-height="19" x-outside="1">mountainlake12</div>
+<div id="mountainlake11" x-posx="680" x-posy="4" x-width="30" x-height="25" x-outside="1">mountainlake11</div>
+<div id="loneford4" x-posx="260" x-posy="246" x-width="13" x-height="10" x-outside="0">loneford4</div>
+<div id="mountainlake10" x-posx="711" x-posy="0" x-width="30" x-height="30" x-outside="1">mountainlake10</div>
+<div id="loneford3" x-posx="250" x-posy="245" x-width="21" x-height="11" x-outside="0">loneford3</div>
+<div id="loneford2" x-posx="246" x-posy="249" x-width="30" x-height="26" x-outside="1">loneford2</div>
+<div id="loneford1" x-posx="218" x-posy="276" x-width="30" x-height="30" x-outside="1">loneford1</div>
+<div id="mountaincave3" x-posx="608" x-posy="235" x-width="20" x-height="20" x-outside="0">mountaincave3</div>
+<div id="mountaincave2" x-posx="611" x-posy="256" x-width="25" x-height="30" x-outside="0">mountaincave2</div>
+<div id="crossglen_farmhouse_basement" x-posx="161" x-posy="364" x-width="10" x-height="8" x-outside="0">crossglen_farmhouse_basement</div>
+<div id="mountaincave1" x-posx="623" x-posy="287" x-width="20" x-height="20" x-outside="0">mountaincave1</div>
+<div id="mountaincave0" x-posx="644" x-posy="287" x-width="20" x-height="20" x-outside="0">mountaincave0</div>
+<div id="crossglen" x-posx="156" x-posy="353" x-width="30" x-height="30" x-outside="1">crossglen</div>
+<div id="fallhaven_clothes" x-posx="265" x-posy="392" x-width="20" x-height="12" x-outside="0">fallhaven_clothes</div>
+<div id="loneford5" x-posx="249" x-posy="254" x-width="9" x-height="8" x-outside="0">loneford5</div>
+<div id="hauntedhouse2" x-posx="212" x-posy="349" x-width="15" x-height="10" x-outside="0">hauntedhouse2</div>
+<div id="loneford6" x-posx="256" x-posy="251" x-width="13" x-height="10" x-outside="0">loneford6</div>
+<div id="hauntedhouse1" x-posx="218" x-posy="349" x-width="10" x-height="8" x-outside="0">hauntedhouse1</div>
+<div id="loneford7" x-posx="264" x-posy="257" x-width="9" x-height="8" x-outside="0">loneford7</div>
+<div id="loneford8" x-posx="246" x-posy="263" x-width="12" x-height="8" x-outside="0">loneford8</div>
+<div id="loneford9" x-posx="254" x-posy="261" x-width="20" x-height="9" x-outside="0">loneford9</div>
+<div id="fallhaven_tavern" x-posx="221" x-posy="383" x-width="20" x-height="19" x-outside="0">fallhaven_tavern</div>
+<div id="hauntedhouse4" x-posx="234" x-posy="350" x-width="10" x-height="8" x-outside="0">hauntedhouse4</div>
+<div id="hauntedhouse3" x-posx="214" x-posy="353" x-width="25" x-height="20" x-outside="0">hauntedhouse3</div>
+<div id="road1" x-posx="364" x-posy="443" x-width="25" x-height="25" x-outside="1">road1</div>
+<div id="road3" x-posx="411" x-posy="457" x-width="25" x-height="15" x-outside="1">road3</div>
+<div id="road2" x-posx="390" x-posy="453" x-width="20" x-height="19" x-outside="1">road2</div>
+<div id="road5" x-posx="463" x-posy="460" x-width="20" x-height="15" x-outside="1">road5</div>
+<div id="road4" x-posx="437" x-posy="452" x-width="25" x-height="20" x-outside="1">road4</div>
+<div id="jan_pitcave1" x-posx="185" x-posy="399" x-width="10" x-height="10" x-outside="0">jan_pitcave1</div>
+<div id="lodar5cave1" x-posx="313" x-posy="342" x-width="20" x-height="30" x-outside="0">lodar5cave1</div>
+<div id="lodar5cave0" x-posx="305" x-posy="312" x-width="30" x-height="29" x-outside="0">lodar5cave0</div>
+<div id="lodar21" x-posx="382" x-posy="363" x-width="20" x-height="20" x-outside="1">lodar21</div>
+<div id="jan_pitcave3" x-posx="189" x-posy="428" x-width="10" x-height="10" x-outside="0">jan_pitcave3</div>
+<div id="lodar5cave2" x-posx="298" x-posy="366" x-width="20" x-height="20" x-outside="0">lodar5cave2</div>
+<div id="jan_pitcave2" x-posx="166" x-posy="404" x-width="30" x-height="30" x-outside="0">jan_pitcave2</div>
+<div id="fallhaven_gravedigger" x-posx="269" x-posy="376" x-width="10" x-height="8" x-outside="0">fallhaven_gravedigger</div>
+<div id="lodar20" x-posx="382" x-posy="332" x-width="20" x-height="30" x-outside="1">lodar20</div>
+<div id="waterwayhouse" x-posx="352" x-posy="160" x-width="19" x-height="15" x-outside="0">waterwayhouse</div>
+<div id="fallhaven_rigmor" x-posx="227" x-posy="376" x-width="15" x-height="10" x-outside="0">fallhaven_rigmor</div>
+<div id="waytominingtown1a" x-posx="383" x-posy="405" x-width="19" x-height="12" x-outside="1">waytominingtown1a</div>
+<div id="lostmine2a" x-posx="475" x-posy="329" x-width="19" x-height="21" x-outside="0">lostmine2a</div>
+<div id="wild6_house" x-posx="179" x-posy="441" x-width="9" x-height="7" x-outside="0">wild6_house</div>
+<div id="lodar8" x-posx="320" x-posy="320" x-width="30" x-height="30" x-outside="1">lodar8</div>
+<div id="lodar9" x-posx="351" x-posy="275" x-width="30" x-height="25" x-outside="1">lodar9</div>
+<div id="lodar6" x-posx="270" x-posy="320" x-width="18" x-height="30" x-outside="1">lodar6</div>
+<div id="lodar7" x-posx="289" x-posy="320" x-width="30" x-height="30" x-outside="1">lodar7</div>
+<div id="lodar4" x-posx="320" x-posy="294" x-width="30" x-height="25" x-outside="1">lodar4</div>
+<div id="lodar5" x-posx="289" x-posy="304" x-width="30" x-height="15" x-outside="1">lodar5</div>
+<div id="lodar2" x-posx="289" x-posy="273" x-width="30" x-height="30" x-outside="1">lodar2</div>
+<div id="lodar3" x-posx="320" x-posy="273" x-width="30" x-height="20" x-outside="1">lodar3</div>
+<div id="lodar10" x-posx="382" x-posy="275" x-width="20" x-height="25" x-outside="1">lodar10</div>
+<div id="lodar12" x-posx="382" x-posy="301" x-width="20" x-height="30" x-outside="1">lodar12</div>
+<div id="lodar11" x-posx="351" x-posy="301" x-width="30" x-height="30" x-outside="1">lodar11</div>
+<div id="lodar14" x-posx="301" x-posy="351" x-width="19" x-height="30" x-outside="1">lodar14</div>
+<div id="lodar13" x-posx="270" x-posy="351" x-width="30" x-height="12" x-outside="1">lodar13</div>
+<div id="lodar16" x-posx="321" x-posy="351" x-width="29" x-height="30" x-outside="1">lodar16</div>
+<div id="lodar15" x-posx="301" x-posy="382" x-width="19" x-height="19" x-outside="1">lodar15</div>
+<div id="lodar18" x-posx="351" x-posy="332" x-width="30" x-height="30" x-outside="1">lodar18</div>
+<div id="woodcave1" x-posx="198" x-posy="335" x-width="10" x-height="10" x-outside="0">woodcave1</div>
+<div id="lodar17" x-posx="321" x-posy="382" x-width="29" x-height="19" x-outside="1">lodar17</div>
+<div id="woodcave0" x-posx="202" x-posy="332" x-width="15" x-height="10" x-outside="0">woodcave0</div>
+<div id="lostmine1a" x-posx="397" x-posy="332" x-width="23" x-height="17" x-outside="0">lostmine1a</div>
+<div id="lodar19" x-posx="351" x-posy="363" x-width="30" x-height="20" x-outside="1">lodar19</div>
+<div id="fallhaven_nw" x-posx="218" x-posy="380" x-width="30" x-height="30" x-outside="1">fallhaven_nw</div>
+<div id="waterway12" x-posx="466" x-posy="218" x-width="30" x-height="30" x-outside="1">waterway12</div>
+<div id="waterway11" x-posx="590" x-posy="218" x-width="30" x-height="30" x-outside="1">waterway11</div>
+<div id="waterway14" x-posx="412" x-posy="156" x-width="30" x-height="30" x-outside="1">waterway14</div>
+<div id="waterway13" x-posx="497" x-posy="218" x-width="30" x-height="30" x-outside="1">waterway13</div>
+<div id="waterway15" x-posx="420" x-posy="187" x-width="22" x-height="30" x-outside="1">waterway15</div>
+<div id="fallhaven_derelict" x-posx="215" x-posy="399" x-width="12" x-height="8" x-outside="0">fallhaven_derelict</div>
+<div id="vilegard_armorer" x-posx="382" x-posy="494" x-width="12" x-height="8" x-outside="0">vilegard_armorer</div>
+<div id="remgard_school" x-posx="647" x-posy="114" x-width="16" x-height="8" x-outside="0">remgard_school</div>
+<div id="remgard_farmer2" x-posx="668" x-posy="98" x-width="11" x-height="8" x-outside="0">remgard_farmer2</div>
+<div id="remgard_farmer3" x-posx="603" x-posy="118" x-width="12" x-height="8" x-outside="0">remgard_farmer3</div>
+<div id="waterway11_east" x-posx="621" x-posy="219" x-width="30" x-height="25" x-outside="1">waterway11_east</div>
+<div id="fallhaven_ne" x-posx="249" x-posy="380" x-width="30" x-height="30" x-outside="1">fallhaven_ne</div>
+<div id="remgard_farmer1" x-posx="640" x-posy="82" x-width="10" x-height="8" x-outside="0">remgard_farmer1</div>
+<div id="waterway10" x-posx="559" x-posy="249" x-width="30" x-height="18" x-outside="1">waterway10</div>
+<div id="oldcave0" x-posx="366" x-posy="420" x-width="20" x-height="20" x-outside="0">oldcave0</div>
+<div id="oldcave1" x-posx="380" x-posy="431" x-width="20" x-height="25" x-outside="0">oldcave1</div>
+<div id="home" x-posx="158" x-posy="349" x-width="10" x-height="10" x-outside="0">home</div>
+<div id="roadbeforecrossroads" x-posx="218" x-posy="316" x-width="21" x-height="20" x-outside="1">roadbeforecrossroads</div>
+<div id="roadbeforecrossroads8" x-posx="343" x-posy="418" x-width="20" x-height="27" x-outside="1">roadbeforecrossroads8</div>
+<div id="roadbeforecrossroads9" x-posx="364" x-posy="418" x-width="25" x-height="24" x-outside="1">roadbeforecrossroads9</div>
+<div id="roadbeforecrossroads6" x-posx="301" x-posy="403" x-width="20" x-height="30" x-outside="1">roadbeforecrossroads6</div>
+<div id="roadbeforecrossroads7" x-posx="322" x-posy="418" x-width="20" x-height="20" x-outside="1">roadbeforecrossroads7</div>
+<div id="roadbeforecrossroads4" x-posx="280" x-posy="380" x-width="20" x-height="20" x-outside="1">roadbeforecrossroads4</div>
+<div id="roadbeforecrossroads5" x-posx="280" x-posy="401" x-width="20" x-height="22" x-outside="1">roadbeforecrossroads5</div>
+<div id="roadbeforecrossroads2" x-posx="240" x-posy="346" x-width="29" x-height="30" x-outside="1">roadbeforecrossroads2</div>
+<div id="roadbeforecrossroads3" x-posx="270" x-posy="364" x-width="30" x-height="15" x-outside="1">roadbeforecrossroads3</div>
+<div id="lodar1cave0" x-posx="238" x-posy="311" x-width="20" x-height="19" x-outside="0">lodar1cave0</div>
+<div id="fallhaven_alaun" x-posx="236" x-posy="409" x-width="10" x-height="8" x-outside="0">fallhaven_alaun</div>
+<div id="remgard_barn" x-posx="629" x-posy="114" x-width="12" x-height="8" x-outside="0">remgard_barn</div>
+<div id="lodar1" x-posx="240" x-posy="308" x-width="17" x-height="11" x-outside="1">lodar1</div>
+<div id="lodar0" x-posx="258" x-posy="289" x-width="30" x-height="30" x-outside="1">lodar0</div>
+<div id="remgard_tavern0" x-posx="643" x-posy="91" x-width="25" x-height="20" x-outside="0">remgard_tavern0</div>
+<div id="vilegard_wrye" x-posx="371" x-posy="476" x-width="13" x-height="8" x-outside="0">vilegard_wrye</div>
+<div id="waytomountaincave1" x-posx="630" x-posy="275" x-width="15" x-height="19" x-outside="1">waytomountaincave1</div>
+<div id="waytomountaincave0" x-posx="636" x-posy="245" x-width="15" x-height="29" x-outside="1">waytomountaincave0</div>
+<div id="waytomountaincave2" x-posx="631" x-posy="295" x-width="30" x-height="20" x-outside="1">waytomountaincave2</div>
+<div id="remgard_church" x-posx="633" x-posy="90" x-width="20" x-height="12" x-outside="0">remgard_church</div>
+<div id="houseatcrossroads2" x-posx="199" x-posy="310" x-width="6" x-height="6" x-outside="0">houseatcrossroads2</div>
+<div id="blackwater_mountain39" x-posx="101" x-posy="239" x-width="20" x-height="20" x-outside="0">blackwater_mountain39</div>
+<div id="houseatcrossroads3" x-posx="199" x-posy="309" x-width="6" x-height="6" x-outside="0">houseatcrossroads3</div>
+<div id="wild11_clearing" x-posx="249" x-posy="453" x-width="15" x-height="15" x-outside="1">wild11_clearing</div>
+<div id="fallhaven_sw" x-posx="218" x-posy="411" x-width="30" x-height="20" x-outside="1">fallhaven_sw</div>
+<div id="blackwater_mountain37" x-posx="119" x-posy="216" x-width="15" x-height="15" x-outside="0">blackwater_mountain37</div>
+<div id="houseatcrossroads4" x-posx="199" x-posy="308" x-width="6" x-height="6" x-outside="0">houseatcrossroads4</div>
+<div id="waytobrimhavencave0" x-posx="358" x-posy="260" x-width="30" x-height="24" x-outside="0">waytobrimhavencave0</div>
+<div id="houseatcrossroads5" x-posx="202" x-posy="291" x-width="11" x-height="9" x-outside="0">houseatcrossroads5</div>
+<div id="waterwayextention" x-posx="351" x-posy="179" x-width="14" x-height="14" x-outside="1">waterwayextention</div>
+<div id="blackwater_mountain38" x-posx="92" x-posy="222" x-width="30" x-height="18" x-outside="0">blackwater_mountain38</div>
+<div id="waytominingtown0" x-posx="322" x-posy="402" x-width="29" x-height="15" x-outside="1">waytominingtown0</div>
+<div id="mountainlake3" x-posx="735" x-posy="128" x-width="25" x-height="28" x-outside="1">mountainlake3</div>
+<div id="waytobrimhavencave1" x-posx="389" x-posy="268" x-width="30" x-height="30" x-outside="0">waytobrimhavencave1</div>
+<div id="mountainlake2" x-posx="714" x-posy="141" x-width="20" x-height="17" x-outside="1">mountainlake2</div>
+<div id="waytominingtown1" x-posx="352" x-posy="387" x-width="30" x-height="30" x-outside="1">waytominingtown1</div>
+<div id="waytobrimhavencave2" x-posx="420" x-posy="268" x-width="30" x-height="30" x-outside="0">waytobrimhavencave2</div>
+<div id="mountainlake1" x-posx="683" x-posy="128" x-width="30" x-height="30" x-outside="1">mountainlake1</div>
+<div id="houseatcrossroads0" x-posx="197" x-posy="297" x-width="16" x-height="12" x-outside="0">houseatcrossroads0</div>
+<div id="waytobrimhavencave3" x-posx="451" x-posy="268" x-width="30" x-height="30" x-outside="0">waytobrimhavencave3</div>
+<div id="waytominingtown2" x-posx="383" x-posy="384" x-width="19" x-height="20" x-outside="1">waytominingtown2</div>
+<div id="mountainlake0" x-posx="681" x-posy="159" x-width="20" x-height="30" x-outside="1">mountainlake0</div>
+<div id="houseatcrossroads1" x-posx="197" x-posy="297" x-width="16" x-height="12" x-outside="0">houseatcrossroads1</div>
+<div id="waytominingtown3" x-posx="403" x-posy="376" x-width="30" x-height="30" x-outside="1">waytominingtown3</div>
+<div id="waytobrimhavencave4" x-posx="327" x-posy="268" x-width="30" x-height="30" x-outside="0">waytobrimhavencave4</div>
+<div id="blackwater_mountain31" x-posx="119" x-posy="251" x-width="11" x-height="8" x-outside="0">blackwater_mountain31</div>
+<div id="mountainlake7" x-posx="779" x-posy="53" x-width="16" x-height="20" x-outside="1">mountainlake7</div>
+<div id="blackwater_mountain51" x-posx="121" x-posy="249" x-width="10" x-height="10" x-outside="0">blackwater_mountain51</div>
+<div id="blackwater_mountain32" x-posx="111" x-posy="220" x-width="30" x-height="30" x-outside="1">blackwater_mountain32</div>
+<div id="blackwater_mountain52" x-posx="121" x-posy="218" x-width="9" x-height="30" x-outside="0">blackwater_mountain52</div>
+<div id="mountainlake6" x-posx="774" x-posy="74" x-width="19" x-height="29" x-outside="1">mountainlake6</div>
+<div id="mountainlake5" x-posx="766" x-posy="104" x-width="29" x-height="20" x-outside="1">mountainlake5</div>
+<div id="mountainlake4" x-posx="740" x-posy="111" x-width="25" x-height="16" x-outside="1">mountainlake4</div>
+<div id="blackwater_mountain30" x-posx="113" x-posy="251" x-width="30" x-height="20" x-outside="1">blackwater_mountain30</div>
+<div id="fallhaven_lumberjack" x-posx="224" x-posy="410" x-width="12" x-height="8" x-outside="0">fallhaven_lumberjack</div>
+<div id="blackwater_mountain35" x-posx="8" x-posy="379" x-width="10" x-height="10" x-outside="0">blackwater_mountain35</div>
+<div id="blackwater_mountain36" x-posx="117" x-posy="214" x-width="11" x-height="10" x-outside="0">blackwater_mountain36</div>
+<div id="mountainlake9" x-posx="742" x-posy="0" x-width="30" x-height="30" x-outside="1">mountainlake9</div>
+<div id="blackwater_mountain33" x-posx="20" x-posy="343" x-width="20" x-height="20" x-outside="0">blackwater_mountain33</div>
+<div id="blackwater_mountain34" x-posx="14" x-posy="356" x-width="15" x-height="30" x-outside="0">blackwater_mountain34</div>
+<div id="mountainlake8" x-posx="758" x-posy="31" x-width="20" x-height="30" x-outside="1">mountainlake8</div>
+<div id="blackwater_mountain50" x-posx="102" x-posy="182" x-width="15" x-height="20" x-outside="0">blackwater_mountain50</div>
+<div id="woodhouse0" x-posx="215" x-posy="366" x-width="12" x-height="8" x-outside="0">woodhouse0</div>
+<div id="woodhouse2" x-posx="221" x-posy="362" x-width="16" x-height="8" x-outside="0">woodhouse2</div>
+<div id="woodhouse1" x-posx="220" x-posy="367" x-width="12" x-height="8" x-outside="0">woodhouse1</div>
+<div id="fallhaven_se" x-posx="249" x-posy="411" x-width="30" x-height="20" x-outside="1">fallhaven_se</div>
+<div id="fields10" x-posx="104" x-posy="282" x-width="20" x-height="15" x-outside="1">fields10</div>
+<div id="blackwater_mountain48" x-posx="103" x-posy="199" x-width="9" x-height="7" x-outside="0">blackwater_mountain48</div>
+<div id="blackwater_mountain49" x-posx="103" x-posy="197" x-width="9" x-height="7" x-outside="0">blackwater_mountain49</div>
+<div id="fields11" x-posx="246" x-posy="216" x-width="20" x-height="20" x-outside="1">fields11</div>
+<div id="fallhaven_barn" x-posx="244" x-posy="392" x-width="17" x-height="10" x-outside="0">fallhaven_barn</div>
+<div id="fields12" x-posx="267" x-posy="212" x-width="20" x-height="20" x-outside="1">fields12</div>
+<div id="vilegard_tavern" x-posx="370" x-posy="493" x-width="17" x-height="10" x-outside="0">vilegard_tavern</div>
+<div id="roadbeforecrossroads1" x-posx="240" x-posy="320" x-width="29" x-height="25" x-outside="1">roadbeforecrossroads1</div>
+<div id="fallhaven_athamyr" x-posx="237" x-posy="390" x-width="10" x-height="8" x-outside="0">fallhaven_athamyr</div>
+<div id="blackwater_mountain40" x-posx="77" x-posy="354" x-width="11" x-height="11" x-outside="1">blackwater_mountain40</div>
+<div id="blackwater_mountain41" x-posx="59" x-posy="360" x-width="30" x-height="30" x-outside="0">blackwater_mountain41</div>
+<div id="blackwater_mountain42" x-posx="34" x-posy="372" x-width="30" x-height="30" x-outside="0">blackwater_mountain42</div>
+<div id="blackwater_mountain43" x-posx="129" x-posy="172" x-width="30" x-height="30" x-outside="0">blackwater_mountain43</div>
+<div id="blackwater_mountain44" x-posx="112" x-posy="197" x-width="20" x-height="20" x-outside="0">blackwater_mountain44</div>
+<div id="blackwater_mountain45" x-posx="100" x-posy="211" x-width="15" x-height="15" x-outside="0">blackwater_mountain45</div>
+<div id="blackwater_mountain46" x-posx="103" x-posy="203" x-width="9" x-height="7" x-outside="0">blackwater_mountain46</div>
+<div id="blackwater_mountain47" x-posx="101" x-posy="201" x-width="9" x-height="7" x-outside="0">blackwater_mountain47</div>
+<div id="crossglen_smith" x-posx="154" x-posy="372" x-width="10" x-height="8" x-outside="0">crossglen_smith</div>
+<div id="pwcave2a" x-posx="300" x-posy="36" x-width="20" x-height="25" x-outside="0">pwcave2a</div>
+<div id="blackwater_mountain19" x-posx="81" x-posy="246" x-width="10" x-height="10" x-outside="0">blackwater_mountain19</div>
+<div id="blackwater_mountain17" x-posx="69" x-posy="264" x-width="20" x-height="10" x-outside="0">blackwater_mountain17</div>
+<div id="snakecave2" x-posx="131" x-posy="374" x-width="20" x-height="20" x-outside="0">snakecave2</div>
+<div id="snakecave1" x-posx="152" x-posy="374" x-width="20" x-height="20" x-outside="0">snakecave1</div>
+<div id="blackwater_mountain18" x-posx="70" x-posy="247" x-width="15" x-height="22" x-outside="0">blackwater_mountain18</div>
+<div id="blackwater_mountain15" x-posx="81" x-posy="302" x-width="15" x-height="30" x-outside="1">blackwater_mountain15</div>
+<div id="snakecave3" x-posx="123" x-posy="343" x-width="15" x-height="30" x-outside="0">snakecave3</div>
+<div id="blackwater_mountain16" x-posx="83" x-posy="271" x-width="15" x-height="30" x-outside="1">blackwater_mountain16</div>
+<div id="blackwater_mountain13" x-posx="0" x-posy="311" x-width="20" x-height="20" x-outside="0">blackwater_mountain13</div>
+<div id="blackwater_mountain14" x-posx="60" x-posy="333" x-width="30" x-height="20" x-outside="1">blackwater_mountain14</div>
+<div id="blackwater_mountain11" x-posx="39" x-posy="302" x-width="30" x-height="30" x-outside="1">blackwater_mountain11</div>
+<div id="blackwater_mountain12" x-posx="10" x-posy="323" x-width="28" x-height="27" x-outside="1">blackwater_mountain12</div>
+<div id="blackwater_mountain10" x-posx="39" x-posy="333" x-width="20" x-height="20" x-outside="1">blackwater_mountain10</div>
+<div id="flagstone_inner" x-posx="111" x-posy="480" x-width="20" x-height="17" x-outside="0">flagstone_inner</div>
+<div id="fallhaven_derelict2" x-posx="214" x-posy="402" x-width="25" x-height="19" x-outside="0">fallhaven_derelict2</div>
+<div id="vilegard_kaori" x-posx="378" x-posy="471" x-width="10" x-height="8" x-outside="0">vilegard_kaori</div>
+<div id="fallhaven_arcir" x-posx="232" x-posy="396" x-width="15" x-height="10" x-outside="0">fallhaven_arcir</div>
+<div id="remgard_prison" x-posx="601" x-posy="109" x-width="19" x-height="10" x-outside="0">remgard_prison</div>
+<div id="catacombs1" x-posx="243" x-posy="375" x-width="19" x-height="10" x-outside="0">catacombs1</div>
+<div id="catacombs2" x-posx="244" x-posy="365" x-width="20" x-height="20" x-outside="0">catacombs2</div>
+<div id="vilegard_smith" x-posx="380" x-posy="500" x-width="10" x-height="8" x-outside="0">vilegard_smith</div>
+<div id="waterwaycave" x-posx="435" x-posy="209" x-width="15" x-height="15" x-outside="0">waterwaycave</div>
+<div id="blackwater_mountain26" x-posx="46" x-posy="302" x-width="9" x-height="8" x-outside="0">blackwater_mountain26</div>
+<div id="blackwater_mountain27" x-posx="50" x-posy="301" x-width="9" x-height="8" x-outside="0">blackwater_mountain27</div>
+<div id="blackwater_mountain28" x-posx="58" x-posy="302" x-width="10" x-height="8" x-outside="0">blackwater_mountain28</div>
+<div id="wild15_house" x-posx="349" x-posy="451" x-width="9" x-height="7" x-outside="0">wild15_house</div>
+<div id="catacombs3" x-posx="259" x-posy="379" x-width="20" x-height="20" x-outside="0">catacombs3</div>
+<div id="catacombs4" x-posx="267" x-posy="367" x-width="20" x-height="15" x-outside="0">catacombs4</div>
+<div id="blackwater_mountain29" x-posx="50" x-posy="306" x-width="22" x-height="16" x-outside="0">blackwater_mountain29</div>
+<div id="blackwater_mountain22" x-posx="44" x-posy="315" x-width="13" x-height="11" x-outside="0">blackwater_mountain22</div>
+<div id="blackwater_mountain23" x-posx="40" x-posy="317" x-width="7" x-height="8" x-outside="0">blackwater_mountain23</div>
+<div id="gargoylecave3" x-posx="403" x-posy="401" x-width="11" x-height="20" x-outside="0">gargoylecave3</div>
+<div id="remgard1" x-posx="652" x-posy="83" x-width="30" x-height="30" x-outside="1">remgard1</div>
+<div id="blackwater_mountain24" x-posx="40" x-posy="311" x-width="7" x-height="8" x-outside="0">blackwater_mountain24</div>
+<div id="remgard0" x-posx="621" x-posy="76" x-width="30" x-height="30" x-outside="1">remgard0</div>
+<div id="gargoylecave4" x-posx="419" x-posy="413" x-width="12" x-height="8" x-outside="0">gargoylecave4</div>
+<div id="blackwater_mountain25" x-posx="40" x-posy="289" x-width="11" x-height="24" x-outside="0">blackwater_mountain25</div>
+<div id="remgard3" x-posx="631" x-posy="107" x-width="20" x-height="25" x-outside="1">remgard3</div>
+<div id="gargoylecave1" x-posx="428" x-posy="422" x-width="20" x-height="20" x-outside="0">gargoylecave1</div>
+<div id="remgard2" x-posx="652" x-posy="114" x-width="29" x-height="20" x-outside="1">remgard2</div>
+<div id="gargoylecave2" x-posx="407" x-posy="422" x-width="20" x-height="20" x-outside="0">gargoylecave2</div>
+<div id="blackwater_mountain20" x-posx="87" x-posy="245" x-width="20" x-height="10" x-outside="0">blackwater_mountain20</div>
+<div id="remgard4" x-posx="600" x-posy="107" x-width="30" x-height="30" x-outside="1">remgard4</div>
+<div id="blackwater_mountain21" x-posx="54" x-posy="315" x-width="20" x-height="12" x-outside="0">blackwater_mountain21</div>
+<div id="wild14_cave" x-posx="335" x-posy="432" x-width="15" x-height="15" x-outside="0">wild14_cave</div>
+<div id="tradehouse0" x-posx="384" x-posy="385" x-width="18" x-height="12" x-outside="0">tradehouse0</div>
+<div id="tradehouse1" x-posx="348" x-posy="419" x-width="18" x-height="8" x-outside="0">tradehouse1</div>
+<div id="crossroads" x-posx="187" x-posy="298" x-width="30" x-height="30" x-outside="1">crossroads</div>
+</worldmap>
\ No newline at end of file
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.PrintWriter;
+import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.Canvas;
import android.os.AsyncTask;
import android.os.Environment;
+import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
+import com.gpl.rpg.AndorsTrail.R;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.model.map.LayeredTileMap;
import com.gpl.rpg.AndorsTrail.model.map.MapLayer;
import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
import com.gpl.rpg.AndorsTrail.resource.tiles.TileCollection;
+import com.gpl.rpg.AndorsTrail.util.Coord;
import com.gpl.rpg.AndorsTrail.util.L;
public final class WorldMapController {
- public static void updateWorldMap(final WorldContext world, final PredefinedMap map, final LayeredTileMap mapTiles, final TileCollection cachedTiles) {
+
+ public static int WORLDMAP_SCREENSHOT_TILESIZE = 12;
+ public static int WORLDMAP_DISPLAY_TILESIZE = WORLDMAP_SCREENSHOT_TILESIZE;
+
+ public static void updateWorldMap(final WorldContext world, final PredefinedMap map, final LayeredTileMap mapTiles, final TileCollection cachedTiles, final Resources res) {
+
+ if (!shouldUpdateWorldMap(map)) return;
+
(new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... arg0) {
-
- File file = getFileForMap(map);
- if (file.exists()) return null;
-
- try {
- Bitmap image = new MapRenderer(world, map, mapTiles, cachedTiles).drawMap();
- ensureWorldmapDirectoryExists();
- FileOutputStream fos = new FileOutputStream(file);
- image.compress(Bitmap.CompressFormat.PNG, 70, fos);
- fos.flush();
- fos.close();
- image.recycle();
- } catch (IOException e) {
- L.log("Error creating worldmap file for map " + map.name + " : " + e.toString());
- }
+ final MapRenderer renderer = new MapRenderer(world, map, mapTiles, cachedTiles);
+ updateCachedBitmap(map, renderer);
+ try {
+ updateCombinedWorldMap(res, world);
+ } catch (IOException e) {}
return null;
}
}).execute();
}
+
+ private static boolean isVisibleOnWorldMap(PredefinedMap map) {
+ return map.isOutdoors;
+ }
+
+ private static boolean shouldUpdateWorldMap(PredefinedMap map) {
+ if (!isVisibleOnWorldMap(map)) return false;
+ if (!map.visited) return true;
+ File file = getFileForMap(map);
+ if (!file.exists()) return true;
+
+ if (map.lastVisitVersion < AndorsTrailApplication.CURRENT_VERSION) return true;
+
+ file = getCombinedWorldMapFile();
+ if (!file.exists()) return true;
+
+ return false;
+ }
+
+ private static void updateCachedBitmap(PredefinedMap map, MapRenderer renderer) {
+
+ File file = getFileForMap(map);
+ if (file.exists()) return;
+
+ try {
+ Bitmap image = renderer.drawMap();
+ ensureWorldmapDirectoryExists();
+ FileOutputStream fos = new FileOutputStream(file);
+ image.compress(Bitmap.CompressFormat.PNG, 70, fos);
+ fos.flush();
+ fos.close();
+ image.recycle();
+ } catch (IOException e) {
+ L.log("Error creating worldmap file for map " + map.name + " : " + e.toString());
+ }
+ }
private static final class MapRenderer {
private final PredefinedMap map;
private final LayeredTileMap mapTiles;
private final TileCollection cachedTiles;
private final int tileSize;
- private static final int outputTileSize = 16;
private final float scale;
private final Paint mPaint = new Paint();
this.mapTiles = mapTiles;
this.cachedTiles = cachedTiles;
this.tileSize = world.tileManager.tileSize;
- this.scale = (float) outputTileSize / world.tileManager.tileSize;
- L.log("outputTileSize=" + outputTileSize + ", tileSize=" + tileSize + ", scale=" + scale);
+ this.scale = (float) WORLDMAP_SCREENSHOT_TILESIZE / world.tileManager.tileSize;
}
public Bitmap drawMap() {
- Bitmap image = Bitmap.createBitmap(map.size.width * outputTileSize, map.size.height * outputTileSize, Config.RGB_565);
+ Bitmap image = Bitmap.createBitmap(map.size.width * WORLDMAP_SCREENSHOT_TILESIZE, map.size.height * WORLDMAP_SCREENSHOT_TILESIZE, Config.RGB_565);
image.setDensity(Bitmap.DENSITY_NONE);
Canvas canvas = new Canvas(image);
canvas.scale(scale, scale);
dir = new File(dir, Constants.FILENAME_WORLDMAP_DIRECTORY);
if (!dir.exists()) dir.mkdir();
}
- private static File getFileForMap(PredefinedMap map) {
+ public static File getFileForMap(PredefinedMap map) {
File root = getWorldmapDirectory();
return new File(root, map.name + ".png");
}
- private static File getWorldmapDirectory() {
+ public static File getWorldmapDirectory() {
File dir = Environment.getExternalStorageDirectory();
dir = new File(dir, Constants.FILENAME_SAVEGAME_DIRECTORY);
return new File(dir, Constants.FILENAME_WORLDMAP_DIRECTORY);
}
+ public static File getCombinedWorldMapFile() {
+ return new File(getWorldmapDirectory(), Constants.FILENAME_WORLDMAP_HTMLFILE);
+ }
+
+ private static String getCombinedWorldMapAsHtml(Resources res, WorldContext world) throws IOException {
+ StringBuffer sb = new StringBuffer();
+
+ Coord offsetWorldmapTo = new Coord(999999, 999999);
+ for (PredefinedMap map : world.maps.predefinedMaps) {
+ File f = WorldMapController.getFileForMap(map);
+ if (!f.exists()) continue;
+
+ offsetWorldmapTo.x = Math.min(offsetWorldmapTo.x, map.worldMapPosition.x);
+ offsetWorldmapTo.y = Math.min(offsetWorldmapTo.y, map.worldMapPosition.y);
+ }
+
+ for (PredefinedMap map : world.maps.predefinedMaps) {
+ File f = WorldMapController.getFileForMap(map);
+ if (!f.exists()) continue;
+
+ sb
+ .append("<img src=\"")
+ .append(f.getName())
+ .append("\" id=\"")
+ .append(map.name)
+ .append("\" style=\"width: ")
+ .append(map.size.width * WorldMapController.WORLDMAP_DISPLAY_TILESIZE)
+ .append("px; height: ")
+ .append(map.size.height * WorldMapController.WORLDMAP_DISPLAY_TILESIZE)
+ .append("px; position: absolute; left: ")
+ .append((map.worldMapPosition.x - offsetWorldmapTo.x) * WorldMapController.WORLDMAP_DISPLAY_TILESIZE)
+ .append("px; top: ")
+ .append((map.worldMapPosition.y - offsetWorldmapTo.y) * WorldMapController.WORLDMAP_DISPLAY_TILESIZE)
+ .append("px;\" />");
+ }
+
+ return res.getString(R.string.worldmap_template)
+ .replace("{{maps}}", sb.toString())
+ .replace("{{offsetx}}", Integer.toString(offsetWorldmapTo.x * WorldMapController.WORLDMAP_DISPLAY_TILESIZE))
+ .replace("{{offsety}}", Integer.toString(offsetWorldmapTo.y * WorldMapController.WORLDMAP_DISPLAY_TILESIZE));
+ }
+
+ private static void updateCombinedWorldMap(Resources res, WorldContext world) throws IOException {
+ String mapAsHtml = getCombinedWorldMapAsHtml(res, world);
+ File outputFile = new File(WorldMapController.getWorldmapDirectory(), Constants.FILENAME_WORLDMAP_HTMLFILE);
+ PrintWriter pw = new PrintWriter(outputFile);
+ pw.write(mapAsHtml);
+ pw.close();
+ }
+
+ public static Coord getPlayerWorldPosition(WorldContext world) {
+ PredefinedMap map = world.model.currentMap;
+ if (!isVisibleOnWorldMap(map)) return null;
+
+ return new Coord(
+ world.model.player.position.x + map.worldMapPosition.x,
+ world.model.player.position.y + map.worldMapPosition.y
+ );
+ }
}