本文整理汇总了C++中Monster::GetMultiName方法的典型用法代码示例。如果您正苦于以下问题:C++ Monster::GetMultiName方法的具体用法?C++ Monster::GetMultiName怎么用?C++ Monster::GetMultiName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Monster
的用法示例。
在下文中一共展示了Monster::GetMultiName方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: RecruitMonster
u16 Dialog::RecruitMonster(const Monster & monster, u16 available)
{
Display & display = Display::Get();
LocalEvent & le = LocalEvent::Get();
// cursor
Cursor & cursor = Cursor::Get();
const Cursor::themes_t oldcursor = cursor.Themes();
cursor.Hide();
cursor.SetThemes(Cursor::POINTER);
// calculate max count
u32 max = 0;
const payment_t paymentMonster = monster.GetCost();
const Kingdom & kingdom = world.GetKingdom(Settings::Get().CurrentColor());
while(kingdom.AllowPayment(paymentMonster * max) && max < available) ++max;
u32 result = max;
payment_t paymentCosts(paymentMonster * result);
const Sprite & box = AGG::GetICN(ICN::RECRBKG, 0);
const Rect pos((display.w() - box.w()) / 2, Settings::Get().QVGA() ? (display.h() - box.h()) / 2 - 15 : (display.h() - box.h()) / 2, box.w(), box.h());
Background back(pos);
back.Save();
box.Blit(pos.x, pos.y);
Point dst_pt;
std::string str;
Text text;
// smear hardcore text "Cost per troop:"
const Sprite & smear = AGG::GetICN(ICN::TOWNNAME, 0);
dst_pt.x = pos.x + 144;
dst_pt.y = pos.y + 55;
smear.Blit(Rect(8, 1, 120, 12), dst_pt);
text.Set(_("Cost per troop:"), Font::SMALL);
dst_pt.x = pos.x + 206 - text.w() / 2;
dst_pt.y = pos.y + 55;
text.Blit(dst_pt);
// text recruit monster
str = _("Recruit %{name}");
String::Replace(str, "%{name}", monster.GetMultiName());
text.Set(str, Font::BIG);
dst_pt.x = pos.x + (pos.w - text.w()) / 2;
dst_pt.y = pos.y + 25;
text.Blit(dst_pt);
// sprite monster
const Sprite & smon = AGG::GetICN(monster.ICNMonh(), 0);
dst_pt.x = pos.x + 70 - smon.w() / 2;
dst_pt.y = pos.y + 130 - smon.h();
smon.Blit(dst_pt);
bool extres = 2 == paymentMonster.GetValidItems();
// info resource
// gold
const Sprite & sgold = AGG::GetICN(ICN::RESOURCE, 6);
dst_pt.x = pos.x + (extres ? 150 : 175);
dst_pt.y = pos.y + 75;
sgold.Blit(dst_pt);
dst_pt.x = pos.x + (extres ? 105 : 130);
dst_pt.y = pos.y + 200;
sgold.Blit(dst_pt);
text.Set(GetString(paymentMonster.gold), Font::SMALL);
dst_pt.x = pos.x + (extres ? 183 : 205) - text.w() / 2;
dst_pt.y = pos.y + 103;
text.Blit(dst_pt);
// crystal
if(paymentMonster.crystal)
{
const Sprite & sres = AGG::GetICN(ICN::RESOURCE, 4);
RedrawResourceInfo(sres, pos, paymentMonster.crystal,
225, 75, 240, 103);
dst_pt.x = pos.x + 180;
dst_pt.y = pos.y + 200;
sres.Blit(dst_pt);
}
else
// mercury
if(paymentMonster.mercury)
{
const Sprite & sres = AGG::GetICN(ICN::RESOURCE, 1);
RedrawResourceInfo(sres, pos, paymentMonster.mercury,
225, 72, 240, 103);
dst_pt.x = pos.x + 180;
dst_pt.y = pos.y + 197;
sres.Blit(dst_pt);
}
else
// wood
//.........这里部分代码省略.........
示例2: DwellingInfo
void Dialog::DwellingInfo(const Monster & monster, u16 available)
{
Display & display = Display::Get();
// cursor
Cursor & cursor = Cursor::Get();
const Cursor::themes_t oldcursor = cursor.Themes();
cursor.Hide();
cursor.SetThemes(cursor.POINTER);
const payment_t paymentMonster = monster.GetCost();
const Sprite & box = AGG::GetICN(ICN::RECR2BKG, 0);
const Rect pos((display.w() - box.w()) / 2, (display.h() - box.h()) / 2, box.w(), box.h());
Background back(pos);
back.Save();
box.Blit(pos.x, pos.y);
LocalEvent & le = LocalEvent::Get();
Point dst_pt;
Text text;
std::string str;
// text recruit monster
str = _("Recruit %{name}");
String::Replace(str, "%{name}", monster.GetMultiName());
text.Set(str, Font::BIG);
text.Blit(pos.x + (pos.w - text.w()) / 2, pos.y + 25);
// sprite monster
const Sprite & smon = AGG::GetICN(monster.ICNMonh(), 0);
dst_pt.x = pos.x + 70 - smon.w() / 2;
dst_pt.y = pos.y + 120 - smon.h();
smon.Blit(dst_pt);
bool extres = 2 == paymentMonster.GetValidItems();
// info resource
// gold
const Sprite & sgold = AGG::GetICN(ICN::RESOURCE, 6);
dst_pt.x = pos.x + (extres ? 150 : 175);
dst_pt.y = pos.y + 75;
sgold.Blit(dst_pt);
text.Set(GetString(paymentMonster.gold), Font::SMALL);
dst_pt.x = pos.x + (extres ? 183 : 205) - text.w() / 2;
dst_pt.y = pos.y + 103;
text.Blit(dst_pt);
// crystal
if(paymentMonster.crystal)
{
const Sprite & sres = AGG::GetICN(ICN::RESOURCE, 4);
RedrawResourceInfo(sres, pos, paymentMonster.crystal,
225, 75, 240, 103);
}
else
// mercury
if(paymentMonster.mercury)
{
const Sprite & sres = AGG::GetICN(ICN::RESOURCE, 1);
RedrawResourceInfo(sres, pos, paymentMonster.mercury,
225, 72, 240, 103);
}
else
// wood
if(paymentMonster.wood)
{
const Sprite & sres = AGG::GetICN(ICN::RESOURCE, 0);
RedrawResourceInfo(sres, pos, paymentMonster.wood,
225, 72, 240, 103);
}
else
// ore
if(paymentMonster.ore)
{
const Sprite & sres = AGG::GetICN(ICN::RESOURCE, 2);
RedrawResourceInfo(sres, pos, paymentMonster.ore,
225, 72, 240, 103);
}
else
// sulfur
if(paymentMonster.sulfur)
{
const Sprite & sres = AGG::GetICN(ICN::RESOURCE, 3);
RedrawResourceInfo(sres, pos, paymentMonster.sulfur,
225, 75, 240, 103);
}
else
// gems
if(paymentMonster.gems)
{
const Sprite & sres = AGG::GetICN(ICN::RESOURCE, 5);
RedrawResourceInfo(sres, pos, paymentMonster.gems,
225, 75, 240, 103);
}
// text available
str = _("Available: %{count}");
//.........这里部分代码省略.........