Added koalageddon config

This commit is contained in:
acidicoala
2022-12-30 01:44:33 +03:00
parent 941d5d7d8c
commit 636f9186a3
8 changed files with 104 additions and 31 deletions

View File

@@ -24,8 +24,30 @@
namespace smoke_api {
using namespace koalabox;
struct KoalageddonConfig {
String interface_interceptor_pattern = "55 8B EC 8B ?? ?? ?? ?? ?? 81 EC ?? ?? ?? ?? 53 FF 15";
// Offset values are interpreted according to pointer arithmetic rules, i.e.
// 1 unit offset represents 4 and 8 bytes in 32-bit and 64-bit architectures respectively.
uint32_t callback_interceptor_address_offset = 1;
uint32_t callback_address_offset = 20;
uint32_t callback_data_offset = 0;
uint32_t callback_name_offset = 4;
// We do not use *_WITH_DEFAULT macro to ensure that overriding
// the koalageddon config requires definition of all keys
NLOHMANN_DEFINE_TYPE_INTRUSIVE(
KoalageddonConfig, // NOLINT(misc-const-correctness)
interface_interceptor_pattern,
callback_interceptor_address_offset,
callback_address_offset,
callback_data_offset,
callback_name_offset
)
};
struct Config {
uint32_t $version = 1;
uint32_t $version = 2;
bool logging = false;
bool unlock_all = true;
Set<uint32_t> override;
@@ -33,6 +55,9 @@ namespace smoke_api {
bool auto_inject_inventory = true;
Vector<uint32_t> inventory_items;
// Have to use general json type here since library doesn't support std::optional
nlohmann::json koalageddon_config;
NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(
Config, $version, // NOLINT(misc-const-correctness)
logging,
@@ -40,12 +65,15 @@ namespace smoke_api {
override,
dlc_ids,
auto_inject_inventory,
inventory_items
inventory_items,
koalageddon_config
)
};
extern Config config;
extern KoalageddonConfig koalageddon_config;
extern HMODULE original_library;
extern bool is_hook_mode;