#pragma once

#include <dmsdk/sdk.h>
#include "siwg.h"

struct SIWG_callback
{
    SIWG_callback() : m_L(0), m_Callback(LUA_NOREF), m_Self(LUA_NOREF) {}
    lua_State* m_L;
    int m_Callback;
    int m_Self;
};

struct CallbackData
{
    MESSAGE_ID msg;
    char* json;
};

void siwg_set_callback(lua_State* L, int pos);
void siwg_callback_initialize();
void siwg_callback_finalize();
void siwg_callback_update();
void siwg_add_to_queue(MESSAGE_ID msg, const char*json);