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)