Compare commits

...

2 Commits

Author SHA1 Message Date
Guus Waals 433d76fb73 Windows shim and such 2024-09-20 18:48:14 +08:00
Guus Waals a4b12ba2f4 Fixup _0_0_ like access 2024-09-20 18:48:03 +08:00
5 changed files with 647 additions and 485 deletions

3
.editorconfig Normal file
View File

@ -0,0 +1,3 @@
[*.java]
indent_size = 2
indent_style = space

View File

@ -6,4 +6,30 @@
#include "gh_structs.h"
#include "gh_global.h"
template<size_t Offset, size_t Size>
struct Field {
};
template<size_t Size>
struct _FieldBinderSizeTraits {
using type = undefined;
};
template<>
struct _FieldBinderSizeTraits<4> {
using type = undefined4;
};
template<>
struct _FieldBinderSizeTraits<2> {
using type = undefined2;
};
template<>
struct _FieldBinderSizeTraits<3> {
using type = undefined3;
};
template<size_t Offset, size_t Size>
inline uint32_t& operator+(const char* str, Field<Offset, Size> offset) {
return *(_FieldBinderSizeTraits<Size>*)(str + offset);
}
#endif /* B8D59B54_1674_4C0F_AA2C_611385FF5D03 */

View File

@ -1,14 +1,26 @@
#ifndef A523F6DB_0645_4DEB_8AEB_3792CB732B49
#define A523F6DB_0645_4DEB_8AEB_3792CB732B49
#if _WIN32
#include <Windows.h>
#else
#include "../win32_shim.h"
#include <unistd.h>
#include <sys/proc.h>
#endif
#include <stdint.h>
#include <stdio.h>
#include <string.h>
// Fallback to int if type is not annotated
// typedef int64_t undefined;
typedef uint32_t undefined4;
typedef uint16_t undefined2;
struct undefined3 {
uint8_t _0;
uint8_t _1;
uint8_t _2;
};
typedef unsigned char byte;
typedef byte undefined1;
// typedef uint64_t uint;

80
game_re/win32_shim.h Normal file
View File

@ -0,0 +1,80 @@
#ifndef F69A0336_B517_4804_B49B_F4FBE6691DDB
#define F69A0336_B517_4804_B49B_F4FBE6691DDB
#include <stdint.h>
typedef const char* LPCSTR;
typedef const wchar_t* LPCWSTR;
typedef char* LPSTR;
typedef wchar_t* LPWSTR;
typedef void* LPVOID;
typedef const void* LPCVOID;
typedef unsigned long DWORD;
typedef unsigned short WORD;
typedef unsigned char BYTE;
typedef int32_t LONG;
typedef uint32_t ULONG;
typedef int32_t BOOL;
typedef uint32_t UINT;
typedef char CHAR;
typedef void* HANDLE;
typedef void* HMODULE;
typedef void* HINSTANCE;
typedef void* HWND;
typedef void* HDC;
typedef void* HGLRC;
typedef void* HMENU;
typedef void* HBITMAP;
typedef void* HBRUSH;
typedef void* HFONT;
typedef void* HPEN;
typedef void* HRGN;
typedef void* HICON;
typedef void* HCURSOR;
typedef void* HACCEL;
typedef void* HRSRC;
typedef void* HGLOBAL;
typedef void* HLOCAL;
typedef void* HKEY;
typedef void* PHKEY;
typedef DWORD* LPDWORD;
typedef BYTE* LPBYTE;
typedef int32_t LSTATUS;
typedef struct tagRECT {
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT;
inline void GetWindowsDirectoryA(char* lpBuffer, DWORD nSize) {
// TODO
}
inline LPSTR GetCommandLineA() {
// TODO
}
inline void GetPrivateProfileStringA(LPCSTR lpAppName, LPCSTR lpKeyName, LPCSTR lpDefault, LPSTR lpBuffer, DWORD nSize, LPCSTR lpFileName) {
// TODO
}
inline void MessageBoxA(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType) {
// TODO
}
inline LSTATUS RegOpenKeyExA(HKEY hKey, LPCSTR lpSubKey, DWORD ulOptions, DWORD samDesired, PHKEY phkResult) {
// TODO
}
inline LSTATUS RegQueryValueExA(HKEY hKey, LPCSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData) {
// TODO
}
inline LSTATUS RegCloseKey(HKEY hKey) {
// TODO
}
#endif /* F69A0336_B517_4804_B49B_F4FBE6691DDB */

File diff suppressed because it is too large Load Diff