本文整理汇总了C++中GenericModule类的典型用法代码示例。如果您正苦于以下问题:C++ GenericModule类的具体用法?C++ GenericModule怎么用?C++ GenericModule使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了GenericModule类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: UnfitModule
void ModuleManager::UnfitModule(uint32 itemID)
{
GenericModule * mod = m_Modules->GetModule(itemID);
if( mod != NULL )
{
if( mod->isLoaded() )
{
InventoryItemRef loadedChargeRef = mod->getLoadedChargeRef();
if( IsStation(m_Ship->locationID()) )
loadedChargeRef->Move(m_Ship->locationID(), flagHangar); // used to be (m_pOperator->GetLocationID(), flag)
else
{
m_Ship->ValidateAddItem(flagCargoHold,loadedChargeRef);
//if( m_Ship->ValidateAddItem(flagCargoHold,loadedChargeRef) )
//{
loadedChargeRef->Move(m_Ship->itemID(), flagCargoHold); // used to be (m_pOperator->GetLocationID(), flag)
mod->unload();
//}
//else
// throw PyException( MakeCustomError( "Not enough cargo space!") );
}
}
mod->offline();
m_Modules->RemoveModule(itemID);
}
}
示例2: 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;
}
示例3: DeOverload
void ModuleManager::DeOverload(uint32 itemID)
{
GenericModule * mod = m_Modules->GetModule(itemID);
if( mod != NULL )
{
mod->deOverload();
}
}
示例4: DamageModule
void ModuleManager::DamageModule(uint32 itemID, EvilNumber val)
{
GenericModule * mod = m_Modules->GetModule(itemID);
if( mod != NULL)
{
mod->setAttribute(AttrHp, val);
}
}
示例5: RepairModule
void ModuleManager::RepairModule(uint32 itemID)
{
GenericModule * mod = m_Modules->GetModule(itemID);
if( mod != NULL )
{
mod->repair();
}
}
示例6: 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());
}
}
示例7: UnfitModule
void ModuleManager::UnfitModule(uint32 itemID)
{
GenericModule * mod = m_Modules->GetModule(itemID);
if( mod != NULL )
{
mod->Offline();
m_Modules->RemoveModule(itemID);
}
}
示例8: GetModule
void ModuleContainer::RemoveModule(EVEItemFlags flag)
{
GenericModule * mod = GetModule(flag);
_removeModule(mod->flag(), mod);
//delete the module
delete mod;
mod = NULL;
}
示例9: 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
}
}
示例10: ModuleFactory
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;
}
示例11: GetModule
bool ModuleContainer::RemoveModule(uint32 itemID)
{
GenericModule * mod = GetModule(itemID);
if( mod == NULL )
return false; // NO module pointer found at this slot flag, DO NOT attempt to dereference
_removeModule(mod->flag(), mod);
//delete the module
delete mod;
mod = NULL;
return true;
}
示例12: 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;
}
示例13: GetLoadedChargeOnModule
InventoryItemRef ModuleManager::GetLoadedChargeOnModule(EVEItemFlags flag)
{
GenericModule * mod = m_Modules->GetModule(flag);
if( mod->isLoaded() )
{
if( mod != NULL )
{
if( mod->isLoaded() )
return mod->getLoadedChargeRef();
else
return InventoryItemRef();
}
}
else
GetLogger()->Warning( "ModuleManager::UnloadCharge()", "WARNING! Called UnloadCharge() on a module that is NOT loaded or not a charged module!" );
return InventoryItemRef();
}
示例14: _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 )
{
//calculate new attribute
mod->setAttribute(s->AttributeID(),
CalculateNewAttributeValue(mod->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");
}
示例15: 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());
}
}
}