From e0ef83278cca12f838db90befb4c28cc82999b4b Mon Sep 17 00:00:00 2001 From: SK83RJOSH Date: Wed, 25 Nov 2020 18:12:59 +0100 Subject: [PATCH] Added utility functions for entity flags --- entities/entity.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/entities/entity.h b/entities/entity.h index 5ec0dba..25e5f28 100644 --- a/entities/entity.h +++ b/entities/entity.h @@ -51,6 +51,21 @@ namespace Teardown { namespace Entities { inline static function_signature& list, uint32_t type, bool recursive)> FindChildrenOfType = { "\x48\x89\x5C\x24\x08\x48\x89\x6C\x24\x10\x48\x89\x74\x24\x18\x57\x48\x83\xEC\x20\x48\x8B\x59\x20" }; }; + inline Entity::Flags operator|(Entity::Flags a, Entity::Flags b) + { + return static_cast(static_cast(a) | static_cast(b)); + }; + + inline Entity::Flags operator&(Entity::Flags a, Entity::Flags b) + { + return static_cast(static_cast(a) & static_cast(b)); + }; + + inline bool operator!(Entity::Flags a) + { + return static_cast(a) == 0; + }; + static_assert(sizeof(Entity::vftable) == 0x20u, "Entity::vftable size is incorrect!"); static_assert(sizeof(Entity::Type) == 0x1u, "Entity::Type size is incorrect!"); static_assert(sizeof(Entity::Flags) == 0x1u, "Entity::Flags size is incorrect!");