Yes - see the report on
post #56. Sometimes the game does not crash and the game works; and sometimes it does crash.
I tried again, with the line in "sea.c" which allows the possibility of a third fleet commented out; the hope was that, since the game certainly supports a double encounter from worldmap, it might support a double encounter during direct sail as well, and perhaps only triple encounters were causing crashes. No such luck; it still sometimes crashed immediately after "Sail Ho" when triple encounters were impossible.
So I decided to help determine the problem and there are two things. If you review your Windows Event Viewer for the crashes, I bet that either Sea_AI.dll or Peoples_on_ship.dll are involved in the crash.
For the Sea_ai crash in the older Storms, the Maelstrom now avoids the crash problem for the situation presented during the test of these multiple encounters, but when it circumvents that particular error there will be no AI for the ships in question; a "controller" object gets corrupted. I have not spent much time further investigating this, as it's a moot point in the later versions of the scripts, but I suspect that is due to the fact that both POTC and NH can send the same reference, for two different "create" objects in the following message:
SendMessage(&AISea, "liaa", AI_MESSAGE_ADD_SHIP, rCharacter, rCharacter, &ShipsTypes[iShipType]);
That ShipsTypes array is the "base" ship array, and if two or more characters submit the same iShipType, then the references in the engine will reassign to a different character, but since the previous character's AI ship was created, with that other ship reference, the engine can no longer reference it, and during the loop of ship ai objects during the "execute" loop, it will crash. This problem is less frequent and the later versions of the game avoid this problem because they introduced a separate array for RealShips to keep these references distinct.
The more prevalent problem is the peoples_on_ship crash...which did crash Maelstrom and Storm because Peoples_on_ship contains a static array hardcoded to a max of 25 ships that it will keep track of and as soon as the SendMessage(&PeopleOnShip, "lal", MSG_PEOPLES_ON_SHIP_MASTFALL, GetCharacter(chrIdx), mastNum) line is called, past 25 ships, gonna crash.
I can change this to be dynamically sized, even though peoples_on_ship is deprecated for CT and beyond, in favor of the later "Sailors" class.