本文整理汇总了C++中GenericModule::getItem方法的典型用法代码示例。如果您正苦于以下问题:C++ GenericModule::getItem方法的具体用法?C++ GenericModule::getItem怎么用?C++ GenericModule::getItem使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GenericModule
的用法示例。
在下文中一共展示了GenericModule::getItem方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Activate
int32 ModuleManager::Activate(uint32 itemID, std::string effectName, uint32 targetID, uint32 repeat)
{
SysLog::Debug("Activate","Needs to be implemented");
//return 1;
GenericModule * mod = m_Modules->GetModule(itemID);
if( mod != NULL )
{
if(effectName == "online")
{
//ModuleCommand cmd = _translateEffectName(effectName); // GET RID of this function, effectName should be passed into the module's calls
mod->online();
// We should check for "online" here or something else, then either call the mod->Online() or mod->Activate()
//if(cmd == ONLINE)
// mod->Online(); // this currently fails since m_selectedEffect and m_defaultEffect in the ModuleEffect class are undefined
//there needs to be more cases here i just don't know what they're called yet
}
else
{
SystemEntity * targetEntity = this->m_Ship->GetOperator()->GetDestiny()->GetCurrentBubble()->GetEntity(targetID);
mod->activate(targetEntity);
m_pLog->Log("ModuleManager::Activate()", "Module '%s' Activating...", mod->getItem()->itemName().c_str());
}
}
return 1;
}
示例2: DamageModule
void ModuleManager::DamageModule(uint32 itemID, EvilNumber val)
{
GenericModule * mod = m_Modules->GetModule(itemID);
if( mod != NULL)
{
mod->getItem()->setAttribute(AttrHp, val);
}
}
示例3: Offline
void ModuleManager::Offline(uint32 itemID)
{
GenericModule * mod = m_Modules->GetModule(itemID);
if( mod != NULL )
{
mod->offline();
m_pLog->Log("ModuleManager::Offline()", "Module '%s' going Offline", mod->getItem()->itemName().c_str());
}
}
示例4: Deactivate
void ModuleManager::Deactivate(uint32 itemID, std::string effectName)
{
GenericModule * mod = m_Modules->GetModule(itemID);
if( mod != NULL )
{
ModuleCommand cmd = _translateEffectName(effectName);
mod->getItem()->PutOffline();
//if(cmd == OFFLINE)
// mod->Offline(); // this currently fails since m_selectedEffect and m_defaultEffect in the ModuleEffect class are undefined
//there needs to be more cases here i just don't know what they're called yet
}
}
示例5: Activate
int32 ModuleManager::Activate(uint32 itemID, std::string effectName, uint32 targetID, uint32 repeat)
{
//sLog.Debug("Activate","Needs to be implemented");
//return 1;
GenericModule * mod = m_Modules->GetModule(itemID);
if( mod != NULL )
{
ModuleCommand cmd = _translateEffectName(effectName);
mod->getItem()->PutOnline();
//if(cmd == ONLINE)
// mod->Online(); // this currently fails since m_selectedEffect and m_defaultEffect in the ModuleEffect class are undefined
//there needs to be more cases here i just don't know what they're called yet
}
return 1;
}
示例6: Deactivate
void ModuleManager::Deactivate(uint32 itemID, std::string effectName)
{
GenericModule * mod = m_Modules->GetModule(itemID);
if( mod != NULL )
{
if(effectName == "online")
{
//ModuleCommand cmd = _translateEffectName(effectName); // GET RID of this function, effectName should be passed into the module's calls
mod->offline();
// We should check for "online" here or something else, then either call the mod->Offline() or mod->Deactivate()
//if(cmd == OFFLINE)
// mod->Offline(); // this currently fails since m_selectedEffect and m_defaultEffect in the ModuleEffect class are undefined
//there needs to be more cases here i just don't know what they're called yet
}
else
{
mod->deactivate();
m_pLog->Log("ModuleManager::Deactivate()", "Module '%s' Deactivating...", mod->getItem()->itemName().c_str());
}
}
}
示例7: _processExternalEffect
void ModuleManager::_processExternalEffect(SubEffect * s)
{
//50-50 it's targeting a specific module ( i'm assuming here )
GenericModule * mod = m_Modules->GetModule(s->TargetItemID());
if( mod != NULL)
{
auto item = mod->getItem();
//calculate new attribute
item->setAttribute(s->AttributeID(),
CalculateNewAttributeValue(item->getAttribute(s->AttributeID()),
s->AppliedValue(), s->CalculationType()));
}
else if( s->TargetItemID() == m_Ship->itemID() ) //guess it's not, but that means it should be targeting our ship itself
{
//calculate new attribute
m_Ship->setAttribute(s->AttributeID(),
CalculateNewAttributeValue(m_Ship->getAttribute(s->AttributeID()),
s->AppliedValue(), s->CalculationType()));
}
else //i have no idea what their targeting X_X
SysLog::Error("ModuleManager", "Process external effect inconsistency. This shouldn't happen");
}
示例8: _fitModule
bool ModuleManager::_fitModule(InventoryItemRef item, EVEItemFlags flag)
{
bool verifyFailed = false;
GenericModule * mod;
// First, check to see if this module item is already fitted, and if so, let's instruct ModuleContainer to move the module
GenericModule * existingMod = m_Modules->GetModule(item->itemID());
if( existingMod != NULL )
{
if( m_Modules->isSlotOccupied(flag) )
{
throw PyException( MakeUserError( "SlotAlreadyOccupied" ) );
verifyFailed = true;
}
m_Modules->RemoveModule( existingMod->flag() ); // Remove this module from existing slot
existingMod->getItem()->SetFlag( flag ); // Change item's flag to the NEW slot flag
m_Modules->AddModule( flag, existingMod ); // Add this module back to the container at the NEW slot location
}
else
{
mod = ModuleFactory(item, ShipRef(m_Ship));
// Set module's pointer to its owner ModuleManager's log object:
mod->setLog(m_pLog);
// Check for max turret modules allowed:
if( mod->isTurretFitted() && (m_Modules->GetFittedTurretCount() == m_Ship->GetMaxTurrentHardpoints().get_int()) )
{
//std::map<std::string, PyRep *> args;
//args["typename"] = new PyString(item->itemName().c_str());
//args["portion"] = new PyInt(item->type().portionSize());
throw PyException( MakeUserError( "NotEnoughTurretSlots" ) );
verifyFailed = true;
}
// Check for max launcher modules allowed:
if( mod->isLauncherFitted() && (m_Modules->GetFittedLauncherCount() == m_Ship->GetMaxLauncherHardpoints().get_int()) )
{
//std::map<std::string, PyRep *> args;
//args["typename"] = new PyString(item->itemName().c_str());
//args["portion"] = new PyInt(item->type().portionSize());
throw PyException( MakeUserError( "NotEnoughLauncherSlots" ) );
verifyFailed = true;
}
// Check for max modules of group allowed:
else if( mod->isMaxGroupFitLimited() && (m_Modules->GetFittedModuleCountByGroup(item->groupID()) == mod->getItem()->GetAttribute(AttrMaxGroupFitted).get_int()) )
{
//std::map<std::string, PyRep *> args;
//args["typename"] = new PyString(item->itemName().c_str());
//args["portion"] = new PyInt(item->type().portionSize());
throw PyException( MakeUserError( "CantFitTooManyByGroup" ) );
verifyFailed = true;
}
else
{
// Fit Module now that all checks have passed:
m_Modules->AddModule(flag, mod);
}
}
if( verifyFailed )
{
if( mod != NULL )
delete mod;
return false;
}
else
return true;
}
示例9: _fitModule
bool ModuleManager::_fitModule(InventoryItemRef item, EVEItemFlags flag)
{
bool verifyFailed = false;
GenericModule * mod = ModuleFactory(item, ShipRef(m_Ship));
// Check for max turret modules allowed:
if( mod->isTurretFitted() && (m_Modules->GetFittedTurretCount() == m_Ship->GetMaxTurrentHardpoints().get_int()) )
{
//std::map<std::string, PyRep *> args;
//args["typename"] = new PyString(item->itemName().c_str());
//args["portion"] = new PyInt(item->type().portionSize());
throw PyException( MakeUserError( "NotEnoughTurretSlots" ) );
verifyFailed = true;
}
// Check for max launcher modules allowed:
if( mod->isLauncherFitted() && (m_Modules->GetFittedLauncherCount() == m_Ship->GetMaxLauncherHardpoints().get_int()) )
{
//std::map<std::string, PyRep *> args;
//args["typename"] = new PyString(item->itemName().c_str());
//args["portion"] = new PyInt(item->type().portionSize());
throw PyException( MakeUserError( "NotEnoughLauncherSlots" ) );
verifyFailed = true;
}
// Check for max modules of group allowed:
else if( mod->isMaxGroupFitLimited() && (m_Modules->GetFittedModuleCountByGroup(item->groupID()) == mod->getItem()->GetAttribute(AttrMaxGroupFitted).get_int()) )
{
//std::map<std::string, PyRep *> args;
//args["typename"] = new PyString(item->itemName().c_str());
//args["portion"] = new PyInt(item->type().portionSize());
throw PyException( MakeUserError( "CantFitTooManyByGroup" ) );
verifyFailed = true;
}
else
{
// Fit Module now that all checks have passed:
//m_Modules->AddModule(mod->flag(), mod);
m_Modules->AddModule(flag, mod);
}
if( verifyFailed )
{
delete mod;
return false;
}
else
return true;
}