|
| 1 | +// |
| 2 | +// Created by DiaLight on 27.12.2022. |
| 3 | +// |
| 4 | + |
| 5 | +#ifndef EMBER_GLOBALS_H |
| 6 | +#define EMBER_GLOBALS_H |
| 7 | + |
| 8 | +#include <api/imports.h> |
| 9 | + |
| 10 | +namespace dk2 { |
| 11 | + |
| 12 | + __analysis_noreturn |
| 13 | + /*00638440*/ void __cdecl start(); |
| 14 | + /*005A5DA0*/ int __cdecl main(int argc, char *argv[]); |
| 15 | + /*005B74A0*/ void __cdecl resolveDk2HomeDir(); |
| 16 | + |
| 17 | + class globals { |
| 18 | + /*0079D01C*/ static HINSTANCE hInstance; |
| 19 | + /*0079D980*/ static char dk2HomeDir[MAX_PATH]; |
| 20 | + public: |
| 21 | + /*005B2DA0*/ static void __cdecl setHInstance(HINSTANCE hInst); |
| 22 | + /*005B2D90*/ static HINSTANCE __cdecl getHInstance(); |
| 23 | + // msvc is importing data as functions. So we follow import jump to get actual data address |
| 24 | + inline static HINSTANCE *getHInstancePtr() { return (HINSTANCE *) funptr<&hInstance>(); } |
| 25 | + |
| 26 | + /*005B2E50*/ static void __cdecl setAppExitStatus(bool shouldExit); |
| 27 | + /*005B2E40*/ static bool __cdecl isAppExitStatusSet(); |
| 28 | + |
| 29 | + inline static char *getDk2HomeDir() { return (char *) funptr<&dk2HomeDir>(); } |
| 30 | + |
| 31 | + }; |
| 32 | + |
| 33 | + using status_t = int; |
| 34 | + |
| 35 | + class dd { |
| 36 | + /*0079D020*/ static HWND hWnd; |
| 37 | + /*0079D3D0*/ static LPDIRECTDRAW lpDD; |
| 38 | + /*0079D3F0*/ static LPDIRECTDRAW lpSurfaceDD; |
| 39 | + |
| 40 | + public: |
| 41 | + /*005B2DC0*/ static void __cdecl setHWindow(HWND hWnd); |
| 42 | + /*005B2DB0*/ static HWND __cdecl getHWindow(); |
| 43 | + inline static HWND *getHWindowPtr() { return (HWND *) funptr<&hWnd>(); } |
| 44 | + |
| 45 | + inline static LPDIRECTDRAW *getDD() { return (LPDIRECTDRAW *) funptr<&lpDD>(); } |
| 46 | + inline static LPDIRECTDRAW *getSurfaceDD() { return (LPDIRECTDRAW *) funptr<&lpSurfaceDD>(); } |
| 47 | + /*005B5410*/ static void __cdecl setSurfaceDD(LPDIRECTDRAW lpDD); |
| 48 | + |
| 49 | + /*005B4390*/ static status_t &__cdecl init(status_t &status, DWORD width, DWORD height, DWORD displayBitness, DWORD surfFlags, LPPALETTEENTRY palette); |
| 50 | + /*005B4230*/ static void __cdecl destroy(); |
| 51 | + |
| 52 | + }; |
| 53 | + |
| 54 | +} |
| 55 | + |
| 56 | +#endif //EMBER_GLOBALS_H |
0 commit comments