I'm not asking for advanced programming skills. Anything you cannot do (either because you don't understand my code or because you're not familiar with the methods I'm using - this especially applies to session security and database maintainence) - I can do.
So I'm making an appeal to any coders out there with some free time. I've included some code below that's part of the mapping code. If you can explain what it means in plain terms you might be able to help me!
Code: Select all
// Set this to false if the public can view this page.
$private_page = false;
include ('common/config.php');
include ('common/sessions.php');
// BEGIN MAIN CODE
$map = new Map_Management();
$gd = new GD_Management();
// Get random system
if ($_SESSION['logged_in'] == true) {
if ($_GET['x'] || $_GET['y']) {
$x = $_GET['x'];
$y = $_GET['y'];
$smarty->assign('x', $x);
$smarty->assign('y', $y);
}
else {
$system = $map->random_system($nation_id);
$x = $system['x'];
$y = $system['y'];
$smarty->assign('x', $x);
$smarty->assign('y', $y);
}
}
else {
if ($_GET['x'] || $_GET['y']) {
$x = $_GET['x'];
$y = $_GET['y'];
$smarty->assign('x', $x);
$smarty->assign('y', $y);
}
else {
$x = 500;
$y = 500;
$smarty->assign('x', $x);
$smarty->assign('y', $y);
}
}
if ($_GET['s']) {
$x = $_GET['x'];
$y = $_GET['y'];
$system_id = $_GET['s'];
$smarty->assign('system', 'true');
$smarty->assign('y', $y);
$smarty->assign('s', $s);
$smarty->assign('x', $x);
}
// Variables
switch ($_GET['mode']) {
case 'img':
$tiledimensions = 40;
$mapdimension = 16;
$src_img = "templates/map/blank.png";
$image = imagecreatefrompng($src_img);
// Colours
$white = imagecolorallocate($image, 255, 255, 255);
$influence = imagecreatefrompng("templates/map/influence.png");
// Get map data
$x = $_GET['x'];
$y = $_GET['y'];
$tile_array = $map->tile_array($x - 8, $y - 8, (16 + $x), (16 + $y));
if (empty($tile_array)) {
$tile_array[0] = 0;
}
foreach($tile_array as $coord_data) {
$coords = $gd->convert_coords($x - 8, $y - 8, $coord_data['x'], $coord_data['y']);
$sx = $coords['x'];
$sy = $coords['y'];
imagecolortransparent($influence,imagecolorat($influence,0,0));
imagecopymerge($image, $influence, $sx - 20, $sy - 20, 0, 0, 80, 80, 35);
}
foreach($tile_array as $coord_data) {
$coords = $gd->convert_coords($x - 8, $y - 8, $coord_data['x'], $coord_data['y']);
$sx = $coords['x'];
$sy = $coords['y'];
if (substr($coord_data['type'], 0, 3) == "sun") {
$type = $gd->sun_type($coord_data['type']);
imagecolortransparent($type,imagecolorat($type,0,0));
}
else {
$type = imagecreatefrompng("templates/map/".$coord_data['type'].".png");
imagecolortransparent($type,imagecolorat($type,0,0));
}
imagecopymerge($image, $type, $sx, $sy, 0, 0, 40, 40, 100);
}
header('Content-type: image/png');
imagejpeg($image);
break;
case 'system':
$tiledimensions = 40;
$mapdimension = 16;
$src_img = "templates/map/blank.png";
$image = imagecreatefrompng($src_img);
imagealphablending($image,true);
imageantialias($image,true);
$system_id = $_GET['s'];
// Colours
$white = imagecolorallocate($image, 64, 64, 64);
// Get map data
if (!$_GET['x'] || !$_GET['y']) {
$x = 500;
$y = 500;
}
else {
$x = $_GET['x'];
$y = $_GET['y'];
}
$tile_array = $map->tile_array_system($x - 8, $y - 8, (16 + $x), (16 + $y), $system_id);
if (empty($tile_array)) {
$tile_array[0] = 0;
}
$sun_x = 300;
$sun_y = 300;
foreach($tile_array as $coord_data) {
$coords = $gd->convert_coords($x - 8, $y - 8, $coord_data['x'], $coord_data['y']);
$sx = $coords['x'];
$sy = $coords['y'];
if (substr($coord_data['type'], 0, 3) != "sun") {
// Find distance between planet and center of map
$distance = ($gd->distance($sun_x, $sun_y, $sx + 20.0, $sy + 20.0))*2;
$direction = $gd->direction($sun_x, $sun_y, $sx + 20.0, $sy + 20.0, $distance);
if ($distance <= 250) {
$ellipse = 2;
}
else {
$ellipse = $sx/8;
}
rotatedellipse($image, $sun_x, $sun_y, $distance, $distance - $ellipse, $direction['dir'], $white);
}
}
foreach($tile_array as $coord_data) {
$coords = $gd->convert_coords($x - 8, $x - 8, $coord_data['x'], $coord_data['y']);
$sx = $coords['x'];
$sy = $coords['y'];
if (substr($coord_data['type'], 0, 3) == "sun") {
$type = $gd->sun_type($coord_data['type']);
imagecolortransparent($type,imagecolorat($type,0,0));
}
else {
$type = imagecreatefrompng("templates/map/".$coord_data['type'].".png");
imagecolortransparent($type,imagecolorat($type,0,0));
}
imagecopymerge($image, $type, $sx, $sy, 0, 0, 40, 40, 100);
}
header('Content-type: image/png');
imagejpeg($image);
break;
}
if (!$_GET['s']) {
$tile_array = $map->tile_array($x - 8, $y - 8, (16 + $x), (16 + $y));
}
else {
if (!$_GET['x'] || !$_GET['y']) {
$x = 500;
$y = 500;
}
else {
$x = $_GET['x'];
$y = $_GET['y'];
}
$tile_array = $map->tile_array_system($x - 8, $y - 8, (16 + $x), (16 + $y), $_GET['s']);
}
foreach($tile_array as $coord_data) {
$coords = $gd->convert_coords($x - 8, $y - 8, $coord_data['x'], $coord_data['y']);
$tx = $coords['x'];
$ty = $coords['y'];
$bx = $tx + 40;
$by = $ty + 40;
if (!$_GET['s']) {
$system_name = $map->name($coord_data['coord_id']);
$owner = $nation->full_name($coord_data['owner']);
$system_id = $coord_data['coord_id'];
$areamap = $areamap . "<AREA
HREF='map.php?s=$system_id' SHAPE=RECT COORDS='$tx,$ty,$bx,$by' onmouseover=\"Tip('<b>$system_name</b><br/>$owner<br/>Population: population', ABOVE, true, OFFSETY, 20, WIDTH, 200, TEXTALIGN, 'left', FADEIN, 100, FADEOUT, 100, PADDING, 8)\">";
}
else {
$system_name = $map->name($_GET['s']);
$owner = $nation->full_name($coord_data['owner']);
$population = number_format($coord_data['population']);
$areamap = $areamap . "<AREA
HREF='#' SHAPE=RECT COORDS='$tx,$ty,$bx,$by' onmouseover=\"Tip('<strong>$owner</strong><br/>$system_name<br/>Population: $population', ABOVE, true, OFFSETY, 20, WIDTH, 200, TEXTALIGN, 'left', FADEIN, 100, FADEOUT, 100, PADDING, 8)\">";
}
}
$smarty->assign('areamap', $areamap);
$smarty->display('game_map.tpl');
// END MAIN CODE