本文整理汇总了C++中CItemBase::GetName方法的典型用法代码示例。如果您正苦于以下问题:C++ CItemBase::GetName方法的具体用法?C++ CItemBase::GetName怎么用?C++ CItemBase::GetName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CItemBase
的用法示例。
在下文中一共展示了CItemBase::GetName方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Use_Train_ArcheryButte
bool CChar::Use_Train_ArcheryButte( CItem * pButte, bool fSetup )
{
ADDTOCALLSTACK("CChar::Use_Train_ArcheryButte");
// IT_ARCHERY_BUTTE
ASSERT(pButte);
ITEMID_TYPE AmmoID;
if ( GetDist(pButte) < 2 ) // if we are standing right next to the butte, retrieve the arrows/bolts
{
if ( pButte->m_itArcheryButte.m_AmmoCount == 0 )
{
SysMessageDefault(DEFMSG_ITEMUSE_ARCHB_EMPTY);
return true;
}
AmmoID = pButte->m_itArcheryButte.m_AmmoType;
CItemBase *pAmmoDef = CItemBase::FindItemBase(AmmoID);
if ( pAmmoDef )
{
TCHAR *pszMsg = Str_GetTemp();
sprintf(pszMsg, g_Cfg.GetDefaultMsg(DEFMSG_ITEMUSE_ARCHB_REM), pAmmoDef->GetName(), (pButte->m_itArcheryButte.m_AmmoCount == 1) ? "" : g_Cfg.GetDefaultMsg(DEFMSG_ITEMUSE_ARCHB_REMS));
Emote(pszMsg);
CItem *pRemovedAmmo = CItem::CreateBase(AmmoID);
ASSERT(pRemovedAmmo);
pRemovedAmmo->SetAmount(pButte->m_itArcheryButte.m_AmmoCount);
ItemBounce(pRemovedAmmo);
}
// Clear the target
pButte->m_itArcheryButte.m_AmmoType = ITEMID_NOTHING;
pButte->m_itArcheryButte.m_AmmoCount = 0;
return true;
}
SKILL_TYPE skill = Fight_GetWeaponSkill();
if ( !g_Cfg.IsSkillFlag(skill, SKF_RANGED) )
{
SysMessageDefault(DEFMSG_ITEMUSE_ARCHB_WS);
return true;
}
if ( Skill_GetBase(skill) > g_Cfg.m_iSkillPracticeMax )
{
SysMessageDefault(DEFMSG_ITEMUSE_ARCHB_SKILL);
return true;
}
// Make sure we have some ammo
CItem *pWeapon = m_uidWeapon.ItemFind();
ASSERT(pWeapon);
const CItemBase *pWeaponDef = pWeapon->Item_GetDef();
// Determine ammo type
CVarDefCont *pVarAmmoType = pWeapon->GetDefKey("AMMOTYPE", true);
RESOURCE_ID_BASE rid;
LPCTSTR t_Str;
if ( pVarAmmoType )
{
t_Str = pVarAmmoType->GetValStr();
rid = static_cast<RESOURCE_ID_BASE>(g_Cfg.ResourceGetID(RES_ITEMDEF, t_Str));
}
else
{
rid = pWeaponDef->m_ttWeaponBow.m_idAmmo;
}
AmmoID = static_cast<ITEMID_TYPE>(rid.GetResIndex());
// If there is a different ammo type on the butte currently, tell us to remove the current type first
if ( (pButte->m_itArcheryButte.m_AmmoType != ITEMID_NOTHING) && (pButte->m_itArcheryButte.m_AmmoType != AmmoID) )
{
SysMessageDefault(DEFMSG_ITEMUSE_ARCHB_X);
return true;
}
// We need to be correctly aligned with the target before we can use it
// For the south facing butte, we need to have the same X value and a Y > 2
// For the east facing butte, we need to have the same Y value and an X > 2
if ( !pButte->IsTopLevel() )
{
badalign:
SysMessageDefault(DEFMSG_ITEMUSE_ARCHB_P);
return true;
}
int targDistX = GetTopPoint().m_x - pButte->GetTopPoint().m_x;
int targDistY = GetTopPoint().m_y - pButte->GetTopPoint().m_y;
if ( (pButte->GetID() == ITEMID_ARCHERYBUTTE_S) || (pButte->GetID() == ITEMID_MONGBATTARGET_S) )
{
if ( !(targDistX == 0 && targDistY > 2) )
goto badalign;
}
else
{
if ( !(targDistY == 0 && targDistX > 2) )
goto badalign;
}
if ( !CanSeeLOS(pButte, LOS_NB_WINDOWS) ) //we should be able to shoot through a window
//.........这里部分代码省略.........