forked from Phobos-developers/YRpp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
GScreenClass.h
62 lines (51 loc) · 1.84 KB
/
GScreenClass.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#pragma once
#include <YRPPCore.h>
#include <Interfaces.h>
#include <Helpers/CompileTime.h>
class DSurface;
struct RectangleStruct;
class GadgetClass;
class NOVTABLE GScreenClass : public IGameMap
{
public:
//Static
static constexpr constant_ptr<GScreenClass, 0x87F7E8u> const Instance{};
static void __fastcall DoBlit(bool mouseCaptured, DSurface* surface, RectangleStruct* rect = nullptr)
{ JMP_STD(0x4F4780); }
//IUnknown
virtual HRESULT __stdcall QueryInterface(REFIID iid, void** ppvObject) R0;
virtual ULONG __stdcall AddRef() R0;
virtual ULONG __stdcall Release() R0;
//IGameMap
//Destructor
virtual ~GScreenClass() RX;
//GScreenClass
virtual void One_Time() RX;
virtual void Init() RX;
virtual void Init_Clear() RX;
virtual void Init_IO() RX;
virtual void GetInputAndUpdate(DWORD& outKeyCode, int& outMouseX, int& outMouseY) RX;
virtual void Update(const int& keyCode, const Point2D& mouseCoords) RX;
virtual bool SetButtons(GadgetClass* pGadget) R0;
virtual bool AddButton(GadgetClass* pGadget) R0;
virtual bool RemoveButton(GadgetClass* pGadget) R0;
virtual void MarkNeedsRedraw(int dwUnk) RX;
virtual void DrawOnTop() RX;
virtual void Draw(DWORD dwUnk) RX;
virtual void vt_entry_44() RX;
virtual bool SetCursor(MouseCursorType idxCursor, bool miniMap) = 0;
virtual bool UpdateCursor(MouseCursorType idxCursor, bool miniMap) = 0;
virtual bool RestoreCursor() = 0;
virtual void UpdateCursorMinimapState(bool miniMap) = 0;
void Render() { JMP_THIS(0x4F4480); }
protected:
//Constuctor
GScreenClass() {} //don't need this
//===========================================================================
//===== Properties ==========================================================
//===========================================================================
public:
int ScreenShakeX;
int ScreenShakeY;
int Bitfield; //default is 2
};