aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared/DataStores
diff options
context:
space:
mode:
authorSpp <spp@jorge.gr>2013-01-02 13:30:51 +0100
committerSpp <spp@jorge.gr>2013-01-02 13:30:51 +0100
commitaed36a8375538dfb7ebe6da4c32c012a95dc14c6 (patch)
treeeca30ab36e47bcedc1f0380f0f8a600326cac41f /src/server/shared/DataStores
parent91f8ca32445f839e36ec699627a12781907950c9 (diff)
parentebd14b4f01cc64a2a488bdbb1046897cc4da8e9a (diff)
Merge branch 'master' into 4.3.4
Conflicts: dep/libmpq/CMakeLists.txt src/server/game/AI/EventAI/CreatureEventAI.cpp src/server/game/AI/EventAI/CreatureEventAI.h src/server/game/AI/EventAI/CreatureEventAIMgr.cpp src/server/game/AI/EventAI/CreatureEventAIMgr.h src/server/game/Entities/Creature/Creature.h src/server/game/Entities/Item/ItemPrototype.h src/server/game/Entities/Object/ObjectDefines.h src/server/game/Entities/Player/Player.cpp src/server/game/Handlers/ReferAFriendHandler.cpp src/server/game/Movement/Spline/MoveSplineInit.h src/server/game/World/World.h src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h src/server/scripts/EasternKingdoms/boss_kruul.cpp src/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp src/server/scripts/OutdoorPvP/OutdoorPvPEP.h src/server/shared/Database/Implementation/CharacterDatabase.cpp src/server/shared/Database/Implementation/CharacterDatabase.h src/server/shared/Database/Implementation/WorldDatabase.cpp
Diffstat (limited to 'src/server/shared/DataStores')
-rw-r--r--src/server/shared/DataStores/DBCFileLoader.cpp2
-rw-r--r--src/server/shared/DataStores/DBCFileLoader.h2
-rw-r--r--src/server/shared/DataStores/DBCStore.h76
3 files changed, 44 insertions, 36 deletions
diff --git a/src/server/shared/DataStores/DBCFileLoader.cpp b/src/server/shared/DataStores/DBCFileLoader.cpp
index 6f78ce5a02d..5e82579d29d 100644
--- a/src/server/shared/DataStores/DBCFileLoader.cpp
+++ b/src/server/shared/DataStores/DBCFileLoader.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
*
* This program is free software; you can redistribute it and/or modify it
diff --git a/src/server/shared/DataStores/DBCFileLoader.h b/src/server/shared/DataStores/DBCFileLoader.h
index 3d5c23dcb85..884418f6896 100644
--- a/src/server/shared/DataStores/DBCFileLoader.h
+++ b/src/server/shared/DataStores/DBCFileLoader.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
*
* This program is free software; you can redistribute it and/or modify it
diff --git a/src/server/shared/DataStores/DBCStore.h b/src/server/shared/DataStores/DBCStore.h
index 91c3f935c7b..30547ff9873 100644
--- a/src/server/shared/DataStores/DBCStore.h
+++ b/src/server/shared/DataStores/DBCStore.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
*
* This program is free software; you can redistribute it and/or modify it
@@ -28,13 +28,13 @@
struct SqlDbc
{
- const std::string * formatString;
- const std::string * indexName;
+ std::string const* formatString;
+ std::string const* indexName;
std::string sqlTableName;
int32 indexPos;
int32 sqlIndexPos;
- SqlDbc(const std::string * _filename, const std::string * _format, const std::string * _idname, const char * fmt)
- :formatString(_format), indexName (_idname), sqlIndexPos(0)
+ SqlDbc(std::string const* _filename, std::string const* _format, std::string const* _idname, char const* fmt)
+ : formatString(_format), indexName (_idname), sqlIndexPos(0)
{
// Convert dbc file name to sql table name
sqlTableName = *_filename;
@@ -70,22 +70,24 @@ class DBCStorage
{
typedef std::list<char*> StringPoolList;
public:
- explicit DBCStorage(const char *f) :
- fmt(f), nCount(0), fieldCount(0), dataTable(NULL)
+ explicit DBCStorage(char const* f)
+ : fmt(f), nCount(0), fieldCount(0), dataTable(NULL)
{
indexTable.asT = NULL;
}
+
~DBCStorage() { Clear(); }
T const* LookupEntry(uint32 id) const
{
return (id >= nCount) ? NULL : indexTable.asT[id];
}
+
uint32 GetNumRows() const { return nCount; }
char const* GetFormat() const { return fmt; }
uint32 GetFieldCount() const { return fieldCount; }
- bool Load(char const* fn, SqlDbc * sql)
+ bool Load(char const* fn, SqlDbc* sql)
{
DBCFileLoader dbc;
// Check if load was sucessful, only then continue
@@ -114,8 +116,9 @@ class DBCStorage
fields = result->Fetch();
sqlHighestIndex = fields[sql->sqlIndexPos].GetUInt32();
}
+
// Check if sql index pos is valid
- if (int32(result->GetFieldCount()-1) < sql->sqlIndexPos)
+ if (int32(result->GetFieldCount() - 1) < sql->sqlIndexPos)
{
sLog->outError(LOG_FILTER_SERVER_LOADING, "Invalid index pos for dbc:'%s'", sql->sqlTableName.c_str());
return false;
@@ -123,13 +126,13 @@ class DBCStorage
}
}
- char * sqlDataTable;
+ char* sqlDataTable = NULL;
fieldCount = dbc.GetCols();
- dataTable = (T*)dbc.AutoProduceData(fmt, nCount, indexTable.asChar,
- sqlRecordCount, sqlHighestIndex, sqlDataTable);
+ dataTable = reinterpret_cast<T*>(dbc.AutoProduceData(fmt, nCount, indexTable.asChar,
+ sqlRecordCount, sqlHighestIndex, sqlDataTable));
- stringPoolList.push_back(dbc.AutoProduceStrings(fmt, (char*)dataTable));
+ stringPoolList.push_back(dbc.AutoProduceStrings(fmt, reinterpret_cast<char*>(dataTable)));
// Insert sql data into arrays
if (result)
@@ -151,10 +154,12 @@ class DBCStorage
sLog->outError(LOG_FILTER_SERVER_LOADING, "Index %d already exists in dbc:'%s'", id, sql->sqlTableName.c_str());
return false;
}
- indexTable.asT[id]=(T*)&sqlDataTable[offset];
+
+ indexTable.asT[id] = reinterpret_cast<T*>(&sqlDataTable[offset]);
}
else
- indexTable.asT[rowIndex]=(T*)&sqlDataTable[offset];
+ indexTable.asT[rowIndex]= reinterpret_cast<T*>(&sqlDataTable[offset]);
+
uint32 columnNumber = 0;
uint32 sqlColumnNumber = 0;
@@ -165,22 +170,22 @@ class DBCStorage
switch (fmt[columnNumber])
{
case FT_FLOAT:
- *((float*)(&sqlDataTable[offset]))= 0.0f;
- offset+=4;
+ *reinterpret_cast<float*>(&sqlDataTable[offset]) = 0.0f;
+ offset += 4;
break;
case FT_IND:
case FT_INT:
- *((uint32*)(&sqlDataTable[offset]))=uint32(0);
- offset+=4;
+ *reinterpret_cast<uint32*>(&sqlDataTable[offset]) = uint32(0);
+ offset += 4;
break;
case FT_BYTE:
- *((uint8*)(&sqlDataTable[offset]))=uint8(0);
- offset+=1;
+ *reinterpret_cast<uint8*>(&sqlDataTable[offset]) = uint8(0);
+ offset += 1;
break;
case FT_STRING:
// Beginning of the pool - empty string
- *((char**)(&sqlDataTable[offset]))=stringPoolList.back();
- offset+=sizeof(char*);
+ *reinterpret_cast<char**>(&sqlDataTable[offset]) = stringPoolList.back();
+ offset += sizeof(char*);
break;
}
}
@@ -190,17 +195,17 @@ class DBCStorage
switch (fmt[columnNumber])
{
case FT_FLOAT:
- *((float*)(&sqlDataTable[offset]))=fields[sqlColumnNumber].GetFloat();
- offset+=4;
+ *reinterpret_cast<float*>(&sqlDataTable[offset]) = fields[sqlColumnNumber].GetFloat();
+ offset += 4;
break;
case FT_IND:
case FT_INT:
- *((uint32*)(&sqlDataTable[offset]))=fields[sqlColumnNumber].GetUInt32();
- offset+=4;
+ *reinterpret_cast<uint32*>(&sqlDataTable[offset]) = fields[sqlColumnNumber].GetUInt32();
+ offset += 4;
break;
case FT_BYTE:
- *((uint8*)(&sqlDataTable[offset]))=fields[sqlColumnNumber].GetUInt8();
- offset+=1;
+ *reinterpret_cast<uint8*>(&sqlDataTable[offset]) = fields[sqlColumnNumber].GetUInt8();
+ offset += 1;
break;
case FT_STRING:
sLog->outError(LOG_FILTER_SERVER_LOADING, "Unsupported data type in table '%s' at char %d", sql->sqlTableName.c_str(), columnNumber);
@@ -209,6 +214,7 @@ class DBCStorage
break;
default:
validSqlColumn = false;
+ break;
}
if (validSqlColumn && (columnNumber != (sql->formatString->size()-1)))
sqlColumnNumber++;
@@ -219,7 +225,8 @@ class DBCStorage
return false;
}
}
- if (sqlColumnNumber != (result->GetFieldCount()-1))
+
+ if (sqlColumnNumber != (result->GetFieldCount() - 1))
{
sLog->outError(LOG_FILTER_SERVER_LOADING, "SQL and DBC format strings are not matching for table: '%s'", sql->sqlTableName.c_str());
return false;
@@ -227,7 +234,7 @@ class DBCStorage
fields = NULL;
++rowIndex;
- }while (result->NextRow());
+ } while (result->NextRow());
}
}
@@ -246,7 +253,7 @@ class DBCStorage
if (!dbc.Load(fn, fmt))
return false;
- stringPoolList.push_back(dbc.AutoProduceStrings(fmt, (char*)dataTable));
+ stringPoolList.push_back(dbc.AutoProduceStrings(fmt, reinterpret_cast<char*>(dataTable)));
return true;
}
@@ -256,9 +263,9 @@ class DBCStorage
if (!indexTable.asT)
return;
- delete[] ((char*)indexTable.asT);
+ delete[] reinterpret_cast<char*>(indexTable.asT);
indexTable.asT = NULL;
- delete[] ((char*)dataTable);
+ delete[] reinterpret_cast<char*>(dataTable);
dataTable = NULL;
while (!stringPoolList.empty())
@@ -266,6 +273,7 @@ class DBCStorage
delete[] stringPoolList.front();
stringPoolList.pop_front();
}
+
nCount = 0;
}