Core/Entities: Reworked guid scopes

* Added ObjectGuid traits to easily access whether guid type can be generated globally (ObjectMgr) or not
* This adds separate (per map) guid sequences depending on object type
* Ported map object container from cmangos/mangos-wotlk@a2d396eb0b
* Added type container visitor for TypeUnorderedMapContainer
* Implemented helper function to erase unique pairs from multimap containers
* Moved object storage of all objects except players and transports to map level
* Added containers linking database spawn id with creature/gameobject in world
* Renamed DBTableGuid to spawnId
* Added a separate spawn id sequence generator for creatures and gameobjects - this will be used in db tables
* Moved building SMSG_UPDATE_OBJECT - updatefields changes broadcast to map update
This commit is contained in:
Shauren
2015-02-25 00:13:14 +01:00
parent 455ef1a64a
commit ca83e14f8b
89 changed files with 1373 additions and 1217 deletions

View File

@@ -1533,7 +1533,6 @@ DROP TABLE IF EXISTS `corpse`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `corpse` (
`corpseGuid` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT 'Global Unique Identifier',
`guid` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT 'Character Global Unique Identifier',
`posX` float NOT NULL DEFAULT '0',
`posY` float NOT NULL DEFAULT '0',
@@ -1550,10 +1549,9 @@ CREATE TABLE `corpse` (
`time` int(10) unsigned NOT NULL DEFAULT '0',
`corpseType` tinyint(3) unsigned NOT NULL DEFAULT '0',
`instanceId` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Instance Identifier',
PRIMARY KEY (`corpseGuid`),
PRIMARY KEY (`guid`),
KEY `idx_type` (`corpseType`),
KEY `idx_instance` (`instanceId`),
KEY `idx_player` (`guid`),
KEY `idx_time` (`time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Death System';
/*!40101 SET character_set_client = @saved_cs_client */;
@@ -1567,6 +1565,29 @@ LOCK TABLES `corpse` WRITE;
/*!40000 ALTER TABLE `corpse` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `corpse_phases`
--
DROP TABLE IF EXISTS `corpse_phases`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `corpse_phases` (
`OwnerGuid` bigint(20) unsigned NOT NULL DEFAULT '0',
`PhaseId` int(10) unsigned NOT NULL,
PRIMARY KEY (`OwnerGuid`,`PhaseId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `corpse_phases`
--
LOCK TABLES `corpse_phases` WRITE;
/*!40000 ALTER TABLE `corpse_phases` DISABLE KEYS */;
/*!40000 ALTER TABLE `corpse_phases` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `creature_respawn`
--