mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 07:37:01 +00:00
Added vehicle*.dbc
This commit is contained in:
parent
af6acab8f8
commit
943963df7e
8 changed files with 51 additions and 23 deletions
|
|
@ -18659,6 +18659,14 @@ void Player::InitGlyphsForLevel()
|
||||||
|
|
||||||
void Player::EnterVehicle(Vehicle *vehicle)
|
void Player::EnterVehicle(Vehicle *vehicle)
|
||||||
{
|
{
|
||||||
|
VehicleEntry const *ve = sVehicleStore.LookupEntry(vehicle->GetVehicleId());
|
||||||
|
if(!ve)
|
||||||
|
return;
|
||||||
|
|
||||||
|
VehicleSeatEntry const *veSeat = sVehicleSeatStore.LookupEntry(ve->m_seatID[0]);
|
||||||
|
if(!veSeat)
|
||||||
|
return;
|
||||||
|
|
||||||
vehicle->SetCharmerGUID(GetGUID());
|
vehicle->SetCharmerGUID(GetGUID());
|
||||||
vehicle->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
|
vehicle->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
|
||||||
vehicle->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNKNOWN5);
|
vehicle->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNKNOWN5);
|
||||||
|
|
@ -18684,9 +18692,9 @@ void Player::EnterVehicle(Vehicle *vehicle)
|
||||||
data << vehicle->GetOrientation(); // o
|
data << vehicle->GetOrientation(); // o
|
||||||
// transport part, TODO: load/calculate seat offsets
|
// transport part, TODO: load/calculate seat offsets
|
||||||
data << uint64(vehicle->GetGUID()); // transport guid
|
data << uint64(vehicle->GetGUID()); // transport guid
|
||||||
data << float(0); // transport offsetX
|
data << float(veSeat->m_attachmentOffsetX); // transport offsetX
|
||||||
data << float(0); // transport offsetY
|
data << float(veSeat->m_attachmentOffsetY); // transport offsetY
|
||||||
data << float(3); // transport offsetZ
|
data << float(veSeat->m_attachmentOffsetZ); // transport offsetZ
|
||||||
data << float(0); // transport orientation
|
data << float(0); // transport orientation
|
||||||
data << uint32(getMSTime()); // transport time
|
data << uint32(getMSTime()); // transport time
|
||||||
data << uint8(0); // seat
|
data << uint8(0); // seat
|
||||||
|
|
@ -18694,9 +18702,6 @@ void Player::EnterVehicle(Vehicle *vehicle)
|
||||||
data << uint32(0); // fall time
|
data << uint32(0); // fall time
|
||||||
GetSession()->SendPacket(&data);
|
GetSession()->SendPacket(&data);
|
||||||
|
|
||||||
vehicle->SetSpeed(MOVE_RUN, vehicle->GetCreatureInfo()->speed, true);
|
|
||||||
vehicle->SetSpeed(MOVE_FLIGHT, vehicle->GetCreatureInfo()->speed, true);
|
|
||||||
|
|
||||||
data.Initialize(SMSG_PET_SPELLS, 8+4+4+4+4*10+1+1);
|
data.Initialize(SMSG_PET_SPELLS, 8+4+4+4+4*10+1+1);
|
||||||
data << uint64(vehicle->GetGUID());
|
data << uint64(vehicle->GetGUID());
|
||||||
data << uint32(0x00000000);
|
data << uint32(0x00000000);
|
||||||
|
|
|
||||||
|
|
@ -167,7 +167,7 @@ enum UnitBytes2_Flags
|
||||||
UNIT_BYTE2_FLAG_UNK1 = 0x02,
|
UNIT_BYTE2_FLAG_UNK1 = 0x02,
|
||||||
UNIT_BYTE2_FLAG_FFA_PVP = 0x04,
|
UNIT_BYTE2_FLAG_FFA_PVP = 0x04,
|
||||||
UNIT_BYTE2_FLAG_SANCTUARY = 0x08,
|
UNIT_BYTE2_FLAG_SANCTUARY = 0x08,
|
||||||
UNIT_BYTE2_FLAG_AURAS = 0x10, // show positive auras as positive, and allow its dispel
|
UNIT_BYTE2_FLAG_UNK4 = 0x10,
|
||||||
UNIT_BYTE2_FLAG_UNK5 = 0x20,
|
UNIT_BYTE2_FLAG_UNK5 = 0x20,
|
||||||
UNIT_BYTE2_FLAG_UNK6 = 0x40,
|
UNIT_BYTE2_FLAG_UNK6 = 0x40,
|
||||||
UNIT_BYTE2_FLAG_UNK7 = 0x80
|
UNIT_BYTE2_FLAG_UNK7 = 0x80
|
||||||
|
|
@ -1149,7 +1149,7 @@ class MANGOS_DLL_SPEC Unit : public WorldObject
|
||||||
AuraList const& GetSingleCastAuras() const { return m_scAuras; }
|
AuraList const& GetSingleCastAuras() const { return m_scAuras; }
|
||||||
SpellImmuneList m_spellImmune[MAX_SPELL_IMMUNITY];
|
SpellImmuneList m_spellImmune[MAX_SPELL_IMMUNITY];
|
||||||
|
|
||||||
// Threat related methodes
|
// Threat related methods
|
||||||
bool CanHaveThreatList() const;
|
bool CanHaveThreatList() const;
|
||||||
void AddThreat(Unit* pVictim, float threat, SpellSchoolMask schoolMask = SPELL_SCHOOL_MASK_NORMAL, SpellEntry const *threatSpell = NULL);
|
void AddThreat(Unit* pVictim, float threat, SpellSchoolMask schoolMask = SPELL_SCHOOL_MASK_NORMAL, SpellEntry const *threatSpell = NULL);
|
||||||
float ApplyTotalThreatModifier(float threat, SpellSchoolMask schoolMask = SPELL_SCHOOL_MASK_NORMAL);
|
float ApplyTotalThreatModifier(float threat, SpellSchoolMask schoolMask = SPELL_SCHOOL_MASK_NORMAL);
|
||||||
|
|
|
||||||
|
|
@ -82,8 +82,6 @@ bool Vehicle::Create(uint32 guidlow, Map *map, uint32 Entry, uint32 vehicleId, u
|
||||||
SetVehicleId(vehicleId);
|
SetVehicleId(vehicleId);
|
||||||
|
|
||||||
SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
|
SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
|
||||||
//SetUInt32Value(UNIT_FIELD_BYTES_1, 0x02000001);
|
|
||||||
//SetUInt32Value(UNIT_FIELD_BYTES_2, 0x00000001);
|
|
||||||
SetFloatValue(UNIT_FIELD_HOVERHEIGHT, 1.0f);
|
SetFloatValue(UNIT_FIELD_HOVERHEIGHT, 1.0f);
|
||||||
|
|
||||||
CreatureInfo const *ci = GetCreatureInfo();
|
CreatureInfo const *ci = GetCreatureInfo();
|
||||||
|
|
|
||||||
|
|
@ -534,7 +534,15 @@ bool ChatHandler::HandleSpawnVehicle(const char* args)
|
||||||
uint32 entry = (uint32)atoi(e);
|
uint32 entry = (uint32)atoi(e);
|
||||||
uint32 id = (uint32)atoi(i);
|
uint32 id = (uint32)atoi(i);
|
||||||
|
|
||||||
// TODO: check entry, id...
|
CreatureInfo const *ci = objmgr.GetCreatureTemplate(entry);
|
||||||
|
|
||||||
|
if(!ci)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
VehicleEntry const *ve = sVehicleStore.LookupEntry(id);
|
||||||
|
|
||||||
|
if(!ve)
|
||||||
|
return false;
|
||||||
|
|
||||||
Vehicle *v = new Vehicle;
|
Vehicle *v = new Vehicle;
|
||||||
Map *map = m_session->GetPlayer()->GetMap();
|
Map *map = m_session->GetPlayer()->GetMap();
|
||||||
|
|
|
||||||
|
|
@ -132,6 +132,8 @@ TaxiPathNodesByPath sTaxiPathNodesByPath;
|
||||||
|
|
||||||
static DBCStorage <TaxiPathNodeEntry> sTaxiPathNodeStore(TaxiPathNodeEntryfmt);
|
static DBCStorage <TaxiPathNodeEntry> sTaxiPathNodeStore(TaxiPathNodeEntryfmt);
|
||||||
DBCStorage <TotemCategoryEntry> sTotemCategoryStore(TotemCategoryEntryfmt);
|
DBCStorage <TotemCategoryEntry> sTotemCategoryStore(TotemCategoryEntryfmt);
|
||||||
|
DBCStorage <VehicleEntry> sVehicleStore(VehicleEntryfmt);
|
||||||
|
DBCStorage <VehicleSeatEntry> sVehicleSeatStore(VehicleSeatEntryfmt);
|
||||||
DBCStorage <WorldMapAreaEntry> sWorldMapAreaStore(WorldMapAreaEntryfmt);
|
DBCStorage <WorldMapAreaEntry> sWorldMapAreaStore(WorldMapAreaEntryfmt);
|
||||||
DBCStorage <WorldSafeLocsEntry> sWorldSafeLocsStore(WorldSafeLocsEntryfmt);
|
DBCStorage <WorldSafeLocsEntry> sWorldSafeLocsStore(WorldSafeLocsEntryfmt);
|
||||||
|
|
||||||
|
|
@ -437,6 +439,8 @@ void LoadDBCStores(std::string dataPath)
|
||||||
sTaxiPathNodeStore.Clear();
|
sTaxiPathNodeStore.Clear();
|
||||||
|
|
||||||
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sTotemCategoryStore, dbcPath,"TotemCategory.dbc");
|
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sTotemCategoryStore, dbcPath,"TotemCategory.dbc");
|
||||||
|
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sVehicleStore, dbcPath,"Vehicle.dbc");
|
||||||
|
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sVehicleSeatStore, dbcPath,"VehicleSeat.dbc");
|
||||||
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sWorldMapAreaStore, dbcPath,"WorldMapArea.dbc");
|
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sWorldMapAreaStore, dbcPath,"WorldMapArea.dbc");
|
||||||
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sWorldSafeLocsStore, dbcPath,"WorldSafeLocs.dbc");
|
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sWorldSafeLocsStore, dbcPath,"WorldSafeLocs.dbc");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -200,6 +200,8 @@ extern TaxiMask sTaxiNodesMask;
|
||||||
extern TaxiPathSetBySource sTaxiPathSetBySource;
|
extern TaxiPathSetBySource sTaxiPathSetBySource;
|
||||||
extern TaxiPathNodesByPath sTaxiPathNodesByPath;
|
extern TaxiPathNodesByPath sTaxiPathNodesByPath;
|
||||||
extern DBCStorage <TotemCategoryEntry> sTotemCategoryStore;
|
extern DBCStorage <TotemCategoryEntry> sTotemCategoryStore;
|
||||||
|
extern DBCStorage <VehicleEntry> sVehicleStore;
|
||||||
|
extern DBCStorage <VehicleSeatEntry> sVehicleSeatStore;
|
||||||
//extern DBCStorage <WorldMapAreaEntry> sWorldMapAreaStore; -- use Zone2MapCoordinates and Map2ZoneCoordinates
|
//extern DBCStorage <WorldMapAreaEntry> sWorldMapAreaStore; -- use Zone2MapCoordinates and Map2ZoneCoordinates
|
||||||
extern DBCStorage <WorldSafeLocsEntry> sWorldSafeLocsStore;
|
extern DBCStorage <WorldSafeLocsEntry> sWorldSafeLocsStore;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -84,5 +84,7 @@ const char TaxiNodesEntryfmt[]="nifffxxxxxxxxxxxxxxxxxii";
|
||||||
const char TaxiPathEntryfmt[]="niii";
|
const char TaxiPathEntryfmt[]="niii";
|
||||||
const char TaxiPathNodeEntryfmt[]="diiifffiixx";
|
const char TaxiPathNodeEntryfmt[]="diiifffiixx";
|
||||||
const char TotemCategoryEntryfmt[]="nxxxxxxxxxxxxxxxxxii";
|
const char TotemCategoryEntryfmt[]="nxxxxxxxxxxxxxxxxxii";
|
||||||
|
const char VehicleEntryfmt[]="niffffiiiiiiiiffffiiiiiifffffffffffssssfifi";
|
||||||
|
const char VehicleSeatEntryfmt[]="niiffffffffffiiiiiifffffffiiifffiiiiiiiffiiiii";
|
||||||
const char WorldMapAreaEntryfmt[]="xinxffffix";
|
const char WorldMapAreaEntryfmt[]="xinxffffix";
|
||||||
const char WorldSafeLocsEntryfmt[]="nifffxxxxxxxxxxxxxxxxx";
|
const char WorldSafeLocsEntryfmt[]="nifffxxxxxxxxxxxxxxxxx";
|
||||||
|
|
|
||||||
|
|
@ -275,10 +275,12 @@ namespace VMAP
|
||||||
{
|
{
|
||||||
dirFileName = getDirFileName(pMapId);
|
dirFileName = getDirFileName(pMapId);
|
||||||
}
|
}
|
||||||
size_t len = pBasePath.length() + dirFileName.length();
|
//size_t len = pBasePath.length() + dirFileName.length();
|
||||||
char *filenameBuffer = new char[len+1];
|
//char *filenameBuffer = new char[len+1];
|
||||||
sprintf(filenameBuffer, "%s%s", pBasePath.c_str(), dirFileName.c_str());
|
//sprintf(filenameBuffer, "%s%s", pBasePath.c_str(), dirFileName.c_str());
|
||||||
FILE* df = fopen(filenameBuffer, "rb");
|
std::string fb = pBasePath + dirFileName;
|
||||||
|
//FILE* df = fopen(filenameBuffer, "rb");
|
||||||
|
FILE* df = fopen(fb.c_str(), "rb");
|
||||||
if(df)
|
if(df)
|
||||||
{
|
{
|
||||||
char lineBuffer[FILENAMEBUFFER_SIZE];
|
char lineBuffer[FILENAMEBUFFER_SIZE];
|
||||||
|
|
@ -288,8 +290,12 @@ namespace VMAP
|
||||||
chomp(name);
|
chomp(name);
|
||||||
if(name.length() >1)
|
if(name.length() >1)
|
||||||
{
|
{
|
||||||
sprintf(filenameBuffer, "%s%s", pBasePath.c_str(), name.c_str());
|
//size_t len2 = pBasePath.length() + name.length();
|
||||||
FILE* df2 = fopen(filenameBuffer, "rb");
|
//char *filenameBuffer2 = new char[len2+1];
|
||||||
|
//sprintf(filenameBuffer2, "%s%s", pBasePath.c_str(), name.c_str());
|
||||||
|
std::string fb2 = pBasePath + name;
|
||||||
|
//FILE* df2 = fopen(filenameBuffer2, "rb");
|
||||||
|
FILE* df2 = fopen(fb2.c_str(), "rb");
|
||||||
if(df2)
|
if(df2)
|
||||||
{
|
{
|
||||||
char magic[8];
|
char magic[8];
|
||||||
|
|
@ -298,11 +304,12 @@ namespace VMAP
|
||||||
result = true;
|
result = true;
|
||||||
fclose(df2);
|
fclose(df2);
|
||||||
}
|
}
|
||||||
|
//delete[] filenameBuffer2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fclose(df);
|
fclose(df);
|
||||||
}
|
}
|
||||||
delete[] filenameBuffer;
|
//delete[] filenameBuffer;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -659,14 +666,16 @@ namespace VMAP
|
||||||
bool MapTree::loadMap(const std::string& pDirFileName, unsigned int pMapTileIdent)
|
bool MapTree::loadMap(const std::string& pDirFileName, unsigned int pMapTileIdent)
|
||||||
{
|
{
|
||||||
bool result = true;
|
bool result = true;
|
||||||
size_t len = iBasePath.length() + pDirFileName.length();
|
//size_t len = iBasePath.length() + pDirFileName.length();
|
||||||
char *filenameBuffer = new char[len+1];
|
//char *filenameBuffer = new char[len+1];
|
||||||
if(!hasDirFile(pDirFileName))
|
if(!hasDirFile(pDirFileName))
|
||||||
{
|
{
|
||||||
FilesInDir filesInDir;
|
FilesInDir filesInDir;
|
||||||
result = false;
|
result = false;
|
||||||
sprintf(filenameBuffer, "%s%s", iBasePath.c_str(), pDirFileName.c_str());
|
std::string fb = iBasePath + pDirFileName;
|
||||||
FILE* df = fopen(filenameBuffer, "rb");
|
//sprintf(filenameBuffer, "%s%s", iBasePath.c_str(), pDirFileName.c_str());
|
||||||
|
//FILE* df = fopen(filenameBuffer, "rb");
|
||||||
|
FILE* df = fopen(fb.c_str(), "rb");
|
||||||
if(df)
|
if(df)
|
||||||
{
|
{
|
||||||
char lineBuffer[FILENAMEBUFFER_SIZE];
|
char lineBuffer[FILENAMEBUFFER_SIZE];
|
||||||
|
|
@ -726,7 +735,7 @@ namespace VMAP
|
||||||
filesInDir.incRefCount();
|
filesInDir.incRefCount();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
delete [] filenameBuffer;
|
//delete [] filenameBuffer;
|
||||||
return (result);
|
return (result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue