1. Dismiss Notice
  2. GOG.com logo

    Thanks to YOUR votes, GOG.com now sells:
    - Sea Dogs - Sea Dogs: Caribbean Tales
    - Sea Dogs: City of Abandoned Ships

    Vote now to add Pirates of the Caribbean to the list!

    Dismiss Notice
  3. Under the Crossbones Podcast

    A Pirate Podcast with Interviews
    Music, Comedy and all things Pirate!

    - Episode Guide - About - Subscribe -
    - Twitter - Facebook - iTunes - Android -
    - Youtube - Fill the Coffers -

    Dismiss Notice
  4. New Horizons logo

    Quick links for PotC: New Horizons
    - Download latest version
    - Wiki - FAQ - Report bugs here
    - ModDB profile

  5. GOF logo

    Quick links for AoP2: Gentlemen of Fortune 2
    - Downloads and info
    - Historical Immersion Supermod
    - ModDB Profile

Dismiss Notice
New to the forum?
Please take a moment to read our Welcome Message and Forum Rules.

Problems with "Help Two Pirates" sidequest

Discussion in 'Hoist the Colours (Jack Sparrow)' started by Grey Roger, Jun 23, 2017.

  1. Grey Roger

    Grey Roger Sea Dog Staff Member Storm Modder

    Joined:
    Feb 12, 2007
    Messages:
    6,383
    I've rescued Capitaine Chevalle's crew and returned to Tortuga, where I get a questbook entry about Will Turner organising an expedition and suggesting I visit his house. When I do, I'm stuck, the reason being I'm waiting for Will Turner to talk to me, which he won't be doing because he isn't there.

    Is there any reason for this line to be in the "Jack Sparrow" version of "blaze_dialog.c"?
    Code:
        case "Where Chevalle":
           Dialog.Text = DLG_TEXT[285];
           Link.l1 = " ";
           Link.l1.go = "exit";
           AddDialogExitQuest("Jackpot_start_search"); // <-- This line
           AddQuestRecord("Chevalle", 11);
       break;
    That's what's causing the trouble - "Jackpot_start_search" is the opening of the standard "Silver Train" sidequest, which writes the questbook entry and unlocks Will Turner's house.

    Ignoring that advice, then, I head for the tavern and talk to the keeper, who tells me a French captain was seen heading for the brothel. (I normally have them enabled in "Options", partly in case I'm playing a storyline which needs them and partly as an alternative place to spend a night. :D) Upstairs are Chevalle and Villaneuva, who don't say much but suddenly I've got a new ship and a new quest. Here's why:
    Code:
                   if (IsBrothelEnabled())
                   {
                       ChangeCharacterAddressGroup(CharacterFromID("Captaine Chevalle"), "Tortuga_Brothel_room", "goto", "locator2");
                       Pchar.quest.meetturner.win_condition.l1 = "location";
                       Pchar.quest.meetturner.win_condition.l1.location = "Tortuga_Brothel_room";
                       PChar.quest.meetturner.win_condition = "MeetTurner";
                   }
    So quest case "MeetTurner" is triggered. The snag is that not only does "MeetTurner" exist in "both_reaction.c", it is also the quest case for the standard version in "quests_side.c", and it's probably the latter which takes precedence. The only way I can progress the quest is to actively talk to Villaneuva myself.

    I've tried correcting this by commenting out that 'AddDialogExitQuest' line in "blaze_dialog.c", and renaming the quest case in "both_reaction.c" to "MeetVillanueva". That seems to have done the trick - I don't get the misleading questbook line about Will Turner, and when I go to the brothel room, Villaneuva is the one to initiate dialog, in which he introduces the quest properly. Assuming this doesn't break anything further along in the storyline, this sidequest should now work a bit better. (It probably originally worked correctly. Originally the standard sidequests were only available in "Tales of a Sea Hawk" so there was no confusion. I suspect this hasn't worked properly since all the sidequests were separated out.)
     
  2. Jones

    Jones Sailor

    Joined:
    Apr 16, 2017
    Messages:
    137
    Gender:
    Male
    Really?:shock
    I still remember when I did the quest, but I didn't have this problem ...
     
  3. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,575
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands
    Storyline quest cases should take precedence over generic ones with the same name.
    We've had issues with that before, but I thought they were fixed ages ago. :shock

    If you want to be sure, put a different Trace statement in both versions, then see which statement actually gets logged to compile.log .
     
  4. Grey Roger

    Grey Roger Sea Dog Staff Member Storm Modder

    Joined:
    Feb 12, 2007
    Messages:
    6,383
    You won't have had a problem if you didn't go into Will Turner's house, which you're not supposed to do in the "Helping Two Pirates" version. But I'm trying to make the storyline relatively idiot-proof, which means I need to act like an idiot, so when I see a questbook telling me to go to Will Turner's house, I think "Wonderful, I'm playing Jack Sparrow, now I get to meet Will Turner". :pirate07: (Actually, that's not quite true. What I really thought was "That's the regular Silver Train quest - isn't that supposed to be disabled? What happens if I try to follow it?" It broke, of course.)
     
  5. Grey Roger

    Grey Roger Sea Dog Staff Member Storm Modder

    Joined:
    Feb 12, 2007
    Messages:
    6,383
    Or just rename the local one so there's no chance of confusion. Besides, I don't need a trace statement. One version has Will Turner try to talk to you, the other has Eduardo Villanueva try to talk to you. If Eduardo Villanueva does not try to talk to you, guess which one has just been called. :D After the renaming, Eduardo Villanueva did talk to me.

    Another piece of weirdness was near the end, when we'd looted the silver and returned to Tortuga, and the two pirates start fighting over who's going to take over La Licorne. That's when I saw an error message that case "/*Eduardo_retail*/" had not been found. Someone decided to call case "Eduardo_retail" with a 'LAi_QuestDelay' command instead, and must have thought that putting comment markers round the quest name would prevent it from being used:
    Code:
    LAi_ActorAnimation(characterFromID("Captaine Chevalle"), "attack_2", "/*Eduardo_retail*/", 0.0);
    Removing the redundant quest name entirely put an end to that error.

    Then Francois de Hadoque suggests that you and he leave them to it and go off to Turks Island. Remember how there's a bit of Storyteller dialog in which you can turn into Guy Verbinski and have the option to do some more sailing before the 10 year delay? This is what triggers it. Right after you arrive at Turks Island, you teleport to Tortuga tavern, turn into Guy Verbinski, and get the option to ask what happens to Jack in his new ship. If you take that, you teleport back to Turks Island and resume play as Jack Sparrow. Francois de Hadoque splits the loot with you, then you're on your own and can do what you want. And that's why the "Sao Feng's Bodyguards" side quest is going to be investigated next...
     
    Pieter Boelen likes this.
  6. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,575
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands
    So apparently there is something wrong in the order that quest cases are found.
    Should be possible to rectify that by editing quests.c .
     

Share This Page