//=============================================================================//
//
// Purpose: 
//
//=============================================================================//

#include "core/stdafx.h"
#include "tier0/tslist.h"
#include "squirrel/sqvm.h"
#include "squirrel/sqstdaux.h"

bool g_bSQAuxError = false;
bool g_bSQAuxBadLogic = false;
HSQUIRRELVM g_pErrorVM = nullptr;

SQInteger sqstd_aux_printerror(HSQUIRRELVM v)
{
    g_bSQAuxError = true;
    SQInteger results = v_sqstd_aux_printerror(v);
    g_bSQAuxError = false;
    return results;
}

SQInteger sqstd_aux_badlogic(HSQUIRRELVM v, __m128i* a2, __m128i* a3)
{
    g_pErrorVM = v;

    SQInteger results = v_sqstd_aux_badlogic(v, a2, a3);
    return results;
}

void VSqStdAux::Attach() const
{
    DetourAttach(&v_sqstd_aux_printerror, &sqstd_aux_printerror);
    DetourAttach(&v_sqstd_aux_badlogic, &sqstd_aux_badlogic);
}

void VSqStdAux::Detach() const
{
    DetourDetach(&v_sqstd_aux_printerror, &sqstd_aux_printerror);
    DetourDetach(&v_sqstd_aux_badlogic, &sqstd_aux_badlogic);
}