EvEmu
0.8.4
11 September 2021
|
#include "TargetManager.h"
Classes | |
class | TargetedByEntry |
class | TargetEntry |
Public Member Functions | |
TargetManager (SystemEntity *self) | |
~TargetManager () | |
bool | Process () |
void | Unload () |
void | ClearModules () |
void | TargetsCleared () |
void | ClearFromTargets () |
void | TargetLost (SystemEntity *tSE) |
void | ClearTarget (SystemEntity *tSE) |
void | TargetAdded (SystemEntity *tSE) |
void | TargetedAdd (SystemEntity *tSE) |
void | TargetedLost (SystemEntity *tSE) |
void | ClearTargets (bool notify=true) |
void | ClearAllTargets (bool notify=true) |
void | RemoveTarget (SystemEntity *tSE) |
bool | StartTargeting (SystemEntity *tSE, ShipItemRef sRef) |
bool | IsTargetedBy (SystemEntity *pSE) |
SystemEntity * | GetFirstTarget (bool need_locked=false) |
SystemEntity * | GetTarget (uint32 targetID, bool need_locked=true) const |
bool | StartTargeting (SystemEntity *who, float lockTime, uint8 maxLockedTargets, double maxTargetLockRange, bool &chase) |
bool | CanAttack () |
bool | HasNoTargets () const |
void | Destroyed () |
void | Depleted (MiningLaser *pMod) |
void | AddTargetModule (ActiveModule *pMod) |
void | RemoveTargetModule (ActiveModule *pMod) |
PyList * | GetTargets () const |
PyList * | GetTargeters () const |
void | QueueEvent (PyTuple **up) const |
void | QueueUpdate (PyTuple **up) const |
void | Dump () const |
std::string | TargetList (uint16 &length, uint16 &count) |
Protected Member Functions | |
float | TimeToLock (ShipItemRef sRef, SystemEntity *tSE) const |
void | TargetedByLocked (SystemEntity *tSE) |
void | TargetedByLost (SystemEntity *tSE) |
Static Protected Member Functions | |
static const char * | GetModeName (uint8 mode) |
static const char * | GetStateName (uint8 state) |
Private Attributes | |
SystemEntity * | mySE |
std::map< uint32, ActiveModule * > | m_modules |
std::map< SystemEntity *, TargetEntry * > | m_targets |
std::map< SystemEntity *, TargetedByEntry * > | m_targetedBy |
bool | m_canAttack |
Definition at line 79 of file TargetManager.h.
TargetManager::TargetManager | ( | SystemEntity * | self | ) |
NOTE: the above suggestions have been completed and are in TargetManager.new still have bugs to work out.
Definition at line 53 of file TargetManager.cpp.
References m_canAttack, m_modules, m_targetedBy, and m_targets.
|
inline |
Definition at line 82 of file TargetManager.h.
void TargetManager::AddTargetModule | ( | ActiveModule * | pMod | ) |
Definition at line 543 of file TargetManager.cpp.
References _log, SystemEntity::GetName(), GenericModule::GetSelf(), GenericModule::GetShipRef(), SystemEntity::IsAsteroidSE(), GenericModule::IsMiningLaser(), GenericModule::itemID(), m_modules, mySE, and InventoryItem::name().
Referenced by ActiveModule::Activate().
|
inline |
Definition at line 134 of file TargetManager.h.
References m_canAttack.
Referenced by SentryAI::Attack(), DroneAIMgr::Attack(), NPCAIMgr::Attack(), and ConcordAI::Attack().
void TargetManager::ClearAllTargets | ( | bool | notify = true | ) |
Definition at line 284 of file TargetManager.cpp.
References _log, ClearFromTargets(), ClearTargets(), SystemEntity::GetID(), SystemEntity::GetName(), mySE, and TargetsCleared().
Referenced by SentryAI::ClearAllTargets(), DroneAIMgr::ClearAllTargets(), Destroyed(), ShipSE::Dock(), DestinyManager::InitWarp(), ShipSE::Jump(), ContainerSE::~ContainerSE(), DynamicSystemEntity::~DynamicSystemEntity(), and ObjectSystemEntity::~ObjectSystemEntity().
void TargetManager::ClearFromTargets | ( | ) |
Definition at line 310 of file TargetManager.cpp.
References _log, SystemEntity::GetID(), SystemEntity::GetName(), m_targetedBy, mySE, and SafeDelete().
Referenced by ClearAllTargets(), and SystemEntity::Delete().
void TargetManager::ClearModules | ( | ) |
Definition at line 269 of file TargetManager.cpp.
References ActiveModule::AbortCycle(), and m_modules.
Referenced by ShipSE::Dock(), ShipSE::Jump(), ShipSE::Warp(), ContainerSE::~ContainerSE(), DynamicSystemEntity::~DynamicSystemEntity(), and ObjectSystemEntity::~ObjectSystemEntity().
void TargetManager::ClearTarget | ( | SystemEntity * | tSE | ) |
Definition at line 255 of file TargetManager.cpp.
References _log, SystemEntity::GetID(), SystemEntity::GetName(), m_canAttack, m_targets, mySE, sEntityList, TargetedByLost(), TargetLost(), and SystemEntity::TargetMgr().
Referenced by ConcordAI::Attack(), ConcordAI::CheckDistance(), SentryAI::ClearTarget(), DroneAIMgr::ClearTarget(), NPCAIMgr::ClearTarget(), DroneAIMgr::Process(), ConcordAI::Process(), and ShipSE::RemoveTarget().
void TargetManager::ClearTargets | ( | bool | notify = true | ) |
Definition at line 292 of file TargetManager.cpp.
References _log, SystemEntity::GetID(), SystemEntity::GetName(), m_canAttack, m_targets, mySE, SafeDelete(), and sEntityList.
Referenced by ClearAllTargets(), DroneAIMgr::ClearTargets(), and ConcordAI::ClearTargets().
void TargetManager::Depleted | ( | MiningLaser * | pMod | ) |
Definition at line 618 of file TargetManager.cpp.
References codelog, MiningLaser::Depleted(), SystemEntity::GetName(), SystemEntity::IsAsteroidSE(), GenericModule::itemID(), m_modules, and mySE.
Referenced by MiningLaser::ProcessCycle().
void TargetManager::Destroyed | ( | ) |
Definition at line 562 of file TargetManager.cpp.
References _log, ActiveModule::AbortCycle(), EVEDB::invGroups::Armor_Repair_Projector, EVEDB::invGroups::Cargo_Scanner, ClearAllTargets(), ActiveModule::Deactivate(), Dump(), EVEDB::invGroups::Energy_Destabilizer, EVEDB::invGroups::Energy_Transfer_Array, EVEDB::invGroups::Energy_Vampire, SystemEntity::GetID(), SystemEntity::GetName(), GenericModule::GetProspectModule(), GenericModule::groupID(), m_modules, m_targetedBy, m_targets, mySE, EVEDB::invGroups::Projected_ECCM, EVEDB::invGroups::Remote_Sensor_Booster, EVEDB::invGroups::Remote_Sensor_Damper, EVEDB::invGroups::Salvager, EVEDB::invGroups::Shield_Transporter, EVEDB::invGroups::Ship_Scanner, EVEDB::invGroups::Target_Painter, Prospector::TargetDestroyed(), EVEDB::invGroups::Tracking_Disruptor, and EVEDB::invGroups::Tractor_Beam.
Referenced by ActiveModule::DeactivateCycle(), and SystemEntity::Killed().
void TargetManager::Dump | ( | ) | const |
Definition at line 751 of file TargetManager.cpp.
References _log, SystemEntity::GetID(), SystemEntity::GetName(), is_log_enabled, m_modules, m_targetedBy, m_targets, and mySE.
Referenced by Destroyed(), and StartTargeting().
SystemEntity * TargetManager::GetFirstTarget | ( | bool | need_locked = false | ) |
Definition at line 482 of file TargetManager.cpp.
References TargMgr::State::Locked, and m_targets.
Referenced by SentryAI::Process(), DroneAIMgr::Process(), NPCAIMgr::Process(), ConcordAI::Process(), and NPCAIMgr::TargetLost().
|
staticprotected |
Definition at line 801 of file TargetManager.cpp.
References TargMgr::Mode::Add, TargMgr::Mode::Clear, TargMgr::Mode::LockedBy, TargMgr::Mode::Lost, TargMgr::Mode::None, TargMgr::Mode::OtherAdd, and TargMgr::Mode::OtherLost.
|
staticprotected |
Definition at line 791 of file TargetManager.cpp.
References TargMgr::State::Idle, TargMgr::State::Locked, TargMgr::State::Locking, and TargMgr::State::Passive.
Referenced by TargetManager::TargetEntry::Dump(), and TargetManager::TargetedByEntry::Dump().
SystemEntity * TargetManager::GetTarget | ( | uint32 | targetID, |
bool | need_locked = true |
||
) | const |
Definition at line 523 of file TargetManager.cpp.
References _log, TargMgr::State::Locked, and m_targets.
PyList * TargetManager::GetTargeters | ( | ) | const |
Definition at line 509 of file TargetManager.cpp.
References PyList::AddItemInt(), and m_targetedBy.
PyList * TargetManager::GetTargets | ( | ) | const |
Definition at line 497 of file TargetManager.cpp.
References PyList::AddItemInt(), and m_targets.
|
inline |
Definition at line 135 of file TargetManager.h.
References m_targets.
Referenced by ConcordAI::CheckDistance(), SentryAI::ClearTarget(), DroneAIMgr::ClearTarget(), NPCAIMgr::ClearTarget(), SentryAI::Process(), DroneAIMgr::Process(), NPCAIMgr::Process(), ConcordAI::Process(), SentryAI::TargetLost(), DroneAIMgr::TargetLost(), NPCAIMgr::TargetLost(), and ConcordAI::TargetLost().
bool TargetManager::IsTargetedBy | ( | SystemEntity * | pSE | ) |
Definition at line 477 of file TargetManager.cpp.
References m_targetedBy.
Referenced by SentryAI::CheckDistance(), and NPCAIMgr::CheckDistance().
bool TargetManager::Process | ( | ) |
Definition at line 63 of file TargetManager.cpp.
References _log, SystemEntity::GetID(), SystemEntity::GetName(), GetTimeUSeconds(), TargMgr::State::Idle, TargMgr::State::Locked, TargMgr::State::Locking, m_canAttack, m_targets, mySE, TargMgr::State::Passive, sConfig, sProfiler, TargetAdded(), and Profile::targets.
void TargetManager::QueueEvent | ( | PyTuple ** | up | ) | const |
Definition at line 685 of file TargetManager.cpp.
References m_targetedBy, and PyIncRef.
void TargetManager::QueueUpdate | ( | PyTuple ** | up | ) | const |
Definition at line 694 of file TargetManager.cpp.
References m_targetedBy, and PyIncRef.
Referenced by SystemEntity::SendDamageStateChanged().
void TargetManager::RemoveTarget | ( | SystemEntity * | tSE | ) |
Definition at line 240 of file TargetManager.cpp.
References _log, SystemEntity::GetID(), SystemEntity::GetName(), m_canAttack, m_targets, mySE, SafeDelete(), and sEntityList.
Referenced by ActiveModule::DeactivateCycle().
void TargetManager::RemoveTargetModule | ( | ActiveModule * | pMod | ) |
Definition at line 555 of file TargetManager.cpp.
References _log, SystemEntity::GetName(), GenericModule::GetSelf(), GenericModule::GetShipRef(), GenericModule::itemID(), m_modules, mySE, and InventoryItem::name().
Referenced by ActiveModule::Clear(), and ActiveModule::DeactivateCycle().
bool TargetManager::StartTargeting | ( | SystemEntity * | tSE, |
ShipItemRef | sRef | ||
) |
Definition at line 111 of file TargetManager.cpp.
References _log, EVEPOS::StructureState::ArmorReinforced, AttrMaxLockedTargets, AttrMaxTargetRange, codelog, Dump(), EvilNumber::get_double(), EvilNumber::get_uint32(), InventoryItem::GetAttribute(), Client::GetChar(), SystemEntity::GetID(), SystemEntity::GetIHubSE(), Client::GetName(), SystemEntity::GetName(), SystemEntity::GetOutpostSE(), SystemEntity::GetPilot(), SystemEntity::GetPosition(), SystemEntity::GetRadius(), Character::GetSkillLevel(), StructureSE::GetState(), SystemEntity::GetTCUSE(), SystemEntity::GetTowerSE(), SystemEntity::HasPilot(), SystemEntity::IsAsteroidSE(), SystemEntity::IsIHubSE(), SystemEntity::IsOutpostSE(), SystemEntity::IsTCUSE(), SystemEntity::IsTowerSE(), Ga::GaVec3::length(), TargMgr::State::Locking, m_targets, EvESkill::Multitasking, mySE, EVEPOS::StructureState::Online, EVEPOS::StructureState::Reinforced, Client::SendNotifyMsg(), sEntityList, EVEPOS::StructureState::SheildReinforced, Timer::Start(), TargetManager::TargetEntry::state, TargetedAdd(), EvESkill::Targeting, SystemEntity::TargetMgr(), TargetManager::TargetEntry::timer, and TimeToLock().
Referenced by SentryAI::Target(), DroneAIMgr::Target(), NPCAIMgr::Target(), ConcordAI::Target(), SentryAI::Targeted(), NPCAIMgr::Targeted(), and ConcordAI::Targeted().
bool TargetManager::StartTargeting | ( | SystemEntity * | who, |
float | lockTime, | ||
uint8 | maxLockedTargets, | ||
double | maxTargetLockRange, | ||
bool & | chase | ||
) |
Definition at line 202 of file TargetManager.cpp.
References _log, Ga::GaVec3::distance(), Dump(), SystemEntity::GetID(), SystemEntity::GetName(), SystemEntity::GetPosition(), TargMgr::State::Locking, m_targets, mySE, sEntityList, Timer::Start(), TargetManager::TargetEntry::state, TargetedAdd(), SystemEntity::TargetMgr(), and TargetManager::TargetEntry::timer.
void TargetManager::TargetAdded | ( | SystemEntity * | tSE | ) |
Definition at line 400 of file TargetManager.cpp.
References _log, SystemEntity::GetID(), SystemEntity::GetName(), SystemEntity::GetPilot(), SystemEntity::HasPilot(), SystemEntity::MakeDamageState(), mySE, Client::QueueDestinyEvent(), and Client::QueueDestinyUpdate().
Referenced by Process().
void TargetManager::TargetedAdd | ( | SystemEntity * | tSE | ) |
Definition at line 418 of file TargetManager.cpp.
References _log, SystemEntity::GetID(), SystemEntity::GetName(), SystemEntity::GetNPCSE(), SystemEntity::GetPilot(), SystemEntity::HasPilot(), SystemEntity::IsNPCSE(), TargMgr::State::Locking, m_targetedBy, mySE, Client::SendNotification(), and NPC::TargetedAdd().
Referenced by StartTargeting().
|
protected |
Definition at line 364 of file TargetManager.cpp.
References _log, SystemEntity::GetID(), SystemEntity::GetName(), and mySE.
|
protected |
Definition at line 371 of file TargetManager.cpp.
References _log, SystemEntity::GetID(), SystemEntity::GetName(), m_targetedBy, mySE, SafeDelete(), and TargetedLost().
Referenced by ClearTarget().
void TargetManager::TargetedLost | ( | SystemEntity * | tSE | ) |
Definition at line 446 of file TargetManager.cpp.
References _log, SystemEntity::GetID(), SystemEntity::GetName(), SystemEntity::GetPilot(), SystemEntity::HasPilot(), mySE, and Client::SendNotification().
Referenced by TargetedByLost().
Definition at line 704 of file TargetManager.cpp.
References m_modules, m_targetedBy, and m_targets.
Referenced by Command_targlist().
void TargetManager::TargetLost | ( | SystemEntity * | tSE | ) |
Definition at line 330 of file TargetManager.cpp.
References _log, SystemEntity::DestinyMgr(), DestinyManager::EntityRemoved(), SystemEntity::GetID(), SystemEntity::GetName(), SystemEntity::GetNPCSE(), SystemEntity::GetPilot(), SystemEntity::HasPilot(), SystemEntity::IsNPCSE(), SystemEntity::IsSentrySE(), m_canAttack, m_targets, mySE, SafeDelete(), Client::SendNotification(), sEntityList, and NPC::TargetLost().
Referenced by ClearTarget().
void TargetManager::TargetsCleared | ( | ) |
Definition at line 463 of file TargetManager.cpp.
References _log, SystemEntity::GetID(), SystemEntity::GetName(), SystemEntity::GetPilot(), SystemEntity::HasPilot(), mySE, and Client::SendNotification().
Referenced by ClearAllTargets().
|
protected |
Definition at line 639 of file TargetManager.cpp.
References asinh, AttrScanResolution, AttrSignatureRadius, Ga::GaVec3::distance(), RefPtr< X >::get(), EvilNumber::get_uint32(), InventoryItem::GetAttribute(), SystemEntity::GetPosition(), SystemEntity::GetSelf(), InventoryItem::HasAttribute(), SystemEntity::IsAsteroidSE(), SystemEntity::IsContainerSE(), SystemEntity::IsDeployableSE(), SystemEntity::IsInanimateSE(), SystemEntity::IsWreckSE(), and InventoryItem::position().
Referenced by StartTargeting().
void TargetManager::Unload | ( | ) |
Definition at line 102 of file TargetManager.cpp.
References m_targetedBy, m_targets, and SafeDelete().
Referenced by SystemManager::UnloadSystem().
|
private |
Definition at line 196 of file TargetManager.h.
Referenced by CanAttack(), ClearTarget(), ClearTargets(), Process(), RemoveTarget(), TargetLost(), and TargetManager().
|
private |
Definition at line 192 of file TargetManager.h.
Referenced by AddTargetModule(), ClearModules(), Depleted(), Destroyed(), Dump(), RemoveTargetModule(), TargetList(), and TargetManager().
|
private |
Definition at line 194 of file TargetManager.h.
Referenced by ClearFromTargets(), Destroyed(), Dump(), GetTargeters(), IsTargetedBy(), QueueEvent(), QueueUpdate(), TargetedAdd(), TargetedByLost(), TargetList(), TargetManager(), and Unload().
|
private |
Definition at line 193 of file TargetManager.h.
Referenced by ClearTarget(), ClearTargets(), Destroyed(), Dump(), GetFirstTarget(), GetTarget(), GetTargets(), HasNoTargets(), Process(), RemoveTarget(), StartTargeting(), TargetList(), TargetLost(), TargetManager(), and Unload().
|
private |
Definition at line 190 of file TargetManager.h.
Referenced by AddTargetModule(), ClearAllTargets(), ClearFromTargets(), ClearTarget(), ClearTargets(), Depleted(), Destroyed(), Dump(), Process(), RemoveTarget(), RemoveTargetModule(), StartTargeting(), TargetAdded(), TargetedAdd(), TargetedByLocked(), TargetedByLost(), TargetedLost(), TargetLost(), and TargetsCleared().