*Move some AI functions to core. No real change.
--HG-- branch : trunk
This commit is contained in:
@@ -375,7 +375,6 @@ bool ScriptedAI::CanCast(Unit* Target, SpellEntry const *Spell, bool Triggered)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
float GetSpellMaxRangeForHostile(uint32 id)
|
float GetSpellMaxRangeForHostile(uint32 id)
|
||||||
{
|
{
|
||||||
SpellEntry const *spellInfo = GetSpellStore()->LookupEntry(id);
|
SpellEntry const *spellInfo = GetSpellStore()->LookupEntry(id);
|
||||||
|
|||||||
@@ -8,75 +8,25 @@
|
|||||||
#ifndef SC_CREATURE_H
|
#ifndef SC_CREATURE_H
|
||||||
#define SC_CREATURE_H
|
#define SC_CREATURE_H
|
||||||
|
|
||||||
#include "CreatureAI.h"
|
|
||||||
#include "Creature.h"
|
#include "Creature.h"
|
||||||
|
#include "CreatureAI.h"
|
||||||
#define HEROIC(n,h) (HeroicMode ? h : n)
|
#include "CreatureAIImpl.h"
|
||||||
|
|
||||||
template<class T>
|
|
||||||
inline
|
|
||||||
const T& RAND(const T& v1, const T& v2)
|
|
||||||
{
|
|
||||||
return rand()%2 ? v1 : v2;
|
|
||||||
}
|
|
||||||
|
|
||||||
template<class T>
|
|
||||||
inline
|
|
||||||
const T& RAND(const T& v1, const T& v2, const T& v3)
|
|
||||||
{
|
|
||||||
switch(rand()%3)
|
|
||||||
{
|
|
||||||
default:
|
|
||||||
case 0: return v1;
|
|
||||||
case 1: return v2;
|
|
||||||
case 2: return v3;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
template<class T>
|
|
||||||
inline
|
|
||||||
const T& RAND(const T& v1, const T& v2, const T& v3, const T& v4)
|
|
||||||
{
|
|
||||||
switch(rand()%4)
|
|
||||||
{
|
|
||||||
default:
|
|
||||||
case 0: return v1;
|
|
||||||
case 1: return v2;
|
|
||||||
case 2: return v3;
|
|
||||||
case 3: return v4;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
template<class T>
|
|
||||||
inline
|
|
||||||
const T& RAND(const T& v1, const T& v2, const T& v3, const T& v4, const T& v5)
|
|
||||||
{
|
|
||||||
switch(rand()%4)
|
|
||||||
{
|
|
||||||
default:
|
|
||||||
case 0: return v1;
|
|
||||||
case 1: return v2;
|
|
||||||
case 2: return v3;
|
|
||||||
case 3: return v4;
|
|
||||||
case 4: return v5;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
float GetSpellMaxRangeForHostile(uint32 id);
|
|
||||||
|
|
||||||
class SummonList : private std::list<uint64>
|
class SummonList : private std::list<uint64>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit SummonList(Creature* creature) : m_creature(creature) {}
|
explicit SummonList(Creature* creature) : m_creature(creature) {}
|
||||||
void Summon(Creature *summon) { push_back(summon->GetGUID()); }
|
void Summon(Creature *summon) { push_back(summon->GetGUID()); }
|
||||||
void Despawn(Creature *summon) { remove(summon->GetGUID()); }
|
void Despawn(Creature *summon) { remove(summon->GetGUID()); }
|
||||||
void DespawnEntry(uint32 entry);
|
void DespawnEntry(uint32 entry);
|
||||||
void DespawnAll();
|
void DespawnAll();
|
||||||
void DoAction(uint32 entry, uint32 info);
|
void DoAction(uint32 entry, uint32 info);
|
||||||
private:
|
private:
|
||||||
Creature *m_creature;
|
Creature *m_creature;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
float GetSpellMaxRangeForHostile(uint32 id);
|
||||||
|
|
||||||
//Get a single creature of given entry
|
//Get a single creature of given entry
|
||||||
Unit* FindCreature(uint32 entry, float range, Unit* Finder);
|
Unit* FindCreature(uint32 entry, float range, Unit* Finder);
|
||||||
|
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ SET(game_STAT_SRCS
|
|||||||
Corpse.h
|
Corpse.h
|
||||||
CreatureAI.cpp
|
CreatureAI.cpp
|
||||||
CreatureAI.h
|
CreatureAI.h
|
||||||
|
CreatureAIFactory.h
|
||||||
CreatureAIImpl.h
|
CreatureAIImpl.h
|
||||||
CreatureAIRegistry.cpp
|
CreatureAIRegistry.cpp
|
||||||
CreatureAIRegistry.h
|
CreatureAIRegistry.h
|
||||||
@@ -208,8 +209,6 @@ SET(game_STAT_SRCS
|
|||||||
PointMovementGenerator.h
|
PointMovementGenerator.h
|
||||||
PoolHandler.cpp
|
PoolHandler.cpp
|
||||||
PoolHandler.h
|
PoolHandler.h
|
||||||
PossessedAI.cpp
|
|
||||||
PossessedAI.h
|
|
||||||
QueryHandler.cpp
|
QueryHandler.cpp
|
||||||
QuestDef.cpp
|
QuestDef.cpp
|
||||||
QuestDef.h
|
QuestDef.h
|
||||||
@@ -262,6 +261,8 @@ SET(game_STAT_SRCS
|
|||||||
Traveller.h
|
Traveller.h
|
||||||
Unit.cpp
|
Unit.cpp
|
||||||
Unit.h
|
Unit.h
|
||||||
|
UnitAI.cpp
|
||||||
|
UnitAI.h
|
||||||
UnitEvents.h
|
UnitEvents.h
|
||||||
UpdateData.cpp
|
UpdateData.cpp
|
||||||
UpdateData.h
|
UpdateData.h
|
||||||
|
|||||||
+1
-63
@@ -19,50 +19,12 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "CreatureAI.h"
|
#include "CreatureAI.h"
|
||||||
|
#include "CreatureAIImpl.h"
|
||||||
#include "Creature.h"
|
#include "Creature.h"
|
||||||
#include "Player.h"
|
#include "Player.h"
|
||||||
#include "Pet.h"
|
#include "Pet.h"
|
||||||
#include "SpellAuras.h"
|
|
||||||
#include "World.h"
|
#include "World.h"
|
||||||
|
|
||||||
void UnitAI::AttackStart(Unit *victim)
|
|
||||||
{
|
|
||||||
if(!victim)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if(me->Attack(victim, true))
|
|
||||||
{
|
|
||||||
//DEBUG_LOG("Creature %s tagged a victim to kill [guid=%u]", me->GetName(), victim->GetGUIDLow());
|
|
||||||
me->GetMotionMaster()->MoveChase(victim);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void UnitAI::DoMeleeAttackIfReady()
|
|
||||||
{
|
|
||||||
//Make sure our attack is ready and we aren't currently casting before checking distance
|
|
||||||
if (me->isAttackReady() && !me->hasUnitState(UNIT_STAT_CASTING))
|
|
||||||
{
|
|
||||||
//If we are within range melee the target
|
|
||||||
if (me->IsWithinMeleeRange(me->getVictim()))
|
|
||||||
{
|
|
||||||
me->AttackerStateUpdate(me->getVictim());
|
|
||||||
me->resetAttackTimer();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (me->haveOffhandWeapon() && me->isAttackReady(OFF_ATTACK) && !me->hasUnitState(UNIT_STAT_CASTING))
|
|
||||||
{
|
|
||||||
//If we are within range melee the target
|
|
||||||
if (me->IsWithinMeleeRange(me->getVictim()))
|
|
||||||
{
|
|
||||||
me->AttackerStateUpdate(me->getVictim(), OFF_ATTACK);
|
|
||||||
me->resetAttackTimer(OFF_ATTACK);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Enable PlayerAI when charmed
|
|
||||||
void PlayerAI::OnCharmed(bool apply) { me->IsAIEnabled = apply; }
|
|
||||||
|
|
||||||
//Disable CreatureAI when charmed
|
//Disable CreatureAI when charmed
|
||||||
void CreatureAI::OnCharmed(bool apply)
|
void CreatureAI::OnCharmed(bool apply)
|
||||||
{
|
{
|
||||||
@@ -295,30 +257,6 @@ void CreatureAI::SelectTargetList(std::list<Unit*> &targetList, uint32 num, Sele
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SimpleCharmedAI::UpdateAI(const uint32 /*diff*/)
|
|
||||||
{
|
|
||||||
Creature *charmer = (Creature*)me->GetCharmer();
|
|
||||||
|
|
||||||
//kill self if charm aura has infinite duration
|
|
||||||
if(charmer->IsInEvadeMode())
|
|
||||||
{
|
|
||||||
Unit::AuraEffectList const& auras = me->GetAurasByType(SPELL_AURA_MOD_CHARM);
|
|
||||||
for(Unit::AuraEffectList::const_iterator iter = auras.begin(); iter != auras.end(); ++iter)
|
|
||||||
if((*iter)->GetCasterGUID() == charmer->GetGUID() && (*iter)->GetParentAura()->IsPermanent())
|
|
||||||
{
|
|
||||||
charmer->Kill(me);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!charmer->isInCombat())
|
|
||||||
me->GetMotionMaster()->MoveFollow(charmer, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);
|
|
||||||
|
|
||||||
Unit *target = me->getVictim();
|
|
||||||
if(!target || !charmer->canAttack(target))
|
|
||||||
AttackStart(charmer->SelectNearestTarget());
|
|
||||||
}
|
|
||||||
|
|
||||||
/*void CreatureAI::AttackedBy( Unit* attacker )
|
/*void CreatureAI::AttackedBy( Unit* attacker )
|
||||||
{
|
{
|
||||||
if(!m_creature->getVictim())
|
if(!m_creature->getVictim())
|
||||||
|
|||||||
+3
-163
@@ -23,9 +23,7 @@
|
|||||||
|
|
||||||
#include "Common.h"
|
#include "Common.h"
|
||||||
#include "Platform/Define.h"
|
#include "Platform/Define.h"
|
||||||
#include "Policies/Singleton.h"
|
#include "UnitAI.h"
|
||||||
#include "Dynamic/ObjectRegistry.h"
|
|
||||||
#include "Dynamic/FactoryHolder.h"
|
|
||||||
|
|
||||||
class WorldObject;
|
class WorldObject;
|
||||||
class Unit;
|
class Unit;
|
||||||
@@ -77,149 +75,11 @@ enum SCEquip
|
|||||||
EQUIP_UNEQUIP = 0
|
EQUIP_UNEQUIP = 0
|
||||||
};
|
};
|
||||||
|
|
||||||
enum AITarget
|
|
||||||
{
|
|
||||||
AITARGET_SELF,
|
|
||||||
AITARGET_VICTIM,
|
|
||||||
AITARGET_ENEMY,
|
|
||||||
AITARGET_ALLY,
|
|
||||||
AITARGET_BUFF,
|
|
||||||
AITARGET_DEBUFF,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum AICondition
|
|
||||||
{
|
|
||||||
AICOND_AGGRO,
|
|
||||||
AICOND_COMBAT,
|
|
||||||
AICOND_DIE,
|
|
||||||
};
|
|
||||||
|
|
||||||
#define AI_DEFAULT_COOLDOWN 5000
|
|
||||||
|
|
||||||
struct AISpellInfoType
|
|
||||||
{
|
|
||||||
AISpellInfoType() : target(AITARGET_SELF), condition(AICOND_COMBAT), cooldown(AI_DEFAULT_COOLDOWN) {}
|
|
||||||
AITarget target;
|
|
||||||
AICondition condition;
|
|
||||||
uint32 cooldown;
|
|
||||||
};
|
|
||||||
|
|
||||||
extern AISpellInfoType *AISpellInfo;
|
|
||||||
|
|
||||||
class EventMap : private std::map<uint32, uint32>
|
|
||||||
{
|
|
||||||
private:
|
|
||||||
uint32 m_time, m_phase;
|
|
||||||
public:
|
|
||||||
explicit EventMap() : m_phase(0), m_time(0) {}
|
|
||||||
|
|
||||||
void Reset() { clear(); m_time = 0; m_phase = 0; }
|
|
||||||
|
|
||||||
void Update(uint32 time) { m_time += time; }
|
|
||||||
|
|
||||||
void SetPhase(uint32 phase)
|
|
||||||
{
|
|
||||||
if(phase && phase < 9)
|
|
||||||
m_phase = (1 << (phase + 24));
|
|
||||||
}
|
|
||||||
|
|
||||||
void ScheduleEvent(uint32 eventId, uint32 time, uint32 gcd = 0, uint32 phase = 0)
|
|
||||||
{
|
|
||||||
time += m_time;
|
|
||||||
if(gcd && gcd < 9)
|
|
||||||
eventId |= (1 << (gcd + 16));
|
|
||||||
if(phase && phase < 9)
|
|
||||||
eventId |= (1 << (phase + 24));
|
|
||||||
iterator itr = find(time);
|
|
||||||
while(itr != end())
|
|
||||||
{
|
|
||||||
++time;
|
|
||||||
itr = find(time);
|
|
||||||
}
|
|
||||||
insert(std::make_pair(time, eventId));
|
|
||||||
}
|
|
||||||
|
|
||||||
uint32 ExecuteEvent()
|
|
||||||
{
|
|
||||||
while(!empty())
|
|
||||||
{
|
|
||||||
if(begin()->first > m_time)
|
|
||||||
return 0;
|
|
||||||
else if(m_phase && (begin()->second & 0xFF000000) && !(begin()->second & m_phase))
|
|
||||||
erase(begin());
|
|
||||||
else
|
|
||||||
{
|
|
||||||
uint32 eventId = (begin()->second & 0x0000FFFF);
|
|
||||||
erase(begin());
|
|
||||||
return eventId;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void DelayEvents(uint32 time, uint32 gcd)
|
|
||||||
{
|
|
||||||
time += m_time;
|
|
||||||
gcd = (1 << (gcd + 16));
|
|
||||||
for(iterator itr = begin(); itr != end();)
|
|
||||||
{
|
|
||||||
if(itr->first >= time)
|
|
||||||
break;
|
|
||||||
if(itr->second & gcd)
|
|
||||||
{
|
|
||||||
ScheduleEvent(time, itr->second);
|
|
||||||
erase(itr++);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
++itr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class TRINITY_DLL_SPEC UnitAI
|
|
||||||
{
|
|
||||||
protected:
|
|
||||||
Unit* const me;
|
|
||||||
public:
|
|
||||||
explicit UnitAI(Unit *u) : me(u) {}
|
|
||||||
virtual void AttackStart(Unit *);
|
|
||||||
virtual void UpdateAI(const uint32 diff) = 0;
|
|
||||||
|
|
||||||
virtual void InitializeAI() { Reset(); }
|
|
||||||
|
|
||||||
virtual void Reset() {};
|
|
||||||
|
|
||||||
// Called when unit is charmed
|
|
||||||
virtual void OnCharmed(bool apply) = 0;
|
|
||||||
|
|
||||||
// Pass parameters between AI
|
|
||||||
virtual void DoAction(const int32 param) {}
|
|
||||||
|
|
||||||
//Do melee swing of current victim if in rnage and ready and not casting
|
|
||||||
void DoMeleeAttackIfReady();
|
|
||||||
};
|
|
||||||
|
|
||||||
class TRINITY_DLL_SPEC PlayerAI : public UnitAI
|
|
||||||
{
|
|
||||||
protected:
|
|
||||||
Player* const me;
|
|
||||||
public:
|
|
||||||
explicit PlayerAI(Player *p) : UnitAI((Unit*)p), me(p) {}
|
|
||||||
|
|
||||||
void OnCharmed(bool apply);
|
|
||||||
};
|
|
||||||
|
|
||||||
class TRINITY_DLL_SPEC SimpleCharmedAI : public PlayerAI
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
void UpdateAI(const uint32 diff);
|
|
||||||
};
|
|
||||||
|
|
||||||
class TRINITY_DLL_SPEC CreatureAI : public UnitAI
|
class TRINITY_DLL_SPEC CreatureAI : public UnitAI
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
Creature* const me;
|
Creature * const me;
|
||||||
Creature* const m_creature;
|
Creature * const m_creature;
|
||||||
|
|
||||||
bool UpdateVictim();
|
bool UpdateVictim();
|
||||||
public:
|
public:
|
||||||
@@ -307,22 +167,6 @@ class TRINITY_DLL_SPEC CreatureAI : public UnitAI
|
|||||||
void SelectTargetList(std::list<Unit*> &targetList, uint32 num, SelectAggroTarget target, float dist = 0, bool playerOnly = false, int32 aura = 0);
|
void SelectTargetList(std::list<Unit*> &targetList, uint32 num, SelectAggroTarget target, float dist = 0, bool playerOnly = false, int32 aura = 0);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct SelectableAI : public FactoryHolder<CreatureAI>, public Permissible<Creature>
|
|
||||||
{
|
|
||||||
|
|
||||||
SelectableAI(const char *id) : FactoryHolder<CreatureAI>(id) {}
|
|
||||||
};
|
|
||||||
|
|
||||||
template<class REAL_AI>
|
|
||||||
struct CreatureAIFactory : public SelectableAI
|
|
||||||
{
|
|
||||||
CreatureAIFactory(const char *name) : SelectableAI(name) {}
|
|
||||||
|
|
||||||
CreatureAI* Create(void *) const;
|
|
||||||
|
|
||||||
int Permit(const Creature *c) const { return REAL_AI::Permissible(c); }
|
|
||||||
};
|
|
||||||
|
|
||||||
enum Permitions
|
enum Permitions
|
||||||
{
|
{
|
||||||
PERMIT_BASE_NO = -1,
|
PERMIT_BASE_NO = -1,
|
||||||
@@ -333,8 +177,4 @@ enum Permitions
|
|||||||
PERMIT_BASE_SPECIAL = 800
|
PERMIT_BASE_SPECIAL = 800
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef FactoryHolder<CreatureAI> CreatureAICreator;
|
|
||||||
typedef FactoryHolder<CreatureAI>::FactoryHolderRegistry CreatureAIRegistry;
|
|
||||||
typedef FactoryHolder<CreatureAI>::FactoryHolderRepository CreatureAIRepository;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,53 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
|
||||||
|
*
|
||||||
|
* Copyright (C) 2008-2009 Trinity <http://www.trinitycore.org/>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
#ifndef TRINITY_CREATUREAIFACTORY_H
|
||||||
|
#define TRINITY_CREATUREAIFACTORY_H
|
||||||
|
|
||||||
|
//#include "Policies/Singleton.h"
|
||||||
|
#include "Dynamic/ObjectRegistry.h"
|
||||||
|
#include "Dynamic/FactoryHolder.h"
|
||||||
|
|
||||||
|
struct SelectableAI : public FactoryHolder<CreatureAI>, public Permissible<Creature>
|
||||||
|
{
|
||||||
|
SelectableAI(const char *id) : FactoryHolder<CreatureAI>(id) {}
|
||||||
|
};
|
||||||
|
|
||||||
|
template<class REAL_AI>
|
||||||
|
struct CreatureAIFactory : public SelectableAI
|
||||||
|
{
|
||||||
|
CreatureAIFactory(const char *name) : SelectableAI(name) {}
|
||||||
|
|
||||||
|
CreatureAI* Create(void *) const;
|
||||||
|
|
||||||
|
int Permit(const Creature *c) const { return REAL_AI::Permissible(c); }
|
||||||
|
};
|
||||||
|
|
||||||
|
template<class REAL_AI>
|
||||||
|
inline CreatureAI*
|
||||||
|
CreatureAIFactory<REAL_AI>::Create(void *data) const
|
||||||
|
{
|
||||||
|
Creature* creature = reinterpret_cast<Creature *>(data);
|
||||||
|
return (new REAL_AI(creature));
|
||||||
|
}
|
||||||
|
|
||||||
|
typedef FactoryHolder<CreatureAI> CreatureAICreator;
|
||||||
|
typedef FactoryHolder<CreatureAI>::FactoryHolderRegistry CreatureAIRegistry;
|
||||||
|
typedef FactoryHolder<CreatureAI>::FactoryHolderRepository CreatureAIRepository;
|
||||||
|
#endif
|
||||||
+147
-6
@@ -20,14 +20,155 @@
|
|||||||
#ifndef CREATUREAIIMPL_H
|
#ifndef CREATUREAIIMPL_H
|
||||||
#define CREATUREAIIMPL_H
|
#define CREATUREAIIMPL_H
|
||||||
|
|
||||||
#include "CreatureAI.h"
|
#define HEROIC(n,h) (HeroicMode ? h : n)
|
||||||
|
|
||||||
template<class REAL_AI>
|
template<class T>
|
||||||
inline CreatureAI*
|
inline
|
||||||
CreatureAIFactory<REAL_AI>::Create(void *data) const
|
const T& RAND(const T& v1, const T& v2)
|
||||||
{
|
{
|
||||||
Creature* creature = reinterpret_cast<Creature *>(data);
|
return rand()%2 ? v1 : v2;
|
||||||
return (new REAL_AI(creature));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
inline
|
||||||
|
const T& RAND(const T& v1, const T& v2, const T& v3)
|
||||||
|
{
|
||||||
|
switch(rand()%3)
|
||||||
|
{
|
||||||
|
default:
|
||||||
|
case 0: return v1;
|
||||||
|
case 1: return v2;
|
||||||
|
case 2: return v3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
inline
|
||||||
|
const T& RAND(const T& v1, const T& v2, const T& v3, const T& v4)
|
||||||
|
{
|
||||||
|
switch(rand()%4)
|
||||||
|
{
|
||||||
|
default:
|
||||||
|
case 0: return v1;
|
||||||
|
case 1: return v2;
|
||||||
|
case 2: return v3;
|
||||||
|
case 3: return v4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
inline
|
||||||
|
const T& RAND(const T& v1, const T& v2, const T& v3, const T& v4, const T& v5)
|
||||||
|
{
|
||||||
|
switch(rand()%4)
|
||||||
|
{
|
||||||
|
default:
|
||||||
|
case 0: return v1;
|
||||||
|
case 1: return v2;
|
||||||
|
case 2: return v3;
|
||||||
|
case 3: return v4;
|
||||||
|
case 4: return v5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class EventMap : private std::map<uint32, uint32>
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
uint32 m_time, m_phase;
|
||||||
|
public:
|
||||||
|
explicit EventMap() : m_phase(0), m_time(0) {}
|
||||||
|
|
||||||
|
void Reset() { clear(); m_time = 0; m_phase = 0; }
|
||||||
|
|
||||||
|
void Update(uint32 time) { m_time += time; }
|
||||||
|
|
||||||
|
void SetPhase(uint32 phase)
|
||||||
|
{
|
||||||
|
if(phase && phase < 9)
|
||||||
|
m_phase = (1 << (phase + 24));
|
||||||
|
}
|
||||||
|
|
||||||
|
void ScheduleEvent(uint32 eventId, uint32 time, uint32 gcd = 0, uint32 phase = 0)
|
||||||
|
{
|
||||||
|
time += m_time;
|
||||||
|
if(gcd && gcd < 9)
|
||||||
|
eventId |= (1 << (gcd + 16));
|
||||||
|
if(phase && phase < 9)
|
||||||
|
eventId |= (1 << (phase + 24));
|
||||||
|
iterator itr = find(time);
|
||||||
|
while(itr != end())
|
||||||
|
{
|
||||||
|
++time;
|
||||||
|
itr = find(time);
|
||||||
|
}
|
||||||
|
insert(std::make_pair(time, eventId));
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32 ExecuteEvent()
|
||||||
|
{
|
||||||
|
while(!empty())
|
||||||
|
{
|
||||||
|
if(begin()->first > m_time)
|
||||||
|
return 0;
|
||||||
|
else if(m_phase && (begin()->second & 0xFF000000) && !(begin()->second & m_phase))
|
||||||
|
erase(begin());
|
||||||
|
else
|
||||||
|
{
|
||||||
|
uint32 eventId = (begin()->second & 0x0000FFFF);
|
||||||
|
erase(begin());
|
||||||
|
return eventId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void DelayEvents(uint32 time, uint32 gcd)
|
||||||
|
{
|
||||||
|
time += m_time;
|
||||||
|
gcd = (1 << (gcd + 16));
|
||||||
|
for(iterator itr = begin(); itr != end();)
|
||||||
|
{
|
||||||
|
if(itr->first >= time)
|
||||||
|
break;
|
||||||
|
if(itr->second & gcd)
|
||||||
|
{
|
||||||
|
ScheduleEvent(time, itr->second);
|
||||||
|
erase(itr++);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
++itr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
enum AITarget
|
||||||
|
{
|
||||||
|
AITARGET_SELF,
|
||||||
|
AITARGET_VICTIM,
|
||||||
|
AITARGET_ENEMY,
|
||||||
|
AITARGET_ALLY,
|
||||||
|
AITARGET_BUFF,
|
||||||
|
AITARGET_DEBUFF,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum AICondition
|
||||||
|
{
|
||||||
|
AICOND_AGGRO,
|
||||||
|
AICOND_COMBAT,
|
||||||
|
AICOND_DIE,
|
||||||
|
};
|
||||||
|
|
||||||
|
#define AI_DEFAULT_COOLDOWN 5000
|
||||||
|
|
||||||
|
struct AISpellInfoType
|
||||||
|
{
|
||||||
|
AISpellInfoType() : target(AITARGET_SELF), condition(AICOND_COMBAT), cooldown(AI_DEFAULT_COOLDOWN) {}
|
||||||
|
AITarget target;
|
||||||
|
AICondition condition;
|
||||||
|
uint32 cooldown;
|
||||||
|
};
|
||||||
|
|
||||||
|
extern AISpellInfoType *AISpellInfo;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -28,11 +28,12 @@
|
|||||||
#include "OutdoorPvPObjectiveAI.h"
|
#include "OutdoorPvPObjectiveAI.h"
|
||||||
#include "CreatureEventAI.h"
|
#include "CreatureEventAI.h"
|
||||||
#include "RandomMovementGenerator.h"
|
#include "RandomMovementGenerator.h"
|
||||||
#include "CreatureAIImpl.h"
|
|
||||||
#include "MovementGeneratorImpl.h"
|
#include "MovementGeneratorImpl.h"
|
||||||
#include "CreatureAIRegistry.h"
|
#include "CreatureAIRegistry.h"
|
||||||
#include "WaypointMovementGenerator.h"
|
#include "WaypointMovementGenerator.h"
|
||||||
|
#include "CreatureAIFactory.h"
|
||||||
|
|
||||||
|
#include "CreatureAIImpl.h"
|
||||||
namespace AIRegistry
|
namespace AIRegistry
|
||||||
{
|
{
|
||||||
void Initialize()
|
void Initialize()
|
||||||
|
|||||||
@@ -19,7 +19,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "Creature.h"
|
#include "Creature.h"
|
||||||
#include "CreatureAIImpl.h"
|
|
||||||
#include "CreatureAISelector.h"
|
#include "CreatureAISelector.h"
|
||||||
#include "NullCreatureAI.h"
|
#include "NullCreatureAI.h"
|
||||||
#include "Policies/SingletonImp.h"
|
#include "Policies/SingletonImp.h"
|
||||||
@@ -27,6 +26,7 @@
|
|||||||
#include "ScriptCalls.h"
|
#include "ScriptCalls.h"
|
||||||
#include "Pet.h"
|
#include "Pet.h"
|
||||||
#include "TemporarySummon.h"
|
#include "TemporarySummon.h"
|
||||||
|
#include "CreatureAIFactory.h"
|
||||||
|
|
||||||
INSTANTIATE_SINGLETON_1(CreatureAIRegistry);
|
INSTANTIATE_SINGLETON_1(CreatureAIRegistry);
|
||||||
INSTANTIATE_SINGLETON_1(MovementGeneratorRegistry);
|
INSTANTIATE_SINGLETON_1(MovementGeneratorRegistry);
|
||||||
|
|||||||
@@ -40,6 +40,8 @@
|
|||||||
#include "Group.h"
|
#include "Group.h"
|
||||||
#include "InstanceData.h"
|
#include "InstanceData.h"
|
||||||
#include "ProgressBar.h"
|
#include "ProgressBar.h"
|
||||||
|
#include "Policies/Singleton.h"
|
||||||
|
#include "Policies/SingletonImp.h"
|
||||||
|
|
||||||
INSTANTIATE_SINGLETON_1( InstanceSaveManager );
|
INSTANTIATE_SINGLETON_1( InstanceSaveManager );
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
#define TRINITY_NULLCREATUREAI_H
|
#define TRINITY_NULLCREATUREAI_H
|
||||||
|
|
||||||
#include "CreatureAI.h"
|
#include "CreatureAI.h"
|
||||||
|
#include "CreatureAIImpl.h"
|
||||||
|
|
||||||
class TRINITY_DLL_DECL PassiveAI : public CreatureAI
|
class TRINITY_DLL_DECL PassiveAI : public CreatureAI
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,20 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2008-2009 Trinity <http://www.trinitycore.org/>
|
|
||||||
*
|
|
||||||
* Thanks to the original authors: MaNGOS <http://getmangos.com/>
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2008-2009 Trinity <http://www.trinitycore.org/>
|
|
||||||
*
|
|
||||||
* Thanks to the original authors: MaNGOS <http://getmangos.com/>
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef MANGOS_POSSESSEDAI_H
|
|
||||||
#define MANGOS_POSSESSEDAI_H
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
|
||||||
|
*
|
||||||
|
* Copyright (C) 2008-2009 Trinity <http://www.trinitycore.org/>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "UnitAI.h"
|
||||||
|
#include "SpellAuras.h"
|
||||||
|
|
||||||
|
void UnitAI::AttackStart(Unit *victim)
|
||||||
|
{
|
||||||
|
if(!victim)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if(me->Attack(victim, true))
|
||||||
|
{
|
||||||
|
//DEBUG_LOG("Creature %s tagged a victim to kill [guid=%u]", me->GetName(), victim->GetGUIDLow());
|
||||||
|
me->GetMotionMaster()->MoveChase(victim);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void UnitAI::DoMeleeAttackIfReady()
|
||||||
|
{
|
||||||
|
//Make sure our attack is ready and we aren't currently casting before checking distance
|
||||||
|
if (me->isAttackReady() && !me->hasUnitState(UNIT_STAT_CASTING))
|
||||||
|
{
|
||||||
|
//If we are within range melee the target
|
||||||
|
if (me->IsWithinMeleeRange(me->getVictim()))
|
||||||
|
{
|
||||||
|
me->AttackerStateUpdate(me->getVictim());
|
||||||
|
me->resetAttackTimer();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (me->haveOffhandWeapon() && me->isAttackReady(OFF_ATTACK) && !me->hasUnitState(UNIT_STAT_CASTING))
|
||||||
|
{
|
||||||
|
//If we are within range melee the target
|
||||||
|
if (me->IsWithinMeleeRange(me->getVictim()))
|
||||||
|
{
|
||||||
|
me->AttackerStateUpdate(me->getVictim(), OFF_ATTACK);
|
||||||
|
me->resetAttackTimer(OFF_ATTACK);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Enable PlayerAI when charmed
|
||||||
|
void PlayerAI::OnCharmed(bool apply) { me->IsAIEnabled = apply; }
|
||||||
|
|
||||||
|
void SimpleCharmedAI::UpdateAI(const uint32 /*diff*/)
|
||||||
|
{
|
||||||
|
Creature *charmer = (Creature*)me->GetCharmer();
|
||||||
|
|
||||||
|
//kill self if charm aura has infinite duration
|
||||||
|
if(charmer->IsInEvadeMode())
|
||||||
|
{
|
||||||
|
Unit::AuraEffectList const& auras = me->GetAurasByType(SPELL_AURA_MOD_CHARM);
|
||||||
|
for(Unit::AuraEffectList::const_iterator iter = auras.begin(); iter != auras.end(); ++iter)
|
||||||
|
if((*iter)->GetCasterGUID() == charmer->GetGUID() && (*iter)->GetParentAura()->IsPermanent())
|
||||||
|
{
|
||||||
|
charmer->Kill(me);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!charmer->isInCombat())
|
||||||
|
me->GetMotionMaster()->MoveFollow(charmer, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);
|
||||||
|
|
||||||
|
Unit *target = me->getVictim();
|
||||||
|
if(!target || !charmer->canAttack(target))
|
||||||
|
AttackStart(charmer->SelectNearestTarget());
|
||||||
|
}
|
||||||
@@ -0,0 +1,68 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
|
||||||
|
*
|
||||||
|
* Copyright (C) 2008-2009 Trinity <http://www.trinitycore.org/>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef TRINITY_UNITAI_H
|
||||||
|
#define TRINITY_UNITAI_H
|
||||||
|
|
||||||
|
#include "Platform/Define.h"
|
||||||
|
|
||||||
|
class Unit;
|
||||||
|
class Player;
|
||||||
|
|
||||||
|
class TRINITY_DLL_SPEC UnitAI
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
Unit * const me;
|
||||||
|
public:
|
||||||
|
explicit UnitAI(Unit *u) : me(u) {}
|
||||||
|
virtual void AttackStart(Unit *);
|
||||||
|
virtual void UpdateAI(const uint32 diff) = 0;
|
||||||
|
|
||||||
|
virtual void InitializeAI() { Reset(); }
|
||||||
|
|
||||||
|
virtual void Reset() {};
|
||||||
|
|
||||||
|
// Called when unit is charmed
|
||||||
|
virtual void OnCharmed(bool apply) = 0;
|
||||||
|
|
||||||
|
// Pass parameters between AI
|
||||||
|
virtual void DoAction(const int32 param) {}
|
||||||
|
|
||||||
|
//Do melee swing of current victim if in rnage and ready and not casting
|
||||||
|
void DoMeleeAttackIfReady();
|
||||||
|
};
|
||||||
|
|
||||||
|
class TRINITY_DLL_SPEC PlayerAI : public UnitAI
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
Player* const me;
|
||||||
|
public:
|
||||||
|
explicit PlayerAI(Player *p) : UnitAI((Unit*)p), me(p) {}
|
||||||
|
|
||||||
|
void OnCharmed(bool apply);
|
||||||
|
};
|
||||||
|
|
||||||
|
class TRINITY_DLL_SPEC SimpleCharmedAI : public PlayerAI
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
void UpdateAI(const uint32 diff);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
+116
-108
@@ -1069,14 +1069,6 @@
|
|||||||
<Filter
|
<Filter
|
||||||
Name="Object"
|
Name="Object"
|
||||||
>
|
>
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\AggressorAI.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\AggressorAI.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\AnimalRandomMovementGenerator.h"
|
RelativePath="..\..\src\game\AnimalRandomMovementGenerator.h"
|
||||||
>
|
>
|
||||||
@@ -1137,50 +1129,6 @@
|
|||||||
RelativePath="..\..\src\game\Creature.h"
|
RelativePath="..\..\src\game\Creature.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\CreatureAI.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\CreatureAI.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\CreatureAIImpl.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\CreatureAIRegistry.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\CreatureAIRegistry.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\CreatureAISelector.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\CreatureAISelector.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\CreatureEventAI.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\CreatureEventAI.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\CreatureEventAIMgr.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\CreatureEventAIMgr.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\CreatureGroups.cpp"
|
RelativePath="..\..\src\game\CreatureGroups.cpp"
|
||||||
>
|
>
|
||||||
@@ -1229,14 +1177,6 @@
|
|||||||
RelativePath="..\..\src\game\GameObject.h"
|
RelativePath="..\..\src\game\GameObject.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\GuardAI.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\GuardAI.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\Guild.cpp"
|
RelativePath="..\..\src\game\Guild.cpp"
|
||||||
>
|
>
|
||||||
@@ -1305,14 +1245,6 @@
|
|||||||
RelativePath="..\..\src\game\MovementGenerator.h"
|
RelativePath="..\..\src\game\MovementGenerator.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\NullCreatureAI.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\NullCreatureAI.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\Object.cpp"
|
RelativePath="..\..\src\game\Object.cpp"
|
||||||
>
|
>
|
||||||
@@ -1341,14 +1273,6 @@
|
|||||||
RelativePath="..\..\src\game\ObjectMgr.h"
|
RelativePath="..\..\src\game\ObjectMgr.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\OutdoorPvPObjectiveAI.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\OutdoorPvPObjectiveAI.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\Pet.cpp"
|
RelativePath="..\..\src\game\Pet.cpp"
|
||||||
>
|
>
|
||||||
@@ -1357,14 +1281,6 @@
|
|||||||
RelativePath="..\..\src\game\Pet.h"
|
RelativePath="..\..\src\game\Pet.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\PetAI.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\PetAI.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\Player.cpp"
|
RelativePath="..\..\src\game\Player.cpp"
|
||||||
>
|
>
|
||||||
@@ -1381,14 +1297,6 @@
|
|||||||
RelativePath="..\..\src\game\PointMovementGenerator.h"
|
RelativePath="..\..\src\game\PointMovementGenerator.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\PossessedAI.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\PossessedAI.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\RandomMovementGenerator.cpp"
|
RelativePath="..\..\src\game\RandomMovementGenerator.cpp"
|
||||||
>
|
>
|
||||||
@@ -1397,14 +1305,6 @@
|
|||||||
RelativePath="..\..\src\game\RandomMovementGenerator.h"
|
RelativePath="..\..\src\game\RandomMovementGenerator.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\ReactorAI.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\ReactorAI.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\ReputationMgr.cpp"
|
RelativePath="..\..\src\game\ReputationMgr.cpp"
|
||||||
>
|
>
|
||||||
@@ -1465,14 +1365,6 @@
|
|||||||
RelativePath="..\..\src\game\Totem.h"
|
RelativePath="..\..\src\game\Totem.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\TotemAI.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\TotemAI.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\Traveller.h"
|
RelativePath="..\..\src\game\Traveller.h"
|
||||||
>
|
>
|
||||||
@@ -1682,6 +1574,122 @@
|
|||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
|
<Filter
|
||||||
|
Name="AI"
|
||||||
|
>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\AggressorAI.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\AggressorAI.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\CreatureAI.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\CreatureAI.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\CreatureAIFactory.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\CreatureAIImpl.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\CreatureAIRegistry.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\CreatureAIRegistry.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\CreatureAISelector.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\CreatureAISelector.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\CreatureEventAI.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\CreatureEventAI.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\CreatureEventAIMgr.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\CreatureEventAIMgr.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\GuardAI.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\GuardAI.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\NullCreatureAI.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\NullCreatureAI.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\OutdoorPvPObjectiveAI.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\OutdoorPvPObjectiveAI.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\PetAI.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\PetAI.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\ReactorAI.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\ReactorAI.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\TotemAI.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\TotemAI.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\UnitAI.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\UnitAI.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
</Filter>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\pchdef.cpp"
|
RelativePath="..\..\src\game\pchdef.cpp"
|
||||||
>
|
>
|
||||||
|
|||||||
+281
-272
@@ -1,11 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
<?xml version="1.0" encoding="Windows-1252"?>
|
||||||
<VisualStudioProject
|
<VisualStudioProject
|
||||||
ProjectType="Visual C++"
|
ProjectType="Visual C++"
|
||||||
Version="9,00"
|
Version="9.00"
|
||||||
Name="game"
|
Name="game"
|
||||||
ProjectGUID="{1DC6C4DA-A028-41F3-877D-D5400C594F88}"
|
ProjectGUID="{1DC6C4DA-A028-41F3-877D-D5400C594F88}"
|
||||||
RootNamespace="game"
|
RootNamespace="game"
|
||||||
Keyword="Win32Proj"
|
Keyword="Win32Proj"
|
||||||
|
TargetFrameworkVersion="0"
|
||||||
>
|
>
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform
|
<Platform
|
||||||
@@ -100,6 +101,167 @@
|
|||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
|
<Configuration
|
||||||
|
Name="Release|Win32"
|
||||||
|
OutputDirectory=".\game__$(PlatformName)_$(ConfigurationName)"
|
||||||
|
IntermediateDirectory=".\game__$(PlatformName)_$(ConfigurationName)"
|
||||||
|
ConfigurationType="4"
|
||||||
|
UseOfMFC="0"
|
||||||
|
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||||
|
CharacterSet="2"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
AdditionalOptions="/MP /Zm200"
|
||||||
|
InlineFunctionExpansion="1"
|
||||||
|
AdditionalIncludeDirectories="..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\shared\vmap;..\..\dep\ACE_wrappers"
|
||||||
|
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;FASTBUILD"
|
||||||
|
StringPooling="true"
|
||||||
|
RuntimeLibrary="2"
|
||||||
|
EnableFunctionLevelLinking="true"
|
||||||
|
EnableEnhancedInstructionSet="1"
|
||||||
|
RuntimeTypeInfo="true"
|
||||||
|
UsePrecompiledHeader="2"
|
||||||
|
PrecompiledHeaderThrough="pchdef.h"
|
||||||
|
PrecompiledHeaderFile=".\game__$(PlatformName)_$(ConfigurationName)\game.pch"
|
||||||
|
AssemblerListingLocation=".\game__$(PlatformName)_$(ConfigurationName)\"
|
||||||
|
ObjectFile=".\game__$(PlatformName)_$(ConfigurationName)\"
|
||||||
|
ProgramDataBaseFileName=".\game__$(PlatformName)_$(ConfigurationName)\"
|
||||||
|
WarningLevel="3"
|
||||||
|
SuppressStartupBanner="true"
|
||||||
|
Detect64BitPortabilityProblems="false"
|
||||||
|
DebugInformationFormat="3"
|
||||||
|
CallingConvention="0"
|
||||||
|
CompileAs="0"
|
||||||
|
ForcedIncludeFiles="pchdef.h"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
PreprocessorDefinitions="NDEBUG"
|
||||||
|
Culture="1033"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCLibrarianTool"
|
||||||
|
OutputFile=".\game__$(PlatformName)_$(ConfigurationName)\game.lib"
|
||||||
|
SuppressStartupBanner="true"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXDCMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCBscMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPostBuildEventTool"
|
||||||
|
/>
|
||||||
|
</Configuration>
|
||||||
|
<Configuration
|
||||||
|
Name="Debug_NoPCH|Win32"
|
||||||
|
OutputDirectory=".\game__$(PlatformName)_$(ConfigurationName)"
|
||||||
|
IntermediateDirectory=".\game__$(PlatformName)_$(ConfigurationName)"
|
||||||
|
ConfigurationType="4"
|
||||||
|
UseOfMFC="0"
|
||||||
|
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||||
|
CharacterSet="2"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
AdditionalOptions="/MP"
|
||||||
|
Optimization="0"
|
||||||
|
AdditionalIncludeDirectories="..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\shared\vmap;..\..\dep\ACE_wrappers"
|
||||||
|
PreprocessorDefinitions="WIN32;_DEBUG;TRINITY_DEBUG;_LIB;"
|
||||||
|
StringPooling="false"
|
||||||
|
MinimalRebuild="false"
|
||||||
|
BasicRuntimeChecks="3"
|
||||||
|
RuntimeLibrary="3"
|
||||||
|
EnableFunctionLevelLinking="true"
|
||||||
|
RuntimeTypeInfo="true"
|
||||||
|
UsePrecompiledHeader="0"
|
||||||
|
PrecompiledHeaderFile=".\game__$(PlatformName)_$(ConfigurationName)\game.pch"
|
||||||
|
AssemblerListingLocation=".\game__$(PlatformName)_$(ConfigurationName)\"
|
||||||
|
ObjectFile=".\game__$(PlatformName)_$(ConfigurationName)\"
|
||||||
|
ProgramDataBaseFileName=".\game__$(PlatformName)_$(ConfigurationName)\"
|
||||||
|
WarningLevel="3"
|
||||||
|
SuppressStartupBanner="true"
|
||||||
|
Detect64BitPortabilityProblems="false"
|
||||||
|
DebugInformationFormat="3"
|
||||||
|
CallingConvention="0"
|
||||||
|
CompileAs="0"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
PreprocessorDefinitions="_DEBUG"
|
||||||
|
Culture="1033"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCLibrarianTool"
|
||||||
|
OutputFile=".\game__$(PlatformName)_$(ConfigurationName)\game.lib"
|
||||||
|
SuppressStartupBanner="true"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXDCMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCBscMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPostBuildEventTool"
|
||||||
|
/>
|
||||||
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug|x64"
|
Name="Debug|x64"
|
||||||
OutputDirectory=".\game__$(PlatformName)_$(ConfigurationName)"
|
OutputDirectory=".\game__$(PlatformName)_$(ConfigurationName)"
|
||||||
@@ -184,87 +346,6 @@
|
|||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
|
||||||
Name="Release|Win32"
|
|
||||||
OutputDirectory=".\game__$(PlatformName)_$(ConfigurationName)"
|
|
||||||
IntermediateDirectory=".\game__$(PlatformName)_$(ConfigurationName)"
|
|
||||||
ConfigurationType="4"
|
|
||||||
UseOfMFC="0"
|
|
||||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
|
||||||
CharacterSet="2"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreBuildEventTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXMLDataGeneratorTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
AdditionalOptions="/MP /Zm200"
|
|
||||||
InlineFunctionExpansion="1"
|
|
||||||
AdditionalIncludeDirectories="..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\shared\vmap;..\..\dep\ACE_wrappers"
|
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;FASTBUILD"
|
|
||||||
StringPooling="true"
|
|
||||||
RuntimeLibrary="2"
|
|
||||||
EnableFunctionLevelLinking="true"
|
|
||||||
EnableEnhancedInstructionSet="1"
|
|
||||||
RuntimeTypeInfo="true"
|
|
||||||
UsePrecompiledHeader="2"
|
|
||||||
PrecompiledHeaderThrough="pchdef.h"
|
|
||||||
PrecompiledHeaderFile=".\game__$(PlatformName)_$(ConfigurationName)\game.pch"
|
|
||||||
AssemblerListingLocation=".\game__$(PlatformName)_$(ConfigurationName)\"
|
|
||||||
ObjectFile=".\game__$(PlatformName)_$(ConfigurationName)\"
|
|
||||||
ProgramDataBaseFileName=".\game__$(PlatformName)_$(ConfigurationName)\"
|
|
||||||
WarningLevel="3"
|
|
||||||
SuppressStartupBanner="true"
|
|
||||||
Detect64BitPortabilityProblems="false"
|
|
||||||
DebugInformationFormat="3"
|
|
||||||
CallingConvention="0"
|
|
||||||
CompileAs="0"
|
|
||||||
ForcedIncludeFiles="pchdef.h"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManagedResourceCompilerTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"
|
|
||||||
PreprocessorDefinitions="NDEBUG"
|
|
||||||
Culture="1033"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreLinkEventTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCLibrarianTool"
|
|
||||||
OutputFile=".\game__$(PlatformName)_$(ConfigurationName)\game.lib"
|
|
||||||
SuppressStartupBanner="true"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCALinkTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXDCMakeTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCBscMakeTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCFxCopTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPostBuildEventTool"
|
|
||||||
/>
|
|
||||||
</Configuration>
|
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|x64"
|
Name="Release|x64"
|
||||||
OutputDirectory=".\game__$(PlatformName)_$(ConfigurationName)"
|
OutputDirectory=".\game__$(PlatformName)_$(ConfigurationName)"
|
||||||
@@ -348,86 +429,6 @@
|
|||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
|
||||||
Name="Debug_NoPCH|Win32"
|
|
||||||
OutputDirectory=".\game__$(PlatformName)_$(ConfigurationName)"
|
|
||||||
IntermediateDirectory=".\game__$(PlatformName)_$(ConfigurationName)"
|
|
||||||
ConfigurationType="4"
|
|
||||||
UseOfMFC="0"
|
|
||||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
|
||||||
CharacterSet="2"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreBuildEventTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXMLDataGeneratorTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
AdditionalOptions="/MP"
|
|
||||||
Optimization="0"
|
|
||||||
AdditionalIncludeDirectories="..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\shared\vmap;..\..\dep\ACE_wrappers"
|
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;TRINITY_DEBUG;_LIB;"
|
|
||||||
StringPooling="false"
|
|
||||||
MinimalRebuild="false"
|
|
||||||
BasicRuntimeChecks="3"
|
|
||||||
RuntimeLibrary="3"
|
|
||||||
EnableFunctionLevelLinking="true"
|
|
||||||
RuntimeTypeInfo="true"
|
|
||||||
UsePrecompiledHeader="0"
|
|
||||||
PrecompiledHeaderFile=".\game__$(PlatformName)_$(ConfigurationName)\game.pch"
|
|
||||||
AssemblerListingLocation=".\game__$(PlatformName)_$(ConfigurationName)\"
|
|
||||||
ObjectFile=".\game__$(PlatformName)_$(ConfigurationName)\"
|
|
||||||
ProgramDataBaseFileName=".\game__$(PlatformName)_$(ConfigurationName)\"
|
|
||||||
WarningLevel="3"
|
|
||||||
SuppressStartupBanner="true"
|
|
||||||
Detect64BitPortabilityProblems="false"
|
|
||||||
DebugInformationFormat="3"
|
|
||||||
CallingConvention="0"
|
|
||||||
CompileAs="0"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManagedResourceCompilerTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"
|
|
||||||
PreprocessorDefinitions="_DEBUG"
|
|
||||||
Culture="1033"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreLinkEventTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCLibrarianTool"
|
|
||||||
OutputFile=".\game__$(PlatformName)_$(ConfigurationName)\game.lib"
|
|
||||||
SuppressStartupBanner="true"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCALinkTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXDCMakeTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCBscMakeTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCFxCopTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPostBuildEventTool"
|
|
||||||
/>
|
|
||||||
</Configuration>
|
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug_NoPCH|x64"
|
Name="Debug_NoPCH|x64"
|
||||||
OutputDirectory=".\game__$(PlatformName)_$(ConfigurationName)"
|
OutputDirectory=".\game__$(PlatformName)_$(ConfigurationName)"
|
||||||
@@ -1069,14 +1070,6 @@
|
|||||||
<Filter
|
<Filter
|
||||||
Name="Object"
|
Name="Object"
|
||||||
>
|
>
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\AggressorAI.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\AggressorAI.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\AnimalRandomMovementGenerator.h"
|
RelativePath="..\..\src\game\AnimalRandomMovementGenerator.h"
|
||||||
>
|
>
|
||||||
@@ -1137,50 +1130,6 @@
|
|||||||
RelativePath="..\..\src\game\Creature.h"
|
RelativePath="..\..\src\game\Creature.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\CreatureAI.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\CreatureAI.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\CreatureAIImpl.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\CreatureAIRegistry.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\CreatureAIRegistry.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\CreatureAISelector.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\CreatureAISelector.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\CreatureEventAI.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\CreatureEventAI.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\CreatureEventAIMgr.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\CreatureEventAIMgr.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\CreatureGroups.cpp"
|
RelativePath="..\..\src\game\CreatureGroups.cpp"
|
||||||
>
|
>
|
||||||
@@ -1229,14 +1178,6 @@
|
|||||||
RelativePath="..\..\src\game\GameObject.h"
|
RelativePath="..\..\src\game\GameObject.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\GuardAI.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\GuardAI.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\Guild.cpp"
|
RelativePath="..\..\src\game\Guild.cpp"
|
||||||
>
|
>
|
||||||
@@ -1305,14 +1246,6 @@
|
|||||||
RelativePath="..\..\src\game\MovementGenerator.h"
|
RelativePath="..\..\src\game\MovementGenerator.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\NullCreatureAI.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\NullCreatureAI.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\Object.cpp"
|
RelativePath="..\..\src\game\Object.cpp"
|
||||||
>
|
>
|
||||||
@@ -1341,14 +1274,6 @@
|
|||||||
RelativePath="..\..\src\game\ObjectMgr.h"
|
RelativePath="..\..\src\game\ObjectMgr.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\OutdoorPvPObjectiveAI.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\OutdoorPvPObjectiveAI.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\Pet.cpp"
|
RelativePath="..\..\src\game\Pet.cpp"
|
||||||
>
|
>
|
||||||
@@ -1357,14 +1282,6 @@
|
|||||||
RelativePath="..\..\src\game\Pet.h"
|
RelativePath="..\..\src\game\Pet.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\PetAI.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\PetAI.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\Player.cpp"
|
RelativePath="..\..\src\game\Player.cpp"
|
||||||
>
|
>
|
||||||
@@ -1381,14 +1298,6 @@
|
|||||||
RelativePath="..\..\src\game\PointMovementGenerator.h"
|
RelativePath="..\..\src\game\PointMovementGenerator.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\PossessedAI.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\PossessedAI.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\RandomMovementGenerator.cpp"
|
RelativePath="..\..\src\game\RandomMovementGenerator.cpp"
|
||||||
>
|
>
|
||||||
@@ -1397,14 +1306,6 @@
|
|||||||
RelativePath="..\..\src\game\RandomMovementGenerator.h"
|
RelativePath="..\..\src\game\RandomMovementGenerator.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\ReactorAI.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\ReactorAI.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\ReputationMgr.cpp"
|
RelativePath="..\..\src\game\ReputationMgr.cpp"
|
||||||
>
|
>
|
||||||
@@ -1465,14 +1366,6 @@
|
|||||||
RelativePath="..\..\src\game\Totem.h"
|
RelativePath="..\..\src\game\Totem.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\TotemAI.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\game\TotemAI.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\Traveller.h"
|
RelativePath="..\..\src\game\Traveller.h"
|
||||||
>
|
>
|
||||||
@@ -1682,6 +1575,122 @@
|
|||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
|
<Filter
|
||||||
|
Name="AI"
|
||||||
|
>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\AggressorAI.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\AggressorAI.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\CreatureAI.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\CreatureAI.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\CreatureAIFactory.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\CreatureAIImpl.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\CreatureAIRegistry.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\CreatureAIRegistry.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\CreatureAISelector.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\CreatureAISelector.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\CreatureEventAI.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\CreatureEventAI.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\CreatureEventAIMgr.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\CreatureEventAIMgr.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\GuardAI.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\GuardAI.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\NullCreatureAI.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\NullCreatureAI.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\OutdoorPvPObjectiveAI.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\OutdoorPvPObjectiveAI.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\PetAI.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\PetAI.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\ReactorAI.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\ReactorAI.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\TotemAI.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\TotemAI.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\UnitAI.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\game\UnitAI.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
</Filter>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\pchdef.cpp"
|
RelativePath="..\..\src\game\pchdef.cpp"
|
||||||
>
|
>
|
||||||
@@ -1695,7 +1704,7 @@
|
|||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Debug|x64"
|
Name="Release|Win32"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
@@ -1704,7 +1713,7 @@
|
|||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Release|Win32"
|
Name="Debug|x64"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
|
|||||||
Reference in New Issue
Block a user