本文整理汇总了C++中BattleItem::getAmmoQuantity方法的典型用法代码示例。如果您正苦于以下问题:C++ BattleItem::getAmmoQuantity方法的具体用法?C++ BattleItem::getAmmoQuantity怎么用?C++ BattleItem::getAmmoQuantity使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BattleItem
的用法示例。
在下文中一共展示了BattleItem::getAmmoQuantity方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: invClick
/**
* Updates item info.
* @param action Pointer to an action.
*/
void InventoryState::invClick(Action *action)
{
BattleItem *item = _inv->getSelectedItem();
_txtItem->setText(L"");
_txtAmmo->setText(L"");
_selAmmo->clear();
if (item != 0)
{
if (item->getUnit() && item->getUnit()->getStatus() == STATUS_UNCONSCIOUS)
{
_txtItem->setText(item->getUnit()->getName(_game->getLanguage()));
}
else
{
if (_game->getSavedGame()->isResearched(item->getRules()->getRequirements()))
{
_txtItem->setText(_game->getLanguage()->getString(item->getRules()->getName()));
}
else
{
_txtItem->setText(_game->getLanguage()->getString("STR_ALIEN_ARTIFACT"));
}
}
std::wstringstream ss;
if (item->getAmmoItem() != 0 && item->needsAmmo())
{
ss << _game->getLanguage()->getString("STR_AMMO_ROUNDS_LEFT") << L'\x01' << item->getAmmoItem()->getAmmoQuantity();
SDL_Rect r;
r.x = 0;
r.y = 0;
r.w = RuleInventory::HAND_W * RuleInventory::SLOT_W;
r.h = RuleInventory::HAND_H * RuleInventory::SLOT_H;
_selAmmo->drawRect(&r, Palette::blockOffset(0)+8);
r.x++;
r.y++;
r.w -= 2;
r.h -= 2;
_selAmmo->drawRect(&r, 0);
item->getAmmoItem()->getRules()->drawHandSprite(_game->getResourcePack()->getSurfaceSet("BIGOBS.PCK"), _selAmmo);
}
else if (item->getAmmoQuantity() != 0 && item->needsAmmo())
{
ss << _game->getLanguage()->getString("STR_AMMO_ROUNDS_LEFT") << L'\x01' << item->getAmmoQuantity();
}
_txtAmmo->setText(ss.str());
}
if (_tu)
{
std::wstringstream ss;
ss << _game->getLanguage()->getString("STR_TUS") << L'\x01' << _battleGame->getSelectedUnit()->getTimeUnits();
_txtTus->setText(ss.str());
}
}
示例2: invClick
/**
* Updates item info.
* @param action Pointer to an action.
*/
void InventoryState::invClick(Action *)
{
BattleItem *item = _inv->getSelectedItem();
_txtItem->setText(L"");
_txtAmmo->setText(L"");
_selAmmo->clear();
if (item != 0)
{
if (item->getUnit() && item->getUnit()->getStatus() == STATUS_UNCONSCIOUS)
{
_txtItem->setText(item->getUnit()->getName(_game->getLanguage()));
}
else
{
if (_game->getSavedGame()->isResearched(item->getRules()->getRequirements()))
{
_txtItem->setText(tr(item->getRules()->getName()));
}
else
{
_txtItem->setText(tr("STR_ALIEN_ARTIFACT"));
}
}
std::wstring s;
if (item->getAmmoItem() != 0 && item->needsAmmo())
{
s = tr("STR_AMMO_ROUNDS_LEFT").arg(item->getAmmoItem()->getAmmoQuantity());
SDL_Rect r;
r.x = 0;
r.y = 0;
r.w = RuleInventory::HAND_W * RuleInventory::SLOT_W;
r.h = RuleInventory::HAND_H * RuleInventory::SLOT_H;
_selAmmo->drawRect(&r, Palette::blockOffset(0)+8);
r.x++;
r.y++;
r.w -= 2;
r.h -= 2;
_selAmmo->drawRect(&r, 0);
item->getAmmoItem()->getRules()->drawHandSprite(_game->getResourcePack()->getSurfaceSet("BIGOBS.PCK"), _selAmmo);
}
else if (item->getAmmoQuantity() != 0 && item->needsAmmo())
{
s = tr("STR_AMMO_ROUNDS_LEFT").arg(item->getAmmoQuantity());
}
else if (item->getRules()->getBattleType() == BT_MEDIKIT)
{
s = tr("STR_MEDI_KIT_QUANTITIES_LEFT").arg(item->getPainKillerQuantity()).arg(item->getStimulantQuantity()).arg(item->getHealQuantity());
}
_txtAmmo->setText(s);
}
updateStats();
}
示例3: invMouseOver
/**
* Shows item info.
* @param action Pointer to an action.
*/
void InventoryState::invMouseOver(Action *)
{
if (_inv->getSelectedItem() != 0)
{
return;
}
BattleItem *item = _inv->getMouseOverItem();
if (item != 0)
{
if (item->getUnit() && item->getUnit()->getStatus() == STATUS_UNCONSCIOUS)
{
_txtItem->setText(item->getUnit()->getName(_game->getLanguage()));
}
else
{
if (_game->getSavedGame()->isResearched(item->getRules()->getRequirements()))
{
_txtItem->setText(tr(item->getRules()->getName()));
}
else
{
_txtItem->setText(tr("STR_ALIEN_ARTIFACT"));
}
}
std::wstring s;
if (item->getAmmoItem() != 0 && item->needsAmmo())
{
s = tr("STR_AMMO_ROUNDS_LEFT").arg(item->getAmmoItem()->getAmmoQuantity());
SDL_Rect r;
r.x = 0;
r.y = 0;
r.w = RuleInventory::HAND_W * RuleInventory::SLOT_W;
r.h = RuleInventory::HAND_H * RuleInventory::SLOT_H;
_selAmmo->drawRect(&r, _game->getMod()->getInterface("inventory")->getElement("grid")->color);
r.x++;
r.y++;
r.w -= 2;
r.h -= 2;
_selAmmo->drawRect(&r, Palette::blockOffset(0)+15);
item->getAmmoItem()->getRules()->drawHandSprite(_game->getMod()->getSurfaceSet("BIGOBS.PCK"), _selAmmo);
_updateTemplateButtons(false);
}
else
{
_selAmmo->clear();
_updateTemplateButtons(!_tu);
}
if (item->getAmmoQuantity() != 0 && item->needsAmmo())
{
s = tr("STR_AMMO_ROUNDS_LEFT").arg(item->getAmmoQuantity());
}
else if (item->getRules()->getBattleType() == BT_MEDIKIT)
{
s = tr("STR_MEDI_KIT_QUANTITIES_LEFT").arg(item->getPainKillerQuantity()).arg(item->getStimulantQuantity()).arg(item->getHealQuantity());
}
_txtAmmo->setText(s);
}
else
{
if (_currentTooltip.empty())
{
_txtItem->setText(L"");
}
_txtAmmo->setText(L"");
_selAmmo->clear();
_updateTemplateButtons(!_tu);
}
}
示例4: updateSoldierInfo
/**
* Updates soldier name/rank/tu/energy/health/morale.
* @param battleUnit Pointer to current unit.
*/
void BattlescapeState::updateSoldierInfo(BattleUnit *battleUnit)
{
if (battleUnit == 0)
{
_txtName->setText(L"");
_rank->clear();
_numTimeUnits->clear();
_barTimeUnits->clear();
_barTimeUnits->clear();
_numEnergy->clear();
_barEnergy->clear();
_barEnergy->clear();
_numHealth->clear();
_barHealth->clear();
_barHealth->clear();
_numMorale->clear();
_barMorale->clear();
_barMorale->clear();
_btnLeftHandItem->clear();
_btnRightHandItem->clear();
return;
}
_txtName->setText(battleUnit->getUnit()->getName());
Soldier *soldier = dynamic_cast<Soldier*>(battleUnit->getUnit());
if (soldier != 0)
{
SurfaceSet *texture = _game->getResourcePack()->getSurfaceSet("BASEBITS.PCK");
texture->getFrame(soldier->getRankSprite())->blit(_rank);
}
_numTimeUnits->setValue(battleUnit->getTimeUnits());
_barTimeUnits->setMax(battleUnit->getUnit()->getTimeUnits());
_barTimeUnits->setValue(battleUnit->getTimeUnits());
_numEnergy->setValue(battleUnit->getEnergy());
_barEnergy->setMax(battleUnit->getUnit()->getStamina());
_barEnergy->setValue(battleUnit->getEnergy());
_numHealth->setValue(battleUnit->getHealth());
_barHealth->setMax(battleUnit->getUnit()->getHealth());
_barHealth->setValue(battleUnit->getHealth());
_numMorale->setValue(battleUnit->getMorale());
_barMorale->setMax(100);
_barMorale->setValue(battleUnit->getMorale());
BattleItem *leftHandItem = _battleGame->getItemFromUnit(battleUnit, LEFT_HAND);
_btnLeftHandItem->clear();
_numAmmoLeft->clear();
if (leftHandItem)
{
drawItemSprite(leftHandItem, _btnLeftHandItem);
_numAmmoLeft->setValue(leftHandItem->getAmmoQuantity());
}
BattleItem *rightHandItem = _battleGame->getItemFromUnit(battleUnit, RIGHT_HAND);
_btnRightHandItem->clear();
_numAmmoRight->clear();
if (rightHandItem)
{
drawItemSprite(rightHandItem, _btnRightHandItem);
_numAmmoRight->setValue(rightHandItem->getAmmoQuantity());
}
_battleGame->getTerrainModifier()->calculateFOV(_battleGame->getSelectedUnit());
for (int i = 0; i < 10; i++)
{
_btnVisibleUnit[i]->hide();
_numVisibleUnit[i]->hide();
_visibleUnit[i] = 0;
}
int j = 0;
for (std::vector<BattleUnit*>::iterator i = battleUnit->getVisibleUnits()->begin(); i != battleUnit->getVisibleUnits()->end(); i++)
{
_btnVisibleUnit[j]->show();
_numVisibleUnit[j]->show();
_visibleUnit[j] = (*i);
j++;
}
}