summaryrefslogtreecommitdiffstats
path: root/includes/maps.php
diff options
context:
space:
mode:
authorBlueRaja <BlueRaja.admin@gmail.com>2013-06-08 14:56:35 -0500
committerBlueRaja <BlueRaja.admin@gmail.com>2013-06-08 14:56:35 -0500
commitf04b70c9c12daf0e91c591a732566ab8e5b4752c (patch)
tree298b8017ae8f10d117019f86183883205ffe40f9 /includes/maps.php
parentd64af3489dc17c011394b9facedacb0d27169e67 (diff)
downloadpathery-f04b70c9c12daf0e91c591a732566ab8e5b4752c.tar.xz
Prevent curse from crashing the server with the map editor
Diffstat (limited to 'includes/maps.php')
-rw-r--r--includes/maps.php23
1 files changed, 13 insertions, 10 deletions
diff --git a/includes/maps.php b/includes/maps.php
index 412068e..5ccb033 100644
--- a/includes/maps.php
+++ b/includes/maps.php
@@ -347,10 +347,13 @@ function DisplayMapThumbnail($map, $link = false) {
//Generates map
-function GenerateMap($rows, $cols, $rockchance, $numBlocks = -1, $cp = -1, $tp = -1, $mapName = '') {
-
+function GenerateMap($width, $height, $rockchance, $numBlocks = -1, $cp = -1, $tp = -1, $mapName = '') {
+ //Prevent server crash by limiting the number of rows/cols
+ $width = ($width <= 50 ? $width : 19);
+ $height = ($height <= 50 ? $height : 9);
+
if ($numBlocks == -1)
- $numBlocks = Rand(7, (int)($rows * $cols) * .12);
+ $numBlocks = Rand(7, (int)($width * $height) * .12);
//Checkpoints and teleports.
if ($cp == -1)
$cp = rand(0, 5);
@@ -361,11 +364,11 @@ function GenerateMap($rows, $cols, $rockchance, $numBlocks = -1, $cp = -1, $tp =
//== Possibility of inf loop here, if the map is too small.
do {
- $randvalue = rand(1, ($rows * $cols));
+ $randvalue = rand(1, ($width * $height));
//As long as it isn't the first, or last column.
//if ((($randvalue +1) % ($rows)) > 1) {
//As long as it isn't in the first, 2nd, last and 2nd to last column.
- if ((($randvalue +2) % ($rows)) > 3) {
+ if ((($randvalue +2) % ($width)) > 3) {
$unique[] = $randvalue;
$unique = array_unique($unique);
$unique = array_values($unique);
@@ -397,15 +400,15 @@ function GenerateMap($rows, $cols, $rockchance, $numBlocks = -1, $cp = -1, $tp =
do {
$p = -1;
//Begin loop to populate grid.
- for( $y = 1; $y <= $cols; $y++) { //Number of Columns
- for( $x = 0; $x < $rows; $x++) { //Number of Rows
+ for( $y = 1; $y <= $height; $y++) { //Number of Rows
+ for( $x = 0; $x < $width; $x++) { //Number of Columns
$p++;
//Start and Finish squares.
if ($x == 0) {
//if ($x == 0 AND $y == 1) {
//if ($x == 0 AND rand(1,3) == 1) {
$grid[$y][$x] = "s";
- } elseif ($x == $rows - 1) {
+ } elseif ($x == $width - 1) {
//} elseif ($x == $rows - 1 AND $y == intval(($cols + 1) * .5) ) {
//} elseif ($x == $rows - 1 AND rand(1,3) == 1) {
$grid[$y][$x] = "f";
@@ -433,8 +436,8 @@ function GenerateMap($rows, $cols, $rockchance, $numBlocks = -1, $cp = -1, $tp =
} //Rows
} //Cols
//Fill $grid[0] with header information
- $grid[0][0] = $rows;
- $grid[0][1] = $cols;
+ $grid[0][0] = $width;
+ $grid[0][1] = $height;
$grid[0][2] = count($checkpoint);
$grid[0][3] = $rocks;
$grid[0][4] = $numBlocks;