• 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 Tales of Sea Hawk - Stormy Start

Talisman

Smuggler
Storm Modder
Build 14 Beta 4-1 ( with fixes only incl GreyRogers latest fixes ) Main screen says 23 Nov 16

When starting the Standard Story & using the Stormy Start I get an on screen error message when I am put on the beach after talking to Malcolm ( see image )
POTC_B14_B4-1_Standard.JPG


There appears to be some missing code (cases) in the Standard/ Quests/ both_reaction.c file

I checked by playing the free Play version of the Stormy start and it worked OK. (no message )

in the Standard Story Compile.log I got the following :-

Code:
ItemLogic: found 0 buttons
Quest name EnableModelSelect FOUND in BothQuestComplete
ERROR - Quest name stormystart4 NOT found in ANY function  <<<--- THIS ENTRY
SETTING MUSIC: music_jungle
SETTING MUSIC: music_jungle
Reload: Process started for locator_name = reload1_back and lockedReloadLocator =


The both_reaction.c file in the Standard Story folder has this as the code at the end of case "stormystart3": :

Code:
case "stormystart3":   // casts you ashore at a random beach with random resources

........ ( edited out lots of code from case"stormystart3") .....

        case 19:
           loadPort = "Oxbay_shore_01";
           loadTown = "Oxbay_shore_01";
           rldLocator = "see";
         break;

         // default:
         loadPort = "KhaelRoa_port";
         loadTown = "KhaelRoa_port";
         rldLocator = "reload1";
       }
       i = getRandomContrabandGood(GetIslandByID(FindIslandByLocation(loadTown)));
       if (i > 0) AddCharacterGoods(PChar, i, (2.0+rand(2))/10.0 * GetCharacterFreeSpace(PChar, i) ); // PB&Levis: Between 20%-40% contraband
       SetQuestHeader("StormyStart");
       AddQuestRecord("StormyStart", 1);
       AddQuestRecord("StormyStart", 2);
       CloseQuestHeader("StormyStart");

       DoQuestReloadToLocation(loadTown, "reload", rldLocator, "stormystart4");   <<---- CAUSES ERROR MESSAGE
       PlaceFleetNearShore(loadPort); // KK

       PostEvent("DoInfoShower",500,"s","");   //TIH - clears black screen
     break;
// ccc end stormy start mod

// KK -->
     case "Tut_SkipTutorialInPort":
       rldLocator = "Reload1";
       switch(GetCurrentFlag())
       {
         case ENGLAND:
           rldLocator = "reload1";
         break;

         case FRANCE:
           rldLocator = "Falaise_de_fleur_location_01_02";

While the both_reaction.c file in the Free Play Story folder has this:

Code:
case "stormystart3":   // casts you ashore at a random beach with random resources

........ ( edited out lots of code from case"stormystart3") .....

        case 19:
           loadPort = "Oxbay_shore_02"; // PB (separated from ship)
           loadTown = "Oxbay_shore_01";
           rldLocator = "see";
         break;

         // default:
         loadPort = "KhaelRoa_port";
         loadTown = "KhaelRoa_port";
         rldLocator = "reload1";
       }
       i = getRandomContrabandGood(GetIslandByID(FindIslandByLocation(loadTown)));
       if (CharPlayerType == PLAYER_TYPE_CASTAWAY)
       {
         if (i > 0) AddCharacterGoods(PChar, i, 2);   // contraband
         SetQuestHeader("Beginning_Castaway");
         AddQuestRecord("Beginning_Castaway", 1);
       }
       else
       {
         if (i > 0) AddCharacterGoods(PChar, i, (2.0+rand(2))/10.0 * GetCharacterFreeSpace(PChar, i) ); // PB&Levis: Between 20%-40% contraband
         SetQuestHeader("StormyStart");
         AddQuestRecord("StormyStart", 1);
       }
       DoQuestReloadToLocation(loadTown, "reload", rldLocator, "stormystart4");
       PlaceFleetNearShore(loadPort); // KK

       PostEvent("DoInfoShower",500,"s","");   //TIH - clears black screen
     break;

     case "stormystart4":
       PChar.quest.stormystart5.win_condition.l1 = "ExitFromLocation";
       PChar.quest.stormystart5.win_condition.l1.location = PChar.location;
       PChar.quest.stormystart5.win_condition = "stormystart5";
     break;

     case "stormystart5":
       if (CharPlayerType == PLAYER_TYPE_CASTAWAY)
       {
         AddQuestRecord("Beginning_Castaway", 2);
         CloseQuestHeader("Beginning_Castaway");
       }
       else
       {
         AddQuestRecord("StormyStart", 2);
         CloseQuestHeader("StormyStart");
       }
     break;
// ccc end stormy start mod

// KK -->
     case "Tut_SkipTutorialInPort":
       rldLocator = "Reload1";
       switch(GetCurrentFlag())
       {
         case ENGLAND:
           rldLocator = "reload1";
         break;

         case FRANCE:
           rldLocator = "Falaise_de_fleur_location_01_02";

with additional cases - "stormystart4": & "stormystart5":


I was playing the Standard Story with the default occupation of Merchant - when I changed the occupation to Castaway I still got the error message on screen. :read


:drunk
 

Attachments

  • compile_NH_Stormy.log
    7.1 KB · Views: 144
  • both_reaction_FreePlay.c
    147.7 KB · Views: 139
  • both_reaction_Standard.c
    143.4 KB · Views: 137
You're very much correct, @Talisman!

Just replace this:
Code:
DoQuestReloadToLocation(loadTown, "reload", rldLocator, "stormystart4");
With this:
Code:
DoQuestReloadToLocation(loadTown, "reload", rldLocator, "_");
 
Back
Top