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

Flags on ships in B14A9.5 Development Resources

In the latest released Experimental Mods version, all stock game ships and most variations of those
have had their pennants added. The exception is the Lineship (old Black Pearl model); I didn't do that yet.
But now it's mainly the new modded ships that require pennant-work, so we've got a good deal of the work done. :woot
 
Here's some thoughts on what would still need to be done as far as texture work for this mod is concerned:

1. Make the furthest right flag on the pirate flags and pennants transparent, so we don't get double flags

2. Add Jack Sparrow Pirate Flag in the Colonial Powers Pirate Flags file

3. Make sure that each set of pirate flag-and-pennant fit together (eg. red with red and black with black)

2. Make personal flags and pennants:

a. Early Explorers - At least two Russian-ish flags for both Devlin storylines:
russia_flag_mw.gif
russian_flag.jpg
ru_1914.gif
russia.jpg


b. Spanish Main - Make the pennants correct for the nation of the main character,
eg. Bartolomeu gets a Portuguese pennant and Johan Elting a Dutch one.

c. Golden Age of Piracy - A whole bunch of hawk-based flags, each one with different nation pennants.
aa0f00829a9fce66c35c2c194c02371f044e85a8_m.jpg
eg-1972.gif
Hawk1.jpg
annieflag.gif
MexicaFlag1.jpg

Then depending on the selected player nation, you get the correct pennants for that nation.

d. Revolutions - A shamrock-based flag with British pennants for Jack Aubrey:
11949847081767838062shamrock_for_march_natha_01.svg.hi.png


e. The Corsican - For Hornblower maybe a flag with a French horn or else a red ensign with British pennants.
64372.jpg
 
My thought for Nathaniel Hawk was to give each nation a different hawk flag with nation-correct pennants.

Here's a bunch of personal, pirate and other flags that I extracted from various FTP sources.
Might be useful somewhere?

PERSONAL FLAGS

personal1.png
- Nathaniel Hawk
personal2.png

personal3.png
- US Privateer
personal4.png
- Nathaniel Hawk
personal5.png
- Nathaniel Hawk
personal6.png
- Noble House Flag
personal7.png
- Nathaniel Hawk
personal8.png
- Nathaniel Hawk
personal9.png

personal10.png
- Ye Olde PiratesAhoy! Logo
pirate8.png
- Merciless Mark Personal
personal11.png

- Jack Sparrow non-pirate (should have the bones removed and bird recoloured)
 
PIRATE FLAGS

pirate1.png

pirate2.png

pirate3.png

pirate5.png

pirate6.png
- Jack Sparrow pirate (prefer having this in pirate file)
pirate7.png


VARIOUS FLAGS

- British EITC realistic version
british_eitc.png

- All sorts of stuff
various.png
 
We're making good progress on the pennants. There's 23 ships left to do, several of which use the same model.
All stock-game based ships are done and several new models too.
Hopefully we can get all ships sorted before Friday, because I'll be gone for a week after that.
 
I'm having trouble with the following files:
LightPinnace1 (can't open any of the GM's with flags)

I'm hoping somebody can fix those ones for the pennants. All others I can adjust myself.
 
I've got pennants on ALL ships in the game now, except for the Light Pinnace's!
And Captain Maggee will look at those.
So then it'll be time to check them all and it'll be all done very soon. :woot
 
I have finished the last pennant work and checked all ships. Everything works! :woot
 
Let's move this thread for everyone to see, considering it's included in Alpha 9.5 Patch 3.
 
Here's a thought on the EITC flags in the Jack Sparrow storyline for you people to ponder about.
What if we'd move the EITC flag to the personal flag files instead?
Reason being, it's a bit weird to have so many EITC ships sailing around in the WEST Indies without an explanation.
Of course this could also be solved by actually providing a reason.

In PROGRAM\BATTLE_INTERFACE\Flags.c replace:
Code:
case PERSONAL_NATION: retVal = GetPersonalFlag(); break;
With:
Code:
case PERSONAL_NATION: retVal = GetPersonalFlag(chr); break;
And:
Code:
int GetPersonalFlag()
{
ref mchr = GetMainCharacter();
if (!CheckAttribute(mchr, "Flags.Personal")) return 0;
return sti(mchr.Flags.Personal);
}
With:
Code:
int GetPersonalFlag(ref chr)
{
ref cmdr = Group_GetGroupCommander(GetGroupIDFromCharacter(chr));
if (!CheckAttribute(cmdr, "Flags.Personal"))
{
ref mchr = GetMainCharacter();
if (!CheckAttribute(mchr, "Flags.Personal")) return 0;
return sti(mchr.Flags.Personal);
}
return sti(cmdr.Flags.Personal);
}
I *think* that should allow you to set a "Flags.Personal" attribute for ANY character and so use custom flags for quest ships.
It'd be triggered if you set those ships to PERSONAL_NATION. Provided it works.
Could be used in the Assassin quest, where a ship is already set to personal nation, and also for EITC ships.

Additionally, I'm looking at this code:
Code:
int GetPirateFlag(ref chr)
{
ref cmdr = Group_GetGroupCommander(GetGroupIDFromCharacter(chr));
if (!CheckAttribute(cmdr, "Flags.Pirate")) return 0;
return sti(cmdr.Flags.Pirate);
}
It looks to me like that means that EVERY pirate group will use the same flag,
UNLESS the commander has a special pirate flag attribute. Which they don't get by default.
Maybe replace with:
Code:
int GetPirateFlag(ref chr)
{
ref cmdr = Group_GetGroupCommander(GetGroupIDFromCharacter(chr));
if (!CheckAttribute(cmdr, "Flags.Pirate")) cmdr.Flags.Pirate = rand(4);
return sti(cmdr.Flags.Pirate);
}
This would mean that the first five flags are used for groups randomly,
allowing flag 5 and 6 to be used for player/quest only ones.
That means we can prevent Jack Sparrow's flag from being used by non-player ships.

Additionally, it would be very much possible to change the pchar.Flags.Pirate and pchar.Flags.Personal
attributes while in the game through quest cases, dialog or an interface (for the future).
This opens up a lot of possibilities, doesn't it?

All the above is hypothetical and needs further testing and confirmation if it really DOES work.
 
Screwface, Thomas the Terror and Captain Maggee, please post your thoughts...
 
I think having multiple characters with the ability to have different personal flags is a great idea ;)

As for the EITC have it as a personal flag while Jack works for them so you can select it as your flag and then have it set as the English merchant flag come the time of DMC and AWE ;)

Of course a few characters (ie Beckett and Liutenant Bligh) will have it set as their personal flag for the entire time :D
 
I agree on the EITC flag, it is weird to see them sailing around, even without Beckett present. So as a quest attribute/flag it would be a better option, as you can set Jack's flag to EITC when he serves Beckett. As for the pirate flags, good idea, otherwise all my pirate flags are unused, while the idea was that you had some more variety.
 
Here's a thought on the EITC flags in the Jack Sparrow storyline for you people to ponder about.
What if we'd move the EITC flag to the personal flag files instead?
Reason being, it's a bit weird to have so many EITC ships sailing around in the WEST Indies without an explanation.
Of course this could also be solved by actually providing a reason.

In PROGRAM\BATTLE_INTERFACE\Flags.c replace:
Code:
case PERSONAL_NATION: retVal = GetPersonalFlag(); break;
With:
Code:
case PERSONAL_NATION: retVal = GetPersonalFlag(chr); break;
And:
Code:
int GetPersonalFlag()
{
ref mchr = GetMainCharacter();
if (!CheckAttribute(mchr, "Flags.Personal")) return 0;
return sti(mchr.Flags.Personal);
}
With:
Code:
int GetPersonalFlag(ref chr)
{
ref cmdr = Group_GetGroupCommander(GetGroupIDFromCharacter(chr));
if (!CheckAttribute(cmdr, "Flags.Personal"))
{
ref mchr = GetMainCharacter();
if (!CheckAttribute(mchr, "Flags.Personal")) return 0;
return sti(mchr.Flags.Personal);
}
return sti(cmdr.Flags.Personal);
}
I *think* that should allow you to set a "Flags.Personal" attribute for ANY character and so use custom flags for quest ships.
It'd be triggered if you set those ships to PERSONAL_NATION. Provided it works.
Could be used in the Assassin quest, where a ship is already set to personal nation, and also for EITC ships.

Additionally, I'm looking at this code:
Code:
int GetPirateFlag(ref chr)
{
ref cmdr = Group_GetGroupCommander(GetGroupIDFromCharacter(chr));
if (!CheckAttribute(cmdr, "Flags.Pirate")) return 0;
return sti(cmdr.Flags.Pirate);
}
It looks to me like that means that EVERY pirate group will use the same flag,
UNLESS the commander has a special pirate flag attribute. Which they don't get by default.
Maybe replace with:
Code:
int GetPirateFlag(ref chr)
{
ref cmdr = Group_GetGroupCommander(GetGroupIDFromCharacter(chr));
if (!CheckAttribute(cmdr, "Flags.Pirate")) cmdr.Flags.Pirate = rand(4);
return sti(cmdr.Flags.Pirate);
}
This would mean that the first five flags are used for groups randomly,
allowing flag 5 and 6 to be used for player/quest only ones.
That means we can prevent Jack Sparrow's flag from being used by non-player ships.

Additionally, it would be very much possible to change the pchar.Flags.Pirate and pchar.Flags.Personal
attributes while in the game through quest cases, dialog or an interface (for the future).
This opens up a lot of possibilities, doesn't it?

All the above is hypothetical and needs further testing and confirmation if it really DOES work.
I don't quite understand what are the (surely sophisticated) reasons for messing personal flag idea and making yet another pseudo-pirate faction? Personal nation, as name suggests, is for main character... or I understood that this way. But, of course, as I didn't posted for long, didn't see latest version, etc., so I assuming that I'm writing here some stupidities that aren't worth any comment.

However, if some would explain to me what is the main purpose of those things, could somene please do this (even using the language used to explain things to idiots and such, if necessary)? If we want to include yet another nation (what for, anyway? I remember voices that those which are already in game are too much due to lack of some kind of variety), isn't better to add EITC as additional one? Putting them into personal flags file would deplete available choices for personal flags and be not very logical, IMHO (as I currently imagine how it would need to work).

If we're urgently needing custom flags they could be put in separate files without narrowning personal choices (although it would require one to six additional dlls).

pirate_kk
 
The idea was is to have certain quest ships that use non-default nation flags too.
For example, there's a quest in the Assassin quest that is supposed to be a French ship originally,
but when encountered later, show an unknown flag.
Also there's some ships that'd need to fly an EITC flag at some point in the Jack Sparrow storyline.

For the Assassin case, it doesn't really matter which flag is shown, as long as it's not a normal nation one.
Since there's a whole bunch of personal flags, of which one is used by default in a storyline,
I figured it'd be just as easy to just use one of the other personal flags in the file for that ship.
Bartolomeu already used the personal nation method to show a different flag on that ship.

In the case of the EITC flags, the player himself will need to be flying EITC colours as well,
so that flag needs to be in the personal flag file anyway.
And I can imagine people might actually want to fly that flag for themselves.
So the thought is just to reuse that same flag for certain EITC quest ships as well.

It is not the intention to limit the number of flags available to the player once a 'Choose Flag' interface has been made.
All that's intended is to allow certain quest ships to also use one of those personal flags,
if required for story purposes. These flags would still be available as player flag options as well.

Basically it'd be reusing the personal nation as the personal nation of OTHER characters as well.
But this'd be a rare quest-only occurance and I'd prefer to not have to add a whole new nation for that. :?

-----------------------------------------------------------

Question: Would there be any quest-need to have ships in one quest squadron show different flags?
For example have the player ship with a British flag and the ship he's escorting (Beckett's ship)
show an EITC flag? If so, we'd need to make a small additional code adjustment to take that into account.

-----------------------------------------------------------

Request to Thomas: For the above to work, we'd need a bit of work done to the flag files.
Basically it'd involve moving the EITC flag from the British merchant flag to the personal flag file
for the Jack Sparrow storyline. Additionally the Jack Sparrow pirate flag should be the one FURTHEST on the right,
so that all others can be used randomly. And we'd need matching pennants for all personal and pirate flags.
 
For the Assassin case, it doesn't really matter which flag is shown, as long as it's not a normal nation one.
Since there's a whole bunch of personal flags, of which one is used by default in a storyline,
I figured it'd be just as easy to just use one of the other personal flags in the file for that ship.
Bartolomeu already used the personal nation method to show a different flag on that ship.

[...]

It is not the intention to limit the number of flags available to the player once a 'Choose Flag' interface has been made.
All that's intended is to allow certain quest ships to also use one of those personal flags,
if required for story purposes. These flags would still be available as player flag options as well.
In my version of select storyline screen I made option that player can select any flag from personal and pirate files. This means that if we want other personal flag on other ship, we would have to be very careful and always make constructs like:
Code:
if player_personal_flag == some_personal_flag then
ship_flag = some_other_personal_flag;
else
ship_flag = some_personal_flag;
as long as we care to that ship has other flag than player is using. A bit awkward.

In the case of the EITC flags, the player himself will need to be flying EITC colours as well,
so that flag needs to be in the personal flag file anyway.
And I can imagine people might actually want to fly that flag for themselves.
So the thought is just to reuse that same flag for certain EITC quest ships as well.
Player already uses flags from nations, pirates and personal files anyway. The problem of use a flag from some file for player is nonexistent.

Question: Would there be any quest-need to have ships in one quest squadron show different flags?
For example have the player ship with a British flag and the ship he's escorting (Beckett's ship)
show an EITC flag? If so, we'd need to make a small additional code adjustment to take that into account.
It's easy to achieve. Simply add a code where all ship in one squadron are "on the same side" when loging on sea and we could have ships with British flag together with French and quite friendly to each other even if there's a war between England and France. Messy but doable.

pirate_kk
 
Back
Top