#pragma once

#include "external/il2cpp/il2cpp-api-types.h"

namespace ta::adapters::hooks::player
{
    using FixedUpdateCallback = void(*)(Il2CppObject*);
    using LocalGameStopCallback = int(*)(int);

    void set_fixed_update_callback(FixedUpdateCallback callback) noexcept;
    void set_local_game_stop_callback(LocalGameStopCallback callback) noexcept;
    void clear_callbacks() noexcept;
    void dispatch_fixed_update(Il2CppObject* instance) noexcept;
    [[nodiscard]] int dispatch_local_game_stop(int exit_status) noexcept;
}
