Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env bash
- # FreeCiv map to html
- # Created on Mac OS X
- declare -i i j left
- declare mapType="Classic" RiverOverlay="no" file htmlFile class
- declare -a lines
- file="${1}"
- [ "${file}" = "${file%.sav}" ] && echo "The file is not a FreeCiv .sav file." && exit
- [ ! -e "${file}" ] && echo "File not found." && exit
- # Is the map Isometric or Classic?
- topology_id=$( grep -A 20 '^\[map\]' "${file}" | grep '^topology_id=' | tr "\r" "\n" | cut -f 2 -d '=' )
- [ "${topology_id}" = '' ] && topology_id=0 # Older .sav files may not have topology_id and are Classic maps
- # If topology_id = 4 5 6 7 12 13 14 or 15 then map is isometric
- if [ ${topology_id} -eq 4 -o ${topology_id} -eq 5 -o ${topology_id} -eq 6 -o ${topology_id} -eq 7 -o ${topology_id} -eq 12 -o ${topology_id} -eq 13 -o ${topology_id} -eq 14 -o ${topology_id} -eq 15 ] ; then
- mapType="Isometric"
- fi
- # Does the .sav file include river overlay (n###=) section?
- [ $(grep -q '^n[0-9][0-9][0-9]="' "${file}" ; echo $?) ] && RiverOverlay="yes"
- htmlFile="${file}.html"
- echo '<!DOCTYPE html><head></head><body bgcolor="black"><style media="screen" type="text/css">html, body {height: 100%;white-space: nowrap}' > "${htmlFile}"
- if [ "${mapType}" = "Classic" ] ; then
- echo '.tSBlank {width: 12px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhDAAMALMBAAYA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAEALAAAAAAMAAwAAAQNMMhJq7046827/yAWAQA7)}.tSRudl {width: 12px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhDAAMALMBAAYA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAEALAAAAAAMAAwAAAQaMEgJwLyzYqx3th4FflXJlWYYdCHruRt8YhEAOw==)}.tSRudr {width: 12px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhDAAMALMBAAYA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAEALAAAAAAMAAwAAAQZMEgJwLyzYqx3th4FhlXZfeYohit7eu8WRwA7)}.tSRdl {width: 12px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhDAAMAIABAAYA/////yH5BAEAAAEALAAAAAAMAAwAAAIRjI+py+0JogRwRndbZnt19RUAOw==)}.tSRdr {width: 12px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhDAAMAIABAAYA/////yH5BAEAAAEALAAAAAAMAAwAAAISjI+py+0OogRpykpbhJlt3RkFADs=)}.tSRudlr {width: 12px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhDAAMAIABAAYA/////yH5BAEAAAEALAAAAAAMAAwAAAIXjA1we8nsXlMS0Zmy3jzOaoGBJ5GPWQAAOw==)}.tSRul {width: 12px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhDAAMAIABAAYA/////yH5BAEAAAEALAAAAAAMAAwAAAIUjA1we8nsXlMS0ZkyzLr6D4ZiUAAAOw==)}.tSRur {width: 12px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhDAAMAIABAAYA/////yH5BAEAAAEALAAAAAAMAAwAAAIUjA1we8nsXlMS0ZpynPrWD4aiVAAAOw==)}.tSRdlr {width: 12px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhDAAMAIABAAYA/////yH5BAEAAAEALAAAAAAMAAwAAAISjI+py+0Jopy0Sghc1Llt3x0FADs=)}.tSRulr {width: 12px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhDAAMAIABAAYA/////yH5BAEAAAEALAAAAAAMAAwAAAIUjA1we8nsXlMS0Zmy3jzWD4ZiVQAAOw==)}.tSRlr {width: 12px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhDAAMAIABAAYA/////yH5BAEAAAEALAAAAAAMAAwAAAIOjI+py+0Jopy0yoezdgUAOw==)}.tSRud {width: 12px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhDAAMAIABAAYA/////yH5BAEAAAEALAAAAAAMAAwAAAIUjA1we8nsXlMS0RrxlZnv14Ef9BUAOw==)}.tSArctic {width: 12px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhDAAMAKIAANbW1t7e3u7u7fr6+vb29uXl5f7+/gAAACH5BAAAAAAALAAAAAAMAAwAAAM2aGqz7M0URkg0pAg5BwGSIRTTJIHmtWzKuHKmMlUkKS/qzU7jTDgYUqBSkRAEnoDCYyERAqYEADs=)}.tSDesert {width: 12px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhDAAMALMAANCvXdy8dN29dNa1ZuHDedWzY+HDe9u7cdOxYd6/dNu6cODBd8+tXuDBed/Ad9/AdiH5BAAAAAAALAAAAAAMAAwAAARf0KDAFGrjoZReMg8DYAUiVIgxIIMqCIRmGIvKcNrnVBijEQTGQIBYTA4phQCJeAwSxYdzUWAUAgXHQgA4LBQMygGDJSA2CUViMEztdtmGIIBxFAeKRaawVRQEBgQLDhEAOw==)}.tSForest {width: 12px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhDAAMALMAAFCNLIufRXBpJmmYNpeqRit2HImpP4eSQ5uySn6gOTx5IRtoEj+JJXOjPJGvRQ5QCiH5BAAAAAAALAAAAAAMAAwAAARXUIHhwAMoGybXQEIQIA5TTEXhHGzQmIPpNYM4AAygFM8QZzjGQbEAJHSOSo4VQlF8jADrEFMoHI0dwlCxLnqIHYFgSOwWBW5CQDKUBaEEV0DIjKeBMSECADs=)}.tSGrassland {width: 12px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhDAAMALMAAAuRBAqLAwt9AgyaBQd0AgtzAgqGAwmLBAl6AgdxAgl3Agh+AgqDAgl8AgZ2Agl+AyH5BAAAAAAALAAAAAAMAAwAAARh0KCXmkorgQVmEo/TNIAxMIaznMDDHAmTEAZpPADDeICi1I2DIXBwDRwAQQvhYAAaDBwgEUAcGghETgEIFATIwXH5GBBWw16hkA2czIADgTAQGD6+ZhcxKDwURA8INAkaEQA7)}.tSHill {width: 12px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhDAAMALMAACl0EUSJI2V2MiJlDDWDGG+QQk+MLFuGNEqRJlZ/JQ6LBhRdBECCIl+YN1aRLzl5HCH5BAAAAAAALAAAAAAMAAwAAARXsDkGAGsFAYeMecvTSF1gMMwAIAhHPMzzAE9gs9SgMoZtBo/BYnHoEQg/0DDxIAAInsNBOEhQLCbHdAFICGA3A0AnEwgOPOBQpvCeT0OdYg4QFAQp1TwCADs=)}.tSJungle {width: 12px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhDAAMALMAAG52NmFeMGY9ExU9FRhEF3eFPGNsNUpKIolWC55yHh46E0pKJkq+SjaiJjZ2EhM2EiH5BAAAAAAALAAAAAAMAAwAAARTsK3nWrXNTsdY7g/hPEvDDA/zZOGTOigzjuRKkE3tkuPmTpmDirejOAqCIqmjcigOCMFBIRAkAoGEQpFgKAIIpOA5LSQeYcTBgTAcDADAA2tQPCIAOw==)}.tSLake {width: 12px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhDAAMALMAADhJoFdsw1FlvURYsE1iuUpetUVUq0FUq0ZZsT9Pp01huDxMpENWrUhctEFTqz1NpSH5BAAAAAAALAAAAAAMAAwAAARiMJ3nCmsIsNM2MANTIMvSNElSrIcjXIWzPA2RIErHPAOQOATEqTBYGBQJBkKJAjwQB0GyECAQBLIHgPB4MAIBAcbhJD0M4IDikCAUBADAW+1gOAbgeBqZANQEIz8iEgoCOREAOw==)}.tSMountain {width: 12px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhDAAMALMAABaPDU94Jm5wV7OujQ55BnV0bnOaZrW0naukd4uPaqGbbXJ7No2ocoWHTmZsPpmcjyH5BAAAAAAALAAAAAAMAAwAAARJEBAiATOVanBeSRMlBcNxFIUgUcZRnqkwMQiilLHjLI1Sm7kFz2fypHTCBgKHEggcAV4CkXAeodFG47l7BgCBLBc6AUgcW2wlAgA7)}.tSOceanDeep {width: 12px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhDAAMALMAAAAIewAcgQAkiAAYfgAyigAegQAOfQAagQAIeAAPgQAIfQAOewAfgQAUfgAIdwAIdiH5BAAAAAAALAAAAAAMAAwAAARaMBihQGPrENQGBQliNE/SCNJ3ZVv3hWN5EoowPMEyEEJBNIVFwCQ47BYIhqBxKBATDKZBibAsCAQHQLBIeAKCaHNRcDQcHl4j81A4sJwseCFIPBiD8oiweyAiADs=)}.tSOcean {width: 12px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhDAAMALMAAB1BqBo9nBg8pDdZuSFFrCFEpCVJrRc7mCpOsylLqhw/nyVIpiFCnxA0nBU5mhc7myH5BAAAAAAALAAAAAAMAAwAAAReEJggnloDSRZOWABhCE3jCEoRJIsAAA6jOIoSDClwOM5TIKIAwlBQABichsAB6DwejMeCEFsoWCdAjVAbGBI/USPBJUh4BcHhdTOFCA/mhyMIPNahBcNqed2bUQMJEQA7)}.tSPlains {width: 12px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhDAAMALMAAGySJoKjNXOXKo2rO3u1M3mbLnWYLGiQJH+gMnyTJYalN4mnOoioOHyeMHCVKYimOiH5BAAAAAAALAAAAAAMAAwAAARg8KAglDHFoBsKEkYDAIbjBAOCMKWjFOx1zMkBjsqHAA5w+BeDxQAQGAtIhuLQQCAFyEGhsmASHYVGwcUIOBgCnxewEyg7jMegMTAMBg9B46FUBBZvxkCRThT4CgIPBAURADs=)}.tSSwamp {width: 12px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhDAAMALMAADZWMjRVeENSKS9GGyZNkDdSWDNgXSNFQCVKZTFOQ0JZTDthGC9ZWzhQHDlWGjNXGiH5BAAAAAAALAAAAAAMAAwAAARYkKDAjFVCLGeqCV0QKJhYGIBSFMmaZM7jCC2SJEG2Oc1AJwjCokHsNXiCB2DQY8YWgARgOTgMBgAG4wYQ+BCHTDTB6wUJgWnjcRQczgTATuY4BNCohX4fAQA7)}.tSTundra {width: 12px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhDAAMALMAAJOUkY2QW7W1tWaqQjZwFn+AfF2GNoqOP56enqKionWKSY6iXUpKSnZ2dnaOSl52NiH5BAAAAAAALAAAAAAMAAwAAARc8IXWVHDrLUUGYiACFECzIA1DMMhCogrDEUqRMEXzPAKAKI0ESbE4AAgPR0GAapQMC4fjRqkWCoyEI+kIAA9gAOOh0GCCCNQuuc4mghSHQj52PkAJAsHg4GPeCxEAOw==)}</style><body>' >> "${htmlFile}"
- else
- echo '.tIBlank {width: 18px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEgAMAIAAAP///wAAACH5BAEAAAAALAAAAAASAAwAAAINhI+py+0Po5y02otVAQA7)}.tIRuldr {width: 18px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEgAMAIABAAYA/////yH5BAEAAAEALAAAAAASAAwAAAIXjI+pywfQ2IvrQZomRnZz7QWgN4YmUgAAOw==)}.tIRurdl {width: 18px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEgAMAIABAAYA/////yH5BAEAAAEALAAAAAASAAwAAAIWjI+py40AXILywFgDzZfv+oFYRpZJAQA7)}.tIRuldb {width: 18px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEgAMAIABAAYA/////yH5BAEAAAEALAAAAAASAAwAAAIZjI+pywfQ2IvrQZomdhb38FUXomWjuaVYAQA7)}.tIRurdb {width: 18px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEgAMAIABAAYA/////yH5BAEAAAEALAAAAAASAAwAAAIajI+py40AXILywFgDzRe7a4DM9njlaGYqUwAAOw==)}.tIRubdl {width: 18px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEgAMAIABAAYA/////yH5BAEAAAEALAAAAAASAAwAAAIajI+pywfA3pKJTvpgM1lv7n3Z54SiSaZqUgAAOw==)}.tIRubdr {width: 18px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEgAMAIABAAYA/////yH5BAEAAAEALAAAAAASAAwAAAIajI+pywfA3pKJTvpgM1lvZH1OKAakeJaqUgAAOw==)}.tIRubdb {width: 18px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEgAMAIABAAYA/////yH5BAEAAAEALAAAAAASAAwAAAIcjI+pywfA3pKJTvpgM1lvnn1BOFqKCV6RJ7ZfAQA7)}.tIRubdn {width: 18px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEgAMALMBAAYA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAEALAAAAAASAAwAAAQZMMhJq714AoD39RX4gRuXSaV5rmzrvnBcRQA7)}.tIRuldl {width: 18px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEgAMALMBAAYA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAEALAAAAAASAAwAAAQaMMhJq714ApDx7tfGgdVHaiMpnoF5umwsBxEAOw==)}.tIRundb {width: 18px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEgAMALMBAAYA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAEALAAAAAASAAwAAAQZMMhJq704682710AIcKJUYqGVquO1frAVAQA7)}.tIRurdr {width: 18px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEgAMALMBAAYA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAEALAAAAAASAAwAAAQaMMhJq704UwB05d7EdWEAltKJmiralu8qTxEAOw==)}.tIGrassland {width: 18px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEgAMALMPAJjKlT+cOeHw4K/WrXi6dcrkyPT69FmnVCmUJBuLFQmCAwqEAwqCAwqDAwqGAwAAACH5BAEAAA8ALAAAAAASAAwAAARF8Mn5mGU0U6uU1dvVLIuHaVzHOIx6Spe1OM011xjHLLvDejNarFXzkRoNhfFjabAcpuUlVGI4Z6RPhvM0vUAyL2g71UQAADs=)}.tIOcean {width: 18px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEgAMALMPAPX3+36Syxw/oeLm80tntiRFpjNSq4ud0Bo9oGZ+wb/J5aCv2R1Aox9CpB5BowAAACH5BAEAAA8ALAAAAAASAAwAAARR8Mn5kEU0UyuYwdpkOYLDII0VXgjTmcK3oUxzIg7SNYKKGA2eI5gTdAqdz29I4pVIJocUYwmeGFCmgwCS/GzBlrSgylSlJgY3JDKMy2zvJRQBADs=)}.tISwamp {width: 18px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEgAMALMPAJytmU1gLTJOMDlTGCxMVE5rYYaZd8zWy/b39+bp5SVKiy1PbbnDrXmPZTlhHQAAACH5BAEAAA8ALAAAAAASAAwAAARJ8Mn5xBiCampFwBuHWZcDbtYSCIvldBxrYoRAKMScXe1QX6yczbEafICXpDJZudwIUGDwJPEEVoJsKYsyKmGh6ofQyoQnJLMmAgA7)}.tITundra {width: 18px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEgAMALMPAHCGT4WNc8vOw3B+WXqEZujr4/n5+H+Fc7zFr6SsmJ6qjo6XfLO5pe7w6t/h2AAAACH5BAEAAA8ALAAAAAASAAwAAARF8Mn5hh00U0sOwNrEXZ8VcgQAEMORgtJIpCunmtbhfvM+dIfLLGD5uAgBVgdXPCSVnZlJ9Bsag9PNJfDMnqqXUOYCo0QAADs=)}.tIPlains {width: 18px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEgAMALMPAJukNtXYrY6ZLaGpR8HHibO6cfr79pWeMers1eTmyfT16YeWKPHy5Lm/dK+1XQAAACH5BAEAAA8ALAAAAAASAAwAAARF8Mn5hBU0U+HWsdomfMcBAKB2jSdQDthkLQLduiR40SbujqxL6fRhkYaYC25UsgEcMYmwRgtGZZbDwnOAhmQD5PW7CkUAADs=)}.tIMountain {width: 18px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEgAMALMPAFaQQHFyW62vjPf59l5zMaPEmICJVMfUvJOTjZ6aYdnm1aqheImyd7GxnsDBqAAAACH5BAEAAA8ALAAAAAASAAwAAARU8Mn5QLuA6mlvQ9kmAQwgOF8AigBgNILQBHQQjqWxLPBcE60KgEAwJHq+ABHYGhYTixOipiRmWkRjjKoMcggBo4Fq1TgN4yXNS3EVadbbpoU2sCcRADs=)}.tIJungle {width: 18px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEgAMALMAAP///zaiJhM2EhU8EhpKFR46EzZ2EjeYIzekKEdaJEpKJkq+Sm52NnZfL4lWC55yHiH5BAEAAAAALAAAAAASAAwAAARZEEi5TFA1zD0DWRloLBwQVMIpjtUWGIgwWERMBIEgkNWNVxbUYmYAGHQpmIBg0S1wjQTgMDL4gkTdY+I4IheKATSx5VB3J2S5BHAwCoq4YM2WJOKOOttdjwAAOw==)}.tIHill {width: 18px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEgAMALMPAE2MKzB6F2ObS/f69q3KoZe8iT6EItHiy+Pr3cLXt83dwRZcBYOtcyNpCzt5HgAAACH5BAEAAA8ALAAAAAASAAwAAARQ8Mn5nHU0y+tCMJdWOUAHAMa5WJQFBA0gnMBiY5sDNukZ2A0exhJwGVIG26LhARE/hs/JAfQUR1apilnE5bSGoIeVIR4bS7Ko8gqq16P3JAIAOw==)}.tIDesert {width: 18px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEgAMALMPANy7cNu5bvbt2f38+fHkxuzasPr27OLGiObOmuDBe9m3bOjSn929dt+9ctm4cgAAACH5BAEAAA8ALAAAAAASAAwAAARK8Mn5lFU0UwuA1ZsCNOSFaVagOoDqnVKqBoqjuC8mi53XBQ1GTtFoNRKMhirISOkuqmTA43DQYBVRdRqwXlFQ6wU0sRTH5DI6EwEAOw==)}.tIArctic {width: 18px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEgAMAKIHAN7e3vr6+vb29u7u7eXl5f////7+/v///yH5BAEAAAcALAAAAAASAAwAAANEeLpXJIVJVowNca4qrCEEplWDJQAWYWSKk3pe4BW096BGKXSwnf+wkipSMciEvSHF0JH9hqyNYHD8rDQbo5GGpUyjiwQAOw==)}.tIForest {width: 18px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEgAMALMPAC5kFEV1Hm+PLvX48rjMp2+VVMTTnI6qb6a8g9nhzFx+LomiUYCeNdDdw+Lr2wAAACH5BAEAAA8ALAAAAAASAAwAAARY8MkXAg2l2im3DgogHNr1VYwQAAC4FBSCgEUYqCtYPbUtKhoWDoA4HAgrgEIgvDFZDEaIpVwBFdiWgMF6UFmg1k0R7U6+wNWWypFQU2pz+wzgsuftL2AeAQA7)}.tIOceanDeep {width: 18px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEgAMALMPAFZmqhEpiPX1+jJEl3mFvAAVfouWxMjM45qkzbS82tre7QAXgAAagAAbgAAbgQAAACH5BAEAAA8ALAAAAAASAAwAAARH8Mn5ii00U+uW1ZvVNMXiYRrnrM3CkKh0vQ7D1KzzWcta+o1bS3dZBBs115FUw3CQNhOj54CFTK6pjpjimYIfkEwVFo/LlAgAOw==)}.tILake {width: 18px;height: 12px;background-repeat: no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEgAMALMPAJW62KrI4Pf6/Mnb63amzd3p8jl+t0uIvFqSwipyritzsC11sTB3sy11si52swAAACH5BAEAAA8ALAAAAAASAAwAAARK8Mn5lFU0U9ua1du1OIqHaVaiLJ1jnpLIOCrJMlelOMw9rytGY3HZ/XrGnWPp0TF6iZGyR4I5l4zEsIGzxhSzJesD+mLJ5S+aEgEAOw==)}</style><body>' >> "${htmlFile}"
- fi
- if [ "${mapType}" = "Classic" ] ; then
- lines=( $( grep '^t[0-9][0-9][0-9]=\"' "${file}" | tr -s "\r" "\n" | sed -e 's/^t.*="//' -e 's/"$//' -e 's/ /~/g' ) )
- for ((i=0;i<${#lines[*]};i++)) ; do
- for ((j=0;j<${#lines[${i}]};j++)) ; do
- class=''
- case "${lines[${i}]:${j}:1}" in
- a|A ) class="tSArctic" ;;
- d|D ) class="tSDesert" ;;
- f|F ) class="tSForest" ;;
- g|G ) class="tSGrassland" ;;
- h|H ) class="tSHill" ;;
- j|J ) class="tSJungle" ;;
- m|M ) class="tSMountain" ;;
- p|P ) class="tSPlains" ;;
- s|S ) class="tSSwamp" ;;
- t|T ) class="tSTundra" ;;
- ':' ) class="tSOceanDeep" ;;
- '~' ) class="tSOcean" ;;
- '+' ) class="tSLake" ;;
- * ) echo "Unknown character: ${line:${i}:1}"
- class="tSBlank" ;;
- esac
- [ "${class}" != "" ] && echo -n "<div img class=\"${class}\" style=\"position: absolute;top: $((12*${i}+10))px; left: $((12*${j}+10))px;\"></div>" >> "${htmlFile}"
- done
- echo >> "${htmlFile}"
- done
- # River Overlay for Classic map. Old stlye river on terrain layer via capital letters not implemented (only the terrain will be generated.)
- if [ "${RiverOverlay}" = "yes" ] ; then
- lines=( $( grep '^n[0-9][0-9][0-9]=\"' "${file}" | tr -s "\r" "\n" | sed -e 's/^n.*="//' -e 's/"$//' ) )
- for ((i=0;i<${#lines[*]};i++)) ; do
- for ((j=0;j<${#lines[${i}]};j++)) ; do
- class=''
- TileAbove="${lines[$((${i}-1))]:${j}:1}"
- TileBelow="${lines[$((${i}+1))]:${j}:1}"
- TileLeft="${lines[${i}]:$((${j}-1)):1}"
- TileRight="${lines[${i}]:$((${j}+1)):1}"
- case "${lines[${i}]:${j}:1}" in
- 2 ) if [ "${TileAbove}" = "2" -a "${TileBelow}" = "2" -a "${TileLeft}" = "0" -a "${TileRight}" = "0" ] ; then
- class="tSRud"
- elif [ "${TileAbove}" = "2" -a "${TileBelow}" = "0" -a "${TileLeft}" = "0" -a "${TileRight}" = "0" ] ; then
- class="tSRud"
- elif [ "${TileAbove}" = "0" -a "${TileBelow}" = "2" -a "${TileLeft}" = "0" -a "${TileRight}" = "0" ] ; then
- class="tSRud"
- elif [ "${TileAbove}" = "0" -a "${TileBelow}" = "0" -a "${TileLeft}" = "2" -a "${TileRight}" = "2" ] ; then
- class="tSRlr"
- elif [ "${TileAbove}" = "0" -a "${TileBelow}" = "0" -a "${TileLeft}" = "0" -a "${TileRight}" = "2" ] ; then
- class="tSRlr"
- elif [ "${TileAbove}" = "0" -a "${TileBelow}" = "0" -a "${TileLeft}" = "2" -a "${TileRight}" = "0" ] ; then
- class="tSRlr"
- elif [ "${TileAbove}" = "0" -a "${TileBelow}" = "0" -a "${TileLeft}" = "0" -a "${TileRight}" = "0" ] ; then
- class="tSRlr"
- elif [ "${TileAbove}" = "2" -a "${TileBelow}" = "0" -a "${TileLeft}" = "2" -a "${TileRight}" = "2" ] ; then
- class="tSRulr"
- elif [ "${TileAbove}" = "0" -a "${TileBelow}" = "2" -a "${TileLeft}" = "2" -a "${TileRight}" = "2" ] ; then
- class="tSRdlr"
- elif [ "${TileAbove}" = "0" -a "${TileBelow}" = "2" -a "${TileLeft}" = "2" -a "${TileRight}" = "0" ] ; then
- class="tSRdl"
- elif [ "${TileAbove}" = "2" -a "${TileBelow}" = "0" -a "${TileLeft}" = "2" -a "${TileRight}" = "0" ] ; then
- class="tSRul"
- elif [ "${TileAbove}" = "2" -a "${TileBelow}" = "0" -a "${TileLeft}" = "0" -a "${TileRight}" = "2" ] ; then
- class="tSRur"
- elif [ "${TileAbove}" = "0" -a "${TileBelow}" = "2" -a "${TileLeft}" = "0" -a "${TileRight}" = "2" ] ; then
- class="tSRdr"
- elif [ "${TileAbove}" = "2" -a "${TileBelow}" = "2" -a "${TileLeft}" = "0" -a "${TileRight}" = "2" ] ; then
- class="tSRudr"
- elif [ "${TileAbove}" = "2" -a "${TileBelow}" = "2" -a "${TileLeft}" = "2" -a "${TileRight}" = "0" ] ; then
- class="tSRudl"
- else
- class="tSRudlr"
- fi
- echo -n "<div img class=\"${class}\" style=\"position: absolute;top: $((12*${i}+10))px; left: $((12*${j}+10))px;\"></div>" >> "${htmlFile}"
- ;;
- '0' ) ;;
- * ) echo "Unknown character: ${lines[${i}]:${j}:1}"
- echo -n "<div img class=\"tSBlank\" style=\"position: absolute;top: $((12*${i}+10))px; left: $((12*${j}+10))px;\"></div>" >> "${htmlFile}"
- ;;
- esac
- done
- echo >> "${htmlFile}"
- done
- fi
- else
- # For Isometric Maps
- lines=( $( grep '^t[0-9][0-9][0-9]=\"' "${file}" | tr -s "\r" "\n" | sed -e 's/^t.*="//' -e 's/"$//' -e 's/ /~/g' ) )
- for ((i=0;i<${#lines[*]};i++)) ; do
- if [ $((${i}%2)) -eq 1 ] ; then
- left=19
- else
- left=10
- fi
- for ((j=0;j<${#lines[${i}]};j++)) ; do
- class=''
- case "${lines[${i}]:${j}:1}" in
- a|A ) class="tIArctic" ;;
- d|D ) class="tIDesert" ;;
- f|F ) class="tIForest" ;;
- g|G ) class="tIGrassland" ;;
- h|H ) class="tIHill" ;;
- j|J ) class="tIJungle" ;;
- m|M ) class="tIMountain" ;;
- p|P ) class="tIPlains" ;;
- s|S ) class="tISwamp" ;;
- t|T ) class="tITundra" ;;
- ':' ) class="tIOceanDeep" ;;
- '~' ) class="tIOcean" ;;
- '+' ) class="tILake" ;;
- * ) echo "Unknown character: ${lines[${i}]:${j}:1}" ; class="tIBlank" ;;
- esac
- [ "${class}" != "" ] && echo -n "<div img class=\"${class}\" style=\"position: absolute;top: $((${i}*7+10))px; left: $((${j}*18+${left}))px;\"></div>" >> "${htmlFile}"
- done
- echo >> "${htmlFile}"
- done
- # River Overlay For Isometric Maps. Old stlye river on terrain layer via capital letters not implemented (only the terrain will be generated.)
- if [ "${RiverOverlay}" = "yes" ] ; then
- lines=( $( grep '^n[0-9][0-9][0-9]=\"' "${file}" | tr -s "\r" "\n" | sed -e 's/^n.*="//' -e 's/"$//' ) )
- for ((i=0;i<${#lines[*]};i++)) ; do
- if [ $((${i}%2)) -eq 1 ] ; then
- left=19
- else
- left=10
- fi
- for ((j=0;j<${#lines[${i}]};j++)) ; do
- class=''
- if [ $((${i}%2)) -eq 0 ] ; then
- TileUpLeft="${lines[$((${i}-1))]:$((${j}-1)):1}"
- TileUpRight="${lines[$((${i}-1))]:${j}:1}"
- TileDownLeft="${lines[$((${i}+1))]:$((${j}-1)):1}"
- TileDownRight="${lines[$((${i}+1))]:${j}:1}"
- else
- TileUpLeft="${lines[$((${i}-1))]:${j}:1}"
- TileUpRight="${lines[$((${i}-1))]:$((${j}+1)):1}"
- TileDownLeft="${lines[$((${i}+1))]:${j}:1}"
- TileDownRight="${lines[$((${i}+1))]:$((${j}+1)):1}"
- fi
- case "${lines[${i}]:${j}:1}" in
- 2 ) if [ "${TileUpLeft}" = "0" -a "${TileUpRight}" = "2" -a "${TileDownLeft}" = "2" -a "${TileDownRight}" = "2" ] ; then
- class="tIRurdb"
- elif [ "${TileUpLeft}" = "0" -a "${TileUpRight}" = "2" -a "${TileDownLeft}" = "0" -a "${TileDownRight}" = "2" ] ; then
- class="tIRurdr"
- elif [ "${TileUpLeft}" = "0" -a "${TileUpRight}" = "2" -a "${TileDownLeft}" = "0" -a "${TileDownRight}" = "0" ] ; then
- class="tIRurdl"
- elif [ "${TileUpLeft}" = "0" -a "${TileUpRight}" = "0" -a "${TileDownLeft}" = "2" -a "${TileDownRight}" = "0" ] ; then
- class="tIRurdl"
- elif [ "${TileUpLeft}" = "0" -a "${TileUpRight}" = "2" -a "${TileDownLeft}" = "2" -a "${TileDownRight}" = "0" ] ; then
- class="tIRurdl"
- elif [ "${TileUpLeft}" = "2" -a "${TileUpRight}" = "0" -a "${TileDownLeft}" = "2" -a "${TileDownRight}" = "2" ] ; then
- class="tIRuldb"
- elif [ "${TileUpLeft}" = "2" -a "${TileUpRight}" = "0" -a "${TileDownLeft}" = "2" -a "${TileDownRight}" = "0" ] ; then
- class="tIRuldl"
- elif [ "${TileUpLeft}" = "2" -a "${TileUpRight}" = "0" -a "${TileDownLeft}" = "0" -a "${TileDownRight}" = "2" ] ; then
- class="tIRuldr"
- elif [ "${TileUpLeft}" = "2" -a "${TileUpRight}" = "2" -a "${TileDownLeft}" = "2" -a "${TileDownRight}" = "2" ] ; then
- class="tIRubdb"
- elif [ "${TileUpLeft}" = "2" -a "${TileUpRight}" = "2" -a "${TileDownLeft}" = "2" -a "${TileDownRight}" = "0" ] ; then
- class="tIRubdl"
- elif [ "${TileUpLeft}" = "2" -a "${TileUpRight}" = "2" -a "${TileDownLeft}" = "0" -a "${TileDownRight}" = "2" ] ; then
- class="tIRubdr"
- elif [ "${TileUpLeft}" = "2" -a "${TileUpRight}" = "2" -a "${TileDownLeft}" = "0" -a "${TileDownRight}" = "0" ] ; then
- class="tIRubdn"
- elif [ "${TileUpLeft}" = "0" -a "${TileUpRight}" = "0" -a "${TileDownLeft}" = "2" -a "${TileDownRight}" = "2" ] ; then
- class="tIRundb"
- elif [ "${TileUpLeft}" = "0" -a "${TileUpRight}" = "0" -a "${TileDownLeft}" = "0" -a "${TileDownRight}" = "2" ] ; then
- class="tIRuldr"
- elif [ "${TileUpLeft}" = "2" -a "${TileUpRight}" = "0" -a "${TileDownLeft}" = "0" -a "${TileDownRight}" = "0" ] ; then
- class="tIRuldr"
- else
- class="tIRubdb"
- fi
- echo -n "<div img class=\"${class}\" style=\"position: absolute;top: $((${i}*7+10))px; left: $((${j}*18+${left}))px;\"></div>" >> "${htmlFile}"
- ;;
- '0' ) ;;
- * ) echo "Unknown character: ${lines[${i}]:${j}:1}"
- echo -n "<div img class=\"tIBlank\" style=\"position: absolute;top: $((${i}*7+10))px; left: $((${j}*18+${left}))px;\"></div>" >> "${htmlFile}"
- ;;
- esac
- done
- echo >> "${htmlFile}"
- done
- fi
- fi
- echo "</body></html>" >> "${htmlFile}"
- open "${htmlFile}"
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement