EvEmu  0.8.4
11 September 2021
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
StationSE Class Reference

#include "Station.h"

Inheritance diagram for StationSE:
Collaboration diagram for StationSE:

Public Member Functions

 StationSE (StationItemRef station, PyServiceMgr &services, SystemManager *system)
 
virtual ~StationSE ()
 
virtual StationSEGetStationSE ()
 
virtual bool IsStationSE ()
 
virtual PyDictMakeSlimItem ()
 
virtual void EncodeDestiny (Buffer &into)
 
void UnloadStation ()
 
- Public Member Functions inherited from StaticSystemEntity
 StaticSystemEntity (InventoryItemRef self, PyServiceMgr &services, SystemManager *system)
 
virtual ~StaticSystemEntity ()
 
virtual StaticSystemEntityGetStaticSE ()
 
virtual bool isGlobal ()
 
virtual bool IsInanimateSE ()
 
virtual bool IsStaticEntity ()
 
virtual bool LoadExtras ()
 
- Public Member Functions inherited from SystemEntity
 SystemEntity (InventoryItemRef self, PyServiceMgr &services, SystemManager *system)
 
virtual ~SystemEntity ()
 
virtual void Process ()
 
virtual bool ProcessTic ()
 
virtual SystemEntityGetSE ()
 
virtual PlanetSEGetPlanetSE ()
 
virtual MoonSEGetMoonSE ()
 
virtual StargateSEGetGateSE ()
 
virtual BeltSEGetBeltSE ()
 
virtual ItemSystemEntityGetItemSE ()
 
virtual ContainerSEGetContSE ()
 
virtual WreckSEGetWreckSE ()
 
virtual AnomalySEGetAnomalySE ()
 
virtual WormholeSEGetWormholeSE ()
 
virtual FieldSEGetFieldSE ()
 
virtual ProbeSEGetProbeSE ()
 
virtual ObjectSystemEntityGetObjectSE ()
 
virtual AsteroidSEGetAsteroidSE ()
 
virtual StructureSEGetPOSSE ()
 
virtual StructureSEGetJammerSE ()
 
virtual JumpBridgeSEGetJumpBridgeSE ()
 
virtual StructureSEGetOutpostSE ()
 
virtual TowerSEGetTowerSE ()
 
virtual ArraySEGetArraySE ()
 
virtual WeaponSEGetWeaponSE ()
 
virtual BatterySEGetBatterySE ()
 
virtual DeployableSEGetDeployableSE ()
 
virtual SentryGetSentrySE ()
 
virtual ModuleSEGetModuleSE ()
 
virtual ReactorSEGetReactorSE ()
 
virtual CustomsSEGetCOSE ()
 
virtual TCUSEGetTCUSE ()
 
virtual SBUSEGetSBUSE ()
 
virtual IHubSEGetIHubSE ()
 
virtual DynamicSystemEntityGetDynamicSE ()
 
virtual NPCGetNPCSE ()
 
virtual DroneSEGetDroneSE ()
 
virtual MissileGetMissileSE ()
 
virtual ShipSEGetShipSE ()
 
virtual ConcordGetConcordSE ()
 
virtual bool IsSystemEntity ()
 
virtual bool IsBeltSE ()
 
virtual bool IsGateSE ()
 
virtual bool IsPlanetSE ()
 
virtual bool IsMoonSE ()
 
virtual bool IsItemEntity ()
 
virtual bool IsAnomalySE ()
 
virtual bool IsWormholeSE ()
 
virtual bool IsCelestialSE ()
 
virtual bool IsContainerSE ()
 
virtual bool IsFieldSE ()
 
virtual bool IsProbeSE ()
 
virtual bool IsObjectEntity ()
 
virtual bool IsSentrySE ()
 
virtual bool IsPOSSE ()
 
virtual bool IsCOSE ()
 
virtual bool IsTCUSE ()
 
virtual bool IsSBUSE ()
 
virtual bool IsIHubSE ()
 
virtual bool IsTowerSE ()
 
virtual bool IsArraySE ()
 
virtual bool IsJammerSE ()
 
virtual bool IsWeaponSE ()
 
virtual bool IsBatterySE ()
 
virtual bool IsModuleSE ()
 
virtual bool IsMoonMiner ()
 
virtual bool IsOutpostSE ()
 
virtual bool IsAsteroidSE ()
 
virtual bool IsDeployableSE ()
 
virtual bool IsJumpBridgeSE ()
 
virtual bool IsReactorSE ()
 
virtual bool IsOperSE ()
 
virtual bool IsDynamicEntity ()
 
virtual bool IsLogin ()
 
virtual bool IsInvul ()
 
virtual bool IsFrozen ()
 
virtual bool IsNPCSE ()
 
virtual bool IsDroneSE ()
 
virtual bool IsWreckSE ()
 
virtual bool IsMissileSE ()
 
virtual bool IsShipSE ()
 
virtual bool IsConcord ()
 
PyServiceMgrGetServices ()
 
SystemBubbleSysBubble ()
 
SystemManagerSystemMgr ()
 
TargetManagerTargetMgr ()
 
DestinyManagerDestinyMgr ()
 
InventoryItemRef GetSelf ()
 
uint16 GetTypeID ()
 
uint32 GetGroupID ()
 
uint8 GetCategoryID ()
 
EVEItemFlags GetFlag ()
 
uint32 GetID ()
 
double GetRadius ()
 
uint32 GetLocationID ()
 
const char * GetName () const
 
const GPointGetPosition () const
 
void SetPosition (const GPoint &pos)
 
double x ()
 
double y ()
 
double z ()
 
int32 GetAllianceID ()
 
int32 GetWarFactionID ()
 
uint32 GetCorporationID ()
 
uint32 GetOwnerID ()
 
uint32 GetFleetID ()
 
void SetFleetID (uint32 set)
 
int8 GetHarmonic ()
 
void SetHarmonic (int8 set)
 
void DropLoot (WreckContainerRef wreckRef, uint32 groupID, uint32 owner)
 
void AwardSecurityStatus (InventoryItemRef iRef, Character *pChar)
 
void SendDamageStateChanged ()
 
bool ApplyDamage (Damage &d)
 
double DistanceTo2 (const SystemEntity *other)
 
PyTupleMakeDamageState ()
 
virtual void Abandon ()
 
const bool IsDead ()
 
const GVectorGetVelocity ()
 
virtual void Killed (Damage &fatal_blow)
 
virtual void MakeDamageState (DoDestinyDamageState &into)
 
virtual void MissileLaunched (Missile *pMissile)
 
virtual void UpdateDamage ()
 
virtual void Delete ()
 
virtual void SetPilot (Client *pClient)
 
virtual bool HasPilot ()
 
virtual ClientGetPilot ()
 

Additional Inherited Members

- Protected Attributes inherited from SystemEntity
SystemBubblem_bubble
 
SystemManagerm_system
 
TargetManagerm_targMgr
 
DestinyManagerm_destiny
 
PyServiceMgrm_services
 
InventoryItemRef m_self
 
bool m_killed
 
double m_radius
 
int32 m_harmonic
 
int32 m_warID
 
int32 m_allyID
 
uint32 m_corpID
 
uint32 m_fleetID
 
uint32 m_ownerID
 

Detailed Description

Definition at line 176 of file Station.h.

Constructor & Destructor Documentation

StationSE::StationSE ( StationItemRef  station,
PyServiceMgr services,
SystemManager system 
)

Definition at line 268 of file Station.cpp.

References AttrArmorDamage, AttrArmorHP, AttrArmorUniformity, AttrCapacity, AttrDamage, AttrInertia, AttrMass, AttrOnline, AttrRadius, AttrShieldCapacity, AttrShieldCharge, AttrVolume, EvilOne, EvilZero, InventoryItem::GetAttribute(), ItemType::mass(), ItemType::radius(), InventoryItem::SetAttribute(), STATION_HANGAR_MAX_CAPACITY, InventoryItem::type(), and ItemType::volume().

269 : StaticSystemEntity(station, services, system)
270 {
271  // Create default dynamic attributes in the AttributeMap:
272  station->SetAttribute(AttrOnline, EvilOne, false);
274  station->SetAttribute(AttrInertia, EvilOne, false);
275  station->SetAttribute(AttrDamage, EvilZero, false);
276  station->SetAttribute(AttrShieldCapacity, 20000000.0, false);
277  station->SetAttribute(AttrShieldCharge, station->GetAttribute(AttrShieldCapacity), false);
278  station->SetAttribute(AttrArmorHP, station->GetAttribute(AttrArmorHP), false);
280  station->SetAttribute(AttrArmorDamage, EvilZero, false);
281  station->SetAttribute(AttrMass, station->type().mass(), false);
282  station->SetAttribute(AttrRadius, station->type().radius(), false);
283  station->SetAttribute(AttrVolume, station->type().volume(), false);
284 }
StaticSystemEntity(InventoryItemRef self, PyServiceMgr &services, SystemManager *system)
static const int64 STATION_HANGAR_MAX_CAPACITY
Definition: EVE_Consts.h:41
EvilNumber EvilZero
Definition: EvilNumber.cpp:32
const ItemType & type() const
float mass() const
Definition: ItemType.h:69
void SetAttribute(uint16 attrID, int num, bool notify=true)
EvilNumber GetAttribute(const uint16 attrID) const
float radius() const
Definition: ItemType.h:68
float volume() const
Definition: ItemType.h:70
EvilNumber EvilOne
Definition: EvilNumber.cpp:34

Here is the call graph for this function:

virtual StationSE::~StationSE ( )
inlinevirtual

Definition at line 181 of file Station.h.

181 { /* Do nothing here */ }

Member Function Documentation

void StationSE::EncodeDestiny ( Buffer into)
virtual
Todo:
miniballs is broken and needs work... dont know what's wrong at this point, but client freaks out and ignores ANY ball data (in SetState) after this. this causes BallNotInPark error with multiple stations, or ANY data sent AFTER first StationBall MiniBall miniball; miniball.x = -7701.181; miniball.y = 8060.06; miniball.z = 27878.900; miniball.radius = 1639.241; into.Append( miniball );

Reimplemented from StaticSystemEntity.

Definition at line 286 of file Station.cpp.

References _log, Buffer::Append(), Destiny::BallHeader::entityID, Destiny::BallHeader::flags, Destiny::RIGID_Struct::formationID, SystemEntity::GetName(), SystemEntity::GetRadius(), Destiny::Ball::Flag::IsGlobal, Destiny::Ball::Flag::IsMassive, InventoryItem::itemID(), SystemEntity::m_self, main(), Destiny::BallHeader::mode, Destiny::BallHeader::posX, Destiny::BallHeader::posY, Destiny::BallHeader::posZ, Destiny::BallHeader::radius, Destiny::Ball::Mode::RIGID, SystemEntity::x(), SystemEntity::y(), and SystemEntity::z().

287 {
288  using namespace Destiny;
289 
290  BallHeader head = BallHeader();
291  head.entityID = m_self->itemID();
292  head.mode = Ball::Mode::RIGID;
293  head.radius = GetRadius();
294  head.posX = x();
295  head.posY = y();
296  head.posZ = z();
297  head.flags = /*Ball::Flag::HasMiniBalls |*/ Ball::Flag::IsGlobal | Ball::Flag::IsMassive;
298  into.Append( head );
300  main.formationID = 0xFF;
301  into.Append( main );
302 
313  _log(SE__DESTINY, "StationSE::EncodeDestiny(): %s - id:%li, mode:%u, flags:0x%X", GetName(), head.entityID, head.mode, head.flags);
314 }
void Append(const T &value)
Appends a single value to buffer.
Definition: Buffer.h:437
#define _log(type, fmt,...)
Definition: logsys.h:124
double GetRadius()
Definition: SystemEntity.h:208
double y()
Definition: SystemEntity.h:214
InventoryItemRef m_self
Definition: SystemEntity.h:269
double z()
Definition: SystemEntity.h:215
const char * GetName() const
Definition: SystemEntity.h:210
double x()
Definition: SystemEntity.h:213
int main(int argc, char *argv[])
uint32 itemID() const
Definition: InventoryItem.h:98

Here is the call graph for this function:

virtual StationSE* StationSE::GetStationSE ( )
inlinevirtual

Reimplemented from SystemEntity.

Definition at line 184 of file Station.h.

184 { return this; }
virtual bool StationSE::IsStationSE ( )
inlinevirtual

Reimplemented from SystemEntity.

Definition at line 186 of file Station.h.

186 { return true; }
PyDict * StationSE::MakeSlimItem ( )
virtual

Reimplemented from StaticSystemEntity.

Definition at line 316 of file Station.cpp.

References _log, InventoryItem::categoryID(), InventoryItem::groupID(), IsAlliance, IsCorp, IsFaction, InventoryItem::itemID(), InventoryItem::itemName(), SystemEntity::m_allyID, SystemEntity::m_corpID, SystemEntity::m_ownerID, SystemEntity::m_self, SystemEntity::m_warID, InventoryItem::name(), PyStatic, and InventoryItem::typeID().

316  {
317  _log(SE__SLIMITEM, "MakeSlimItem for StationSE %s(%u)", m_self->name(), m_self->itemID());
318  PyDict *slim = new PyDict();
319  slim->SetItemString("groupID", new PyInt(m_self->groupID()));
320  slim->SetItemString("name", new PyString(m_self->itemName()));
321  slim->SetItemString("corpID", IsCorp(m_corpID) ? new PyInt(m_corpID) : PyStatic.NewNone());
322  slim->SetItemString("allianceID", IsAlliance(m_allyID) ? new PyInt(m_allyID) : PyStatic.NewNone());
323  slim->SetItemString("warFactionID", IsFaction(m_warID) ? new PyInt(m_warID) : PyStatic.NewNone());
324  slim->SetItemString("typeID", new PyInt(m_self->typeID()));
325  slim->SetItemString("ownerID", new PyInt(m_ownerID));
326  slim->SetItemString("categoryID", new PyInt(m_self->categoryID()));
327  slim->SetItemString("itemID", new PyLong(m_self->itemID()));
328  slim->SetItemString("incapacitated", new PyInt(0));
329  slim->SetItemString("online", PyStatic.NewOne());
330  return slim;
331 }
#define _log(type, fmt,...)
Definition: logsys.h:124
Python string.
Definition: PyRep.h:430
Python's dictionary.
Definition: PyRep.h:719
uint32 m_ownerID
Definition: SystemEntity.h:283
const char * name()
uint16 groupID() const
InventoryItemRef m_self
Definition: SystemEntity.h:269
uint32 m_corpID
Definition: SystemEntity.h:281
Python integer.
Definition: PyRep.h:231
#define PyStatic
Definition: PyRep.h:1209
#define IsCorp(itemID)
Definition: EVE_Defines.h:234
const std::string & itemName() const
#define IsFaction(itemID)
Definition: EVE_Defines.h:250
#define IsAlliance(itemID)
Definition: EVE_Defines.h:244
uint16 typeID() const
uint8 categoryID() const
uint32 itemID() const
Definition: InventoryItem.h:98
Python long integer.
Definition: PyRep.h:261

Here is the call graph for this function:

void StationSE::UnloadStation ( )

Definition at line 333 of file Station.cpp.

References InventoryItem::GetMyInventory(), SystemEntity::m_self, and Inventory::Unload().

Referenced by SystemManager::UnloadSystem().

334 {
336 }
void Unload()
Definition: Inventory.cpp:62
InventoryItemRef m_self
Definition: SystemEntity.h:269
Inventory * GetMyInventory()
Definition: InventoryItem.h:91

Here is the call graph for this function:

Here is the caller graph for this function:


The documentation for this class was generated from the following files: