本文整理汇总了C++中Armor::getSpriteInventory方法的典型用法代码示例。如果您正苦于以下问题:C++ Armor::getSpriteInventory方法的具体用法?C++ Armor::getSpriteInventory怎么用?C++ Armor::getSpriteInventory使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Armor
的用法示例。
在下文中一共展示了Armor::getSpriteInventory方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ArticleState
ArticleStateArmor::ArticleStateArmor(Game *game, ArticleDefinitionArmor *defs, int palSwitch) : ArticleState(game, defs->id, palSwitch)
{
Armor *armor = _game->getRuleset()->getArmor(defs->id);
// add screen elements
_txtTitle = new Text(300, 16, 5, 24);
// Set palette
_game->setPalette(_game->getResourcePack()->getPalette("PALETTES.DAT_4")->getColors());
ArticleState::initLayout();
// add other elements
add(_txtTitle);
// Set up objects
_btnOk->setColor(Palette::blockOffset(0)+15);
_btnPrev->setColor(Palette::blockOffset(0)+15);
_btnNext->setColor(Palette::blockOffset(0)+15);
_txtTitle->setColor(Palette::blockOffset(14)+15);
_txtTitle->setBig();
_txtTitle->setText(Ufopaedia::buildText(_game, defs->title));
_image = new Surface(320, 200, 0, 0);
add(_image);
std::string look = armor->getSpriteInventory();
look += "M0.SPK";
if (!CrossPlatform::fileExists(CrossPlatform::getDataFile("UFOGRAPH/" + look)))
{
look = armor->getSpriteInventory() + ".SPK";
}
_game->getResourcePack()->getSurface(look)->blit(_image);
_lstInfo = new TextList(150, 60, 150, 69);
add(_lstInfo);
_lstInfo->setColor(Palette::blockOffset(14)+15);
_lstInfo->setColumns(2, 125, 25);
_lstInfo->setDot(true);
std::wstringstream ss;
ss.str(L"");ss.clear();
ss << armor->getFrontArmor();
_lstInfo->addRow(2, _game->getLanguage()->getString("STR_FRONT_ARMOR").c_str(), ss.str().c_str());
_lstInfo->setCellColor(0, 1, Palette::blockOffset(15)+4);
ss.str(L"");ss.clear();
ss << armor->getSideArmor();
_lstInfo->addRow(2, _game->getLanguage()->getString("STR_LEFT_ARMOR").c_str(), ss.str().c_str());
_lstInfo->setCellColor(1, 1, Palette::blockOffset(15)+4);
ss.str(L"");ss.clear();
ss << armor->getSideArmor();
_lstInfo->addRow(2, _game->getLanguage()->getString("STR_RIGHT_ARMOR").c_str(), ss.str().c_str());
_lstInfo->setCellColor(2, 1, Palette::blockOffset(15)+4);
ss.str(L"");ss.clear();
ss << armor->getRearArmor();
_lstInfo->addRow(2, _game->getLanguage()->getString("STR_REAR_ARMOR").c_str(), ss.str().c_str());
_lstInfo->setCellColor(3, 1, Palette::blockOffset(15)+4);
ss.str(L"");ss.clear();
ss << armor->getUnderArmor();
_lstInfo->addRow(2, _game->getLanguage()->getString("STR_UNDER_ARMOR").c_str(), ss.str().c_str());
_lstInfo->setCellColor(4, 1, Palette::blockOffset(15)+4);
_lstInfo->draw();
}
示例2: ArticleState
ArticleStateArmor::ArticleStateArmor(ArticleDefinitionArmor *defs) : ArticleState(defs->id), _row(0)
{
Armor *armor = _game->getMod()->getArmor(defs->id);
// add screen elements
_txtTitle = new Text(300, 17, 5, 24);
// Set palette
setPalette("PAL_BATTLEPEDIA");
ArticleState::initLayout();
// add other elements
add(_txtTitle);
// Set up objects
_btnOk->setColor(Palette::blockOffset(0)+15);
_btnPrev->setColor(Palette::blockOffset(0)+15);
_btnNext->setColor(Palette::blockOffset(0)+15);
_txtTitle->setColor(Palette::blockOffset(14)+15);
_txtTitle->setBig();
_txtTitle->setText(tr(defs->title));
_image = new Surface(320, 200, 0, 0);
add(_image);
std::string look = armor->getSpriteInventory();
look += "M0.SPK";
if (!CrossPlatform::fileExists(FileMap::getFilePath("UFOGRAPH/" + look)) && !_game->getMod()->getSurface(look))
{
look = armor->getSpriteInventory() + ".SPK";
}
_game->getMod()->getSurface(look)->blit(_image);
_lstInfo = new TextList(150, 96, 150, 46);
add(_lstInfo);
_lstInfo->setColor(Palette::blockOffset(14)+15);
_lstInfo->setColumns(2, 125, 25);
_lstInfo->setDot(true);
_txtInfo = new Text(300, 56, 8, 150);
add(_txtInfo);
_txtInfo->setColor(Palette::blockOffset(14)+15);
_txtInfo->setWordWrap(true);
_txtInfo->setText(tr(defs->text));
// Add armor values
addStat("STR_FRONT_ARMOR", armor->getFrontArmor());
addStat("STR_LEFT_ARMOR", armor->getSideArmor());
addStat("STR_RIGHT_ARMOR", armor->getSideArmor());
addStat("STR_REAR_ARMOR", armor->getRearArmor());
addStat("STR_UNDER_ARMOR", armor->getUnderArmor());
_lstInfo->addRow(0);
++_row;
// Add damage modifiers
for (int i = 0; i < Armor::DAMAGE_TYPES; ++i)
{
ItemDamageType dt = (ItemDamageType)i;
int percentage = (int)Round(armor->getDamageModifier(dt) * 100.0f);
std::string damage = getDamageTypeText(dt);
if (percentage != 100 && damage != "STR_UNKNOWN")
{
addStat(damage, Text::formatPercentage(percentage));
}
}
_lstInfo->addRow(0);
++_row;
// Add unit stats
addStat("STR_TIME_UNITS", armor->getStats()->tu, true);
addStat("STR_STAMINA", armor->getStats()->stamina, true);
addStat("STR_HEALTH", armor->getStats()->health, true);
addStat("STR_BRAVERY", armor->getStats()->bravery, true);
addStat("STR_REACTIONS", armor->getStats()->reactions, true);
addStat("STR_FIRING_ACCURACY", armor->getStats()->firing, true);
addStat("STR_THROWING_ACCURACY", armor->getStats()->throwing, true);
addStat("STR_MELEE_ACCURACY", armor->getStats()->melee, true);
addStat("STR_STRENGTH", armor->getStats()->strength, true);
addStat("STR_PSIONIC_STRENGTH", armor->getStats()->psiStrength, true);
addStat("STR_PSIONIC_SKILL", armor->getStats()->psiSkill, true);
centerAllSurfaces();
}