Hmm, I can't find now where that is controlled. Maybe those instances are hard-coded in the dialog.h files, which makes it impractical to change.
The only thing I DID find is this from PROGRAM\Dialog_func.c:
Code:
//get chr's formal name: Nathaniel Hawk or Christofor Manuel De Alencar
//normally same as "GetMySimpleName", but fills in blank firstnames with Captain/Mister
string GetMyFormalName(ref chr)
{
string name = "";
if(!CheckAttribute(chr,"name")) chr.name = name;//MAXIMUS -->
if(!CheckAttribute(chr,"lastname")) chr.lastname = name;
if (CheckAttribute(chr,"title")) {
if (XI_ConvertString(chr.title) != "") chr.title = XI_ConvertString(chr.title);
name = chr.title + " ";
}
else
{
// PB: Use appropriate title if no first name available -->
if (chr.name == "")
{
if(CheckAttribute(chr,"Ship.type") && chr.Ship.type!="" && chr.Ship.type!=SHIP_NOTUSED_TYPE_NAME)
{
name = XI_ConvertString("captain") + " "; // Use "Captain" if in command of a ship, but without rank
}
else
{
name = GetCharacterAddressForm(chr, ADDR_CIVIL, false, false) + " "; // Otherwise return a civil address form without name
}
}
// PB: Use appropriate title if no first name available <--
}
name += GetMySimpleName(chr); // KK
return name;
}
But that only affects characters without a first name.
Probably the option suggested in my previous post with using
SetRankTitle and
DeleteAttribute will be the simplest way to get close to what you want.
As additional note, I have just changed the syntax to:
Code:
SetRankTitle(ref char, string newtitle)
There is no need for nation to factor in there and, in fact, it didn't anyway; it just pretended to.