- implemented display of spawns and waypoints for gameobjects and creatures

!IMPORTANT!
  Due to the inability to determine what layer covers what height-level
  in multilayer-zones, spawns and waypoints WILL have duplicates and must
  be removed manually from ?_spawns and ?_waypoints respectively, if
  nessecary. Besides, the other points may also need manual love.
- NPC:
  * removed a redundant cuFlags for Bosses
  * set NPC_CU_INSTANCE_BOSS with data from world.instance_encounters
  * removed misc. factions from tooltip
  * fixed malformed condition for creature-loot
  * location is displayed in Listviews (also for GOs)
  * enabled filters foundIn and relatedEvent (also for GOs)
  * do not display empty quotes
- Zone:
  * initial implementation of detail page
- Misc:
  * fixed notices being displayed without restrictions
  * added RewriteBase hint to .htaccess (lost several hours to this one)
  * removed lost isles from dataset 'zones'
  * updated sql-archives and removed old sql updates, db_setup_2.zip
    will need to be reapplied
This commit is contained in:
Sarjuuk
2014-10-02 19:50:31 +02:00
parent 0806e616ae
commit 43fe5e4b4d
39 changed files with 934 additions and 40572 deletions

View File

@@ -18,10 +18,10 @@ class ObjectPage extends GenericPage
protected $mode = CACHE_TYPE_PAGE;
protected $js = array(
'swfobject.js',
// 'Mapper.js'
'Mapper.js'
);
protected $css = array(
// ['path' => 'Mapper.css']
['path' => 'Mapper.css']
);
/* NOTE
@@ -60,6 +60,8 @@ class ObjectPage extends GenericPage
protected function generateContent()
{
$this->addJS('?data=zones&locale='.User::$localeId.'&t='.$_SESSION['dataKey']);
/***********/
/* Infobox */
/***********/
@@ -219,30 +221,25 @@ class ObjectPage extends GenericPage
$this->addJS('Book.js');
}
// positions
$positions = [];
/*
$positions = position($object['entry'], 'gameobject');
// Исправить type, чтобы подсвечивались event-овые объекты
if ($object['position'])
foreach ($object['position'] as $z => $zone)
foreach ($zone['points'] as $p => $pos)
if ($pos['type'] == 0 && ($events = event_find(array('object_guid' => $pos['guid']))))
{
$names = arraySelectKey(event_name($events), 'name');
$object['position'][$z]['points'][$p]['type'] = 4;
$object['position'][$z]['points'][$p]['events'] = implode(", ", $names);
}
*/
// get spawns and path
$map = null;
if ($spawns = $this->subject->getSpawns(SPAWNINFO_FULL))
{
$map = ['data' => ['parent' => 'mapper-generic'], 'mapperData' => &$spawns];
// consider phaseMasks
foreach ($spawns as $areaId => &$areaData)
{
$map['extra'][$areaId] = ZoneList::getName($areaId);
foreach ($areaData as &$floor)
$floor['count'] = count($floor['coords']);
}
}
// consider pooled spawns
$this->infobox = $infobox ? '[ul][li]'.implode('[/li][li]', $infobox).'[/li][/ul]' : null;
$this->pageText = $pageText;
$this->positions = $positions;
$this->map = $map;
$this->redButtons = array(
BUTTON_WOWHEAD => true,
BUTTON_LINKS => true,