Selador / brain / unit-export.php

<?php

/* unit-export.php - Front-end code for the unit export (to help pages and LUT) in admin pages
 *
 * Copyright (C) 2006, 2007, 2008 Kevin Read, Simone Schaefer
 *
 * This file is part of Selador, a browser-based fantasy strategy game
 *
 * This program is distributed under the terms of the GNU Affero General Public License.
 *
 *
 *   Selador is free software: you can redistribute it and/or modify
 *   it under the terms of the GNU Affero General Public License as published by
 *   the Free Software Foundation, either version 3 of the License, or
 *   any later version.
 *
 *   Selador is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU Affero General Public License for more details.
 *
 *   You should have received a copy of the GNU Affero General Public License
 *   along with Selador.  If not, see <http://www.gnu.org/licenses/>.
 **/

// Don't push - this code is crude

require_once ("config.inc.php");
require_once ("functions.inc.php");
require_once ("../php/base/GameDB.inc.php");

if (argc)
{
  // DB-Initialisierung
  $dblink = GameDB::instance();
}
else
{
  if (!($priv & EXPORT))
  {
	echo '<span id="error">Du darfst nicht exportieren.</span>\n';
	die();
  }
}

$map = fopen ("../var/php/unitmap.php", 'w');

$outstr = "<";
$outstr .= "?php\n";

$outstr .= '$unitmap = array (';

$scorestr = '$unitscoremap = array (';
$costsstr = '$costmap = array (';
$capstr = '$capacitymap = array (';
$xpstr = '$xpmap = array (';

$query = "select * from units order by display_order";
$res = $dblink->query ($query);

$byrace = array ();
$prefix = "";

while ($row = $dblink->fetch_array ($res))
{
	$score = $row['costs1'] + $row['costs2'] + $row['costs3'] + $row['costs4'];
	$costsstr .= $prefix.$row['unitid'].'=> array (1=>'.$row['costs1'].', '.$row['costs2'].', '.$row['costs3'].', '.$row['costs4'].')';
  $byrace[$row['raceid']][$row['unitid']] = $row['name'];
  $outstr .= $prefix.$row['unitid'].'=>"'.$row['name'].'"';
  $scorestr .= $prefix.$row['unitid'].'=>'.$score;
  $capstr .= $prefix.$row['unitid'].'=>'.$row['capacity'];
	$xpstr .= $prefix.$row['unitid'].'=>'.calculate_unitvalue((int)$row['att'], (int)$row['damage'], (int)$row['hp']);
  $prefix = ", ";

  // sort spys into an extra array
  if ($row['flags'] & 8)
    $spy[$row['raceid']] = $row['unitid'];

  if ($row['flags'] & 32)
    $commander[$row['raceid']] = $row['unitid'];
}

$outstr .= ");\n";
$outstr .= $scorestr.");\n";
$outstr .= $costsstr.");\n";
$outstr .= $capstr.");\n";
$outstr .= $xpstr.");\n";

foreach ($byrace as $raceid => $units)
{
  $outstr .= '$unit_byrace['.$raceid.'] = array (';
  $prefix = "";

  foreach ($units as $unitid=>$name)
  {
    $outstr .= $prefix.$unitid.'=>"'.$name.'"';
    $prefix = ", ";
  }

  $outstr .= ");\n";
}

$outstr .= '$spy_byrace = array (';
$prefix = "";
foreach ($spy as $raceid => $unitid)
{
  $outstr .= $prefix.$raceid.' => '.$unitid;
  $prefix = ", ";
}

$outstr .= ");\n";

$outstr .= '$commander_byrace = array (';
$prefix = "";
foreach ($commander as $raceid => $unitid)
{
  $outstr .= $prefix.$raceid.' => '.$unitid;
  $prefix = ", ";
}

$outstr .= ");\n";

$outstr .= "?";
$outstr .= ">\n";

if (fwrite ($map, $outstr))
  echo "Export erfolgreich";
else
  echo "Export fehlgeschlagen";

fclose ($map);

$cmd = "overview";
?>
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.