diff options
author | Meji <alvaro.megias@outlook.com> | 2024-11-05 14:42:35 +0100 |
---|---|---|
committer | Ovahlord <dreadkiller@gmx.de> | 2024-11-10 20:25:33 +0100 |
commit | 98d1505e3301f0c7ee006f4643ce9b218ead9d10 (patch) | |
tree | 37365ada0433870619ff643d382dbcc5ee9238af /src | |
parent | aafb08eaff43b862cc624e3da0761a5ed2adabd7 (diff) |
Core/Summons: Handle summons using SummonProperties.Control type 5 as vehicles (#30391)
(cherry picked from commit 23bb1a56b74191e131e41ad25edbe40ee4e76a96)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/AI/CreatureAI.cpp | 1 | ||||
-rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Entities/Transport/Transport.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Miscellaneous/SharedDefines.h | 13 | ||||
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 2 |
5 files changed, 9 insertions, 11 deletions
diff --git a/src/server/game/AI/CreatureAI.cpp b/src/server/game/AI/CreatureAI.cpp index 4a4edcfbb32..9130e10bf13 100644 --- a/src/server/game/AI/CreatureAI.cpp +++ b/src/server/game/AI/CreatureAI.cpp @@ -172,7 +172,6 @@ static bool ShouldFollowOnSpawn(SummonPropertiesEntry const* properties) return true; case SUMMON_CATEGORY_WILD: case SUMMON_CATEGORY_ALLY: - case SUMMON_CATEGORY_UNK: if (properties->GetFlags().HasFlag(SummonPropertiesFlags::JoinSummonerSpawnGroup)) return true; switch (SummonTitle(properties->Title)) diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index efa7b67cfc0..f959c1828c5 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -1893,12 +1893,12 @@ TempSummon* Map::SummonCreature(uint32 entry, Position const& pos, SummonPropert case SUMMON_CATEGORY_PUPPET: mask = UNIT_MASK_PUPPET; break; + case SUMMON_CATEGORY_POSSESSED_VEHICLE: case SUMMON_CATEGORY_VEHICLE: mask = UNIT_MASK_MINION; break; case SUMMON_CATEGORY_WILD: case SUMMON_CATEGORY_ALLY: - case SUMMON_CATEGORY_UNK: { switch (SummonTitle(properties->Title)) { diff --git a/src/server/game/Entities/Transport/Transport.cpp b/src/server/game/Entities/Transport/Transport.cpp index e1a3e72ef0a..0eef23e4fb9 100644 --- a/src/server/game/Entities/Transport/Transport.cpp +++ b/src/server/game/Entities/Transport/Transport.cpp @@ -423,12 +423,12 @@ TempSummon* Transport::SummonPassenger(uint32 entry, Position const& pos, TempSu case SUMMON_CATEGORY_PUPPET: mask = UNIT_MASK_PUPPET; break; + case SUMMON_CATEGORY_POSSESSED_VEHICLE: case SUMMON_CATEGORY_VEHICLE: mask = UNIT_MASK_MINION; break; case SUMMON_CATEGORY_WILD: case SUMMON_CATEGORY_ALLY: - case SUMMON_CATEGORY_UNK: { switch (SummonTitle(properties->Title)) { diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h index ceca1ac3076..7e9a3e9bb19 100644 --- a/src/server/game/Miscellaneous/SharedDefines.h +++ b/src/server/game/Miscellaneous/SharedDefines.h @@ -6162,13 +6162,12 @@ enum DiminishingGroup : uint16 enum SummonCategory { - SUMMON_CATEGORY_WILD = 0, - SUMMON_CATEGORY_ALLY = 1, - SUMMON_CATEGORY_PET = 2, - SUMMON_CATEGORY_PUPPET = 3, - SUMMON_CATEGORY_VEHICLE = 4, - SUMMON_CATEGORY_UNK = 5 // as of patch 3.3.5a only Bone Spike in Icecrown Citadel - // uses this category + SUMMON_CATEGORY_WILD = 0, + SUMMON_CATEGORY_ALLY = 1, + SUMMON_CATEGORY_PET = 2, + SUMMON_CATEGORY_PUPPET = 3, + SUMMON_CATEGORY_POSSESSED_VEHICLE = 4, + SUMMON_CATEGORY_VEHICLE = 5 // Wild, but Ride Spell will be cast }; enum class SummonTitle : int32 diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index b8a31fb2c99..1cf1a1dabc6 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -1894,7 +1894,6 @@ void Spell::EffectSummonType() { case SUMMON_CATEGORY_WILD: case SUMMON_CATEGORY_ALLY: - case SUMMON_CATEGORY_UNK: { if (properties->GetFlags().HasFlag(SummonPropertiesFlags::JoinSummonerSpawnGroup)) { @@ -1998,6 +1997,7 @@ void Spell::EffectSummonType() summon = unitCaster->GetMap()->SummonCreature(entry, *destTarget, properties, duration, unitCaster, m_spellInfo->Id, 0, privateObjectOwner); break; } + case SUMMON_CATEGORY_POSSESSED_VEHICLE: case SUMMON_CATEGORY_VEHICLE: { if (!unitCaster) |