aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
author_manuel_ <manue.l@live.com.ar>2010-03-21 14:57:49 -0300
committer_manuel_ <manue.l@live.com.ar>2010-03-21 14:57:49 -0300
commitfae77f26210b4090271bb9227083c8c5240b715c (patch)
tree92f232b8a3f6216f77e2362e9b96ee821201a84d /src
parent2c34b6d376edf97e16902017c5fa8bd66d0162b1 (diff)
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
Diffstat (limited to 'src')
-rw-r--r--src/game/Creature.cpp7
-rw-r--r--src/game/Creature.h3
-rw-r--r--src/game/Unit.cpp8
-rw-r--r--src/scripts/northrend/ulduar/halls_of_lightning/boss_ionar.cpp6
-rw-r--r--src/shared/Database/SQLStorage.cpp4
5 files changed, 17 insertions, 11 deletions
diff --git a/src/game/Creature.cpp b/src/game/Creature.cpp
index 8404702f748..e4f3e2e7b89 100644
--- a/src/game/Creature.cpp
+++ b/src/game/Creature.cpp
@@ -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);
diff --git a/src/game/Creature.h b/src/game/Creature.h
index cef677edc29..4d74e03d60f 100644
--- a/src/game/Creature.h
+++ b/src/game/Creature.h
@@ -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;
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 3d63555ab0b..4f97861c9a1 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -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
diff --git a/src/scripts/northrend/ulduar/halls_of_lightning/boss_ionar.cpp b/src/scripts/northrend/ulduar/halls_of_lightning/boss_ionar.cpp
index 5a90bbd54a8..0c025eaaa0e 100644
--- a/src/scripts/northrend/ulduar/halls_of_lightning/boss_ionar.cpp
+++ b/src/scripts/northrend/ulduar/halls_of_lightning/boss_ionar.cpp
@@ -185,7 +185,8 @@ struct boss_ionarAI : public ScriptedAI
if (pSpark->GetMotionMaster()->GetCurrentMovementGeneratorType() == TARGETED_MOTION_TYPE)
pSpark->GetMotionMaster()->MovementExpired();
- pSpark->SetSpeed(MOVE_RUN, pSpark->GetCreatureInfo()->speed * 2);
+ //now handle by db
+ //pSpark->SetSpeed(MOVE_RUN, pSpark->GetCreatureInfo()->speed * 2);
pSpark->GetMotionMaster()->MovePoint(POINT_CALLBACK, pos);
}
}
@@ -430,7 +431,8 @@ struct mob_spark_of_ionarAI : public ScriptedAI
if (m_creature->GetMotionMaster()->GetCurrentMovementGeneratorType() == TARGETED_MOTION_TYPE)
m_creature->GetMotionMaster()->MovementExpired();
- m_creature->SetSpeed(MOVE_RUN, m_creature->GetCreatureInfo()->speed * 2);
+ //now handle by db
+ //m_creature->SetSpeed(MOVE_RUN, m_creature->GetCreatureInfo()->speed * 2);
m_creature->GetMotionMaster()->MovePoint(POINT_CALLBACK, pos);
}
}
diff --git a/src/shared/Database/SQLStorage.cpp b/src/shared/Database/SQLStorage.cpp
index a5c4a6523e2..d3029c858b2 100644
--- a/src/shared/Database/SQLStorage.cpp
+++ b/src/shared/Database/SQLStorage.cpp
@@ -27,8 +27,8 @@ extern DatabasePostgre WorldDatabase;
extern DatabaseMysql WorldDatabase;
#endif
-const char CreatureInfosrcfmt[]="iiiiiiiiiisssiiiiiiiffiffiifiiiiiiiiiiffiiiiiiiiiiiiiiiiiiiiiiiisiifffliiiiiiiliiisi";
-const char CreatureInfodstfmt[]="iiiiiiiiiisssibbiiiiffiffiifiiiiiiiiiiffiiiiiiiiiiiiiiiiiiiiiiiisiifffliiiiiiiliiiii";
+const char CreatureInfosrcfmt[]="iiiiiiiiiisssiiiiiiifffiffiifiiiiiiiiiiffiiiiiiiiiiiiiiiiiiiiiiiisiifffliiiiiiiliiisi";
+const char CreatureInfodstfmt[]="iiiiiiiiiisssibbiiiifffiffiifiiiiiiiiiiffiiiiiiiiiiiiiiiiiiiiiiiisiifffliiiiiiiliiiii";
const char CreatureDataAddonInfofmt[]="iiiiiis";
const char CreatureModelfmt[]="iffbi";
const char CreatureInfoAddonInfofmt[]="iiiiiis";