mirror of
https://github.com/libretro/scummvm.git
synced 2025-03-05 17:57:14 +00:00
WAGE: Implement WageEngine::encounter()
This commit is contained in:
parent
87766f6753
commit
51af66371d
@ -99,4 +99,28 @@ const char *getIndefiniteArticle(String &word) {
|
||||
return "a ";
|
||||
}
|
||||
|
||||
enum {
|
||||
GENDER_HE = 0,
|
||||
GENDER_SHE = 1,
|
||||
GENDER_IT = 2
|
||||
};
|
||||
|
||||
const char *prependGenderSpecificPronoun(int gender) {
|
||||
if (gender == GENDER_HE)
|
||||
return "his ";
|
||||
else if (gender == GENDER_SHE)
|
||||
return "her ";
|
||||
else
|
||||
return "its ";
|
||||
}
|
||||
|
||||
const char *getGenderSpecificPronoun(int gender, bool capitalize) {
|
||||
if (gender == GENDER_HE)
|
||||
return capitalize ? "He" : "he";
|
||||
else if (gender == GENDER_SHE)
|
||||
return capitalize ? "She" : "she";
|
||||
else
|
||||
return capitalize ? "It" : "it";
|
||||
}
|
||||
|
||||
} // End of namespace Wage
|
||||
|
@ -360,7 +360,41 @@ void WageEngine::onMove(Designed *what, Designed *from, Designed *to) {
|
||||
}
|
||||
|
||||
void WageEngine::encounter(Chr *player, Chr *chr) {
|
||||
warning("STUB WageEngine::encounter()");
|
||||
Common::String msg("You encounter ");
|
||||
if (!chr->_nameProperNoun)
|
||||
msg += getIndefiniteArticle(chr->_name);
|
||||
msg += chr->_name;
|
||||
msg += ".";
|
||||
appendText(msg);
|
||||
|
||||
if (!chr->_initialComment.empty())
|
||||
appendText(chr->_initialComment);
|
||||
|
||||
if (chr->_armor[Chr::HEAD_ARMOR] != NULL) {
|
||||
msg = chr->getNameWithDefiniteArticle(true);
|
||||
msg += " is wearing ";
|
||||
msg += getIndefiniteArticle(chr->_armor[Chr::HEAD_ARMOR]->_name);
|
||||
msg += ".";
|
||||
appendText(msg);
|
||||
}
|
||||
if (chr->_armor[Chr::BODY_ARMOR] != NULL) {
|
||||
msg = getGenderSpecificPronoun(chr->_gender, true);
|
||||
msg += " is protected by ";
|
||||
msg += prependGenderSpecificPronoun(chr->_gender);
|
||||
msg += chr->_armor[Chr::BODY_ARMOR]->_name;
|
||||
msg += ".";
|
||||
appendText(msg);
|
||||
}
|
||||
if (chr->_armor[Chr::SHIELD_ARMOR] != NULL) {
|
||||
Obj *obj = chr->_armor[Chr::SHIELD_ARMOR];
|
||||
msg = getGenderSpecificPronoun(chr->_gender, true);
|
||||
msg += " carries ";
|
||||
if (!obj->_namePlural)
|
||||
msg += getIndefiniteArticle(obj->_name);
|
||||
msg += obj->_name;
|
||||
msg += ".";
|
||||
appendText(msg);
|
||||
}
|
||||
}
|
||||
|
||||
void WageEngine::performCombatAction(Chr *npc, Chr *player) {
|
||||
|
@ -99,6 +99,9 @@ enum {
|
||||
Common::String readPascalString(Common::SeekableReadStream *in);
|
||||
Common::Rect *readRect(Common::SeekableReadStream *in);
|
||||
const char *getIndefiniteArticle(String &word);
|
||||
const char *prependGenderSpecificPronoun(int gender);
|
||||
const char *getGenderSpecificPronoun(int gender, bool capitalize);
|
||||
|
||||
|
||||
typedef Common::Array<byte *> Patterns;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user