In order to rescue Clement Aurentius, you capture Bridgetown for yourself. All the soldiers are now in Personal uniform. Silehard sends his squadron to take the town back, you defeat the squadron, then while you're at the lighthouse talking to Clement, Britain retakes Bridgetown anyway. So next time you visit Bridgetown, the soldiers are... still in Personal uniform.
The reason is that the capture involves a call on 'SetTownGarrisonForNation'. This goes through every character in the game, looking for any whose location is related to the town in question. If the character isn't an ally, as defined by boolen function 'bAllies', and the character is a soldier in uniform, then he's given the uniform of a soldier of the nation and put in AI group relevant to soldiers of that nation.
The AI group for "Personal" soldiers is LAI_GROUP_PLAYER. One of the conditions for 'bAllies' is if the character is in LAI_GROUP_PLAYER. So 'SetTownGarrisonForNation' skips all the "Personal" soldiers, therefore they remain "Personal" when Bridgetown becomes British.
This is only a problem if a town has become "Personal" and is then captured by a nation, and as there's currently no mechanism for enemy nations to attack your (or anybody else's) towns, the only time a "Personal" town can be captured by a nation is if a storyline makes it happen. So, as a quick fix, I've added a whole lot of lines like this to "quests_reaction.c", quest case "Story_VoyageToKhaelRoaBegan":
One for each soldier in Bridgetown. There are rather a lot.
But at least doing it this way means there are no odd side effects, as there might be if I try to change 'SetTownGarrisonForNation' or 'bAllies'.
Incidentally, having "Personal" soldiers in LAI_GROUP_PLAYER does have odd side effects. Normally if you try to mug a soldier, all his mates join in against you, and if you kill one, two more arrive to take his place. That's to prevent you from helping yourself to free soldier weapons. But you can't harm anyone in LAI_GROUP_PLAYER, so he just stands there and lets you do what you like to him, and none of the other soldiers react. LAI_GROUP_PLAYER isn't immune to poison, so you hit him with a borgiablade and wait. He drops dead, you steal his stuff, and nobody gets upset. (I've still to see if the soldiers will join in if a random thug tries to attack you because it hasn't happened while Bridgetown was "Personal".)
The reason is that the capture involves a call on 'SetTownGarrisonForNation'. This goes through every character in the game, looking for any whose location is related to the town in question. If the character isn't an ally, as defined by boolen function 'bAllies', and the character is a soldier in uniform, then he's given the uniform of a soldier of the nation and put in AI group relevant to soldiers of that nation.
The AI group for "Personal" soldiers is LAI_GROUP_PLAYER. One of the conditions for 'bAllies' is if the character is in LAI_GROUP_PLAYER. So 'SetTownGarrisonForNation' skips all the "Personal" soldiers, therefore they remain "Personal" when Bridgetown becomes British.
This is only a problem if a town has become "Personal" and is then captured by a nation, and as there's currently no mechanism for enemy nations to attack your (or anybody else's) towns, the only time a "Personal" town can be captured by a nation is if a storyline makes it happen. So, as a quick fix, I've added a whole lot of lines like this to "quests_reaction.c", quest case "Story_VoyageToKhaelRoaBegan":
Code:
LAi_group_MoveCharacter(characterFromID("Green_soldier_1"), "ENGLAND_SOLDIERS");

Incidentally, having "Personal" soldiers in LAI_GROUP_PLAYER does have odd side effects. Normally if you try to mug a soldier, all his mates join in against you, and if you kill one, two more arrive to take his place. That's to prevent you from helping yourself to free soldier weapons. But you can't harm anyone in LAI_GROUP_PLAYER, so he just stands there and lets you do what you like to him, and none of the other soldiers react. LAI_GROUP_PLAYER isn't immune to poison, so you hit him with a borgiablade and wait. He drops dead, you steal his stuff, and nobody gets upset. (I've still to see if the soldiers will join in if a random thug tries to attack you because it hasn't happened while Bridgetown was "Personal".)