-
Notifications
You must be signed in to change notification settings - Fork 11
Description
Hello,
I've been having an issue with one of my detours, it consists of overriding the return of a recursive call, I have a small writeup about it: https://github.com/ldesgoui/tf2-comp-fixes/blob/master/INTERNALS.md#remove-medic-attach-speed
On Linux, simply hooking the pre, setting the return if the boolean argument is true (and therefore we're recursing), and returing Override/Supercede works fine.
On Windows, it seems that overriding the recursed call will cause the "host" call to also return the same value, I'm sure of this because code later in the function is completely ignored (such as the code to handle Mannpower mode powerups, can be verified by running addcond 91).
Assuming I haven't done anything blatantly wrong, how could I help you fix the issue? How could I circumvent it for the time being?
My hook definition is as such: https://github.com/ldesgoui/tf2-comp-fixes/blob/4119ed81273edbb50f7026e4614a2bbc7115be62/gamedata/tf2-comp-fixes.games.txt#L95-L106
If you'd like to read the disassembly of the method in question, it's in TF2's tf/bin/server.dll, it contains the unique string mult_player_aiming_movespeed. I'm not exactly fluent, but I haven't found anything blatantly wrong with it.
Thank you