mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-23 07:40:14 +00:00
Add player name placeholder and improve dialog text substitution
Adds $n placeholder for player character names in quest and gossip dialog. Enhances documentation for three-option gender placeholders to clarify support for neutral terms like friend/champion/sibling. Player name defaults to 'Adventurer' when character not loaded.
This commit is contained in:
parent
0071c24713
commit
e7f8fb557c
2 changed files with 16 additions and 5 deletions
|
|
@ -4649,11 +4649,15 @@ std::string GameScreen::getSettingsPath() {
|
|||
}
|
||||
|
||||
std::string GameScreen::replaceGenderPlaceholders(const std::string& text, game::GameHandler& gameHandler) {
|
||||
// Get player gender and pronouns
|
||||
// Get player gender, pronouns, and name
|
||||
game::Gender gender = game::Gender::NONBINARY;
|
||||
std::string playerName = "Adventurer";
|
||||
const auto* character = gameHandler.getActiveCharacter();
|
||||
if (character) {
|
||||
gender = character->gender;
|
||||
if (!character->name.empty()) {
|
||||
playerName = character->name;
|
||||
}
|
||||
}
|
||||
game::Pronouns pronouns = game::Pronouns::forGender(gender);
|
||||
|
||||
|
|
@ -4665,7 +4669,8 @@ std::string GameScreen::replaceGenderPlaceholders(const std::string& text, game:
|
|||
s.erase(s.find_last_not_of(" \t\n\r") + 1);
|
||||
};
|
||||
|
||||
// Replace pronoun placeholders first (simpler, no complex parsing)
|
||||
// Replace simple placeholders first
|
||||
// $n = player name
|
||||
// $p = subject pronoun (he/she/they)
|
||||
// $o = object pronoun (him/her/them)
|
||||
// $s = possessive adjective (his/her/their)
|
||||
|
|
@ -4678,6 +4683,7 @@ std::string GameScreen::replaceGenderPlaceholders(const std::string& text, game:
|
|||
std::string replacement;
|
||||
|
||||
switch (code) {
|
||||
case 'n': replacement = playerName; break;
|
||||
case 'p': replacement = pronouns.subject; break;
|
||||
case 'o': replacement = pronouns.object; break;
|
||||
case 's': replacement = pronouns.possessive; break;
|
||||
|
|
@ -4691,7 +4697,7 @@ std::string GameScreen::replaceGenderPlaceholders(const std::string& text, game:
|
|||
continue;
|
||||
}
|
||||
|
||||
// Replace the pronoun placeholder
|
||||
// Replace the placeholder
|
||||
result.replace(pos, 2, replacement);
|
||||
pos += replacement.length();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue