The reason is, a merchant who believes your false flag has his relation to you set to "REL_AFTERATTACK", then the reputation check does this:
Perhaps change it so that if the merchant believes your false flag then his relation becomes "REP_LEAVEMIN"? You're in Port Royal under an English flag and Thomas O'Reilly believes it, so as far he's concerned you're English and he ought to treat you as such. Though even then, the only condition which passes is the one which checks that you can intimidate him by having enough force to take the town. So we'd probably need another section:
So that if you're friendly (or the trader thinks so, at least) then he'll do business with you.
Otherwise there's no point in being evil. Apart from losing out on several side quests, your peaceful trading activitied are seriously reduced. I found this out when trying "Ardent" as the evil character and, having stolen a ship at Santiago, went to Port Royal to get some crew and supplies, then found that being evil, I couldn't get the supplies - and didn't have enough food and rum to make it back to Santiago to continue the quest. Fortunately I'd moored at Rocky Shore and when I put to sea, there were a couple of small merchant ships nearby, so I pirated one of them and got some food that way. (And then I couldn't sell the pirated cargo until I later went to La Tortue, and then only under a pirate flag because going in under a false Spanish or French flag had the same problem as a false English flag in Port Royal.)
Code:
if(rel >= REL_AFTERATTACK && rep >= TRADEREP_NEUTRAL ) return true;
Perhaps change it so that if the merchant believes your false flag then his relation becomes "REP_LEAVEMIN"? You're in Port Royal under an English flag and Thomas O'Reilly believes it, so as far he's concerned you're English and he ought to treat you as such. Though even then, the only condition which passes is the one which checks that you can intimidate him by having enough force to take the town. So we'd probably need another section:
Code:
if (rel >= REP_LEAVEMIN) return true;
Otherwise there's no point in being evil. Apart from losing out on several side quests, your peaceful trading activitied are seriously reduced. I found this out when trying "Ardent" as the evil character and, having stolen a ship at Santiago, went to Port Royal to get some crew and supplies, then found that being evil, I couldn't get the supplies - and didn't have enough food and rum to make it back to Santiago to continue the quest. Fortunately I'd moored at Rocky Shore and when I put to sea, there were a couple of small merchant ships nearby, so I pirated one of them and got some food that way. (And then I couldn't sell the pirated cargo until I later went to La Tortue, and then only under a pirate flag because going in under a false Spanish or French flag had the same problem as a false English flag in Port Royal.)