This commit is contained in:
2024-09-23 02:21:50 +08:00
parent 433d76fb73
commit 619f3c36dc
11 changed files with 754 additions and 153 deletions

View File

@@ -6,30 +6,28 @@
#include "gh_structs.h"
#include "gh_global.h"
template<size_t Offset, size_t Size>
struct Field {
#include <direct.h>
#include <process.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 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);
template <size_t Offset, size_t Size>
inline typename _FieldBinderSizeTraits<Size>::type &
operator+(const void *str, Field<Offset, Size> offset) {
return *reinterpret_cast<typename _FieldBinderSizeTraits<Size>::type *>((uint8_t *)str + offset);
}
#endif /* B8D59B54_1674_4C0F_AA2C_611385FF5D03 */

View File

@@ -13,13 +13,13 @@
#include <string.h>
// Fallback to int if type is not annotated
// typedef int64_t undefined;
typedef unsigned char undefined;
typedef uint32_t undefined4;
typedef uint16_t undefined2;
struct undefined3 {
uint8_t _0;
uint8_t _1;
uint8_t _2;
uint8_t _0;
uint8_t _1;
uint8_t _2;
};
typedef unsigned char byte;
typedef byte undefined1;
@@ -28,4 +28,11 @@ typedef void *pointer;
typedef char *TerminatedCString;
typedef char *string;
enum R3ModuleId : uint8_t {
R3ModId_unk = 0x00,
R3ModId_not_initialized = 0xff,
};
// Can not export enums for some reason
#endif /* A523F6DB_0645_4DEB_8AEB_3792CB732B49 */