• 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 Three simple text bugs

xXSB101Xx

Landlubber
Two simple text bugs I found when I spent a few hours playing the game yesterday.
someaskcouplequestionsgetsrumordialoguesometimes.png

givingdirectionstotavernintavern.png

The first bug is on the island of martinque, tavern owner, there's some crossed dialogue responses where if you ask the "I have some questions" he'll give a immediate response about any local rumors.
Second is on the island Turk, a man in the tavern will give you directions to the tavern. Seems like a little bit of a unnecessary dialogue option, but maybe it's intentional?


There was also a third text bug I came across when playing yesterday involving a bald blacksmith not having a space in his fixing up a sword to perfect level of the name descriptor
but i dont remember where the blacksmith was and didnt take a screenshot
so something something "i made yourWorn Templar Sword perfect"
 
Last edited:
While we're on the subject of small text bugs, I ran into one too:
upload_2021-3-16_3-21-0.png

Island/town name appears to be missing.
This is from the savegame as posted here:
Confirmed Bug - "Master at Arms" missing from Change Officer's Role list.
8th October 2020 modpack release. (Yeah, I'm a bit behind... But in my defence, that was my birthday! :razz )

The first bug is on the island of martinque, tavern owner, there's some crossed dialogue responses where if you ask the "I have some questions" he'll give a immediate response about any local rumors.
What do you make of that one, @Grey Roger?

Second is on the island Turk, a man in the tavern will give you directions to the tavern. Seems like a little bit of a unnecessary dialogue option, but maybe it's intentional?
Unintentional. But certainly QUITE funny! :rofl

Basically, there are fixed citizens in the game who can give directions to places.
These characters are usually walking around town but, as we're now seeing, they could also be sitting in the tavern.
However, there isn't any check on WHERE they are, so they'll just talk as if you were both just walking around outside. :razz

There was also a third text bug I came across when playing yesterday involving a bald blacksmith not having a space in his fixing up a sword to perfect level of the name descriptor
but i dont remember where the blacksmith was and didnt take a screenshot
so something something "i made yourWorn Templar Sword perfect"
That is odd; I had a quick check through the PROGRAM\DIALOGS\Blacksmith*_dialog.c files,
but I'm not seeing a quality and blade-name variable in the "MakeExcellent" dialog cases at all.

It could be one of these ones though:
upload_2021-3-16_3-30-56.png

That's the code for the dialog you get when choosing the quality you want to repair to.
 
While we're on the subject of small text bugs, I ran into one too:
View attachment 38472
Island/town name appears to be missing.
This is from the savegame as posted here:
Confirmed Bug - "Master at Arms" missing from Change Officer's Role list.
8th October 2020 modpack release. (Yeah, I'm a bit behind... But in my defence, that was my birthday! :razz )


What do you make of that one, @Grey Roger?


Unintentional. But certainly QUITE funny! :rofl

Basically, there are fixed citizens in the game who can give directions to places.
These characters are usually walking around town but, as we're now seeing, they could also be sitting in the tavern.
However, there isn't any check on WHERE they are, so they'll just talk as if you were both just walking around outside. :razz


That is odd; I had a quick check through the PROGRAM\DIALOGS\Blacksmith*_dialog.c files,
but I'm not seeing a quality and blade-name variable in the "MakeExcellent" dialog cases at all.

It could be one of these ones though:
View attachment 38473
That's the code for the dialog you get when choosing the quality you want to repair to.
upload_2021-3-15_22-0-56.png
upload_2021-3-15_22-7-42.png
upload_2021-3-15_22-11-49.png

found him. Not bald, on the island of the french, where you pick up the quest to find the frenchman's son. Couple of text errors.
 
Also found a new text bug. This dialogue option pops up sometimes, not all the time, when talking to a random passerby in the town where the blacksmith is located in.
upload_2021-3-15_22-33-46.png
upload_2021-3-15_22-34-28.png
choosing it of course doesn't pull up the option about the blacksmith, (which does have a valid dialogue), it pulls up the "information about ..." dialogue tree.
 
@xXSB101Xx:
Martinique: here is the beginning of that conversation:
martinique_tavern1.jpg martinique_tavern2.jpg martinique_tavern3.jpg martinique_tavern4.jpg
It is in response to your "What's the gossip here?" that he tells you a random rumour, after which you're allowed to ask questions about any open quests, or ask again about gossip to get another rumour.

Turks Island: I couldn't find that character after loading up savegames on Turks Island in two different storylines ("Ardent" and "Bartolomeu"). However, the post by @Pieter Boelen gave me the clue - he's on Eleuthera, not Turks Island. ;)

Blacksmiths: none of the blacksmith dialogs report what sort of sword they repaired or to what quality. And you're using an obsolete version of the game because that line about "You bring me an already perfect <insert blade name>?" was fixed in one of the updates - the version I have is dated 18th April 2020. However, that error does still exist in the near identical file for the blacksmiths in both Havana and Cartagena, and investigating them threw up a more serious problem:
cartagena_smith_old1.jpg
Most blacksmiths have their own unique files, so their names are included directly in the text. Marco Quintero is the one in Havana. I've fixed the files to use preprocessed variables for the names, so that the Cartagena and Havana blacksmiths each show their correct names.

San Juan citizen: there's definitely a problem in the dialog code and I'm surprised it didn't crash the dialog. There may be a message about it in "error.log" anyway. This is the offending code:
Code:
                   Link.l2 = DLG_TEXT[133]"Tell me about the colony.";
                   Link.l2.go = "colony";
DLG_TEXT[133] is the line about the blacksmith. Someone seems to have made a mess of updating this part of the code, as there's a better line for the colony, and in any case "Tell me about the colony." should not be there. As of next update, "Tell me about the colony." will be added to the text file and the 'DLG_TEXT' number corrected to point to it.

Thanks for the reports! If you find any more errors, keep reporting them. :onya
 
Last edited:
While we're on the subject of small text bugs, I ran into one too:
View attachment 38472
Island/town name appears to be missing.
This is from the savegame as posted here:
Confirmed Bug - "Master at Arms" missing from Change Officer's Role list.
8th October 2020 modpack release. (Yeah, I'm a bit behind... But in my defence, that was my birthday! :razz )
I haven't had time to check that savegame. Looking at that picture, though, the guy on the left edge of the screen looks like an American soldier, which means that's Eleuthera post-US revolution. So, in "eleuthera citizen_dialog.h":
Code:
"I'd like to ask you about #sGovernor's Harbor#.",
"Governor's Harbor" is not a valid label. That should probably be "#sEleuthera#".

Basically, there are fixed citizens in the game who can give directions to places.
These characters are usually walking around town but, as we're now seeing, they could also be sitting in the tavern.
However, there isn't any check on WHERE they are, so they'll just talk as if you were both just walking around outside. :razz
Those characters are permanent residents, defined in the island's character file. There can be random visitors in the tavern, but they'll be standing, and they'll use dialog file "Enc_Walker.c". Looking at "PROGRAM\Characters\init\Eleuthera.c", there is indeed a permanent resident placed on a seat in the tavern. And now I know why I couldn't find the character reported by @xXSB101Xx on Turks Island. He's on Eleuthera, he's the same one you found, and Joseph Bigsby has been given a random American name in this game because the US now controls the town. So, as well as correcting the labels in "eleuthera citizen_dialog.h", I'm putting conditions into "eleuthera citizen_dialog.c", e.g.:
Code:
           if (GetAttribute(NPChar, "location") != "Eleuthera_Tavern")
           {
               Link.l1 = DLG_TEXT[116];
               Link.l1.go = "town_tavern";
           }
That means permanent citizens should only allow you to ask directions to the tavern if they're not in the tavern.

There's also a citizen sitting in Alice Town tavern, Kermit Brazier (who will also have a random American name in post-US revolution Eleuthera). So "PROGRAM\DIALOGS\Alice citizen_dialog.c" is getting the same treatment.
 
Thanks for checking, @Grey Roger!
Seems you managed to figure the relevant bits out then. :cheers

And indeed, my savegame was in the Revolutions period.
I used the "Josiah Peabody" Free Play start.
 
Checking both Joseph Bigsby and Kermit Brazier revealed some other problems. Try talking to either of them. (@Pieter Boelen: Joseph Bigsby is Mason Carroll in your game. Kermit Brazier, the citizen in Alice Town tavern, will also have a random American name.) Watch for the phrase "Could you please catch me up on the local news?" and see where it takes you. And, specifically in Alice Town, get him to talk about people, and the dialog may do silly things. That's because "Alice citizen_dialog.c" does this:
Code:
                   Link.l1 = DLG_TEXT[84] + GetMyFullName(&Characters[GetCharacterIndex(DLG_TEXT[85])]) + DLG_TEXT[87];
                   Link.l1.go = "governor";
DLG_TEXT[85] is "James Cunninghame". That's the name of Alice Town's governor in "Revolutions", but it's not his ID, so 'GetCharacterIndex(DLG_TEXT[85])' fails and returns -1.

The attached zip contains fixes for various dialogs. (But not for the San Juan blacksmith, "Blacksmith2_dialog.h". That's already in the "Extra Fixes Archive". :D)
 

Attachments

  • dialog_fixes.zip
    20.8 KB · Views: 173
Checking both Joseph Bigsby and Kermit Brazier revealed some other problems. Try talking to either of them. (@Pieter Boelen: Joseph Bigsby is Mason Carroll in your game. Kermit Brazier, the citizen in Alice Town tavern, will also have a random American name.) Watch for the phrase "Could you please catch me up on the local news?" and see where it takes you. And, specifically in Alice Town, get him to talk about people, and the dialog may do silly things. That's because "Alice citizen_dialog.c" does this:
Code:
                   Link.l1 = DLG_TEXT[84] + GetMyFullName(&Characters[GetCharacterIndex(DLG_TEXT[85])]) + DLG_TEXT[87];
                   Link.l1.go = "governor";
DLG_TEXT[85] is "James Cunninghame". That's the name of Alice Town's governor in "Revolutions", but it's not his ID, so 'GetCharacterIndex(DLG_TEXT[85])' fails and returns -1.

The attached zip contains fixes for various dialogs. (But not for the San Juan blacksmith, "Blacksmith2_dialog.h". That's already in the "Extra Fixes Archive". :D)
Saw both of the errors that can pop up, good catch.
Found a new bug though, not just a text bug though.
upload_2021-3-18_2-54-41.png

If you ask for a overnight room you get put into the cellar, where npcs spawn at. You can fight them and kill them, but you cant talk to them, and they dont react to you unless you attack them.
 
If you ask for a overnight room you get put into the cellar, where npcs spawn at. You can fight them and kill them, but you cant talk to them, and they dont react to you unless you attack them.
That is intentional. It is why he says "I'm not sure if the 'vacancy' I have would be to your liking" and why you're only charged 2 gold instead of the usual 5. It's also why you enter and leave the tavern through the upstairs door.
 
Another similar error:
damerell_dialog.jpg

I'm surprised this one wasn't spotted before. This is Bridgetown tavern, which a lot more players will visit than Governor's Harbour or Alice Town taverns. The fix is the same, put conditions round all parts of "Greenford Citizen_Dialog.c" which allow you to ask for the tavern so that they don't show if the character is in the tavern. A fixed version is attached.

Ralph Damerell exists in the stock game, where he has his own dialog files. They're still in Build 14 but not used as his character definition comments out the reference to "Ralph Damerell_dialog.c" and uses "Greenford Citizen_Dialog.c" instead. As far as I can tell, they're pretty similar except for slightly different wording of the text, and Ralph Damerell's files were never updated to include the new sidequest stuff. Also, "Ralph Damerell_dialog.h" includes a couple of extra lines:
Do you know where Nathaniel is?
I don't know a thing about him, I am sorry, miss
That's almost certainly related to the intended alternative storyline for Danielle Greene. The dialog code then wants to trigger quest case "danielle_greenford_stranger_reveals_Blaze", which doesn't exist.
 

Attachments

  • Greenford Citizen_Dialog.c
    12.5 KB · Views: 165
This reminds me of something unrelated that I thought of while testing this:
We have all these descriptions about the personalities of store owners/governors/etc.
But those don't actually play a role in much of anything, do they?
In fact, aren't a whole bunch of them just copied from other islands?
 
This reminds me of something unrelated that I thought of while testing this:
We have all these descriptions about the personalities of store owners/governors/etc.
But those don't actually play a role in much of anything, do they?
In fact, aren't a whole bunch of them just copied from other islands?
Looking to add more fleshed out characters?
 
This reminds me of something unrelated that I thought of while testing this:
We have all these descriptions about the personalities of store owners/governors/etc.
But those don't actually play a role in much of anything, do they?
In fact, aren't a whole bunch of them just copied from other islands?
Several of them are indeed direct copies from others. Almost all Spanish blacksmiths are as cranky as the one in San Juan, for example. Some of them even use the exact same dialog file as another, which is why I recently had to do a bit of work on the dialog file for the Havana blacksmith. The Cartagena blacksmith uses the same file, which meant he introduced himself using the Havana blacksmith's name!

But the reason governors all have the same personality is that a lot of their dialog was moved into the common "governor.c", which means they are necessarily all clones. :p
 
Looking to add more fleshed out characters?
I'm not planning to actually do that, no.
But the thought did cross my mind...

Several of them are indeed direct copies from others. Almost all Spanish blacksmiths are as cranky as the one in San Juan, for example. Some of them even use the exact same dialog file as another, which is why I recently had to do a bit of work on the dialog file for the Havana blacksmith. The Cartagena blacksmith uses the same file, which meant he introduced himself using the Havana blacksmith's name!
Blacksmith mod was made back when we only had the stock game islands.
And so they were all unique.
At the time...

But the reason governors all have the same personality is that a lot of their dialog was moved into the common "governor.c", which means they are necessarily all clones. :p
Whose bright idea was THAT then?!? :boom:
 
Looking to add more fleshed out characters?
You can do that if you like!

Dialog files are found in "PROGRAM\DIALOGS\ENGLISH". There's some code stuff which isn't too hard to understand if you're interested, but the important lines are all plain text and are mostly exactly what you'll see the character say. So, if you want the character to "sound" different while still doing the same job, you can rewrite the lines to mean the same thing in a different way. For example, compare the first couple of dialog lines of "Blacksmith7_dialog.h"...
Code:
"Yes? Don't just stand there; you need a blacksmith or not?",
"I might, but I see no reason for your unfriendly tone. Tell me of your services and I'll decide if they're worth your charming company.",
"You give me your equipped blade, I repair it to whatever quality you like. I'll charge you as I see fit, depending on the work. And you're going to have to wait a day; I'm a busy man. My name is #sfullname#, by the way, if you were expecting pleasantries.",
"All right, #sname#. If you're a worthy craftsman with my sword, I'll pay you what you're worth.",
... with the same few lines in "Blacksmith8_dialog.h"...
Code:
"Hello! I am #smyname#, owner of this smithy. What can I do for you today?",
"I don't know. What can you do for me today?",
"Well, if that sword by your side needs a bit of sharpening or polishing, I'm your man. Depending on the quality you want, I'll charge you a reasonable amount. You wait a day, you get your sword back, improved to the agreed standard.",
"Alright, #smyfirstname#. I may very well have work for you.",
Anything which starts "#s" and ends "#", e.g. "#sfullname#", is a placeholder which is filled in by the code. Don't change that otherwise it won't be filled in and the dialog will look wrong, unless the code is changed to match. But you can see how similar they are - the blacksmith asks what you want, you ask what he can do, he tells you, you say that you're interested. You can also see how different they are, which is why the blacksmith in Santiago is a lot more polite than the one in Havana.

So, if you notice that two characters have near identical dialogs and want to make one of them different, you can do the same. And if you need help, just ask!
 
Back
Top