std::string Unit::formatGeneralMessage(const int32_t baseTextId) const { const int32_t textId = VLC->generaltexth->pluralText(baseTextId, getCount()); MetaString text; text.addTxt(MetaString::GENERAL_TXT, textId); text.addCreReplacement(creatureId(), getCount()); return text.toString(); }
std::string CompleteQuest::questToString() const { if(q.quest->missionType == CQuest::MISSION_NONE) return "inactive quest"; MetaString ms; q.quest->getRolloverText(ms, false); return ms.toString(); }
void CQuestLog::selectQuest (int which) { questIndex = which; currentQuest = &quests[which]; minimap->currentQuest = currentQuest; MetaString text; std::vector<Component> components; //TODO: display them currentQuest->quest->getVisitText (text, components , currentQuest->quest->isCustomFirst, true); description->setText (text.toString()); //TODO: use special log entry text redraw(); }
std::string CGSeerHut::getHoverText(PlayerColor player) const { std::string hoverName = getObjectName(); if (ID == Obj::SEER_HUT && quest->progress != CQuest::NOT_ACTIVE) { hoverName = VLC->generaltexth->allTexts[347]; boost::algorithm::replace_first(hoverName,"%s", seerName); } if (quest->progress & quest->missionType) //rollover when the quest is active { MetaString ms; getRolloverText (ms, true); hoverName += ms.toString(); } return hoverName; }
void CQuestLog::init() { minimap = new CQuestMinimap (Rect (47, 33, 144, 144)); description = new CTextBox ("", Rect(245, 33, 350, 355), 1, FONT_MEDIUM, TOPLEFT, Colors::WHITE); ok = new CAdventureMapButton("",CGI->generaltexth->zelp[445].second, boost::bind(&CQuestLog::close,this), 547, 401, "IOKAY.DEF", SDLK_RETURN); if (quests.size() > QUEST_COUNT) slider = new CSlider(203, 199, 230, boost::bind (&CQuestLog::sliderMoved, this, _1), QUEST_COUNT, quests.size(), false, 0); for (int i = 0; i < quests.size(); ++i) { MetaString text; quests[i].quest->getRolloverText (text, false); if (quests[i].obj) text.addReplacement (quests[i].obj->getHoverText()); //get name of the object CQuestLabel * label = new CQuestLabel (Rect(28, 199 + i * 24, 172,30), FONT_SMALL, TOPLEFT, Colors::WHITE, text.toString()); label->callback = boost::bind(&CQuestLog::selectQuest, this, i); labels.push_back(label); } recreateQuestList (0); }