• 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!

Fixed Brig sloop "Sophie" interfering with character names

Homo eructus

Privateer
Storm Modder
***FIXED***

The model for the Brig sloop a.k.a. HMS Sophie has the reference name "Sophie" used in common.ini, which means characters with the name Sophie* get renamed to a much sexier but not very apprpriate "Brig sloop", as demonstrated by the lovely barmaid of Marigot here.
upload_2021-8-19_18-52-21.png
It should be an easy fix, just rename the reference name to HMS_Sophie or something like that. I'd do it myself but I'm not sure from which file the original reference that common.ini is using comes from.

*EDIT: Only applies to fixed characters with translation code applied to their names, like Sophie Neveu in Taverns.c
 

Attachments

  • fix Sophie.zip
    103.6 KB · Views: 188
Last edited:
AH!
This in common.ini:
Code:
string = Sophie,"Brig sloop"
Links up with this in Ships_init.c:
Code:
refShip.sname           = "Sophie";
Swap out those two as you suggest; and I think that'll do the trick.
 
No, that just makes the name "brig sloop" disappear from the ship itself. There must be some other instance somewhere.
upload_2021-8-19_19-40-3.png
 
No, wait, think I got something wrong, It seems to work now

Edit. No, nevermind, I don't know if it was a moment when it worked or I'm just seeing things, but the name of the ship type still doesn't show. And I can¡t find any other instance of "Sophie" in the files that isn't a reference to the actual "personal" name of the ship.
 
Last edited:
Forget all this, I found an easier solution. As it turns out, the problem is that the specific Sophie Neveu, the barnaid of Marigot for some reason has the TranslateString function applied to her name in taverns.c, when it's a proper name that doesn't need translation. So it doesn't affect all Sophies, just this one (or any others that have the function applied to them, if there are more). Removing this should do the trick
 
Thank goodness!
I was just about to get confused. :shock
No, that really didn't work, but the problem wasn't really the ship's fault, it was the barmaid's. She was the one with the unnecessary translation code attached to her name in Taverns.c, so removing that seems like the best option. Probably all the TranslateStrings on people's names should be removed from that file, because they could lead to weird things like this, as surnames that are also common words with unrelated entries in commo.ini get unnecessarily translated. Unless there's some hidden reason for these proper names to be translatable, which I don't think there should be.
 
No, that really didn't work, but the problem wasn't really the ship's fault, it was the barmaid's. She was the one with the unnecessary translation code attached to her name in Taverns.c, so removing that seems like the best option. Probably all the TranslateStrings on people's names should be removed from that file, because they could lead to weird things like this, as surnames that are also common words with unrelated entries in commo.ini get unnecessarily translated. Unless there's some hidden reason for these proper names to be translatable, which I don't think there should be.
Maybe @Grey Roger would know...?
Can't think of anyone else.

Is it different in this file compared to the other ones?
 
Maybe @Grey Roger would know...?
Can't think of anyone else.

Is it different in this file compared to the other ones?
I'm not sure
Maybe @Grey Roger would know...?
Can't think of anyone else.

Is it different in this file compared to the other ones?
It appears to be the same in most of the other PROGRAM/Characters/init files. For example:
Code:
    ch.old.name = "Milon";
    ch.old.lastname = "Blacque";
    ch.name = TranslateString("","Milon");
    ch.lastname = TranslateString("","Blacque");
    ch.id        = "Milon Blacque";
I see the sense for characters that have significative nicknames, as those would benefit of being trnslated, but not in other cases. Maybe it was done like that thinking of the Russian localisation, as the names would need to be transliterated in a different alphabet? No idea, better wait for someone who can enlighten us.

And I have to admit, I've never been aware of any other weirdnes like "Brig sloop Neveu" up there, so maybe there aren't any other names that can be confused by common.ini for common words
 
Maybe it was done like that thinking of the Russian localisation, as the names would need to be transliterated in a different alphabet?
AH!
Yep, that would would be it.
Most of the translation code was added primarily for Russian/Polish support.
 
AH!
Yep, that would would be it.
Most of the translation code was added primarily for Russian/Polish support.
Well, if we can't remove that code, then we may have to change the denomination of the "Sophie" ship after all, or change the name of the barmaid and avoid using Sophie as a name for fixed characters.
 
Yes, but I still can't find where in the code. Changing the refShip.sname in Ships_init.c and the corresponding entry in common.ini didn't suffice.
Huh?
Seems to work for me...

Changed both lines.
Enabled cheatmode.
Start game.
Go to Select Storyline > Free Play.
Change the year to Napoleonic.
Type "Sophie" in the search box:
upload_2021-8-19_21-32-41.png
 
I'll try again.

Ok, now it works. Although it seemed to work for a second before and then it broke again. Let's see if it sticks
 
It might get jumbled again if you load a save from before the change.
Pressing F11 inside such a save should reinit it though...
 
Back
Top