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

Discussion Anachronistic ships

Grey Roger

Sea Dog
Staff member
Administrator
Storm Modder
There are two ships in "Tales of a Sea Hawk" which don't belong there. In Silehard's squadron to retake Bridgetown, the Monarch is an Essex class frigate, which is defined in "Ships_init.c" as only appearing in the "Napoleonic" period. In contrast to a ship from the future, Brian the Slayer, one of Silehard's pirate friends in the battle at Cozumel, has a Fast War Galleon, which according to "Ships_init.c" shouldn't exist later than "Golden Age".

I've vague memory that in older versions of the game, Monarch was another battleship, though I also remember a corvette being there - the Bridgetown squadron used to contain four ships, not three. The character definition file "Story.c" includes Lewellyn Belt, also with an Essex class, though he currently does not appear in "quests_reaction.c". I suggest putting the Monarch back to being a battleship and re-instating Lewellyn Belt with a lesser frigate, possibly an "Aurora" class. (If one of the ships was removed because three battleships plus a frigate was too difficult, maybe only assign the Monarch if you're playing one of the higher two difficulty levels.)

As for Brian the Slayer, the plain wooden finish Constitution look-alike, "SuperFrigate", alias Iceni Queen, is available in "Colonial Powers". (In fact, it's even available in "Golden Age"!) Perhaps he could have one of those. Otherwise maybe give him a "Crimson Blood", which is a pirate retexture of an "Aurora", different to the "PiratCorvette" which you may already have met if you took the "Sink the Pirate Corvette" side quest.
 
Probably the reason for changing those ships is because we wanted to put good new models to use, but didn't actually have the Periods mod yet.
Can't quite remember now...
 
For appearance, I'd say "RN_Corvette" or "Frigate1" are a match for "RN_Essex", and both are valid for "Colonial Powers". For Brian the Slayer, "CrimsonBlood" is a suitably piratey design and is, as far as I know, not used outside the "Hoist the Colours" storyline, so it might be nice to give the ship a bit more action.
 
For Brian the Slayer, "CrimsonBlood" is a suitably piratey design and is, as far as I know, not used outside the "Hoist the Colours" storyline, so it might be nice to give the ship a bit more action.
Indeed that was eventually used as a quest-only ship.
But there is no real reason why she cannot be put to a bit more use.
Give her regular sails though, not her "quest-specific" red alternative.
Then at least her Hoist the Colours appearance remains somewhat unique.
 
Ships have their sails set red by this:
Code:
   refShip.EmblemedSails.normalTex = "sail_whole_red_plain.tga";
   refShip.EmblemedSails.nationFileName = "sail_whole_red_plain.tga";
You'll see that in "Ships_init.c" in the definition of "Frigate_sat", for example, but you won't see it for "CrimsonBlood". Where you will find that code, or something equivalent, is in the definition of the ship's captain in "storyline\JackSparrow\characters\init\TempQuest.c".

So it seems that by default she does get regular sails, and only gets "quest-specific" red in "Hoist the Colours". ;)
 
Ships have their sails set red by this:
Code:
   refShip.EmblemedSails.normalTex = "sail_whole_red_plain.tga";
   refShip.EmblemedSails.nationFileName = "sail_whole_red_plain.tga";
You'll see that in "Ships_init.c" in the definition of "Frigate_sat", for example, but you won't see it for "CrimsonBlood". Where you will find that code, or something equivalent, is in the definition of the ship's captain in "storyline\JackSparrow\characters\init\TempQuest.c".

So it seems that by default she does get regular sails, and only gets "quest-specific" red in "Hoist the Colours". ;)
Excellent! I wasn't sure if that was the case. :onya
 
Probably the reason for changing those ships is because we wanted to put good new models to use, but didn't actually have the Periods mod yet.
Can't quite remember now...
I think the Essex was added much later than the Periods mod, so it may just have been an excuse to use her in a quest. I'd say swapping her for a more period-accurate frigate would be fine.
 
Here's my proposed new version of "PROGRAM\Storyline\standard\characters\init\Story.c".
  • Waulter Tomlison's Vengeance is the revived, retextured "Battleship4".
  • Henry Banfield's Monarch is "RN_Battleship", the same type that is already used for Malcolm Hart's Desperate, instead of "RN_Essex".
  • Lewellyn Belt's Meleager is "Frigate1", alias Kreyser class, instead of "RN_Essex".
  • Brian The Slayer's Bato is "CrimsonBlood". (Without any added lines to change the sail texture. ;))
There's also already Wauter Keech in command of "RN_Corvette" Black Prince. Neither he nor Lewellyn Belt are currently included in "quests_reaction.c", so either a Kreyser or an Aurora can be added to the squadron by adding one or other of these two captains at case "to_suadron". (Though that case name, the 'break' from the previous case, and some 'SetCrewQuantity' lines, are all commented out, so the squadron assignments are effectively part of case "danielle_RepelEnglishAssault_exit".) I could also make Henry Banfield's involvement conditional on difficulty level so that players who choose the lower two levels only have two battleships to deal with.

Any preferences?
 

Attachments

  • Story.c
    70.9 KB · Views: 268
Here's what I'm thinking:
Code:
       Group_CreateGroup("Story_English_Squadron");
       Group_AddCharacter("Story_English_Squadron", "Waulter Tomlison");   // Battleship4 "Vengeance"
       Group_AddCharacter("Story_English_Squadron", "Malcolm Hart");     // RN_Battleship "Desperate"
       if(GetDifficulty() <= DIFFICULTY_MARINER)
       {
         Group_AddCharacter("Story_English_Squadron", "Wauter Keech");   // RN_Corvette "Black Prince"
       }
       else
       {
         Group_AddCharacter("Story_English_Squadron", "Henry Banfield");   // RN_Battleship "Monarch"
         Group_AddCharacter("Story_English_Squadron", "Lewellyn Belt");   // Frigate1 "Meleager"
       }

       //SetCharacterRelationAsOtherCharacter(GetCharacterIndex("danielle"), GetMainCharacterIndex());
       //SetCharacterRelationBoth(GetCharacterIndex("danielle"),GetMainCharacterIndex(),RELATION_FRIEND);

       //SetCharacterRelationBoth(GetCharacterIndex("Waulter Tomlison"), GetMainCharacterIndex(), RELATION_ENEMY);
       //SetCharacterRelationBoth(GetCharacterIndex("Waulter Tomlison"), GetCharacterIndex("danielle"), RELATION_ENEMY);
       Group_SetGroupCommander("Story_English_Squadron", "Waulter Tomlison");
       Group_SetTaskAttack("Story_English_Squadron", PLAYER_GROUP, true);
       //Group_SetAddress("Story_English_Squadron", "Oxbay", "Quest_Ships", "Quest_ship_23");
       Group_LockTask("Story_English_Squadron");

       iForceDetectionFalseFlag = 1; // KK

       Pchar.quest.Story_RepelEnglishAssaultOnGreenford.win_condition.l1 = "NPC_Death";
       Pchar.quest.Story_RepelEnglishAssaultOnGreenford.win_condition.l1.character = "Waulter Tomlison";
       Pchar.quest.Story_RepelEnglishAssaultOnGreenford.win_condition.l2 = "NPC_Death";
       Pchar.quest.Story_RepelEnglishAssaultOnGreenford.win_condition.l2.character = "Malcolm Hart";
       if(GetDifficulty() <= DIFFICULTY_MARINER)
       {
         Pchar.quest.Story_RepelEnglishAssaultOnGreenford.win_condition.l3 = "NPC_Death";
         Pchar.quest.Story_RepelEnglishAssaultOnGreenford.win_condition.l3.character = "Wauter Keech";
       }
       else
       {
         Pchar.quest.Story_RepelEnglishAssaultOnGreenford.win_condition.l3 = "NPC_Death";
         Pchar.quest.Story_RepelEnglishAssaultOnGreenford.win_condition.l3.character = "Henry Banfield";
         Pchar.quest.Story_RepelEnglishAssaultOnGreenford.win_condition.l5 = "NPC_Death";
         Pchar.quest.Story_RepelEnglishAssaultOnGreenford.win_condition.l5.character = "Lewellyn Belt";
       }
// KK -->
       pchar.quest.Story_RepelEnglishAssaultOnGreenford.win_condition.l4 = "SeaEnter"; //condition to allow boarding all 3 ships PW
       //pchar.quest.Story_RepelEnglishAssaultOnGreenford.win_condition.l4.location = "Oxbay";
// <-- KK
       Pchar.quest.Story_RepelEnglishAssaultOnGreenford.win_condition = "Story_RepelEnglishAssaultOnGreenford";
So, if I've done it right, at lower difficulty, you face two battleships and an Aurora class corvette. At higher difficulty levels you face three battleships and a Kreyser class frigate. Win conditions are also set depending on difficulty level so the game shouldn't be waiting for you to sink or capture a ship which isn't there.
 
Except that my memory was playing tricks on me. I thought there were originally three battleships and a corvette because I could never capture the corvette due to not having enough room in my fleet - it was either capture all the battleships and sink the corvette, or sink one of the battleships and keep the corvette, and the battleships sold for more money at the shipyard. In fact, looking at code for both the stock version and Build 13, it seems there have always been three ships - Tomlison, Hart and Banfield. In the stock game, Tomlison got the corvette. In Build 13, he got the AoP battleship and there was no corvette. And the reason I couldn't capture all three ships is that, both in the stock game and in Build 13, I'd have had the Mefisto by this point in the game. Especially in the stock game, when I couldn't wait to finish "Strange Things Going On" until after events at Khael Roa because the game ended at Khael Roa. Berthing the Mefisto to give me an extra slot to capture a ship wasn't an option until Build 14.

So, do you want the Bridgetown squadron to continue to have three ships, as in earlier versions; or to have four ships in higher difficulty settings. If three, which three? Two battleships and a frigate / corvette as in the stock game, or three battleships as in Build 13?
 
So, do you want the Bridgetown squadron to continue to have three ships, as in earlier versions; or to have four ships in higher difficulty settings. If three, which three? Two battleships and a frigate / corvette as in the stock game, or three battleships as in Build 13?
I really don't mind either way. It's up to the players, really.
Maybe @ANSEL, @Jason and/or @pedrwyth have any feedback?
 
I was asking for other people's opinions before making a final decision! This is the original storyline dating back to the stock game, it's a piece of PoTC history, and I'm not about to make any changes to it without other people agreeing first.

Personally I'm now inclined to have three battleships at higher difficulty, and two battleships plus a frigate at lower difficulty. Previous versions have only had three ships, so that is preserved. Low difficulty gets a similar combination to the stock game; higher difficulty gets the same combination as Build 13.
 
Personally I'm now inclined to have three battleships at higher difficulty, and two battleships plus a frigate at lower difficulty. Previous versions have only had three ships, so that is preserved. Low difficulty gets a similar combination to the stock game; higher difficulty gets the same combination as Build 13.
I have no objections.
 
Very well - unless anyone else has any objections, suggestions or other comments, I'll include a revised version of "quests_reaction.c" next time I upload my post 7th January archive, with the Bridgetown battle squadron set as above.
 
There are some more ships belonging in older periods. In "PROGRAM\Storyline\standard\characters\init\Story.c" are:
Isaac Razilly: FR_SoleilRoyal
Jacques Belmondo: FR_WarGalleon
Pierre Leverrier: FR_Derfflinger

These are used at case "Story_French_squadron_restored", which is triggered by dialog with Rabel Yverneau and which replaces any ships in the French squadron at Speightstown which you might have sunk or captured earlier, so that there's a full squadon waiting for you when you try to escape with Rabel's frigate.

None of those ship types belong in "Colonial Powers". "FR_Derfflinger" isn't even a warship, it's a light fluyt, a small merchant ship!

The original French squadron contains a "HMS_Centurion", a "FR_Frigate" and a "RN_Corvette". Perhaps use "FR_Fleuron", or "FR_Trinity" if we want something more powerful, for the first ship; "FR_Boussole" for the second (yes, the same type of ship that you're getting from Rabel Yverneau :D) and "RN_RaaFrigate" for the third. Alternatively, has anyone any better ideas?

(Incidentally, the original "FR_Frigate" is named Cléopâtre. That would be the more correct French spelling of Cleopatra. Remember that next time you talk to Milon Blacque. xD)
 
Last edited:
The original French squadron contains a "HMS_Centurion", a "FR_Frigate" and a "RN_Corvette". Perhaps use "FR_Fleuron", or "FR_Trinity" if we want something more powerful, for the first ship; "FR_Boussole" for the second (yes, the same type of ship that you're getting from Rabel Yverneau :D) and "RN_RaaFrigate" for the third. Alternatively, has anyone any better ideas?
Sounds fine to me!

I think it was me who changed those ship models and I just picked them to give those (at the time) brand-new models some specific use.
But I've got no loyalty to them being used there, so you're very welcome to fix it up. :doff
 
Back
Top