mirror of
https://github.com/geode-sdk/geode.git
synced 2025-02-17 00:30:26 -05:00
ok fixed this time
This commit is contained in:
parent
7c0d7ba57a
commit
1d57eb5c1b
2 changed files with 9 additions and 7 deletions
|
@ -2,6 +2,8 @@
|
|||
|
||||
#ifdef GEODE_IS_ANDROID
|
||||
|
||||
using namespace geode::prelude;
|
||||
|
||||
// Add known android struct members here
|
||||
|
||||
GEODE_SIZE_CHECK(CCObject, 0x34);
|
||||
|
|
|
@ -1,28 +1,28 @@
|
|||
#pragma once
|
||||
#include <Geode/Bindings.hpp>
|
||||
|
||||
template <auto... Values>
|
||||
template <auto V1, auto V2, auto V3, class... Types>
|
||||
struct False {
|
||||
static constexpr auto value = false;
|
||||
};
|
||||
|
||||
template<int Difference, int Expected, int Current, class Class, class Member, bool Predicate>
|
||||
struct MemberIsOffsetBy {
|
||||
static_assert(False<Difference, Expected, Current>::value, "Member is offset by this value (Difference, Expected, Current)");
|
||||
static_assert(False<Difference, Expected, Current, Class, Member>::value, "Member is offset by this value (Difference, Expected, Current, Class, Member)");
|
||||
};
|
||||
|
||||
template<int Difference, int Expected, int Current, class Class, bool Predicate>
|
||||
struct SizeIsOffsetBy {
|
||||
static_assert(False<Difference, Expected, Current>::value, "Size is offset by this value (Difference, Expected, Current)");
|
||||
static_assert(False<Difference, Expected, Current, Class>::value, "Size is offset by this value (Difference, Expected, Current, Class)");
|
||||
};
|
||||
|
||||
template<int Difference, int Expected, int Current, class Class, class Member>
|
||||
struct MemberIsOffsetBy<Difference, Class, Member, true> {
|
||||
struct MemberIsOffsetBy<Difference, Expected, Current, Class, Member, true> {
|
||||
|
||||
};
|
||||
|
||||
template<int Difference, int Expected, int Current, class Class>
|
||||
struct SizeIsOffsetBy<Difference, Class, true> {
|
||||
struct SizeIsOffsetBy<Difference, Expected, Current, Class, true> {
|
||||
|
||||
};
|
||||
|
||||
|
@ -33,9 +33,9 @@ struct SingleMemberChecker {
|
|||
|
||||
template <class Class, int Offset, int Expected>
|
||||
struct SingleSizeChecker {
|
||||
using IsOffsetBy = MemberIsOffsetBy<Offset - Expected, Expected, Offset, Class, Member, Expected == Offset>;
|
||||
using IsOffsetBy = SizeIsOffsetBy<Offset - Expected, Expected, Offset, Class, Expected == Offset>;
|
||||
};
|
||||
|
||||
#define GEODE_MEMBER_CHECK(Class_, Member_, Offset_) class Member_; SingleMemberChecker<Member_, Class_, offsetof(Class_, Member_), Offset_>::IsOffsetBy GEODE_CONCAT(OffsetBy, __LINE__)
|
||||
|
||||
#define GEODE_SIZE_CHECK(Class_, Offset_) class Class_; SingleMemberChecker<Class_, sizeof(Class_), Offset_>::IsOffsetBy GEODE_CONCAT(OffsetBy, __LINE__)
|
||||
#define GEODE_SIZE_CHECK(Class_, Offset_) SingleSizeChecker<Class_, sizeof(Class_), Offset_>::IsOffsetBy GEODE_CONCAT(OffsetBy, __LINE__)
|
||||
|
|
Loading…
Reference in a new issue