15 #include "../eve-common/EVE_Character.h"
34 m_entryTypes(nullptr),
35 m_factionInfo(nullptr),
36 m_npcDivisions(nullptr)
79 sLog.Warning(
" StaticDataMgr",
"Static Data Manager has been closed." );
86 sLog.Blue(
" StaticDataMgr",
"Static Data Manager Initialized.");
123 m_bpMatlData.clear();
133 sLog.Error(
" StaticDataMgr",
"m_keyMap is null");
137 sLog.Error(
" StaticDataMgr",
"m_agents is null");
141 sLog.Error(
" StaticDataMgr",
"m_operands is null");
145 sLog.Error(
" StaticDataMgr",
"m_billTypes is null");
149 sLog.Error(
" StaticDataMgr",
"m_entryTypes is null");
153 sLog.Error(
" StaticDataMgr",
"m_npcDivisions is null");
155 sLog.Cyan(
" StaticDataMgr",
"Base Static data sets loaded in %.3fms.", (
GetTimeMSeconds() - startTime));
158 GetFactionInfoRsp rsp;
169 sLog.Error(
" StaticDataMgr",
"m_factionInfo is null");
171 sLog.Cyan(
" StaticDataMgr",
"Faction data sets loaded in %.3fms.", (
GetTimeMSeconds() - startTime));
179 while (res->
GetRow(row)) {
187 while (res->
GetRow(row)) {
200 while (res->
GetRow(row)) {
221 while (res->
GetRow(row)) {
247 while (res->
GetRow(row)) {
264 while (res->
GetRow(row)) {
272 while (res->
GetRow(row)) {
288 while (res->
GetRow(row)) {
293 while (res->
GetRow(row)) {
298 while (res->
GetRow(row)) {
303 while (res->
GetRow(row)) {
308 std::map<uint32, std::vector<uint32>>::iterator itr =
m_stationList.begin();
312 itr->second.push_back(cur.first);
314 std::vector<uint32> sVec;
315 sVec.push_back(cur.first);
323 while (res->
GetRow(row)) {
339 while (res->
GetRow(row)) {
347 while (res->
GetRow(row)) {
352 while (res->
GetRow(row)) {
357 while (res->
GetRow(row)) {
362 while (res->
GetRow(row)) {
367 while (res->
GetRow(row)) {
372 while (res->
GetRow(row)) {
377 while (res->
GetRow(row)) {
382 while (res->
GetRow(row)) {
390 while (res->
GetRow(row)) {
404 while (res->
GetRow(row)) {
427 sLog.Cyan(
" StaticDataMgr",
"%u BP Type defs loaded in %.3fms.", m_bpTypeData.size(), (
GetTimeMSeconds() - startTime));
431 while (res->
GetRow(row)) {
439 while (res->
GetRow(row)) {
457 while (res->
GetRow(row)) {
463 while (res->
GetRow(row)) {
475 while (res->
GetRow(row)) {
483 while (res2->
GetRow(row2)) {
494 while (res->
GetRow(row)) {
515 sLog.Cyan(
" StaticDataMgr",
"%u Rat Groups, %u Rat Classes, and %u Rat Types for %u regions loaded in %.3fms.",\
520 while (res->
GetRow(row)) {
528 while (res->
GetRow(row)) {
538 while (res->
GetRow(row)) {
548 sLog.Cyan(
" StaticDataMgr",
"%u loot groups and %u loot group types loaded in %.3fms.",
554 while (res->
GetRow(row)) {
556 locationID = row.
GetInt(1);
561 _log(DATA__MESSAGE,
"Failed to query info: locationID %u is neither station nor system.", locationID);
573 sLog.Cyan(
" StaticDataMgr",
"Static Data loaded in %.3fms.", (
GetTimeMSeconds() - beginTime));
588 std::map<uint16, Inv::CatData>::const_iterator itr =
m_catData.find(catID);
595 std::map<uint16, Inv::CatData>::const_iterator itr =
m_catData.find(catID);
597 return itr->second.name.c_str();
599 _log(DATA__ERROR,
"GetCategoryName() - Category %u not found in map", catID);
605 std::map<uint16, Inv::GrpData>::const_iterator itr =
m_grpData.find(grpID);
612 std::map<uint16, Inv::GrpData>::const_iterator itr =
m_grpData.find(grpID);
614 return itr->second.name.c_str();
616 _log(DATA__ERROR,
"GetGroupName() - Group %u not found in map", grpID);
622 std::map<uint16, Inv::TypeData>::const_iterator itr =
m_typeData.find(typeID);
629 std::map<uint16, Inv::TypeData>::const_iterator itr =
m_typeData.find(typeID);
631 return itr->second.name.c_str();
633 _log(DATA__ERROR,
"GetGroupName() - Group %u not found in map", typeID);
645 std::map<uint32, uint32>::iterator itr =
m_agentSystem.find(agentID);
647 return new PyInt(itr->second);
649 _log(DATA__WARNING,
"Failed to query system info for agent %u: Agent not found.", agentID);
655 for (
auto it = itr.first; it != itr.second; ++it)
656 itemList.push_back(it->second);
661 for (
auto it = groupRange.first; it != groupRange.second; ++it) {
662 _log(MINING__INFO,
"GetRoidDist - adding %u with chance %.3f", it->second.typeID, it->second.chance);
663 roids.insert(std::pair<float, uint32>(it->second.chance, it->second.typeID));
666 return !roids.empty();
672 for (
auto it = itr.first; it != itr.second; ++it)
673 typeAttrVec.push_back(it->second);
683 std::map<uint16, std::string>::iterator itr =
m_skills.find(skillID);
689 _log(DATA__MESSAGE,
"Failed to query name for skill %u: Skill not found.", skillID);
698 data.
name = cur.second;
699 into[cur.first] = data;
708 data.
name = cur.second;
709 into[cur.first] = data;
718 data.
name = cur.second;
719 into[cur.first] = data;
728 data.
name = cur.second;
729 into[cur.first] = data;
738 data.
name = cur.second;
739 into[cur.first] = data;
748 data.
name = cur.second;
749 into[cur.first] = data;
758 data.
name = cur.second;
759 into[cur.first] = data;
767 data.emplace(cur.first, cur.second);
774 std::vector< uint16 > typeVec;
775 auto classRange =
m_npcTypes.equal_range(sClass);
776 for (
auto it = classRange.first; it != classRange.second; ++it) {
777 for (
auto itr : it->second)
778 if (itr.first == groupID) {
779 for (
auto tItr : itr.second)
780 typeVec.push_back(tItr);
787 _log(DATA__WARNING,
"Failed to get random rat for sClass %u and groupID %u", sClass, groupID);
805 auto groupRange =
m_npcGroups.equal_range(factionID);
806 for (
auto it = groupRange.first; it != groupRange.second; ++it)
807 groupMap.emplace(it->second.shipClass, it->second.groupID);
809 return !groupMap.empty();
815 for (
auto it = classRange.first; it != classRange.second; ++it) {
817 spawnClass.
type = it->second.type;
818 spawnClass.
sub = it->second.sub;
819 spawnClass.
f = it->second.f;
820 spawnClass.
af = it->second.af;
821 spawnClass.
d = it->second.d;
822 spawnClass.
c = it->second.c;
823 spawnClass.
ac = it->second.ac;
824 spawnClass.
bc = it->second.bc;
825 spawnClass.
bs = it->second.bs;
826 spawnClass.
h = it->second.h;
827 spawnClass.
o = it->second.o;
828 spawnClass.
cf = it->second.cf;
829 spawnClass.
cd = it->second.cd;
830 spawnClass.
cc = it->second.cc;
831 spawnClass.
cbc = it->second.cbc;
832 spawnClass.
cbs = it->second.cbs;
833 classMap.push_back(spawnClass);
836 return !classMap.empty();
850 float randChance(0.0f);
852 std::vector<LootGroupType> lootGrpVec;
858 for (
auto it = range.first; it != range.second; ++it ) {
863 if (randChance < 0.1) {
865 }
else if (randChance < 0.25) {
867 }
else if (randChance < 0.4) {
869 }
else if (randChance < 0.6) {
882 for (
auto it2 = range2.first; it2 != range2.second; ++it2)
883 if (it2->second.metaLevel == metaLevel)
884 lootGrpVec.push_back(it2->second);
886 if (!lootGrpVec.empty()) {
889 loot_list.
itemID = lootGrpVec[i].typeID;
890 loot_list.
minDrop = lootGrpVec[i].minQuantity;
891 loot_list.
maxDrop = lootGrpVec[i].maxQuantity;
892 lootList.push_back(loot_list);
898 if (
sConfig.debug.UseProfiling)
904 std::map<uint16, EvERam::bpTypeData>::iterator itr =
m_bpTypeData.find(typeID);
908 _log(DATA__MESSAGE,
"Failed to query info for bpType %u: Type not found.", typeID);
914 std::map<uint16, EvERam::bpTypeData>::iterator itr =
m_bpProductData.find(typeID);
924 std::map<uint16, Inv::TypeData>::iterator itr =
m_typeData.find(typeID);
926 return itr->second.isRecyclable;
932 std::map<uint16, Inv::TypeData>::iterator itr =
m_typeData.find(typeID);
934 return itr->second.isRefinable;
940 auto itr =
m_ramReq.equal_range(typeID);
941 for (
auto it = itr.first; it != itr.second; ++it)
942 if ((it->second.activityID == activityID) and (it->second.extra) and !(
IsSkillTypeID(it->second.requiredTypeID))) {
944 data.
typeID = it->second.requiredTypeID;
945 data.
quantity = it->second.quantity;
948 data.
extra = it->second.extra;
949 ramReqs.push_back(data);
955 auto itr =
m_ramMatl.equal_range(typeID);
956 for (
auto it = itr.first; it != itr.second; ++it)
957 ramMatls.push_back(it->second);
962 auto itr =
m_ramReq.equal_range(typeID);
963 for (
auto it = itr.first; it != itr.second; ++it)
964 ramReqs.push_back(it->second);
970 std::map<uint16, EvERam::bpTypeData>::iterator itr =
m_bpTypeData.find(typeID);
972 auto range =
m_ramMatl.equal_range(itr->second.productTypeID);
973 for (
auto it = range.first; it != range.second; ++it) {
975 data.
typeID = it->second.materialTypeID;
976 data.
quantity = it->second.quantity;
977 into.push_back(data);
982 auto itr =
m_ramReq.equal_range(typeID);
983 for (
auto it = itr.first; it != itr.second; ++it)
984 if (it->second.activityID == activity) {
986 data.
typeID = it->second.requiredTypeID;
987 data.
quantity = it->second.quantity;
990 data.
extra = it->second.extra;
991 into.push_back(data);
1011 std::map<uint32, uint8>::iterator itr =
m_stationCount.find(systemID);
1015 _log(DATA__MESSAGE,
"Failed to query station count for system %u: System not found.", systemID);
1021 std::map<uint32, std::vector<uint32>>::iterator itr =
m_stationList.find(systemID);
1031 std::map<uint32, uint32>::iterator itr =
m_stationRegion.find(stationID);
1035 _log(DATA__MESSAGE,
"Failed to query region info for station %u: Station not found.", stationID);
1041 std::map<uint32, uint32>::iterator itr =
m_stationConst.find(stationID);
1045 _log(DATA__MESSAGE,
"Failed to query constellation info for station %u: Station not found.", stationID);
1051 std::map<uint32, uint32>::iterator itr =
m_stationSystem.find(stationID);
1055 _log(DATA__MESSAGE,
"Failed to query system info for station %u: Station not found.", stationID);
1061 std::map<uint32, uint8>::iterator itr =
m_whRegions.find(systemID);
1066 if (pSysMgr ==
nullptr)
1074 _log(DATA__MESSAGE,
"Failed to query WH Class for systemID %u: System not found.", systemID);
1089 _log(DATA__MESSAGE,
"Failed to query info: locationID %u is neither station nor system.", locationID);
1093 std::map<uint32, SystemData>::iterator itr =
m_systemData.find(locationID);
1099 _log(DATA__MESSAGE,
"Failed to query info for system %u: System not found.", locationID);
1109 _log(DATA__MESSAGE,
"Failed to query info: locationID %u is neither station nor system.", locationID);
1113 std::map<uint32, SystemData>::iterator itr =
m_systemData.find(locationID);
1115 return itr->second.name.c_str();
1117 _log(DATA__MESSAGE,
"Failed to query info for system %u: System not found.", locationID);
1123 std::map<uint32, StaticData>::iterator itr =
m_staticData.find(itemID);
1129 _log(DATA__MESSAGE,
"Failed to query info for static item %u: Item not found.", itemID);
1135 std::map<uint32, StaticData>::iterator itr =
m_staticData.find(itemID);
1137 return itr->second.typeID;
1143 std::map<uint32, uint32>::iterator itr =
m_regions.find(regionID);
1147 _log(DATA__MESSAGE,
"Failed to query faction for region %u: region not found.", regionID);
1153 std::map<uint32, uint32>::iterator itr =
m_ratRegions.find(regionID);
1157 _log(DATA__MESSAGE,
"Failed to query rat faction for region %u: region not found.", regionID);
1223 std::map<uint32, SystemData>::iterator itr =
m_systemData.find(systemID);
1230 std::map<uint32, uint32>::iterator itr =
m_stationRegion.find(stationID);
1257 itr->second->Dump(MANUF__DEBUG,
" ");
1291 std::vector<EvERam::RamMaterials> ramMatls;
1294 for (
auto cur : ramMatls) {
1297 row->
SetField(
"requiredTypeID",
new PyInt(cur.materialTypeID));
1304 bool manuf(
false), copy(
false), invent(
false), dup(
false), me(
false), re(
false), te(
false), tech(
false);
1307 std::vector<EvERam::RamRequirements> ramReqs;
1311 for (
auto cur : ramReqs) {
1314 row->
SetField(
"requiredTypeID",
new PyInt(cur.requiredTypeID));
1318 switch(cur.activityID) {
1324 }
else if (cur.extra) {
1361 }
else if (cur.extra) {
1378 skillListInvent->
AddItem(row);
1398 Manufacturing->
SetItemString(
"rawMaterials", matlListManuf);
1401 for (; itr != extraListManuf->
end(); ++itr) {
1425 ResearchMaterial->
SetItemString(
"rawMaterials", matlListME);
1445 for (; itr != extraListDup->
end(); ++itr) {
1458 ReverseEngineering->
SetItemString(
"rawMaterials", matlListRE);
1499 return "Unknown - WIP";
1505 std::map<uint32, uint32>::iterator itr =
m_regions.find(regionID);
1507 factionID = (*itr).second;
1510 switch (factionID) {
1543 switch (factionID) {
1591 _log(DATA__ERROR,
"Name not found for corp %u", corpID);
1592 return "Undefined - WIP";
1597 std::map<uint32, uint32>::iterator itr =
m_corpFaction.find(corpID);
1602 _log(DATA__ERROR,
"Faction not found for NPC corp %s",
GetCorpName(corpID).c_str());
1609 switch (factionID) {
1633 return "Race Not Defined";
1654 switch (factionID) {
1672 case 0:
return "Undefined";
1673 case 1:
return "Small";
1674 case 2:
return "Medium";
1675 case 3:
return "Large";
1676 case 4:
return "Capitol";
1695 default:
return "Bad State";
static void LoadFactionSolarSystems(std::map< int32, PyRep * > &into)
void GetMoonResouces(std::map< uint16, uint8 > &data)
void GetType(uint16 typeID, Inv::TypeData &into)
#define sConfig
A macro for easier access to the singleton.
std::map< uint16, PyDict * > m_bpMatlData
std::map< uint16, std::string > m_minerals
PyDict * GetBPMatlData(uint16 typeID)
std::map< uint16, std::string > m_skills
void GetMineralData(std::map< uint16, Market::matlData > &into)
void GetComponentData(std::map< uint16, Market::matlData > &into)
#define IsNPCCorp(itemID)
static void GetSpawnClasses(DBQueryResult &res)
uint32 GetFactionCorp(uint32 factionID)
const char * GetProcStateName(int8 state)
static void GetTypeData(DBQueryResult &res)
static void LoadCorpFactions(std::map< uint32, uint32 > &into)
void GetRamReturns(uint16 typeID, int8 activityID, std::vector< EvERam::RequiredItem > &ramReqs)
static void GetMinerals(DBQueryResult &res)
static PyDict * LoadNPCCorpInfo()
const char * GetText(uint32 index) const
std::map< uint32, std::vector< uint32 > > m_stationList
static void GetFactionGroups(DBQueryResult &res)
#define _log(type, fmt,...)
float GetFloat(uint32 index) const
static PyObjectEx * GetAgents()
PyObjectEx * DBResultToCRowset(DBQueryResult &result)
uint8 GetRegionQuarter(uint32 regionID)
int32 GetInt(uint32 index) const
const char * GetGroupName(uint16 grpID)
std::map< uint16, std::string > m_commodities
uint8 GetWHSystemClass(uint32 systemID)
void GetCategory(uint8 catID, Inv::CatData &into)
std::multimap< uint8, RatSpawnClass > m_npcClasses
const char * GetSystemName(uint32 locationID)
std::string GetCorpName(uint32 corpID)
static void LoadFactionSystemCounts(std::map< uint32, uint32 > &into)
uint32 GetUInt(uint32 index) const
std::multimap< uint32, LootGroupType > m_LootGroupTypeMap
static void GetLootGroups(DBQueryResult &res)
double GetDouble(uint32 index) const
bool fittableNonSingleton
std::map< uint16, std::string > m_components
static void GetGroupData(DBQueryResult &res)
static bool IsRecyclable(const uint16 typeID)
uint32 GetStationSystem(uint32 stationID)
static void GetComponents(DBQueryResult &res)
double MakeRandomFloat(double low, double high)
Generates random real from interval [low; high].
static void GetLootGroupTypes(DBQueryResult &res)
void AddColumn(const char *name, DBTYPE type)
static void GetAgentLocation(DBQueryResult &res)
static void GetWHSystemClass(DBQueryResult &res)
Python floating point number.
static void LoadFactionRaces(std::map< int32, PyRep * > &into)
std::map< uint32, uint8 > m_stationCount
DBRowDescriptor * CreateHeader()
std::map< uint16, std::string > m_salvage
void GetDgmTypeAttrVec(uint16 typeID, std::vector< DmgTypeAttribute > &typeAttrVec)
static void GetRAMMaterials(DBQueryResult &res)
const_iterator begin() const
std::map< uint32, uint32 > m_stationRegion
storage_type::const_iterator const_iterator
std::map< uint16, rt_typeIDs > rt_groups
std::vector< uint16 > rt_typeIDs
std::map< uint16, Inv::TypeData > m_typeData
std::map< uint16, EvERam::bpTypeData > m_bpTypeData
void GetPICommodityData(std::map< uint16, Market::matlData > &into)
std::map< uint32, uint32 > m_stationSystem
std::map< uint16, uint8 > m_moonGoo
void GetSalvage(uint32 factionID, std::vector< uint32 > &itemList)
static void GetStaticData(DBQueryResult &res)
bool GetNPCClasses(uint8 sClass, std::vector< RatSpawnClass > &classMap)
PyRep * GetStationCount()
const char * GetFlagName(uint16 flag)
static PyObject * GetNPCDivisions()
static bool IsRefinable(const uint16 typeID)
std::map< uint32, SystemData > m_systemData
uint32 GetWreckID(uint32 typeID)
void GetCompoundData(std::map< uint16, Market::matlData > &into)
void GetTypes(std::map< uint16, Inv::TypeData > &into)
uint32 GetCorpFaction(uint32 corpID)
static void LoadFactionConstellations(std::map< int32, PyRep * > &into)
static void LoadFactionRegions(std::map< int32, PyRep * > &into)
const char * GetCategoryName(uint8 catID)
void SafeDelete(T *&p)
Deletes and nullifies a pointer.
void GetMiscCommodityData(std::map< uint16, Market::matlData > &into)
bool GetNPCGroups(uint32 factionID, std::map< uint8, uint16 > &groupMap)
uint32 GetRegionRatFaction(uint32 regionID)
std::multimap< std::string, OreTypeChance > m_oreBySecClass
static void GetStationCount(DBQueryResult &res)
static void GetStationConstellation(DBQueryResult &res)
bool GetRow(DBResultRow &into)
bool GetBool(uint32 index) const
static void GetBlueprintType(DBQueryResult &res)
std::map< uint32, uint8 > m_whRegions
#define sLog
Evaluates to a NewLog instance.
PyRep * GetField(size_t index) const
typeID Spawn an NPC with the specified type text Search for items matching the specified query() type()() itemID() copy() materialLevel()()() itemID() itemID Fits selected item to active ship() skillID(level)-gives skillID to specified level." ) COMMAND( online
static void GetStationRegion(DBQueryResult &res)
static void GetStationSystem(DBQueryResult &res)
static void GetSalvageGroups(DBQueryResult &res)
bool GetSkillName(uint16 skillID, std::string &name)
std::map< uint16, Inv::CatData > m_catData
static void GetRegionFaction(DBQueryResult &res)
bool IsRefinable(uint16 typeID)
std::string GetFactionName(uint32 factionID)
std::multimap< uint16, DmgTypeAttribute > m_typeAttrMap
Python object "blue.DBRowDescriptor".
PyTuple * new_tuple(int64 arg1)
PyInt * GetAgentSystemID(int32 agentID)
uint32 maxProductionLimit
void SetItem(size_t index, PyRep *object)
Stores Python object.
void GetGroup(uint16 grpID, Inv::GrpData &into)
#define IsKSpaceID(itemID)
std::string GetOwnerName(int32 ownerID)
Python object "dbutil.CRowset".
float chanceOfDuplicating
std::map< uint16, EvERam::bpTypeData > m_bpProductData
void GetRamRequiredItems(const uint32 typeID, const int8 activity, std::vector< EvERam::RequiredItem > &into)
std::multimap< uint32, RatFactionGroups > m_npcGroups
uint16 GetRandRatType(uint8 sClass, uint16 groupID)
uint32 productivityModifier
std::multimap< uint16, EvERam::RamMaterials > m_ramMatl
bool IsSkillTypeID(uint16 typeID)
static void GetCommodities(DBQueryResult &res)
const char * GetRaceName(uint8 raceID)
void GetRamRequirements(uint16 typeID, std::vector< EvERam::RamRequirements > &ramReqs)
static void GetOreBySSC(DBQueryResult &res)
bool GetStationList(uint32 systemID, std::vector< uint32 > &data)
PyPackedRow * AsPackedRow()
uint16 parentBlueprintTypeID
static void GetTypeAttributes(DBQueryResult &res)
void GetPIResourceData(std::map< uint16, Market::matlData > &into)
std::map< uint32, uint32 > m_WrecksToTypesMap
uint32 GetWreckFaction(uint32 typeID)
bool IsNull(uint32 index) const
static void LoadNPCCorpFactionData(DBQueryResult &res)
uint8 GetFactionRace(uint32 factionID)
std::map< uint32, uint32 > m_stationConst
#define IsSolarSystemID(itemID)
PyDict * SetBPMatlType(int8 catID, uint16 typeID, uint16 prodID)
if(sConfig.world.saveOnMove)
uint32 researchProductivityTime
bool IsSolarSystem(uint32 systemID=0)
static void GetRAMRequirements(DBQueryResult &res)
void GetLoot(uint32 groupID, std::vector< LootList > &lootList)
std::map< uint16, std::string > m_miscCommodities
std::map< uint16, Inv::GrpData > m_grpData
static PyObjectEx * GetOperands()
const char * GetTypeName(uint16 typeID)
Python token (eg. class name).
bool IsRecyclable(uint16 typeID)
std::map< uint32, uint32 > m_regions
bool GetNPCTypes(uint16 groupID, std::vector< uint16 > &typeVec)
static void GetCompounds(DBQueryResult &res)
#define IsStationID(itemID)
bool GetRoidDist(const char *secClass, std::unordered_multimap< float, uint16 > &roids)
static void GetCategoryData(DBQueryResult &res)
int64 MakeRandomInt(int64 low, int64 high)
Generates random integer from interval [low; high].
const char * GetRigSizeName(uint8 size)
const_iterator end() const
uint16 GetStaticType(uint32 itemID)
static void GetGroupTypeIDs(uint8 shipClass, uint16 groupID, uint32 factionID, DBQueryResult &res)
void GetRamMaterials(uint16 typeID, std::vector< EvERam::RamMaterials > &ramMatls)
uint32 GetRaceFaction(uint8 raceID)
static void GetResources(DBQueryResult &res)
uint32 GetStationRegion(uint32 stationID)
static void GetSkillList(DBQueryResult &res)
std::map< uint16, std::string > m_resources
std::map< uint32, uint32 > m_ratRegions
typeID Spawn an NPC with the specified type text Search for items matching the specified query() type()() itemID() copy() materialLevel()() itemID(attributeID)-Retrieves attribute value." ) COMMAND( setattr
bool SetField(uint32 index, PyRep *value)
PyObject * m_npcDivisions
bool GetBpDataForItem(uint16 typeID, EvERam::bpTypeData &tData)
static PyObject * GetBillTypes()
static void GetSystemData(DBQueryResult &res)
static bool GetWrecksToTypes(DBQueryResult &res)
static void GetMoonResouces(DBQueryResult &res)
std::map< uint32, StaticData > m_staticData
static void LoadFactionStationCounts(std::map< uint32, uint32 > &into)
uint32 GetStationConstellation(uint32 stationID)
static PyObject * GetEntryTypes()
std::multimap< uint32, LootGroup > m_LootGroupMap
void GetBpTypeData(uint16 typeID, EvERam::bpTypeData &tData)
static void GetSalvage(DBQueryResult &res)
std::map< uint32, uint32 > m_agentSystem
bool GetStaticInfo(uint32 itemID, StaticData &data)
void GetSalvageData(std::map< uint16, Market::matlData > &into)
std::map< uint16, std::string > m_compounds
uint32 GetRegionFaction(uint32 regionID)
entityID heal the character with the entityID note giving you detailed ship status information gives a list of all dynamic entities and players and their destinyState in this bubble shows some current destiny variables save all kick all and halt server immediate command list all items in current location s gives list of cargo contents and volumes in all holds list current session values show current ship DNA show current objects in their destiny state
#define IsWSpaceID(itemID)
bool IsStation(uint32 stationID=0)
void SetItem(PyRep *key, PyRep *value)
SetItem adds or sets a database entry.
std::multimap< uint8, rt_groups > m_npcTypes
static void GetMiscCommodities(DBQueryResult &res)
std::multimap< uint16, EvERam::RamRequirements > m_ramReq
std::map< uint32, uint32 > m_corpFaction
std::string securityClass
static PyObject * GetKeyMap()
void SetItemString(const char *key, PyRep *value)
SetItemString adds or sets a database entry.
std::multimap< uint32, uint32 > m_salvageMap
uint32 researchMaterialTime
static void GetRegionRatFaction(DBQueryResult &res)
bool GetSystemData(uint32 locationID, SystemData &data)