aboutsummaryrefslogtreecommitdiff
path: root/src/game/CreatureAISelector.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-03-20 14:01:46 -0600
committermegamage <none@none>2009-03-20 14:01:46 -0600
commit8f627853dfaab8bfecd24bfd96ad02c6503d517e (patch)
treeab518e88d6bfd462e50998541cbcc1575134ce66 /src/game/CreatureAISelector.cpp
parent7cd9a01954f6905dfb0e6a113b5799cc2442a39e (diff)
*More work on summon system.
--HG-- branch : trunk
Diffstat (limited to 'src/game/CreatureAISelector.cpp')
-rw-r--r--src/game/CreatureAISelector.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/game/CreatureAISelector.cpp b/src/game/CreatureAISelector.cpp
index 402ea7ae2fb..a9c2f9b5dd1 100644
--- a/src/game/CreatureAISelector.cpp
+++ b/src/game/CreatureAISelector.cpp
@@ -64,10 +64,17 @@ namespace FactorySelector
ai_factory = ai_registry.GetRegistryItem("PetAI");
else if(creature->isTotem())
ai_factory = ai_registry.GetRegistryItem("TotemAI");
- else if(creature->isSummon() && ((TempSummon*)creature)->m_properties && ((TempSummon*)creature)->m_properties->Type == SUMMON_TYPE_MINIPET)
- ai_factory = ai_registry.GetRegistryItem("CritterAI");
else if(creature->GetCreatureInfo()->flags_extra & CREATURE_FLAG_EXTRA_TRIGGER)
ai_factory = ai_registry.GetRegistryItem("NullCreatureAI");
+ else if(creature->isSummon() && ((TempSummon*)creature)->m_Properties)
+ {
+ if(((TempSummon*)creature)->m_Properties->Category == SUMMON_CATEGORY_GUARDIAN
+ || ((TempSummon*)creature)->m_Properties->Type == SUMMON_TYPE_GUARDIAN
+ || ((TempSummon*)creature)->m_Properties->Type == SUMMON_TYPE_MINION)
+ ai_factory = ai_registry.GetRegistryItem("PetAI");
+ else if(((TempSummon*)creature)->m_Properties->Type == SUMMON_TYPE_MINIPET)
+ ai_factory = ai_registry.GetRegistryItem("CritterAI");
+ }
else if(creature->GetCreatureType() == CREATURE_TYPE_CRITTER)
ai_factory = ai_registry.GetRegistryItem("CritterAI");
}