aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2011-04-18 11:43:50 +0200
committerShauren <shauren.trinity@gmail.com>2011-04-18 11:43:50 +0200
commit0d477ab13293c9cf8f6b081a0a00f75a19a3a21c (patch)
treeb4a418cfd622739d1fb95106e0e9db1139631276
parent721f2f999eb77f493d18f173ad2b21b05d4d6abb (diff)
Core/Creatures: Dismount creatures without CREATURE_TYPEFLAGS_MOUNTED_COMBAT when entering combat
-rwxr-xr-xsrc/server/game/Entities/Unit/Unit.cpp3
-rwxr-xr-xsrc/server/game/Miscellaneous/SharedDefines.h2
2 files changed, 4 insertions, 1 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 9bb23bd2ce6..719ff4a726d 100755
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -11892,6 +11892,9 @@ void Unit::SetInCombatState(bool PvP, Unit* enemy)
UpdateSpeed(MOVE_SWIM, true);
UpdateSpeed(MOVE_FLIGHT, true);
}
+
+ if (!(ToCreature()->GetCreatureInfo()->type_flags & CREATURE_TYPEFLAGS_MOUNTED_COMBAT))
+ Unmount();
}
for (Unit::ControlList::iterator itr = m_Controlled.begin(); itr != m_Controlled.end(); ++itr)
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h
index 05e00dba6b4..01b4d41169a 100755
--- a/src/server/game/Miscellaneous/SharedDefines.h
+++ b/src/server/game/Miscellaneous/SharedDefines.h
@@ -2158,7 +2158,7 @@ enum CreatureTypeFlags
CREATURE_TYPEFLAGS_HERBLOOT = 0x000100, // Can be looted by herbalist
CREATURE_TYPEFLAGS_MININGLOOT = 0x000200, // Can be looted by miner
CREATURE_TYPEFLAGS_UNK11 = 0x000400,
- CREATURE_TYPEFLAGS_UNK12 = 0x000800, // ? Related to mounts in some way. If mounted, fight mounted, mount appear as independant when rider dies?
+ CREATURE_TYPEFLAGS_MOUNTED_COMBAT = 0x000800, // Creature can remain mounted when entering combat
CREATURE_TYPEFLAGS_AID_PLAYERS = 0x001000, // ? Can aid any player in combat if in range?
CREATURE_TYPEFLAGS_UNK14 = 0x002000,
CREATURE_TYPEFLAGS_UNK15 = 0x004000, // ? Possibly not in use