', $maptext);
$maptext = str_replace('{-', '
', $maptext);
$maptext = str_replace('}', "
", $maptext);
$maptext = '
' . $maptext . '
';
if ($has_border==0)
{
$version_text="
Map format: 1.3.9";
}
else
{
$version_text="
Map format: 1.3.10+";
}
// build the page given the original maptext and new maptext
$maptext = $maptext . $version_text;
return $maptext;
}
function WesnothMapOld( $maptext )
{
global $phpbb_root_path;
$origmaptext = $maptext;
$maxrowwidth = 0;
$newmaptext = '';
// $maptext = htmlentities($maptext);
// Split each row of the map into two half-rows
// Thanks to zircu and Ox41464b from irc://irc.freenode.net/#php
// for help with the logic here
$lines=explode("<br />", $maptext);
foreach ($lines as $line)
{
$even = '';
$odd = '';
for ($i=0; $i < strlen($line); $i++)
{
if ($line{$i} >= ' ')
if ($i % 2) $odd .= $line{$i};
else $even .= $line{$i};
}
if ($i > $maxrowwidth) $maxrowwidth = $i;
$newmaptext .= '{+' . $even . "}"; // tags for odd and even line css
$newmaptext .= '{-' . $odd . "}"; // markup, applied later.
}
$maptext = $newmaptext;
// calculate tile sizes, try to keep the map under 720px wide
$quartersize = min(floor(270 / $maxrowwidth),9); // 9 is full size
$halfsize = $quartersize*2;
$threesize = $quartersize*3;
$size = $quartersize*4; // width of a full square tile
$size = max($size,3);
// if the hexes are to be shrunk by the browser then we have to overlap them
// to avoid problems with anti-aliased edges not covering each other
if ($quartersize<9) $offset=1;
// loop through the map, find each letter and convert it to an html
// img tag with the appropriate filename and markup
$newmaptext = '';
$firsthalf = TRUE;
$xcoord=-1;
$ycoord=1;
for ($i = 0; $i < strlen($maptext); $i++)
{
switch ($maptext[$i])
{
case '{': case '}': case '+': case '-':
$newmaptext .= $maptext{$i}; break; // control characters from earlier
case 'A': $image = 'village-human-snow-hills-tile.png'; $terrain = 'Village (Hills)'; break;
case 'a': $image = 'village-human-hills-tile.png'; $terrain = 'Village (Hills)'; break;
case 'B': $image = 'village-desert-tile.png'; $terrain = 'Village (Desert)'; break;
case 'b': $image = 'village-human-mountain-tile.png'; $terrain = 'Village (Mountains)'; break;
case 'C': $image = 'castle-tile.png'; $terrain = 'Castle'; break;
case 'c': $image = 'coast.png'; $terrain = 'Shallow Water'; break;
case 'D': $image = 'village-cave-tile.png'; $terrain = 'Village (Cave)'; break;
case 'd': $image = 'sand.png'; $terrain = 'Sand'; break;
case 'E': $image = 'desert-road.png'; $terrain = 'Road (Grassland)'; break;
case 'e': $image = 'village-elven-snow-tile.png'; $terrain = 'Village'; break;
case 'F': $image = 'snow-forest-tile.png'; $terrain = 'Snow Forest'; break;
case 'f': $image = 'forest-tile.png'; $terrain = 'Forest'; break;
case 'G': $image = 'savanna.png'; $terrain = 'Savanna (Grassland)'; break;
case 'g': $image = 'grassland-r1.png'; $terrain = 'Grassland'; break;
case 'H': $image = 'snow-hills.png'; $terrain = 'Snow Hills'; break;
case 'h': $image = 'hills-variation1.png'; $terrain = 'Hills'; break;
case 'I': $image = 'desert2.png'; $terrain = 'Desert (Sand)'; break;
case 'i': $image = 'ice.png'; $terrain = 'Ice (Snow)'; break;
case 'J': $image = 'desert-hills.png'; $terrain = 'Dunes (Sand, Hills)'; break;
case 'j': $image = 'unknown.png'; $terrain = '[future Snowy Mountains]'; break;
case 'K': $image = 'keep-tile.png'; $terrain = 'Keep (Castle)'; break;
case 'k': $image = 'ford.png'; $terrain = 'River Ford (Shallow Water, Grassland)'; break;
case 'L': $image = 'village-tropical-tile.png'; $terrain = 'Village (Savanna)'; break;
case 'l': $image = 'lava.png'; $terrain = 'Lava (Chasm)'; break;
case 'M': $image = 'desert-mountains.png'; $terrain = 'Mountains'; break;
case 'm': $image = 'mountain-tile.png'; $terrain = 'Mountains'; break;
case 'N': $image = 'castle-ruin-tile.png'; $terrain = 'Ruin (Castle)'; break;
case 'n': $image = 'encampment-tile.png'; $terrain = 'Encampment (Castle)'; break;
case 'O': $image = 'unknown.png'; $terrain = '[future Orc Castle]'; break;
case 'o': $image = 'dwarven_castle-tile.png'; $terrain = 'Dwarven Castle'; break;
case 'P': $image = 'desert-oasis.png'; $terrain = 'Oasis (Desert)'; break;
case 'p': $image = 'village-dwarven-tile.png'; $terrain = 'Village (Cave)'; break;
case 'Q': $image = 'castle-sunken-ruin-tile.png'; $terrain = 'Sunken Ruin (Castle, Shallow Water)'; break;
case 'q': $image = 'castle-swamp-ruin-tile.png'; $terrain = 'Swamp Ruin (Castle)'; break;
case 'R': $image = 'road2.png'; $terrain = 'Road (Grassland)'; break;
case 'r': $image = 'dirt.png'; $terrain = 'Dirt (Grassland)'; break;
case 'S': $image = 'snow2.png'; $terrain = 'Snow'; break;
case 's': $image = 'ocean.png'; $terrain = 'Deep Water'; break;
case 'T': $image = 'tropical-forest-tile.png'; $terrain = 'Tropical Forest'; break;
case 't': $image = 'village-elven-tile.png'; $terrain = 'Village'; break;
case 'U': $image = 'village-desert2-tile.png'; $terrain = 'Village (Desert)'; break;
case 'u': $image = 'cave-floor.png'; $terrain = 'Cave'; break;
case 'V': $image = 'village-snow-tile.png'; $terrain = 'Village (Snow)'; break;
case 'v': $image = 'village-human-tile.png'; $terrain = 'Village'; break;
case 'W': $image = 'cavewall.png'; $terrain = 'Cave Wall'; break;
case 'w': $image = 'swampwater2.png'; $terrain = 'Swamp'; break;
case 'X': $image = 'chasm-tile.png'; $terrain = 'Chasm'; break;
case 'x': $image = 'unknown.png'; $terrain = '[reserved for UMCs]'; break;
case 'Y': $image = 'village-swampwater-tile.png'; $terrain = 'Village (Swamp)'; break;
case 'y': $image = 'unknown.png'; $terrain = '[reserved for UMCs]'; break;
case 'Z': $image = 'village-coast-tile.png'; $terrain = 'Village (Shallow Water)'; break;
case 'z': $image = 'unknown.png'; $terrain = '[reserved for UMCs]'; break;
case '/': $image = 'bridge-ne-sw-tile.png'; $terrain = 'Bridge (Grassland, Shallow Water)'; break;
case '|': $image = 'bridge-n-s-tile.png'; $terrain = 'Bridge (Grassland, Shallow Water)'; break;
case '\\':$image = 'bridge-se-nw-tile.png'; $terrain = 'Bridge (Grassland, Shallow Water)'; break;
case '~': $image = 'fog.png'; $terrain = 'Fog'; break;
case ' ': $image = 'void.png'; $terrain = 'Shroud'; break; // the real void tile
case '*': $image = 'unknown.png'; $terrain = '[reserved for UMCs]'; break;
case '^': $image = 'unknown.png'; $terrain = '[reserved for UMCs]'; break;
case '%': $image = 'unknown.png'; $terrain = '[reserved for UMCs]'; break;
case '@': $image = 'unknown.png'; $terrain = '[reserved for UMCs]'; break;
case '[': $image = 'cave-hills-variation1.png'; $terrain = 'Rockbound Cave (Cave, Hills)'; break;
case ']': $image = 'mushrooms-tile.png'; $terrain = 'Mushroom Grove'; break;
case '\'':$image = 'cave-beam-tile.png'; $terrain = 'Lit Cave'; break;
case '?': $image = 'great-tree-tile.png'; $terrain = 'Great Tree (Forest)'; break;
case '&': $image = 'impassable-mountains-tile.png'; $terrain = 'Impassable Mountains'; break;
case '"': $image = 'unknown.png'; $terrain = '[unknown]'; break; // ???
case '$': $image = 'unknown.png'; $terrain = '[unknown]'; break; // ???
case '.': $image = 'unknown.png'; $terrain = '[unknown]'; break; // ???
case ';': $image = 'unknown.png'; $terrain = '[unknown]'; break; // ???
case ':': $image = 'unknown.png'; $terrain = '[unknown]'; break; // ???
case '<': $image = 'unknown.png'; $terrain = '[unknown]'; break; // ???
case '>': $image = 'unknown.png'; $terrain = '[unknown]'; break; // ???
case '_': $image = 'unknown.png'; $terrain = '[unknown]'; break; // ???
case '`': $image = 'unknown.png'; $terrain = '[unknown]'; break; // ???
case '0': $image = 'keep-tile-p0.png'; $terrain = 'Keep [Player 10]';break; // Player start positions.
case '1': $image = 'keep-tile-p1.png'; $terrain = 'Keep [Player 1]'; break; // Doesnt always render as
case '2': $image = 'keep-tile-p2.png'; $terrain = 'Keep [Player 2]'; break; // a keep in the game, but
case '3': $image = 'keep-tile-p3.png'; $terrain = 'Keep [Player 3]'; break; // its the most likely tile
case '4': $image = 'keep-tile-p4.png'; $terrain = 'Keep [Player 4]'; break; // to always use.
case '5': $image = 'keep-tile-p5.png'; $terrain = 'Keep [Player 5]'; break; // Each tile has a colored
case '6': $image = 'keep-tile-p6.png'; $terrain = 'Keep [Player 6]'; break; // numeral on it, indicating
case '7': $image = 'keep-tile-p7.png'; $terrain = 'Keep [Player 7]'; break; // the player's number and
case '8': $image = 'keep-tile-p8.png'; $terrain = 'Keep [Player 8]'; break; // color used during the
case '9': $image = 'keep-tile-p9.png'; $terrain = 'Keep [Player 9]'; break; // game.
default: return '
Error Parsing map contents, illegal character '.$maptext[$i].''; break; // illegal character
}
switch ($maptext[$i])
{
case '{': case '+': case '-':
break; // control characters from earlier
case '}':
$firsthalf=!$firsthalf;
if($firsthalf) {
$ycoord++;
$xcoord=-1;
}
else
{
$xcoord=0;
}
break;
default:
$xcoord+=2;
$newmaptext .= '
![' . $xcoord . ',' . $ycoord . ' : ' . $terrain . ' ' . $maptext[$i] . '](../images/maptiles/' . $image . ')
'; break;
}
}
$maptext = $newmaptext;
// insert the markup over all the { } (+ (- ) markers from earlier
// thanks to GarethAdams from irc:// irc.freenode.net/#html for CSS help
$maptext = str_replace('{+', '
', $maptext);
$maptext = str_replace('{-', '
', $maptext);
$maptext = str_replace('}', "
", $maptext);
$maptext = '
' . $maptext . '
';
// build the page given the original maptext and new maptext
$maptext = $maptext . '
Map format: 1.2.x
Download this map';
return $maptext;
}
$map = $_POST['wesnoth_map_data'];
echo WesnothMap($map);
?>