本文整理汇总了C++中Craft::getName方法的典型用法代码示例。如果您正苦于以下问题:C++ Craft::getName方法的具体用法?C++ Craft::getName怎么用?C++ Craft::getName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Craft
的用法示例。
在下文中一共展示了Craft::getName方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: edtCraftKeyPress
/**
* Changes the Craft name.
* @param action Pointer to an action.
*/
void CraftInfoState::edtCraftKeyPress(Action *action)
{
if (action->getDetails()->key.keysym.sym == SDLK_RETURN ||
action->getDetails()->key.keysym.sym == SDLK_KP_ENTER)
{
Craft *c = _base->getCrafts()->at(_craft);
if (c->getName(_game->getLanguage()) != _edtCraft->getText())
{
c->setName(_edtCraft->getText());
_edtCraft->setText(c->getName(_game->getLanguage()));
}
}
}
示例2: lstSoldiersClick
/**
* Shows the selected soldier's info.
* @param action Pointer to an action.
*/
void CraftSoldiersState::lstSoldiersClick(Action *action)
{
int row = _lstSoldiers->getSelectedRow();
Craft *c = _base->getCrafts()->at(_craft);
Soldier *s = _base->getSoldiers()->at(_lstSoldiers->getSelectedRow());
Uint8 color = Palette::blockOffset(13)+10;
if (s->getCraft() == c)
{
s->setCraft(0);
_lstSoldiers->setCellText(row, 2, _game->getLanguage()->getString("STR_NONE_UC"));
color = Palette::blockOffset(13)+10;
}
else if (c->getSpaceAvailable() > 0 && s->getWoundRecovery() == 0)
{
s->setCraft(c);
_lstSoldiers->setCellText(row, 2, c->getName(_game->getLanguage()));
color = Palette::blockOffset(13);
}
_lstSoldiers->setRowColor(row, color);
std::wstringstream ss;
ss << _game->getLanguage()->getString("STR_SPACE_AVAILABLE") << L'\x01' << c->getSpaceAvailable();
_txtAvailable->setText(ss.str());
std::wstringstream ss2;
ss2 << _game->getLanguage()->getString("STR_SPACE_USED") << L'\x01' << c->getSpaceUsed();
_txtUsed->setText(ss2.str());
}
示例3: btnOkClick
/**
* Returns to the previous screen.
* @param action Pointer to an action.
*/
void CraftInfoState::btnOkClick(Action *)
{
Craft *c = _base->getCrafts()->at(_craft);
if (c->getName(_game->getLanguage()) != _edtCraft->getText())
{
c->setName(_edtCraft->getText());
}
_game->popState();
}
示例4: lstSoldiersClick
/**
* Shows the selected soldier's info.
* @param action Pointer to an action.
*/
void CraftSoldiersState::lstSoldiersClick(Action *action)
{
double mx = action->getAbsoluteXMouse();
if ( mx >= _lstSoldiers->getArrowsLeftEdge() && mx < _lstSoldiers->getArrowsRightEdge() )
{
return;
}
int row = _lstSoldiers->getSelectedRow();
if (action->getDetails()->button.button == SDL_BUTTON_LEFT)
{
Craft *c = _base->getCrafts()->at(_craft);
Soldier *s = _base->getSoldiers()->at(_lstSoldiers->getSelectedRow());
Uint8 color = Palette::blockOffset(13)+10;
if (s->getCraft() == c)
{
s->setCraft(0);
_lstSoldiers->setCellText(row, 2, tr("STR_NONE_UC"));
color = Palette::blockOffset(13)+10;
}
else if (s->getCraft() && s->getCraft()->getStatus() == "STR_OUT")
{
color = Palette::blockOffset(15)+6;
}
else if (c->getSpaceAvailable() > 0 && s->getWoundRecovery() == 0)
{
s->setCraft(c);
_lstSoldiers->setCellText(row, 2, c->getName(_game->getLanguage()));
color = Palette::blockOffset(13);
}
_lstSoldiers->setRowColor(row, color);
_txtAvailable->setText(tr("STR_SPACE_AVAILABLE").arg(c->getSpaceAvailable()));
_txtUsed->setText(tr("STR_SPACE_USED").arg(c->getSpaceUsed()));
}
else if (action->getDetails()->button.button == SDL_BUTTON_RIGHT)
{
_game->pushState(new SoldierInfoState(_game, _base, row));
}
}
示例5: btnInventoryClick
/**
* Displays the inventory screen for the soldiers
* inside the craft.
* @param action Pointer to an action.
*/
void CraftEquipmentState::btnInventoryClick(Action *)
{
Craft *craft = _base->getCrafts()->at(_craft);
if (craft->getNumSoldiers() == 0)
{
std::wstringstream ss;
ss << craft->getName(_game->getLanguage()) << L'\n' << tr("STR_NO_CREW");
_game->pushState(new ErrorMessageState(_game, ss.str(), Palette::blockOffset(15)+1, "BACK04.SCR", 2));
}
else
{
_game->setPalette(_game->getResourcePack()->getPalette("PALETTES.DAT_4")->getColors());
SavedBattleGame *bgame = new SavedBattleGame();
_game->getSavedGame()->setBattleGame(bgame);
BattlescapeGenerator bgen = BattlescapeGenerator(_game);
bgen.runInventory(craft);
_game->pushState(new InventoryState(_game, false, 0));
}
}
示例6: State
/**
* Initializes all the elements in the Craft Equipment screen.
* @param game Pointer to the core game.
* @param base Pointer to the base to get info from.
* @param craft ID of the selected craft.
*/
CraftEquipmentState::CraftEquipmentState(Game *game, Base *base, size_t craft) : State(game), _sel(0), _base(base), _craft(craft)
{
bool allowChangeListValuesByMouseWheel=Options::getBool("allowChangeListValuesByMouseWheel");
_changeValueByMouseWheel = Options::getInt("changeValueByMouseWheel");
// Create objects
_window = new Window(this, 320, 200, 0, 0);
_btnOk = new TextButton(288, 16, 16, 176);
_txtTitle = new Text(300, 16, 16, 7);
_txtItem = new Text(144, 9, 16, 32);
_txtStores = new Text(150, 9, 160, 32);
_txtAvailable = new Text(110, 9, 16, 24);
_txtUsed = new Text(110, 9, 130, 24);
_txtCrew = new Text(71, 9, 244, 24);
_lstEquipment = new TextList(288, 128, 8, 40);
// Set palette
_game->setPalette(_game->getResourcePack()->getPalette("BACKPALS.DAT")->getColors(Palette::blockOffset(2)), Palette::backPos, 16);
add(_window);
add(_btnOk);
add(_txtTitle);
add(_txtItem);
add(_txtStores);
add(_txtAvailable);
add(_txtUsed);
add(_txtCrew);
add(_lstEquipment);
// Set up objects
_window->setColor(Palette::blockOffset(15)+1);
_window->setBackground(_game->getResourcePack()->getSurface("BACK04.SCR"));
_btnOk->setColor(Palette::blockOffset(15)+1);
_btnOk->setText(_game->getLanguage()->getString("STR_OK"));
_btnOk->onMouseClick((ActionHandler)&CraftEquipmentState::btnOkClick);
_txtTitle->setColor(Palette::blockOffset(15)+1);
_txtTitle->setBig();
Craft *c = _base->getCrafts()->at(_craft);
_txtTitle->setText(tr("STR_EQUIPMENT_FOR_craftname").arg(c->getName(_game->getLanguage())));
_txtItem->setColor(Palette::blockOffset(15)+1);
_txtItem->setText(_game->getLanguage()->getString("STR_ITEM"));
_txtStores->setColor(Palette::blockOffset(15)+1);
_txtStores->setText(_game->getLanguage()->getString("STR_STORES"));
_txtAvailable->setColor(Palette::blockOffset(15)+1);
_txtAvailable->setSecondaryColor(Palette::blockOffset(13));
std::wstringstream ss;
ss << _game->getLanguage()->getString("STR_SPACE_AVAILABLE") << L'\x01'<< c->getSpaceAvailable();
_txtAvailable->setText(ss.str());
_txtUsed->setColor(Palette::blockOffset(15)+1);
_txtUsed->setSecondaryColor(Palette::blockOffset(13));
std::wstringstream ss2;
ss2 << _game->getLanguage()->getString("STR_SPACE_USED") << L'\x01'<< c->getSpaceUsed();
_txtUsed->setText(ss2.str());
_txtCrew->setColor(Palette::blockOffset(15)+1);
_txtCrew->setSecondaryColor(Palette::blockOffset(13));
std::wstringstream ss3;
ss3 << _game->getLanguage()->getString("STR_SOLDIERS_UC") << ">" << L'\x01'<< c->getNumSoldiers();
_txtCrew->setText(ss3.str());
_lstEquipment->setColor(Palette::blockOffset(13)+10);
_lstEquipment->setArrowColor(Palette::blockOffset(15)+1);
_lstEquipment->setArrowColumn(203, ARROW_HORIZONTAL);
_lstEquipment->setColumns(3, 154, 85, 41);
_lstEquipment->setSelectable(true);
_lstEquipment->setBackground(_window);
_lstEquipment->setMargin(8);
if (allowChangeListValuesByMouseWheel) _lstEquipment->setAllowScrollOnArrowButtons(false);
_lstEquipment->onLeftArrowPress((ActionHandler)&CraftEquipmentState::lstEquipmentLeftArrowPress);
_lstEquipment->onLeftArrowRelease((ActionHandler)&CraftEquipmentState::lstEquipmentLeftArrowRelease);
_lstEquipment->onLeftArrowClick((ActionHandler)&CraftEquipmentState::lstEquipmentLeftArrowClick);
_lstEquipment->onRightArrowPress((ActionHandler)&CraftEquipmentState::lstEquipmentRightArrowPress);
_lstEquipment->onRightArrowRelease((ActionHandler)&CraftEquipmentState::lstEquipmentRightArrowRelease);
_lstEquipment->onRightArrowClick((ActionHandler)&CraftEquipmentState::lstEquipmentRightArrowClick);
if (allowChangeListValuesByMouseWheel) _lstEquipment->onMousePress((ActionHandler)&CraftEquipmentState::lstEquipmentMousePress);
int row = 0;
const std::vector<std::string> &items = _game->getRuleset()->getItemsList();
for (std::vector<std::string>::const_iterator i = items.begin(); i != items.end(); ++i)
{
// CHEAP HACK TO HIDE HWP AMMO
if ((*i).substr(0, 8) == "STR_HWP_")
continue;
RuleItem *rule = _game->getRuleset()->getItem(*i);
int cQty = 0;
if (rule->isFixed())
{
//.........这里部分代码省略.........
示例7: init
/**
* The craft info can change
* after going into other screens.
*/
void CraftInfoState::init()
{
// Set palette
_game->setPalette(_game->getResourcePack()->getPalette("BACKPALS.DAT")->getColors(Palette::blockOffset(3)), Palette::backPos, 16);
Craft *c = _base->getCrafts()->at(_craft);
_edtCraft->setText(c->getName(_game->getLanguage()));
SurfaceSet *texture = _game->getResourcePack()->getSurfaceSet("BASEBITS.PCK");
texture->getFrame(c->getRules()->getSprite() + 33)->setX(0);
texture->getFrame(c->getRules()->getSprite() + 33)->setY(0);
texture->getFrame(c->getRules()->getSprite() + 33)->blit(_sprite);
std::wstringstream ss;
ss << tr("STR_DAMAGE_UC_").arg(Text::formatPercentage(c->getDamagePercentage()));
if (c->getStatus() == "STR_REPAIRS")
{
int damageDays = (int)ceil((float)c->getDamage() / c->getRules()->getRepairRate() / 24.0f);
ss << L"\n(" << tr("STR_DAY", damageDays) << ")";
}
_txtDamage->setText(ss.str());
std::wstringstream ss2;
ss2 << tr("STR_FUEL").arg(Text::formatPercentage(c->getFuelPercentage()));
if (c->getStatus() == "STR_REFUELLING")
{
int fuelDays = (int) ceil((float)(c->getRules()->getMaxFuel() - c->getFuel()) / c->getRules()->getRefuelRate() / 48.0f);
ss2 << L"\n(" << tr("STR_DAY", fuelDays) << ")";
}
_txtFuel->setText(ss2.str());
if (c->getRules()->getSoldiers() > 0)
{
_crew->clear();
_equip->clear();
Surface *frame1 = texture->getFrame(38);
frame1->setY(0);
for (int i = 0, x = 0; i < c->getNumSoldiers(); ++i, x += 10)
{
frame1->setX(x);
frame1->blit(_crew);
}
Surface *frame2 = texture->getFrame(40);
frame2->setY(0);
int x = 0;
for (int i = 0; i < c->getNumVehicles(); ++i, x += 10)
{
frame2->setX(x);
frame2->blit(_equip);
}
Surface *frame3 = texture->getFrame(39);
for (int i = 0; i < c->getNumEquipment(); i += 4, x += 10)
{
frame3->setX(x);
frame3->blit(_equip);
}
}
else
{
_crew->setVisible(false);
_equip->setVisible(false);
_btnCrew->setVisible(false);
_btnEquip->setVisible(false);
_btnArmor->setVisible(false);
}
if (c->getRules()->getWeapons() > 0)
{
CraftWeapon *w1 = c->getWeapons()->at(0);
if (w1 != 0)
{
Surface *frame = texture->getFrame(w1->getRules()->getSprite() + 48);
frame->setX(0);
frame->setY(0);
frame->blit(_weapon1);
_txtW1Name->setText(tr(w1->getRules()->getType()));
_txtW1Ammo->setText(tr("STR_AMMO_").arg(w1->getAmmo()));
_txtW1Max->setText(tr("STR_MAX").arg(w1->getRules()->getAmmoMax()));
}
else
{
_weapon1->clear();
_txtW1Name->setText(L"");
_txtW1Ammo->setText(L"");
_txtW1Max->setText(L"");
}
}
else
{
_weapon1->setVisible(false);
_btnW1->setVisible(false);
//.........这里部分代码省略.........
示例8: State
/**
* Initializes all the elements in the Craft Soldiers screen.
* @param game Pointer to the core game.
* @param base Pointer to the base to get info from.
* @param craft ID of the selected craft.
*/
CraftSoldiersState::CraftSoldiersState(Game *game, Base *base, size_t craft) : State(game), _base(base), _craft(craft)
{
// Create objects
_window = new Window(this, 320, 200, 0, 0);
_btnOk = new TextButton(288, 16, 16, 176);
_txtTitle = new Text(300, 17, 16, 7);
_txtName = new Text(114, 9, 16, 32);
_txtRank = new Text(102, 9, 122, 32);
_txtCraft = new Text(84, 9, 224, 32);
_txtAvailable = new Text(110, 9, 16, 24);
_txtUsed = new Text(110, 9, 122, 24);
_lstSoldiers = new TextList(288, 128, 8, 40);
// Set palette
_game->setPalette(_game->getResourcePack()->getPalette("BACKPALS.DAT")->getColors(Palette::blockOffset(2)), Palette::backPos, 16);
add(_window);
add(_btnOk);
add(_txtTitle);
add(_txtName);
add(_txtRank);
add(_txtCraft);
add(_txtAvailable);
add(_txtUsed);
add(_lstSoldiers);
centerAllSurfaces();
// Set up objects
_window->setColor(Palette::blockOffset(15)+6);
_window->setBackground(_game->getResourcePack()->getSurface("BACK02.SCR"));
_btnOk->setColor(Palette::blockOffset(13)+10);
_btnOk->setText(tr("STR_OK"));
_btnOk->onMouseClick((ActionHandler)&CraftSoldiersState::btnOkClick);
_btnOk->onKeyboardPress((ActionHandler)&CraftSoldiersState::btnOkClick, Options::keyCancel);
_txtTitle->setColor(Palette::blockOffset(15)+6);
_txtTitle->setBig();
Craft *c = _base->getCrafts()->at(_craft);
_txtTitle->setText(tr("STR_SELECT_SQUAD_FOR_CRAFT").arg(c->getName(_game->getLanguage())));
_txtName->setColor(Palette::blockOffset(15)+6);
_txtName->setText(tr("STR_NAME_UC"));
_txtRank->setColor(Palette::blockOffset(15)+6);
_txtRank->setText(tr("STR_RANK"));
_txtCraft->setColor(Palette::blockOffset(15)+6);
_txtCraft->setText(tr("STR_CRAFT"));
_txtAvailable->setColor(Palette::blockOffset(15)+6);
_txtAvailable->setSecondaryColor(Palette::blockOffset(13));
_txtAvailable->setText(tr("STR_SPACE_AVAILABLE").arg(c->getSpaceAvailable()));
_txtUsed->setColor(Palette::blockOffset(15)+6);
_txtUsed->setSecondaryColor(Palette::blockOffset(13));
_txtUsed->setText(tr("STR_SPACE_USED").arg(c->getSpaceUsed()));
_lstSoldiers->setColor(Palette::blockOffset(13)+10);
_lstSoldiers->setArrowColor(Palette::blockOffset(15)+6);
_lstSoldiers->setArrowColumn(192, ARROW_VERTICAL);
_lstSoldiers->setColumns(3, 106, 102, 72);
_lstSoldiers->setSelectable(true);
_lstSoldiers->setBackground(_window);
_lstSoldiers->setMargin(8);
_lstSoldiers->onLeftArrowClick((ActionHandler)&CraftSoldiersState::lstItemsLeftArrowClick);
_lstSoldiers->onRightArrowClick((ActionHandler)&CraftSoldiersState::lstItemsRightArrowClick);
_lstSoldiers->onMouseClick((ActionHandler)&CraftSoldiersState::lstSoldiersClick, 0);
}
示例9: State
/**
* Initializes all the elements in the Craft Equipment screen.
* @param game Pointer to the core game.
* @param base Pointer to the base to get info from.
* @param craft ID of the selected craft.
*/
CraftEquipmentState::CraftEquipmentState(Game *game, Base *base, unsigned int craft) : State(game), _sel(0), _base(base), _craft(craft)
{
// Create objects
_window = new Window(this, 320, 200, 0, 0);
_btnOk = new TextButton(288, 16, 16, 176);
_txtTitle = new Text(300, 16, 16, 7);
_txtItem = new Text(144, 9, 16, 32);
_txtStores = new Text(150, 9, 160, 32);
_txtAvailable = new Text(110, 9, 16, 24);
_txtUsed = new Text(110, 9, 130, 24);
_lstEquipment = new TextList(288, 128, 8, 40);
// Set palette
_game->setPalette(_game->getResourcePack()->getPalette("BACKPALS.DAT")->getColors(Palette::blockOffset(2)), Palette::backPos, 16);
add(_window);
add(_btnOk);
add(_txtTitle);
add(_txtItem);
add(_txtStores);
add(_txtAvailable);
add(_txtUsed);
add(_lstEquipment);
// Set up objects
_window->setColor(Palette::blockOffset(15)+1);
_window->setBackground(_game->getResourcePack()->getSurface("BACK04.SCR"));
_btnOk->setColor(Palette::blockOffset(15)+1);
_btnOk->setText(_game->getLanguage()->getString("STR_OK"));
_btnOk->onMouseClick((ActionHandler)&CraftEquipmentState::btnOkClick);
_txtTitle->setColor(Palette::blockOffset(15)+1);
_txtTitle->setBig();
Craft *c = _base->getCrafts()->at(_craft);
std::wstring s;
s = _game->getLanguage()->getString("STR_EQUIPMENT_FOR") + c->getName(_game->getLanguage());
_txtTitle->setText(s);
_txtItem->setColor(Palette::blockOffset(15)+1);
_txtItem->setText(_game->getLanguage()->getString("STR_ITEM"));
_txtStores->setColor(Palette::blockOffset(15)+1);
_txtStores->setText(_game->getLanguage()->getString("STR_STORES"));
_txtAvailable->setColor(Palette::blockOffset(15)+1);
_txtAvailable->setSecondaryColor(Palette::blockOffset(13));
std::wstringstream ss;
ss << _game->getLanguage()->getString("STR_SPACE_AVAILABLE") << L'\x01'<< c->getRules()->getSoldiers() - c->getNumSoldiers();
_txtAvailable->setText(ss.str());
_txtUsed->setColor(Palette::blockOffset(15)+1);
_txtUsed->setSecondaryColor(Palette::blockOffset(13));
std::wstringstream ss2;
ss2 << _game->getLanguage()->getString("STR_SPACE_USED") << L'\x01'<< c->getNumSoldiers();
_txtUsed->setText(ss2.str());
_lstEquipment->setColor(Palette::blockOffset(13)+10);
_lstEquipment->setArrowColor(Palette::blockOffset(15)+1);
_lstEquipment->setArrowColumn(203, ARROW_HORIZONTAL);
_lstEquipment->setColumns(3, 154, 85, 41);
_lstEquipment->setSelectable(true);
_lstEquipment->setBackground(_window);
_lstEquipment->setMargin(8);
_lstEquipment->onLeftArrowPress((ActionHandler)&CraftEquipmentState::lstEquipmentLeftArrowPress);
_lstEquipment->onLeftArrowRelease((ActionHandler)&CraftEquipmentState::lstEquipmentLeftArrowRelease);
_lstEquipment->onRightArrowPress((ActionHandler)&CraftEquipmentState::lstEquipmentRightArrowPress);
_lstEquipment->onRightArrowRelease((ActionHandler)&CraftEquipmentState::lstEquipmentRightArrowRelease);
_items.push_back("STR_PISTOL");
_items.push_back("STR_PISTOL_CLIP");
_items.push_back("STR_RIFLE");
_items.push_back("STR_RIFLE_CLIP");
_items.push_back("STR_HEAVY_CANNON");
_items.push_back("STR_HC_AP_AMMO");
_items.push_back("STR_HC_HE_AMMO");
_items.push_back("STR_HC_I_AMMO");
_items.push_back("STR_AUTO_CANNON");
_items.push_back("STR_AC_AP_AMMO");
_items.push_back("STR_AC_HE_AMMO");
_items.push_back("STR_AC_I_AMMO");
_items.push_back("STR_ROCKET_LAUNCHER");
_items.push_back("STR_SMALL_ROCKET");
_items.push_back("STR_LARGE_ROCKET");
_items.push_back("STR_INCENDIARY_ROCKET");
_items.push_back("STR_GRENADE");
_items.push_back("STR_SMOKE_GRENADE");
_items.push_back("STR_ELECTRO_FLARE");
int row = 0;
for (std::vector<std::string>::iterator i = _items.begin(); i != _items.end();)
{
if (_base->getItems()->getItem(*i) == 0 && c->getItems()->getItem(*i) == 0)
{
//.........这里部分代码省略.........
示例10: Window
/**
* Initializes all the elements in the Craft Equipment screen.
* @param game Pointer to the core game.
* @param base Pointer to the base to get info from.
* @param craft ID of the selected craft.
*/
CraftEquipmentState::CraftEquipmentState(Base *base, size_t craft) : _sel(0), _craft(craft), _base(base), _totalItems(0), _ammoColor(0)
{
Craft *c = _base->getCrafts()->at(_craft);
bool craftHasACrew = c->getNumSoldiers() > 0;
bool isNewBattle = _game->getSavedGame()->getMonthsPassed() == -1;
// Create objects
_window = new Window(this, 320, 200, 0, 0);
_btnOk = new TextButton((craftHasACrew || isNewBattle)? 148:288, 16, (craftHasACrew || isNewBattle)? 164:16, 176);
_btnClear = new TextButton(148, 16, 8, 176);
_btnInventory = new TextButton(148, 16, 8, 176);
_txtTitle = new Text(300, 17, 16, 7);
_txtItem = new Text(144, 9, 16, 32);
_txtStores = new Text(150, 9, 160, 32);
_txtAvailable = new Text(110, 9, 16, 24);
_txtUsed = new Text(110, 9, 130, 24);
_txtCrew = new Text(71, 9, 244, 24);
_lstEquipment = new TextList(288, 128, 8, 40);
// Set palette
setInterface("craftEquipment");
_ammoColor = _game->getMod()->getInterface("craftEquipment")->getElement("ammoColor")->color;
add(_window, "window", "craftEquipment");
add(_btnOk, "button", "craftEquipment");
add(_btnClear, "button", "craftEquipment");
add(_btnInventory, "button", "craftEquipment");
add(_txtTitle, "text", "craftEquipment");
add(_txtItem, "text", "craftEquipment");
add(_txtStores, "text", "craftEquipment");
add(_txtAvailable, "text", "craftEquipment");
add(_txtUsed, "text", "craftEquipment");
add(_txtCrew, "text", "craftEquipment");
add(_lstEquipment, "list", "craftEquipment");
centerAllSurfaces();
// Set up objects
_window->setBackground(_game->getMod()->getSurface("BACK04.SCR"));
_btnOk->setText(tr("STR_OK"));
_btnOk->onMouseClick((ActionHandler)&CraftEquipmentState::btnOkClick);
_btnOk->onKeyboardPress((ActionHandler)&CraftEquipmentState::btnOkClick, Options::keyCancel);
_btnClear->setText(tr("STR_UNLOAD_CRAFT"));
_btnClear->onMouseClick((ActionHandler)&CraftEquipmentState::btnClearClick);
_btnClear->setVisible(isNewBattle);
_btnInventory->setText(tr("STR_INVENTORY"));
_btnInventory->onMouseClick((ActionHandler)&CraftEquipmentState::btnInventoryClick);
_btnInventory->setVisible(craftHasACrew && !isNewBattle);
_txtTitle->setBig();
_txtTitle->setText(tr("STR_EQUIPMENT_FOR_CRAFT").arg(c->getName(_game->getLanguage())));
_txtItem->setText(tr("STR_ITEM"));
_txtStores->setText(tr("STR_STORES"));
_txtAvailable->setText(tr("STR_SPACE_AVAILABLE").arg(c->getSpaceAvailable()));
_txtUsed->setText(tr("STR_SPACE_USED").arg(c->getSpaceUsed()));
std::wostringstream ss3;
ss3 << tr("STR_SOLDIERS_UC") << ">" << L'\x01'<< c->getNumSoldiers();
_txtCrew->setText(ss3.str());
_lstEquipment->setArrowColumn(203, ARROW_HORIZONTAL);
_lstEquipment->setColumns(3, 156, 83, 41);
_lstEquipment->setSelectable(true);
_lstEquipment->setBackground(_window);
_lstEquipment->setMargin(8);
_lstEquipment->onLeftArrowPress((ActionHandler)&CraftEquipmentState::lstEquipmentLeftArrowPress);
_lstEquipment->onLeftArrowRelease((ActionHandler)&CraftEquipmentState::lstEquipmentLeftArrowRelease);
_lstEquipment->onLeftArrowClick((ActionHandler)&CraftEquipmentState::lstEquipmentLeftArrowClick);
_lstEquipment->onRightArrowPress((ActionHandler)&CraftEquipmentState::lstEquipmentRightArrowPress);
_lstEquipment->onRightArrowRelease((ActionHandler)&CraftEquipmentState::lstEquipmentRightArrowRelease);
_lstEquipment->onRightArrowClick((ActionHandler)&CraftEquipmentState::lstEquipmentRightArrowClick);
_lstEquipment->onMousePress((ActionHandler)&CraftEquipmentState::lstEquipmentMousePress);
int row = 0;
const std::vector<std::string> &items = _game->getMod()->getItemsList();
for (std::vector<std::string>::const_iterator i = items.begin(); i != items.end(); ++i)
{
RuleItem *rule = _game->getMod()->getItem(*i);
int cQty = 0;
if (rule->isFixed())
{
cQty = c->getVehicleCount(*i);
}
else
{
cQty = c->getItems()->getItem(*i);
//.........这里部分代码省略.........
示例11: if
/**
* Initializes all the elements in the Craft Soldiers screen.
* @param game Pointer to the core game.
* @param base Pointer to the base to get info from.
* @param craft ID of the selected craft.
*/
CraftSoldiersState::CraftSoldiersState(Game *game, Base *base, size_t craft) : State(game), _base(base), _craft(craft)
{
// Create objects
_window = new Window(this, 320, 200, 0, 0);
_btnOk = new TextButton(288, 16, 16, 176);
_txtTitle = new Text(300, 16, 16, 7);
_txtName = new Text(114, 9, 16, 32);
_txtRank = new Text(102, 9, 130, 32);
_txtCraft = new Text(82, 9, 222, 32);
_txtAvailable = new Text(110, 9, 16, 24);
_txtUsed = new Text(110, 9, 130, 24);
_lstSoldiers = new TextList(288, 128, 8, 40);
// Set palette
_game->setPalette(_game->getResourcePack()->getPalette("BACKPALS.DAT")->getColors(Palette::blockOffset(2)), Palette::backPos, 16);
add(_window);
add(_btnOk);
add(_txtTitle);
add(_txtName);
add(_txtRank);
add(_txtCraft);
add(_txtAvailable);
add(_txtUsed);
add(_lstSoldiers);
// Set up objects
_window->setColor(Palette::blockOffset(15)+6);
_window->setBackground(_game->getResourcePack()->getSurface("BACK02.SCR"));
_btnOk->setColor(Palette::blockOffset(13)+10);
_btnOk->setText(_game->getLanguage()->getString("STR_OK"));
_btnOk->onMouseClick((ActionHandler)&CraftSoldiersState::btnOkClick);
_txtTitle->setColor(Palette::blockOffset(15)+6);
_txtTitle->setBig();
Craft *c = _base->getCrafts()->at(_craft);
std::wstring s;
s = _game->getLanguage()->getString("STR_SELECT_SQUAD_FOR") + c->getName(_game->getLanguage());
_txtTitle->setText(s);
_txtName->setColor(Palette::blockOffset(15)+6);
_txtName->setText(_game->getLanguage()->getString("STR_NAME_UC"));
_txtRank->setColor(Palette::blockOffset(15)+6);
_txtRank->setText(_game->getLanguage()->getString("STR_RANK"));
_txtCraft->setColor(Palette::blockOffset(15)+6);
_txtCraft->setText(_game->getLanguage()->getString("STR_CRAFT"));
_txtAvailable->setColor(Palette::blockOffset(15)+6);
_txtAvailable->setSecondaryColor(Palette::blockOffset(13));
std::wstringstream ss;
ss << _game->getLanguage()->getString("STR_SPACE_AVAILABLE") << L'\x01' << c->getSpaceAvailable();
_txtAvailable->setText(ss.str());
_txtUsed->setColor(Palette::blockOffset(15)+6);
_txtUsed->setSecondaryColor(Palette::blockOffset(13));
std::wstringstream ss2;
ss2 << _game->getLanguage()->getString("STR_SPACE_USED") << L'\x01' << c->getSpaceUsed();
_txtUsed->setText(ss2.str());
_lstSoldiers->setColor(Palette::blockOffset(13)+10);
_lstSoldiers->setArrowColor(Palette::blockOffset(15)+6);
_lstSoldiers->setColumns(3, 114, 92, 74);
_lstSoldiers->setSelectable(true);
_lstSoldiers->setBackground(_window);
_lstSoldiers->setMargin(8);
_lstSoldiers->onMouseClick((ActionHandler)&CraftSoldiersState::lstSoldiersClick);
int row = 0;
for (std::vector<Soldier*>::iterator i = _base->getSoldiers()->begin(); i != _base->getSoldiers()->end(); ++i)
{
_lstSoldiers->addRow(3, (*i)->getName().c_str(), _game->getLanguage()->getString((*i)->getRankString()).c_str(), (*i)->getCraftString(_game->getLanguage()).c_str());
Uint8 color;
if ((*i)->getCraft() == c)
{
color = Palette::blockOffset(13);
}
else if ((*i)->getCraft() != 0)
{
color = Palette::blockOffset(15)+6;
}
else
{
color = Palette::blockOffset(13)+10;
}
_lstSoldiers->setRowColor(row, color);
row++;
}
}
示例12: init
/**
* The craft info can change
* after going into other screens.
*/
void CraftInfoState::init()
{
// Set palette
_game->setPalette(_game->getResourcePack()->getPalette("BACKPALS.DAT")->getColors(Palette::blockOffset(3)), Palette::backPos, 16);
Craft *c = _base->getCrafts()->at(_craft);
_edtCraft->setText(c->getName(_game->getLanguage()));
SurfaceSet *texture = _game->getResourcePack()->getSurfaceSet("BASEBITS.PCK");
texture->getFrame(c->getRules()->getSprite() + 33)->setX(0);
texture->getFrame(c->getRules()->getSprite() + 33)->setY(0);
texture->getFrame(c->getRules()->getSprite() + 33)->blit(_sprite);
std::wstringstream ss;
ss << _game->getLanguage()->getString("STR_DAMAGE_UC_") << L'\x01' << c->getDamagePercentage() << "%";
_txtDamage->setText(ss.str());
std::wstringstream ss2;
ss2 << _game->getLanguage()->getString("STR_FUEL") << L'\x01' << c->getFuelPercentage() << "%";
_txtFuel->setText(ss2.str());
if (c->getRules()->getSoldiers() > 0)
{
_crew->clear();
_equip->clear();
Surface *frame1 = texture->getFrame(38);
frame1->setY(0);
for (int i = 0, x = 0; i < c->getNumSoldiers(); ++i, x += 10)
{
frame1->setX(x);
frame1->blit(_crew);
}
Surface *frame2 = texture->getFrame(39);
frame2->setY(0);
int x = 0;
for (int i = 0; i < c->getNumEquipment(); i += 4, x += 10)
{
frame2->setX(x);
frame2->blit(_equip);
}
Surface *frame3 = texture->getFrame(40);
for (int i = 0; i < c->getNumVehicles(); ++i, x += 10)
{
frame3->setX(x);
frame3->blit(_equip);
}
}
else
{
_crew->setVisible(false);
_equip->setVisible(false);
_btnCrew->setVisible(false);
_btnEquip->setVisible(false);
_btnArmor->setVisible(false);
}
if (c->getRules()->getWeapons() > 0)
{
CraftWeapon *w1 = c->getWeapons()->at(0);
if (w1 != 0)
{
Surface *frame = texture->getFrame(w1->getRules()->getSprite() + 48);
frame->setX(0);
frame->setY(0);
frame->blit(_weapon1);
_txtW1Name->setText(_game->getLanguage()->getString(w1->getRules()->getType()));
std::wstringstream ss3;
ss3 << _game->getLanguage()->getString("STR_AMMO_") << L'\x01' << w1->getAmmo();
_txtW1Ammo->setText(ss3.str());
std::wstringstream ss4;
ss4 << _game->getLanguage()->getString("STR_MAX") << L'\x01' << w1->getRules()->getAmmoMax();
_txtW1Max->setText(ss4.str());
}
else
{
_weapon1->clear();
_txtW1Name->setText(L"");
_txtW1Ammo->setText(L"");
_txtW1Max->setText(L"");
}
}
else
{
_weapon1->setVisible(false);
_btnW1->setVisible(false);
_txtW1Name->setVisible(false);
_txtW1Ammo->setVisible(false);
_txtW1Max->setVisible(false);
}
//.........这里部分代码省略.........