aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormegamage <none@none>2009-05-21 10:00:44 -0500
committermegamage <none@none>2009-05-21 10:00:44 -0500
commitb372a5ba25361c8cb0792abe6e5221a3413fc40c (patch)
treec99054ad8a11491d505bebb1396dd60e51d94f87 /src
parent40c58e599296203072c834fde68094b9544abaa6 (diff)
*Load gobject display info from dbc to check go boundaries.
--HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/game/DBCStores.cpp16
-rw-r--r--src/game/DBCStores.h1
-rw-r--r--src/game/DBCStructure.h14
-rw-r--r--src/game/DBCfmt.h1
4 files changed, 32 insertions, 0 deletions
diff --git a/src/game/DBCStores.cpp b/src/game/DBCStores.cpp
index 2c7c15d1796..4f09e039f3e 100644
--- a/src/game/DBCStores.cpp
+++ b/src/game/DBCStores.cpp
@@ -66,6 +66,8 @@ static FactionTeamMap sFactionTeamMap;
DBCStorage <FactionEntry> sFactionStore(FactionEntryfmt);
DBCStorage <FactionTemplateEntry> sFactionTemplateStore(FactionTemplateEntryfmt);
+DBCStorage <GameObjectDisplayInfoEntry> sGameObjectDisplayInfoStore(GameObjectDisplayInfofmt);
+
DBCStorage <GemPropertiesEntry> sGemPropertiesStore(GemPropertiesEntryfmt);
DBCStorage <GlyphPropertiesEntry> sGlyphPropertiesStore(GlyphPropertiesfmt);
DBCStorage <GlyphSlotEntry> sGlyphSlotStore(GlyphSlotfmt);
@@ -263,6 +265,20 @@ void LoadDBCStores(const std::string& dataPath)
}
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sFactionTemplateStore, dbcPath,"FactionTemplate.dbc");
+ LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGameObjectDisplayInfoStore, dbcPath,"GameObjectDisplayInfo.dbc");
+ for(uint32 i = 0; i < sGameObjectDisplayInfoStore.GetNumRows(); ++i)
+ {
+ if(GameObjectDisplayInfoEntry const * info = sGameObjectDisplayInfoStore.LookupEntry(i))
+ {
+ if(info->maxX < info->minX)
+ std::swap(*(float*)(&info->maxX), *(float*)(&info->minX));
+ if(info->maxY < info->minY)
+ std::swap(*(float*)(&info->maxY), *(float*)(&info->minY));
+ if(info->maxZ < info->minZ)
+ std::swap(*(float*)(&info->maxZ), *(float*)(&info->minZ));
+ }
+ }
+
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGemPropertiesStore, dbcPath,"GemProperties.dbc");
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGlyphPropertiesStore, dbcPath,"GlyphProperties.dbc");
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGlyphSlotStore, dbcPath,"GlyphSlot.dbc");
diff --git a/src/game/DBCStores.h b/src/game/DBCStores.h
index 4d7a9324ea2..5952d12ec71 100644
--- a/src/game/DBCStores.h
+++ b/src/game/DBCStores.h
@@ -84,6 +84,7 @@ extern DBCStorage <EmotesEntry> sEmotesStore;
extern DBCStorage <EmotesTextEntry> sEmotesTextStore;
extern DBCStorage <FactionEntry> sFactionStore;
extern DBCStorage <FactionTemplateEntry> sFactionTemplateStore;
+extern DBCStorage <GameObjectDisplayInfoEntry> sGameObjectDisplayInfoStore;
extern DBCStorage <GemPropertiesEntry> sGemPropertiesStore;
extern DBCStorage <GlyphPropertiesEntry> sGlyphPropertiesStore;
extern DBCStorage <GlyphSlotEntry> sGlyphSlotStore;
diff --git a/src/game/DBCStructure.h b/src/game/DBCStructure.h
index d5078e8b408..ac5b2bf419f 100644
--- a/src/game/DBCStructure.h
+++ b/src/game/DBCStructure.h
@@ -837,6 +837,20 @@ struct FactionTemplateEntry
bool IsContestedGuardFaction() const { return (factionFlags & FACTION_TEMPLATE_FLAG_CONTESTED_GUARD)!=0; }
};
+struct GameObjectDisplayInfoEntry
+{
+ uint32 ID; //0
+ //char* mdx; //1
+ //uint32 unk1[10]; //2-11
+ float minX;
+ float minY;
+ float minZ;
+ float maxX;
+ float maxY;
+ float maxZ;
+ //uint32 transport; //18
+};
+
struct GemPropertiesEntry
{
uint32 ID;
diff --git a/src/game/DBCfmt.h b/src/game/DBCfmt.h
index e7980c31a27..734cad30d11 100644
--- a/src/game/DBCfmt.h
+++ b/src/game/DBCfmt.h
@@ -48,6 +48,7 @@ const char EmotesEntryfmt[]="nxxiiix";
const char EmotesTextEntryfmt[]="nxixxxxxxxxxxxxxxxx";
const char FactionEntryfmt[]="niiiiiiiiiiiiiiiiiissssssssssssssssxxxxxxxxxxxxxxxxxx";
const char FactionTemplateEntryfmt[]="niiiiiiiiiiiii";
+const char GameObjectDisplayInfofmt[]="nxxxxxxxxxxxffffffx";
const char GemPropertiesEntryfmt[]="nixxi";
const char GlyphPropertiesfmt[]="niii";
const char GlyphSlotfmt[]="nii";