|
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().