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

Solved Flags disappearing.

FlyingGhost

Rumrunner
Storm Modder
Hearts of Oak Donator
Since I made a quicksave and loaded it, all ship flags have disappeared - and they won't reappear. What might be the problem?

0cfk.png


I tried loading the save game again, changign my own flag, going to town and back to the ships. I wouldn't really mind if it was only when in port, but it's quite annoying when I'm at sea, also since I play Iron Man mode and can't identify a ship's nationality from anything else than its flag, possibly its paint-scheme sometimes...
 
That is with the latest Beta 3 updates? Can you upload your savegame? I'll see if I can figure out what's up.

I know the game sometimes needs a few seconds before the flags show up, but after that it has been OK for me.
 
Wow, you're right. Not a single flag. Except the fort flag. I'll see if I can figure out what is going on. o_O
 
I haven't had that problem but I did come out of a storm off the Southern Coast of Cuba and met a Aurora frigate with pirate colors but there were no flags showing and after I captured her there were still no flags showing on the prize, my flags were fine.
 
This is an impressive accomplishment, whatever might be going on.
Your first savegame is OK, but in those others, the game isn't even TRYING to draw the flags for ships.

Normal:
Code:
RefreshFlags called
SetShipFlag called
GetShipFlagsQuantity called
FlagsDelay called
procGetRiggingData called
[...]
procGetRiggingData called
GetShipFlagType called
Drawing flags for CrRedmond6
Not normal:
Code:
RefreshFlags called
Exactly: NOTHING else. :shock
 
I haven't had that problem but I did come out of a storm off the Southern Coast of Cuba and met a Aurora frigate with pirate colors but there were no flags showing and after I captured her there were still no flags showing on the prize, my flags were fine.
Uhm.... savegame, please?
 
Found it. Somehow you got the "Flags.waitdelay" attribute stuck on you. Open PROGRAM\console.c and find:
Code:
void ExecuteConsole()
{
   ref pchar = GetMainCharacter();
   if (!bSeaActive) ref lcn = &Locations[FindLocation(pchar.location)];
   ref ch;
   int i;
   int limit;
Below this, add:
Code:
DeleteAttribute(pchar, "Flags.waitdelay");
Press F12 and all flags immediately return.

I'd quite like to know HOW this could have happened in the first place though. And how to prevent it from ever happening in the future! :shock

Edit: As prevention, I am now deleting that attribute from the player every time you exit a location or exit from sea.
I don't think that can do any harm and at least it'll reset things periodically.
 
Last edited:
The fix works, thanks! I'm unable to recreate the error, even when doing the exact same things as I remember doing. Getting a guvernor's ship hunting mission, going to sea, finding the enemy vessel, then quicksaving. I have no idea what might have caused it. I do remember one other time too, just like yours, Jason, where I encountered a ship without a flag. It turned out to be a pirate frigate - hopefully I won't see many of those again and hopefully never again this error. ^^
 
The only thing I can think of is perhaps you left a location exactly at the wrong time while the game was still doing flag-updating. Or something.
Shouldn't happen anymore when I post the new update; I'm hoping that DeleteAttribute line will prevent it altogether.

Flag-less pirates I don't like though. Next time anyone sees one, please make a savegame and I'll have a lookie.
 
Code:
Nat = unknown
The game doesn't understand what nation these ships are. Looks like a near-perfect US fleet though. Verrrry strange. :shock
 
I think I know what the problem is. Apparently NATIONS_QUANTITY is always 1 more than the highest nation number.
Therefore, this line in the DirectSail encounters is able to generate an encounter for an un-existing nation:
Code:
int Encnation = rand(NATIONS_QUANTITY);
Should be a simple matter of subtracting "1" and be done with it.
Thanks for catching that one! :cheers
 
Back
Top