WIP
This commit is contained in:
@@ -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 */
|
||||
|
@@ -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 */
|
||||
|
Reference in New Issue
Block a user