EvEmu
0.8.4
11 September 2021
|
#include "Ship.h"
Static Public Member Functions | |
static ShipItemRef | Load (uint32 shipID) |
static ShipItemRef | Spawn (ItemData &data) |
![]() | |
static uint32 | CreateItemID (ItemData &data) |
static uint32 | CreateTempItemID (ItemData &data) |
static InventoryItemRef | Load (uint32 itemID) |
static InventoryItemRef | SpawnItem (uint32 itemID, const ItemData &data) |
static InventoryItemRef | Spawn (ItemData &data) |
static InventoryItemRef | SpawnTemp (ItemData &data) |
Protected Member Functions | |
ShipItem (uint32 shipID, const ItemType &type, const ItemData &data) | |
~ShipItem () noexcept | |
void | LinkWeapon (GenericModule *pMaster, GenericModule *pSlave) |
void | UnlinkWeapon (uint32 masterID, uint32 slaveID) |
void | LoadWeaponGroups () |
void | SaveWeaponGroups () |
void | LinkWeaponLoop (std::list< GenericModule * > &moduleVec) |
![]() | |
void | IncRef () const |
Increments reference count of object by one. More... | |
void | DecRef () const |
Decrements reference count of object by one. More... | |
Static Protected Member Functions | |
template<class _Ty > | |
static RefPtr< _Ty > | _LoadItem (uint32 shipID, const ItemType &type, const ItemData &data) |
static uint32 | CreateItemID (ItemData &data) |
![]() | |
template<class _Ty > | |
static RefPtr< _Ty > | Load (uint32 itemID) |
template<class _Ty > | |
static RefPtr< _Ty > | _Load (uint32 itemID) |
template<class _Ty > | |
static RefPtr< _Ty > | _LoadItem (uint32 itemID, const ItemType &type, const ItemData &data) |
Protected Attributes | |
bool | m_loaded |
![]() | |
Inventory * | pInventory |
uint32 | m_itemID |
AttributeMap * | pAttributeMap |
![]() | |
size_t | mRefCount |
Reference count of instance. More... | |
bool | mDeleted |
Private Member Functions | |
void | ProcessShipEffects (bool update=false) |
Private Attributes | |
Client * | m_pilot |
ModuleManager * | m_ModuleManager |
InventoryItemRef | m_targetRef |
std::vector< uint32 > | m_onlineModuleVec |
std::map< GenericModule *, std::list< GenericModule * > > | m_linkedWeapons |
bool | m_isActive:1 |
bool | m_isPopped:1 |
bool | m_isDocking:1 |
bool | m_isUndocking:1 |
Friends | |
class | InventoryItem |
Additional Inherited Members | |
![]() | |
std::multimap< int8, fxData > | m_modifiers |
Definition at line 23 of file Ship.cpp.
References _log, InventoryItem::itemID(), m_onlineModuleVec, InventoryItem::name(), and InventoryItem::pInventory.
Referenced by _LoadItem().
|
protectednoexcept |
Definition at line 40 of file Ship.cpp.
References m_ModuleManager, InventoryItem::pInventory, and SafeDelete().
|
virtual |
Reimplemented from InventoryItem.
Definition at line 63 of file Ship.cpp.
References InventoryItem::_Load(), AttrVolume, InventoryItem::GetPackagedVolume(), Client::IsCharCreation(), Inventory::LoadContents(), m_loaded, m_ModuleManager, InventoryItem::pInventory, InventoryItem::SetAttribute(), and sItemFactory.
|
inlinestaticprotected |
Definition at line 216 of file Ship.h.
References _log, ItemType::categoryID(), sConfig, sDataMgr, EVEDB::invCategories::Ship, ShipItem(), and EvE::traceStack().
|
inline |
Definition at line 146 of file Ship.h.
References ModuleManager::AbortCycle(), and m_ModuleManager.
Referenced by ShipSE::AbortCycle().
Definition at line 1039 of file Ship.cpp.
References ModuleManager::Activate(), IsValidTarget, m_ModuleManager, m_targetRef, sFxDataMgr, and sItemFactory.
|
virtual |
Reimplemented from InventoryItem.
Definition at line 468 of file Ship.cpp.
References InventoryItem::AddItem(), AttrMass, RefPtr< X >::get(), EvilNumber::get_uint32(), InventoryItem::GetAttribute(), HasPilot(), ItemType::mass(), InventoryItem::quantity(), sConfig, InventoryItem::SetAttribute(), and InventoryItem::type().
uint32 ShipItem::AddItemByFlag | ( | EVEItemFlags | flag, |
InventoryItemRef | iRef, | ||
Client * | pClient = nullptr |
||
) |
Definition at line 486 of file Ship.cpp.
References ModuleManager::AddModule(), InventoryItem::categoryID(), InventoryItem::ChangeSingleton(), EVEDB::invCategories::Charge, codelog, flagCargoHold, flagNone, RefPtr< X >::get(), ModuleManager::GetLoadedChargeOnModule(), ModuleManager::InstallRig(), ModuleManager::InstallSubSystem(), IsModuleSlot, IsRigSlot, InventoryItem::itemID(), ModuleManager::LoadCharge(), InventoryItem::m_itemID, m_ModuleManager, EVEDB::invCategories::Module, InventoryItem::Move(), sConfig, RefPtr< X >::StaticCast(), EVEDB::invCategories::Subsystem, and EvE::traceStack().
Referenced by MiningLaser::AddOreAndDeactivate(), generic_createitem(), InventoryBound::MoveItems(), and MoveModuleSlot().
void ShipItem::AddModuleToOnlineVec | ( | uint32 | modID | ) |
|
inline |
Definition at line 125 of file Ship.h.
References ModuleManager::DeOverload(), and m_ModuleManager.
void ShipItem::CargoFull | ( | ) |
Definition at line 1335 of file Ship.cpp.
References ModuleManager::CargoFull(), and m_ModuleManager.
Referenced by MiningLaser::ProcessCycle().
|
inline |
Definition at line 240 of file Ship.h.
References ModuleManager::CharacterBoardingShip(), and m_ModuleManager.
void ShipItem::ClearModuleModifiers | ( | ) |
Definition at line 1858 of file Ship.cpp.
References _log, ModuleManager::GetLoadedCharges(), ModuleManager::GetModuleListOfRefsAsc(), and m_ModuleManager.
Referenced by ProcessEffects().
|
inline |
Definition at line 153 of file Ship.h.
References m_targetRef.
Referenced by ActiveModule::Clear().
Definition at line 59 of file Ship.cpp.
References InventoryItem::CreateItemID().
void ShipItem::DamageGroup | ( | GenericModule * | pMod | ) |
|
inline |
Definition at line 166 of file Ship.h.
References ModuleManager::DamageModule(), and m_ModuleManager.
Referenced by ShipSE::DamageModule(), and HeatDamageCheck().
|
inline |
Definition at line 167 of file Ship.h.
References ModuleManager::DamageRandModule(), and m_ModuleManager.
Referenced by ShipSE::DamageRandModule().
|
inline |
Definition at line 123 of file Ship.h.
References ModuleManager::Deactivate(), and m_ModuleManager.
|
virtual |
Reimplemented from InventoryItem.
Definition at line 332 of file Ship.cpp.
References InventoryItem::Delete(), Inventory::DeleteContents(), and InventoryItem::pInventory.
float ShipItem::DissipateHeat | ( | uint16 | attrID, |
float | heat | ||
) |
Definition at line 1214 of file Ship.cpp.
References _log, AttrHeatHi, AttrHeatLow, AttrHeatMed, and InventoryItem::name().
Referenced by ProcessHeat().
void ShipItem::Dock | ( | ) |
Definition at line 361 of file Ship.cpp.
References ModuleManager::DeactivateAllModules(), m_isDocking, m_ModuleManager, m_onlineModuleVec, and ProcessEffects().
Referenced by ShipSE::Dock().
void ShipItem::Eject | ( | ) |
Definition at line 350 of file Ship.cpp.
References ModuleManager::AbortCycle(), ModuleManager::CharacterLeavingShip(), m_ModuleManager, and SaveShip().
Referenced by Client::Board(), and Client::Eject().
void ShipItem::EmptyCargo | ( | ) |
Definition at line 1327 of file Ship.cpp.
References flagHangar, Inventory::GetInventoryMap(), InventoryItem::locationID(), and InventoryItem::pInventory.
EVEItemFlags ShipItem::FindAvailableModuleSlot | ( | InventoryItemRef | iRef | ) |
Definition at line 797 of file Ship.cpp.
References codelog, flagIllegal, ModuleManager::GetAvailableSlotInBank(), ItemType::HasEffect(), hiPower, loPower, m_ModuleManager, medPower, InventoryItem::name(), rigSlot, subSystem, and InventoryItem::type().
Referenced by InventoryBound::MoveItems().
float ShipItem::GenerateHeat | ( | uint16 | attrID | ) |
Definition at line 1164 of file Ship.cpp.
References _log, AttrHeatGenerationMultiplier, AttrHeatHi, AttrHeatLow, AttrHeatMed, EvilNumber::get_float(), ModuleManager::GetActiveModulesHeat(), InventoryItem::GetAttribute(), hiPower, loPower, m_ModuleManager, medPower, and InventoryItem::name().
Referenced by ProcessHeat().
PyDict * ShipItem::GetChargeState | ( | ) |
Definition at line 2224 of file Ship.cpp.
References _log, Inventory::ContentsLoaded(), ModuleManager::GetLoadedCharges(), InventoryItem::itemID(), Inventory::LoadContents(), m_ModuleManager, InventoryItem::name(), InventoryItem::pInventory, and PyDict::SetItem().
uint8 ShipItem::GetLinkedCount | ( | GenericModule * | pMod | ) |
Definition at line 1668 of file Ship.cpp.
References m_linkedWeapons.
Referenced by Missile::Missile().
void ShipItem::GetLinkedWeaponMods | ( | EVEItemFlags | flag, |
std::vector< GenericModule * > & | modules | ||
) |
Definition at line 1342 of file Ship.cpp.
References ModuleManager::GetModule(), m_linkedWeapons, m_ModuleManager, and Profile::modules.
Referenced by ActiveModule::Activate(), ActiveModule::ConsumeCharge(), and ActiveModule::DeactivateCycle().
PyRep * ShipItem::GetLinkedWeapons | ( | ) |
Definition at line 1691 of file Ship.cpp.
References _log, PyList::AddItem(), PyRep::Dump(), is_log_enabled, m_linkedWeapons, PyStatic, and PyDict::SetItem().
uint8 ShipItem::GetLoadedLinkedCount | ( | GenericModule * | pMod | ) |
Definition at line 1676 of file Ship.cpp.
References m_linkedWeapons.
Referenced by TurretModule::ApplyDamage().
|
inline |
Definition at line 173 of file Ship.h.
References ModuleManager::GetModule(), and m_ModuleManager.
Referenced by SystemEntity::ApplyDamage(), InventoryBound::MoveItems(), and MoveModuleSlot().
void ShipItem::GetModuleItemVec | ( | std::vector< InventoryItemRef > & | iRefVec | ) |
Definition at line 568 of file Ship.cpp.
References Inventory::GetInventoryMap(), IsModuleSlot, and InventoryItem::pInventory.
Referenced by RepairService::GetDamageReports().
|
inline |
Definition at line 80 of file Ship.h.
References m_ModuleManager.
Referenced by FxProc::ApplyEffects(), Client::BoardShip(), Command_unload(), ProbeSE::ProbeSE(), Client::ProcessClient(), and ShipSE::RemoveTarget().
InventoryItemRef ShipItem::GetModuleRef | ( | EVEItemFlags | flag | ) |
Definition at line 582 of file Ship.cpp.
References ModuleManager::GetModule(), GenericModule::GetSelf(), and m_ModuleManager.
Referenced by MoveModuleSlot().
InventoryItemRef ShipItem::GetModuleRef | ( | uint32 | modID | ) |
Definition at line 591 of file Ship.cpp.
References ModuleManager::GetModule(), GenericModule::GetSelf(), and m_ModuleManager.
void ShipItem::GetModuleRefVec | ( | std::vector< InventoryItemRef > & | iRefVec | ) |
Definition at line 577 of file Ship.cpp.
References ModuleManager::GetModuleListOfRefsAsc(), and m_ModuleManager.
Referenced by RepairService::GetDamageReports().
|
inlinevirtual |
Reimplemented from InventoryItem.
Definition at line 72 of file Ship.h.
References m_pilot.
Referenced by ActiveModule::Activate(), ModuleManager::Activate(), ActiveModule::ActiveModule(), ModuleManager::AddModule(), ModuleManager::addModuleRef(), MiningLaser::AddOreAndDeactivate(), TurretModule::ApplyDamage(), ActiveModule::ApplyEffect(), MiningLaser::CanActivate(), ActiveModule::CanActivate(), CynoModule::CynoModule(), ModuleManager::DamageModule(), ActiveModule::DeactivateCycle(), GenericModule::DeOverload(), ActiveModule::DoCycle(), Prospector::DropSalvage(), MiningLaser::GetMiningVolume(), ShipSE::GetPilot(), TurretFormulas::GetToHit(), ModuleManager::InstallRig(), ModuleManager::InstallSubSystem(), ShipSE::IsInvul(), ShipSE::IsLogin(), ActiveModule::LaunchMissile(), ActiveModule::LaunchProbe(), ActiveModule::LoadCharge(), ModuleManager::LoadCharge(), GenericModule::Offline(), GenericModule::Online(), ModuleManager::Online(), GenericModule::Overload(), ActiveModule::Process(), MiningLaser::ProcessCycle(), Prospector::Prospector(), ActiveModule::ReprocessCharge(), Prospector::SendFailure(), ActiveModule::ShowEffect(), ActiveModule::UnloadCharge(), ModuleManager::UnloadCharge(), Prospector::Update(), ActiveModule::Update(), ActiveModule::UpdateCharge(), and ActiveModule::UpdateDamage().
float ShipItem::GetRemainingVolumeByFlag | ( | EVEItemFlags | flag | ) | const |
Definition at line 338 of file Ship.cpp.
References Inventory::GetRemainingCapacity(), and InventoryItem::pInventory.
Referenced by MiningLaser::CanActivate(), and MiningLaser::ProcessCycle().
|
inline |
Definition at line 198 of file Ship.h.
References AttrArmorHP, EvilNumber::get_float(), and InventoryItem::GetAttribute().
Referenced by Command_status().
|
inline |
Definition at line 206 of file Ship.h.
References AttrArmorDamage, AttrArmorHP, and InventoryItem::GetAttribute().
Referenced by Command_status().
|
inline |
Definition at line 202 of file Ship.h.
References AttrCapacitorCharge, EvilNumber::get_float(), and InventoryItem::GetAttribute().
Referenced by Command_status().
|
inline |
Definition at line 208 of file Ship.h.
References AttrCapacitorCapacity, AttrCapacitorCharge, and InventoryItem::GetAttribute().
Referenced by Command_status().
|
inline |
Definition at line 200 of file Ship.h.
References AttrCpuOutput, EvilNumber::get_float(), and InventoryItem::GetAttribute().
Referenced by Command_status().
|
inline |
Definition at line 204 of file Ship.h.
References AttrCpuLoad, AttrCpuOutput, and InventoryItem::GetAttribute().
Referenced by Command_status().
std::string ShipItem::GetShipDNA | ( | ) |
Definition at line 1902 of file Ship.cpp.
References _log, EVEDB::invTypes::Capsule, ModuleManager::GetLoadedCharges(), ModuleManager::GetModuleListOfRefsAsc(), IsHiSlot, IsLowSlot, IsMidSlot, IsRigSlot, IsSubSystem, InventoryItem::itemID(), m_ModuleManager, InventoryItem::name(), and InventoryItem::typeID().
Referenced by Command_shipdna().
|
inline |
Definition at line 197 of file Ship.h.
References AttrHP, EvilNumber::get_float(), and InventoryItem::GetAttribute().
Referenced by Command_status().
|
inline |
Definition at line 203 of file Ship.h.
References AttrDamage, AttrHP, and InventoryItem::GetAttribute().
Referenced by Command_status().
PyDict * ShipItem::GetShipInfo | ( | ) |
Definition at line 2153 of file Ship.cpp.
References _log, EVEDB::invCategories::Charge, PyRep::Dump(), flagHiSlot7, flagLowSlot0, flagRigSlot0, flagRigSlot2, flagSubSystem0, flagSubSystem4, Inventory::GetItemsByFlagRange(), is_log_enabled, InventoryItem::itemID(), Inventory::LoadContents(), InventoryItem::name(), InventoryItem::pInventory, InventoryItem::Populate(), PyTuple::SetItem(), and PyDict::SetItem().
|
inlinevirtual |
|
inline |
Definition at line 199 of file Ship.h.
References AttrPowerOutput, EvilNumber::get_float(), and InventoryItem::GetAttribute().
Referenced by Command_status().
|
inline |
Definition at line 205 of file Ship.h.
References AttrPowerLoad, AttrPowerOutput, and InventoryItem::GetAttribute().
Referenced by Command_status().
|
inline |
Definition at line 201 of file Ship.h.
References AttrShieldCharge, EvilNumber::get_float(), and InventoryItem::GetAttribute().
Referenced by Command_status().
|
inline |
Definition at line 207 of file Ship.h.
References AttrShieldCapacity, AttrShieldCharge, and InventoryItem::GetAttribute().
Referenced by Command_status().
PyDict * ShipItem::GetShipState | ( | ) |
Definition at line 2199 of file Ship.cpp.
References _log, Inventory::ContentsLoaded(), flagPilot, InventoryItem::GetItemStatusRow(), ModuleManager::GetModuleListOfRefsAsc(), Inventory::GetSingleItemByFlag(), InventoryItem::itemID(), Inventory::LoadContents(), m_ModuleManager, InventoryItem::name(), InventoryItem::pInventory, and PyDict::SetItem().
|
inline |
Definition at line 152 of file Ship.h.
References m_targetRef.
Referenced by FxProc::ApplyEffects().
|
inline |
Definition at line 245 of file Ship.h.
References m_linkedWeapons.
|
inline |
|
inlinevirtual |
Reimplemented from InventoryItem.
Definition at line 71 of file Ship.h.
References m_pilot.
Referenced by ModuleManager::Activate(), ActiveModule::ActiveModule(), AddItem(), ModuleManager::AddModule(), MiningLaser::CanActivate(), CynoModule::CynoModule(), ShipSE::HasPilot(), ShipSE::IsInvul(), ShipSE::IsLogin(), ModuleManager::LoadCharge(), ModuleManager::Online(), Prospector::Prospector(), RemoveItem(), ModuleManager::UnloadCharge(), Prospector::Update(), ActiveModule::Update(), and UpdateMass().
void ShipItem::Heal | ( | ) |
Definition at line 458 of file Ship.cpp.
References m_ModuleManager, ModuleManager::RepairModules(), SetShipArmor(), SetShipCapacitorLevel(), SetShipHull(), and SetShipShield().
Referenced by Command_heal(), Command_healtarget(), InitPod(), and Client::ResetAfterPopped().
void ShipItem::HeatDamageCheck | ( | GenericModule * | pMod | ) |
Definition at line 1272 of file Ship.cpp.
References AttrHeatAttenuationHi, AttrHeatAttenuationLow, AttrHeatAttenuationMed, AttrHeatHi, AttrHeatLow, AttrHeatMed, DamageModule(), GenericModule::flag(), InventoryItem::flag(), EvilNumber::get_float(), InventoryItem::GetAttribute(), GenericModule::isHighPower(), GenericModule::IsLinked(), GenericModule::isLowPower(), GenericModule::IsMaster(), and GenericModule::isMediumPower().
Referenced by ActiveModule::DoCycle().
void ShipItem::Init | ( | ) |
Definition at line 150 of file Ship.cpp.
References EVEDB::invGroups::Capsule, InventoryItem::groupID(), InitAttribs(), ModuleManager::Initialize(), InitPod(), LoadWeaponGroups(), m_isActive, m_ModuleManager, sConfig, and UpdateMass().
Referenced by SetPlayer().
void ShipItem::InitAttribs | ( | ) |
Definition at line 191 of file Ship.cpp.
References AttrArmorDamage, AttrArmorMaxDamageResonance, AttrCapacitorCapacity, AttrCapacitorCharge, AttrCpuLoad, AttrDamage, AttrEmDamageResonance, AttrExplosiveDamageResonance, AttrHullEmDamageResonance, AttrHullExplosiveDamageResonance, AttrHullKineticDamageResonance, AttrHullThermalDamageResonance, AttrKineticDamageResonance, AttrMass, AttrMaximumRangeCap, AttrOnline, AttrPowerLoad, AttrShieldCapacity, AttrShieldCharge, AttrShieldMaxDamageResonance, AttrThermalDamageResonance, AttrUpgradeLoad, AttrVolume, AttrWarpScrambleStatus, AttrWarpSpeedMultiplier, BUBBLE_RADIUS_METERS, EvilOne, EvilZero, InventoryItem::GetAttribute(), InventoryItem::GetPackagedVolume(), InventoryItem::HasAttribute(), InventoryItem::SetAttribute(), and InventoryItem::type().
Referenced by Init().
void ShipItem::InitPod | ( | ) |
Definition at line 171 of file Ship.cpp.
References AttrArmorDamage, AttrCpuLoad, AttrDamage, AttrOnline, AttrPowerLoad, AttrShieldCapacity, AttrShieldCharge, AttrVolume, EvilOne, EvilZero, InventoryItem::GetAttribute(), InventoryItem::GetPackagedVolume(), InventoryItem::HasAttribute(), Heal(), ModuleManager::Initialize(), Client::IsInSpace(), m_ModuleManager, m_pilot, and InventoryItem::SetAttribute().
Referenced by Init().
|
inline |
Definition at line 147 of file Ship.h.
References m_isActive.
Referenced by RepairService::GetDamageReports().
|
inline |
|
inline |
Definition at line 89 of file Ship.h.
References m_isPopped.
Referenced by ModuleManager::CharacterLeavingShip(), and GenericModule::Offline().
|
inlinevirtual |
|
inline |
Definition at line 149 of file Ship.h.
References m_isUndocking.
Referenced by GenericModule::Offline(), and GenericModule::Online().
void ShipItem::Jump | ( | ) |
Definition at line 405 of file Ship.cpp.
References m_ModuleManager, and ModuleManager::ShipJumping().
Referenced by ShipSE::Jump().
void ShipItem::LinkAllWeapons | ( | ) |
Definition at line 1416 of file Ship.cpp.
References _log, ModuleManager::GetWeapons(), is_log_enabled, LinkWeaponLoop(), m_linkedWeapons, m_ModuleManager, SaveWeaponGroups(), sConfig, sDataMgr, and ModuleManager::UnloadCharge().
Definition at line 1365 of file Ship.cpp.
References ModuleManager::GetModule(), m_ModuleManager, and SaveWeaponGroups().
Referenced by LinkWeaponLoop(), and UnlinkWeapon().
|
protected |
Definition at line 1376 of file Ship.cpp.
References GenericModule::IsActive(), GenericModule::IsDamaged(), GenericModule::IsLoaded(), GenericModule::IsLoading(), GenericModule::isOnline(), m_linkedWeapons, GenericModule::SetLinked(), and GenericModule::SetLinkMaster().
|
protected |
Definition at line 1448 of file Ship.cpp.
References _log, GenericModule::flag(), GetTimeUSeconds(), is_log_enabled, item(), GenericModule::itemID(), LinkWeapon(), m_linkedWeapons, m_pilot, sDataMgr, Client::SendErrorMsg(), and GenericModule::typeID().
Referenced by LinkAllWeapons().
|
static |
void ShipItem::LoadCharge | ( | InventoryItemRef | cRef, |
EVEItemFlags | flag | ||
) |
Definition at line 601 of file Ship.cpp.
References _log, UserError::AddFormatValue(), InventoryItem::flag(), RefPtr< X >::get(), ModuleManager::GetModule(), IsFittingSlot, ModuleManager::LoadCharge(), Module::State::Loading, m_ModuleManager, m_pilot, InventoryItem::name(), sDataMgr, InventoryItem::typeID(), and VerifyHoldType().
Referenced by LoadChargesToBank().
void ShipItem::LoadChargesToBank | ( | EVEItemFlags | flag, |
std::vector< int32 > & | chargeIDs | ||
) |
Definition at line 661 of file Ship.cpp.
References InventoryItem::flag(), RefPtr< X >::get(), ModuleManager::GetModulesInBank(), IsCargoHoldFlag, IsHangarFlag, LoadCharge(), m_ModuleManager, and sItemFactory.
void ShipItem::LoadLinkedWeapons | ( | GenericModule * | pMod, |
std::vector< int32 > & | chargeIDs | ||
) |
Definition at line 684 of file Ship.cpp.
References GenericModule::flag(), IsCargoHoldFlag, IsHangarFlag, ModuleManager::LoadCharge(), m_linkedWeapons, m_ModuleManager, m_pilot, sItemFactory, and VerifyHoldType().
|
protected |
Definition at line 1745 of file Ship.cpp.
References DBResultRow::GetInt(), ModuleManager::GetModule(), DBQueryResult::GetRow(), ShipDB::LoadWeaponGroups(), InventoryItem::m_itemID, m_linkedWeapons, m_ModuleManager, m_pilot, SafeDelete(), Client::SendErrorMsg(), GenericModule::SetLinked(), GenericModule::SetLinkMaster(), and UnlinkAllWeapons().
Referenced by Init().
void ShipItem::LogOut | ( | ) |
Definition at line 84 of file Ship.cpp.
References AttrOnline, EvilZero, InventoryItem::locationID(), InventoryItem::m_itemID, InventoryItem::pInventory, Inventory::RemoveItem(), SaveShip(), sDataMgr, InventoryItem::SetAttribute(), sItemFactory, and Inventory::Unload().
Referenced by SystemManager::UnloadSystem(), and Client::~Client().
Definition at line 1406 of file Ship.cpp.
References _log, InventoryItem::itemID(), and InventoryItem::name().
Definition at line 155 of file Ship.h.
References m_ModuleManager, and ModuleManager::ModuleRepair().
void ShipItem::MoveModuleSlot | ( | EVEItemFlags | slot1, |
EVEItemFlags | slot2 | ||
) |
Definition at line 818 of file Ship.cpp.
References _log, AddItemByFlag(), AttrOnline, RefPtr< X >::get(), EvilNumber::get_bool(), InventoryItem::GetAttribute(), ModuleManager::GetLoadedChargeOnModule(), GetModule(), GetModuleRef(), GenericModule::GetSelf(), GenericModule::IsActive(), ModuleManager::IsSlotOccupied(), ModuleManager::LoadCharge(), m_ModuleManager, InventoryItem::name(), ModuleManager::Online(), RemoveItem(), and ModuleManager::VerifySlotExchange().
Referenced by InventoryBound::MoveItems().
void ShipItem::Offline | ( | uint32 | modID | ) |
Definition at line 1034 of file Ship.cpp.
References m_ModuleManager, and ModuleManager::Offline().
void ShipItem::OfflineAll | ( | ) |
Definition at line 1055 of file Ship.cpp.
References m_ModuleManager, and ModuleManager::OfflineAll().
void ShipItem::OfflineGroup | ( | GenericModule * | pMod | ) |
Definition at line 1711 of file Ship.cpp.
References GenericModule::IsMaster(), and m_linkedWeapons.
void ShipItem::Online | ( | uint32 | modID | ) |
Definition at line 999 of file Ship.cpp.
References InventoryItem::locationID(), m_ModuleManager, ModuleManager::Online(), and sDataMgr.
void ShipItem::OnlineAll | ( | ) |
Definition at line 1050 of file Ship.cpp.
References m_ModuleManager, and ModuleManager::OnlineAll().
|
inline |
Definition at line 124 of file Ship.h.
References m_ModuleManager, and ModuleManager::Overload().
Definition at line 1411 of file Ship.cpp.
References _log, InventoryItem::itemID(), and InventoryItem::name().
void ShipItem::PrepForUndock | ( | ) |
Definition at line 1895 of file Ship.cpp.
References m_ModuleManager, ModuleManager::OfflineAll(), and ProcessEffects().
void ShipItem::ProcessEffects | ( | bool | add = false , |
bool | update = false |
||
) |
Definition at line 1794 of file Ship.cpp.
References _log, InventoryItem::ClearModifiers(), ClearModuleModifiers(), Client::GetChar(), ModuleManager::GetLoadedCharges(), ModuleManager::GetModuleListOfRefsAsc(), GetTimeMSeconds(), m_ModuleManager, m_pilot, InventoryItem::pAttributeMap, Character::ProcessEffects(), ProcessShipEffects(), InventoryItem::ResetAttributes(), Character::ResetModifiers(), and AttributeMap::SaveShipState().
Referenced by Dock(), PrepForUndock(), ResetEffects(), and SetPlayer().
void ShipItem::ProcessHeat | ( | ) |
Definition at line 1130 of file Ship.cpp.
References _log, AttrHeatHi, AttrHeatLow, DissipateHeat(), GenerateHeat(), EvilNumber::get_float(), InventoryItem::GetAttribute(), GetTimeUSeconds(), and InventoryItem::SetAttribute().
Referenced by ShipSE::Process().
void ShipItem::ProcessModules | ( | ) |
Definition at line 343 of file Ship.cpp.
References Client::IsDocked(), m_ModuleManager, m_pilot, and ModuleManager::Process().
Referenced by ShipSE::Process().
|
private |
Definition at line 1834 of file Ship.cpp.
References _log, fxData::action, RefPtr< X >::get(), Client::GetChar(), FX::Action::Invalid, ModuleManager::LoadOnline(), m_isUndocking, m_ModuleManager, m_onlineModuleVec, m_pilot, sFxDataMgr, sFxProc, fxData::srcRef, InventoryItem::type(), and ModuleManager::UpdateModules().
Referenced by ProcessEffects().
void ShipItem::RemoveCharge | ( | EVEItemFlags | fromFlag | ) |
Definition at line 718 of file Ship.cpp.
References ModuleManager::GetModule(), IsFittingSlot, m_ModuleManager, sDataMgr, and ModuleManager::UnloadCharge().
|
virtual |
Reimplemented from InventoryItem.
Definition at line 532 of file Ship.cpp.
References AttrMass, InventoryItem::categoryID(), EVEDB::invCategories::Charge, InventoryItem::flag(), RefPtr< X >::get(), EvilNumber::get_uint32(), InventoryItem::GetAttribute(), HasPilot(), IsModuleSlot, IsRigSlot, InventoryItem::itemID(), m_ModuleManager, m_pilot, ItemType::mass(), InventoryItem::quantity(), InventoryItem::RemoveItem(), sConfig, InventoryItem::SetAttribute(), InventoryItem::type(), ModuleManager::UnfitModule(), ModuleManager::UninstallRig(), and ModuleManager::UnloadModule().
Referenced by TurretModule::ApplyDamage(), Colony::CreatePin(), InventoryBound::MoveItems(), MoveModuleSlot(), and MiningLaser::ProcessCycle().
void ShipItem::RemoveRig | ( | InventoryItemRef | iRef | ) |
Definition at line 1067 of file Ship.cpp.
References flagCargoHold, RefPtr< X >::get(), InventoryItem::itemID(), m_ModuleManager, InventoryItem::Move(), and ModuleManager::UninstallRig().
void ShipItem::RepairModules | ( | std::vector< InventoryItemRef > & | itemRefVec, |
float | fraction | ||
) |
Definition at line 981 of file Ship.cpp.
References AttrDamage, AttrHP, Profile::damage, EvilZero, m_ModuleManager, and ModuleManager::RepairModule().
Referenced by Command_repairmodules().
|
inline |
Definition at line 144 of file Ship.h.
References m_ModuleManager, and ModuleManager::RepairModules().
void ShipItem::RepairShip | ( | float | fraction | ) |
Definition at line 950 of file Ship.cpp.
References AttrArmorDamage, AttrDamage, Profile::damage, EvilZero, InventoryItem::GetAttribute(), and InventoryItem::SetAttribute().
void ShipItem::ReplaceCharges | ( | EVEItemFlags | flag, |
InventoryItemRef | newCharge | ||
) |
Definition at line 1074 of file Ship.cpp.
References _log, InventoryItem::itemID(), and InventoryItem::name().
void ShipItem::ResetEffects | ( | ) |
Definition at line 1872 of file Ship.cpp.
References _log, Client::GetChar(), ModuleManager::GetLoadedCharges(), ModuleManager::GetModuleListOfRefsAsc(), GetTimeMSeconds(), m_ModuleManager, m_pilot, ModuleManager::OfflineAll(), InventoryItem::pAttributeMap, ProcessEffects(), InventoryItem::ResetAttributes(), Character::ResetModifiers(), and AttributeMap::SaveShipState().
Referenced by Undock().
void ShipItem::SaveShip | ( | ) |
Definition at line 1060 of file Ship.cpp.
References m_ModuleManager, InventoryItem::pAttributeMap, InventoryItem::SaveItem(), ModuleManager::SaveModules(), and AttributeMap::SaveShipState().
Referenced by Client::BoardShip(), Eject(), LogOut(), Client::MoveToLocation(), Client::ResetAfterPodded(), and ShipSE::SaveShip().
|
protected |
Definition at line 1733 of file Ship.cpp.
References InventoryItem::m_itemID, m_linkedWeapons, and ShipDB::SaveWeaponGroups().
Referenced by LinkAllWeapons(), LinkWeapon(), and UnlinkGroup().
|
inline |
Definition at line 150 of file Ship.h.
References m_isDocking.
Referenced by Client::DockToStation().
|
virtual |
Reimplemented from InventoryItem.
Definition at line 106 of file Ship.cpp.
References AttrOnline, EvilZero, flagNone, Client::GetChar(), Init(), Client::IsCharCreation(), InventoryItem::locationID(), m_isActive, m_onlineModuleVec, m_pilot, InventoryItem::pInventory, ProcessEffects(), Inventory::RemoveItem(), sDataMgr, InventoryItem::SetAttribute(), and InventoryItem::SetFlag().
Referenced by Client::Eject(), Client::SelectCharacter(), and Client::SetShip().
|
inline |
Definition at line 90 of file Ship.h.
References m_isPopped.
Referenced by ShipSE::Killed().
void ShipItem::SetShipArmor | ( | float | fraction | ) |
Definition at line 913 of file Ship.cpp.
References _log, AttrArmorDamage, AttrArmorHP, EvilZero, EvilNumber::get_float(), InventoryItem::GetAttribute(), and InventoryItem::SetAttribute().
Referenced by Heal().
void ShipItem::SetShipCapacitorLevel | ( | float | fraction | ) |
Definition at line 881 of file Ship.cpp.
References _log, AttrCapacitorCapacity, AttrCapacitorCharge, EvilZero, EvilNumber::get_float(), InventoryItem::GetAttribute(), and InventoryItem::SetAttribute().
Referenced by Heal(), Client::SelectCharacter(), and Undock().
void ShipItem::SetShipHull | ( | float | fraction | ) |
Definition at line 931 of file Ship.cpp.
References _log, AttrDamage, AttrHP, EvilZero, EvilNumber::get_float(), InventoryItem::GetAttribute(), and InventoryItem::SetAttribute().
Referenced by Heal().
void ShipItem::SetShipShield | ( | float | fraction | ) |
Definition at line 897 of file Ship.cpp.
References _log, AttrShieldCapacity, AttrShieldCharge, EvilZero, EvilNumber::get_float(), InventoryItem::GetAttribute(), and InventoryItem::SetAttribute().
Referenced by Heal(), Client::SelectCharacter(), and Undock().
|
inline |
Definition at line 151 of file Ship.h.
References m_isUndocking.
Referenced by DestinyManager::Undock(), and Client::UndockFromStation().
PyList * ShipItem::ShipGetModuleList | ( | ) |
Definition at line 2247 of file Ship.cpp.
References _log, PyList::AddItem(), ModuleManager::GetModuleListOfRefsAsc(), InventoryItem::itemID(), Inventory::LoadContents(), m_ModuleManager, InventoryItem::name(), InventoryItem::pInventory, and PyTuple::SetItem().
Referenced by DestinyManager::UpdateNewShip().
|
static |
Definition at line 51 of file Ship.cpp.
References InventoryItem::CreateItemID(), and Load().
Referenced by InventoryItem::Spawn(), and ItemFactory::SpawnShip().
|
inline |
Definition at line 156 of file Ship.h.
References m_ModuleManager, and ModuleManager::StopModuleRepair().
void ShipItem::StripFitting | ( | ) |
Definition at line 1311 of file Ship.cpp.
References InventoryItem::flag(), flagCargoHold, flagHangar, ModuleManager::GetModuleListOfRefsAsc(), InventoryItem::locationID(), m_ModuleManager, sDataMgr, ModuleManager::UnfitModule(), and UnlinkAllWeapons().
void ShipItem::TryModuleLimitChecks | ( | EVEItemFlags | flag, |
InventoryItemRef | iRef | ||
) |
Definition at line 736 of file Ship.cpp.
References UserError::AddFormatValue(), UserError::AddTypeName(), AttrLauncherSlotsLeft, AttrRigSize, AttrTurretSlotsLeft, AttrUpgradeCapacity, AttrUpgradeCost, AttrUpgradeLoad, AttrUpgradeSlotsLeft, ModuleManager::CheckGroupFitLimited(), ModuleManager::CheckSlotFitLimited(), EvilNumber::get_uint32(), InventoryItem::GetAttribute(), ItemType::HasEffect(), IsHiSlot, IsRigSlot, ModuleManager::IsSlotOccupied(), launcherFitted, m_ModuleManager, sDataMgr, turretFitted, InventoryItem::type(), and InventoryItem::typeID().
Referenced by InventoryBound::MoveItems().
void ShipItem::Undock | ( | ) |
Definition at line 370 of file Ship.cpp.
References Client::IsSessionChange(), m_isUndocking, m_ModuleManager, m_pilot, ResetEffects(), SetShipCapacitorLevel(), SetShipShield(), and ModuleManager::UpdateChargeQty().
Referenced by Client::UndockFromStation().
void ShipItem::UnlinkAllWeapons | ( | ) |
Definition at line 1651 of file Ship.cpp.
References ShipDB::ClearWeaponGroups(), ModuleManager::GetWeapons(), InventoryItem::m_itemID, m_linkedWeapons, and m_ModuleManager.
Referenced by LoadWeaponGroups(), and StripFitting().
void ShipItem::UnlinkGroup | ( | uint32 | memberID, |
bool | update = false |
||
) |
Definition at line 1602 of file Ship.cpp.
References ModuleManager::GetModule(), InventoryItem::m_itemID, m_linkedWeapons, m_ModuleManager, m_pilot, Client::QueueDestinyEvent(), SaveWeaponGroups(), and PyTuple::SetItem().
Referenced by ModuleManager::UnfitModule(), and UnlinkWeapon().
Definition at line 1522 of file Ship.cpp.
References PyList::AddItem(), ModuleManager::GetModule(), LinkWeapon(), InventoryItem::m_itemID, m_linkedWeapons, m_ModuleManager, m_pilot, Client::QueueDestinyEvent(), Client::SendNotifyMsg(), PyTuple::SetItem(), PyDict::SetItem(), and UnlinkGroup().
Definition at line 1566 of file Ship.cpp.
References ModuleManager::GetModule(), m_linkedWeapons, and m_ModuleManager.
|
inline |
Definition at line 132 of file Ship.h.
References m_ModuleManager, and ModuleManager::UnloadAllModules().
Referenced by Command_unload().
|
inline |
Definition at line 130 of file Ship.h.
References m_ModuleManager, and ModuleManager::UnloadModule().
Referenced by InventoryBound::MoveItems().
|
inline |
Definition at line 131 of file Ship.h.
References m_ModuleManager, and ModuleManager::UnloadModule().
void ShipItem::UpdateMass | ( | ) |
Definition at line 389 of file Ship.cpp.
References AttrMass, InventoryItem::GetAttribute(), Inventory::GetInventoryMap(), HasPilot(), InventoryItem::pInventory, and InventoryItem::SetAttribute().
Referenced by Init().
void ShipItem::UpdateModules | ( | ) |
Definition at line 862 of file Ship.cpp.
References m_ModuleManager, m_onlineModuleVec, and ModuleManager::UpdateModules().
Referenced by Client::MoveItem().
void ShipItem::UpdateModules | ( | EVEItemFlags | flag | ) |
Definition at line 872 of file Ship.cpp.
References m_ModuleManager, and ModuleManager::UpdateModules().
bool ShipItem::ValidateBoardShip | ( | CharacterRef | who | ) |
Definition at line 2267 of file Ship.cpp.
References AttrRequiredSkill1, AttrRequiredSkill1Level, AttrRequiredSkill2, AttrRequiredSkill2Level, AttrRequiredSkill3, AttrRequiredSkill3Level, AttrRequiredSkill4, AttrRequiredSkill4Level, AttrRequiredSkill5, AttrRequiredSkill5Level, AttrRequiredSkill6, AttrRequiredSkill6Level, EvilZero, EvilNumber::get_uint32(), InventoryItem::GetAttribute(), InventoryItem::HasAttribute(), and Character::HasSkillTrainedToLevel().
bool ShipItem::ValidateItemSpecifics | ( | InventoryItemRef | iRef | ) |
Definition at line 2316 of file Ship.cpp.
References _log, AttrCanFitShipGroup1, AttrCanFitShipGroup2, AttrCanFitShipGroup3, AttrCanFitShipGroup4, AttrCanFitShipGroup5, AttrCanFitShipGroup6, AttrCanFitShipGroup7, AttrCanFitShipGroup8, AttrCanFitShipType1, AttrCanFitShipType2, AttrCanFitShipType3, AttrCanFitShipType4, InventoryItem::groupID(), InventoryItem::HasAttribute(), InventoryItem::itemID(), InventoryItem::name(), InventoryItem::type(), and InventoryItem::typeID().
Referenced by VerifyHoldType().
void ShipItem::VerifyHoldType | ( | EVEItemFlags | flag, |
InventoryItemRef | iRef, | ||
Client * | pClient = nullptr |
||
) |
Definition at line 1972 of file Ship.cpp.
References EVEDB::invGroups::Advanced_Artillery_Ammo, EVEDB::invGroups::Advanced_Autocannon_Ammo, EVEDB::invGroups::Advanced_Beam_Laser_Crystal, EVEDB::invGroups::Advanced_Blaster_Ammo, EVEDB::invGroups::Advanced_Pulse_Laser_Crystal, EVEDB::invGroups::Advanced_Railgun_Ammo, EVEDB::invGroups::Ammo, EVEDB::invCategories::Asteroid, AttrChargeGroup1, AttrChargeGroup2, AttrChargeGroup3, AttrChargeGroup4, AttrChargeGroup5, AttrChargeSize, AttrHasCorporateHangars, AttrHasShipMaintenanceBay, EVEDB::invGroups::CapitalIndustrialShip, InventoryItem::categoryID(), EVEDB::invCategories::Charge, EVEDB::invCategories::Drone, EVEDB::invGroups::Exhumer, EVEDB::invGroups::Fighter_Bomber, EVEDB::invGroups::Fighter_Drone, Skill::FitModuleSkillCheck(), flagAmmoHold, flagCargoHold, flagCorpHangar2, flagCorpHangar3, flagCorpHangar4, flagCorpHangar5, flagCorpHangar6, flagCorpHangar7, flagDroneBay, flagFuelBay, flagGasHold, flagHangar, flagIndustrialShipHold, flagLargeShipHold, flagMediumShipHold, flagMineralHold, flagOreHold, flagSalvageHold, flagShipHangar, flagShipHold, flagSmallShipHold, EVEDB::invGroups::Freighter, EVEDB::invGroups::Frequency_Crystal, EVEDB::invGroups::FuelBlock, EVEDB::invGroups::Gas_Isotopes, EvilNumber::get_uint32(), InventoryItem::GetAttribute(), Client::GetChar(), ModuleManager::GetModule(), InventoryItem::groupID(), InventoryItem::HasAttribute(), EVEDB::invGroups::Hybrid_Ammo, EVEDB::invGroups::Ice_Product, EVEDB::invGroups::Industrial, IsModuleSlot, m_ModuleManager, m_pilot, EVEDB::invGroups::Mercoxit_Mining_Crystal, EVEDB::invGroups::Mineral, EVEDB::invGroups::Mining_Crystal, EVEDB::invGroups::MiningBarge, EVEDB::invCategories::Module, ItemType::name(), InventoryItem::name(), EVEDB::invGroups::Prototype_Exploration_Ship, InventoryItem::quantity(), EVEDB::invTypes::Rorqual, EVEDB::invGroups::Salvage_Materials, sDataMgr, EVEDB::invCategories::Ship, sLog, EVEDB::invCategories::Subsystem, EVEDB::invGroups::Supercarrier, EVEDB::invGroups::TransportShip, InventoryItem::type(), InventoryItem::typeID(), and ValidateItemSpecifics().
Referenced by LoadCharge(), LoadLinkedWeapons(), and InventoryBound::MoveItems().
void ShipItem::Warp | ( | ) |
Definition at line 401 of file Ship.cpp.
References m_ModuleManager, and ModuleManager::ShipWarping().
Referenced by ShipSE::Warp().
|
friend |
|
private |
Definition at line 285 of file Ship.h.
Referenced by Init(), IsActive(), and SetPlayer().
|
private |
Definition at line 287 of file Ship.h.
Referenced by Dock(), IsDocking(), and SetDocked().
|
private |
Definition at line 286 of file Ship.h.
Referenced by IsPopped(), and SetPopped().
|
private |
Definition at line 288 of file Ship.h.
Referenced by IsUndocking(), ProcessShipEffects(), SetUndocking(), and Undock().
|
private |
Definition at line 281 of file Ship.h.
Referenced by GetLinkedCount(), GetLinkedWeaponMods(), GetLinkedWeapons(), GetLoadedLinkedCount(), HasLinkedWeapons(), LinkAllWeapons(), LinkWeapon(), LinkWeaponLoop(), LoadLinkedWeapons(), LoadWeaponGroups(), OfflineGroup(), SaveWeaponGroups(), UnlinkAllWeapons(), UnlinkGroup(), and UnlinkWeapon().
|
private |
Definition at line 276 of file Ship.h.
Referenced by _Load(), AbortCycle(), Activate(), AddItemByFlag(), CancelOverloading(), CargoFull(), CharacterBoardingShip(), ClearModuleModifiers(), DamageModule(), DamageRandModule(), Deactivate(), Dock(), Eject(), FindAvailableModuleSlot(), GenerateHeat(), GetChargeState(), GetLinkedWeaponMods(), GetModule(), GetModuleManager(), GetModuleRef(), GetModuleRefVec(), GetShipDNA(), GetShipState(), HasModuleManager(), Heal(), Init(), InitPod(), Jump(), LinkAllWeapons(), LinkWeapon(), LoadCharge(), LoadChargesToBank(), LoadLinkedWeapons(), LoadWeaponGroups(), ModuleRepair(), MoveModuleSlot(), Offline(), OfflineAll(), Online(), OnlineAll(), Overload(), PrepForUndock(), ProcessEffects(), ProcessModules(), ProcessShipEffects(), RemoveCharge(), RemoveItem(), RemoveRig(), RepairModules(), ResetEffects(), SaveShip(), ShipGetModuleList(), StopModuleRepair(), StripFitting(), TryModuleLimitChecks(), Undock(), UnlinkAllWeapons(), UnlinkGroup(), UnlinkWeapon(), UnloadAllModules(), UnloadModule(), UpdateModules(), VerifyHoldType(), Warp(), and ~ShipItem().
|
private |
Definition at line 280 of file Ship.h.
Referenced by AddModuleToOnlineVec(), Dock(), ProcessShipEffects(), SetPlayer(), ShipItem(), and UpdateModules().
|
private |
Definition at line 273 of file Ship.h.
Referenced by GetPilot(), HasPilot(), InitPod(), LinkWeaponLoop(), LoadCharge(), LoadLinkedWeapons(), LoadWeaponGroups(), ProcessEffects(), ProcessModules(), ProcessShipEffects(), RemoveItem(), ResetEffects(), SetPlayer(), Undock(), UnlinkGroup(), UnlinkWeapon(), and VerifyHoldType().
|
private |
Definition at line 278 of file Ship.h.
Referenced by Activate(), ClearTargetRef(), and GetTargetRef().