// Раскомментируйте строчку ниже, если у Вас Microsoft Visual Studio 2017 или новее
// #include "pch.h"
// Раскомментируйте строчку ниже, если у Вас более старая версия Microsoft Visual Studio
// #include "stdafx.h"
// Следующая строчка нужна для для функции sprintf()
// Можно удалить, если не используете в Вашем плагине
#include <stdio.h>
// Здесь указываем относительный путь к библиотеке патчера
#include "patcher_x86.hpp"
Patcher* _P;
PatcherInstance* _PI;
int __stdcall TestLoHook(LoHook* h, HookContext* c)
{
    char TextBuffer[256];
   
    DWORD GameMgr = *(DWORD*)0x699538;
    short Day = *(short*)(GameMgr + 0x1F63E);
    short Week = *(short*)(GameMgr + 0x1F640);
    short Month = *(short*)(GameMgr + 0x1F642);
    sprintf(TextBuffer, "Hello, World!\n\nDays passed: %d", Day + 7 * Week + 28 * Month - 36);
    CALL_12(void, __fastcall, 0x4F6C00, TextBuffer, 1, -1, -1, -1, 0, -1, 0, -1, 0, -1, 0);
   
    return EXEC_DEFAULT;
}
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
    static bool plugin_On = false;
    if ( DLL_PROCESS_ATTACH == ul_reason_for_call )
    {
        if ( !plugin_On )
        {
            plugin_On = true;
            _P = GetPatcher();
            _PI = _P->CreateInstance((char*)"HD.Plugin.TestPlugin");
            _PI->WriteLoHook(0x4C80F4, TestLoHook);
        }
    }
    return TRUE;
}