• 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 Make Sail Bug

Rei

Sailor Apprentice
When you have an active fleet and go to direct sail there is this odd bug where you can't make sail while swapping between ships. I tried this several times on different occasions yielding the same results. All you have to do to test it is go with a group in direct sail and make an exchange with one of your companion's ships. When you swap with their ships you are unable to make sail. In some cases you would have to wait a bit for the game to register that you are in their active ship, then you can make sail. It is rare though.
 
Could you test for me if your previous ship is still controlled when it doesnt work?
 
Yeah, your companion is fine. Once you give him your ship he can freely make sail and move around just fine. I can give him orders too and he complies.
 
I mean when you make sails and it doesnt work. does your previous ship rais its sails then? so does the game still think you are on that ship?
 
No, it doesn't. Your companion has full control of it. You can't make sail for him at all.
 
Can you make a savegame where you cannot Hoist/Lower your sails?

There are indeed some things that can prevent that, related to the Delay function in Realistic Game Mode or when a ship was marked as sinking.
These are all reset when you reload to sea, though.

Are you playing on Realistic Game Mode? Because I am suspecting the Delay function to be the cause of this.
 
Yes, I play on realistic or iron man. Arcade is too easy for me and rather boring. On a side note, now that I think of it this is closely related to the last bug I reported about Escort Missions. You can swap with the merchant but he doesn't give you full control of his ship to plunder off with it.
 
I'll make a save for you guys in a bit. I'd need to go plunder a merchant ship and take control of it so I can produce the bug again.
 
Okay, it did what Pieter said. You go to map view then back to direct sail and you are able to swap ships without the make sail bug. The bug only exists if you recently plundered a ship in direct sail. This delay feature may have to be looked over again because if you wish to plunder more than one ship in direct sail you won't be able to control the captured ships. The only work around I found for this is to take control of your own primary ship and ask the others to go full sail, then swap again so that you can sail around with the captured ships. The make sail feature is the only problem with captured ships. I can steer them just fine. Steering captured ship I can do on command. There is no delay feature in that mechanic.
 
So just to be clear:
You swap ships with a companion of yours and subsequently cannot Hoist/Lower sails, is that correct?
 
Probably executing DeleteAttribute(pchar, "Sails.Delay"); would set things back to normal.
Can you try that through console?

I am writing this from memory because I'm not near my game right now.
 
PROGRAM\SEA_AI\AIShip.c see here:
Code:
void Ship_SetSailState(int iCharacterIndex, int iSailState)
{
   if (iCharacterIndex < 0) return; // bugfix here too
   if (iSailState < 0) iSailState = 0;
   if (iSailState > 2) iSailState = 2;
// NK, Amokachi -->
   ref rCharacter = GetCharacter(iCharacterIndex);
   if (CheckAttribute(rCharacter, "Ship.Sink"))       return;
   if (CheckAttribute(rCharacter, "Ship.Sails.Delay"))     return; // PB
   if (IsMainCharacter(rCharacter)) {
     if (!CheckAttribute(rCharacter, "LastSailState")) rCharacter.LastSailState = iSailState;
     if (iSailState == sti(rCharacter.LastSailState)) return;
     if (actLoadFlag == 0) {
       switch (iSailState)
       {
         case 0:
           Log_SetStringToLog(TranslateString("", "Strike all sail!"));
         break;

         case 1:
           Log_SetStringToLog(TranslateString("", "Battle sails!"));
         break;

         case 2:
           Log_SetStringToLog(TranslateString("", "Make all sail!"));
         break;
       }
       if (ENABLE_EXTRA_SOUNDS == 1) {   // added by KAM after build 11 // KK
         if (sti(rCharacter.LastSailState) > iSailState) {
           PlayStereoSound("#sails_down");
         } else {
           PlayStereoSound("#sails_up");
         }
       }
     }
     if (SAIL_OPERATE_DELAY == 0 || iRealismMode == 0) {
       rCharacter.LastSailState = iSailState;
       DeleteAttribute(rCharacter, "Ship.Sails.Delay"); // PB: Just in case
     } else {
       int morale = MORALE_NORMAL;
       if (CheckAttribute(rCharacter, "Ship.Crew.Morale")) morale = sti(rCharacter.Ship.Crew.Morale);
       rCharacter.Ship.Sails.Delay = SAIL_OPERATE_DELAY + round(makefloat(MORALE_NORMAL - morale) / makefloat(MORALE_NORMAL));
       rCharacter.Ship.Sails.Delay.StartTime = GetSeaTime();
       rCharacter.Ship.Sails.Delay.SailsState = iSailState;
       return;
     }
   }
// NK, Amokachi <--

   float fSailState = makefloat(iSailState) / 2.0;
   fSailState = clampf(fSailState); // NK 05-04-20 bugfix
   SendMessage(&AISea, "laf", AI_MESSAGE_SHIP_SET_SAIL_STATE, rCharacter, fSailState);
}
So making sail is prevented if:
- You have the Ship.Sink attribute - This is reset for player and companions when logging into the sea environment
- You have the Ship.Sails.Delay attribute - This is reset for player and companions when logging into the sea environment
- You already have your sails set

To know for sure what is going on, I need a savegame where you have a ship that you cannot hoist sails on.
Then I would have something to test from. Until that time, there is nothing that can be done.
 
Something I have noticed for a while, if you capture a ship during boarding and swap it, you can't lower the sails so you are stuck.
 
Something I have noticed for a while, if you capture a ship during boarding and swap it, you can't lower the sails so you are stuck.
Its an old issue, appears from time to time ,dont know why.
 
Back
Top