Caratinoid wrote...
Ok, I just took a quick peek at the source code, there are rounding errors all over the place. Most variables are floating point numbers but the programmers are working with functions like Max, Min, Clamp etc which can only work with integers. When passing float parameters to those functions, they are automatically typecasted to integer (rounded down). If you don't want this you should use the FMin, FMax, FClamp ... functions instead which they still don't use even in last DLC.
So if you write something like "Clamp(factor, 0.5, 1.0)" the result will always be 0.
What's affected? So far found these things:
Shield recharge times (see OP)
Some aspects of schield gates are affected (for example it was not intended for asari's dodge to remove shield gate if you use up all your shields)
Enemy spawn penalty calculations (yeah, I said it)
Projectile movement (direction change)
Player position tracking is probably due to this as well
This can not be fixed with a patch because those functions are used everywhere, you would need to replace almost all files to fix it, no wonder there have been no response. If basic functions like this are used incorrectly then I'm afraid to dig any further.
The only chance to fix those bugs would be to make a custom patcher to replace those function calls in all files with the correct ones by manipulation uscript byte codes.
Now that I can read the source code (the process is not perfect yet) I can probably answer questions about other aspects of the game mechanics without having to do memory tests.
Aha, I feel smarter having understood everything you just said. :happy:
But that being said, it's sad to hear that that's the truth behind all this.





Retour en haut




