[9362] Make specs work at least for action bars

* Propertly add/remove required for specs work spells at 63624/63651.
* Copy current spec action bars to new spec at specs count increase, and delete action bars data at spec count decrease.
* Avoid undexpected action button data test for not active spec at loading/copy, but test action buttons data at spec activation.
* Reset active spec to default if active spec removed.
* Remove talent reset at spec switch that useless at this moment.
  Also note that for future case this also can be not correct and batter unlearn/learn only talents that different in specs.

After this changes specs must fully work in action bar part without unexpected another effects.
This commit is contained in:
VladimirMangos 2010-02-12 07:38:40 +03:00
parent c579b7dfc1
commit 268bb3221b
6 changed files with 74 additions and 20 deletions

View file

@ -7010,7 +7010,7 @@ void Spell::EffectPlayMusic(uint32 i)
void Spell::EffectSpecCount(uint32 /*eff_idx*/)
{
if(!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER)
if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER)
return;
((Player*)unitTarget)->UpdateSpecCount(damage);
@ -7018,9 +7018,10 @@ void Spell::EffectSpecCount(uint32 /*eff_idx*/)
void Spell::EffectActivateSpec(uint32 /*eff_idx*/)
{
if(!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER)
if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER)
return;
// damage = spec + 1
((Player*)unitTarget)->ActivateSpec(damage-1);
uint32 spec = damage-1;
((Player*)unitTarget)->ActivateSpec(spec);
}