• 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 Nelson Storyline: Turks Help Sidequest Lapse of Logic

Grey Roger

Sea Dog
Staff member
Administrator
Storm Modder
For the moment I'm finishing off the side quests in the current version of the "Nelson" storyline. And the in-game character Pieter Boelen is confused. xD

I'm to help the pirate settlement of Turks Island (which is owned by Britain) against a Spanish attack from Saint Domingue (which is owned by France). I've got as far as talking to the Spanish officer in the tavern of the not-Spanish Saint Domingue, followed by the beach encounter. Next play session will probably see the Spanish attack on Turks Island, followed by Pieter asking me to take him to La Tortue (which is owned by France). So basically I go to a French port to help a Dutch pirate who wants to defend what is now a British colony, then take him to another French colony to get more help.

The Spanish attack on British Grand Turk would make even less sense if variable relations hadn't randomly put Spain at war with Britain. By default in this timeline Spain and Britain are at peace, which would make the Spanish attack on Grand Turk the 18th century equivalent of Pearl Harbor...
 
LOL! Yep, there is absolutely zero guarantee that main and side quests make any sense whatsoever when played in a different time period or with Changing Relations on.
I don't think there is anything that can be done to avoid that. Nothing simple at least.

I always figure that if players change storyline start parameters or use Random Relations, they choose to be subject to potential lapses in logic. :wp
 
But I didn't change anything. I picked a storyline and, apart from raising difficulty from "Journeyman" to "Adventurer", left everything as default. This being a free play storyline, random relations was set by default.

Besides, random relations didn't cause a lapse in logic. In this case, random relations restored logic. At the start of the game, and therefore presumably by default in the "Revolutions" time frame, Britain and Spain were at peace. Random relations caused them to go to war, making a Spanish attack on the British Turks Island more reasonable. ;)

The fundamental problem is that in "Revolutions" (and, if I remember correctly from last time I played "Tales of a Sea Hawk", also in "Golden Age") the source of the threat isn't Spanish-owned Santo Domingo, it's French-owned Saint Domingues. Perhaps have the Spanish attack come from Havana or Santiago instead? Or have the French be the attackers instead of the Spanish, and have the attack come from Hopital / Port au Prince? That would be consistent across all time periods except "Early Explorers", where all sorts of things are inconsistent anyway. The only snag with having the French be the attackers is the amusement of then seeking help from French-owned La Tortue...
 
Indeed changing it to Santiago would at least make it correct for nation and period.
It could still not make sense depending on nation relations, but the only way to get past that would be really complex.
I like your proposed simple solution. ;)
 
Could someone tell me which dialog/quest entries are affected by this?
 
The dialogs for this quest are "Pieter Boelen_dialog.c / .h" and "Diego Cordoba_dialog.c / .h", both in PROGRAMS\DIALOGS (\English for the .h files, of course). Diego Cordoba does not seem to say anything specific about Santo Domingo, he refers to "my governor" or "our governor" but not which town he governs. Of course, if the quest is relocated to Santiago or somewhere else, Diego Cordoba will need to be relocated too.

There's also "RESOURCE\INI\TEXTS\ENGLISH\Storyline\Standard\QUESTBOOK\Turkshelp.txt" which tells your quest book what you're doing about Turks Island. (It might not be in that directory any more if you've been relocating quest files. ;))

I've no idea where to look for the quest itself.
 
That'll about do it!

So you say this requires moving a character to a different town altogether?
In that case, I'll postpone doing this until I have finished splitting the sidequests from the main quest.
At the moment I made a start on that, but it is far from done yet.
 
The first part of the quest is to go to the town from which the attack will come, then persuade an officer to confirm that the attack is indeed imminent. At the moment that's Diego Cordoba, who is to be found in Santo Domingo / Saint Domingues, which is the source of the attack. If the quest is to be changed so that the attack comes from a different town then Diego Cordoba will need to be transferred to the tavern in that town.
 
Is there anything else that is town-specific there? Or just the location of Diego Cordoba?

@Bartolomeu o Portugues: What do you think about changing Santo Domingo to Santiago here? Does that mess up your original intentions?
 
I don't think there's anything else in the quest specific to Santo Domingo. You go there, trick Diego Cordoba into meeting you on the beach, "persuade" him to tell you all about the attack, then the rest of the action takes place back on Turks Island.

But there's one more dialog which would need to be changed because Pieter Boelen has two of them. There's a reference to Santo Domingo in "Pieter at Douwesen_dialog.h":
It seems the Governor of #sSanto Domingo# has been demoralized by the failure of the invasion.
Unless there's anything significant in the corresponding .c file, that one is easily fixed by removing the town name entirely and just having him say "the Governor". If it's good enough for Diego Cordoba, it's good enough for anyone else. :D
 
This should be good now:
All reference to "Santo Domingo" changed to "Santiago" and "Hispaniola" to "Cuba".
Location of Mr. Cordoba also moved to Cuba and should appear there properly.
 
Also the help the Pirates quest has some problems. When you go to Santiago to the tavern and talk to the soldier you tell the smugglers are at Boca de Yunan (Hispanola). When you defeat the soldiers and go to the ship you depart Turks from the Southeast side of Hispanola not Cuba. The quest is playable to the end but is seriously messed up in the details.
 
Also the help the Pirates quest has some problems. When you go to Santiago to the tavern and talk to the soldier you tell the smugglers are at Boca de Yunan (Hispanola). When you defeat the soldiers and go to the ship you depart Turks from the Southeast side of Hispanola not Cuba. The quest is playable to the end but is seriously messed up in the details.
Looks like the move from Hispaniola to Cuba requires a LOT more than just "moving Diego Cordoba" to another tavern.

After you meet him, now in the Santiago Tavern instead of Santo Domingo, the remainder of the story teleports right back to Hispaniola:
Code:
    case "meetboca":
       DoReloadCharacterToLocation("Hispaniola_shore_01", "goto", "goto7");
       LAi_SetStayType(pchar);
       ChangeCharacterAddressGroup(CharacterFromID("Diego Cordoba"), "Hispaniola_shore_01", "goto", "goto3");
       locations[FindLocation("Hispaniola_shore_01")].reload.l2.disable = 1;
       locations[FindLocation("Hispaniola_shore_01")].reload.l3.disable = 1;
       pchar.location.from_sea = "Hispaniola_shore_01";
       SetFleetInTown(GetTownIDFromLocID(pchar.location.from_sea), "pchar"); // NK
       Characters[GetCharacterIndex("Diego Cordoba")].dialog.currentnode = "begin_4";
       LAi_SetActorType(characterFromID("Diego Cordoba"));
       LAi_ActorRunToLocator(characterfromID("Diego Cordoba"), "goto", "goto5", "parle", 0.0);
       Pchar.quest.Turks_timer1.over = "yes";
     break;

     case "parle":
       LAi_ActorDialog(characterFromID("Diego Cordoba"), pchar, "", 0.0, 1.0);
     break;

     case "fightboca":
       LAi_SetPlayerType(pchar);
       LAi_SetImmortal(CharacterFromID("Diego Cordoba"), 1);
       LAi_ActorAttack(CharacterFromID("Diego Cordoba"), PChar, "");

       sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m2, "goto", "goto2"); // PB
       LAi_SetHP(sld, 80.0, 80.0);
       LAi_group_MoveCharacter(sld, "SHORE_SOLDIERS");

       sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m3, "goto", "goto2"); // PB
       LAi_SetHP(sld, 80.0, 80.0);
       LAi_group_MoveCharacter(sld, "SHORE_SOLDIERS");

       sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m4, "goto", "goto2"); // PB
       LAi_SetHP(sld, 80.0, 80.0);
       LAi_group_MoveCharacter(sld, "SHORE_SOLDIERS");

       sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m5, "goto", "goto2"); // PB
       LAi_SetHP(sld, 80.0, 80.0);
       LAi_group_MoveCharacter(sld, "SHORE_SOLDIERS");

       LAi_group_FightGroups("SHORE_SOLDIERS", LAI_GROUP_PLAYER, true);

       LAi_group_SetCheck("SHORE_SOLDIERS", "diegosurrender");
     break;

     case "diegosurrender":
       LAi_SetActorType(characterFromID("Diego Cordoba"));
       Characters[GetCharacterIndex("Diego Cordoba")].dialog.currentnode = "begin_8";
       LAi_ActorDialog(characterFromID("Diego Cordoba"), pchar, "", 1.0, 1.0);
     break;

     case "gototurks":
       LAi_SetActorType(characterFromID("Diego Cordoba"));
       LAi_ActorRunToLocation(characterFromID("Diego Cordoba"), "reload", "reload1", "none", "", "", "diegoship", 0.0);
     break;

     case "diegoship":
       locations[FindLocation("Hispaniola_shore_01")].reload.l2.disable = 0;
       locations[FindLocation("Hispaniola_shore_01")].reload.l3.disable = 0;

       AddQuestRecord("Turkshelp", 2);
       PChar.quest.Turkshelp = "news";
       Pchar.quest.Turkshelp.win_condition.l1 = "location";
       Pchar.quest.Turkshelp.win_condition.l1.location = "Turks_Tavern";
       PChar.quest.Turkshelp.win_condition = "givenews";
       LAi_QuestDelay("Turks_timer2", 0.0);
     break;

Who would be willing to update those locations to be also on Cuba?
Maybe @Bartolomeu o Portugues or @Grey Roger?
 
Back
Top