ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/src/Daodan.c
Revision: 990
Committed: Wed Apr 2 00:48:54 2014 UTC (11 years, 6 months ago) by alloc
Content type: text/x-csrc
File size: 2120 byte(s)
Log Message:
Daodan 3.7:
- Fix #77
- Fix #76

File Contents

# Content
1 #include <windows.h>
2 #include <string.h>
3 #include <stdio.h>
4 #include <time.h>
5
6 #include "Daodan.h"
7 #include "Daodan_Patch.h"
8 #include "Daodan_Utility.h"
9 #include "Daodan_Cheater.h"
10 #include "Daodan_BSL.h"
11 #include "Daodan_Console.h"
12 #include "Daodan_Config.h"
13 #include "patches/Patches.h"
14 #include "bink-proxy.h"
15 #include "_Version.h"
16
17 #include "Oni.h"
18
19 #include "Oni_GL.h"
20
21 HMODULE DDrDLLModule;
22 HMODULE DDrONiModule;
23
24 void __cdecl DDrMain(int argc, char* argv[])
25 {
26 time_t rawtime;
27 struct tm* timeinfo;
28 char buffer[80];
29 time(&rawtime);
30 timeinfo = localtime(&rawtime);
31 strftime(buffer, 80, "Daodan: %Y-%m-%d %H:%M:%S", timeinfo);
32
33 DDrStartupMessage("Daodan: Daodan v."DAODAN_VERSION_STRING" attached!");
34 DDrStartupMessage(buffer);
35
36 DDrConfig(argc, argv);
37
38 if(GetKeyState(VK_SHIFT) & 0x8000) {
39 DDrStartupMessage("Daodan: Shift");
40 guitest(DDrONiModule);
41 }
42
43 DD_Patch_Init();
44
45 BinkProxyInit();
46
47 ONiMain(argc, argv);
48 }
49 /*
50 void DDrWrongExe()
51 {
52 switch (MessageBox(NULL, "This version of the Daodan DLL is incompatible with your Oni.exe.\n"
53 "Click OK for more information. To continue using Oni without the patch, replace the downloaded binkw32.dll with the original.", "Daodan", MB_OKCANCEL | MB_ICONERROR))
54 {
55 case IDOK:
56 {
57 STARTUPINFO si;
58 PROCESS_INFORMATION pi;
59 FillMemory(&si, 0, sizeof(si));
60 FillMemory(&pi, 0, sizeof(pi));
61 si.cb = sizeof(si);
62 if (!CreateProcess(NULL, "cmd /c \"start http://wiki.oni2.net/Daodan_DLL\"", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
63 MessageBox(NULL, "", "", 0);
64 CloseHandle(pi.hProcess);
65 CloseHandle(pi.hThread);
66 }
67 default:
68 ExitProcess(0);
69 }
70 }
71 */
72 BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved)
73 {
74 switch (fdwReason)
75 {
76 case DLL_PROCESS_ATTACH:
77 DDrDLLModule = hinstDLL;
78 DDrONiModule = GetModuleHandle(NULL);
79
80 if (*(uint32_t*)(OniExe + 0x0011acd0) == 0x09d36852)
81 DDrPatch_MakeCall((void*)(OniExe + 0x0010fb49), (void*)DDrMain);
82 else
83 ExitProcess(0);
84 break;
85 }
86 return TRUE;
87 }