Finished install script

Updated configuration data loading
Added Website and Game models

Signed-off-by: Gregory PLANCHAT <g.planchat@gmail.com>
This commit is contained in:
Gregory PLANCHAT 2011-12-27 19:37:28 +01:00
commit dfa3dfb086
34 changed files with 362 additions and 510 deletions

View file

@ -1,70 +0,0 @@
<?php
/**
* This file is part of Wootook
*
* @license http://www.gnu.org/licenses/gpl-3.0.txt
* @see http://www.wootook.com/
*
* Copyright (c) 2009-Present, Wootook Support Team <http://www.xnova-ng.org>
* All rights reserved.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* --> NOTICE <--
* This file is part of the core development branch, changing its contents will
* make you unable to use the automatic updates manager. Please refer to the
* documentation for further information about customizing Wootook.
*
*/
define('INSIDE' , true);
define('INSTALL' , false);
require_once dirname(__FILE__) .'/application/bootstrap.php';
$dpath = (!$userrow["dpath"]) ? DEFAULT_SKINPATH : $userrow["dpath"];
if(!is_numeric($_GET["a"]) || !$_GET["a"] ){ message("Ung&uuml;ltige Allianz-ID","Fehler");}
$allyrow = doquery("SELECT ally_name,ally_tag,ally_description,ally_web,ally_image FROM {{table}} WHERE id=".intval($_GET["a"]),"alliance",true);
if(!$allyrow){ message("Alliance non trouv&eacute;e","Erreur");}
$count = doquery("SELECT COUNT(DISTINCT(id)) FROM {{table}} WHERE ally_id=".intval($_GET["a"]).";","users",true);
$ally_member_scount = $count[0];
$page .="<table width=519><tr><td class=c colspan=2>Informations sur l'alliance</td></tr>";
if($allyrow["ally_image"] != ""){
$page .= "<tr><th colspan=2><img src=\"".$allyrow["ally_image"]."\"></td></tr>";
}
$page .= "<tr><th>Tag</th><th>".$allyrow["ally_tag"]."</th></tr><tr><th>Nom</th><th>".$allyrow["ally_name"]."</th></tr><tr><th>Membres</th><th>$ally_member_scount</th></tr>";
if($allyrow["ally_description"] != ""){
$page .= "<tr><th colspan=2 height=100>".$allyrow["ally_description"]."</th></tr>";
}
if($allyrow["ally_web"] != ""){
$page .="<tr>
<th>Site internet</th>
<th><a href=\"".$allyrow["ally_web"]."\">".$allyrow["ally_web"]."</a></th>
</tr>";
}
$page .= "</table>";
display($page,"Information sur l'alliance [".$allyrow["ally_name"]."]",false);
?>

View file

@ -142,19 +142,6 @@ SQL_EOF;
$this->query($sql); $this->query($sql);
$sql = <<<SQL_EOF
CREATE TABLE IF NOT EXISTS {$this->getTableName('errors')} (
`error_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`error_sender` VARCHAR(32) NOT NULL,
`error_time` TIMESTAMP NOT NULL,
`error_type` VARCHAR(32) NOT NULL DEFAULT 'unknown',
`error_text` TEXT,
PRIMARY KEY (`error_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
SQL_EOF;
$this->query($sql);
$sql = <<<SQL_EOF $sql = <<<SQL_EOF
CREATE TABLE IF NOT EXISTS {$this->getTableName('fleets')} ( CREATE TABLE IF NOT EXISTS {$this->getTableName('fleets')} (
`fleet_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, `fleet_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,

View file

@ -84,12 +84,6 @@ SQL_EOF;
$this->query($sql); $this->query($sql);
$sql = <<<SQL_EOF
DROP TABLE {$this->getTableName('errors')};
SQL_EOF;
$this->query($sql);
$sql = <<<SQL_EOF $sql = <<<SQL_EOF
DROP TABLE {$this->getTableName('fleets')}; DROP TABLE {$this->getTableName('fleets')};
SQL_EOF; SQL_EOF;

View file

@ -400,7 +400,7 @@ class Wootook
self::$_websitesById[$websiteId] = $website; self::$_websitesById[$websiteId] = $website;
self::$_websitesByCode[$websiteCode] = $website; self::$_websitesByCode[$websiteCode] = $website;
} catch (Wootook_Core_Exception_DataAccessException $e) { } catch (Wootook_Core_Exception_DataAccessException $e) {
throw new Wootook_Core_Exception_RuntimeException('Could not load website entity.', null, $e); throw new Wootook_Core_Exception_WebsiteError('Could not load website entity.', null, $e);
} }
return $website; return $website;
@ -417,7 +417,7 @@ class Wootook
self::$_websitesById[$websiteId] = $website; self::$_websitesById[$websiteId] = $website;
self::$_websitesByCode[$websiteCode] = $website; self::$_websitesByCode[$websiteCode] = $website;
} catch (Wootook_Core_Exception_DataAccessException $e) { } catch (Wootook_Core_Exception_DataAccessException $e) {
throw new Wootook_Core_Exception_RuntimeException('Could not load website entity.', null, $e); throw new Wootook_Core_Exception_WebsiteError('Could not load website entity.', null, $e);
} }
return $website; return $website;
@ -438,7 +438,7 @@ class Wootook
self::$_gamesById[$gameId] = $game; self::$_gamesById[$gameId] = $game;
self::$_gamesByCode[$gameCode] = $game; self::$_gamesByCode[$gameCode] = $game;
} catch (Wootook_Core_Exception_DataAccessException $e) { } catch (Wootook_Core_Exception_DataAccessException $e) {
throw new Wootook_Core_Exception_RuntimeException('Could not load game entity.', null, $e); throw new Wootook_Core_Exception_GameError('Could not load game entity.', null, $e);
} }
return $game; return $game;
@ -455,7 +455,7 @@ class Wootook
self::$_gamesById[$gameId] = $game; self::$_gamesById[$gameId] = $game;
self::$_gamesByCode[$gameCode] = $game; self::$_gamesByCode[$gameCode] = $game;
} catch (Wootook_Core_Exception_DataAccessException $e) { } catch (Wootook_Core_Exception_DataAccessException $e) {
throw new Wootook_Core_Exception_RuntimeException('Could not load game entity.', null, $e); throw new Wootook_Core_Exception_GameError('Could not load game entity.', null, $e);
} }
return $game; return $game;
@ -472,8 +472,8 @@ class Wootook
public static function setGame($gameId, $game) public static function setGame($gameId, $game)
{ {
$gameKey = $game->getData('code'); $gameKey = $game->getData('code');
self::$_gameById[$gameId] = $game; self::$_gamesById[$gameId] = $game;
self::$_gameByCode[$gameKey] = $game; self::$_gamesByCode[$gameKey] = $game;
} }
protected static function _initWebsiteConfig($websiteId) protected static function _initWebsiteConfig($websiteId)

View file

@ -69,6 +69,8 @@ SQL_EOF;
protected function _save() protected function _save()
{ {
$database = $this->getWriteConnection();
if ($this->getId() !== null) { if ($this->getId() !== null) {
$fields = array(); $fields = array();
$values = array(); $values = array();
@ -76,7 +78,7 @@ SQL_EOF;
if ($field == self::getIdFieldName()) { if ($field == self::getIdFieldName()) {
continue; continue;
} }
$fields[] = "{$field}=:{$field}"; $fields[] = "{$database->quoteIdentifier($field)}=:{$field}";
$values[$field] = $value; $values[$field] = $value;
} }
@ -84,7 +86,6 @@ SQL_EOF;
$idFieldName = self::getIdFieldName(); $idFieldName = self::getIdFieldName();
$values[$idFieldName] = $this->getId(); $values[$idFieldName] = $this->getId();
$database = $this->getWriteConnection();
if ($database === null) { if ($database === null) {
throw new Wootook_Core_Exception_DataAccessException('Could not load data: no write connection configured.'); throw new Wootook_Core_Exception_DataAccessException('Could not load data: no write connection configured.');
} }
@ -99,8 +100,8 @@ SQL_EOF;
$statement->execute($values); $statement->execute($values);
} else { } else {
$datas = $this->getAllDatas(); $datas = $this->getAllDatas();
$fieldsImploded = implode(', ', array_keys($datas));
$fields = array();
$tokens = array(); $tokens = array();
$values = array(); $values = array();
foreach ($datas as $field => $value) { foreach ($datas as $field => $value) {
@ -108,24 +109,27 @@ SQL_EOF;
continue; continue;
} }
$tokens[] = ":{$field}"; $tokens[] = ":{$field}";
$values[$field] = $value; $fields[] = $database->quoteIdentifier($field);
$values[$field] = strval($value);
} }
$tokensImploded = implode(', ', $tokens); $tokensImploded = implode(', ', $tokens);
$fieldsImploded = implode(', ', $fields);
$database = $this->getWriteConnection();
if ($database === null) { if ($database === null) {
throw new Wootook_Core_Exception_DataAccessException('Could not load data: no write connection configured.'); throw new Wootook_Core_Exception_DataAccessException('Could not load data: no write connection configured.');
} }
$table = $database->getTable($this->getTableName());
$sql =<<<SQL_EOF $sql =<<<SQL_EOF
INSERT INTO {$database->getTable($this->getTableName())} ($fieldsImploded) INSERT INTO {$database->quoteIdentifier($table)} ({$database->quoteIdentifier($this->getIdFieldName())}, $fieldsImploded)
VALUES ({$tokensImploded}) VALUES (NULL, {$tokensImploded})
SQL_EOF; SQL_EOF;
$statement = $database->prepare($sql); $statement = $database->prepare($sql);
$statement->execute($values); $statement->execute($values);
$this->setId($database->lastInsertId()); $id = $database->lastInsertId($table);
$this->setId($id);
} }
return $this; return $this;

View file

@ -90,6 +90,11 @@ class Wootook_Core_ErrorProfiler
return true; return true;
} }
public function addException($exception)
{
$this->_exceptions[] = $exception;
}
public function exceptionManager($exception) public function exceptionManager($exception)
{ {
if (!$this->_listen) { if (!$this->_listen) {

View file

@ -0,0 +1,7 @@
<?php
class Wootook_Core_Exception_Deprecated
extends Wootook_Core_Exception_RuntimeException
{
}

View file

@ -0,0 +1,7 @@
<?php
class Wootook_Core_Exception_GameError
extends Wootook_Core_Exception_RuntimeException
{
}

View file

@ -0,0 +1,7 @@
<?php
class Wootook_Core_Exception_WebsiteError
extends Wootook_Core_Exception_RuntimeException
{
}

View file

@ -21,6 +21,10 @@ class Wootook_Core_Model_Session
protected static $_levels = null; protected static $_levels = null;
const COOKIE_LIFETIME_CONFIG_KEY = 'web/session/time';
const COOKIE_DOMAIN_CONFIG_KEY = 'web/session/domain';
const COOKIE_PATH_CONFIG_KEY = 'web/session/path';
public static function factory($namespace) public static function factory($namespace)
{ {
$namespace = (string) $namespace; $namespace = (string) $namespace;
@ -43,6 +47,7 @@ class Wootook_Core_Model_Session
public function __construct($namespace) public function __construct($namespace)
{ {
if (session_id() == '') { if (session_id() == '') {
session_set_cookie_params($this->getCookieLifetime(), $this->getCookiePath(), $this->getCookieDomain(), false, true);
session_start(); session_start();
} }
@ -56,6 +61,26 @@ class Wootook_Core_Model_Session
} }
} }
public function getCookieLifetime()
{
$lifetime = Wootook::getWebsiteConfig(self::COOKIE_LIFETIME_CONFIG_KEY);
if ($lifetime <= 0) {
return 900;
}
return $lifetime;
}
public function getCookieDomain()
{
return Wootook::getWebsiteConfig(self::COOKIE_DOMAIN_CONFIG_KEY);
}
public function getCookiePath()
{
return Wootook::getWebsiteConfig(self::COOKIE_PATH_CONFIG_KEY);
}
public function getMessages($clear = true) public function getMessages($clear = true)
{ {
$messages = $this->_data['messages']; $messages = $this->_data['messages'];

View file

@ -166,6 +166,12 @@ INSERT IGNORE INTO {$this->getTableName('core_config')} (`website_id`, `game_id`
(0, 0, 'web/cookie/domain', ''), (0, 0, 'web/cookie/domain', ''),
(0, 0, 'web/cookie/path', ''), (0, 0, 'web/cookie/path', ''),
(1, 1, 'web/cookie/name', '__wtk_1_1'),
(0, 0, 'web/session/time', '900'),
(0, 0, 'web/session/domain', '.wootook.org'),
(0, 0, 'web/session/path', '/'),
(0, 0, 'engine/options/bbcode', '1'), (0, 0, 'engine/options/bbcode', '1'),
(0, 0, 'engine/options/ga', '1'), (0, 0, 'engine/options/ga', '1'),
(0, 0, 'engine/options/announces', '0'), (0, 0, 'engine/options/announces', '0'),
@ -184,12 +190,18 @@ INSERT IGNORE INTO {$this->getTableName('core_config')} (`website_id`, `game_id`
(0, 0, 'engine/bot/name', 'Woot'), (0, 0, 'engine/bot/name', 'Woot'),
(0, 0, 'engine/bot/email', 'contact@wootook.org'); (0, 0, 'engine/bot/email', 'contact@wootook.org');
SQL_EOF; SQL_EOF;
/**
* TODO: change these paths $this->query($sql);
* (0, 0, 'BuildLabWhileRun', '0')
* (0, 0, 'ExtCopyFrame', '0') $sql = <<<SQL_EOF
* (0, 0, 'ExtCopyOwner', '') CREATE TABLE IF NOT EXISTS {$this->getTableName('errors')} (
* (0, 0, 'ExtCopyFunct', '') `error_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
*/ `error_sender` VARCHAR(32) NOT NULL,
`error_time` TIMESTAMP NOT NULL,
`error_type` VARCHAR(32) NOT NULL DEFAULT 'unknown',
`error_text` TEXT,
PRIMARY KEY (`error_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
SQL_EOF;
$this->query($sql); $this->query($sql);

View file

@ -40,7 +40,7 @@
* *
*/ */
$this->setSetupConnection('legacies_setup'); $this->setSetupConnection('core_setup');
$sql = <<<SQL_EOF $sql = <<<SQL_EOF
DROP TABLE {$this->getTableName('core_website')}; DROP TABLE {$this->getTableName('core_website')};
@ -65,3 +65,9 @@ DROP TABLE {$this->getTableName('core_config')};
SQL_EOF; SQL_EOF;
$this->query($sql); $this->query($sql);
$sql = <<<SQL_EOF
DROP TABLE {$this->getTableName('errors')};
SQL_EOF;
$this->query($sql);

View file

@ -22,6 +22,11 @@ class Wootook_Database
return self::getConnection(self::DEFAULT_CONNECTION_NAME); return self::getConnection(self::DEFAULT_CONNECTION_NAME);
} }
public function quoteIdentifier($identifier)
{
return "`$identifier`";
}
public static function getConnection($connectionName) public static function getConnection($connectionName)
{ {
if (empty($connectionName) || $connectionName === null) { if (empty($connectionName) || $connectionName === null) {

View file

@ -918,67 +918,6 @@ class Wootook_Empire_Model_Planet
return $this->getBuildingQueue()->getBuildingTime($buildingId, $level); return $this->getBuildingQueue()->getBuildingTime($buildingId, $level);
} }
public static function registrationListener($eventData)
{
if (isset($eventData['user'])) {
$user = $eventData['user'];
if ($user === null || !$user instanceof Wootook_Empire_Model_User || !$user->getId()) {
return;
}
$collection = self::searchMostFreeSystems();
$collection->limit(1)->load();
if ($collection->count() == 0) {
throw new Exception('No more planet to colonize!'); // Oops, no more free place
}
$systemInfo = $collection->current();
if ($systemInfo->getData('count') >= MAX_PLANET_IN_SYSTEM) {
throw new Exception('No more planet to colonize!'); // Oops, no more free place
}
$collection = new Wootook_Core_Collection(array('planet' => 'planets'));
$collection
->column(array('position' => 'planet.planet'))
->where('planet.planet_type=1')
->where('planet.galaxy=:galaxy')
->where('planet.system=:system')
->load(array(
'galaxy' => $systemInfo->getData('galaxy'),
'system' => $systemInfo->getData('system'),
))
;
$positions = range(1, MAX_PLANET_IN_SYSTEM);
foreach ($collection as $planet) {
$key = array_search($planet->getData('position'), $positions);
if ($key !== false) {
unset($positions[$key]);
}
}
$key = array_rand($positions, 1);
$finalPosition = $positions[$key];
$planet = $user->createNewPlanet(
$systemInfo->getData('galaxy'),
$systemInfo->getData('system'),
$finalPosition,
Wootook_Empire_Model_Planet::TYPE_PLANET,
Wootook::getRequest()->getParam('planet'),
Wootook::getGameConfig('resource/initial/fields')
);
$user
->setData('id_planet', $planet->getId())
->setData('current_planet', $planet->getId())
->setData('galaxy', $planet->getGalaxy())
->setData('system', $planet->getSystem())
->setData('planet', $planet->getPosition())
;
}
}
public static function searchMostFreeSystems($galaxyList = null, $systemList = null) public static function searchMostFreeSystems($galaxyList = null, $systemList = null)
{ {
$collection = new Wootook_Core_Collection(array('galaxy' => 'galaxy')); $collection = new Wootook_Core_Collection(array('galaxy' => 'galaxy'));
@ -1011,15 +950,15 @@ class Wootook_Empire_Model_Planet
} }
$orders = array( $orders = array(
"COUNT(*) / {$collection->quote(MAX_PLANET_IN_SYSTEM)}", "COUNT(*) / {$collection->quote(Wootook::getGameConfig('engine/universe/positions'))}",
"1 + ABS(galaxy.galaxy - CEIL({$collection->quote(MAX_GALAXY_IN_WORLD)} / 2))", "1 + ABS(galaxy.galaxy - CEIL({$collection->quote(Wootook::getGameConfig('engine/universe/galaxies'))} / 2))",
"1 + 2 * ABS(galaxy.system - CEIL({$collection->quote(MAX_SYSTEM_IN_GALAXY)} / 2))", "1 + 2 * ABS(galaxy.system - CEIL({$collection->quote(Wootook::getGameConfig('engine/universe/systems'))} / 2))",
"RAND() / 1000", "RAND() / 1000",
); );
$collection $collection
->order('((' . implode(') * (', $orders) . '))', 'ASC') ->order('((' . implode(') * (', $orders) . '))', 'ASC')
//->order("ABS(galaxy.system - CEIL({$collection->quote(MAX_SYSTEM_IN_GALAXY)} / 2))", 'ASC') //->order("ABS(galaxy.system - CEIL({$collection->quote(Wootook::getGameConfig('engine/universe/systems'))} / 2))", 'ASC')
//->order("ABS(galaxy.galaxy - CEIL({$collection->quote(MAX_GALAXY_IN_WORLD)} / 2))", 'ASC') //->order("ABS(galaxy.galaxy - CEIL({$collection->quote(Wootook::getGameConfig('engine/universe/galaxies'))} / 2))", 'ASC')
//->order("1.5 / COUNT(*)", 'ASC') //->order("1.5 / COUNT(*)", 'ASC')
->order('RAND()', 'ASC'); ->order('RAND()', 'ASC');

View file

@ -23,18 +23,48 @@ class Wootook_Empire_Model_User
protected $_currentPlanet = null; protected $_currentPlanet = null;
const SESSION_KEY = 'user'; const SESSION_KEY = 'user';
const COOKIE_NAME = 'Wootook'; const COOKIE_NAME = '__wtk';
const COOKIE_LIFETIME = 2592000; const COOKIE_LIFETIME = 2592000;
const COOKIE_NAME_CONFIG_KEY = 'web/cookie/name';
const COOKIE_LIFETIME_CONFIG_KEY = 'web/cookie/time';
const COOKIE_DOMAIN_CONFIG_KEY = 'web/cookie/domain';
const COOKIE_PATH_CONFIG_KEY = 'web/cookie/path';
const PLANET_SORT_DATE = 0; const PLANET_SORT_DATE = 0;
const PLANET_SORT_POSITION = 1; const PLANET_SORT_POSITION = 1;
const PLANET_SORT_NAME = 2; const PLANET_SORT_NAME = 2;
protected static $_cookieName = self::COOKIE_NAME; public static function getCookieName()
public static function setCookieName($name)
{ {
self::$_cookieName = $name; $cookieName = Wootook::getWebsiteConfig(self::COOKIE_NAME_CONFIG_KEY);
if (is_null($cookieName)) {
return self::COOKIE_NAME;
}
return $cookieName;
}
public static function getCookieLifetime()
{
$cookieLifetime = Wootook::getWebsiteConfig(self::COOKIE_LIFETIME_CONFIG_KEY);
if (is_null($cookieLifetime)) {
return self::COOKIE_LIFETIME;
}
return $cookieLifetime;
}
public static function getCookieDomain()
{
return Wootook::getWebsiteConfig(self::COOKIE_DOMAIN_CONFIG_KEY);
}
public static function getCookiePath()
{
return Wootook::getWebsiteConfig(self::COOKIE_PATH_CONFIG_KEY);
} }
public static function factory($id) public static function factory($id)
@ -64,8 +94,7 @@ class Wootook_Empire_Model_User
$session = Wootook::getSession(self::SESSION_KEY); $session = Wootook::getSession(self::SESSION_KEY);
if ($session->hasData('user_id')) { if ($session->hasData('user_id')) {
$id = intval($session->getData('user_id')); $id = intval($session->getData('user_id'));
} else if (Wootook::getRequest() !== null && ($cookieData = Wootook::getRequest()->getCookie(self::$_cookieName)) !== null) { } else if (Wootook::getRequest() !== null && ($cookieData = Wootook::getRequest()->getCookie(self::getCookieName())) !== null) {
//$cookieData = unserialize(stripslashes($cookie));
if (is_array($cookieData)) { if (is_array($cookieData)) {
$collection = new Wootook_Core_Collection(array('user' => 'users')); $collection = new Wootook_Core_Collection(array('user' => 'users'));
$cookieData = array( $cookieData = array(
@ -86,6 +115,9 @@ class Wootook_Empire_Model_User
$session->addError('Your session has expired, please login.'); $session->addError('Your session has expired, please login.');
return null; return null;
} }
} else {
$session->addError('Your session has expired, please login.');
return null;
} }
} else { } else {
$session->addError('Your session has expired, please login.'); $session->addError('Your session has expired, please login.');
@ -132,7 +164,7 @@ class Wootook_Empire_Model_User
public function logout() public function logout()
{ {
Wootook::getResponse()->unsetCookie(self::$_cookieName); Wootook::getResponse()->unsetCookie(self::getCookieName());
Wootook_Core_Model_Session::destroy(); Wootook_Core_Model_Session::destroy();
} }
@ -184,7 +216,13 @@ class Wootook_Empire_Model_User
} }
if (isset($_POST["rememberme"]) && Wootook::getResponse() !== null) { if (isset($_POST["rememberme"]) && Wootook::getResponse() !== null) {
Wootook::getResponse()->setCookie(self::$_cookieName, array('id' => $login['id'], 'key' => $login['login_rememberme']), self::COOKIE_LIFETIME); Wootook::getResponse()->setCookie(
self::getCookieName(),
array('id' => $login['id'], 'key' => $login['login_rememberme']),
self::getCookieLifetime(),
self::getCookiePath(),
self::getCookieDomain()
);
} }
return self::setLoggedIn(self::factory($login['id'])); return self::setLoggedIn(self::factory($login['id']));
@ -223,20 +261,81 @@ class Wootook_Empire_Model_User
'user_agent' => $request->getServer('HTTP_USER_AGENT') 'user_agent' => $request->getServer('HTTP_USER_AGENT')
)); ));
$user->getWriteConnection()->beginTransaction();
$user->save(); $user->save();
$collection = Wootook_Empire_Model_Planet::searchMostFreeSystems();
$collection->limit(1)->load();
if ($collection->count() == 0) {
throw new Wootook_Empire_Exception_RuntimeException('No more planet to colonize!'); // Oops, no more free place
}
$systemInfo = $collection->current();
if ($systemInfo->getData('count') >= Wootook::getGameConfig('engine/universe/positions')) {
throw new Wootook_Empire_Exception_RuntimeException('No more planet to colonize!'); // Oops, no more free place
}
$collection = new Wootook_Core_Collection(array('planet' => 'planets'));
$collection
->column(array('position' => 'planet.planet'))
->where('planet.planet_type=1')
->where('planet.galaxy=:galaxy')
->where('planet.system=:system')
->load(array(
'galaxy' => $systemInfo->getData('galaxy'),
'system' => $systemInfo->getData('system'),
))
;
$positions = range(1, Wootook::getGameConfig('engine/universe/positions'));
foreach ($collection as $planet) {
$key = array_search($planet->getData('position'), $positions);
if ($key !== false) {
unset($positions[$key]);
}
}
$key = array_rand($positions, 1);
$finalPosition = $positions[$key];
$planet = $user->createNewPlanet(
$systemInfo->getData('galaxy'),
$systemInfo->getData('system'),
$finalPosition,
Wootook_Empire_Model_Planet::TYPE_PLANET,
Wootook::getRequest()->getParam('planet'),
Wootook::getGameConfig('resource/initial/fields')
);
$user
->setData('id_planet', $planet->getId())
->setData('current_planet', $planet->getId())
->setData('galaxy', $planet->getGalaxy())
->setData('system', $planet->getSystem())
->setData('planet', $planet->getPosition())
;
Wootook::dispatchEvent('user.init', array( Wootook::dispatchEvent('user.init', array(
'user' => $user 'user' => $user
)); ));
$user->save(); $user->save();
} catch (Wootook_Core_Exception_DataAccessException $e) { } catch (Wootook_Core_Exception_DataAccessException $e) {
$user->getWriteConnection()->rollback();
$session = Wootook_Core_Model_Session::factory(Wootook_Empire_Model_User::SESSION_KEY);
Wootook_Core_ErrorProfiler::getSingleton()->exceptionManager($e);
$session->addError($e->getMessage());
return null;
} catch (Wootook_Empire_Exception_RuntimeException $e) {
$user->getWriteConnection()->rollback();
$session = Wootook_Core_Model_Session::factory(Wootook_Empire_Model_User::SESSION_KEY); $session = Wootook_Core_Model_Session::factory(Wootook_Empire_Model_User::SESSION_KEY);
Wootook_Core_ErrorProfiler::getSingleton()->exceptionManager($e); Wootook_Core_ErrorProfiler::getSingleton()->exceptionManager($e);
$session->addError($e->getMessage()); $session->addError($e->getMessage());
return null; return null;
} }
$user->getWriteConnection()->commit();
return $user; return $user;
} }
@ -265,17 +364,18 @@ class Wootook_Empire_Model_User
->setData('field_current', 0) ->setData('field_current', 0)
; ;
$resourceConfig = Wootook::getGameConfig('resource/initial');
$resourceList = Wootook_Empire_Model_Game_Resources::getSingleton(); $resourceList = Wootook_Empire_Model_Game_Resources::getSingleton();
$resourceConfig = Wootook::getGameConfig('resource/initial');
foreach ($resourceList as $resource => $resourceData) {
$planet->setData($resourceData['storage_field'], $resourceConfig[$resource]);
}
$resourceConfig = Wootook::getGameConfig('resource/base-income');
foreach ($resourceList as $resource => $resourceData) { foreach ($resourceList as $resource => $resourceData) {
$planet->setData($resourceData['production_field'], $resourceConfig[$resource]); $planet->setData($resourceData['production_field'], $resourceConfig[$resource]);
} }
$planet->save(); $planet->save();
var_dump($planet->getId());
die();
Wootook::dispatchEvent('planet.init', array( Wootook::dispatchEvent('planet.init', array(
'planet' => $planet, 'planet' => $planet,
'user' => $this 'user' => $this
@ -608,6 +708,10 @@ class Wootook_Empire_Model_User
$layout = $eventData['layout']; $layout = $eventData['layout'];
$navigation = $layout->getBlock('navigation'); $navigation = $layout->getBlock('navigation');
if ($navigation === null) {
return;
}
if (!defined('IN_ADMIN')) { if (!defined('IN_ADMIN')) {
$navigation->addLink('tools/admin', 'Admin Panel', 'Admin Panel', 'admin/overview.php', array(), array('admin')); $navigation->addLink('tools/admin', 'Admin Panel', 'Admin Panel', 'admin/overview.php', array(), array('admin'));
} else { } else {

View file

@ -18,5 +18,4 @@
<th width="278">UGamela<br >Britania </th> <th width="278">UGamela<br >Britania </th>
<th width="279"><?php echo $this->getData('cred_based')?><br><?php echo $this->getData('cred_start')?></th> <th width="279"><?php echo $this->getData('cred_based')?><br><?php echo $this->getData('cred_start')?></th>
</tr> </tr>
<?php echo $this->getData('ExtCopyFrame')?>
</table> </table>

View file

@ -8,17 +8,13 @@
'logout.success' => array(), 'logout.success' => array(),
'register.before' => array(), 'register.before' => array(),
'register.failure' => array(), 'register.failure' => array(),
'register.success' => array( 'register.success' => array(),
array('Wootook_Empire_Model_Planet', 'registrationListener')
),
'planet.update' => array( 'planet.update' => array(
array('Wootook_Empire_Model_Planet', 'planetUpdateListener'), array('Wootook_Empire_Model_Planet', 'planetUpdateListener'),
array('Legacies_Empire_Model_Planet_Building_Shipyard', 'planetUpdateListener'), array('Legacies_Empire_Model_Planet_Building_Shipyard', 'planetUpdateListener'),
array('Legacies_Officers_Model_Observer', 'planetUpdateListener') array('Legacies_Officers_Model_Observer', 'planetUpdateListener')
), ),
'user.init' => array( 'user.init' => array(),
array('Wootook_Empire_Model_Planet', 'registrationListener')
),
'planet.init' => array( 'planet.init' => array(
array('Wootook_Empire_Model_Galaxy_Position', 'initPlanetListerner') array('Wootook_Empire_Model_Galaxy_Position', 'initPlanetListerner')
), ),

View file

@ -13,12 +13,12 @@ if (!defined('DEBUG')) {
@error_reporting(E_ALL | E_STRICT); @error_reporting(E_ALL | E_STRICT);
} }
defined('ROOT_PATH') || define('ROOT_PATH', dirname(dirname(dirname(dirname(__FILE__)))) . DIRECTORY_SEPARATOR); defined('ROOT_PATH') || define('ROOT_PATH', dirname(dirname(dirname(__FILE__))) . DIRECTORY_SEPARATOR);
defined('APPLICATION_PATH') || define('APPLICATION_PATH', ROOT_PATH . 'includes' . DIRECTORY_SEPARATOR . 'application' . DIRECTORY_SEPARATOR); defined('APPLICATION_PATH') || define('APPLICATION_PATH', ROOT_PATH . 'application' . DIRECTORY_SEPARATOR);
defined('PHPEXT') || define('PHPEXT', require ROOT_PATH . 'extension.inc'); defined('PHPEXT') || define('PHPEXT', 'php');
defined('VERSION') || define('VERSION', '2009.5'); defined('VERSION') || define('VERSION', '1.5');
set_include_path(implode(PATH_SEPARATOR, array( set_include_path(implode(PATH_SEPARATOR, array(
APPLICATION_PATH . DIRECTORY_SEPARATOR . 'code' . DIRECTORY_SEPARATOR . 'core', APPLICATION_PATH . DIRECTORY_SEPARATOR . 'code' . DIRECTORY_SEPARATOR . 'core',

View file

@ -2,42 +2,8 @@
include './bootstrap.php'; include './bootstrap.php';
$username = uniqid();
$email = $username . '@wootook.org';
$password = substr(sha1(uniqid()), mt_rand(0, 32), 8);
header('Content-Type: text/csv'); Wootook_Empire_Model_User::register($username, $email, $password);
header('Content-Disposition: attachment; filename="test.csv"');
/*
$datas = array(
'galaxy' => array(),
'system' => array(),
);
*/
for ($i = 0; $i < 10000; $i++) {
$collection = Legacies_Empire_Model_Planet::searchMostFreeSystems();
$collection->limit(1)->load();
$systemInfo = $collection->current();
//var_dump($systemInfo->getallDatas());
echo $systemInfo->getData('galaxy') . ';' . $systemInfo->getData('system') . PHP_EOL;
/*
$galaxy = $systemInfo->getData('galaxy');
if (!isset($datas['galaxy'][$galaxy])) {
$datas['galaxy'][$galaxy] = 1;
} else {
$datas['galaxy'][$galaxy]++;
}
$system = $systemInfo->getData('system');
if (!isset($datas['system'][$system])) {
$datas['system'][$system] = 1;
} else {
$datas['system'][$system]++;
}
*/
}
/*
asort($datas['galaxy'], SORT_NUMERIC);
asort($datas['system'], SORT_NUMERIC);
var_dump($datas);
*/

View file

@ -73,13 +73,13 @@ $planet = $user->getCurrentPlanet();
$MaxFlyingFleets = $user->getFleetCount(); $MaxFlyingFleets = $user->getFleetCount();
if ($galaxy <= 0 || $galaxy > MAX_GALAXY_IN_WORLD) { if ($galaxy <= 0 || $galaxy > Wootook::getGameConfig('engine/universe/galaxies')) {
$galaxy = $planet['galaxy']; $galaxy = $planet['galaxy'];
} }
if ($system <= 0 || $system > MAX_SYSTEM_IN_GALAXY) { if ($system <= 0 || $system > Wootook::getGameConfig('engine/universe/systems')) {
$system = $planet['system']; $system = $planet['system'];
} }
if ($position <= 0 || $position > MAX_PLANET_IN_SYSTEM) { if ($position <= 0 || $position > Wootook::getGameConfig('engine/universe/positions')) {
$position = $planet['planet']; $position = $planet['planet'];
} }

View file

@ -64,9 +64,9 @@ if ($mode) {
$r = array(); $r = array();
$r[0] = preg_replace('#[^[:alnum:]\s\-\_\']#', '', $name); $r[0] = preg_replace('#[^[:alnum:]\s\-\_\']#', '', $name);
$r[1] = (isset($_POST['g']) && intval($_POST['g']) > 0 && intval($_POST['g']) <= MAX_GALAXY_IN_WORLD) ? intval($_POST['g']) : '1'; $r[1] = (isset($_POST['g']) && intval($_POST['g']) > 0 && intval($_POST['g']) <= Wootook::getGameConfig('engine/universe/galaxies')) ? intval($_POST['g']) : '1';
$r[2] = (isset($_POST['s']) && intval($_POST['s']) > 0 && intval($_POST['s']) <= MAX_SYSTEM_IN_GALAXY) ? intval($_POST['s']) : '1'; $r[2] = (isset($_POST['s']) && intval($_POST['s']) > 0 && intval($_POST['s']) <= Wootook::getGameConfig('engine/universe/systems')) ? intval($_POST['s']) : '1';
$r[3] = (isset($_POST['p']) && intval($_POST['p']) > 0 && intval($_POST['p']) <= MAX_PLANET_IN_SYSTEM) ? intval($_POST['p']) : '1'; $r[3] = (isset($_POST['p']) && intval($_POST['p']) > 0 && intval($_POST['p']) <= Wootook::getGameConfig('engine/universe/positions')) ? intval($_POST['p']) : '1';
$r[4] = (isset($_POST['t']) && intval($_POST['t']) > 0 && in_array(intval($_POST['t']), $planetTypes)) ? intval($_POST['t']) : '1'; $r[4] = (isset($_POST['t']) && intval($_POST['t']) > 0 && in_array(intval($_POST['t']), $planetTypes)) ? intval($_POST['t']) : '1';
$user['fleet_shortcut'] .= implode(",", $r); $user['fleet_shortcut'] .= implode(",", $r);
@ -123,9 +123,9 @@ if ($mode) {
Wootook_Empire_Model_Planet::TYPE_MOON Wootook_Empire_Model_Planet::TYPE_MOON
); );
$r[0] = preg_replace('#[^[:alnum:]\s\-\_\']#', '', $name); $r[0] = preg_replace('#[^[:alnum:]\s\-\_\']#', '', $name);
$r[1] = (isset($_POST['g']) && intval($_POST['g']) > 0 && intval($_POST['g']) <= MAX_GALAXY_IN_WORLD) ? intval($_POST['g']) : $r[1]; $r[1] = (isset($_POST['g']) && intval($_POST['g']) > 0 && intval($_POST['g']) <= Wootook::getGameConfig('engine/universe/galaxies')) ? intval($_POST['g']) : $r[1];
$r[2] = (isset($_POST['s']) && intval($_POST['s']) > 0 && intval($_POST['s']) <= MAX_SYSTEM_IN_GALAXY) ? intval($_POST['s']) : $r[2]; $r[2] = (isset($_POST['s']) && intval($_POST['s']) > 0 && intval($_POST['s']) <= Wootook::getGameConfig('engine/universe/systems')) ? intval($_POST['s']) : $r[2];
$r[3] = (isset($_POST['p']) && intval($_POST['p']) > 0 && intval($_POST['p']) <= MAX_PLANET_IN_SYSTEM) ? intval($_POST['p']) : $r[3]; $r[3] = (isset($_POST['p']) && intval($_POST['p']) > 0 && intval($_POST['p']) <= Wootook::getGameConfig('engine/universe/positions')) ? intval($_POST['p']) : $r[3];
$r[4] = (isset($_POST['t']) && intval($_POST['t']) > 0 && in_array(intval($_POST['t']), $planetTypes)) ? intval($_POST['t']) : $r[4]; $r[4] = (isset($_POST['t']) && intval($_POST['t']) > 0 && in_array(intval($_POST['t']), $planetTypes)) ? intval($_POST['t']) : $r[4];
$scarray[$a] = implode(",", $r); $scarray[$a] = implode(",", $r);

View file

@ -54,13 +54,13 @@ $s = isset($_POST['system']) ? intval($_POST['system']) : 0;
$p = isset($_POST['planet']) ? intval($_POST['planet']) : 0; $p = isset($_POST['planet']) ? intval($_POST['planet']) : 0;
$t = isset($_POST['planet_type']) ? intval($_POST['planet_type']) : 0; $t = isset($_POST['planet_type']) ? intval($_POST['planet_type']) : 0;
if ($g <= 0 || $g > MAX_GALAXY_IN_WORLD) { if ($g <= 0 || $g > Wootook::getGameConfig('engine/universe/galaxies')) {
$g = $planetrow['galaxy']; $g = $planetrow['galaxy'];
} }
if ($s <= 0 || $s > MAX_SYSTEM_IN_GALAXY) { if ($s <= 0 || $s > Wootook::getGameConfig('engine/universe/systems')) {
$s = $planetrow['system']; $s = $planetrow['system'];
} }
if ($p <= 0 || $p > MAX_PLANET_IN_SYSTEM) { if ($p <= 0 || $p > Wootook::getGameConfig('engine/universe/positions')) {
$p = $planetrow['planet']; $p = $planetrow['planet'];
} }
$allowedPlanetTypes = array( $allowedPlanetTypes = array(

View file

@ -66,7 +66,7 @@ $fleetArray = $session['fleet'];
$missionTypes = array(); $missionTypes = array();
// Determinons les type de missions possibles par rapport a la planete cible // Determinons les type de missions possibles par rapport a la planete cible
if ($position == (MAX_PLANET_IN_SYSTEM + 1)) { if ($position == (Wootook::getGameConfig('engine/universe/positions') + 1)) {
$missionTypes[Legacies_Empire::ID_MISSION_EXPEDITION] = $lang['type_mission'][Legacies_Empire::ID_MISSION_EXPEDITION]; $missionTypes[Legacies_Empire::ID_MISSION_EXPEDITION] = $lang['type_mission'][Legacies_Empire::ID_MISSION_EXPEDITION];
} else { } else {
if ($planettype == Wootook_Empire_Model_Planet::TYPE_DEBRIS) { if ($planettype == Wootook_Empire_Model_Planet::TYPE_DEBRIS) {
@ -98,7 +98,7 @@ if ($position == (MAX_PLANET_IN_SYSTEM + 1)) {
(isset($fleetArray[Legacies_Empire::ID_SHIP_BATTLESHIP]) && $fleetArray[Legacies_Empire::ID_SHIP_BATTLESHIP] > 0) || (isset($fleetArray[Legacies_Empire::ID_SHIP_BATTLESHIP]) && $fleetArray[Legacies_Empire::ID_SHIP_BATTLESHIP] > 0) ||
(isset($fleetArray[Legacies_Empire::ID_SHIP_COLONY_SHIP]) && $fleetArray[Legacies_Empire::ID_SHIP_COLONY_SHIP] > 0) || (isset($fleetArray[Legacies_Empire::ID_SHIP_COLONY_SHIP]) && $fleetArray[Legacies_Empire::ID_SHIP_COLONY_SHIP] > 0) ||
(isset($fleetArray[Legacies_Empire::ID_SHIP_RECYCLER]) && $fleetArray[Legacies_Empire::ID_SHIP_RECYCLER] > 0) || (isset($fleetArray[Legacies_Empire::ID_SHIP_RECYCLER]) && $fleetArray[Legacies_Empire::ID_SHIP_RECYCLER] > 0) ||
(isset($fleetArray[Legacies_Empire::ID_SHIP_SPY_DRONE]) && $fleetArray[Legacies_Empire::ID_SHIP_SPY_DRONE] > 0 && ALLOW_SPY_DRONE_ATTACKS) || (isset($fleetArray[Legacies_Empire::ID_SHIP_SPY_DRONE]) && $fleetArray[Legacies_Empire::ID_SHIP_SPY_DRONE] > 0 && Wootook::getGameConfig('engine/combat/allow_spy_drone_attacks')) ||
(isset($fleetArray[Legacies_Empire::ID_SHIP_BOMBER]) && $fleetArray[Legacies_Empire::ID_SHIP_BOMBER] > 0) || (isset($fleetArray[Legacies_Empire::ID_SHIP_BOMBER]) && $fleetArray[Legacies_Empire::ID_SHIP_BOMBER] > 0) ||
(isset($fleetArray[Legacies_Empire::ID_SHIP_DESTRUCTOR]) && $fleetArray[Legacies_Empire::ID_SHIP_DESTRUCTOR] > 0) || (isset($fleetArray[Legacies_Empire::ID_SHIP_DESTRUCTOR]) && $fleetArray[Legacies_Empire::ID_SHIP_DESTRUCTOR] > 0) ||
(isset($fleetArray[Legacies_Empire::ID_SHIP_DEATH_STAR]) && $fleetArray[Legacies_Empire::ID_SHIP_DEATH_STAR] > 0) || (isset($fleetArray[Legacies_Empire::ID_SHIP_DEATH_STAR]) && $fleetArray[Legacies_Empire::ID_SHIP_DEATH_STAR] > 0) ||
@ -144,7 +144,7 @@ $session['type'] = $planettype;
$MissionSelector = ""; $MissionSelector = "";
if (count($missionTypes) > 0) { if (count($missionTypes) > 0) {
if ($planet == (MAX_PLANET_IN_SYSTEM + 1)) { if ($planet == (Wootook::getGameConfig('engine/universe/positions') + 1)) {
$MissionSelector .= "<tr height=\"20\">"; $MissionSelector .= "<tr height=\"20\">";
$MissionSelector .= "<th>"; $MissionSelector .= "<th>";
$MissionSelector .= "<input type=\"radio\" name=\"mission\" value=\"15\" checked=\"checked\">". $lang['type_mission'][Legacies_Empire::ID_MISSION_EXPEDITION] ."<br /><br />"; $MissionSelector .= "<input type=\"radio\" name=\"mission\" value=\"15\" checked=\"checked\">". $lang['type_mission'][Legacies_Empire::ID_MISSION_EXPEDITION] ."<br /><br />";
@ -265,7 +265,7 @@ $page .= "<th colspan=\"3\"><a href=\"javascript:maxResources()\">". $lang['fl_a
$page .= "</tr><tr height=\"20\">\n"; $page .= "</tr><tr height=\"20\">\n";
$page .= "<th colspan=\"3\">&nbsp;</th>\n"; $page .= "<th colspan=\"3\">&nbsp;</th>\n";
$page .= "</tr>\n"; $page .= "</tr>\n";
if ($planet == (MAX_PLANET_IN_SYSTEM + 1)) { if ($planet == (Wootook::getGameConfig('engine/universe/positions') + 1)) {
$page .= "<tr height=\"20\">"; $page .= "<tr height=\"20\">";
$page .= "<td class=\"c\" colspan=\"3\">". $lang['fl_expe_staytime'] ."</td>"; $page .= "<td class=\"c\" colspan=\"3\">". $lang['fl_expe_staytime'] ."</td>";
$page .= "</tr>"; $page .= "</tr>";

View file

@ -136,7 +136,7 @@ if ($destination->getUserId() == $user['id']) {
$missionTypes = array(); $missionTypes = array();
// Determinons les type de missions possibles par rapport a la planete cible // Determinons les type de missions possibles par rapport a la planete cible
if ($position == (MAX_PLANET_IN_SYSTEM + 1)) { if ($position == (Wootook::getGameConfig('engine/universe/positions') + 1)) {
$missionTypes[Legacies_Empire::ID_MISSION_EXPEDITION] = $lang['type_mission'][Legacies_Empire::ID_MISSION_EXPEDITION]; $missionTypes[Legacies_Empire::ID_MISSION_EXPEDITION] = $lang['type_mission'][Legacies_Empire::ID_MISSION_EXPEDITION];
} else { } else {
if ($type == Wootook_Empire_Model_Planet::TYPE_DEBRIS) { if ($type == Wootook_Empire_Model_Planet::TYPE_DEBRIS) {
@ -168,7 +168,7 @@ if ($position == (MAX_PLANET_IN_SYSTEM + 1)) {
(isset($fleetArray[Legacies_Empire::ID_SHIP_BATTLESHIP]) && $fleetArray[Legacies_Empire::ID_SHIP_BATTLESHIP] > 0) || (isset($fleetArray[Legacies_Empire::ID_SHIP_BATTLESHIP]) && $fleetArray[Legacies_Empire::ID_SHIP_BATTLESHIP] > 0) ||
(isset($fleetArray[Legacies_Empire::ID_SHIP_COLONY_SHIP]) && $fleetArray[Legacies_Empire::ID_SHIP_COLONY_SHIP] > 0) || (isset($fleetArray[Legacies_Empire::ID_SHIP_COLONY_SHIP]) && $fleetArray[Legacies_Empire::ID_SHIP_COLONY_SHIP] > 0) ||
(isset($fleetArray[Legacies_Empire::ID_SHIP_RECYCLER]) && $fleetArray[Legacies_Empire::ID_SHIP_RECYCLER] > 0) || (isset($fleetArray[Legacies_Empire::ID_SHIP_RECYCLER]) && $fleetArray[Legacies_Empire::ID_SHIP_RECYCLER] > 0) ||
(isset($fleetArray[Legacies_Empire::ID_SHIP_SPY_DRONE]) && $fleetArray[Legacies_Empire::ID_SHIP_SPY_DRONE] > 0 && ALLOW_SPY_DRONE_ATTACKS) || (isset($fleetArray[Legacies_Empire::ID_SHIP_SPY_DRONE]) && $fleetArray[Legacies_Empire::ID_SHIP_SPY_DRONE] > 0 && Wootook::getGameConfig('engine/combat/allow_spy_drone_attacks')) ||
(isset($fleetArray[Legacies_Empire::ID_SHIP_BOMBER]) && $fleetArray[Legacies_Empire::ID_SHIP_BOMBER] > 0) || (isset($fleetArray[Legacies_Empire::ID_SHIP_BOMBER]) && $fleetArray[Legacies_Empire::ID_SHIP_BOMBER] > 0) ||
(isset($fleetArray[Legacies_Empire::ID_SHIP_DESTRUCTOR]) && $fleetArray[Legacies_Empire::ID_SHIP_DESTRUCTOR] > 0) || (isset($fleetArray[Legacies_Empire::ID_SHIP_DESTRUCTOR]) && $fleetArray[Legacies_Empire::ID_SHIP_DESTRUCTOR] > 0) ||
(isset($fleetArray[Legacies_Empire::ID_SHIP_DEATH_STAR]) && $fleetArray[Legacies_Empire::ID_SHIP_DEATH_STAR] > 0) || (isset($fleetArray[Legacies_Empire::ID_SHIP_DEATH_STAR]) && $fleetArray[Legacies_Empire::ID_SHIP_DEATH_STAR] > 0) ||
@ -295,15 +295,15 @@ if (!in_array($speed, $possibleSpeeds)) {
$error = 0; $error = 0;
$errorlist = ""; $errorlist = "";
if ($galaxy > MAX_GALAXY_IN_WORLD || $galaxy < 1) { if ($galaxy > Wootook::getGameConfig('engine/universe/galaxies') || $galaxy < 1) {
$error++; $error++;
$errorlist .= $lang['fl_limit_galaxy']; $errorlist .= $lang['fl_limit_galaxy'];
} }
if ($system > MAX_SYSTEM_IN_GALAXY || $system < 1) { if ($system > Wootook::getGameConfig('engine/universe/systems') || $system < 1) {
$error++; $error++;
$errorlist .= $lang['fl_limit_system']; $errorlist .= $lang['fl_limit_system'];
} }
if ($position > (MAX_PLANET_IN_SYSTEM + 1) || $position < 1) { if ($position > (Wootook::getGameConfig('engine/universe/positions') + 1) || $position < 1) {
$error++; $error++;
$errorlist .= $lang['fl_limit_planet']; $errorlist .= $lang['fl_limit_planet'];
} }

View file

@ -69,36 +69,36 @@ if ($mode == 0) {
$system = $CurrentSystem; $system = $CurrentSystem;
} elseif ($mode == 1 || $mode == 3) { } elseif ($mode == 1 || $mode == 3) {
if (isset($_POST["galaxyLeft"])) { if (isset($_POST["galaxyLeft"])) {
if (!isset($_POST["galaxy"]) || $_POST["galaxy"] <= 1 || $_POST["galaxy"] > MAX_GALAXY_IN_WORLD) { if (!isset($_POST["galaxy"]) || $_POST["galaxy"] <= 1 || $_POST["galaxy"] > Wootook::getGameConfig('engine/universe/galaxies')) {
$galaxy = 1; $galaxy = 1;
} else { } else {
$galaxy = intval($_POST["galaxy"]) - 1; $galaxy = intval($_POST["galaxy"]) - 1;
} }
} elseif (isset($_POST["galaxyRight"])) { } elseif (isset($_POST["galaxyRight"])) {
if (!isset($_POST["galaxy"]) || $_POST["galaxy"] >= MAX_GALAXY_IN_WORLD) { if (!isset($_POST["galaxy"]) || $_POST["galaxy"] >= Wootook::getGameConfig('engine/universe/galaxies')) {
$galaxy = MAX_GALAXY_IN_WORLD; $galaxy = Wootook::getGameConfig('engine/universe/galaxies');
} else { } else {
$galaxy = intval($_POST["galaxy"]) + 1; $galaxy = intval($_POST["galaxy"]) + 1;
} }
} else if (!isset($_POST["galaxy"]) || $_POST["galaxy"] <= 1 || $_POST["galaxy"] > MAX_GALAXY_IN_WORLD) { } else if (!isset($_POST["galaxy"]) || $_POST["galaxy"] <= 1 || $_POST["galaxy"] > Wootook::getGameConfig('engine/universe/galaxies')) {
$galaxy = 1; $galaxy = 1;
} else { } else {
$galaxy = intval($_POST["galaxy"]); $galaxy = intval($_POST["galaxy"]);
} }
if (isset($_POST["systemLeft"])) { if (isset($_POST["systemLeft"])) {
if (!isset($_POST["system"]) || $_POST["system"] <= 1 || $_POST["system"] > MAX_SYSTEM_IN_GALAXY) { if (!isset($_POST["system"]) || $_POST["system"] <= 1 || $_POST["system"] > Wootook::getGameConfig('engine/universe/systems')) {
$system = 1; $system = 1;
} else { } else {
$system = intval($_POST["system"]) - 1; $system = intval($_POST["system"]) - 1;
} }
} elseif (isset($_POST["systemRight"])) { } elseif (isset($_POST["systemRight"])) {
if (!isset($_POST["system"]) || $_POST["system"] >= MAX_SYSTEM_IN_GALAXY) { if (!isset($_POST["system"]) || $_POST["system"] >= Wootook::getGameConfig('engine/universe/systems')) {
$system = MAX_SYSTEM_IN_GALAXY; $system = Wootook::getGameConfig('engine/universe/systems');
} else { } else {
$system = intval($_POST["system"]) + 1; $system = intval($_POST["system"]) + 1;
} }
} else if (!isset($_POST["system"]) || $_POST["system"] <= 1 || $_POST["system"] > MAX_SYSTEM_IN_GALAXY) { } else if (!isset($_POST["system"]) || $_POST["system"] <= 1 || $_POST["system"] > Wootook::getGameConfig('engine/universe/systems')) {
$system = 1; $system = 1;
} else { } else {
$system = intval($_POST["system"]); $system = intval($_POST["system"]);
@ -106,24 +106,24 @@ if ($mode == 0) {
} elseif ($mode == 2) { } elseif ($mode == 2) {
if (!isset($_POST["galaxy"]) || $_POST["galaxy"] <= 0) { if (!isset($_POST["galaxy"]) || $_POST["galaxy"] <= 0) {
$galaxy = 1; $galaxy = 1;
} else if ($_POST["galaxy"] >= MAX_GALAXY_IN_WORLD) { } else if ($_POST["galaxy"] >= Wootook::getGameConfig('engine/universe/galaxies')) {
$galaxy = MAX_GALAXY_IN_WORLD; $galaxy = Wootook::getGameConfig('engine/universe/galaxies');
} else { } else {
$galaxy = intval($_POST["galaxy"]) + 1; $galaxy = intval($_POST["galaxy"]) + 1;
} }
if (!isset($_POST["system"]) || $_POST["system"] <= 0) { if (!isset($_POST["system"]) || $_POST["system"] <= 0) {
$system = 1; $system = 1;
} else if ($_POST["system"] >= MAX_SYSTEM_IN_GALAXY) { } else if ($_POST["system"] >= Wootook::getGameConfig('engine/universe/systems')) {
$system = MAX_SYSTEM_IN_GALAXY; $system = Wootook::getGameConfig('engine/universe/systems');
} else { } else {
$system = intval($_POST["system"]) + 1; $system = intval($_POST["system"]) + 1;
} }
if (!isset($_POST["planet"]) || $_POST["planet"] <= 0) { if (!isset($_POST["planet"]) || $_POST["planet"] <= 0) {
$planet = 1; $planet = 1;
} else if ($_POST["planet"] >= MAX_PLANET_IN_SYSTEM) { } else if ($_POST["planet"] >= Wootook::getGameConfig('engine/universe/positions')) {
$planet = MAX_PLANET_IN_SYSTEM; $planet = Wootook::getGameConfig('engine/universe/positions');
} else { } else {
$planet = intval($_POST["planet"]) + 1; $planet = intval($_POST["planet"]) + 1;
} }

View file

@ -32,12 +32,7 @@ defined('E_USER_DEPRECATED') || define('E_USER_DEPRECATED', E_USER_WARNING); //
define('ADMINEMAIL', "no-reply@wootook.org"); define('ADMINEMAIL', "no-reply@wootook.org");
// Definition du monde connu ! defined('BCNUMBERS') || define('BCNUMBERS', Wootook::getGameConfig('engine/core/use_large_numbers'));
defined('MAX_GALAXY_IN_WORLD') || define('MAX_GALAXY_IN_WORLD', Wootook::getGameConfig('engine/universe/galaxies'));
defined('MAX_SYSTEM_IN_GALAXY') || define('MAX_SYSTEM_IN_GALAXY', Wootook::getGameConfig('engine/universe/systems'));
defined('MAX_PLANET_IN_SYSTEM') || define('MAX_PLANET_IN_SYSTEM', Wootook::getGameConfig('engine/universe/positions'));
defined('BCNUMBERS') || define('BCNUMBERS', Wootook::getConfig('default/engine/core/use_large_numbers'));
/** /**
* User level constants * User level constants
@ -51,8 +46,6 @@ define('LEVEL_PLAYER', 0);
* }}} * }}}
*/ */
define('ALLOW_SPY_DRONE_ATTACKS', Wootook::getConfig('default/engine/combat/allow_spy_drone_attacks'));
// Nombre de colones pour les rapports d'espionnage // Nombre de colones pour les rapports d'espionnage
define('SPY_REPORT_ROW', 2); define('SPY_REPORT_ROW', 2);
@ -76,9 +69,6 @@ define('SHOW_ADMIN_IN_RECORDS', false);
// Valeurs de bases pour les colonies ou planetes fraichement crées // Valeurs de bases pour les colonies ou planetes fraichement crées
define('BASE_STORAGE_SIZE', 100000); define('BASE_STORAGE_SIZE', 100000);
define('BUILD_METAL', 500);
define('BUILD_CRISTAL', 500);
define('BUILD_DEUTERIUM', 0);
// Chemin vers le skin de base // Chemin vers le skin de base
define('DEFAULT_SKINPATH', 'skin/base/default/'); define('DEFAULT_SKINPATH', 'skin/base/default/');

View file

@ -39,7 +39,7 @@
*/ */
function AddBuildingToQueue($currentPlanet, $currentUser, $buildingId, $AddMode = true) function AddBuildingToQueue($currentPlanet, $currentUser, $buildingId, $AddMode = true)
{ {
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED); defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) { if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) {
trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING); trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING);
@ -59,7 +59,7 @@ function AddBuildingToQueue($currentPlanet, $currentUser, $buildingId, $AddMode
*/ */
function BuildingSavePlanetRecord($currentPlanet) function BuildingSavePlanetRecord($currentPlanet)
{ {
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED); defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) { if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) {
trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING); trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING);
@ -77,7 +77,7 @@ function BuildingSavePlanetRecord($currentPlanet)
*/ */
function BuildingSaveUserRecord($currentUser) function BuildingSaveUserRecord($currentUser)
{ {
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED); defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
if (!$currentUser instanceof Wootook_Empire_Model_User) { if (!$currentUser instanceof Wootook_Empire_Model_User) {
trigger_error('$currentUser should be an instance of Wootook_Empire_Model_User', E_USER_WARNING); trigger_error('$currentUser should be an instance of Wootook_Empire_Model_User', E_USER_WARNING);
@ -94,7 +94,7 @@ function BuildingSaveUserRecord($currentUser)
*/ */
function CheckPlanetBuildingQueue($currentPlanet, $currentUser) function CheckPlanetBuildingQueue($currentPlanet, $currentUser)
{ {
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED); defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) { if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) {
trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING); trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING);
@ -116,7 +116,7 @@ function CheckPlanetBuildingQueue($currentPlanet, $currentUser)
*/ */
function CheckPlanetUsedFields($currentPlanet) function CheckPlanetUsedFields($currentPlanet)
{ {
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED); defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) { if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) {
trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING); trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING);
@ -137,7 +137,7 @@ function CheckPlanetUsedFields($currentPlanet)
*/ */
function GetBuildingPrice($currentUser, $currentPlanet, $buildingId, $incremental = true, $destroy = false) function GetBuildingPrice($currentUser, $currentPlanet, $buildingId, $incremental = true, $destroy = false)
{ {
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED); defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) { if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) {
trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING); trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING);
@ -190,7 +190,7 @@ function GetBuildingPrice($currentUser, $currentPlanet, $buildingId, $incrementa
*/ */
function GetBuildingTime($currentUser, $currentPlanet, $buildingId) function GetBuildingTime($currentUser, $currentPlanet, $buildingId)
{ {
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED); defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) { if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) {
trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING); trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING);
@ -225,7 +225,7 @@ function GetBuildingTime($currentUser, $currentPlanet, $buildingId)
*/ */
function GetBuildingTimeLevel($currentUser, $currentPlanet, $buildingId, $level) function GetBuildingTimeLevel($currentUser, $currentPlanet, $buildingId, $level)
{ {
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED); defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) { if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) {
trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING); trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING);
@ -260,7 +260,7 @@ function GetBuildingTimeLevel($currentUser, $currentPlanet, $buildingId, $level)
*/ */
function GetElementPrice($currentUser, $currentPlanet, $buildingId, $userfactor = true) function GetElementPrice($currentUser, $currentPlanet, $buildingId, $userfactor = true)
{ {
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED); defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) { if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) {
trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING); trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING);
@ -318,7 +318,7 @@ function GetElementPrice($currentUser, $currentPlanet, $buildingId, $userfactor
*/ */
function GetElementRessources($elementId, $count) function GetElementRessources($elementId, $count)
{ {
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED); defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
$currentUser = Wootook_Empire_Model_User::getSingleton(); $currentUser = Wootook_Empire_Model_User::getSingleton();
$currentPlanet = $currentUser->getCurrentPlanet(); $currentPlanet = $currentUser->getCurrentPlanet();
@ -337,7 +337,7 @@ function GetElementRessources($elementId, $count)
*/ */
function HandleElementBuildingQueue($currentUser, $currentPlanet, $productionTime) function HandleElementBuildingQueue($currentUser, $currentPlanet, $productionTime)
{ {
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED); defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
return array(); return array();
} }
@ -351,7 +351,7 @@ function HandleElementBuildingQueue($currentUser, $currentPlanet, $productionTim
*/ */
function CheckCookies($isUserChecked) function CheckCookies($isUserChecked)
{ {
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED); defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
$user = Wootook_Empire_Model_User::getSingleton(); $user = Wootook_Empire_Model_User::getSingleton();
@ -377,7 +377,7 @@ function CheckCookies($isUserChecked)
*/ */
function CheckTheUser($isUserChecked) function CheckTheUser($isUserChecked)
{ {
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED); defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
$result = CheckCookies($isUserChecked); $result = CheckCookies($isUserChecked);
@ -398,7 +398,7 @@ function CheckTheUser($isUserChecked)
*/ */
function UpdatePlanetBatimentQueueList($currentPlanet, $currentUser) function UpdatePlanetBatimentQueueList($currentPlanet, $currentUser)
{ {
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED); defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) { if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) {
trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING); trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING);
@ -417,7 +417,7 @@ function UpdatePlanetBatimentQueueList($currentPlanet, $currentUser)
*/ */
function CalculateMaxPlanetFields($currentPlanet) function CalculateMaxPlanetFields($currentPlanet)
{ {
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED); defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) { if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) {
trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING); trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING);
@ -436,7 +436,7 @@ function CalculateMaxPlanetFields($currentPlanet)
*/ */
function AbandonColony($currentUser, $currentPlanet) function AbandonColony($currentUser, $currentPlanet)
{ {
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED); defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) { if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) {
trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING); trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING);
@ -459,7 +459,7 @@ function AbandonColony($currentUser, $currentPlanet)
*/ */
function CheckFleets($currentPlanet) function CheckFleets($currentPlanet)
{ {
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED); defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) { if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) {
trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING); trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING);
@ -477,7 +477,7 @@ function CheckFleets($currentPlanet)
*/ */
function CancelBuildingFromQueue($currentPlanet, $currentUser) function CancelBuildingFromQueue($currentPlanet, $currentUser)
{ {
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED); defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) { if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) {
trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING); trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING);
@ -529,7 +529,7 @@ class Deprecated
*/ */
function display($page, $title = '', $topnav = true, $metatags = '', $adminPage = false) function display($page, $title = '', $topnav = true, $metatags = '', $adminPage = false)
{ {
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED); defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
// TODO: implement extra meta tags // TODO: implement extra meta tags
$layout = Deprecated::getLayout($adminPage); $layout = Deprecated::getLayout($adminPage);
@ -563,7 +563,7 @@ function display($page, $title = '', $topnav = true, $metatags = '', $adminPage
*/ */
function parsetemplate($template, $array) function parsetemplate($template, $array)
{ {
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED); defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
static $baseUrl = null; static $baseUrl = null;
if ($baseUrl === null) { if ($baseUrl === null) {
@ -589,7 +589,7 @@ function parsetemplate($template, $array)
*/ */
function ReadFromFile($filename) function ReadFromFile($filename)
{ {
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED); defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
return file_get_contents($filename); return file_get_contents($filename);
} }
@ -603,7 +603,7 @@ function ReadFromFile($filename)
*/ */
function saveToFile($filename, $content) function saveToFile($filename, $content)
{ {
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED); defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
file_put_contents($filename, $content); file_put_contents($filename, $content);
} }
@ -616,7 +616,7 @@ function saveToFile($filename, $content)
*/ */
function getTemplate($templateName) function getTemplate($templateName)
{ {
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED); defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
return $templateName; return $templateName;
} }
@ -632,7 +632,7 @@ function getTemplate($templateName)
*/ */
function doquery($query, $table, $fetch = false) function doquery($query, $table, $fetch = false)
{ {
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED); defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
/** /**
* @var Wootook_Database $database * @var Wootook_Database $database
@ -666,7 +666,7 @@ function doquery($query, $table, $fetch = false)
*/ */
function ResetThisFuckingCheater($userId) function ResetThisFuckingCheater($userId)
{ {
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED); defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
$user = Wootook_Empire_Model_User::factory($userId); $user = Wootook_Empire_Model_User::factory($userId);
$username = $user->getData('username'); $username = $user->getData('username');

View file

@ -38,7 +38,7 @@ function ShowGalaxyRows ($Galaxy, $System) {
global $lang, $planetcount, $CurrentRC, $dpath, $user; global $lang, $planetcount, $CurrentRC, $dpath, $user;
$Result = ""; $Result = "";
for ($Planet = 1; $Planet <= MAX_PLANET_IN_SYSTEM; $Planet++) { for ($Planet = 1; $Planet <= Wootook::getGameConfig('engine/universe/positions'); $Planet++) {
$GalaxyRowPlanet = array(); $GalaxyRowPlanet = array();
$GalaxyRowMoon = array(); $GalaxyRowMoon = array();

View file

@ -37,14 +37,14 @@
function ShowGalaxySelector ( $Galaxy, $System ) { function ShowGalaxySelector ( $Galaxy, $System ) {
global $lang; global $lang;
if ($Galaxy > MAX_GALAXY_IN_WORLD) { if ($Galaxy > Wootook::getGameConfig('engine/universe/galaxies')) {
$Galaxy = MAX_GALAXY_IN_WORLD; $Galaxy = Wootook::getGameConfig('engine/universe/galaxies');
} }
if ($Galaxy < 1) { if ($Galaxy < 1) {
$Galaxy = 1; $Galaxy = 1;
} }
if ($System > MAX_SYSTEM_IN_GALAXY) { if ($System > Wootook::getGameConfig('engine/universe/systems')) {
$System = MAX_SYSTEM_IN_GALAXY; $System = Wootook::getGameConfig('engine/universe/systems');
} }
if ($System < 1) { if ($System < 1) {
$System = 1; $System = 1;

View file

@ -28,17 +28,69 @@
* *
*/ */
define('INSIDE' , true);
define('INSTALL', false);
define('IN_INSTALL', true);
define('STEP_SYSTEM', 1); define('STEP_SYSTEM', 1);
define('STEP_DATABASE', 2); define('STEP_DATABASE', 2);
define('STEP_UNIVERSE', 3); define('STEP_UNIVERSE', 3);
define('STEP_PROFILE', 4); define('STEP_PROFILE', 4);
define('STEP_CONFIG', 5); define('STEP_CONFIG', 5);
require_once dirname(dirname(__FILE__)) . '/application/bootstrap.php'; if (!defined('DEBUG') && ($env = getenv('DEBUG')) !== false && in_array(strtolower($env), array('1', 'on', 'true'))) {
define('DEBUG', true);
} else if (!defined('DEBUG') && isset($_SERVER['DEBUG']) && in_array(strtolower($_SERVER['DEBUG']), array('1', 'on', 'true'))) {
define('DEBUG', true);
}
if (!defined('DEPRECATION') && ($env = getenv('DEPRECATION')) !== false && in_array(strtolower($env), array('1', 'on', 'true'))) {
define('DEPRECATION', true);
} else if (!defined('DEPRECATION') && isset($_SERVER['DEPRECATION']) && in_array(strtolower($_SERVER['DEPRECATION']), array('1', 'on', 'true'))) {
define('DEPRECATION', true);
}
if (!defined('BCNUMBERS') && ($env = getenv('BCNUMBERS')) !== false && in_array(strtolower($env), array('1', 'on', 'true'))) {
define('BCNUMBERS', true);
} else if (!defined('BCNUMBERS') && isset($_SERVER['BCNUMBERS']) && in_array(strtolower($_SERVER['BCNUMBERS']), array('1', 'on', 'true'))) {
define('BCNUMBERS', true);
}
if (!defined('DEBUG')) {
@ini_set('display_errors', false);
} else {
@ini_set('display_errors', true);
@error_reporting(E_ALL | E_STRICT);
}
defined('ROOT_PATH') || define('ROOT_PATH', dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR);
defined('APPLICATION_PATH') || define('APPLICATION_PATH', ROOT_PATH . 'application' . DIRECTORY_SEPARATOR);
defined('PHPEXT') || define('PHPEXT', 'php');
defined('VERSION') || define('VERSION', '1.5.0-beta2');
set_include_path(implode(PATH_SEPARATOR, array(
APPLICATION_PATH . DIRECTORY_SEPARATOR . 'code' . DIRECTORY_SEPARATOR . 'libraries',
APPLICATION_PATH . DIRECTORY_SEPARATOR . 'code' . DIRECTORY_SEPARATOR . 'local',
APPLICATION_PATH . DIRECTORY_SEPARATOR . 'code' . DIRECTORY_SEPARATOR . 'community',
APPLICATION_PATH . DIRECTORY_SEPARATOR . 'code' . DIRECTORY_SEPARATOR . 'core',
get_include_path()
)));
function __autoload($class) {
include_once str_replace('_', '/', $class) . '.php';
}
$website = new Wootook_Core_Model_Website();
$website->setId(1)->setData('code', Wootook_Core_Model_Website::DEFAULT_CODE);
Wootook::setWebsite(1, $website);
$game = new Wootook_Core_Model_Game();
$game->setId(1)->setData('website_id', $website->getId())->setData('code', Wootook_Core_Model_Game::DEFAULT_CODE);
Wootook::setGame(1, $game);
include ROOT_PATH . 'includes' . DIRECTORY_SEPARATOR . 'constants.php';
Wootook_Core_Time::init();
Wootook_Core_ErrorProfiler::register();
Wootook_Core_Model_Config_Events::registerEvents();
$mode = isset($_GET['mode']) ? strval($_GET['mode']) : 'intro'; $mode = isset($_GET['mode']) ? strval($_GET['mode']) : 'intro';
$step = isset($_GET['step']) ? intval($_GET['step']) : 1; $step = isset($_GET['step']) ? intval($_GET['step']) : 1;
@ -86,6 +138,7 @@ $config = unserialize($session->getData('config'));
if (!is_array($config)) { if (!is_array($config)) {
$config = array(); $config = array();
} }
Wootook::loadConfig(array_merge_recursive($config, $configRewrites)); Wootook::loadConfig(array_merge_recursive($config, $configRewrites));
$layout = new Wootook_Core_Layout(); $layout = new Wootook_Core_Layout();
@ -419,6 +472,8 @@ case 'install':
Wootook_Empire_Model_User::setLoggedIn($user); Wootook_Empire_Model_User::setLoggedIn($user);
$user->setData('authlevel', LEVEL_ADMIN)->save(); $user->setData('authlevel', LEVEL_ADMIN)->save();
$user->getHomePlanet()->setName(Wootook::__('Planet'))->save();
} }
$session->setData('step', STEP_CONFIG); $session->setData('step', STEP_CONFIG);

View file

@ -1,90 +0,0 @@
INSERT INTO `game_galaxy` (`galaxy`, `system`, `planet`, `id_planet`, `metal`, `crystal`, `id_luna`, `luna`)
SELECT _increment.galaxy, _increment.system, 0, 0, 0, 0, 0, 0
FROM (
SELECT _galaxy.galaxy, (1 + _10e0.system + _10e1.system + _10e2.system) system
FROM (
SELECT 0 AS system
UNION ALL
SELECT 1 AS system
UNION ALL
SELECT 2 AS system
UNION ALL
SELECT 3 AS system
UNION ALL
SELECT 4 AS system
UNION ALL
SELECT 5 AS system
UNION ALL
SELECT 6 AS system
UNION ALL
SELECT 7 AS system
UNION ALL
SELECT 8 AS system
UNION ALL
SELECT 9 AS system
) _10e0
CROSS JOIN (
SELECT 0 AS system
UNION ALL
SELECT 10 AS system
UNION ALL
SELECT 20 AS system
UNION ALL
SELECT 30 AS system
UNION ALL
SELECT 40 AS system
UNION ALL
SELECT 50 AS system
UNION ALL
SELECT 60 AS system
UNION ALL
SELECT 70 AS system
UNION ALL
SELECT 80 AS system
UNION ALL
SELECT 90 AS system
) _10e1
CROSS JOIN (
SELECT 0 AS system
UNION ALL
SELECT 100 AS system
UNION ALL
SELECT 200 AS system
UNION ALL
SELECT 300 AS system
UNION ALL
SELECT 400 AS system
UNION ALL
SELECT 500 AS system
UNION ALL
SELECT 600 AS system
UNION ALL
SELECT 700 AS system
UNION ALL
SELECT 800 AS system
UNION ALL
SELECT 900 AS system
) _10e2
CROSS JOIN (
SELECT 1 AS galaxy
UNION ALL
SELECT 2 AS galaxy
UNION ALL
SELECT 3 AS galaxy
UNION ALL
SELECT 4 AS galaxy
UNION ALL
SELECT 5 AS galaxy
UNION ALL
SELECT 6 AS galaxy
UNION ALL
SELECT 7 AS galaxy
UNION ALL
SELECT 8 AS galaxy
UNION ALL
SELECT 9 AS galaxy
) _galaxy
) _increment
WHERE _increment.galaxy<=3
AND _increment.system<=100

View file

@ -1,98 +0,0 @@
<?php
$galaxyCount = 3;
$systemCount = 100;
$sql = <<<SQL_EOF
INSERT INTO `game_galaxy` (`galaxy`, `system`, `planet`, `id_planet`, `metal`, `crystal`, `id_luna`, `luna`)
SELECT _increment.galaxy, _increment.system, 0, 0, 0, 0, 0, 0
FROM (
SELECT _galaxy.galaxy, (1 + _10e0.system + _10e1.system + _10e2.system) system
FROM (
SELECT 0 AS system
UNION ALL
SELECT 1 AS system
UNION ALL
SELECT 2 AS system
UNION ALL
SELECT 3 AS system
UNION ALL
SELECT 4 AS system
UNION ALL
SELECT 5 AS system
UNION ALL
SELECT 6 AS system
UNION ALL
SELECT 7 AS system
UNION ALL
SELECT 8 AS system
UNION ALL
SELECT 9 AS system
) _10e0
CROSS JOIN (
SELECT 0 AS system
UNION ALL
SELECT 10 AS system
UNION ALL
SELECT 20 AS system
UNION ALL
SELECT 30 AS system
UNION ALL
SELECT 40 AS system
UNION ALL
SELECT 50 AS system
UNION ALL
SELECT 60 AS system
UNION ALL
SELECT 70 AS system
UNION ALL
SELECT 80 AS system
UNION ALL
SELECT 90 AS system
) _10e1
CROSS JOIN (
SELECT 0 AS system
UNION ALL
SELECT 100 AS system
UNION ALL
SELECT 200 AS system
UNION ALL
SELECT 300 AS system
UNION ALL
SELECT 400 AS system
UNION ALL
SELECT 500 AS system
UNION ALL
SELECT 600 AS system
UNION ALL
SELECT 700 AS system
UNION ALL
SELECT 800 AS system
UNION ALL
SELECT 900 AS system
) _10e2
CROSS JOIN (
SELECT 1 AS galaxy
UNION ALL
SELECT 2 AS galaxy
UNION ALL
SELECT 3 AS galaxy
UNION ALL
SELECT 4 AS galaxy
UNION ALL
SELECT 5 AS galaxy
UNION ALL
SELECT 6 AS galaxy
UNION ALL
SELECT 7 AS galaxy
UNION ALL
SELECT 8 AS galaxy
UNION ALL
SELECT 9 AS galaxy
) _galaxy
) _increment
WHERE _increment.galaxy<={$galaxyCount}
AND _increment.system<={$systemCount}
SQL_EOF;

View file

@ -35,8 +35,10 @@ require_once dirname(__FILE__) . '/application/bootstrap.php';
includeLang('login'); includeLang('login');
if (!empty($_POST) && isset($_POST['username']) && isset($_POST['password'])) { $request = Wootook::getRequest();
$user = Wootook_Empire_Model_User::login($_POST['username'], $_POST['password'], isset($_POST['rememberme']) && !empty($_POST['rememberme']));
if ($request->isPost() && $request->getPost('username') !== null && $request->getPost('password') !== null) {
$user = Wootook_Empire_Model_User::login($request->getPost('username'), $request->getPost('password'), (bool) $request->getPost('rememberme'));
$session = Wootook::getSession(Wootook_Empire_Model_User::SESSION_KEY); $session = Wootook::getSession(Wootook_Empire_Model_User::SESSION_KEY);
if ($user !== null && $user->getId()) { if ($user !== null && $user->getId()) {
@ -70,6 +72,7 @@ $onlinePlayersStatement->execute();
$onlinePlayers = $onlinePlayersStatement->fetch(Wootook_Database::FETCH_COLUMN, 0); $onlinePlayers = $onlinePlayersStatement->fetch(Wootook_Database::FETCH_COLUMN, 0);
$layout = new Wootook_Core_Layout(); $layout = new Wootook_Core_Layout();
$layout->getMessagesBlock()->prepareMessages(Wootook_Empire_Model_User::SESSION_KEY)
$layout->load('login'); $layout->load('login');
$block = $layout->getBlock('login'); $block = $layout->getBlock('login');