Shaman totem models are now different depending on race

--HG--
branch : trunk
This commit is contained in:
Shauren
2010-07-22 17:31:27 +02:00
parent 3f9086fb4f
commit 903a3cbe76
3 changed files with 97 additions and 0 deletions
+83
View File
@@ -16102,6 +16102,89 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form)
return 0;
}
uint32 Unit::GetModelForTotem(PlayerTotemType totemType)
{
switch(getRace())
{
case RACE_ORC:
{
switch(totemType)
{
case SUMMON_TYPE_TOTEM_FIRE: //fire
return 30758;
case SUMMON_TYPE_TOTEM_EARTH: //earth
return 30757;
case SUMMON_TYPE_TOTEM_WATER: //water
return 30759;
case SUMMON_TYPE_TOTEM_AIR: //air
return 30756;
}
break;
}
case RACE_DWARF:
{
switch(totemType)
{
case SUMMON_TYPE_TOTEM_FIRE: //fire
return 30754;
case SUMMON_TYPE_TOTEM_EARTH: //earth
return 30753;
case SUMMON_TYPE_TOTEM_WATER: //water
return 30755;
case SUMMON_TYPE_TOTEM_AIR: //air
return 30736;
}
break;
}
case RACE_TROLL:
{
switch(totemType)
{
case SUMMON_TYPE_TOTEM_FIRE: //fire
return 30762;
case SUMMON_TYPE_TOTEM_EARTH: //earth
return 30761;
case SUMMON_TYPE_TOTEM_WATER: //water
return 30763;
case SUMMON_TYPE_TOTEM_AIR: //air
return 30760;
}
break;
}
case RACE_TAUREN:
{
switch(totemType)
{
case SUMMON_TYPE_TOTEM_FIRE: //fire
return 4589;
case SUMMON_TYPE_TOTEM_EARTH: //earth
return 4588;
case SUMMON_TYPE_TOTEM_WATER: //water
return 4587;
case SUMMON_TYPE_TOTEM_AIR: //air
return 4590;
}
break;
}
case RACE_DRAENEI:
{
switch(totemType)
{
case SUMMON_TYPE_TOTEM_FIRE: //fire
return 19074;
case SUMMON_TYPE_TOTEM_EARTH: //earth
return 19073;
case SUMMON_TYPE_TOTEM_WATER: //water
return 19075;
case SUMMON_TYPE_TOTEM_AIR: //air
return 19071;
}
break;
}
}
return 0;
}
void Unit::JumpTo(float speedXY, float speedZ, bool forward)
{
float angle = forward ? 0 : M_PI;
+9
View File
@@ -1074,6 +1074,14 @@ enum ReactiveType
#define SUMMON_SLOT_QUEST 6
#define MAX_SUMMON_SLOT 7
enum PlayerTotemType
{
SUMMON_TYPE_TOTEM_FIRE = 63,
SUMMON_TYPE_TOTEM_EARTH = 81,
SUMMON_TYPE_TOTEM_WATER = 82,
SUMMON_TYPE_TOTEM_AIR = 83,
};
// delay time next attack to prevent client attack animation problems
#define ATTACK_DISPLAY_DELAY 200
#define MAX_PLAYER_STEALTH_DETECT_RANGE 45.0f // max distance for detection targets by player
@@ -1917,6 +1925,7 @@ class Unit : public WorldObject
void RemovePetAura(PetAura const* petSpell);
uint32 GetModelForForm(ShapeshiftForm form);
uint32 GetModelForTotem(PlayerTotemType totemType);
void SetReducedThreatPercent(uint32 pct, uint64 guid)
{
+5
View File
@@ -3757,6 +3757,11 @@ void Spell::EffectSummonType(uint32 i)
&& properties->Slot >= SUMMON_SLOT_TOTEM
&& properties->Slot < MAX_TOTEM_SLOT)
{
// set display id depending on race
uint32 displayId = m_originalCaster->GetModelForTotem(PlayerTotemType(properties->Id));
summon->SetNativeDisplayId(displayId);
summon->SetDisplayId(displayId);
//summon->SendUpdateToPlayerm_originalCaster->ToPlayer();
WorldPacket data(SMSG_TOTEM_CREATED, 1+8+4+4);
data << uint8(properties->Slot-1);