• New Horizons on Maelstrom
    Maelstrom New Horizons


    Visit our website www.piratehorizons.com to quickly find download links for the newest versions of our New Horizons mods Beyond New Horizons and Maelstrom New Horizons!

Thoughts on "Dialog_func.c"

Grey Roger

Sea Dog
Staff member
Administrator
Storm Modder
I've found a bunch of functions in "Dialog_func.c" which I didn't know existed, and judging by a Windows search, neither did anyone else - I can't find any indication of them having been used.

string GetMyPronounSubj(ref chr) - returns "he" or "she"
string GetMyPronounObj(ref chr) - returns "him" or "her"
string GetMyPronounPoss(ref chr) - returns "his" or "hers"

These mimic what I've been doing in some of my storyline dialogs, and I've been rewriting some of those dialogs to use those functions. They don't completely replace my own version, though, because what is missing is "his" / "her". This is subtly different from 'GetMyPronounPoss', e.g. "that ship is his" versus "that is his ship" - which may use an identical pronoun in English but I'm not sure that the same applies to all other languages, bearing in mind we've already got one attempt at a translation under way. And since, for the purpose of translation, any call on these functions needs to be passed through 'XI_ConvertString', I can't see how to write a function to return "his" / "her" without it conflicting with 'GetMyPronounPoss'. So even if I change all my dialogs to use those functions where possible, "his" / "her" will be dealt with by the dialogs themselves.

A couple of lines in "Dialog_func.c" have an interesting comment:
Code:
AddressForms[GetAddressIndex(ADDR_CIVIL, ENGLAND, 0)] = XI_ConvertString("Mister");  // should this and Miss be master and mistress? This makes
AddressForms[GetAddressIndex(ADDR_CIVIL, ENGLAND, 1)] = XI_ConvertString("Miss");    // especial sense because often it's used with the player's _first_ name...
Those should certainly not be "Master" and "Mistress". Those are the address forms for children. If you're an 11 year old boy then you can expect to receive letters addressed to "Master <insert name here>", and you know you're being regarded as an adult when, years later, you start getting letters addressed to "Mr. <insert name here>".

All the civil address forms for women assume they're unmarried - "Miss", "Mademoiselle", "Señorita" etc. Tough luck on any female character who is married.
 
there are more of these kind of functions. using these is always better for general dialog files indeed so feel free to use them.
 
I thought about adding a function for "his" / "her", but the problems outlined above mean it's not going to be practical. Actually, it's even worse because "her" applies to both "do things to her" and "that's her thing", which means 'XI_ConvertString("her") will return the same word for both. But that's not true in other languages. So, best to leave "his" and "her" to be handled directly in dialogs, then they can be translated to the correct version depending on context.

I could take out the comments about "Master" and "Mistress", though.
 
I thought about adding a function for "his" / "her", but the problems outlined above mean it's not going to be practical. Actually, it's even worse because "her" applies to both "do things to her" and "that's her thing", which means 'XI_ConvertString("her") will return the same word for both. But that's not true in other languages. So, best to leave "his" and "her" to be handled directly in dialogs, then they can be translated to the correct version depending on context.

I could take out the comments about "Master" and "Mistress", though.
well in cases of women the only way to be sure it to actually have a "married" attribute for the character I guess ...
Also it could provide translation problems again because say or example in german you have different ways of adressing depending on how well you know someone and probably other langues have the same kinds of problems. so where possible I think its good to keep it in the dialog file itself.
 
There is a "married" attribute, not surprisingly called "ch.married". You can see it in action in "Gov MR_dialog.c" or in the "quests_reaction.c" for "Ardent" and "Hornblower". It takes the values "MR_SINGLE", "MR_MARRIED" or "MR_MISTRESS", defined in "Dialog_func.c".

Married female characters have more serious issues than address form anyway. Outside those storylines, the only way to get married is to a governor's daughter or niece, which for a female character is politically correct in present day and historically incorrect in the periods covered by the game. ;)
 
At least in Spanish, pronouns work nothing like in English so chances are I'll have a hard time translating them anyway, whatever the method you use. So don't worry too much about that.;)

I had my first taste of translating your pronoun functions with the Ardent questbook (28th july build, so probably obsolete by now), and I managed a satisfactory, if not perfect, result (well, I think, I haven't tested it to be honest).
 
Yes, I was thinking of your Spanish translation project when I wrote the above comments. ;) Spanish, and for that matter quite a lot of other languages, have the problem that possessive pronouns vary depending on the gender of the object being possessed. Translating "his thing", "his" will be a different word depending on whether the thing is masculine or feminine, which means translating possessive pronouns is going to be very messy. I'd be interested to know what you managed.
 
Oh, it is messy, believe me. Sometimes I didn't need to use a function at all, as some pronouns are invariable (the Spanish for "his/her" has the same form regardless of the subject's gender, although it has other variables). Other times I could work around it using neutral words, or rephrasing, and at least one function I used but slightly altered in the translation which makes it not as flexible but more appropriate for the parts that needed it, even if it meant I couldn't use it for a few others of its originally intended purposes where I was forced to use workarounds.
 
Back
Top