Skip to content

Unexpected behavior during single recursion on Windows #3

@ldesgoui

Description

@ldesgoui

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions