#ifndef DAODAN_PATCH_H #define DAODAN_PATCH_H #include "stdint.h" #define DDrPatch_Const(d, c) DDrPatch_String(d, c, sizeof(c)) #define OniExe ((char*)0x00400000) bool DDrPatch_MakeJump(void* from, void* to); bool DDrPatch_MakeCall(void* from, void* to); void* DDrPatch_MakeDetour(void* from, void* to); bool DDrPatch_String(char* dest, const unsigned char* string, int length); bool DDrPatch_Byte(char* dest, unsigned char value); bool DDrPatch_Int32(int* dest, unsigned int value); bool DDrPatch_Int16(short* dest, unsigned short value); bool DDrPatch_NOOP(char* dest, unsigned int length); void* DDrPatch_ExecutableASM(char* from, char* nextInst, const unsigned char* code, int length); void DDrPatch_PrintDisasm(void* addr, int instLimit, int sizeLimit); #endif