diff options
author | Trazom62 <none@none> | 2010-01-29 19:49:46 +0100 |
---|---|---|
committer | Trazom62 <none@none> | 2010-01-29 19:49:46 +0100 |
commit | 7a6ad7d4f451e5f245cac50f2d781ccd6583a4e8 (patch) | |
tree | daf57c10bd9424f72e686b4934a410fb99141f91 | |
parent | 3c9c950c5fc675160bbb219dcee52a910f4cb68d (diff) | |
parent | a385ea64b03cc7afbdeb8df3ea8a6d5025d6f96a (diff) |
Merge
--HG--
branch : trunk
-rw-r--r-- | sql/updates/7236_world_spell_ranks.sql (renamed from sql/updates/7234_world_spell_ranks.sql) | 184 | ||||
-rw-r--r-- | src/game/MapUpdater.cpp | 4 | ||||
-rw-r--r-- | src/game/SpellMgr.cpp | 6 | ||||
-rw-r--r-- | src/game/Unit.cpp | 54 | ||||
-rw-r--r-- | src/game/WorldSocketMgr.cpp | 8 | ||||
-rw-r--r-- | src/trinitycore/CliRunnable.cpp | 4 | ||||
-rw-r--r-- | src/trinitycore/WorldRunnable.cpp | 1 |
7 files changed, 142 insertions, 119 deletions
diff --git a/sql/updates/7234_world_spell_ranks.sql b/sql/updates/7236_world_spell_ranks.sql index 18db2291d85..1c44ffefb4e 100644 --- a/sql/updates/7234_world_spell_ranks.sql +++ b/sql/updates/7236_world_spell_ranks.sql @@ -55,12 +55,12 @@ INSERT INTO spell_ranks (`first_spell_id`, `spell_id`, `rank`) VALUES (19434, 49049, 8), (19434, 49050, 9), -- Alchemy -(3101, 3101, 1), -(3101, 2259, 2), -(3101, 3464, 3), -(3101, 11611, 4), -(3101, 28596, 5), -(3101, 51304, 6), +(2259, 2259, 1), +(2259, 3101, 2), +(2259, 3464, 3), +(2259, 11611, 4), +(2259, 28596, 5), +(2259, 51304, 6), -- Ambush (8676, 8676, 1), (8676, 8724, 2), @@ -424,12 +424,12 @@ INSERT INTO spell_ranks (`first_spell_id`, `spell_id`, `rank`) VALUES (49140, 49663, 4), (49140, 49664, 5), -- Blacksmithing -(3100, 3100, 1), -(3100, 2018, 2), -(3100, 3538, 3), -(3100, 9785, 4), -(3100, 29844, 5), -(3100, 51300, 6), +(2018, 2018, 1), +(2018, 3100, 2), +(2018, 3538, 3), +(2018, 9785, 4), +(2018, 29844, 5), +(2018, 51300, 6), -- Blade Barrier (51789, 51789, 1), (51789, 64855, 2), @@ -850,12 +850,12 @@ INSERT INTO spell_ranks (`first_spell_id`, `spell_id`, `rank`) VALUES (20117, 20120, 4), (20117, 20121, 5), -- Cooking -(3102, 3102, 1), -(3102, 2550, 2), -(3102, 3413, 3), -(3102, 18260, 4), -(3102, 33359, 5), -(3102, 51296, 6), +(2550, 2550, 1), +(2550, 3102, 2), +(2550, 3413, 3), +(2550, 18260, 4), +(2550, 33359, 5), +(2550, 51296, 6), -- Cornered (52234, 52234, 1), (52234, 53497, 2), @@ -1496,12 +1496,12 @@ INSERT INTO spell_ranks (`first_spell_id`, `spell_id`, `rank`) VALUES (33879, 33879, 1), (33879, 33880, 2), -- Enchanting -(7412, 7412, 1), -(7412, 7411, 2), -(7412, 7413, 3), -(7412, 13920, 4), -(7412, 28029, 5), -(7412, 51313, 6), +(7411, 7411, 1), +(7411, 7412, 2), +(7411, 7413, 3), +(7411, 13920, 4), +(7411, 28029, 5), +(7411, 51313, 6), -- Endless Winter (49137, 49137, 1), (49137, 49657, 2), @@ -1519,12 +1519,12 @@ INSERT INTO spell_ranks (`first_spell_id`, `spell_id`, `rank`) VALUES (44557, 44560, 2), (44557, 44561, 3), -- Engineering -(4037, 4037, 1), -(4037, 4036, 2), -(4037, 4038, 3), -(4037, 12656, 4), -(4037, 30350, 5), -(4037, 51306, 6), +(4036, 4036, 1), +(4036, 4037, 2), +(4036, 4038, 3), +(4036, 12656, 4), +(4036, 30350, 5), +(4036, 51306, 6), -- Enhancing Totems (16259, 16259, 1), (16259, 16295, 2), @@ -1864,12 +1864,12 @@ INSERT INTO spell_ranks (`first_spell_id`, `spell_id`, `rank`) VALUES (44442, 44442, 1), (44442, 44443, 2), -- First Aid -(3274, 3274, 1), -(3274, 3273, 2), -(3274, 7924, 3), -(3274, 10846, 4), -(3274, 27028, 5), -(3274, 45542, 6), +(3273, 3273, 1), +(3273, 3274, 2), +(3273, 7924, 3), +(3273, 10846, 4), +(3273, 27028, 5), +(3273, 45542, 6), -- Flame Shock (8050, 8050, 1), (8050, 8052, 2), @@ -2462,12 +2462,12 @@ INSERT INTO spell_ranks (`first_spell_id`, `spell_id`, `rank`) VALUES (16511, 26864, 4), (16511, 48660, 5), -- Herb Gathering -(2368, 2368, 1), -(2368, 2366, 2), -(2368, 3570, 3), -(2368, 11993, 4), -(2368, 28695, 5), -(2368, 50300, 6), +(2366, 2366, 1), +(2366, 2368, 2), +(2366, 3570, 3), +(2366, 11993, 4), +(2366, 28695, 5), +(2366, 50300, 6), -- Heroic Strike (78, 78, 1), (78, 284, 2), @@ -3152,12 +3152,12 @@ INSERT INTO spell_ranks (`first_spell_id`, `spell_id`, `rank`) VALUES (588, 48040, 8), (588, 48168, 9), -- Inscription -(45358, 45358, 1), -(45358, 45357, 2), -(45358, 45359, 3), -(45358, 45360, 4), -(45358, 45361, 5), -(45358, 45363, 6), +(45357, 45357, 1), +(45357, 45358, 2), +(45357, 45359, 3), +(45357, 45360, 4), +(45357, 45361, 5), +(45357, 45363, 6), -- Insect Swarm (5570, 5570, 1), (5570, 24974, 2), @@ -3197,12 +3197,12 @@ INSERT INTO spell_ranks (`first_spell_id`, `spell_id`, `rank`) VALUES (12300, 12959, 2), (12300, 12960, 3), -- Jewelcrafting -(25230, 25230, 1), -(25230, 25229, 2), -(25230, 28894, 3), -(25230, 28895, 4), -(25230, 28897, 5), -(25230, 51311, 6), +(25229, 25229, 1), +(25229, 25230, 2), +(25229, 28894, 3), +(25229, 28895, 4), +(25229, 28897, 5), +(25229, 51311, 6), -- Judgements of the Just (53695, 53695, 1), (53695, 53696, 2), @@ -3283,12 +3283,12 @@ INSERT INTO spell_ranks (`first_spell_id`, `spell_id`, `rank`) VALUES (633, 27154, 4), (633, 48788, 5), -- Leatherworking -(3104, 3104, 1), -(3104, 2108, 2), -(3104, 3811, 3), -(3104, 10662, 4), -(3104, 32549, 5), -(3104, 51302, 6), +(2108, 2108, 1), +(2108, 3104, 2), +(2108, 3811, 3), +(2108, 10662, 4), +(2108, 32549, 5), +(2108, 51302, 6), -- Lesser Heal (2050, 2050, 1), (2050, 2052, 2), @@ -3403,9 +3403,9 @@ INSERT INTO spell_ranks (`first_spell_id`, `spell_id`, `rank`) VALUES (56342, 56343, 2), (56342, 56344, 3), -- Lockpicking -(1810, 1810, 1), -(1810, 1809, 2), -(1810, 6460, 3), +(1809, 1809, 1), +(1809, 1810, 2), +(1809, 6460, 3), -- Longevity (53262, 53262, 1), (53262, 53263, 2), @@ -3690,12 +3690,12 @@ INSERT INTO spell_ranks (`first_spell_id`, `spell_id`, `rank`) VALUES (2096, 2096, 1), (2096, 10909, 2), -- Mining -(2576, 2576, 1), -(2576, 2575, 2), -(2576, 3564, 3), -(2576, 10248, 4), -(2576, 29354, 5), -(2576, 50310, 6), +(2575, 2575, 1), +(2575, 2576, 2), +(2575, 3564, 3), +(2575, 10248, 4), +(2575, 29354, 5), +(2575, 50310, 6), -- Missile Barrage (44404, 44404, 1), (44404, 54486, 2), @@ -4891,12 +4891,12 @@ INSERT INTO spell_ranks (`first_spell_id`, `spell_id`, `rank`) VALUES (1752, 48637, 11), (1752, 48638, 12), -- Skinning -(8617, 8617, 1), -(8617, 8613, 2), -(8617, 8618, 3), -(8617, 10768, 4), -(8617, 32678, 5), -(8617, 50305, 6), +(8613, 8613, 1), +(8613, 8617, 2), +(8613, 8618, 3), +(8613, 10768, 4), +(8613, 32678, 5), +(8613, 50305, 6), -- Slam (1464, 1464, 1), (1464, 8820, 2), @@ -5300,12 +5300,12 @@ INSERT INTO spell_ranks (`first_spell_id`, `spell_id`, `rank`) VALUES (12295, 12676, 2), (12295, 12677, 3), -- Tailoring -(3909, 3909, 1), -(3909, 3908, 2), -(3909, 3910, 3), -(3909, 12180, 4), -(3909, 26790, 5), -(3909, 51309, 6), +(3908, 3908, 1), +(3908, 3909, 2), +(3908, 3910, 3), +(3908, 12180, 4), +(3908, 26790, 5), +(3908, 51309, 6), -- Taste for Blood (56636, 56636, 1), (56636, 56637, 2), @@ -6503,12 +6503,12 @@ INSERT INTO spell_ranks (`first_spell_id`, `spell_id`, `rank`) VALUES (30165, 29177, 2), (30165, 29178, 3), -- Fishing -(7731, 7731, 1), -(7731, 7620, 2), -(7731, 7732, 3), -(7731, 18248, 4), -(7731, 33095, 5), -(7731, 51294, 6), +(7620, 7620, 1), +(7620, 7731, 2), +(7620, 7732, 3), +(7620, 18248, 4), +(7620, 33095, 5), +(7620, 51294, 6), -- Icy Touch (45477, 45477, 1), (45477, 49896, 2), @@ -6614,11 +6614,11 @@ INSERT INTO spell_ranks (`first_spell_id`, `spell_id`, `rank`) VALUES -- Anesthetic Poison (26785, 26785, 1), (26785, 57982, 2), - -- Journeyman Riding -(33391, 33391, 1), -(33391, 33388, 2), -(33391, 34090, 3), -(33391, 34091, 4), + -- Apprentice Riding +(33388, 33388, 1), +(33388, 33391, 2), +(33388, 34090, 3), +(33388, 34091, 4), -- Primal Fury (16958, 16958, 1), (16958, 16961, 2), diff --git a/src/game/MapUpdater.cpp b/src/game/MapUpdater.cpp index 61d367ef2e1..501843f8869 100644 --- a/src/game/MapUpdater.cpp +++ b/src/game/MapUpdater.cpp @@ -18,6 +18,8 @@ class WDBThreadStartReq1 : public ACE_Method_Request call (void) { WorldDatabase.ThreadStart(); + CharacterDatabase.ThreadStart(); + loginDatabase.ThreadStart(); return 0; } }; @@ -31,6 +33,8 @@ class WDBThreadEndReq1 : public ACE_Method_Request call (void) { WorldDatabase.ThreadEnd(); + CharacterDatabase.ThreadEnd(); + loginDatabase.ThreadEnd(); return 0; } }; diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp index eea1971c029..e1792787b02 100644 --- a/src/game/SpellMgr.cpp +++ b/src/game/SpellMgr.cpp @@ -3256,7 +3256,7 @@ void SpellMgr::LoadSpellRanks() do { // spellid, rank - std::list<std::pair<int32, int32>> rankChain; + std::list < std::pair < int32, int32 > > rankChain; int32 currentSpell = -1; int32 lastSpell = -1; @@ -3299,7 +3299,7 @@ void SpellMgr::LoadSpellRanks() int32 curRank = 0; bool valid = true; // check spells in chain - for (std::list<std::pair<int32, int32>>::iterator itr = rankChain.begin() ; itr!= rankChain.end(); ++itr) + for (std::list<std::pair<int32, int32> >::iterator itr = rankChain.begin() ; itr!= rankChain.end(); ++itr) { SpellEntry const * spell = sSpellStore.LookupEntry(itr->first); if (!spell) @@ -3320,7 +3320,7 @@ void SpellMgr::LoadSpellRanks() continue; int32 prevRank = 0; // insert the chain - std::list<std::pair<int32, int32>>::iterator itr = rankChain.begin(); + std::list<std::pair<int32, int32> >::iterator itr = rankChain.begin(); do { int32 addedSpell = itr->first; diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index d9c1179823c..bb48d49ab7b 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -4300,33 +4300,43 @@ void Unit::RemoveAurasWithMechanic(uint32 mechanic_mask, AuraRemoveMode removemo void Unit::RemoveAreaAurasDueToLeaveWorld() { - // make sure that all area auras not applied on self are removed - prevent access to deleted pointer later - for (AuraMap::iterator iter = m_ownedAuras.begin(); iter != m_ownedAuras.end();) + bool cleanRun; + do { - Aura * aura = iter->second; - ++iter; - Aura::ApplicationMap const & appMap = aura->GetApplicationMap(); - for(Aura::ApplicationMap::const_iterator itr = appMap.begin(); itr!= appMap.end();) + cleanRun = true; + // make sure that all area auras not applied on self are removed - prevent access to deleted pointer later + for (AuraMap::iterator iter = m_ownedAuras.begin(); iter != m_ownedAuras.end();) { - AuraApplication * aurApp = itr->second; - ++itr; - Unit * target = aurApp->GetTarget(); - if (target == this) - continue; - target->RemoveAura(aurApp); - // things linked on aura remove may apply new area aura - so start from the beginning - iter = m_ownedAuras.begin(); + Aura * aura = iter->second; + ++iter; + Aura::ApplicationMap const & appMap = aura->GetApplicationMap(); + for(Aura::ApplicationMap::const_iterator itr = appMap.begin(); itr!= appMap.end();) + { + AuraApplication * aurApp = itr->second; + ++itr; + Unit * target = aurApp->GetTarget(); + if (target == this) + continue; + target->RemoveAura(aurApp); + cleanRun = false; + // things linked on aura remove may apply new area aura - so start from the beginning + iter = m_ownedAuras.begin(); + } } - } - // remove area auras owned by others - for (AuraApplicationMap::iterator iter = m_appliedAuras.begin(); iter != m_appliedAuras.end();) - { - if (iter->second->GetBase()->GetOwner()!=this) - RemoveAura(iter); - else - ++iter; + // remove area auras owned by others + for (AuraApplicationMap::iterator iter = m_appliedAuras.begin(); iter != m_appliedAuras.end();) + { + if (iter->second->GetBase()->GetOwner()!=this) + { + RemoveAura(iter); + cleanRun = false; + } + else + ++iter; + } } + while (!cleanRun); } void Unit::RemoveAllAuras() diff --git a/src/game/WorldSocketMgr.cpp b/src/game/WorldSocketMgr.cpp index b6407219792..b018e7423e2 100644 --- a/src/game/WorldSocketMgr.cpp +++ b/src/game/WorldSocketMgr.cpp @@ -154,7 +154,9 @@ class ReactorRunnable : protected ACE_Task_Base { DEBUG_LOG ("Network Thread Starting"); - WorldDatabase.ThreadStart (); + WorldDatabase.ThreadStart(); + CharacterDatabase.ThreadStart(); + loginDatabase.ThreadStart(); ACE_ASSERT (m_Reactor); @@ -187,7 +189,9 @@ class ReactorRunnable : protected ACE_Task_Base } } - WorldDatabase.ThreadEnd (); + WorldDatabase.ThreadEnd(); + CharacterDatabase.ThreadEnd(); + loginDatabase.ThreadEnd(); DEBUG_LOG ("Network Thread Exitting"); diff --git a/src/trinitycore/CliRunnable.cpp b/src/trinitycore/CliRunnable.cpp index 4549ffcf03e..f18d7ca49cb 100644 --- a/src/trinitycore/CliRunnable.cpp +++ b/src/trinitycore/CliRunnable.cpp @@ -369,6 +369,8 @@ void CliRunnable::run() { ///- Init new SQL thread for the world database (one connection call enough) WorldDatabase.ThreadStart(); // let thread do safe mySQL requests + CharacterDatabase.ThreadStart(); + loginDatabase.ThreadStart(); char commandbuf[256]; bool canflush = true; @@ -438,4 +440,6 @@ void CliRunnable::run() ///- End the database thread WorldDatabase.ThreadEnd(); // free mySQL thread resources + CharacterDatabase.ThreadEnd(); + loginDatabase.ThreadEnd(); } diff --git a/src/trinitycore/WorldRunnable.cpp b/src/trinitycore/WorldRunnable.cpp index 358344e1fed..007107f1eb8 100644 --- a/src/trinitycore/WorldRunnable.cpp +++ b/src/trinitycore/WorldRunnable.cpp @@ -47,6 +47,7 @@ void WorldRunnable::run() WorldDatabase.ThreadStart(); // let thread do safe mySQL requests (one connection call enough) CharacterDatabase.ThreadStart(); loginDatabase.ThreadStart(); + sWorld.InitResultQueue(); uint32 realCurrTime = 0; |