From 677b7454a37a0152f50d40993460d8f5a071e181 Mon Sep 17 00:00:00 2001 From: Patrick Davison Date: Tue, 5 Mar 2013 14:17:08 -0800 Subject: Map editor 0.1! --- includes/mapclass.php | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'includes/mapclass.php') diff --git a/includes/mapclass.php b/includes/mapclass.php index 9e91d3f..bc5a6e5 100644 --- a/includes/mapclass.php +++ b/includes/mapclass.php @@ -43,8 +43,15 @@ class map { public function __construct($code = NULL, $mapID = NULL) { //TODO: Use new code by default. if ($mapID !== NULL) $this->ID = $mapID; - if ($code !== NULL) $this->applyMapFromOldCode($code); - //$this->applyMapFromCode($code); + if ($code !== NULL) { + $dimensions = explode('.', explode(':', $code)[0])[0]; + if (strpos($dimensions, 'x') == true) { + $this->applyMapFromOldCode($code); + } else { + $this->applyMapFromCode($code); + } + } + } public function applyMapFromOldCode($code) { @@ -218,8 +225,7 @@ class map { //Outputs the new code. public function getCode() { //If we already have the code on hand... - if ($this->code) - return $this->code; + //if ($this->code) return $this->code; //Otherwise we need to build the code: $headers[0] = $this->width; $headers[1] = $this->height; -- cgit v1.2.3 From ab36b3bfff1b0c4d6e6398b1e968e41f436373b3 Mon Sep 17 00:00:00 2001 From: Patrick Davison Date: Wed, 6 Mar 2013 01:47:20 -0800 Subject: mapeditor Go button fix. --- includes/mapclass.php | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++ js/mapspecs.js | 2 +- pages/mapeditor.php | 3 ++- 3 files changed, 71 insertions(+), 2 deletions(-) (limited to 'includes/mapclass.php') diff --git a/includes/mapclass.php b/includes/mapclass.php index bc5a6e5..24b9108 100644 --- a/includes/mapclass.php +++ b/includes/mapclass.php @@ -253,6 +253,74 @@ class map { return $code; } + function getOldCode() { + + $code = ""; //The string to return to the database. + $index = 0; //The current number of tiles from the last tile saved. + + $code = $this->width.'x'.$this->height; + $code .= '.c'.$this->checkpoints; + $code .= '.r0'; //rocks... yeah. + $code .= '.w'.$this->walls; + $code .= '.t'.$this->teleports; + $code .= '.'.$this->name; + $code .= ".:"; + + $oldNames['o'] = 'o'; + + $oldNames['s'] = 's'; + $oldNames['s2'] = 'S'; + $oldNames['f'] = 'f'; + + $oldNames['c'] = 'a'; + $oldNames['c2'] = 'b'; + $oldNames['c3'] = 'c'; + $oldNames['c4'] = 'd'; + $oldNames['c5'] = 'e'; + + $oldNames['t'] = 't'; + $oldNames['t2'] = 'm'; + $oldNames['t3'] = 'g'; + $oldNames['t4'] = 'i'; + $oldNames['t5'] = 'k'; + + $oldNames['u'] = 'u'; + $oldNames['u2'] = 'n'; + $oldNames['u3'] = 'h'; + $oldNames['u4'] = 'j'; + $oldNames['u5'] = 'l'; + + $oldNames['x'] = 'x'; + $oldNames['x2'] = 'X'; + + $oldNames['r'] = 'r'; + $oldNames['r2'] = 'R'; + + for( $i = 0; $i < $this->height; $i++) { + for( $j = 0; $j < $this->width; $j++) { + if($this->tiles[$i][$j][0] != 'o') { + //As long as the tile is NOT open, embed it in the code. + + + $type = $this->tiles[$i][$j][0]; + $value = $this->tiles[$i][$j][1]; + if ($value <= 1) $value = ''; + + $code .= $index.$oldNames[$type.$value].'.'; + + + //$code .= $index.$mapMatrix[$i][$j].'.'; + //Start from 0 again. + $index = -1; + } + $index += 1; + } + } + + return $code; + + } + //Other "Magical" functions. public function __toString() { return $this->name; diff --git a/js/mapspecs.js b/js/mapspecs.js index 443ddfe..ecc5c9d 100644 --- a/js/mapspecs.js +++ b/js/mapspecs.js @@ -93,7 +93,7 @@ function grid_click(obj) { x = tmp[2]; - if(mapdata[mapid].editMap == true) { + if(typeof(mapdata[mapid]) == 'Object' && mapdata[mapid].editMap == true) { mapClick(obj); return; } diff --git a/pages/mapeditor.php b/pages/mapeditor.php index 402f2d6..87fef32 100644 --- a/pages/mapeditor.php +++ b/pages/mapeditor.php @@ -17,7 +17,8 @@ if ($_REQUEST['mapByMap']) { $map->$key = $value; } //Store the code in the object - $map->getCode(); + $code = $map->getOldCode(); + $map->code = $code; echo json_encode($map); exit; } -- cgit v1.2.3