mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 22:37:03 +00:00
Added empty vehicle class, vehicle*.dbc struct's
This commit is contained in:
parent
6fae544fbe
commit
204b61c220
19 changed files with 323 additions and 34 deletions
|
|
@ -249,6 +249,8 @@ libmangosgame_a_SOURCES = \
|
||||||
UpdateData.h \
|
UpdateData.h \
|
||||||
UpdateFields.h \
|
UpdateFields.h \
|
||||||
UpdateMask.h \
|
UpdateMask.h \
|
||||||
|
Vehicle.cpp \
|
||||||
|
Vehicle.h \
|
||||||
VoiceChatHandler.cpp \
|
VoiceChatHandler.cpp \
|
||||||
WaypointManager.cpp \
|
WaypointManager.cpp \
|
||||||
WaypointManager.h \
|
WaypointManager.h \
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,6 @@ INSTANTIATE_CLASS_MUTEX(ObjectAccessor, ZThread::FastMutex);
|
||||||
|
|
||||||
namespace MaNGOS
|
namespace MaNGOS
|
||||||
{
|
{
|
||||||
|
|
||||||
struct MANGOS_DLL_DECL BuildUpdateForPlayer
|
struct MANGOS_DLL_DECL BuildUpdateForPlayer
|
||||||
{
|
{
|
||||||
Player &i_player;
|
Player &i_player;
|
||||||
|
|
@ -631,10 +630,11 @@ void ObjectAccessor::UpdateVisibilityForPlayer( Player* player )
|
||||||
template <class T> UNORDERED_MAP< uint64, T* > HashMapHolder<T>::m_objectMap;
|
template <class T> UNORDERED_MAP< uint64, T* > HashMapHolder<T>::m_objectMap;
|
||||||
template <class T> ZThread::FastMutex HashMapHolder<T>::i_lock;
|
template <class T> ZThread::FastMutex HashMapHolder<T>::i_lock;
|
||||||
|
|
||||||
/// Global defintions for the hashmap storage
|
/// Global definitions for the hashmap storage
|
||||||
|
|
||||||
template class HashMapHolder<Player>;
|
template class HashMapHolder<Player>;
|
||||||
template class HashMapHolder<Pet>;
|
template class HashMapHolder<Pet>;
|
||||||
|
template class HashMapHolder<Vehicle>;
|
||||||
template class HashMapHolder<GameObject>;
|
template class HashMapHolder<GameObject>;
|
||||||
template class HashMapHolder<DynamicObject>;
|
template class HashMapHolder<DynamicObject>;
|
||||||
template class HashMapHolder<Creature>;
|
template class HashMapHolder<Creature>;
|
||||||
|
|
@ -642,6 +642,7 @@ template class HashMapHolder<Corpse>;
|
||||||
|
|
||||||
template Player* ObjectAccessor::GetObjectInWorld<Player>(uint32 mapid, float x, float y, uint64 guid, Player* /*fake*/);
|
template Player* ObjectAccessor::GetObjectInWorld<Player>(uint32 mapid, float x, float y, uint64 guid, Player* /*fake*/);
|
||||||
template Pet* ObjectAccessor::GetObjectInWorld<Pet>(uint32 mapid, float x, float y, uint64 guid, Pet* /*fake*/);
|
template Pet* ObjectAccessor::GetObjectInWorld<Pet>(uint32 mapid, float x, float y, uint64 guid, Pet* /*fake*/);
|
||||||
|
template Vehicle* ObjectAccessor::GetObjectInWorld<Vehicle>(uint32 mapid, float x, float y, uint64 guid, Vehicle* /*fake*/);
|
||||||
template Creature* ObjectAccessor::GetObjectInWorld<Creature>(uint32 mapid, float x, float y, uint64 guid, Creature* /*fake*/);
|
template Creature* ObjectAccessor::GetObjectInWorld<Creature>(uint32 mapid, float x, float y, uint64 guid, Creature* /*fake*/);
|
||||||
template Corpse* ObjectAccessor::GetObjectInWorld<Corpse>(uint32 mapid, float x, float y, uint64 guid, Corpse* /*fake*/);
|
template Corpse* ObjectAccessor::GetObjectInWorld<Corpse>(uint32 mapid, float x, float y, uint64 guid, Corpse* /*fake*/);
|
||||||
template GameObject* ObjectAccessor::GetObjectInWorld<GameObject>(uint32 mapid, float x, float y, uint64 guid, GameObject* /*fake*/);
|
template GameObject* ObjectAccessor::GetObjectInWorld<GameObject>(uint32 mapid, float x, float y, uint64 guid, GameObject* /*fake*/);
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@
|
||||||
#include "GridDefines.h"
|
#include "GridDefines.h"
|
||||||
#include "Object.h"
|
#include "Object.h"
|
||||||
#include "Player.h"
|
#include "Player.h"
|
||||||
|
#include "Vehicle.h"
|
||||||
|
|
||||||
#include <set>
|
#include <set>
|
||||||
|
|
||||||
|
|
@ -72,7 +73,7 @@ class HashMapHolder
|
||||||
static LockType* GetLock() { return &i_lock; }
|
static LockType* GetLock() { return &i_lock; }
|
||||||
private:
|
private:
|
||||||
|
|
||||||
//Non instanciable only static
|
//Non instanceable only static
|
||||||
HashMapHolder() {}
|
HashMapHolder() {}
|
||||||
|
|
||||||
static LockType i_lock;
|
static LockType i_lock;
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ enum HighGuid
|
||||||
HIGHGUID_TRANSPORT = 0xF120, // blizz F120 (for GAMEOBJECT_TYPE_TRANSPORT)
|
HIGHGUID_TRANSPORT = 0xF120, // blizz F120 (for GAMEOBJECT_TYPE_TRANSPORT)
|
||||||
HIGHGUID_UNIT = 0xF130, // blizz F130
|
HIGHGUID_UNIT = 0xF130, // blizz F130
|
||||||
HIGHGUID_PET = 0xF140, // blizz F140
|
HIGHGUID_PET = 0xF140, // blizz F140
|
||||||
HIGHGUID_VEHICLE = 0xF150, // blizz F540
|
HIGHGUID_VEHICLE = 0xF150, // blizz F550
|
||||||
HIGHGUID_DYNAMICOBJECT = 0xF100, // blizz F100
|
HIGHGUID_DYNAMICOBJECT = 0xF100, // blizz F100
|
||||||
HIGHGUID_CORPSE = 0xF101, // blizz F100
|
HIGHGUID_CORPSE = 0xF101, // blizz F100
|
||||||
HIGHGUID_MO_TRANSPORT = 0x1FC0, // blizz 1FC0 (for GAMEOBJECT_TYPE_MO_TRANSPORT)
|
HIGHGUID_MO_TRANSPORT = 0x1FC0, // blizz 1FC0 (for GAMEOBJECT_TYPE_MO_TRANSPORT)
|
||||||
|
|
|
||||||
|
|
@ -110,6 +110,7 @@ ObjectMgr::ObjectMgr()
|
||||||
m_hiCharGuid = 1;
|
m_hiCharGuid = 1;
|
||||||
m_hiCreatureGuid = 1;
|
m_hiCreatureGuid = 1;
|
||||||
m_hiPetGuid = 1;
|
m_hiPetGuid = 1;
|
||||||
|
m_hiVehicleGuid = 1;
|
||||||
m_hiItemGuid = 1;
|
m_hiItemGuid = 1;
|
||||||
m_hiGoGuid = 1;
|
m_hiGoGuid = 1;
|
||||||
m_hiDoGuid = 1;
|
m_hiDoGuid = 1;
|
||||||
|
|
@ -5102,6 +5103,8 @@ void ObjectMgr::SetHighestGuids()
|
||||||
|
|
||||||
// pet guids are not saved to DB, set to 0 (pet guid != pet id)
|
// pet guids are not saved to DB, set to 0 (pet guid != pet id)
|
||||||
m_hiPetGuid = 0;
|
m_hiPetGuid = 0;
|
||||||
|
// same for vehicles
|
||||||
|
m_hiVehicleGuid = 0;
|
||||||
|
|
||||||
result = CharacterDatabase.Query( "SELECT MAX(guid) FROM item_instance" );
|
result = CharacterDatabase.Query( "SELECT MAX(guid) FROM item_instance" );
|
||||||
if( result )
|
if( result )
|
||||||
|
|
@ -5279,6 +5282,14 @@ uint32 ObjectMgr::GenerateLowGuid(HighGuid guidhigh)
|
||||||
sWorld.m_stopEvent = true;
|
sWorld.m_stopEvent = true;
|
||||||
}
|
}
|
||||||
return m_hiPetGuid;
|
return m_hiPetGuid;
|
||||||
|
case HIGHGUID_VEHICLE:
|
||||||
|
++m_hiVehicleGuid;
|
||||||
|
if(m_hiVehicleGuid>=0x00FFFFFF)
|
||||||
|
{
|
||||||
|
sLog.outError("Vehicle guid overflow!! Can't continue, shutting down server. ");
|
||||||
|
sWorld.m_stopEvent = true;
|
||||||
|
}
|
||||||
|
return m_hiVehicleGuid;
|
||||||
case HIGHGUID_PLAYER:
|
case HIGHGUID_PLAYER:
|
||||||
++m_hiCharGuid;
|
++m_hiCharGuid;
|
||||||
if(m_hiCharGuid>=0xFFFFFFFF)
|
if(m_hiCharGuid>=0xFFFFFFFF)
|
||||||
|
|
|
||||||
|
|
@ -772,6 +772,7 @@ class ObjectMgr
|
||||||
uint32 m_hiCharGuid;
|
uint32 m_hiCharGuid;
|
||||||
uint32 m_hiCreatureGuid;
|
uint32 m_hiCreatureGuid;
|
||||||
uint32 m_hiPetGuid;
|
uint32 m_hiPetGuid;
|
||||||
|
uint32 m_hiVehicleGuid;
|
||||||
uint32 m_hiItemGuid;
|
uint32 m_hiItemGuid;
|
||||||
uint32 m_hiGoGuid;
|
uint32 m_hiGoGuid;
|
||||||
uint32 m_hiDoGuid;
|
uint32 m_hiDoGuid;
|
||||||
|
|
|
||||||
|
|
@ -2063,22 +2063,6 @@ enum SummonType
|
||||||
SUMMON_TYPE_POSESSED2 = 428
|
SUMMON_TYPE_POSESSED2 = 428
|
||||||
};
|
};
|
||||||
|
|
||||||
enum SummonType2
|
|
||||||
{
|
|
||||||
SUMMON_TYPE2_UNKNOWN = 0,
|
|
||||||
SUMMON_TYPE2_SUMMON = 1,
|
|
||||||
SUMMON_TYPE2_GUARDIAN = 2,
|
|
||||||
SUMMON_TYPE2_DEMON = 3,
|
|
||||||
SUMMON_TYPE2_TOTEM = 4,
|
|
||||||
SUMMON_TYPE2_CRITTER = 5,
|
|
||||||
SUMMON_TYPE2_GHOUL = 6,
|
|
||||||
SUMMON_TYPE2_BOMB = 7,
|
|
||||||
SUMMON_TYPE2_PHASING = 8,
|
|
||||||
SUMMON_TYPE2_SIEGE_VEH = 9,
|
|
||||||
SUMMON_TYPE2_DRAKE_VEH = 10,
|
|
||||||
SUMMON_TYPE2_LIGHTWELL = 11
|
|
||||||
};
|
|
||||||
|
|
||||||
enum ResponseCodes
|
enum ResponseCodes
|
||||||
{
|
{
|
||||||
RESPONSE_SUCCESS = 0x00,
|
RESPONSE_SUCCESS = 0x00,
|
||||||
|
|
|
||||||
|
|
@ -146,7 +146,7 @@ Unit::Unit()
|
||||||
m_objectType |= TYPEMASK_UNIT;
|
m_objectType |= TYPEMASK_UNIT;
|
||||||
m_objectTypeId = TYPEID_UNIT;
|
m_objectTypeId = TYPEID_UNIT;
|
||||||
// 2.3.2 - 0x70
|
// 2.3.2 - 0x70
|
||||||
m_updateFlag = (UPDATEFLAG_HIGHGUID | UPDATEFLAG_LIVING | UPDATEFLAG_HAS_POSITION);
|
m_updateFlag = (UPDATEFLAG_LOWGUID | UPDATEFLAG_HIGHGUID | UPDATEFLAG_LIVING | UPDATEFLAG_HAS_POSITION);
|
||||||
|
|
||||||
m_attackTimer[BASE_ATTACK] = 0;
|
m_attackTimer[BASE_ATTACK] = 0;
|
||||||
m_attackTimer[OFF_ATTACK] = 0;
|
m_attackTimer[OFF_ATTACK] = 0;
|
||||||
|
|
|
||||||
78
src/game/Vehicle.cpp
Normal file
78
src/game/Vehicle.cpp
Normal file
|
|
@ -0,0 +1,78 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2005-2008 MaNGOS <http://getmangos.com/>
|
||||||
|
*
|
||||||
|
* 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 2 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, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "Common.h"
|
||||||
|
#include "Log.h"
|
||||||
|
#include "WorldSession.h"
|
||||||
|
#include "WorldPacket.h"
|
||||||
|
#include "ObjectMgr.h"
|
||||||
|
#include "SpellMgr.h"
|
||||||
|
#include "Vehicle.h"
|
||||||
|
#include "MapManager.h"
|
||||||
|
#include "SpellAuras.h"
|
||||||
|
#include "Unit.h"
|
||||||
|
#include "Util.h"
|
||||||
|
|
||||||
|
Vehicle::Vehicle() : Creature()
|
||||||
|
{
|
||||||
|
m_updateFlag = (UPDATEFLAG_LOWGUID | UPDATEFLAG_HIGHGUID | UPDATEFLAG_LIVING | UPDATEFLAG_HAS_POSITION | UPDATEFLAG_VEHICLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
Vehicle::~Vehicle()
|
||||||
|
{
|
||||||
|
if(m_uint32Values) // only for fully created Object
|
||||||
|
ObjectAccessor::Instance().RemoveObject(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Vehicle::AddToWorld()
|
||||||
|
{
|
||||||
|
///- Register the vehicle for guid lookup
|
||||||
|
if(!IsInWorld()) ObjectAccessor::Instance().AddObject(this);
|
||||||
|
Unit::AddToWorld();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Vehicle::RemoveFromWorld()
|
||||||
|
{
|
||||||
|
///- Remove the vehicle from the accessor
|
||||||
|
if(IsInWorld()) ObjectAccessor::Instance().RemoveObject(this);
|
||||||
|
///- Don't call the function for Creature, normal mobs + totems go in a different storage
|
||||||
|
Unit::RemoveFromWorld();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Vehicle::setDeathState(DeathState s) // overwrite virtual Creature::setDeathState and Unit::setDeathState
|
||||||
|
{
|
||||||
|
Creature::setDeathState(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Vehicle::Update(uint32 diff)
|
||||||
|
{
|
||||||
|
Creature::Update(diff);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Vehicle::Create(uint32 guidlow, Map *map, uint32 Entry)
|
||||||
|
{
|
||||||
|
SetMapId(map->GetId());
|
||||||
|
SetInstanceId(map->GetInstanceId());
|
||||||
|
|
||||||
|
Object::_Create(guidlow, Entry, HIGHGUID_VEHICLE);
|
||||||
|
|
||||||
|
if(!InitEntry(Entry))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
52
src/game/Vehicle.h
Normal file
52
src/game/Vehicle.h
Normal file
|
|
@ -0,0 +1,52 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2005-2008 MaNGOS <http://getmangos.com/>
|
||||||
|
*
|
||||||
|
* 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 2 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, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef MANGOSSERVER_VEHICLE_H
|
||||||
|
#define MANGOSSERVER_VEHICLE_H
|
||||||
|
|
||||||
|
#include "ObjectDefines.h"
|
||||||
|
#include "Creature.h"
|
||||||
|
#include "Unit.h"
|
||||||
|
|
||||||
|
class Vehicle : public Creature
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit Vehicle();
|
||||||
|
virtual ~Vehicle();
|
||||||
|
|
||||||
|
void AddToWorld();
|
||||||
|
void RemoveFromWorld();
|
||||||
|
|
||||||
|
bool Create (uint32 guidlow, Map *map, uint32 Entry);
|
||||||
|
|
||||||
|
void setDeathState(DeathState s); // overwrite virtual Creature::setDeathState and Unit::setDeathState
|
||||||
|
void Update(uint32 diff); // overwrite virtual Creature::Update and Unit::Update
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
private:
|
||||||
|
void SaveToDB(uint32, uint8) // overwrited of Creature::SaveToDB - don't must be called
|
||||||
|
{
|
||||||
|
assert(false);
|
||||||
|
}
|
||||||
|
void DeleteFromDB() // overwrited of Creature::DeleteFromDB - don't must be called
|
||||||
|
{
|
||||||
|
assert(false);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
@ -1513,6 +1513,9 @@ void World::ScriptsProcess()
|
||||||
case HIGHGUID_PET:
|
case HIGHGUID_PET:
|
||||||
source = HashMapHolder<Pet>::Find(step.sourceGUID);
|
source = HashMapHolder<Pet>::Find(step.sourceGUID);
|
||||||
break;
|
break;
|
||||||
|
case HIGHGUID_VEHICLE:
|
||||||
|
source = HashMapHolder<Vehicle>::Find(step.sourceGUID);
|
||||||
|
break;
|
||||||
case HIGHGUID_PLAYER:
|
case HIGHGUID_PLAYER:
|
||||||
source = HashMapHolder<Player>::Find(step.sourceGUID);
|
source = HashMapHolder<Player>::Find(step.sourceGUID);
|
||||||
break;
|
break;
|
||||||
|
|
@ -1540,6 +1543,9 @@ void World::ScriptsProcess()
|
||||||
case HIGHGUID_PET:
|
case HIGHGUID_PET:
|
||||||
target = HashMapHolder<Pet>::Find(step.targetGUID);
|
target = HashMapHolder<Pet>::Find(step.targetGUID);
|
||||||
break;
|
break;
|
||||||
|
case HIGHGUID_VEHICLE:
|
||||||
|
target = HashMapHolder<Vehicle>::Find(step.targetGUID);
|
||||||
|
break;
|
||||||
case HIGHGUID_PLAYER: // empty GUID case also
|
case HIGHGUID_PLAYER: // empty GUID case also
|
||||||
target = HashMapHolder<Player>::Find(step.targetGUID);
|
target = HashMapHolder<Player>::Find(step.targetGUID);
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -248,4 +248,51 @@ enum TotemCategoryType
|
||||||
TOTEM_CATEGORY_TYPE_SPANNER = 24
|
TOTEM_CATEGORY_TYPE_SPANNER = 24
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// SummonProperties.dbc, col 1
|
||||||
|
/*enum SummonGroup
|
||||||
|
{
|
||||||
|
SUMMON_GROUP_UNKNOWN1 = 0, // 1160 spells in 3.0.3
|
||||||
|
SUMMON_GROUP_UNKNOWN2 = 1, // 861 spells in 3.0.3
|
||||||
|
SUMMON_GROUP_PETS = 2, // 52 spells in 3.0.3, pets mostly
|
||||||
|
SUMMON_GROUP_CONTROLLABLE = 3, // 13 spells in 3.0.3, mostly controllable
|
||||||
|
SUMMON_GROUP_UNKNOWN3 = 4 // 86 spells in 3.0.3, taxi/mounts
|
||||||
|
};
|
||||||
|
|
||||||
|
// SummonProperties.dbc, col 3
|
||||||
|
enum SummonType
|
||||||
|
{
|
||||||
|
SUMMON_TYPE_UNKNOWN = 0, // different summons, 1330 spells in 3.0.3
|
||||||
|
SUMMON_TYPE_SUMMON = 1, // generic summons, 49 spells in 3.0.3
|
||||||
|
SUMMON_TYPE_GUARDIAN = 2, // summon guardian, 393 spells in 3.0.3
|
||||||
|
SUMMON_TYPE_ARMY = 3, // summon army, 5 spells in 3.0.3
|
||||||
|
SUMMON_TYPE_TOTEM = 4, // summon totem, 169 spells in 3.0.3
|
||||||
|
SUMMON_TYPE_CRITTER = 5, // critter/minipet, 195 spells in 3.0.3
|
||||||
|
SUMMON_TYPE_DK = 6, // summon DRW/Ghoul, 2 spells in 3.0.3
|
||||||
|
SUMMON_TYPE_BOMB = 7, // summon bot/bomb, 4 spells in 3.0.3
|
||||||
|
SUMMON_TYPE_PHASING = 8, // something todo with DK prequest line, 2 spells in 3.0.3
|
||||||
|
SUMMON_TYPE_SIEGE_VEH = 9, // summon different vehicles, 14 spells in 3.0.3
|
||||||
|
SUMMON_TYPE_DRAKE_VEH = 10, // summon drake (vehicle), 3 spells
|
||||||
|
SUMMON_TYPE_LIGHTWELL = 11 // summon lightwell, 6 spells in 3.0.3
|
||||||
|
};
|
||||||
|
|
||||||
|
// SummonProperties.dbc, col 5
|
||||||
|
enum SummonFlags
|
||||||
|
{
|
||||||
|
SUMMON_FLAG_NONE = 0x0000, // 1342 spells in 3.0.3
|
||||||
|
SUMMON_FLAG_UNK1 = 0x0001, // 75 spells in 3.0.3, something unfriendly
|
||||||
|
SUMMON_FLAG_UNK2 = 0x0002, // 616 spells in 3.0.3, something friendly
|
||||||
|
SUMMON_FLAG_UNK3 = 0x0004, // 22 spells in 3.0.3, no idea...
|
||||||
|
SUMMON_FLAG_UNK4 = 0x0008, // 49 spells in 3.0.3, some mounts
|
||||||
|
SUMMON_FLAG_UNK5 = 0x0010, // 25 spells in 3.0.3, quest related?
|
||||||
|
SUMMON_FLAG_UNK6 = 0x0020, // 0 spells in 3.0.3, unused
|
||||||
|
SUMMON_FLAG_UNK7 = 0x0040, // 12 spells in 3.0.3, no idea
|
||||||
|
SUMMON_FLAG_UNK8 = 0x0080, // 4 spells in 3.0.3, no idea
|
||||||
|
SUMMON_FLAG_UNK9 = 0x0100, // 51 spells in 3.0.3, no idea, many quest related
|
||||||
|
SUMMON_FLAG_UNK10 = 0x0200, // 51 spells in 3.0.3, something defensive
|
||||||
|
SUMMON_FLAG_UNK11 = 0x0400, // 3 spells, requires something near?
|
||||||
|
SUMMON_FLAG_UNK12 = 0x0800, // 30 spells in 3.0.3, no idea
|
||||||
|
SUMMON_FLAG_UNK13 = 0x1000, // 8 spells in 3.0.3, siege vehicle
|
||||||
|
SUMMON_FLAG_UNK14 = 0x2000, // 2 spells in 3.0.3, escort?
|
||||||
|
};
|
||||||
|
*/
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -109,7 +109,7 @@ DBCStorage <SpellRangeEntry> sSpellRangeStore(SpellRangefmt);
|
||||||
DBCStorage <SpellRuneCostEntry> sSpellRuneCostStore(SpellRuneCostfmt);
|
DBCStorage <SpellRuneCostEntry> sSpellRuneCostStore(SpellRuneCostfmt);
|
||||||
DBCStorage <SpellShapeshiftEntry> sSpellShapeshiftStore(SpellShapeshiftfmt);
|
DBCStorage <SpellShapeshiftEntry> sSpellShapeshiftStore(SpellShapeshiftfmt);
|
||||||
DBCStorage <StableSlotPricesEntry> sStableSlotPricesStore(StableSlotPricesfmt);
|
DBCStorage <StableSlotPricesEntry> sStableSlotPricesStore(StableSlotPricesfmt);
|
||||||
DBCStorage <SummonPropertiesEntry> sSummonPropertiesStore(SummonPropertiesfmt);
|
//DBCStorage <SummonPropertiesEntry> sSummonPropertiesStore(SummonPropertiesfmt);
|
||||||
DBCStorage <TalentEntry> sTalentStore(TalentEntryfmt);
|
DBCStorage <TalentEntry> sTalentStore(TalentEntryfmt);
|
||||||
TalentSpellPosMap sTalentSpellPosMap;
|
TalentSpellPosMap sTalentSpellPosMap;
|
||||||
DBCStorage <TalentTabEntry> sTalentTabStore(TalentTabEntryfmt);
|
DBCStorage <TalentTabEntry> sTalentTabStore(TalentTabEntryfmt);
|
||||||
|
|
@ -319,7 +319,7 @@ void LoadDBCStores(std::string dataPath)
|
||||||
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sSpellRuneCostStore, dbcPath,"SpellRuneCost.dbc");
|
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sSpellRuneCostStore, dbcPath,"SpellRuneCost.dbc");
|
||||||
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sSpellShapeshiftStore, dbcPath,"SpellShapeshiftForm.dbc");
|
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sSpellShapeshiftStore, dbcPath,"SpellShapeshiftForm.dbc");
|
||||||
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sStableSlotPricesStore, dbcPath,"StableSlotPrices.dbc");
|
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sStableSlotPricesStore, dbcPath,"StableSlotPrices.dbc");
|
||||||
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sSummonPropertiesStore, dbcPath,"SummonProperties.dbc");
|
//LoadDBC(availableDbcLocales,bar,bad_dbc_files,sSummonPropertiesStore, dbcPath,"SummonProperties.dbc");
|
||||||
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sTalentStore, dbcPath,"Talent.dbc");
|
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sTalentStore, dbcPath,"Talent.dbc");
|
||||||
|
|
||||||
// create talent spells set
|
// create talent spells set
|
||||||
|
|
|
||||||
|
|
@ -191,7 +191,7 @@ extern DBCStorage <SpellRuneCostEntry> sSpellRuneCostStore;
|
||||||
extern DBCStorage <SpellShapeshiftEntry> sSpellShapeshiftStore;
|
extern DBCStorage <SpellShapeshiftEntry> sSpellShapeshiftStore;
|
||||||
extern DBCStorage <SpellEntry> sSpellStore;
|
extern DBCStorage <SpellEntry> sSpellStore;
|
||||||
extern DBCStorage <StableSlotPricesEntry> sStableSlotPricesStore;
|
extern DBCStorage <StableSlotPricesEntry> sStableSlotPricesStore;
|
||||||
extern DBCStorage <SummonPropertiesEntry> sSummonPropertiesStore;
|
//extern DBCStorage <SummonPropertiesEntry> sSummonPropertiesStore;
|
||||||
extern DBCStorage <TalentEntry> sTalentStore;
|
extern DBCStorage <TalentEntry> sTalentStore;
|
||||||
extern DBCStorage <TalentTabEntry> sTalentTabStore;
|
extern DBCStorage <TalentTabEntry> sTalentTabStore;
|
||||||
extern DBCStorage <TaxiNodesEntry> sTaxiNodesStore;
|
extern DBCStorage <TaxiNodesEntry> sTaxiNodesStore;
|
||||||
|
|
|
||||||
|
|
@ -1100,7 +1100,7 @@ struct SpellEntry
|
||||||
uint32 StartRecoveryTime; // 209 m_startRecoveryTime
|
uint32 StartRecoveryTime; // 209 m_startRecoveryTime
|
||||||
uint32 MaxTargetLevel; // 210 m_maxTargetLevel
|
uint32 MaxTargetLevel; // 210 m_maxTargetLevel
|
||||||
uint32 SpellFamilyName; // 211 m_spellClassSet
|
uint32 SpellFamilyName; // 211 m_spellClassSet
|
||||||
uint64 SpellFamilyFlags; // 212-213 m_spellClassMask
|
uint64 SpellFamilyFlags; // 212-213 m_spellClassMask NOTE: size is 12 bytes!!!
|
||||||
uint32 SpellFamilyFlags2; // 214 addition to m_spellClassMask
|
uint32 SpellFamilyFlags2; // 214 addition to m_spellClassMask
|
||||||
uint32 MaxAffectedTargets; // 215 m_maxTargets
|
uint32 MaxAffectedTargets; // 215 m_maxTargets
|
||||||
uint32 DmgClass; // 216 m_defenseType
|
uint32 DmgClass; // 216 m_defenseType
|
||||||
|
|
@ -1234,15 +1234,15 @@ struct StableSlotPricesEntry
|
||||||
uint32 Price;
|
uint32 Price;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct SummonPropertiesEntry
|
/*struct SummonPropertiesEntry
|
||||||
{
|
{
|
||||||
uint32 Id;
|
uint32 Id; // 0
|
||||||
uint32 Unk1;
|
uint32 Group; // 1, 0 - can't be controlled?, 1 - something guardian?, 2 - pet?, 3 - something controllable?, 4 - taxi/mount?
|
||||||
uint32 Unk2;
|
uint32 Unk2; // 2, 14 rows > 0
|
||||||
uint32 Type;
|
uint32 Type; // 3, see enum
|
||||||
uint32 Slot;
|
uint32 Slot; // 4, 0-6
|
||||||
uint32 Flags;
|
uint32 Flags; // 5
|
||||||
};
|
};*/
|
||||||
|
|
||||||
struct TalentEntry
|
struct TalentEntry
|
||||||
{
|
{
|
||||||
|
|
@ -1320,6 +1320,90 @@ struct TotemCategoryEntry
|
||||||
uint32 categoryMask; // 19 (compatibility mask for same type: different for totems, compatible from high to low for rods)
|
uint32 categoryMask; // 19 (compatibility mask for same type: different for totems, compatible from high to low for rods)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct VehicleEntry
|
||||||
|
{
|
||||||
|
uint32 m_ID; // 0
|
||||||
|
uint32 m_flags; // 1
|
||||||
|
float m_turnSpeed; // 2
|
||||||
|
float m_pitchSpeed; // 3
|
||||||
|
float m_pitchMin; // 4
|
||||||
|
float m_pitchMax; // 5
|
||||||
|
uint32 m_seatID[8]; // 6-13
|
||||||
|
float m_mouseLookOffsetPitch; // 14
|
||||||
|
float m_cameraFadeDistScalarMin; // 15
|
||||||
|
float m_cameraFadeDistScalarMax; // 16
|
||||||
|
float m_cameraPitchOffset; // 17
|
||||||
|
int m_powerType[3]; // 18-20
|
||||||
|
int m_powerToken[3]; // 21-23
|
||||||
|
float m_facingLimitRight; // 24
|
||||||
|
float m_facingLimitLeft; // 25
|
||||||
|
float m_msslTrgtTurnLingering; // 26
|
||||||
|
float m_msslTrgtPitchLingering; // 27
|
||||||
|
float m_msslTrgtMouseLingering; // 28
|
||||||
|
float m_msslTrgtEndOpacity; // 29
|
||||||
|
float m_msslTrgtArcSpeed; // 30
|
||||||
|
float m_msslTrgtArcRepeat; // 31
|
||||||
|
float m_msslTrgtArcWidth; // 32
|
||||||
|
float m_msslTrgtImpactRadius[2]; // 33-34
|
||||||
|
char* m_msslTrgtArcTexture; // 35
|
||||||
|
char* m_msslTrgtImpactTexture; // 36
|
||||||
|
char* m_msslTrgtImpactModel[2]; // 37-38
|
||||||
|
float m_cameraYawOffset; // 39
|
||||||
|
uint32 m_uiLocomotionType; // 40
|
||||||
|
float m_msslTrgtImpactTexRadius; // 41
|
||||||
|
uint32 m_uiSeatIndicatorType; // 42
|
||||||
|
};
|
||||||
|
|
||||||
|
struct VehicleSeatEntry
|
||||||
|
{
|
||||||
|
uint32 m_ID; // 0
|
||||||
|
uint32 m_flags; // 1
|
||||||
|
int32 m_attachmentID; // 2
|
||||||
|
float m_attachmentOffsetX; // 3
|
||||||
|
float m_attachmentOffsetY; // 4
|
||||||
|
float m_attachmentOffsetZ; // 5
|
||||||
|
float m_enterPreDelay; // 6
|
||||||
|
float m_enterSpeed; // 7
|
||||||
|
float m_enterGravity; // 8
|
||||||
|
float m_enterMinDuration; // 9
|
||||||
|
float m_enterMaxDuration; // 10
|
||||||
|
float m_enterMinArcHeight; // 11
|
||||||
|
float m_enterMaxArcHeight; // 12
|
||||||
|
int32 m_enterAnimStart; // 13
|
||||||
|
int32 m_enterAnimLoop; // 14
|
||||||
|
int32 m_rideAnimStart; // 15
|
||||||
|
int32 m_rideAnimLoop; // 16
|
||||||
|
int32 m_rideUpperAnimStart; // 17
|
||||||
|
int32 m_rideUpperAnimLoop; // 18
|
||||||
|
float m_exitPreDelay; // 19
|
||||||
|
float m_exitSpeed; // 20
|
||||||
|
float m_exitGravity; // 21
|
||||||
|
float m_exitMinDuration; // 22
|
||||||
|
float m_exitMaxDuration; // 23
|
||||||
|
float m_exitMinArcHeight; // 24
|
||||||
|
float m_exitMaxArcHeight; // 25
|
||||||
|
int32 m_exitAnimStart; // 26
|
||||||
|
int32 m_exitAnimLoop; // 27
|
||||||
|
int32 m_exitAnimEnd; // 28
|
||||||
|
float m_passengerYaw; // 29
|
||||||
|
float m_passengerPitch; // 30
|
||||||
|
float m_passengerRoll; // 31
|
||||||
|
int32 m_passengerAttachmentID; // 32
|
||||||
|
int32 m_vehicleEnterAnim; // 33
|
||||||
|
int32 m_vehicleExitAnim; // 34
|
||||||
|
int32 m_vehicleRideAnimLoop; // 35
|
||||||
|
int32 m_vehicleEnterAnimBone; // 36
|
||||||
|
int32 m_vehicleExitAnimBone; // 37
|
||||||
|
int32 m_vehicleRideAnimLoopBone; // 38
|
||||||
|
float m_vehicleEnterAnimDelay; // 39
|
||||||
|
float m_vehicleExitAnimDelay; // 40
|
||||||
|
uint32 m_vehicleAbilityDisplay; // 41
|
||||||
|
uint32 m_enterUISoundID; // 42
|
||||||
|
uint32 m_exitUISoundID; // 43
|
||||||
|
int32 m_uiSkin; // 44
|
||||||
|
uint32 m_flagsB; // 45
|
||||||
|
};
|
||||||
|
|
||||||
struct WorldMapAreaEntry
|
struct WorldMapAreaEntry
|
||||||
{
|
{
|
||||||
//uint32 ID; // 0
|
//uint32 ID; // 0
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,7 @@ const char SpellRangefmt[]="nfxfxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
|
||||||
const char SpellRuneCostfmt[]="niiii";
|
const char SpellRuneCostfmt[]="niiii";
|
||||||
const char SpellShapeshiftfmt[]="nxxxxxxxxxxxxxxxxxxiixixxxxxxxxxxxx";
|
const char SpellShapeshiftfmt[]="nxxxxxxxxxxxxxxxxxxiixixxxxxxxxxxxx";
|
||||||
const char StableSlotPricesfmt[] = "ni";
|
const char StableSlotPricesfmt[] = "ni";
|
||||||
const char SummonPropertiesfmt[] = "niiiii";
|
//const char SummonPropertiesfmt[] = "niiiii";
|
||||||
const char TalentEntryfmt[]="niiiiiiiixxxxixxixxxxxx";
|
const char TalentEntryfmt[]="niiiiiiiixxxxixxixxxxxx";
|
||||||
const char TalentTabEntryfmt[]="nxxxxxxxxxxxxxxxxxxxiiix";
|
const char TalentTabEntryfmt[]="nxxxxxxxxxxxxxxxxxxxiiix";
|
||||||
const char TaxiNodesEntryfmt[]="nifffxxxxxxxxxxxxxxxxxii";
|
const char TaxiNodesEntryfmt[]="nifffxxxxxxxxxxxxxxxxxii";
|
||||||
|
|
|
||||||
|
|
@ -758,6 +758,12 @@
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\UpdateMask.h">
|
RelativePath="..\..\src\game\UpdateMask.h">
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\Vehicle.cpp">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\Vehicle.h">
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\WaypointMovementGenerator.cpp">
|
RelativePath="..\..\src\game\WaypointMovementGenerator.cpp">
|
||||||
</File>
|
</File>
|
||||||
|
|
|
||||||
|
|
@ -1182,6 +1182,14 @@
|
||||||
RelativePath="..\..\src\game\UpdateMask.h"
|
RelativePath="..\..\src\game\UpdateMask.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\Vehicle.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\Vehicle.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\WaypointMovementGenerator.cpp"
|
RelativePath="..\..\src\game\WaypointMovementGenerator.cpp"
|
||||||
>
|
>
|
||||||
|
|
|
||||||
|
|
@ -1184,6 +1184,14 @@
|
||||||
RelativePath="..\..\src\game\UpdateMask.h"
|
RelativePath="..\..\src\game\UpdateMask.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\Vehicle.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\Vehicle.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\WaypointMovementGenerator.cpp"
|
RelativePath="..\..\src\game\WaypointMovementGenerator.cpp"
|
||||||
>
|
>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue