- Member AccountService::TranserFunds (uint32 fromID, uint32 toID, double amount, std::string reason="", uint8 entryTypeID=Journal::EntryType::Undefined, uint32 referenceID=0, uint16 fromKey=Account::KeyType::Cash, uint16 toKey=Account::KeyType::Cash, Client *pClient=nullptr)
- if this DOES fail, return funds to origin. this needs a try/catch block
- Member ActiveModule::Activate (uint16 effectID, uint32 targetID=0, int16 repeat=0)
- criminal shit isnt written yet....fix this once it is. if (m_targetSE->HasPilot()) if (m_targetSE->GetPilot()->IsCriminal()) throw UserError ("ModuleActivationDeniedCriminalAssistance");
- Member ActiveModule::CanActivate ()
- add checks for other items vs cap tractors and maybe some items for small tractors
- Member ActiveModule::DoCycle ()
- this may need more work later in the case of multiple stacks
- Member Agent::GetInfoServiceDetails ()
finish this.....
finish this....
finish this....
- Member AgentDB::LoadAgentData (uint32 agentID, AgentData &data)
fix this....not all agents have an entry in chrNPCCharacters table.
there may be some errors here with agents in space or NOT in stations....will have to test and fix as they come up.
there may be some errors here with agents in space or NOT in stations....will have to test and fix as they come up.
- Member AnomalyMgr::CreateAnomaly (int8 typeID=0)
- check distances based on system size
- Member AnomalyMgr::Init (BeltMgr *beltMgr, DungeonMgr *dungMgr, SpawnMgr *spawnMgr)
- all anomalies are currently temp items. if/when we start saving them, create new table and itemIDs
- Member BatterySE::Process ()
- (Allan) will need some form of AI to engage defensive modules if/when any structure is attacked
- Member BlueprintType::BlueprintType (uint16 _id, const Inv::TypeData &_data, const BlueprintType *_parentBlueprintType, const ItemType &_productType, const EvERam::bpTypeData &_tData)
- load the bp material list from invTypeMaterials
- Member BulkDB::GetBulkData (uint8 chunkID)
- update this to use setIDs, and consolidate all data and calls
- Member BulkDB::GetBulkDataChunks (uint8 setID, uint8 chunkID)
- need to fix this for separate chunks vs sets
- Member CachedObjectMgr::LoadCachedFile (const char *filename, const char *oname)
- Mem leak.
new PyBuffer()
never freed
- Member CacheFileMagic
- this whole system needs updating....
- Member CargoContainer::RemoveItem (InventoryItemRef iRef)
- put check in here for container owner (if space container) and implement sec penalty
- Member Character::GetCharInfo ()
get implants and boosters here once implemented
i dont know how boosters and implants work yet, so may have to set item different for them.
- Member Character::GetStandingModified (uint32 fromID, uint32 toID=0)
this needs to be moved to common standings code
these need to use common standings methods for formulas
these need secStatus tests and calcs for negative secStatus
- Member Character::InjectSkillIntoBrain (SkillRef skill)
: build and send proper UserError for CharacterAlreadyKnowsSkill.
config option (later) to check if another character on this account is training a skill. If so, send error, cancel inject and return. (flagID=61).
need to send back a response to the client. need packet specs.
- Member Character::JoinCorporation (const CorpData &data)
- remove this in favor of updating data when changed
- Member Character::LoadBookmarks ()
- this will need more thought/work
- Member Character::SetAccountKey (int32 accountKey)
- remove this in favor of updating data when changed
- Member Character::SetBaseID (uint32 baseID)
- remove this in favor of updating data when changed
- Member CharacterDB::GetCharSelectInfo (uint32 charID)
need to make proper error here.
not sure how to implement these yet...
(allan) reset this once alliances are implemented (already in corpDB)
(allan) this is alliance tickerName. reset this once alliances are implemented
- Member CharacterDB::GetLocationCorporationByCareer (CharacterData &cdata, uint32 &corporationID)
- Here should come a call to Corp??::CharacterJoinToCorp or what the heck... for now we only put it there
- Member CharacterDB::GetTopBounties ()
- config variable?
- Member CharacterDB::ListStationBlueprintItems (uint32 ownerID, uint32 stationID, bool forCorp=false)
- check into this to see if we're querying POS modules also(uk)
- Member CharacterDB::ListStationItems (uint32 ownerID, uint32 stationID)
- check into this to see if we're querying POS modules also
- Member CharacterDB::ListStations (uint32 ownerID, std::ostringstream &flagIDs, bool forCorp=false, bool bpOnly=false)
check into this to see if we're querying POS modules(uk) also. if so, we'll need to revise location checks and somehow fix it so customs offices (and anything else using flagHangar) doesnt show up, which leads to elusive "AttributeError: 'NoneType' object has no attribute 'solarSystemID'" in client when locationID is NOT station
these queries are wrong.... (location and maybe owner)
- Member CharacterDB::ValidateCharName (std::string name)
- this should throw on error
- Member CharacterDB::ValidateCharNameRep (std::string name)
- validStates = {-1: localization.GetByLabel('UI/CharacterCreation/InvalidName/TooShort'), -2: localization.GetByLabel('UI/CharacterCreation/InvalidName/TooLong'), -5: localization.GetByLabel('UI/CharacterCreation/InvalidName/IllegalCharacter'), -6: localization.GetByLabel('UI/CharacterCreation/InvalidName/TooManySpaces'), -7: localization.GetByLabel('UI/CharacterCreation/InvalidName/ConsecutiveSpaces'), -101: localization.GetByLabel('UI/CharacterCreation/InvalidName/Unavailable'), -102: localization.GetByLabel('UI/CharacterCreation/InvalidName/Unavailable')}
- Class CharCerts
- most of these need their own namespace currently moving to specific eve-common/EVE_xxxx.h files
- Member ClassDecodeGenerator::ProcessWString (const TiXmlElement *field)
- update these to use PyRep::StringContent()
- Member CleanUp ()
- the thread system is only implemented for tcp connections at this time.
- Member Client::_VerifyLogin (CryptoChallengePacket &ccp)
- check this character/account for newbie status and revoke as needed before account update.
- Member Client::ResetAfterPodded ()
- destroy all implants check skillpoints vs. clone grade and adjust accordingly. reset skill effects if clone != current SP and skills lost
- Member Client::SpawnNewRookieShip (uint32 stationID)
- create/send mail from scc about lost ship as needed....create char uses this method also
- Member Client::UndockFromStation ()
- this needs a bit of work to match live.... we are really close now. 02Jan19 Undock Request -> GetCriminalTimeStamps -> Undock -> OnItemsChanged (Undocking:xxxxxxxx) -> OnCharNoLongerInStation -> GetAllInfo -> GetNPCStandings -> GetFormations -> AddBalls2 (slim, not ball, wait=true) -> GotoDirection(etc, etc) -> SetState (dmg, ego, ball, slim) ***** 9sec from hitting undock to space view on live. *****
- Member Client::~Client ()
need to separate Player from Client before these can be implemented.... not sure if these are used....may have to finish Client::Client(const Client& oth) :m_TS(oth.m_TS), m_scan(oth.m_scan), pShipSE(oth.pShipSE), pSession(oth.pSession), m_system(oth.SystemMgr()), m_services(oth.services()), m_movePoint(NULL_ORIGIN), m_clientState(Player::State::Idle), m_stateTimer(0), m_ballparkTimer(0), m_pingTimer(PING_INTERVAL_MS), m_scanTimer(0), m_cloakTimer(0), m_fleetTimer(0), m_invulTimer(0), m_clientTimer(0), m_logoutTimer(0), m_jetcanTimer(0), m_sessionTimer(0), m_uncloakTimer(0), m_destinyEventQueue(new PyList()), m_destinyUpdateQueue(new PyList()), m_nextNotifySequence(0) { m_pod = ShipItemRef(nullptr); m_ship = ShipItemRef(nullptr);
- for warping to random point when client logs out in space... 1) check client IsInSpace(?) 2) set timer to delay removing bubble/sysmgr/destiny...or check based on destiny->isstopped() or timer on destiny->ismoving() 3) set current position (DB::chrCharacters.logoutPosition?) initial code in place for warp-in on login 4) generate random point to warp to ** use m_SGP.GetRandPointInSystem(systemID, distance) 5) _warp to random point, but DONT make/update new bubble with entering ship 6) remove client from sysmgr/destiny/server
- Member Colony::AbandonColony ()
- go thru entire pinMap and delete each itemRef to remove pin/link contents from db.
- Member Colony::Colony (PyServiceMgr *mgr, Client *pClient, SystemEntity *pSE)
- : items to work on... import/export tax cost of building timers (launch, run, current, logistics) planet items attribs/effects item->Move() logistics
- Member Colony::CreatePin (uint32 groupID, uint32 pinID, uint32 typeID, double latitude, double longitude)
- will have to write code for effects and checks for pg/cpu/m3/etc for all of these.
- Member Colony::LaunchCommodities (uint32 pinID, std::map< uint16, uint32 > &items)
- check capacities before adding items
- Member Colony::PlanetXfer (uint32 spaceportID, std::map< uint32, uint16 > importItems, std::map< uint32, uint16 > exportItems, double taxRate)
- check for available capy and adjust qty accordingly. if spaceport cant hold entire xfer qty, xfer to full, and return rest back to CO.
- Member Colony::ProcessECUs (bool &save)
as i dont have data on planet resources, and am not tracking depletion, extraction qtys used here are sent from the client during 'survey program' installation, and do not simulate the diminishing returns as shown in the survey program. (testing diminishing returns @ 95%) because of this, the values used here (and all subsquent processes) will be more than shown in client.
verify cycles isnt over program cycle count
set/implement storage capy for pin - PI_Pin.capacity, PI_Pin.quantity
- Member Colony::ProcessPlants (bool &save)
- set/implement storage capy for pin - PI_Pin.capacity, PI_Pin.quantity
- Member Colony::Save ()
- maybe separate these saves
- Member Colony::TransferCommodities (uint32 srcID, uint32 destID, std::map< uint16, uint32 > items)
- this needs to be updated to use process times (for next cycle end)
- Member Command_dogma (Client *who, CommandDB *db, PyServiceMgr *services, const Seperator &args)
- for modules and ships, this will need to call some kind of 'reload' to reset the attrib mem object before new attrib takes affect.
- Member Command_entityspawn (Client *pClient, CommandDB *db, PyServiceMgr *services, const Seperator &args)
- finish this....
- Member Command_getattr (Client *who, CommandDB *db, PyServiceMgr *services, const Seperator &args)
- update to new attrib system if (args.argCount() < 3) { throw CustomError ("Correct Usage: /getattr [itemID] [attributeID]"); } if (!args.isNumber(1)) throw PyException(MakeCustomError("1st argument must be itemID (got %s).", args.arg(1).c_str())); const uint32 itemID = atoi(args.arg(1).c_str());
- Member Command_search (Client *who, CommandDB *db, PyServiceMgr *services, const Seperator &args)
- this file needs to be updated...
- Member Command_spawnn (Client *who, CommandDB *db, PyServiceMgr *services, const Seperator &args)
- need to get faction info here...
- Member Command_tr (Client *pClient, CommandDB *db, PyServiceMgr *services, const Seperator &args)
- this is a good start, but will need a bit more logic to idiot-proof and finish
- Member Command_warpto (Client *pClient, CommandDB *db, PyServiceMgr *services, const Seperator &args)
- finish this....
- Member CommandDB::GetSolarSystem (const char *name)
- update this...
- Member CommandDispatcher::Execute (Client *from, const char *msg)
- fix this shit... if (from->IsInSpace()) { if (!from->DestinyMgr()) from->SendErrorMsg( "Internal Server Error. Ref: ServerError 31110 " ); if (from->DestinyMgr()->IsWarping() && ((from->GetAccountRole() & Acct::Role::GML) != Acct::Role::GML)) { sLog.Error( "CommandDispatcher", " Command Requested by %s while warping. --Access denied.", from->GetName() ); from->SendErrorMsg( "ServerError 31113 - Cannot Request Commands While Warping." ); } }
- Member Concord::DropLoot (uint32 groupID, uint32 owner, uint32 locationID)
- finish this...
- Member ConcordAI::ConcordAI (Concord *who)
- change this to use config file
- Member ConfigDB::GetMapConnections (uint32, bool, bool, bool, uint16, uint16)
- more map data in /eve/client/script/ui/shared/maps/mapcommon.py
- Member ConsoleCommand::Process ()
- make this show in general chat channel
- Member ContainerSE::Activate (int32 effectID)
somehow notify client with one of these effects: effectAnchorDrop = 649 effectAnchorLift = 650 effectAnchorDropForStructures = 1022 effectAnchorLiftForStructures = 1023
many more effects to send for.....look into later. effectOnlineForStructures = 901
- Member CorporationDB::AddCorporation (Call_AddCorporation &corpInfo, Client *pClient, uint32 &corpID)
- allowedMemberRaceIDs will need to be bitwise...it is a flag. also called 'raceMask' and isnt implemented yet.
- Member CorporationDB::CreateCorporationCreatePacket (OnCorporationChanged &cc, uint32 oldCorpID, uint32 newCorpID)
- these need to be updated
- Member CorporationDB::GetAssetInventory (uint32 corpID, EVEItemFlags locFlag, const char *flags)
- this can be done better revisit after everything is working and sorted
- Member CorporationDB::GetCorpData (CorpData &data)
- do we want to put shares here?
- Member CorporationDB::ListStationOwners (uint32 station_id)
- this needs work....
- Member CorporationDB::MoveShares (uint32 ownerID, uint32 corpID, Call_MoveShares &args)
update this to use CorpNotify()
pClient may be null here....
- Member CorporationDB::UpdateLogo (uint32 corpID, const Call_UpdateLogo &upd, PyDict *notif)
- update this
- Member CrimeWatch::CrimeWatch ()
- set up config variables for timers here
- Member CustomsSE::Killed (Damage &fatal_blow)
check for tower/tcu/sbu/jammer and make killmail
send pos mail/notification to corp members
send pos mail/notification to corp members
- Member CustomsSE::MakeSlimItem ()
- (Allan) *Timestamp will need to be set to time current state is started.
- Member CustomsSE::SetPlanet (uint32 planetID)
- finish this...not sure how yet.
- Member CynoModule::CanActivate ()
- check for active cyno jammer
- Member DBResultToCIndexedRowset (DBQueryResult &result, uint32 key_index)
- Mem leak.
header
never freed
- Member DBResultToCRowset (DBQueryResult &result)
- Mem leak.
header
never freed
- Member DestinyManager::CheckBump ()
- add data and checks for each ship bumped to give single bump msg for each ship combo without spamming their overview
- Member DestinyManager::IsTargetInvalid ()
- this needs a good lookover
- Member DestinyManager::IsTurn ()
- revisit this to verify angle calcs
- Member DestinyManager::Orbit ()
- will have to set/reset orbit time once actual orbit is started for proper radian setting
- Member DestinyManager::SendCloakFx (bool apply=false, bool module=false) const
- verify 'start' and 'active' here...
- Member DestinyManager::TractorBeamStart (SystemEntity *pShipSE, EvilNumber speed)
- need to update this
- Member DestinyManager::UpdateShipVariables ()
- check for movement when fleet boosts are applied and this is called
- Member DroneAIMgr::AttackTarget (SystemEntity *pTarget)
not all drones use lazors...fix this
this should be a separate config value
- Member DroneSE::DroneSE (InventoryItemRef drone, PyServiceMgr &services, SystemManager *pSystem, const FactionData &data)
- update attribs from char skills here....it's not done by Fx system
- Member DroneSE::Process ()
- (allan) finish drone AI and processing
- Member DroneSE::TargetAdded (SystemEntity *who)
- (Allan) will need code once drones are implemented
- Member DroneSE::TargetedLost (SystemEntity *who)
- (Allan) will need code once drones are implemented
- Member DungeonMgr::Create (uint32 templateID, CosmicSignature &sig)
- make specific table for dungeon items: dungeonID, systemID, entity shit if we decide to keep them.
- Member DungeonMgr::CreateDeco (uint32 templateID, CosmicSignature &sig)
- this needs work for proper sizing of deco.
- Member DungeonMgr::Load ()
- this will need more work as the system matures... for(auto dungeon : dungeons) { InventoryItemRef dungeonRef = m_system->itemFactory()->GetItem( dungeon.dungeonID ); if( !dungeonRef ) { _log(COSMIC_MGR__WARNING, "DungeonMgr::Load() - Unable to spawn dungeon item #%u:'%s' of type %u.", dungeon.dungeonID, dungeon.typeID); continue; } AsteroidSE* asteroidObj = new AsteroidSE( dungeonRef, *(m_system->GetServiceMgr()), m_system ); if( !asteroidObj ) { _log(COSMIC_MGR__WARNING, "DungeonMgr::Load() - Unable to spawn dungeon entity #%u:'%s' of type %u.", dungeon.dungeonID, dungeon.typeID); continue; } _log(COSMIC_MGR__TRACE, "DungeonMgr::Load() - Loaded dungeon %u, type %u for %s(%u)", dungeon.dungeonID, dungeon.typeID, m_system->GetName(), m_systemID ); sBubbleMgr.Add( asteroidObj ); sDunDataMgr.AddDungeon(std::pair<uint32, Dungeon::ActiveData*>(m_system->GetID(), dungeon)); }
- Member DynamicEntityFactory::BuildEntity (SystemManager &pSysMgr, const DBSystemDynamicEntity &entity)
make error msg here
make error msg here
make error msg here
make error msg here
make error msg here
make error msg here
make error msg here
(Allan) need to separate these by class to create proper SE (started)
make error msg here
make error msg here
make error msg here
make error msg here
this needs its own class....there are 477 types, spawning everything..rats, modules, items, etc.
make error msg here
make error msg here
make error msg here
make error msg here
make error msg here
make error msg here
- Member DynamicSystemEntity::UpdateDamage ()
- (Allan) needs more work
- Member EntityList::Broadcast (const char *notifyType, const char *idType, PyTuple **payload) const
- this shit needs removal, after new notification methods are completed
- Member EntityList::CorpNotify (uint32 corpID, uint8 bCastType, const char *notifyType, const char *idType, PyTuple *payload) const
- this works very well, and will be used as template for other notification methods
- Member EntityList::FindClientByName (const char *name) const
- Note
- NOTE: TODO: HACK: the Find* methods below can get very expensive for many players
- Member EntityList::Process ()
- test for adding OpenMP here to enable MP per system.
- Member EntityList::RegisterSID (int64 &sessionID)
- this needs more work. hacked for now...
- Member EntityList::Shutdown ()
- finish this.... halt server called from admin client. (gm command ingame) call d'tor on all connected clients server run loop will exit after control is returned from this function, which will clean up remaining items.
- Member EntityService::CreateBoundObject (Client *pClient, const PyRep *bind_args)
- will need to make sure this object is deleted when changing systems
- Namespace EVEDB
- this is still missing groups
- Member EvEMath::Market::SalesTax (float baseSalesTax, uint8 accountingLvl=0, uint8 taxEvasionLvl=0)
- add skillTaxEvasion to this formula; its not calculated in client...
- Class EvilNumber
- try to create a performance test for this.
- Member EvilNumber::_Divide (const EvilNumber &val1, const EvilNumber &val2)
- handle "int(2) / int(4) = float(0.5)" in a fast enough way
- Member FactoryDB::AssemblyLinesGet (const uint32 containerID)
- need to add check/query for POS assembly modules here
- Member FactoryDB::AssemblyLinesSelectAlliance (const int32 allianceID)
- need to add check/query for POS assembly modules here
- Member FactoryDB::AssemblyLinesSelectCorporation (const uint32 corporationID)
- need to add check/query for POS assembly modules here
- Member FactoryDB::GetAssemblyLineProperties (const uint32 assemblyLineID, Character *pChar, Rsp_InstallJob &into, bool isCorpJob=false)
need to add check/query for POS assembly modules here
this shit will have to be verified for negative standings
this shit will have to be verified for negative standings
- Member FactoryDB::GetAssemblyLineRestrictions (const int32 assemblyLineID, EvERam::LineRestrictions &data)
- need to add check/query for POS assembly modules here
- Member FactoryDB::IsProducableBy (const uint32 assemblyLineID, const ItemType *pType)
- is there is a better way to do this??
- Member FleetService::CreateFleetAdvert (uint32 fleetID, FleetAdvert data)
- update inviteScope to use names
- Member FleetService::GetBoosterData (uint32 fleetID, uint16 &length)
- add system checks in here
- Member FleetService::SetMOTD (uint32 fleetID, std::string motd)
- update motd in fleet chat window (which is not coded yet in LSC system)
- Member FxProc::ApplyEffects (InventoryItem *pItem, Character *pChar, ShipItem *pShip, bool update=false)
- this needs more work
- Member FxProc::ParseExpression (InventoryItem *pItem, Expression expression, fxData &data, GenericModule *pMod=nullptr)
- if this is used, change the Put* methods to use ModuleItem int8 value = atoi(expression.expressionValue.c_str()); if (module) { if (value == 0) data.srcRef->PutOffline(); if (value == 1) data.srcRef->PutOnline(isRig); return; // we are done at this point }
- Member ImageServer::FallbackURL
- boost is the only system in this code that does NOT leak
- Member ImageServer::ReportNewCharacter (uint32 creatorAccountID, uint32 characterID)
need to get client here, and send msg about emailing char pic and name to charP.nosp@m.ics@.nosp@m.eve.a.nosp@m.lasi.nosp@m.ya.ne.nosp@m.t for manual insertion
we will need to make size 64 and size 40 images, and possibably 128/256 of char portaits
- Class InvBrokerBound
update this code to use throws for client msgs also
many unfinished calls in this file....
- Member Inventory::GetCapacity (EVEItemFlags flag) const
- finish these for POS
- Member Inventory::IsEmptyByFlag (EVEItemFlags flag) const
- update to use m_usedVolumeByFlag container?
- Member Inventory::RemoveItem (InventoryItemRef iRef)
- Note
- this isnt working right, and im not sure why yet...
- Member InventoryDB::GetCelestialObject (uint32 celestialID, CelestialObjectData &into)
- update these below to use static data manager
- Member InventoryDB::GetCharacterData (uint32 characterID, CharacterData &into)
- fix these
- Member InventoryDB::GetCharacterType (uint8 bloodlineID, CharacterTypeData &into)
- most of this needs to go into static data
- Member InventoryItem::Populate (Rsp_CommonGetInfo_Entry &into)
this may need to be reworked once POS and Outposts are implemented.
fix this once we start tracking effects
- Member InventoryItem::Rename (std::string name)
- if renaming a POS or other space object, we'll need to BubblecastSendNotification instead of CorpNotify
- Member InventoryItem::SpawnTemp (ItemData &data)
- will need to update this to get 'proper' item creation for temps...
- Member ItemFactory::GetNextNPCID ()
add PI item spawners here
add Sleeper item spawners here
- Member ItemSystemEntity::MakeSlimItem ()
- finish rotation data Large_Collidable_Structure Large_Collidable_Ship Large_Collidable_Object PyTuple* rotation = new PyTuple(3); rotation->SetItem(0, new PyFloat(0)); rotation->SetItem(1, new PyFloat(0)); rotation->SetItem(2, new PyFloat(0)); slim->SetItemString("dunRotation", rotation);
- Member ItemType::_Load (uint16 typeID)
- this needs work. other items we need are "non-published"
- Member LSCChannel::JoinChannel (Client *pClient)
- determine moderator/other rights for given char in this channel and set Mode accordingly
- Member LSCChannel::LeaveChannel (Client *pClient)
- delete channel from system if non-static and empty
- Member LSCDB::GetChannelNames (uint32 charID, std::vector< std::string > &names)
- this entire file needs review
- Member LSCDB::GetNextAvailableChannelID ()
- fix this shit
- Member LSCService::BASE_CHANNEL_ID
- LSC system todo list... to implement... channel password private chat invite more
- Member LSCService::CreateSystemChannel (int32 channelID)
- i know this isnt used much, but wtf was i thinking hitting db for names, when they are in static data??
- Member LSCService::SystemUnload (uint32 systemID, uint32 constID, uint32 regionID)
- find a way to track usages of region and const channels to delete when no longer used
- Member MACHONETMSG_TYPE
- this file really isnt named correctly. move like items into new files named accordingly.
- Member MACHONETMSG_TYPE_NAMES [MACHONETMSG_TYPE_COUNT]
- update this to unique_ptr/shared_ptr if possible shared_ptr<T> p(new Y); or make_unique<>()
- Member main (int argc, char *argv[])
- update this to have a ShutDown() method, with these items. also look into calling it when a signal is caught, for cleanup.
- Note
- these are order-dependent...
the thread system is only implemented for tcp connections at this time.
- Member MapData::GetMissionDestination (Agent *pAgent, uint8 misionType, MissionOffer &offer)
not sure why this is empty, but have segfaults from empty vector.
make function to find route from origin to constellation/region jump point.
make function to find route from origin to constellation/region jump point.
- Member MarketDB::UpdateHistory ()
- this needs work for better logic. may need to pull data from transactions
- Member MarketMgr::Close ()
- put a save method here which will save anything changed before shutdown
- Member MarketMgr::ExecuteBuyOrder (Client *seller, uint32 orderID, InventoryItemRef iRef, Call_PlaceCharOrder &args, uint16 accountKey=Account::KeyType::Cash)
- take off market overhead fees
- Member MarketMgr::ExecuteSellOrder (Client *buyer, uint32 orderID, Call_PlaceCharOrder &args)
get/implement accountKey here....
for corp shit, implement accountKey
for corp shit, implement accountKey
- Member MarketMgr::GetNewPriceHistory (uint32 regionID, uint32 typeID)
- this doesnt belong here...
- Member MarketMgr::GetOldPriceHistory (uint32 regionID, uint32 typeID)
- this doesnt belong here...
- Member MarketMgr::UpdatePriceHistory ()
this doesnt belong here...
this doesnt belong here...
this doesnt belong here...
- Class MarshalStringTable
- when the object puzzle is solved this class should be available to every thread. it doesn't take much mem. So it means the mutexes can be removed when every thread has its own resource.
- Member MiningLaser::Depleted (std::multimap< float, MiningLaser * > &mMap)
- check for mining drones here!!!
- Member MiningLaser::ProcessCycle (bool abort=false)
- verify for ice and gas
- Member Missile::MakeSlimItem ()
(allan) fix this
(allan) fix this
(allan) fix this
- Member Missile::Missile (InventoryItemRef self, PyServiceMgr &services, SystemManager *pSystem, InventoryItemRef modRef, SystemEntity *tSE, SystemEntity *pSE, GenericModule *pMod=nullptr)
- update this when rack overloading is implemented...
- Member MissionDataMgr::CreateMissionOffer (uint8 typeID, uint8 level, uint8 raceID, bool important, MissionOffer &data)
- this will need to be adjusted for raceID eventually
- Member ModuleManager::CharacterBoardingShip ()
- check this. may have to rework...do rigs and subsystems have online attrib set?
- Member ModuleManager::UnloadAllModules ()
- look into this....is this right?
- Member ModuleManager::UpdateModules (EVEItemFlags flag)
- figure out what needs to be done here and implement it.
- Member ModuleManager::UpdateModules (std::vector< uint32 > modVec)
- check this. may have to rework
- Member MoonSE::LoadExtras ()
- use this to initialize moongoo data, create planet manager for moon, or whatever else i decide is needed for moon management this is called after SE is created.
- Member MoonSE::MoonSE (InventoryItemRef self, PyServiceMgr &services, SystemManager *system)
- finish moon resources...this is hacked
- Class MulticastTarget
- can loc/corp be changed to single variable?
- Member NPC::CmdDropLoot ()
- finish this
- Member NPCAIMgr::NPCAIMgr (NPC *who)
ai update ideas bubble call SomeFunction to tell ai of new ship arriving in bubble method to use npc's preferred sig radius for targets finish flee and signal action methods (and determine who can use them and when)
- this should take system sov, npc anomalies, destruction speed, and pirate faction add methods to check target/targeter warping out and chance of npc following (and possibly calling backup)
all of these need to be verified and/or updated
change these next 2 (rep and boost) to boolean to avoid timer creation/checks
- Member NPCAIMgr::SetChasing (SystemEntity *pSE)
- implement chase timer using entityChaseMaxDuration to limit chase time.
- Member NPCAIMgr::SetIdle ()
- need to clear out targets here
- Member NPCAIMgr::SetWander ()
- figure out a way for npc to wander 'aimlessly' around their bubble
- Member NPCAIMgr::Targeted (SystemEntity *pSE)
- determine if new targetedby entity is weaker than current target. use optimalSigRadius to test for 'optimal' target
- Member NPCAIMgr::TargetLost (SystemEntity *pSE)
- engage weakest target in current list
- Member NPCAIMgr::WarpOut ()
- eventually, this will check with anomaly mgr for possible npc hideouts in system based on npc faction, system, players in system, players in bubble, and more later to determine a warpto target for this npc, or this group
- Member ObjCacheDB::ObjCacheDB ()
- this needs to be updated a bit...
- Member ObjCacheService::LoginCachableObjects []
- this needs to be fixed. is currently unused, but intended to be a BulkData data service. the "config*" and "char*" files are intended to be sent in BulkData the rest of this file isnt fully understood (by me) or implemented.
- Member ObjectSystemEntity::Killed (Damage &fatal_blow)
- test and complete this to null current customs office for this planet ...
- Member PIDataMgr::GetProgramResultInfo (Colony *pColony, uint32 pinID, uint16 typeID, PyList *heads, float headRadius)
- get head interference and calculate decayFactor, noiseFactor and overlapFactor for heads.
- Class Planet
- update this to create a planet item instead of the default celestial item
- Member Planet::Planet ()
- will need to make an InventoryItem class specific for planets here eventually
- Member PlanetDB::DeleteColony (uint32 ccPinID, uint32 planetID, uint32 charID)
- remove items from entity* table...
- Class PlanetResourceData
- these need their own namespace
- Member PlanetSE::CreateCustomsOffice ()
- will need to write this code and make it play nice with everything else. a CO will be a special container as a CustomsSE, linked to the planet it orbits, and any colony on that planet. there is only one CO per planet, but ALL chars with a colony on that planet can access their items on the same CO the CO will load all items when it loads, but will need checks on "view items" or "open container" to ONLY send items owned by calling char, or NONE for chars that dont have a colony on that planet. i dont know where/how to do that yet...will need testing CO can go into reinforced mode, like towers (hint: use same code)
- Member PlanetSE::GetResourceData (Call_ResourceDataDict &dict)
- this needs a minor rewrite....bands are dictated by client request. bufferData is random fill based on bands, but kept per planet will have to create a method to fill buffer with random values, rather than fill with single value the full 30 band data buffer will be created on planet creation for each resource, and the "bands" are the "layers" of the resource, per se, with more layers giving higher degree of accuracy. the client sends depth request, and that will determine the bands and buffer size to return. the requested bands will have to be taken from the full 30-band data buffer, as needed. this resource data MAY change over the course of the running server, but not decided how/when/why yet.
- Member PlanetSE::LoadExtras ()
use this to initialize planet data, create planet manager, or whatever else i decide is needed for planet management this is called after SE is created.
save planet data after creation. change data every x hours?days?
save planet data after creation. change data every x hours?days?
- Member PosMgrDB::GetCorpControlTowers (uint32 corpID)
- update this to pull from tower data table first to avoid iterating thru entity
- Member ProbeSE::RecoverProbe (PyList *list)
- verify probe status and controller before adding to "recover success list"
- Member Profiler::PrintProfile ()
- figure out how to color this based on times....R,Y,G,M,B,W
- Member PyCallable_Make_InnerDispatcher (BulkMgrService) BulkMgrService
this system will need to work with objectCache, as those ARE the bulkdata files sent to the client. they are already packed and loaded into the server. this system ive created for bulkData is redundant. will have to look into sorting/sending to client eventually, using hash comparison to determine what files to send. (if possible) for now, we'll leave this as-is, because it seems to be working ok, and i MAY NOT have complete data for all the bulkfiles
used by client...
used by client...
- Member PyCallable_Make_InnerDispatcher (ReprocessingService) PyCallable_Make_InnerDispatcher(ReprocessingServiceBound) ReprocessingService
- update this entire file...
- Member PyCallable_Make_InnerDispatcher (RamProxyService) RamProxyService
- go thru and update/optimize this class
- Member PyRep::PyRep (PyType t)
- this entire class should be better thought-out for class d'tors and object lifetime however, i dont fully understand it enough to implement better memMgmt at this time -allan 10Jan19
- Member RamMethods::EncodeBillOfMaterials (const std::vector< EvERam::RequiredItem > &reqItems, float materialMultiplier, float charMaterialMultiplier, uint32 runs, BillOfMaterials &into)
- update this shit.....
- Member RamMethods::LinePermissionCheck (Client *const pClient, const Call_InstallJob &args)
- corp secStatus???? didnt know that was a thing.
- Member RamMethods::LocationRolesCheck (Client *const pClient, const CorpPathElement &data)
determine what roles are required here and test
finish this.
finish this.
- Member ReprocessingServiceBound::CalcReprocessingEfficiency (const Client *pClient, InventoryItemRef item=InventoryItemRef(nullptr)) const
- check for implants here ... once they're working
- Member ReprocessingServiceBound::GetQuote (uint32 itemID, Client *pClient)
- update this for item location - need to verify corp roles are being set correctly
- Member ReprocessingServiceBound::GetStanding (const Client *pClient) const
- should this be moved to standings code? yes!!
- Member Scan::GetSignalData (SignalData &data, std::vector< ProbeSE * > &probeVec)
- make sure this 'reported' position is within probe boundary
- Member Scan::ShipScanResult ()
- see client code to verify what it expects, and what it can calculate
- Member SearchDB::QuickQuery (std::string string, std::vector< int > *searchID, uint32 charID, bool hideNPC=false, bool onlyAltName=false)
- i dont remember what this was for, but need to finish it anyway
- Member SentryAI::Process ()
- this needs work if (cur->IsLogin() or cur->IsInvul() or cur->InPod()) continue; if (!cur->GetShipTarget()) continue; if ((!cur->GetShipTarget()->DestinyMgr()) or (!cur->GetShipTarget()->SysBubble())) // this shouldnt be needed, but whatever... continue; pDestiny = cur->GetShipTarget()->DestinyMgr(); if (pDestiny->IsCloaked() or pDestiny->IsWarping()) continue; if (m_npc->GetPosition().distance(cur->GetShipTarget()->GetPosition()) > m_sightRange) continue; Target(cur->GetShipTarget());
- Member SentryAI::Targeted (SystemEntity *by_who)
- determine if new targetedby entity is weaker than current target. use optimalSigRadius to test for 'optimal' target
- Member SentryAI::TargetLost (SystemEntity *by_who)
- engage weakest target in current list
- Member ServiceDB::PrimeOwners (std::vector< int32 > &itemIDs)
- look into this...may be wrong
- Class ShaModule
- move code to cpp file, clean and comment.
- Member ShipDB::GetShipInsurancePayout (uint32 shipID)
- send mail to owner about no insurance, so limited payout. from SCC
- Member ShipItem::AddItem (InventoryItemRef iRef)
- update destiny mass after adding item
- Member ShipItem::GetRemainingVolumeByFlag (EVEItemFlags flag) const
- this will need more work to correctly check hold capacity for offline/unloaded ships
- Member ShipItem::GetShipDNA ()
- update this for multiples of modules
- Member ShipItem::RepairModules (std::vector< InventoryItemRef > &itemRefVec, float fraction)
- this isnt right....needs update
- Member ShipItem::VerifyHoldType (EVEItemFlags flag, InventoryItemRef iRef, Client *pClient=nullptr)
this is an error
need to figure out how to separate ships into s/m/l/i for these....
- Member ShipSE::Killed (Damage &fatal_blow)
make error here
make error msg here
(allan) check for faction/corp status modifiers here.
- Member ShipSE::Process ()
- m_self is NOT being populated for non-piloted ships...check later
- Member ShipService::CreateBoundObject (Client *pClient, const PyRep *bind_args)
- do we need more data here?
- Member Skill::GetCurrentSP (Character *ch, int64 startTime=0)
- this isnt completely right....
- Member SkillMgrBound::Release ()
- redesign this so this is not needed
- Member SolarSystem::_LoadItem (uint32 solarSystemID, const ItemType &type, const ItemData &data)
- is this data in static data? if not, do we continue db hit?
- Member SolarSystemData::SolarSystemData (const GPoint &_minPos=GPoint(0, 0, 0), const GPoint &_maxPos=GPoint(0, 0, 0), double _luminosity=0.0, bool _border=false, bool _fringe=false, bool _corridor=false, bool _hub=false, bool _international=false, bool _regional=false, bool _constellation=false, double _security=0.0, uint32 _factionID=0, double _radius=0.0, uint32 _sunTypeID=0, const char *_securityClass="")
- update this to remove redundant SolarSystemData and move to POD SystemData and load with sDataMgr
- Member SovereigntyDataMgr::Close ()
- put a save method here which will save anything changed before shutdown
- Member SpawnMgr::MakeSpawn (SystemBubble *pBubble, uint32 factionID, uint8 sClass, uint8 level, bool anomaly=false)
- make method to get/use template positioning data for spawns here
- Member SpawnMgr::PrepSpawn (SystemBubble *pBubble, uint8 sClass=Spawn::Class::None, uint8 level=0)
test for overseer wave and spawn correct overseer for this anomaly
make templates/functions/whatever for sending msgs to players local for waves
make templates/functions/whatever for sending msgs to players local for waves
- Member SpawnMgr::SpawnMgr (SystemManager *mgr, PyServiceMgr &svc)
this can be updated to spawn mission, anomaly and deadspace rats. change all roidRat to somethingelse to better explain/describe the maps and how they're used. add objects for mission, anomaly and deadspace rats as needed to aid in tracking/deleting.
this class needs a bit more tweaking to work as designed...may/may not spawn all types correctly at this time.
this class needs a bit more tweaking to work as designed...may/may not spawn all types correctly at this time.
- Member StandingDB::GetStandingTransactions (Call_GetStandingTransactions &args)
- update this for direction
- Member StandingDB::PrimeCharStandings (uint32 charID)
- not sure about this yet.... wip ....not used?
- Member StandingDB::SaveStandingChanges (uint32 fromID, uint32 toID, uint16 eventType, float amount, std::string msg)
- implement repStandingChanges after standing system is working
- Member StargateSE::MakeSlimItem ()
finish gate rotation data PyTuple* rotation = new PyTuple(3); rotation->SetItem(0, new PyFloat(0)); rotation->SetItem(1, new PyFloat(0)); rotation->SetItem(2, new PyFloat(0));
(allan) make function to lookup controlling faction id for this
- Member StaticDataMgr::GetOwnerName (int32 ownerID)
- finish this.
- Member StaticDataMgr::SetBPMatlType (int8 catID, uint16 typeID, uint16 prodID)
- this needs work. dunno how to remove 'extra' materials from this list
- Member StationDataMgr::Close ()
- put a save method here which will save anything changed before shutdown
- Member StationDataMgr::GetOwnerID (uint32 stationID)
- update this for POS modules and Outposts
- Member StationOffice::Spawn (ItemData &idata, OfficeData &odata)
- maybe later make config option to load corp hangars on station load.
- Member StationSE::EncodeDestiny (Buffer &into)
- 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 );
- Member StructureItem::type () const
- (Allan) will probably need to rewrite all these, too. Public fields:
- Member StructureSE::Activate (int32 effectID)
- check for other modules changing state...only allow one at a time
- Member StructureSE::EncodeDestiny (Buffer &into)
- these may need more work....
- Member StructureSE::Init ()
(Allan) do we need anything else here? check for and set system-wide cyno jammer? as we're nowhere even close to needing/using cyno, this can wait note: set generator active in mapDynamicData on activation of this module
check for timestamp here and see if any processes are running. if so, set varaibles accordingly and continue.
check for timestamp here and see if any processes are running. if so, set varaibles accordingly and continue.
- Member StructureSE::Killed (Damage &fatal_blow)
check for tower/tcu/sbu/jammer and make killmail
send pos mail/notification to corp members
send pos mail/notification to corp members
- Member StructureSE::MakeSlimItem ()
- (Allan) *Timestamp will need to be set to time current state is started.
- Member StructureSE::PullAnchor ()
check for other modules changing state...only allow one at a time
make sure there are NO modules within the SOI of tower if Unanchoring tower.
make sure there are NO modules within the SOI of tower if Unanchoring tower.
- Member StructureSE::SetAnchor (Client *pClient, GPoint &pos)
- check for other modules changing state...only allow one at a time
- Member StructureSE::StructureSE (StructureItemRef structure, PyServiceMgr &services, SystemManager *system, const FactionData &data)
- this is direction from customs office to planet and set when co is created
- Member SuperWeapon::SuperWeapon (InventoryItemRef item, ShipItemRef ship)
- this entire file needs rework to update with current code
- Member SystemEntity::Abandon ()
- should this have a slimupdate or bubblecast or something?
- Member SystemEntity::ApplyDamage (Damage &d)
this works, but still needs work.... if (HasPilot()) if (damageID > 2) { float uniformity = m_self->GetAttribute(AttrShieldUniformity).get_float(); uniformity += (0.05 * GetPilot()->GetChar()->GetSkillLevel(EvESkill::TacticalShieldManipulation)); if ((available_shield /m_self->GetAttribute(AttrShieldCapacity).get_float()) < uniformity) { float bleedthru = (d.GetTotal() * 0.01f); m_self->SetAttribute(AttrArmorDamage, (bleedthru + m_self->GetAttribute(AttrArmorDamage).get_float())); shield_damage -= bleedthru; } }
still need to check/add detailed dmg msgs
- Member SystemEntity::AwardSecurityStatus (InventoryItemRef iRef, Character *pChar)
(allan) this doesnt need to be here
msg need work for details to appear correctly. currently working, but could be better. (incomplete, but working) see data in eve/common/script/util/eveFormat.py:300 for details
- Member SystemGPoint::Get2RandPlanets (uint32 systemID)
- finish this
- Member SystemGPoint::Get3RandPlanets (uint32 systemID)
- finish this
- Member SystemGPoint::GetPlanets (uint32 systemID)
- move this into MapData class
- Member SystemManager::DScan (int64 range, const GPoint &pos, std::vector< SystemEntity * > &vector)
- finish this for correct dscan entity reporting all ships (not cloaked) all celestials all structures wrecks drones probes (core and combat only, i think) spheres and bubbles (ewar shit) some npcs ('normal' like rats dont show) clouds(groups 227 & 711) and asteroids are coded in client but not included here (yet) group 227 only shown if role_mod or role_gml
- Member SystemManager::GetAllEntities (std::vector< CosmicSignature > &vector)
this will need to put entity's sigID into anomaly map for Scan::WarpTo object
this should be updated/current/correct in system's AnomalyMgr. try to get data from there for this list
- Member SystemManager::LoadSystemStatics ()
- (Allan) outposts are group::station - may need to hack this
- Member SystemManager::MakeSetState (const SystemBubble *pBubble, SetState &into) const
(allan) this needs more work. should be done same as damageState. 28.2.16 ss.aggressors is for players undocking/jumping with aggression (uses GetCriminalTimeStamps) ** see notes in Client::GetAggressors() if (cur.second->HasPilot() and cur.second->HasAggression()) ss.aggressors[ cur.first ] = cur.second->GetAggressors());
(allan) to be written -jumpbridges is a PyList
- Member SystemManager::PayBounties ()
this needs more work
this isnt right...which is why it's not working. see code in client/script/ui/shared/neocom/wallet.py for more info. (lots to look over. no time tonite.) more data....
- Member SystemManager::UnloadSystem ()
- finish this for lsc
- Member TargetManager::TargetManager (SystemEntity *self)
- (Allan) add target lost and target fail reasons. maybe make common function, and pass "add", "clear", "otheradd", reason, etc ??
- Member Threading::Process ()
- begin basic thread pool for processing sockets, using select()
- Member Threading::Threading ()
- the entire concurrency idea needs work throughout evemu. currently, it uses posix threads, boost, and shared_pointer. they all need updating
- Member TowerSE::Init ()
- will have to check if Online or Operating in these two cases, remove resources based on time running. if resources run out, reset state and set timer accordingly. if reinforced, remove resources and continue until timer runs out.
- Member TowerSE::InitData ()
- get sov holder here.
- Member TowerSE::SetOnline ()
- determine fuel supply and make calendar event for expiration
- Member TowerSE::TowerSE (StructureItemRef structure, PyServiceMgr &services, SystemManager *system, const FactionData &fData)
- (Allan) this class needs more research to finish see pics in ::GamePC/G/games/EvE/misc/POS flagStructureActive = 144, flagStructureInactive = 145, AttrOperationConsumptionRate = 687, AttrReinforcedConsumptionRate = 688, AttrResourceReinforced1Type = 694, AttrResourceReinforced2Type = 695, AttrResourceReinforced3Type = 696, AttrResourceReinforced4Type = 697, AttrResourceReinforced5Type = 698, AttrResourceReinforced1Quantity = 699, AttrResourceReinforced2Quantity = 700, AttrResourceReinforced3Quantity = 701, AttrResourceReinforced4Quantity = 703, AttrResourceReinforced5Quantity = 704, AttrResourceOnline1Type = 705, AttrResourceOnline2Type = 706, AttrResourceOnline3Type = 707, AttrResourceOnline4Type = 708, many other attributes for towers and their modules..... AttrControlTowerMissileVelocityBonus = 792, AttrControlTowerSize = 1031, AttrAnchoringSecurityLevelMax = 1032, AttrAnchoringRequiresSovereignty = 1033, AttrControlTowerMinimumDistance = 1165, AttrPosPlayerControlStructure = 1167, AttrIsIncapacitated = 1168, AttrPosStructureControlAmount = 1174, AttrOnliningRequiresSovereigntyLevel = 1185, AttrPosAnchoredPerSolarSystemAmount = 1195, AttrPosStructureControlDistanceMax = 1214, AttrAnchoringRequiresSovereigntyLevel = 1215, AttrHarvesterType = 709, AttrHarvesterQuality = 710, AttrMoonAnchorDistance = 711, AttrUsageDamagePercent = 712, AttrConsumptionType = 713, AttrConsumptionQuantity = 714, AttrMaxOperationalDistance = 715, for sma, hangar, etc AttrMaxOperationalUsers = 716, for sma, hangar, etc AttrRefiningYieldMultiplier = 717, AttrOperationalDuration = 719, AttrRefineryCapacity = 720, AttrRefiningDelayMultiplier = 721, AttrPosControlTowerPeriod = 722, AttrMoonMiningAmount = 726, AttrControlTowerLaserDamageBonus = 728, AttrControlTowerLaserOptimalBonus = 750, AttrControlTowerHybridOptimalBonus = 751, AttrControlTowerProjectileOptimalBonus = 752, AttrControlTowerProjectileFallOffBonus = 753, AttrControlTowerProjectileROFBonus = 754, AttrControlTowerMissileROFBonus = 755, AttrControlTowerMoonHarvesterCPUBonus = 756, AttrControlTowerSiloCapacityBonus = 757, AttrControlTowerLaserProximityRangeBonus = 760, AttrControlTowerProjectileProximityRangeBonus = 761, AttrControlTowerHybridProximityRangeBonus = 762, AttrMaxGroupActive = 763, AttrControlTowerEwRofBonus = 764, AttrScanRange = 765, AttrControlTowerHybridDamageBonus = 766, AttrTrackingSpeedBonus = 767, AttrMaxRangeBonus2 = 769, AttrControlTowerEwTargetSwitchDelayBonus = 770, AttrAmmoCapacity = 771, AttrActivationBlocked = 1349, AttrActivationBlockedStrenght = 1350, AttrPosCargobayAcceptType = 1351, AttrPosCargobayAcceptGroup = 1352,
- Member TradeService::CreateBoundObject (Client *pClient, const PyRep *bind_args)
- update to multiple trade sessions per client. current code only allows one at a time.
- Member WeaponSE::Process ()
- (Allan) will need some form of AI to engage defensive modules if/when any structure is attacked
- Member WreckSE::GetOwnerBounty ()
- (allan) finish this