function worldmapen_loadMap($z = 1) { global $worldmapen_globals; if (!isset($worldmapen_globals["map"]) || is_null($worldmapen_globals["map"])) { // debug("Loading worldmap from database"); $map = get_module_setting("TerrainDefinition", "worldmapen"); // debug("map={$map}"); if (!is_null($map)) { $worldmapen_globals["map"] = unserialize($map); } else { $worldmapen_globals["map"] = worldmapen_generateNewMap("Forest"); worldmapen_saveMap(); } } // debug("Got worldmap:"); // debug($worldmapen_globals["map"]); return $worldmapen_globals["map"][$z]; }
function worldmapen_editor_terrain($op, $subop, $act) { global $_POST, $worldmapen_globals; if ($act == "save") { $terrainDefs = worldmapen_loadTerrainDefs(); reset($_POST); foreach ($_POST as $key => $value) { list($x, $y) = explode("_", $key, 2); if (is_numeric($x) && is_numeric($y)) { worldmapen_setTerrain($x, $y, 1, $value); } } worldmapen_saveMap(); output("Worldmap saved"); } $colors = ''; foreach ($worldmapen_globals['terrainDefs'] as $defs) { $colors .= '"' . $defs['color'] . '", '; } $colors = rtrim($colors, ', '); // ----------------------------------------------------------------------- // BEGIN - Java script to determine the terrain type by clicking on a td cell // ----------------------------------------------------------------------- rawoutput("<script type=\"text/javascript\"><!--"); rawoutput('colors = [' . $colors . '];'); rawoutput("cRGB = [];"); rawoutput("function toRGB(color){"); rawoutput("var rgb = \"rgb(\" + parseInt(color.substring(1,3), 16) + \", \" + parseInt(color.substring(3,5), 16) + \", \" + parseInt(color.substring(5,8), 16) + \")\"; "); rawoutput("return rgb;"); rawoutput("}"); rawoutput("for(var i=0; i<colors.length; i++){"); rawoutput("cRGB[i] = toRGB(colors[i]);"); rawoutput("}"); rawoutput("function changeColor(target){"); rawoutput("var swapper = navigator.appVersion.indexOf(\"MSIE\")!=-1 ? toRGB(document.getElementById(target).style.backgroundColor) : document.getElementById(target).style.backgroundColor;"); rawoutput("var set = false;"); rawoutput("var xx;"); rawoutput("for(var i=0; i<cRGB.length; i++){"); rawoutput("if(swapper == cRGB[i]){"); rawoutput("if(((i+1)) >= cRGB.length){"); rawoutput("xx = 0;"); rawoutput("}else{"); rawoutput("xx = i+1;"); rawoutput("}"); rawoutput("document.getElementById(target).style.background = colors[xx];"); rawoutput("document.getElementById(target+\"b\").value = xx;"); rawoutput("set = true;"); rawoutput("i=cRGB.length;"); rawoutput("}"); rawoutput("}"); rawoutput("set ? null : (document.getElementById(target).style.background = colors[1], document.getElementById(target+\"b\").value = 1);"); rawoutput("}//-->"); rawoutput("</script>"); // ----------------------------------------------------------------------- // END - Java script to determine the terrain type by clicking on a td cell // ----------------------------------------------------------------------- output('<noscript>JavaScript must be enabled for the terrain editor to work.</noscript>', true); worldmapen_viewmap(false); }