Skip to content

Superceding in one function prevents execution of post-callbacks up the call chain #2

@nosoop

Description

@nosoop

ℹ️ This should no longer be an issue if you're using @peace-maker's version with detour support, but the issue will remain open as long as the issue is valid upstream.


Versions installed:

  • SourceMod version: 1.10.0.6452
  • Metamod:Source version: 1.11.0-dev+1127
  • DHooks version: 2.2.0-detours7 (does affect mainline dhooks iirc)
  • Platform: Linux

Hard to explain, so here's an example case.

Attached below is a plugin that uses a virtual hook on CBaseCombatWeapon::PrimaryAttack() and a post-hook on PostThink via SDKHooks. If the hook on ::PrimaryAttack() returns MRES_Supercede, the PostThinkPost callback never executes.

To reproduce, install the plugin, set test_supercede_bug to 1, and shoot gun. The expected result is that the SourceMod continues to call PostThink with the latest game time while attacking; the current behavior is that no messages are displayed.

Only TF2 gamedata is provided, but the calls aren't specific to TF2.

test_dhook_think_func.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions