# HG changeset patch # User Matti Hamalainen # Date 1300737123 -7200 # Node ID 0989d8dab1df39d85db0d799371ebd77c3fe727d # Parent 41a1e2acdb73de18ccda173c2b1b9e1fb5ca5c9c Add sorting functionality, etc. diff -r 41a1e2acdb73 -r 0989d8dab1df index.php --- a/index.php Mon Mar 21 19:48:01 2011 +0200 +++ b/index.php Mon Mar 21 21:52:03 2011 +0200 @@ -18,6 +18,7 @@ "min" => array("Mineral", 0), "org" => array("Organ", 1), "herb" => array("Herb", 2), + "list" => array("Potion list", 3), ); $dbNames = array( @@ -56,6 +57,8 @@ array("strawberry", "mugwort"), array("turnip", "mysticcarrot"), array("vine_seed", "lungwort") ), + + array("sorted by mineral", "sorted by organ", "sorted by herb pair", "sorted by potion name"), ); @@ -247,20 +250,13 @@ // Select view mode based on script GET arguments $mode = "min"; $active = 0; -if (isset($_GET["view"])) -{ - $mode = "view"; -} -else -{ - foreach ($dbModes as $name => $idx) { - if (isset($_GET[$name])) { - $active = intval($_GET[$name]); - if ($active < 0 || $active >= $dbDims[$idx[1]]) - $active = 0; - $mode = $name; - break; - } +foreach ($dbModes as $name => $data) { + if (isset($_GET[$name])) { + $active = intval($_GET[$name]); + if ($active < 0 || $active >= $dbDims[$data[1]]) + $active = 0; + $mode = $name; + break; } } @@ -357,33 +353,75 @@ $results["."]." combinations untested.
\n"; -if ($mode == "view") +function printItem($x, $y, $z, $s, &$index) { - echo " + global $dbNames, $db; + $index++; + echo "". + "". + "". + "". + "". + ""; +} + +function checkItem($x, $y, $z, &$index) +{ + global $dbNames, $db; + $s = $db[$x][$y][$z]; + if ($s[0] == "!") + printItem($x, $y, $z, substr($s, 1), $index); +} + + +if ($mode == "list") +{ + $index = 0; + echo "

".$dbModes[$mode][0]." view (".$dbNames[$dbModes[$mode][1]][$active].")

+
".$index."".$dbNames[0][$x]."".$dbNames[1][$y]."".$dbNames[2][$z][0]." / ".$dbNames[2][$z][1]."".$s."
- - - - + + + + "; - $n = 0; - for ($x = 0; $x < $dbDims[0]; $x++) - for ($y = 0; $y < $dbDims[1]; $y++) - for ($z = 0; $z < $dbDims[2]; $z++) + if ($active == 0) + { + for ($x = 0; $x < $dbDims[0]; $x++) + for ($y = 0; $y < $dbDims[1]; $y++) + for ($z = 0; $z < $dbDims[2]; $z++) + checkItem($x, $y, $z, $index); + } + else if ($active == 1) { - $s = $db[$x][$y][$z]; - if ($s[0] == "!") + for ($y = 0; $y < $dbDims[1]; $y++) + for ($x = 0; $x < $dbDims[0]; $x++) + for ($z = 0; $z < $dbDims[2]; $z++) + checkItem($x, $y, $z, $index); + } + else if ($active == 2) + { + for ($z = 0; $z < $dbDims[2]; $z++) + for ($x = 0; $x < $dbDims[0]; $x++) + for ($y = 0; $y < $dbDims[1]; $y++) + checkItem($x, $y, $z, $index); + } + else + { + $potions = array(); + for ($z = 0; $z < $dbDims[2]; $z++) + for ($x = 0; $x < $dbDims[0]; $x++) + for ($y = 0; $y < $dbDims[1]; $y++) { - $n++; - echo "". - "". - "". - "". - "". - ""; + $s = $db[$x][$y][$z]; + if ($s[0] == "!") + $potions[substr($s, 1)] = array($x, $y, $z); } + ksort($potions); + foreach ($potions as $name => $data) + printItem($data[0], $data[1], $data[2], $name, $index); } echo "
#MineralOrganHerbResultMineralOrganHerbPotion
".$n."".$dbNames[0][$x]."".$dbNames[1][$y]."".$dbNames[2][$z][0]." / ".$dbNames[2][$z][1]."".substr($s, 1)."
\n"; } else