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

Sidequest characters as PC's

Grey Roger

Sea Dog
Staff member
Administrator
Storm Modder
For my next trick, here's Claire Larrouse sitting in San Juan tavern waiting for someone to join her expedition:
claire_tavern.jpg

In an alternate universe, i.e. another game, I'm Claire Larrouse:
claire_player.jpg

That's not done by renaming myself. I've re-enabled the "name" attributes for model "50_33_40Claire", previously commented out so you couldn't meet yourself in the tavern. So, if I'm Claire, who's in the tavern? Let's ask around:
rumour.jpg zaid.jpg

Meet Madeleine Lelong:
madeleine.jpg dialog.jpg

Dialog file "Claire Larrouse_dialog.c" has code to make her say something amusing if you use character model "50_33_40Claire"; it now checks if you are using the same model as the character, which means if you chose to play as Claire and then bought "9Td" from a tailor, Madeleine will say the same:
madeleine_mirror.jpg

(So will Claire if you're playing someone else and bought "50_33_40Claire".)

The game character is still "Claire Larrouse", defined in "PROGRAM\Characters\init\officers.c", but now has a check - if your name is "Claire Larrouse", change the character to use the alternate name and model. Some code already uses 'GetMyFullName' to insert whatever name Claire is using. Others have it hardcoded. The latter are now replaced with preprocessed variables set using 'GetMyFullName', which means if we want to change the alternate character's name, all that is needed is to change her entry in "officers.c" and the new name will appear in dialogs, rumour and questbook. Because it's still the same character, just with a different name and face, all the quest code is unchanged. (Well, not quite, but the change is nothing to do with the character. After fighting the soldiers at the mine, you have the option to refuse to continue, in which case Claire/Madeleine fights you. Then you return to your ship and you're stuck because 'bQuestDisableSeaEnter' is still set so you can't go to sea. I've simply added a line to set it back to false after you have fought her.)

Next to get the same treatment is probably Will Turner, who as well as being the main character in "The Silver Train" sidequest is also two playable characters - one with a brown suit as seen in CotBP, and one with a black shirt and bandana as seen in AWE, this one being more significant because he gets the uncursed Flying Dutchman. @Bartolomeu o Portugues: as this is your sidequest, how do you feel about replacing Will Turner and Elizabeth Swann with Captaine Chevalle and Eduardo Villanueva? Those are the characters used for the similar quest in "Hoist the Colours".
 
Last edited:
Next to get the same treatment is probably Will Turner, who as well as being the main character in "The Silver Train" sidequest is also two playable characters - one with a brown suit as seen in CotBP, and one with a black shirt and bandana as seen in AWE, this one being more significant because he gets the uncursed Flying Dutchman. @Bartolomeu o Portugues: as this is your sidequest, how do you feel about replacing Will Turner and Elizabeth Swann with Captaine Chevalle and Eduardo Villanueva? Those are the characters used for the similar quest in "Hoist the Colours".
I thought it was a good idea to have Will and Elisabeth outside the Jack Sparrow storyline.
Can you keep them?
If too difficult to rewrite the code, ok make the change with Chevalle and Villanueva.
 
The basic idea is that the new code will check the player character. The quest characters should only change if you are playing as Will Turner or Elizabeth Swann. If you are playing as anyone else, the characters remain as they are.

FreePlay Johan Elting will still meet Will Turner and Elizabeth Swann. FreePlay Will Turner will meet Capitaine Chevalle and Eduardo Villaneuva because he should not meet himself! (And, of course, FreePlay Capitain Chevalle will not meet himself because he is not Will Turner, so he will meet Will and Elizabeth just like anyone else.)

This is what I have already done for Claire Larrouse. Normally you will still see Claire in the tavern. But if you start a FreePlay with model "50_33_40Claire" then you are Claire Larrouse, and that's when you will see Madeleine Lelong instead.
 
The basic idea is that the new code will check the player character. The quest characters should only change if you are playing as Will Turner or Elizabeth Swann. If you are playing as anyone else, the characters remain as they are.

FreePlay Johan Elting will still meet Will Turner and Elizabeth Swann. FreePlay Will Turner will meet Capitaine Chevalle and Eduardo Villaneuva because he should not meet himself! (And, of course, FreePlay Capitain Chevalle will not meet himself because he is not Will Turner, so he will meet Will and Elizabeth just like anyone else.)

This is what I have already done for Claire Larrouse. Normally you will still see Claire in the tavern. But if you start a FreePlay with model "50_33_40Claire" then you are Claire Larrouse, and that's when you will see Madeleine Lelong instead.
Ok, in this case I agree about the change.
 
Done and tested. First, I ran a FreePlay as Will Turner. In San Juan tavern, I saw Claire Larrouse; in Tortuga (after using cheatmode to zap myself up to level 12), I saw Eduardo Villanueva and Captaine Chevalle:
will_claire.jpg will_eduardo.jpg

Then I did it all again, but this time as Claire Larrouse. So it was Madeleine Lelong in San Juan, then in Tortuga I saw Will Turner and Elizabeth Swann:
claire_madeleine.jpg claire_will.jpg

Modifying Will and Elizabeth was a bit different, and a bit more complicated, than modifying Claire. For one thing, Claire starts the game in San Juan, so I had to change name and model in the character's definition. Will and Elizabeth are placed by quest code after you talk to the tavern owner, so I could change them in quest case "Jackpot_start_check". Beyond that, Claire only needed a few hardcoded names changed to preprocessed variables and some code to fill in the variables. For Will and Elizabeth, both their dialogs and the tavern keeper's dialog needed new lines added and code to use them, as did the questbook. Normally the tavern keeper tells you about "the young pirate Will Turner" who is to be found "in his house at the end of the pier". Villanueva doesn't look young and it makes no sense to put him in the house, which is your house if you are Will Turner! So I did the same as the storyline version - Villanueva and Chevalle go into the brothel if it's enabled, or the townhall if it's not. And so the tavern keeper wil tell you about "the famous pirate Eduardo Villanueva", then tell you where to find him. The questbook also tells you where to find him.

Apart from that, the quest is unchanged - I didn't change Konrad Kulczycki into Francois de Hadoque and you don't board La Licorne.
 
I forgot to mention - there's a much simpler way of preventing player Will Turner from meeting sidequest Will Turner already in place. If you're playing as Will Turner, the sidequest is blocked. But apart from the obvious advantage of allowing player Will Turner to get this quest, the new code has another effect. Agreeing that it's a good idea to have Will and Elizabeth in the game outside the "Hoist the Colours" storyline, this method also puts two other film characters into the game if Will is already in the game as the player.
 
Back
Top