// cursor file should be 32x32 in default MS Windows .cur format
#ifndef INCLUDE_CURSOR_H
#define INCLUDE_CURSOR_H
#print "[include <cursor.h>]\n"

#ifndef INCLUDE_KOLIBRI_H
#include "../lib/kolibri.h"
#endif

struct CustomCursor
{
    dword CursorPointer;
    dword Load();
    dword Set();
    dword Restore();
    void Delete();
};

dword CustomCursor::Load(dword CursorFilePath)
{
    if (CursorPointer) return;
    EAX = 37;
    EBX = 4;
    ECX = CursorFilePath;
    EDX = 1;
    $int 0x40
    CursorPointer = EAX; // 0 - err, other - handle
}

dword CustomCursor::Set()
{
  EAX = 37;
  EBX = 5;
  ECX = CursorPointer;
  $int 0x40
}

dword CustomCursor::Restore()
{
  EAX = 37;
  EBX = 5;
  ECX = 0;
  $int 0x40
}

void CustomCursor::Delete()
{
    EAX = 37;
    EBX = 6;
    ECX = CursorPointer;
    $int 0x40
}

#endif