• 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 American Tutorial

Pieter Boelen

Navigation Officer
Administrator
Storm Modder
Hearts of Oak Donator
The Standard/Free Play tutorial scenes were adapted in the modpack to work for all nations that were in the game at the time.
However, the United States were added later and therefore it doesn't work for them.
I've made a start on trying to fix this, but was wondering if anyone else might be interested in taking that particular task off my hands.

@salonikasurf or @pedrwyth for example?
 
Never even seen America in the game! I have looked at the tutorial (I think if it's in the documentation directory of the modpack) but am not sure what doesn't work for any nation. I know in one there is a table that list the nations and their index number in the game but apart from that.....

I'm away for a bit so I'll see where this stands when I return.
 
America exists only in the last two time periods.
Depending on your starting nation, the tutorial takes place in a town of that nation.
So while an English character starts in Speightstown, a Spanish character starts in Puerto Rico.
The tutorial was adapted to work for each nation individual, but not for America because that was added later.

The relevant code is in the Beta 3.5 WIP in PROGRAM\Storyline\BraveBlackFlag\quests\quests_reaction.c .
Search for all instances of "PORTUGAL" for example and you'll find all references where different nations are treated differently.

The biggest challenge I found is that the tutorial assumes that the item traders are in port while the store is in town.
That is true for all stock game towns, but the American capital on Eleuthera is an AoP location and has everything in the same location.
So that would need some definite tweaking....
 
OK so you're referring to the in game "walkthrough" with Malcolm (if you play English). Sounds like something I can look at (if I can get the Intel fix up on my laptop).
 
OK so you're referring to the in game "walkthrough" with Malcolm (if you play English). Sounds like something I can look at (if I can get the Intel fix up on my laptop).
Yep, that's it. :yes
 
Still work in progress - neither the store nor the shipyard apparently have any locators in them (apart from the doorway reload, candles and the proprietor locator) so I'm currently puzzling out how to restructure the dialogues that would occur inside.

I have slightly tweaked Malcolm Hatcher dialogue since there is a woman trader and he refers to "men under tents" - this is using the files in dialogues so I don't think we need Robert Fletcher in the story specific quest dialogues? (I renamed the one in there with no impact)

In the meantime I have noticed if you pick Marine as your character type the setup consistently puts something in the ship chest you can't pick up (it looks like papers but is labelled "error") which busts the tutorial because Malcolm insists you get everything. I don't know if others types do this (I have only tried Marine and Explorer - once I found Explorer was OK).

Secondly a more generic questbook entry is required (it still reflects BBF (AppearedOnIsland) - referring to your siezing the ship and being on the same island as Charlestown etc).
 
Last edited:
Still work in progress - neither the store nor the shipyard apparently have any locators in them (apart from the doorway reload, candles and the proprietor locator) so I'm currently puzzling out how to restructure the dialogues that would occur inside.
Indeed, you're right! There's absolutely nothing there.
It is easy enough to add the locators you need though. This method should work: http://www.piratesahoy.net/threads/making-town-capture-boarding-locators.13281/
You just need to name them after the ones you need, instead of rld/loc/aloc.

I have slightly tweaked Malcolm Hatcher dialogue since there is a woman trader and he refers to "men under tents"
Ah, clever! :onya

this is using the files in dialogues so I don't think we need Robert Fletcher in the story specific quest dialogues? (I renamed the one in there with no impact)
Robert Fletcher's tutorial dialog should be used only for the Rebel player type (Brave Black Flag) and that one always starts on Nevis, so indeed that one doesn't need changing.

In the meantime I have noticed if you pick Marine as your character type the setup consistently puts something in the ship chest you can't pick up (it looks like papers but is labelled "error") which busts the tutorial because Malcolm insists you get everything. I don't know if others types do this (I have only tried Marine and Explorer - once I found Explorer was OK).
Indeed you're right; the "Marine" type just wasn't defined at all. In PROGRAM\Characters\characters_init.c add the section for PLAYER_TYPE_MARINE like below:
Code:
    case PLAYER_TYPE_GUNNER:
       ch.shiplog.Entry.log0 = "Ten long years I have spent in the navy over hot, roaring cannon. I’m half deaf and my body is riddled with grape shot and splinters but I have saved my wages diligently and today I am the proud owner of my own ship. I have a solid crew under my command who respect my time in service and the scars I carry. My days of shattered ships and drowning men may not be over but at least I’ll be pointing those guns where I choose now.";
       GiveItem2Character(ch, "blade1");
       GiveItem2Character(ch, "pistol5+2");
       GiveItem2Character(ch, "powderbarrel");
       GiveItem2Character(ch, "ammobag");
     break;
     case PLAYER_TYPE_MARINE:
       ch.shiplog.Entry.log0 = "Once I was a marine in the navy, but I managed to save my salary until I could afford a way out. Investing this in a new ship seems like a great way of giving me the freedom I've always wished for. So now here I am, ready to set sail on my first venture!";
       GiveItem2Character(ch, "blade11");
       GiveItem2Character(ch, "pistol2");
     break;
     case PLAYER_TYPE_MERCHANT:
       ch.shiplog.Entry.log0 = "I've worked long and hard for this day but it has finally come. The captain has retired to life ashore and sold me his interest in the ship. My own vessel! She is in good shape thanks to my care as first mate these last several years and I know what she and her crew can manage. I have said my last ‘Aye, sir' while standing on this deck. Now she goes where I tell her. It's good to be the captain!";
       GiveItem2Character(ch, "blade1");
       GiveItem2Character(ch, "pistol1");
       GiveItem2Character(ch, "spyglass2");
       GiveItem2Character(ch, "compass2");
       GiveItem2Character(ch, "clock1");
     break;
I just came up with some temporary placeholder code for that, so if you can think of a better logbook text and starting items, ypu'd be welcome to replace it. :woot

Secondly a more generic questbook entry is required (it still reflects BBF (AppearedOnIsland) - referring to your siezing the ship and being on the same island as Charlestown etc).
Are you using the latest Beta 3.5 WIP code? That did indeed happen a few weeks back, but I think I fixed it.

In any case, thank you very much for working on this! :bow
 
Are you using the latest Beta 3.5 WIP code? That did indeed happen a few weeks back, but I think I fixed it.
No I was about a month behind so I had enabled the interface and initial landing on the jetty myself to work on the tutorial but that meant you sneaked the questbook tweak past me!

I have worked round the lack of locators by increasing the radius of the door locator and using that, I think it will look OK. Adding new ones looked like a lot of new learning so left that for a rainy day.

For WIP I have had to initialise fast reload to teleport through the doors because I can't get them to open! Must be something simple I am missing (I am cheating using port locations as town locations but can't see why that would do it).
This looks to be the culprit - chrEnableReloadLocator(loadStore, rldLocator, true); as an example
The doors all open beautifully if you abort the tutorial (via a batch of reload.l(n).disable = 0 so what...?

Here are my files so far (a bit rough because I stuck reload.l6.disable = 0 lines all over the place trying to get the doors to unlock and I have just hacked them out) and I haven't checked through the "let's do something else first" - branch lines in the port/town.

If you can show me one open door (the store since it is first) I can apply the method to the rest. If not I'll keep looking for what is amiss.
 

Attachments

  • both_reaction.c
    148 KB · Views: 126
  • Malcolm Hatcher_dialog.c
    37.2 KB · Views: 124
I have worked round the lack of locators by increasing the radius of the door locator and using that, I think it will look OK. Adding new ones looked like a lot of new learning so left that for a rainy day.
I'm sure a lot of people here could help you with that. For example, @Jack Rackham, @Bartolomeu o Portugues and perhaps @Hylie Pistof and @Talisman.

For WIP I have had to initialise fast reload to teleport through the doors because I can't get them to open! Must be something simple I am missing (I am cheating using port locations as town locations but can't see why that would do it).
This looks to be the culprit - chrEnableReloadLocator(loadStore, rldLocator, true); as an example
The doors all open beautifully if you abort the tutorial (via a batch of reload.l(n).disable = 0 so what...?

Here are my files so far (a bit rough because I stuck reload.l6.disable = 0 lines all over the place trying to get the doors to unlock and I have just hacked them out) and I haven't checked through the "let's do something else first" - branch lines in the port/town.

If you can show me one open door (the store since it is first) I can apply the method to the rest. If not I'll keep looking for what is amiss.
I'll look into it. :doff

In the meantime, did you also notice that if you start as an American character and skip the tutorial, you ship isn't actually in the correct port?
I just seemed to run into that problem, which is rather annoying of course. :facepalm
 
In the meantime, did you also notice that if you start as an American character and skip the tutorial, you ship isn't actually in the correct port?
I just seemed to run into that problem, which is rather annoying of course. :facepalm

Well No and yes - I spent ages working on both_reaction.c and rather like Arthur Dent (in Hitchhikers Guide to Galaxy) found myself ashore with the buildings washing up and down whatever I did before I found a first location setting in StartStoryline to finally get on the jetty. I have an American case in there and if I dismiss Malcolm disembark at Governor's Harbor - otherwise it is somewhere else in my version where it is fixed (without knowing it was broken)

(edit) I have rldLocator_Port = "reload1"; you have "reload1_back" - I don't know if it's that simple?
 
Last edited:
Indeed the ship appears in port properly with your files. Nice!
Thank you very much for working on this! :bow

If you can show me one open door (the store since it is first) I can apply the method to the rest. If not I'll keep looking for what is amiss.
I think I figured it out. Because you skip one quest case because you need to remain in the same location, this line is never executed:
Code:
EndQuestMovie();TrackQuestMovie("end","Tut_ReloadToOxbay");
And that actively prevents any and all reloads ever plus it also prevents you from saving during the tutorial.
I think attached file should solve that problem. It also contains all my other latest changes.

I have just successfully completed the entire American tutorial with this version.
There are still some apparent rough edges, such as Malcolm not appearing near you in the tavern and then at the end teleporting to the tavern again instead of walking there.
But it is playable for sure and that is so much better than not being playable! :cheeky

I spent ages working on both_reaction.c
I can tell! That's a lot of work done, that is! :shock
 

Attachments

  • both_reaction.zip
    17.6 KB · Views: 86
Last edited:
add a locotor:

1) PROGRAM\console.c set switch to 2
2) place yourself where you want a locator, press F12
3) write down these valuse x , y , z, xx, xz , zz
4) open TOOL\open GM\view locators\locators: scroll down to a free line and
5) write in your locator name, group + all the values you got earlier
zz = 1, s0 = 1. all other = 0.
6) Apply changes, Save GM
7) your locatorfile will have an _x at the end. back up the original one and namechange yours.

x) PROGRAM\InternalSettings.h at the very end: set VISIBLE_LOCATORS to 1 so you can check that the locator is in place.
 
I think I figured it out. Because you skip one quest case because you need to remain in the same location, this line is never executed:
Code:
EndQuestMovie();TrackQuestMovie("end","Tut_ReloadToOxbay");
And that actively prevents any and all reloads ever plus it also prevents you from saving during the tutorial.

Thanks because I doubt I would EVER have figured that out! That allows me to move forward.

Thanks @Jack Rackham for the hints on locators - that looks reasonably straightforward, more so than the locators thread (but then so do Woodes Rogers puzzles at first glance!!) - [I'm still at the end of the medicine chest sequence but love the locations - particularly looking out windows at the correct scenery from the correct perspective. I did notice in build 14 3.4 that the upper tavern room has a "room in redmond tavern" label (but I didn't notice till the 4th reward I was enjoying the locations so much)].

I will try and tidy up the rest of the tutorial over the next few days. I did notice choosing Portugal that you get wine which isn't in the store (which I normally take to mean it is contraband although it doesn't show as such in the colonies interface) - perhaps part of the problem with wrong identification of contraband which I certainly saw in my playthrough of Sea Hawk.
 
Nice you appreciated my efforts on the locations. :onya

Oh No Sir! SO much more than just the locations! :bow

My first WOW was early on with the completely different look, feel, style and even type of game but still using the original game engine. Next (I think - cos there were so many) was the revamped Port Royale with actual dialogues (mmhh),sounds and subtly altered locations. (I heard a "disembodied" voice of Woodes Rogers and took me a while to find where he was speaking from - and even longer how to get to him). When I eventually realised the additional locations were not just linked by teleport doors but spatially correctly located well...
Add in the puzzles, humor and historical references and .....I'm only about halfway through. Genius:cheers
 
Right for now here is an updated both.reaction.c where Malcolm does walk off to the tavern when dismissed in port/town. I haven't resolved where he put is in the tavern (larger door locator as per store and shipyard doesn't work)- it's ok if you walk down the stairs before he gets to speak but less so if you just stand at the door on entry. That needs either a new locator (as discussed) or me to master how to get PChar to autowalk down the stair and then get the conversation to autostart as normal. But since there are other problems (ie my bust store interface for one) that can stay as "to do" for now.

I have updated Malcolm's dialogue to get rid of the phobia about the French (a French battle fleet or French Squadron) which would be odd/wrong in some combinations - a better solution would be a dynamic insertion of whom the enemy is (but I'm not sure in all character types and time periods there will be one?). I have altered the two pieces about street traders because Sao Jorge only has one, San Juan has two stalls but only one trader and Eleuthera has a woman.

In the same vein Robert Fletcher says " no vendor on that island" which could just be "no vendor(street trader) here". He too has dialogue about the crown and Royal Navy which certainly doesn't fit an American context (and probably not good for some others but I don't know much about historic terms the various countries used). I admit here that I know next to nothing about ships,sailors, navies or anything else connected in the real world to the game!!

However worse news is that any REBEL character type is not being landed at Nevis despite the interface saying you start there and dialogue being with Robert Fletcher who disappears (presumably to Nevis :confused:) when you land at the NATION port. I think this has arisen since the combining of all the free play options. You might see a simple fix or perhaps it needs a temporary re-allocation of Nation to carry through the tutorial after which I guess it's not an issue?
 

Attachments

  • both_reaction.7z
    13.9 KB · Views: 80
  • Malcolm Hatcher_dialog.h
    34.1 KB · Views: 107
Back
Top