aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormegamage <none@none>2009-02-16 20:12:55 -0600
committermegamage <none@none>2009-02-16 20:12:55 -0600
commit1ad4f8509c10198d7e2c6691a0f17292d6deac0e (patch)
tree0c96a8c587b162f145aa0fd02fb11e5904607a54
parent5881a1c25c760f3b57210d0912be23b356e3d40f (diff)
[7285] More code cleanups in static data structures use. Author: zhenya
--HG-- branch : trunk
-rw-r--r--src/game/Creature.cpp2
-rw-r--r--src/game/GossipDef.cpp18
-rw-r--r--src/game/LootMgr.h9
-rw-r--r--src/game/NPCHandler.h1
-rw-r--r--src/game/ObjectMgr.cpp69
-rw-r--r--src/game/ObjectMgr.h7
-rw-r--r--src/game/QueryHandler.cpp17
-rw-r--r--src/game/SocialMgr.cpp2
-rw-r--r--src/game/Unit.cpp10
-rw-r--r--src/shared/revision_nr.h2
10 files changed, 49 insertions, 88 deletions
diff --git a/src/game/Creature.cpp b/src/game/Creature.cpp
index eeee530bae1..7fa615d1c8a 100644
--- a/src/game/Creature.cpp
+++ b/src/game/Creature.cpp
@@ -809,7 +809,7 @@ void Creature::prepareGossipMenu( Player *pPlayer,uint32 gossipid )
if(gso->Id==1)
{
uint32 textid=GetNpcTextId();
- GossipText * gossiptext=objmgr.GetGossipText(textid);
+ GossipText const* gossiptext=objmgr.GetGossipText(textid);
if(!gossiptext)
cantalking=false;
}
diff --git a/src/game/GossipDef.cpp b/src/game/GossipDef.cpp
index b2fdec67688..b68c8b17f00 100644
--- a/src/game/GossipDef.cpp
+++ b/src/game/GossipDef.cpp
@@ -196,10 +196,7 @@ void PlayerMenu::SendPointOfInterest( float X, float Y, uint32 Icon, uint32 Flag
void PlayerMenu::SendTalking( uint32 textID )
{
- GossipText *pGossip;
- std::string GossipStr;
-
- pGossip = objmgr.GetGossipText(textID);
+ GossipText const* pGossip = objmgr.GetGossipText(textID);
WorldPacket data( SMSG_NPC_TEXT_UPDATE, 100 ); // guess size
data << textID; // can be < 0
@@ -259,14 +256,11 @@ void PlayerMenu::SendTalking( uint32 textID )
data << pGossip->Options[i].Language;
- data << pGossip->Options[i].Emotes[0]._Delay;
- data << pGossip->Options[i].Emotes[0]._Emote;
-
- data << pGossip->Options[i].Emotes[1]._Delay;
- data << pGossip->Options[i].Emotes[1]._Emote;
-
- data << pGossip->Options[i].Emotes[2]._Delay;
- data << pGossip->Options[i].Emotes[2]._Emote;
+ for(int j = 0; j < 3; ++j)
+ {
+ data << pGossip->Options[i].Emotes[j]._Delay;
+ data << pGossip->Options[i].Emotes[j]._Emote;
+ }
}
}
pSession->SendPacket( &data );
diff --git a/src/game/LootMgr.h b/src/game/LootMgr.h
index 8f54bb3bee1..2d024b307a9 100644
--- a/src/game/LootMgr.h
+++ b/src/game/LootMgr.h
@@ -239,18 +239,19 @@ struct Loot
// void clear();
void clear()
{
- items.clear(); gold = 0; PlayersLooting.clear();
for (QuestItemMap::iterator itr = PlayerQuestItems.begin(); itr != PlayerQuestItems.end(); ++itr)
delete itr->second;
+ PlayerQuestItems.clear();
+
for (QuestItemMap::iterator itr = PlayerFFAItems.begin(); itr != PlayerFFAItems.end(); ++itr)
delete itr->second;
+ PlayerFFAItems.clear();
+
for (QuestItemMap::iterator itr = PlayerNonQuestNonFFAConditionalItems.begin(); itr != PlayerNonQuestNonFFAConditionalItems.end(); ++itr)
delete itr->second;
-
- PlayerQuestItems.clear();
- PlayerFFAItems.clear();
PlayerNonQuestNonFFAConditionalItems.clear();
+ PlayersLooting.clear();
items.clear();
quest_items.clear();
gold = 0;
diff --git a/src/game/NPCHandler.h b/src/game/NPCHandler.h
index e6e97df696b..9020bcd8ec8 100644
--- a/src/game/NPCHandler.h
+++ b/src/game/NPCHandler.h
@@ -60,7 +60,6 @@ struct GossipTextOption
struct GossipText
{
- uint32 Text_ID;
GossipTextOption Options[8];
};
diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp
index dae60a230f1..7b4c2447c2c 100644
--- a/src/game/ObjectMgr.cpp
+++ b/src/game/ObjectMgr.cpp
@@ -144,24 +144,10 @@ ObjectMgr::ObjectMgr()
ObjectMgr::~ObjectMgr()
{
for( QuestMap::iterator i = mQuestTemplates.begin( ); i != mQuestTemplates.end( ); ++i )
- {
delete i->second;
- }
- mQuestTemplates.clear( );
-
- for( GossipTextMap::iterator i = mGossipText.begin( ); i != mGossipText.end( ); ++i )
- {
- delete i->second;
- }
- mGossipText.clear( );
-
- mAreaTriggers.clear();
for(PetLevelInfoMap::iterator i = petInfo.begin( ); i != petInfo.end( ); ++i )
- {
delete[] i->second;
- }
- petInfo.clear();
// free only if loaded
for (int class_ = 0; class_ < MAX_CLASSES; ++class_)
@@ -4179,7 +4165,7 @@ void ObjectMgr::LoadInstanceTemplate()
// entry->resetTimeHeroic store reset time for both heroic mode instance (raid and non-raid)
// entry->resetTimeRaid store reset time for normal raid only
// for current state entry->resetTimeRaid == entry->resetTimeHeroic in case raid instances with heroic mode.
- // but at some point wee need implement reset time dependen from raid insatance mode
+ // but at some point wee need implement reset time dependent from raid instance mode
if(temp->reset_delay == 0)
{
// use defaults from the DBC
@@ -4202,21 +4188,11 @@ void ObjectMgr::LoadInstanceTemplate()
sLog.outString();
}
-void ObjectMgr::AddGossipText(GossipText *pGText)
-{
- ASSERT( pGText->Text_ID );
- ASSERT( mGossipText.find(pGText->Text_ID) == mGossipText.end() );
- mGossipText[pGText->Text_ID] = pGText;
-}
-
-GossipText *ObjectMgr::GetGossipText(uint32 Text_ID)
+GossipText const *ObjectMgr::GetGossipText(uint32 Text_ID) const
{
- GossipTextMap::const_iterator itr;
- for (itr = mGossipText.begin(); itr != mGossipText.end(); ++itr)
- {
- if(itr->second->Text_ID == Text_ID)
- return itr->second;
- }
+ GossipTextMap::const_iterator itr = mGossipText.find(Text_ID);
+ if(itr != mGossipText.end())
+ return &itr->second;
return NULL;
}
@@ -4249,30 +4225,29 @@ void ObjectMgr::LoadGossipText()
bar.step();
- pGText = new GossipText;
- pGText->Text_ID = fields[cic++].GetUInt32();
-
- for (int i=0; i< 8; i++)
+ uint32 Text_ID = fields[cic++].GetUInt32();
+ if(!Text_ID)
{
- pGText->Options[i].Text_0 = fields[cic++].GetCppString();
- pGText->Options[i].Text_1 = fields[cic++].GetCppString();
+ sLog.outErrorDb("Table `npc_text` has record wit reserved id 0, ignore.");
+ continue;
+ }
- pGText->Options[i].Language = fields[cic++].GetUInt32();
- pGText->Options[i].Probability = fields[cic++].GetFloat();
+ GossipText& gText = mGossipText[Text_ID];
- pGText->Options[i].Emotes[0]._Delay = fields[cic++].GetUInt32();
- pGText->Options[i].Emotes[0]._Emote = fields[cic++].GetUInt32();
+ for (int i=0; i< 8; i++)
+ {
+ gText.Options[i].Text_0 = fields[cic++].GetCppString();
+ gText.Options[i].Text_1 = fields[cic++].GetCppString();
- pGText->Options[i].Emotes[1]._Delay = fields[cic++].GetUInt32();
- pGText->Options[i].Emotes[1]._Emote = fields[cic++].GetUInt32();
+ gText.Options[i].Language = fields[cic++].GetUInt32();
+ gText.Options[i].Probability = fields[cic++].GetFloat();
- pGText->Options[i].Emotes[2]._Delay = fields[cic++].GetUInt32();
- pGText->Options[i].Emotes[2]._Emote = fields[cic++].GetUInt32();
+ for(int j=0; j < 3; ++j)
+ {
+ gText.Options[i].Emotes[j]._Delay = fields[cic++].GetUInt32();
+ gText.Options[i].Emotes[j]._Emote = fields[cic++].GetUInt32();
+ }
}
-
- if ( !pGText->Text_ID ) continue;
- AddGossipText( pGText );
-
} while( result->NextRow() );
sLog.outString();
diff --git a/src/game/ObjectMgr.h b/src/game/ObjectMgr.h
index 0964047b4d1..342e87459c4 100644
--- a/src/game/ObjectMgr.h
+++ b/src/game/ObjectMgr.h
@@ -429,8 +429,7 @@ class ObjectMgr
return false;
}
- void AddGossipText(GossipText *pGText);
- GossipText *GetGossipText(uint32 Text_ID);
+ GossipText const* GetGossipText(uint32 Text_ID) const;
WorldSafeLocsEntry const *GetClosestGraveYard(float x, float y, float z, uint32 MapId, uint32 team);
bool AddGraveYardLink(uint32 id, uint32 zone, uint32 team, bool inDB = true);
@@ -786,7 +785,7 @@ class ObjectMgr
QuestMap mQuestTemplates;
- typedef UNORDERED_MAP<uint32, GossipText*> GossipTextMap;
+ typedef UNORDERED_MAP<uint32, GossipText> GossipTextMap;
typedef UNORDERED_MAP<uint32, uint32> QuestAreaTriggerMap;
typedef UNORDERED_MAP<uint32, std::string> ItemTextMap;
typedef std::set<uint32> TavernAreaTriggerSet;
@@ -796,8 +795,6 @@ class ObjectMgr
GuildMap mGuildMap;
ArenaTeamMap mArenaTeamMap;
- ItemMap mItems;
-
ItemTextMap mItemTexts;
QuestAreaTriggerMap mQuestAreaTriggerMap;
diff --git a/src/game/QueryHandler.cpp b/src/game/QueryHandler.cpp
index 681318a9de9..9829efc3946 100644
--- a/src/game/QueryHandler.cpp
+++ b/src/game/QueryHandler.cpp
@@ -322,8 +322,6 @@ void WorldSession::HandleNpcTextQueryOpcode( WorldPacket & recv_data )
uint32 textID;
uint64 guid;
- GossipText *pGossip;
- std::string GossipStr;
recv_data >> textID;
sLog.outDetail("WORLD: CMSG_NPC_TEXT_QUERY ID '%u'", textID);
@@ -331,7 +329,7 @@ void WorldSession::HandleNpcTextQueryOpcode( WorldPacket & recv_data )
recv_data >> guid;
GetPlayer()->SetUInt64Value(UNIT_FIELD_TARGET, guid);
- pGossip = objmgr.GetGossipText(textID);
+ GossipText const* pGossip = objmgr.GetGossipText(textID);
WorldPacket data( SMSG_NPC_TEXT_UPDATE, 100 ); // guess size
data << textID;
@@ -393,14 +391,11 @@ void WorldSession::HandleNpcTextQueryOpcode( WorldPacket & recv_data )
data << pGossip->Options[i].Language;
- data << pGossip->Options[i].Emotes[0]._Delay;
- data << pGossip->Options[i].Emotes[0]._Emote;
-
- data << pGossip->Options[i].Emotes[1]._Delay;
- data << pGossip->Options[i].Emotes[1]._Emote;
-
- data << pGossip->Options[i].Emotes[2]._Delay;
- data << pGossip->Options[i].Emotes[2]._Emote;
+ for(int j = 0; j < 3; ++j)
+ {
+ data << pGossip->Options[i].Emotes[j]._Delay;
+ data << pGossip->Options[i].Emotes[j]._Emote;
+ }
}
}
diff --git a/src/game/SocialMgr.cpp b/src/game/SocialMgr.cpp
index a0851264451..e98e147b505 100644
--- a/src/game/SocialMgr.cpp
+++ b/src/game/SocialMgr.cpp
@@ -275,7 +275,7 @@ void SocialMgr::BroadcastToFriendListers(Player *player, WorldPacket *packet)
for(SocialMap::iterator itr = m_socialMap.begin(); itr != m_socialMap.end(); ++itr)
{
- PlayerSocialMap::iterator itr2 = itr->second.m_playerSocialMap.find(guid);
+ PlayerSocialMap::const_iterator itr2 = itr->second.m_playerSocialMap.find(guid);
if(itr2 != itr->second.m_playerSocialMap.end() && (itr2->second.Flags & SOCIAL_FLAG_FRIEND))
{
Player *pFriend = ObjectAccessor::FindPlayer(MAKE_NEW_GUID(itr->first, 0, HIGHGUID_PLAYER));
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index b695afe7804..3bd2eb0e54d 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -102,7 +102,7 @@ Unit::Unit()
m_addDmgOnce = 0;
for(int i = 0; i < MAX_TOTEM; ++i)
- m_TotemSlot[i] = 0;
+ m_TotemSlot[i] = 0;
m_ObjectSlot[0] = m_ObjectSlot[1] = m_ObjectSlot[2] = m_ObjectSlot[3] = 0;
//m_Aura = NULL;
@@ -119,9 +119,9 @@ Unit::Unit()
m_ShapeShiftFormSpellId = 0;
m_canModifyStats = false;
- for (int i = 0; i < MAX_SPELL_IMMUNITY; i++)
+ for (int i = 0; i < MAX_SPELL_IMMUNITY; ++i)
m_spellImmune[i].clear();
- for (int i = 0; i < UNIT_MOD_END; i++)
+ for (int i = 0; i < UNIT_MOD_END; ++i)
{
m_auraModifiersGroup[i][BASE_VALUE] = 0.0f;
m_auraModifiersGroup[i][BASE_PCT] = 1.0f;
@@ -131,12 +131,12 @@ Unit::Unit()
// implement 50% base damage from offhand
m_auraModifiersGroup[UNIT_MOD_DAMAGE_OFFHAND][TOTAL_PCT] = 0.5f;
- for (int i = 0; i < 3; i++)
+ for (int i = 0; i < MAX_ATTACK; ++i)
{
m_weaponDamage[i][MINDAMAGE] = BASE_MINDAMAGE;
m_weaponDamage[i][MAXDAMAGE] = BASE_MAXDAMAGE;
}
- for (int i = 0; i < MAX_STATS; i++)
+ for (int i = 0; i < MAX_STATS; ++i)
m_createStats[i] = 0.0f;
m_attacking = NULL;
diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h
index 783c0af79f5..239221fd113 100644
--- a/src/shared/revision_nr.h
+++ b/src/shared/revision_nr.h
@@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__
#define __REVISION_NR_H__
- #define REVISION_NR "7284"
+ #define REVISION_NR "7285"
#endif // __REVISION_NR_H__