diff options
author | Patrick Davison <snapwilliam@gmail.com> | 2013-06-12 13:46:01 -0700 |
---|---|---|
committer | Patrick Davison <snapwilliam@gmail.com> | 2013-06-12 13:46:01 -0700 |
commit | 6200fe3fad7e3630410ed1e6d18203a9ec80a155 (patch) | |
tree | 0fc699438017439a1da987ff1780d16876c35e12 /includes/maps.php | |
parent | 07e94c2eb5f36fd295204f4e4e81ce813c1f2150 (diff) | |
parent | 3a65ace8a32fa2c584adee4e75a0eccc9ee37208 (diff) | |
download | pathery-6200fe3fad7e3630410ed1e6d18203a9ec80a155.tar.xz |
Merge branch 'HEAD' of ssh://git@git.raylu.net/pathery
Diffstat (limited to 'includes/maps.php')
-rw-r--r-- | includes/maps.php | 23 |
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;
|