class ISurface { public: void DrawSetColor(int r, int g, int b) { typedef void (* oDrawSetColor)(void*, int, int, int, int); return getvfunc<oDrawSetColor>(this, 14)(this, r, g, b, 255); } void DrawSetColor(int r, int g, int b, int a) { typedef void (* oDrawSetColor)(void*, int, int, int, int); return getvfunc<oDrawSetColor>(this, 14)(this, r, g, b, a); } void DrawSetColor(Color color) { typedef void(* oDrawSetColor)(void*, int, int, int, int); return getvfunc<oDrawSetColor>(this, 14)(this, color.r(), color.g(), color.b(), color.a()); } void DrawFilledRect(int x0, int y0, int x1, int y1) { typedef void (* oDrawFilledRect)(void*, int, int, int, int); return getvfunc<oDrawFilledRect>(this, 16)(this, x0, y0, x1, y1); } void DrawOutlinedRect(int x0, int y0, int x1, int y1) { typedef void (* oDrawOutlinedRect)(void*, int, int, int, int); return getvfunc<oDrawOutlinedRect>(this, 18)(this, x0, y0, x1, y1); } void DrawLine(int x0, int y0, int x1, int y1) { typedef void (* oDrawLine)(void*, int, int, int, int); return getvfunc<oDrawLine>(this, 19)(this, x0, y0, x1, y1); } void DrawSetTextFont(HFONT font) { typedef void (* oDrawSetTextFont)(void*, HFONT); return getvfunc<oDrawSetTextFont>(this, 23)(this, font); } void DrawSetTextColor(int r, int g, int b, int a) { typedef void (* oDrawSetTextColor)(void*, int, int, int, int); return getvfunc<oDrawSetTextColor>(this, 24)(this, r, g, b, a); } void DrawSetTextColor(Color color) { typedef void (* oDrawSetTextColor)(void*, int, int, int, int); return getvfunc<oDrawSetTextColor>(this, 24)(this, color.r(), color.g(), color.b(), color.a()); } void DrawSetTextPos(int x, int y) { typedef void (* oDrawSetTextPos)(void*, int, int); return getvfunc<oDrawSetTextPos>(this, 26)(this, x, y); } void DrawPrintText(const wchar_t *text, int textLen) { typedef void (* oDrawPrintText)(void*, const wchar_t *, int, int); return getvfunc<oDrawPrintText>(this, 28)(this, text, textLen, 0); } void UnlockCursor() { typedef void(* oUnlockCursor)(void*); return getvfunc<oUnlockCursor>(this, 66)(this); } void LockCursor() { typedef void(* oLockCursor)(void*); return getvfunc<oLockCursor>(this, 67)(this); } HFONT CreateFont() { typedef HFONT (* oCreateFont)(void*); return getvfunc<oCreateFont>(this, 71)(this); } void SetFontGlyphSet(HFONT &font, const char *FontName, int tall, int weight, int blur, int scanlines, int flags) { typedef void (* oSetFontGlyphSet)(void*, HFONT, const char*, int, int, int, int, int, int, int); return getvfunc<oSetFontGlyphSet>(this, 72)(this, font, FontName, tall, weight, blur, scanlines, flags, 0, 0); } void GetTextSize(HFONT font, const wchar_t *text, int &wide, int &tall) { typedef void (* oGetTextSize)(void*, HFONT font, const wchar_t *text, int &wide, int &tall); return getvfunc<oGetTextSize>(this, 79)(this, font, text, wide, tall); } };