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

Updates

Strange. I was sure I'd installed both the 13th May installer and the 27th May zip update, so I don't know where an old version of "quests_reaction.c" would have crept in.

I've used "windiff" to compare the modified version to the one in the 27th May zip file and, apart from the modifications I added, they're almost identical. The one other difference is just before "case cartagena_snoring_starts", where the modified version has "//pär" and the version from the zip file has "//pär". I don't even know what that's supposed to be, let alone how it got changed, but the "//" ought to mean it's a comment and has no effect anyway.

(The zip file shown here is "b14_b3-5_wip27May2014.zip". Perhaps I should use a zip file from 2015. ;))
 
The differences are mainly a huge lot of indentation, but not so much actual code.
Not sure what I did and didn't upload now though. :modding
 
I didn't find out how to become immortal but I did find the numpad keys to get free money and levels. Those, plus a shopping trip to Hopital, got me high Melee skill, gold armour, and back in business.

Incidentally, cheat mode is bugged in Hopital. The port gate locks behind you when you go into town. You talk to Pierre Delacroix, then the gate unlocks - except that if you choose one of the cheat shortcuts to another chapter, the unlock never happens, so when you next go to Hopital to buy stuff, the only way out is to teleport to the ship.

So I was able to go through the whole "Cartagena Firework" chapter, incidentally verifying that a line I'd added to "quests_reaction.c" after Elting introduces Bartolomeu to the Kralendijk governor works - Bartolomeu becomes neutral to Holland as intended. The rest of the chapter proceeded as normal, and Elting did appear in the cabin. So the version of "quests_reaction.c" included in the zip file at the start of this thread seems to be in the clear, and I'm still puzzled as to why Elting fails to appear in my previous game...

I also loaded up a much earlier savegame, where I'm at Cayman, about to head to Cozumel, which in this part of the story plays the part of Vera Cruz. Several scenes later into "The Aztec Treasure", I'm in the tavern talking to Elting, where my "vcskip" line has done its job and nobody is sitting on Elting's lap. (I also added a line to disable "vcskip" on general principle, but it doesn't really matter because you never see Vera Cruz tavern again after that.)
 
Incidentally, cheat mode is bugged in Hopital. The port gate locks behind you when you go into town. You talk to Pierre Delacroix, then the gate unlocks - except that if you choose one of the cheat shortcuts to another chapter, the unlock never happens, so when you next go to Hopital to buy stuff, the only way out is to teleport to the ship.
Could you upload the file? I think the code is in the Pierre Delacroix dialog.c
 
Confirmed, the unlock is in the section "Bart_part2". I could probably copy it into the section "First time" inside the condition block which handles cheat mode.

Less seriously: Bart_pirate_07 needs to have his dialog changed. When he does his solo charge into the group of Spanish soldiers in Cartagena and gets himself knocked out, he really needs to yell "Leeroy Jenkins!" xD And you'll never know how hard it was for me to resist the temptation to make a slight change to Governor Montavez's dialog so that, when he proudly shows Bartolomeu the ammo shed at the top of the fort, Bartolomeu would make a comment about the balls rather than the powder... :wp
 

Attachments

  • Pierre Delacroix_dialog.c
    29.2 KB · Views: 362
Ok, for the two changes.
About the quest items (keys, letters...), they can be removed at the end of the quest (in which they are used) but not just after using them.
I am curious - why not remove them after using them? By comparison, the letter to the Dutch governor is removed right away (in the governor's dialog file, in fact), which is as it should be - you're supposed to give him the letter, and when you give someone a letter, you don't have it any more because he has it. :) Why not do likewise with the letter to the governor of Cartagena?

The same applies to keys. The key which is used on the clock which operates the tunnel gate mechanism is removed right away; presumably it's now stuck in the clock. Why not do the same with the small and large keys used for the gates inside the tunnel? They won't be used for anything else.
 
I am curious - why not remove them after using them? By comparison, the letter to the Dutch governor is removed right away (in the governor's dialog file, in fact), which is as it should be - you're supposed to give him the letter, and when you give someone a letter, you don't have it any more because he has it. :) Why not do likewise with the letter to the governor of Cartagena?

The same applies to keys. The key which is used on the clock which operates the tunnel gate mechanism is removed right away; presumably it's now stuck in the clock. Why not do the same with the small and large keys used for the gates inside the tunnel? They won't be used for anything else.
You're right about that :yes
Now, I need a few minutes to check the Delacroix dialog.c file
 
I don't understand from Bart_part2 to Bart_part13, I always added:

locations[FindLocation("PoPrince_town")].reload.l2.disable = 0;

So, the location should be always opened. o_O
 
If I don't use cheat mode then the door is fine. But while I was cheating, I gave myself lots of extra cash, then went to Hopital to spend it because I didn't find any gold armour on sale at Port Royal.
I don't understand from Bart_part2 to Bart_part13, I always added:

locations[FindLocation("PoPrince_town")].reload.l2.disable = 0;

So, the location should be always opened. o_O
Look again at "Pierre Delacroix_dialog.c", specifically at "Bart_part13". I think I've found the problem:

locations[FindLocation("Port_au_Prince_town")].reload.l2.disable = 0;

;)
 
Ah, that would explain a lot. If I recall, it MUST be "PoPrince_town" and not the other one because otherwise the Escort Quests don't work properly.
There was a bug that such a quest to Port au Prince didn't finish in port. Turns out it finished in the fort instead.
Because it ALSO had "port" in the location ID, see? :facepalm

Anyway, that is when I did a search-and-replace to change all "Port_au_Prince" to "PoPrince" to prevent such issues in the future.
 
Oh, are you keeping track of all your changes? Because I think I may be missing out on some here and there.
 
These should contain everything.
Gregario Montavez dialog: corrected as previously mentioned, also "dialog.c" now removes the King's letter when you give it to him.
Reynard Grueneveldt and Johan Elting dialogs: corrected as previously mentioned.
Pierre Delacroix dialog fixed so that Hopital port gate unlocks if you use cheat mode to skip to "The Cartagena Firework".
Ships_init.c: "PiratBattleGalleon" stats now factor in Portuguese national modifiers as these are not applied to a "unique" ship. (Also includes my revised "Revenge" stats.)
StartStoryline.c: England and Holland set to neutral, as none of the Anglo-Dutch wars were in progress when the "Bartolomeu" storyline is set. (Ditto for "Assassin".)
quests_reaction.c: all previous modifications, also the small key and big key which you pick up in the fort tunnel are removed when you use them.

I ran a test game using cheat mode to skip ahead to "The Cartagena Firework" and checked that all this works.
 

Attachments

  • RESOURCE.zip
    6.9 KB · Views: 325
  • PROGRAM.zip
    136 KB · Views: 328
Sorry, but I couldn't help it. It was hard enough resisting the first time, but having revisited the storyline to gather all the updates together and do a final check, the temptation was just too strong the second time. :D

First copy "PROGRAM\Storyline\Bartolomeu\Dialogs\ENGLISH\Divers_dialog.h" to somewhere safe so you can put the proper one back. Then copy this one in its place. Wait for Bartolomeu's pirate friend to do his suicidal solo charge... (Or use WinMerge to compare this one to the proper one and figure out what is going to happen.)
xD
 

Attachments

  • Divers_dialog.h
    8.3 KB · Views: 332
Sorry, but I couldn't help it. It was hard enough resisting the first time, but having revisited the storyline to gather all the updates together and do a final check, the temptation was just too strong the second time. :D

First copy "PROGRAM\Storyline\Bartolomeu\Dialogs\ENGLISH\Divers_dialog.h" to somewhere safe so you can put the proper one back. Then copy this one in its place. Wait for Bartolomeu's pirate friend to do his suicidal solo charge... (Or use WinMerge to compare this one to the proper one and figure out what is going to happen.)
xD
From what I read, it is something about a World of Warcraft video. :)
I know the pirate was unconscious, but I wouldn't like he could be considered stupid. :(
 
Here's the video:
.
There's a lot of talking and planning, then Leeroy Jenkins makes his contribution at about 1:20. Disregarding what everyone else had planned, he charges in solo, sort of like a certain pirate. xD

Anyway, it was a bit of fun, not part of the "official" update, which is why I kept it separate and suggested keeping a copy of the real dialog file. ;)
 
A few more updates, if @Bartolomeu o Portugues has no objection:

Mostly they're minor spelling corrections to dialog text, e.g. "kidnap" instead of "kidnapp", or "Spanish" instead of "spanish".

In "quests_reaction.c", I'd like to put a vcskip on "Tortuga_port" at case "paymaster_antigua15" and cancel it at "paymaster_tortuga". This is for the scene in which you've just brought Martin de Urquiza, his valet, and Daniel Montbars back to Tortuga, and Bertrand Ogeron is supposed to meet you. Without the "vcskip", at least one of them is always missing. Even with it, I have to remove one of my shore party officers if Ogeron is to show up reliably.

During "The Cartagena Firework", you're sitting on a wall shooting at Spanish soldiers with the sniper rifle. Elting is attacking them with his fists, and if he stuns one, you can't complete that scene because stunned characters don't count as killed even if you finish them off. The only way I could prevent this was by putting this into case "outside_fort60", which is the sniping scene:
Code:
           TakeItemFromCharacter(CharacterFromID("Elting"), "bladeX4");
           if (!CheckCharacterItem(CharacterFromID("Elting"), "Blade_ProudOfAnvil")) GiveItem2Character(CharacterFromID("Elting"), "Blade_ProudOfAnvil");
           EquipCharacterByItem(CharacterFromID("Elting"), "Blade_ProudOfAnvil");
Not only does Elting need to be given his sword and equipped; he needs to have his fists removed, otherwise he uses them in preference. (Before I put in the command to remove "bladeX4", I had a 'DumpAttributes' command in there. I got as far as that scene, then quit the game and check "compile.log". Elting certainly had his sword but still insisted on using his fists until I added the command to remove them.)

A couple of places have 'pchar.sailaway = false;'. This is presumably meant to cancel the 'pchar.sailaway = true;' when one of your officers has just mutinied and stolen your ship. But it doesn't work - presumably whatever code makes the ship sail away only checks for the existence of the "sailaway" attribute", not its value. The result is that my ship still tries to sail away when the main story is complete. (On one occasion I watched as it sailed backwards through Charlestown shipyard and into the hill behind. xD) Those lines should probably be replaced by 'DeleteAttribute(pchar, "sailaway");'. I put that into "console.c", ran it, and my ship then stayed where it was in port.
 
Mostly they're minor spelling corrections to dialog text, e.g. "kidnap" instead of "kidnapp", or "Spanish" instead of "spanish".
Pretty sure he doesn't object.
I've made bigger text changes than that in the past...

In "quests_reaction.c", I'd like to put a vcskip on "Tortuga_port" at case "paymaster_antigua15" and cancel it at "paymaster_tortuga". This is for the scene in which you've just brought Martin de Urquiza, his valet, and Daniel Montbars back to Tortuga, and Bertrand Ogeron is supposed to meet you. Without the "vcskip", at least one of them is always missing. Even with it, I have to remove one of my shore party officers if Ogeron is to show up reliably.
Sounds that that can't hurt.

During "The Cartagena Firework", you're sitting on a wall shooting at Spanish soldiers with the sniper rifle. Elting is attacking them with his fists, and if he stuns one, you can't complete that scene because stunned characters don't count as killed even if you finish them off. The only way I could prevent this was by putting this into case "outside_fort60", which is the sniping scene:
Code:
TakeItemFromCharacter(CharacterFromID("Elting"), "bladeX4");
if (!CheckCharacterItem(CharacterFromID("Elting"), "Blade_ProudOfAnvil")) GiveItem2Character(CharacterFromID("Elting"), "Blade_ProudOfAnvil");
EquipCharacterByItem(CharacterFromID("Elting"), "Blade_ProudOfAnvil");
Not only does Elting need to be given his sword and equipped; he needs to have his fists removed, otherwise he uses them in preference. (Before I put in the command to remove "bladeX4", I had a 'DumpAttributes' command in there. I got as far as that scene, then quit the game and check "compile.log". Elting certainly had his sword but still insisted on using his fists until I added the command to remove them.)
Fists STILL take precedence? But for this player they don't?!? That's really weird!
Maybe calling auto-equip on him would work too? Doesn't matter though because he probably doesn't need his fists.

Does a quest not continue after you have killed a stunned character?
So "being stunned" doesn't count as dead, but you could still continue?
I wonder if there's a way to make "stunned" update things too.
Probably not worth the effort though to try, though...

A couple of places have 'pchar.sailaway = false;'. This is presumably meant to cancel the 'pchar.sailaway = true;' when one of your officers has just mutinied and stolen your ship. But it doesn't work - presumably whatever code makes the ship sail away only checks for the existence of the "sailaway" attribute", not its value. The result is that my ship still tries to sail away when the main story is complete. (On one occasion I watched as it sailed backwards through Charlestown shipyard and into the hill behind. xD) Those lines should probably be replaced by 'DeleteAttribute(pchar, "sailaway");'. I put that into "console.c", ran it, and my ship then stayed where it was in port.
Ouch, looks like I've been lazy when writing that code then! :modding
 
Fists STILL take precedence? But for this player they don't?!? That's really weird!
Maybe calling auto-equip on him would work too? Doesn't matter though because he probably doesn't need his fists.
And if at some point he does need fists, "bladeX4" can be given and equipped again...
Does a quest not continue after you have killed a stunned character?
No, which has caused problems in the "Assassin" storyline in the past. There's a scene where Bartolomeu has just been scouting a fort for the Aztec throne and you have to help him fight some guards. Bartolomeu didn't have a weapon, so he was punching guards, and if he stunned one then you couldn't proceed to the next scene. This was solved by giving Bartolomeu his special sword. I don't know why he didn't need "bladeX4" to be removed, but Elting does need it removed in the "Bartolomeu" storyline. That's just how it works...
 
Back
Top