aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormegamage <none@none>2009-05-27 22:17:10 -0500
committermegamage <none@none>2009-05-27 22:17:10 -0500
commit626630a1b0593094ccfabf10854374da55bc7fbf (patch)
treeee61ba36d61fb809ff399ddcef59f27b4f003017 /src
parent514fc49c3c5c8c0a1e1194c7817af1dade1b4aa7 (diff)
*Some update of pet bar code.
--HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/game/Unit.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 2d1eb8ef01b..2e576b00472 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -11718,8 +11718,8 @@ void CharmInfo::InitPetActionBar()
SetActionBar(i,COMMAND_ATTACK - i,ACT_COMMAND);
SetActionBar(i + 7,COMMAND_ATTACK - i,ACT_REACTION);
}
- for(uint32 i = 0; i < 4; ++i)
- SetActionBar(i,0,ACT_DISABLED);
+ for(uint32 i = 4; i < 8; ++i)
+ SetActionBar(i,0,ACT_PASSIVE);
}
void CharmInfo::InitEmptyActionBar(bool withAttack)
@@ -11845,7 +11845,7 @@ bool CharmInfo::RemoveSpellFromActionBar(uint32 spell_id)
{
if (spellmgr.GetFirstSpellInChain(PetActionBar[i].SpellOrAction) == first_id)
{
- SetActionBar(i,0,ACT_DISABLED);
+ SetActionBar(i,0,ACT_PASSIVE);
return true;
}
}
@@ -11894,8 +11894,13 @@ bool CharmInfo::LoadActionBar( std::string data )
PetActionBar[index].SpellOrAction = atol((*iter).c_str());
// check correctness
- if(PetActionBar[index].IsActionBarForSpell() && !sSpellStore.LookupEntry(PetActionBar[index].SpellOrAction))
- SetActionBar(index,0,ACT_DISABLED);
+ if(PetActionBar[index].IsActionBarForSpell())
+ {
+ if(!sSpellStore.LookupEntry(PetActionBar[index].SpellOrAction))
+ SetActionBar(index,0,ACT_PASSIVE);
+ else if(!IsAutocastableSpell(PetActionBar[index].SpellOrAction))
+ SetActionBar(index,PetActionBar[index].SpellOrAction,ACT_PASSIVE);
+ }
}
return true;
}