Add additional field for storage of speed_run rate of creature

This allow independent rate of walk vs run speed. Existing field renamed to explicit speed_walk.

Note that default database rate for run is a result of the most common value seen, 8.0/7.0

Author: NoFantasy.

--HG--
branch : trunk
This commit is contained in:
_manuel_
2010-03-21 14:57:49 -03:00
parent 2c34b6d376
commit fae77f2621
6 changed files with 20 additions and 13 deletions
+4 -3
View File
@@ -341,9 +341,10 @@ bool Creature::InitEntry(uint32 Entry, uint32 team, const CreatureData *data )
SetFloatValue(UNIT_MOD_CAST_SPEED, 1.0f);
SetSpeed(MOVE_WALK, cinfo->speed );
SetSpeed(MOVE_RUN, cinfo->speed );
SetSpeed(MOVE_SWIM, cinfo->speed );
SetSpeed(MOVE_WALK, cinfo->speed_walk );
SetSpeed(MOVE_RUN, cinfo->speed_run );
SetSpeed(MOVE_SWIM, 1.0f); // using 1.0 rate
SetSpeed(MOVE_FLIGHT, 1.0f); // using 1.0 rate
SetFloatValue(OBJECT_FIELD_SCALE_X, cinfo->scale);
+2 -1
View File
@@ -88,7 +88,8 @@ struct CreatureInfo
uint32 faction_A;
uint32 faction_H;
uint32 npcflag;
float speed;
float speed_walk;
float speed_run;
float scale;
uint32 rank;
float mindmg;
+5 -3
View File
@@ -292,6 +292,7 @@ void Unit::SendMonsterMoveWithSpeedToCurrentDestination(Player* player)
SendMonsterMoveWithSpeed(x, y, z, 0, player);
}
void Unit::SendMonsterMoveWithSpeed(float x, float y, float z, uint32 transitTime, Player* player)
{
if (!transitTime)
@@ -421,8 +422,9 @@ void Unit::SendMonsterMove(float NewPosX, float NewPosY, float NewPosZ, uint32 M
data << uint32(MovementFlags);
if (MovementFlags & MONSTER_MOVE_WALK)
moveTime *= 1.05f;
//enable me if things goes wrong or looks ugly, it is however an old hack
//if (MovementFlags & MONSTER_MOVE_WALK)
//moveTime *= 1.05f;
data << uint32(moveTime); // Time in between points
data << uint32(1); // 1 single waypoint
@@ -11744,7 +11746,7 @@ void Unit::UpdateSpeed(UnitMoveType mtype, bool forced)
{
// Set creature speed rate from CreatureInfo
if (GetTypeId() == TYPEID_UNIT)
speed *= this->ToCreature()->GetCreatureInfo()->speed;
speed *= this->ToCreature()->GetCreatureInfo()->speed_walk;
// Normalize speed by 191 aura SPELL_AURA_USE_NORMAL_MOVEMENT_SPEED if need
// TODO: possible affect only on MOVE_RUN