*Fix the bug that fishing bobber does not have correct position.

--HG--
branch : trunk
This commit is contained in:
megamage
2009-05-06 10:35:37 -05:00
parent 2cdea49d81
commit ac3c58a2eb
2 changed files with 18 additions and 2 deletions

View File

@@ -1654,9 +1654,19 @@ void Spell::SetTargetMap(uint32 i, uint32 cur)
switch(cur)
{
case TARGET_UNIT_CASTER:
case TARGET_UNIT_CASTER_FISHING:
AddUnitTarget(m_caster, i);
break;
case TARGET_UNIT_CASTER_FISHING:
{
AddUnitTarget(m_caster, i);
float min_dis = GetSpellMinRange(m_spellInfo, true);
float max_dis = GetSpellMaxRange(m_spellInfo, true);
float dis = rand_norm() * (max_dis - min_dis) + min_dis;
float x, y, z;
m_caster->GetClosePoint(x, y, z, DEFAULT_WORLD_OBJECT_SIZE, dis);
m_targets.setDestination(x, y, z);
break;
}
case TARGET_UNIT_MASTER:
if(Unit* owner = m_caster->GetCharmerOrOwner())
AddUnitTarget(owner, i);
@@ -2647,7 +2657,7 @@ void Spell::_handle_immediate_phase()
{
if(spellmgr.EffectTargetType[m_spellInfo->Effect[j]] == SPELL_REQUIRE_DEST)
{
if(!m_targets.HasDst())
if(!m_targets.HasDst()) // FIXME: this will ignore dest set in effect
m_targets.setDestination(m_caster);
HandleEffects(m_originalCaster, NULL, NULL, j);
m_effectMask |= (1<<j);

View File

@@ -178,6 +178,12 @@ inline float GetSpellMaxRange(SpellEntry const *spellInfo, bool positive)
? GetSpellMaxRangeForFriend(sSpellRangeStore.LookupEntry(spellInfo->rangeIndex))
: GetSpellMaxRangeForHostile(sSpellRangeStore.LookupEntry(spellInfo->rangeIndex));
}
inline float GetSpellMinRange(SpellEntry const *spellInfo, bool positive)
{
return positive
? GetSpellMinRangeForFriend(sSpellRangeStore.LookupEntry(spellInfo->rangeIndex))
: GetSpellMinRangeForHostile(sSpellRangeStore.LookupEntry(spellInfo->rangeIndex));
}
/*struct DispelEntry
{