aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/DataStores
diff options
context:
space:
mode:
authorManuel Carrasco <manue.l@live.com.ar>2011-11-28 23:06:50 -0300
committerManuel Carrasco <manue.l@live.com.ar>2011-11-28 23:06:50 -0300
commite2d303dc2639f22207c78adcb53cabb2a79eec25 (patch)
treeffbf23542ee3d4df178d677c45cb4dd5551af4f1 /src/server/game/DataStores
parent36a90f7098c27279521b6668067bb2e0bbe628de (diff)
Core/Packets: Restored functionality of "Randomize" button at character creation. Now it is server-side.
Diffstat (limited to 'src/server/game/DataStores')
-rwxr-xr-xsrc/server/game/DataStores/DBCStores.cpp19
-rwxr-xr-xsrc/server/game/DataStores/DBCStores.h3
-rwxr-xr-xsrc/server/game/DataStores/DBCStructure.h16
-rwxr-xr-xsrc/server/game/DataStores/DBCfmt.h1
4 files changed, 39 insertions, 0 deletions
diff --git a/src/server/game/DataStores/DBCStores.cpp b/src/server/game/DataStores/DBCStores.cpp
index 9bdbce70acc..82e97e9f863 100755
--- a/src/server/game/DataStores/DBCStores.cpp
+++ b/src/server/game/DataStores/DBCStores.cpp
@@ -146,6 +146,9 @@ MapDifficultyMap sMapDifficultyMap;
DBCStorage <MovieEntry> sMovieStore(MovieEntryfmt);
+DBCStorage <NameGenEntry> sNameGenStore(NameGenfmt);
+GenNameVectorArraysMap sGenNameVectoArraysMap;
+
DBCStorage <OverrideSpellDataEntry> sOverrideSpellDataStore(OverrideSpellDatafmt);
DBCStorage <PvPDifficultyEntry> sPvPDifficultyStore(PvPDifficultyfmt);
@@ -425,6 +428,14 @@ void LoadDBCStores(const std::string& dataPath)
sMapDifficultyMap[MAKE_PAIR32(entry->MapId, entry->Difficulty)] = MapDifficulty(entry->resetTime, entry->maxPlayers, entry->areaTriggerText[0] > 0);
sMapDifficultyStore.Clear();
+ LoadDBC(availableDbcLocales, bad_dbc_files, sNameGenStore, dbcPath, "NameGen.dbc");//14545
+ for (uint32 i = 0; i < sNameGenStore.GetNumRows(); ++i)
+ {
+ if (NameGenEntry const* entry = sNameGenStore.LookupEntry(i))
+ sGenNameVectoArraysMap[entry->race].stringVectorArray[entry->gender].push_back(std::string(entry->name));
+ }
+ sNameGenStore.Clear();
+
LoadDBC(availableDbcLocales, bad_dbc_files, sMovieStore, dbcPath, "Movie.dbc");//14545
LoadDBC(availableDbcLocales, bad_dbc_files, sOverrideSpellDataStore, dbcPath, "OverrideSpellData.dbc");//14545
@@ -722,6 +733,14 @@ void LoadDBCStores(const std::string& dataPath)
sLog->outString();
}
+const std::string* GetRandomCharacterName(uint8 race, uint8 gender)
+{
+ uint32 size = sGenNameVectoArraysMap[race].stringVectorArray[gender].size();
+ uint32 randPos = urand(0,size-1);
+
+ return &sGenNameVectoArraysMap[race].stringVectorArray[gender][randPos];
+}
+
SimpleFactionsList const* GetFactionTeamList(uint32 faction)
{
FactionTeamMap::const_iterator itr = sFactionTeamMap.find(faction);
diff --git a/src/server/game/DataStores/DBCStores.h b/src/server/game/DataStores/DBCStores.h
index aee179af3b2..ea2ddf0ae4b 100755
--- a/src/server/game/DataStores/DBCStores.h
+++ b/src/server/game/DataStores/DBCStores.h
@@ -44,6 +44,8 @@ WMOAreaTableEntry const* GetWMOAreaTableEntryByTripple(int32 rootid, int32 adtid
uint32 GetVirtualMapForMapAndZone(uint32 mapid, uint32 zoneId);
+const std::string* GetRandomCharacterName(uint8 race, uint8 gender);
+
enum ContentLevels
{
CONTENT_1_60 = 0,
@@ -137,6 +139,7 @@ extern DBCStorage <LFGDungeonEntry> sLFGDungeonStore;
extern DBCStorage <LockEntry> sLockStore;
extern DBCStorage <MailTemplateEntry> sMailTemplateStore;
extern DBCStorage <MapEntry> sMapStore;
+extern DBCStorage <NameGenEntry> sNameGenStore;
extern DBCStorage <PhaseEntry> sPhaseStore;
//extern DBCStorage <MapDifficultyEntry> sMapDifficultyStore; -- use GetMapDifficultyData insteed
extern MapDifficultyMap sMapDifficultyMap;
diff --git a/src/server/game/DataStores/DBCStructure.h b/src/server/game/DataStores/DBCStructure.h
index 03f3f1b1145..08740a44f48 100755
--- a/src/server/game/DataStores/DBCStructure.h
+++ b/src/server/game/DataStores/DBCStructure.h
@@ -2275,6 +2275,22 @@ struct WorldStateUI
#pragma pack(pop)
#endif
+// NamesGen.dbc
+struct NameGenEntry
+{
+ uint32 id;
+ char* name;
+ uint32 race;
+ uint32 gender;
+};
+
+struct VectorArray
+{
+ std::vector<std::string> stringVectorArray[2];
+};
+
+typedef std::map<uint32, VectorArray> GenNameVectorArraysMap;
+
// Structures not used for casting to loaded DBC data and not required then packing
struct MapDifficulty
{
diff --git a/src/server/game/DataStores/DBCfmt.h b/src/server/game/DataStores/DBCfmt.h
index 28df75f185b..eeaeadfdfe4 100755
--- a/src/server/game/DataStores/DBCfmt.h
+++ b/src/server/game/DataStores/DBCfmt.h
@@ -99,6 +99,7 @@ const char MailTemplateEntryfmt[]="nxs";
const char MapEntryfmt[]="nxixxxsixxixiffxiixx";
const char MapDifficultyEntryfmt[]="diisiix";
const char MovieEntryfmt[]="nxxx";
+const char NameGenfmt[] = "nsii";
const char OverrideSpellDatafmt[]="niiiiiiiiiixx";
const char QuestSortEntryfmt[]="nx";
const char QuestXPfmt[]="niiiiiiiiii";