source: Daodan/src/Daodan.c@ 913

Last change on this file since 913 was 893, checked in by alloc, 11 years ago

Daodan 3.4:

  • Fixes #66 by only allowing landscape resolutions
  • Fixes #64, adds patch "showalllasersights" defaulting to false
  • Fixes #67, also printing Daodan version
File size: 1.9 KB
RevLine 
[692]1#include <windows.h>
[346]2#include <string.h>
[838]3#include <stdio.h>
[893]4#include <time.h>
[346]5
[272]6#include "Daodan.h"
7#include "Daodan_Patch.h"
8#include "Daodan_Utility.h"
[339]9#include "Daodan_Cheater.h"
[439]10#include "Daodan_BSL.h"
[476]11#include "Daodan_Console.h"
[838]12#include "Daodan_Config.h"
[839]13#include "patches/Patches.h"
[893]14#include "_Version.h"
[349]15
[273]16#include "Oni.h"
[339]17
[692]18#include "Oni_GL.h"
[272]19
20HMODULE DDrDLLModule;
21HMODULE DDrONiModule;
22
[693]23
[838]24void __cdecl DDrMain(int argc, char* argv[])
25{
[893]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);
[452]35
[838]36 DDrConfig(argc, argv);
37
[839]38 DD_Patch_Init();
[838]39
40
[705]41 ONiMain(argc, argv);
[273]42}
[465]43/*
44void DDrWrongExe()
45{
46 switch (MessageBox(NULL, "This version of the Daodan DLL is incompatible with your Oni.exe.\n"
47 "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))
48 {
49 case IDOK:
50 {
51 STARTUPINFO si;
52 PROCESS_INFORMATION pi;
53 FillMemory(&si, 0, sizeof(si));
54 FillMemory(&pi, 0, sizeof(pi));
55 si.cb = sizeof(si);
56 if (!CreateProcess(NULL, "cmd /c \"start http://wiki.oni2.net/Daodan_DLL\"", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
57 MessageBox(NULL, "", "", 0);
58 CloseHandle(pi.hProcess);
59 CloseHandle(pi.hThread);
60 }
61 default:
62 ExitProcess(0);
63 }
64}
65*/
[272]66BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved)
67{
68 switch (fdwReason)
69 {
70 case DLL_PROCESS_ATTACH:
71 DDrDLLModule = hinstDLL;
72 DDrONiModule = GetModuleHandle(NULL);
73
[677]74 if (*(uint32_t*)(OniExe + 0x0011acd0) == 0x09d36852)
[689]75 DDrPatch_MakeCall((void*)(OniExe + 0x0010fb49), (void*)DDrMain);
[465]76 else
77 ExitProcess(0);
[272]78 break;
79 }
80 return TRUE;
81}
Note: See TracBrowser for help on using the repository browser.