• 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 Sidequests for Additional Storylines

@Grey Roger and everyone else who is interested in this project:

I myself will again be PotC-less until Monday, but of course I will be around on the forum.
In the meantime, it might be quite useful if you try to get the sidequests to work in the Hornblower storyline that aren't on the Devlin Opera list.

For required quest items, move the initialization from the storyline QuestItems.c file to the general PROGRAM\ITEMS\initItems.c one.
If you cannot figure that out, perhaps @Jack Rackham and/or @Bartolomeu o Portugues could help with that as well.

For quests that do not start, check PROGRAM\Storyline\standard\StartStoryline.c .
Somewhere near the bottom are some pchar.quest lines that are used to trigger certain sidequests.
These are missing for Hornblower. Copy the sidequest ones to the Hornblower StartStoryline.c file OR put them in PROGRAM\Characters\character_init.c somewhere.
The latter approach is what we will be doing eventually, but that might be a bit more complicated to figure out.

This will not work on existing savegames, but you can execute those lines manually through PROGRAM\console.c as well.
Just add them inside the ExecuteConsole function below the ref PChar = GetMainCharacter; line.
Then load your savegame, press F12 and those sidequest triggers should then be enabled properly.

Of course extra quest coding will need to be added as well. The game will give an on-screen message for all missing ones.
These need to be taken from the Standard storyline quests_reaction.c/both_reaction.c file (could be in either) and moved into the Hornblower both_reaction.c file.

I wrote the above from memory, so you might need to be a bit creative in your interpretation here and there.
But it should be the correct method to get ALL sidequests working inside the Hornblower storyline.
And when that is done, we can share that same modified code with the other storylines as well. :woot
 
It could be that Patric and the idols is completely dialog-based and therefore should work properly.
Were there any on-screen log messages about not being able to find certain quest cases? If those did not occur, then it should work as well as it always did.
Are you sure talking to Lucien Bescanceny was required before? How about in the Standard/BBF/Nelson storyline? Is it still required there?
Unless the quest has changed in a recent update, it should be. You talk to the tavern owner, he tells you about Lucien, then you go to Lucien, talk to him about idols, probably end up fighting him, then report back to Patric to say you have found the idols.

In the current "Horatio Hornblower" version, you talk to the tavern owner, he tells you about Lucien, then you report back to Patric to say you have found the idols.

In addition, before you can report finding the idols, Patric tells you that Teodoro Fernandez went into a house near the church; when you go there, you find Raoul Caimes with an incriminating letter tying him to smuggling, which allows you to finish off another minor side quest helping the port master with smugglers. This works correctly in "Hornblower".

I think what we need to do is to first get all sidequests working equally well in all storylines.
That is why I'd like the restriction on needing to be friendly to France removed. That way the Thomas Reilly quests will work in those storylines which make you hostile to France, e.g. "Hornblower" and "Nelson". ;)
 
Last edited:
I have prepared for questitems to be imported to initItems.c
See key16 which is an example.
Tested and works.
 

Attachments

  • initItems.c
    296.9 KB · Views: 165
Unless the quest has changed in a recent update, it should be. You talk to the tavern owner, he tells you about Lucien, then you go to Lucien, talk to him about idols, probably end up fighting him, then report back to Patric to say you have found the idols.

In the current "Hornblower" version, you talk to the tavern owner, he tells you about Lucien, then you report back to Patric to say you have found the idols.
No recent updates have intentionally changed this quest, that much I do know.
I'm not entirely sure why the "Hornblower version" should be different from the "normal version" because they should all use the exact same files from the PROGRAM\DIALOGS folder.
The only thing I can think of is that despite this sidequest seemingly working, it does actually need some quest cases which Hornblower doesn't yet have.
Can you check the standard storyline quests_reaction.c and both_reaction.c and see if there is any reference in those to Patric and/or Luscien?
Also see if there are any related messages in error.log and/or compile.log which may indicate issues due to missing code for Hornblower.

That is why I'd like the restriction on needing to be friendly to France removed. That way the Thomas Reilly quests will work in those storylines which make you hostile to France, e.g. "Hornblower" and "Nelson". ;)
You don't need to convince me; I'm already sold. :cheeky
But since I can't do anything on it for now and it probably would not be effective anyway to make changes to the sidequests before generalizing them,
we will need to have that suggestion listed somewhere until we can actually make the required modifications.
 
From "quests_reaction.c":
Code:
     case "lucient_bescanceny_fight":
       LAi_setActorType(characterFromID("lucien bescanceny"));
       LAi_ActorAttack(characterfromID("lucien bescanceny"), pchar, "");
       Characters[GetCharacterIndex("Patric Cardone")].quest.teodoro = "5";// NK thanks to Taghmon
       AddQuestRecord("Patric", 5); // NK
     break;

There's also a lot of stuff to do with the "Help the Church" and "Strange Things Going On" quests. I'll have to see what happens if I copy those sections into the "Hornblower" version of "quest_reaction.c"...
 
That should eventually get them working. :woot

No new game required either. Just reopen the game at a point prior to where the quest case is executed and it should be Ok.
 
Much to report.

I copied large chunks of "quests_reaction.c" from the "Standard" version to the "Hornblower" version, including that bit about Lucien Bescanceny. It didn't help, and I think I know why. That section is titled "lucient_bescanceny_fight" and is presumably meant to handle what happens when you fight him, except the fight isn't being triggered so that code is never called. If the game tries to call a case from "quests_reaction.c" which isn't there, you get an error message. I found that when I tried a different approach to Turpin Cabanel, the port master at St. Pierre. When you talk to him about smugglers, he offers to have his guards make you tell him more without having to pay you. You can either reason with him or counter-threaten him. Normally I opt for reason, which is why that little quest worked for Hornblower even before I'd done anything to files. If Hornblower threatens him, the result is an error message because the program is looking for "turpin_cabanel_fight", which didn't exist in the "Hornblower" version of "quests_reaction.c" until I put it there, after which the result is that Turpin becomes scared and you lose 2 reputation. (Despite the section title, you don't actually fight Turpin because this was lifted from the "Standard" version, and if you kill Turpin then he won't be there to say his piece about the munitions ship Oiseau, which would foul up the main story.) As for Lucien Bescanceny, something else somewhere else must be controlling the Patric Cardonne side quest and that's what's not triggering the fight scene. There's no error message when I visit Lucien, but all I can say to him is to comment on his drunkenness, I can

I couldn't figure out what to do to "PROGRAM\ITEMS\initItems.c", but the "Hornblower" version of "QuestItems.c" only contains the Aztec compass, which also appears in the "Standard" and "Brave Black Flag" versions, so I simply copied the file over from "Brave Black Flag", and now Fred Bob hands over the letter as he's supposed to. I also had to copy over "RESOURCE\INI\TEXTS\ENGLISH\BraveBlackFlag\ItemsDescribe.txt" - before I did that, the letter didn't have a proper description, only its code name. (This also probably enabled the priest's love letters to appear in the "Help The Church" side quest.)

I've also copied a whole pile of stuff into "StartStoryline.c", which is probably why "Help The Church" now starts properly. It gets as far as receiving the love letters from the assistant priest, confirming them with the bar wench, but when I then talk to the tavern keeper he never gets to the line about Yedam Kinne. Instead, when I say "Well, how did those letters appear then?", he repeats his previous line, "You are wrong! That person is innocent and all those rumors are unfounded." Savegame and log files attached... In addition, I added a line to make Spain hostile to Britain. By default, Spain is allied to Britain, which makes a nonsense of some dialog lines and the entire "The Duchess And The Devil" chapter! Ideally France should start off one level less than outright hostile, it's supposed to declare war on Britain just before you set off for the battle with the Temeraire. (When you put to sea, there's a video of Sir Edward Pellew's rousing speech about that.) I could probably set France to start off wary but I don't know where to change it to hostile during the story.

The alterations to "initItems.c" and "StartStoryline.c" required yet another restart. Fortunately I hadn't got very far the last time so this wasn't much of a problem.
 

Attachments

  • -=Player=- Barbados.zip
    768.3 KB · Views: 149
  • compile.zip
    1.1 KB · Views: 142
  • error.zip
    350 bytes · Views: 155
  • system.zip
    566 bytes · Views: 159
Lucien sounds like a weird situation. Where is the missing option supposed to be showing up? Is it in his dialog file somewhere?

I'd recommend moving all relevant code from the Standard storyline quests_reaction.c into the Hornblower BOTH_reaction.c file to avoid mixing main and side quests.

initItems.c changes can be updated using F11 and changes to StartStoryline.c can usually be retro-actively applied using console.c .

For the relation changes, look at RESOURCE\VIDEOS\Storyline\Hornblower for the exact name of the speach video.
Then search for that name in the Hornblower quests_reaction.c and then you'll know where to add the relation change between England and France.
 
I've no idea where the quest is controlled - I can't find any significant references to Patric Cardone in the "Standard" versions of either "quests_reaction.c" or "both_reaction.c" and no reference to Lucien Bescanceny in either apart from that "lucient_bescanceny_fight". There are references to "lucient_bescanceny_fight" in "lucien bescanceny_dialog.c" but I can't find references to "lucien bescanceny_dialog.c".

I'll try putting "quests_reaction.c" back to original and copying everything into "both_reaction.c", but the reason I copied it into "quests_reaction.c" is that it came from the "Standard" version of that name and I guessed whatever controls the quest is looking there.

And I think I've found a good place to have France declare war on Britain... (I may have war resume at the end of the story as well, as a response to Britain's pre-emptive strike on Guadeloupe. That way I've got more targets when it switches to free play. :aar)
 
I've no idea where the quest is controlled - I can't find any significant references to Patric Cardone in the "Standard" versions of either "quests_reaction.c" or "both_reaction.c" and no reference to Lucien Bescanceny in either apart from that "lucient_bescanceny_fight". There are references to "lucient_bescanceny_fight" in "lucien bescanceny_dialog.c" but I can't find references to "lucien bescanceny_dialog.c".
Look for Luscien in PROGRAM\Characters\init; he is probably defined in there somewhere.

I'll try putting "quests_reaction.c" back to original and copying everything into "both_reaction.c", but the reason I copied it into "quests_reaction.c" is that it came from the "Standard" version of that name and I guessed whatever controls the quest is looking there.
quest_reaction.c, both_reaction.c and quests_common.c are just a pile of quest cases.
It doesn't matter which of those files contains them, because the function looking for them checks them all.

And I think I've found a good place to have France declare war on Britain... (I may have war resume at the end of the story as well, as a response to Britain's pre-emptive strike on Guadeloupe. That way I've got more targets when it switches to free play. :aar)
:onya
 
Look for Luscien in PROGRAM\Characters\init; he is probably defined in there somewhere.
He's in "FalaiseDeFleur.c". That presumably defines Lucien's start state and is the reason I even get to see him at all; if that weren't there, I'd probably get an error message when I enter his house. The problem is that whatever runs the Patric Cardone quest isn't changing Lucien's state to one in which I get to talk to him about statuettes; it goes straight past that to a state in which I've already extracted his confession and can tell Patric the good news.
 
Must be in his dialog file then. Should be in PROGRAM\DIALOGS but you can check if Hornblower/Standard storyline have custom versions of his file.
 
Both Lucien and Patric are in the generic "PROGRAM\DIALOGS" folder, not in any specific storyline folder. And I also need help persuading Simon Hanpool, the Bridgetown tavern owner, to tell me about Yedam Kinne so I can progress the "Help the Church" quest.

Meanwhile I've moved all the side quest stuff from Hornblower's "quests_reactions.c" to "both_reaction.c". No idea if this has had any effect on the side quests I've been investigating, but when I reached Speightstown after "Land Battle", I got a message that "hit_start" could not be found anywhere. It turns out I'd missed that one, so I copied the entire "Hitman" side quest from the Standard "quests_reactions.c" to Hornblower's "both_reactions.c", reloaded my saved game at Martinique beach, went to Speightstown again and did not see the error message. I've yet to see whether the quest starts if I now go to Saint George, let alone if it then progresses in San Juan...
 
Both Lucien and Patric are in the generic "PROGRAM\DIALOGS" folder, not in any specific storyline folder.
Didn't expect anything else. Which makes it weird that there is different behaviour between the Standard and Hornblower storylines, because they use the same code.
Have a look at Luscien's dialog file and see if you can find the part where the fight is supposed to be triggered.

And I also need help persuading Simon Hanpool, the Bridgetown tavern owner, to tell me about Yedam Kinne so I can progress the "Help the Church" quest.
Again, have a look at his dialog file and see if any sense can be made of it.
If you can't figure it out, I'll see what I can do tonight. Hopefully my brain is in a more cooperative mood then than it was yesterday.
 
@Grey Roger: I got the Patric Cardone sidequest working in the Assassin storyline and didn't see anything weird there.
How exactly did you test? There are a lot of different paths there and I need to know which one to check in order to replicate the issue.

As for Simon Hanpool, do you have a savegame standing in front of him?
And what is supposed to happen then that doesn't?
 
I have now in my own game version removed ALL sidequest code from the Nelson storyline and only left the both_reaction.c stuff from LaCroix.
Theoretically everything should still work, EXCEPT the various missing quest cases.
So I suppose I'll now have to play all sidequests and add the cases that aren't there until they all DO work.

Ideally what I want in the end is just a completely clean storyline folder that has NO sidequest material in it.
Then we can keep only the opening scenes and main quests there and everything else is generally shared.
 
@Grey Roger: I got the Patric Cardone sidequest working in the Assassin storyline and didn't see anything weird there.
How exactly did you test? There are a lot of different paths there and I need to know which one to check in order to replicate the issue.
Starting from arrival in St. Pierre:
Talk to Milon Blaque. Talk to Orable Caron, the whole way through to the tip about Fred Bob. Talk to Turpin Cabanel, about smugglers (choose reasoning response, not threatening) and the Blaque family.
Go to main town area. Talk to Patric Cardone. Talk to tavern owner about Spaniard, he tells you about Lucien Bescanceny; and about smugglers, he points you at Andre Juliao. Talk to Andre, back off (don't want to fight him in case I get to try the Thomas Reilly quests). Talk to tavern owner, he can't tell you anything more about smugglers. Talk to Patric Cardone, he says Teodoro just went into house near church. Talk to Raoul Calmes, read letter.
(At this point I'd normally go to talk to Lucien Bescanceny about stolen idols. If I do, all I can do is comment on his drunkenness. So during "Hornblower", don't even bother leaving the main town area.)
Talk again to Patric, report that you found the statuettes and the thief. He says talk to a guard. Talk to Harduin Aufort about statuettes. Talk again to Patric, get reward, quest closes.
(Then return to port, talk to Turpin Cabanel, report Raoul Calmes, get reward, end of smugglers mini quest.)
As for Simon Hanpool, do you have a savegame standing in front of him?
And what is supposed to happen then that doesn't?
See my earlier post. ;)
http://www.piratesahoy.net/threads/sidequests-for-additional-storylines.20555/page-6#post-504488
I've also copied a whole pile of stuff into "StartStoryline.c", which is probably why "Help The Church" now starts properly. It gets as far as receiving the love letters from the assistant priest, confirming them with the bar wench, but when I then talk to the tavern keeper he never gets to the line about Yedam Kinne. Instead, when I say "Well, how did those letters appear then?", he repeats his previous line, "You are wrong! That person is innocent and all those rumors are unfounded." Savegame and log files attached...
 
Large changes for this included in here: http://www.piratesahoy.net/threads/build-14-beta-3-5-internal-wip-for-testing.24817/

This should have almost all sidequest code moved OUT of the storyline folders.
That means we are getting close to having the sidequests working directly in every storyline.

For now, I have set up Nelson as "testing grounds". We basically need people to play through ALL sidequests there and find what does and does not work.
A lot of quest cases will still be missing, so when those occur, they must be CUT from the Standard storyline and pasted into the Nelson both_reaction.c file.
The final result should be a Standard storyline with NO sidequest code and a Nelson storyline with ONLY sidequest code.
Once we have that working properly, we will put the Nelson both_reaction.c content into PROGRAM\QUESTS\quests_common.c file.
Then the sidequest should work in ALL storylines. :dance

@Grey Roger: You may want to keep your Hornblower both_reaction.c file somewhere safe.
 
Nelsons first Command. Rescue Peter Bloods Crew, there is no Peter Blood in Cayman tavern.
 
Not at all? I had hoped that would at least work.
Is his appearance not level dependent?
 
Back
Top