Basically you end up adding extra code to deliberately make the code NOT do what it is meant to do.
No, this is compeltely not the case. There are only two parts of the code.
The retargeting logic for targeting away from surrendered enemies was ALREADY in place, I just corrected it so it actually works by adding a lone. It was always intended and present.
The only other part is an if statement making the refresh conditional on being the last member of the group. Hardly some distortion of the code, it is one of the cleanest fixes imaginable, basically 2 lines of code.
With fixing bugs, I firmly they should be fixed properly or not at all..
Uh...this had been declared unfixable. An "engine limitation." In other words, a final fix had been given up on. And had been plaguing players on the meantime.
So players should continue suffering from a bug that could be easily fixed, because fixing it would require skipping a check in some circumstances when it isn't needed, because the check is broken and therefore we must use it until it is fixed...nope, not seeing this as compelling reasoning.
And jeez, if a bug can be fixed in 99% of cases, or not at all, it certainly SHOULD be fixed for the 99% of cases. The alternative makes no sense.
As for the minimap issue, I'm sure if that did end up being the case it would be easy enough to fix with an extra line of code (oh, the horror, an extra line of code). But I'm not certain it would be an issue--even without the refresh, relations are ALREADY set to relation_neutral (I had traces set up, so I am certain of this). Meaning it either won't be an issue or would be easy to fix.
As long as I still make the official EXE files, this change will NOT go into any official releases. Not until it is fixed for real.
There is no compelling reason why a refresh has to happen on every single surrender. Doing so creates this bug, and every single goal achieved by refreshing can be achieved otherwise, without much trouble and in a couple of additional lines of code.
Or maybe not, testing would show. But frankly, for you to adopt this kind of absolutist position right from the outset, without being even willing to see how this fix works out, makes no sense.
And quite honestly makes me feel like I wasted my time in working on thiings. If it had proved a bad idea after being tested, or created problems that couldn't be solved, that would be fine, and I would understand.
But instead you seem to be throwing away the only solution anyone has come up with for a bug that has been unsolved for years, that will prevent it from occuring in 99% of cases and that has shown no signs of any negative effects for the player in the fairly extensive testing I have done so far that can't be easily solved in maybe 5 lines of extra code at the most, and doing all that without even waiting to see what happens or test at all.
If you were actively working on this bug rather than having declared it hopeless and an "engine limitation", or if you were waiting and seeing if there were actually any problems in testing that could not be easily fixed, then I would understand not wanting to implement my 99% solution.
But such an absolute declaration as you make at this stage doesn't make sense, and the tone of it is far too dismissive and absolutist to be consistent with the conditions under which I would like to spend my free time modding.
It is also of such an extreme and premature nature, and so inconsistent with attitudes towards bugfixing taken elsewhere here (when have we not chosen to fix 99% of a problem when it was the best available solution? When have we not tested things to see if they work out?), that I find it really strange, and I simply don't feel like dealing with these sorts of personality issues on my free time.
I am going to take a break from the board and modding for at least a while. I'll leave a final note with some info on next steps if someone takes over the AI improvements over in that thread. I bear nothing but goodwill towards everyone here, and I appreciate all of the fun I've had here discussing things here. Goodbye.