| 2 |  | #include "Daodan_Patch.h" | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 3 |  | #include "Daodan_Utility.h" | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 4 |  |  | 
 
 
 
 
 
 
 
 | 5 | + | #include "Oni.h" | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 6 |  | #include "BFW_Utility.h" | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 7 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 8 |  | HMODULE DDrDLLModule; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 55 |  | return true; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 56 |  | } | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 57 |  |  | 
 
 
 
 
 
 
 
 | 58 | + | void DDrMain(int argc, char* argv[]) | 
 
 
 
 
 
 
 
 | 59 | + | { | 
 
 
 
 
 
 
 
 | 60 | + | DDrPatch_Init(); | 
 
 
 
 
 
 
 
 | 61 | + |  | 
 
 
 
 
 
 
 
 | 62 | + | // Safe startup message printer | 
 
 
 
 
 
 
 
 | 63 | + | DDrPatch_MakeJump(UUrStartupMessage, DDrStartupMessage); | 
 
 
 
 
 
 
 
 | 64 | + |  | 
 
 
 
 
 
 
 
 | 65 | + | ONiMain(argc, argv); | 
 
 
 
 
 
 
 
 | 66 | + | } | 
 
 
 
 
 
 
 
 | 67 | + |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 68 |  | BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved) | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 69 |  | { | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 70 |  | switch (fdwReason) | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 73 |  | DDrDLLModule = hinstDLL; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 74 |  | DDrONiModule = GetModuleHandle(NULL); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 75 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 76 | < | DDrPatch_MakeJump(UUrStartupMessage, DDrStartupMessage); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 77 | < | DDrPatch_Init(); | 
 
 
 
 
 
 
 
 
 | 76 | > | DDrPatch_MakeCall((void*)0x00400000 + 0x0010fb49, DDrMain); | 
 
 
 
 
 | 77 | > |  | 
 
 
 
 
 
 
 
 
 
 
 | 78 |  | break; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 79 |  | } | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 80 |  | return TRUE; |