#include "inc_perchest"
#include "inc_gennui"
#include "inc_examine"
#include "inc_tictactoe"
#include "inc_blackjack"
#include "inc_transform"

void main()
{
    object oPlayer = NuiGetEventPlayer();
    int nToken = NuiGetEventWindow();
    string sWindowId  = NuiGetWindowId(oPlayer, nToken);
    string sType = NuiGetEventType();
    string sElement = NuiGetEventElement();
    int nArrayIndex = NuiGetEventArrayIndex();
    json jPayload = NuiGetEventPayload();

    //SendMessageToPC(oPlayer, "(" + IntToString(nToken) + ":" + sWindowId + ") T: " + sType + ", E: " + sElement + ", AI: " + IntToString(nArrayIndex) + ", P: " + JsonDump(jPayload));

    if (sWindowId == PC_NUI_WINDOW_ID || sWindowId == PC_NUI_GOLD_WINDOW_ID)
        PC_HandleNUIEvents(oPlayer, sWindowId, nToken, sType, sElement, nArrayIndex);
    else if (sWindowId == EXAMINE_NUI_WINDOW_ID)
        Examine_HandleNUIEvents(oPlayer, nToken, sType, sElement, nArrayIndex);
    else if (sWindowId == TTT_WINDOW_ID)
        TTT_HandleNUIEvents(oPlayer, nToken, sType, sElement, nArrayIndex, jPayload);
    else if (sWindowId == BJ_WINDOW_ID)
        BJ_HandleNUIEvents(oPlayer, nToken, sType, sElement, nArrayIndex, jPayload);
    else if (sWindowId == VT_WINDOW_ID)
        VT_HandleNUIEvents(oPlayer, nToken, sType, sElement, nArrayIndex, jPayload);
    else
        GNW_HandleNUIEvents();
}