@Bartolomeu o Portugues asked before about having a different personal flag for Roxanne Lalliere.
Today I happened to be looking through the relevant section of code and found this:
Looks like a person with initials "PB" decided it was a good idea to force ALL personal flags to always be the player one rather than a custom one for different characters as required.
But I'm pretty sure that was once set up so that DID work as proven by the screenshot of Jack Sparrow escorting Cutler Beckett!
So I tried to restore that functionality, which led me to find out why I apparently so harshly simplified the related code.
It turns out that ONLY the texture file needed for the player is actually loaded, so anything on another texture file is not shown at all.
This is obviously not very nice at all, so we should definitely aim to get that fixed some time.
Today I happened to be looking through the relevant section of code and found this:
Code:
int GetPersonalFlag(ref chr, int ntex)
{
// PB: Always use the player's own flag -->
ref PChar = GetMainCharacter();
if(!IsCompanion(chr))
{
if (CheckAttribute(chr, "Flags.Personal.texture")) ntex = sti(chr.Flags.Personal.texture);
if (CheckAttribute(chr, "Flags.Personal")) return sti(chr.Flags.Personal);
}
ntex = sti(PChar.Flags.Personal.texture);
return sti(PChar.Flags.Personal);
// PB: Always use the player's own flag <--
/* ntex = 0;
if(IsCompanion(chr))
{
ref PChar = GetMainCharacter();
ntex = sti(PChar.Flags.Personal.texture);
return sti(PChar.Flags.Personal);
}
else
{
if (CheckAttribute(chr, "Flags.Personal.texture")) ntex = sti(chr.Flags.Personal.texture);
if (CheckAttribute(chr, "Flags.Personal")) return sti(chr.Flags.Personal);
ref cmdr = Group_GetGroupCommander(GetGroupIDFromCharacter(chr));
if (!CheckAttribute(cmdr, "Flags.Personal"))
{
ntex = rand(PERSONALFLAGS_TEXTURES_QUANTITY - 1);
cmdr.Flags.Personal.texture = ntex;
cmdr.Flags.Personal = rand(FLAGS_PICTURES_QUANTITY_PER_TEXTURE - 1);
chr.Flags.Personal.texture = ntex;
chr.Flags.Personal = sti(cmdr.Flags.Personal);
return sti(chr.Flags.Personal);
}
ntex = sti(cmdr.Flags.Personal.texture);
return sti(cmdr.Flags.Personal);
}*/
}
But I'm pretty sure that was once set up so that DID work as proven by the screenshot of Jack Sparrow escorting Cutler Beckett!
So I tried to restore that functionality, which led me to find out why I apparently so harshly simplified the related code.
It turns out that ONLY the texture file needed for the player is actually loaded, so anything on another texture file is not shown at all.
This is obviously not very nice at all, so we should definitely aim to get that fixed some time.