#pragma once #include "CommandSelectorBase.hpp" // static_assert(offsetof(CommandSelectorBase, explicitIdSelector) == 165); template class CommandSelector : public CommandSelectorBase { public: LIAPI CommandSelector() : CommandSelectorBase(std::is_same_v) {} inline CommandSelectorResults results(CommandOrigin const& a0) const { CommandSelectorResults (CommandSelector::*rv)(CommandOrigin const& a0) const; if constexpr (std::is_same_v) { *((void**)&rv) = dlsym("?results@?$CommandSelector@VActor@@@@QEBA?AV?$CommandSelectorResults@VActor@@@@AEBVCommandOrigin@@@Z"); return (this->*rv)(a0); } else { *((void**)&rv) = dlsym("?results@?$CommandSelector@VPlayer@@@@QEBA?AV?$CommandSelectorResults@VPlayer@@@@AEBVCommandOrigin@@@Z"); return (this->*rv)(a0); } } }; template class WildcardCommandSelector : public CommandSelectorBase { public: WildcardCommandSelector() : CommandSelectorBase(std::is_same_v){}; };