ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/src/Daodan.c
(Generate patch)

Comparing Daodan/src/Daodan.c (file contents):
Revision 426 by rossy, Thu Jul 16 01:24:07 2009 UTC vs.
Revision 447 by rossy, Tue Jul 21 03:33:07 2009 UTC

# Line 6 | Line 6
6   #include "Daodan_Win32.h"
7   #include "Daodan_Cheater.h"
8   #include "Daodan_Persistence.h"
9 + #include "Daodan_BSL.h"
10  
11   #include "Daodan_WindowHack.h"
12  
# Line 44 | Line 45 | bool patch_usegettickcount = true;
45   bool patch_cheatsenabled = true;
46   bool patch_usedaodangl = false;
47   bool patch_windowhack = true;
48 + bool patch_daodaninit = true;
49 + bool patch_bsl = true;
50 +
51 + bool opt_usedaodanbsl = true;
52  
53   bool DDrPatch_Init()
54   {
# Line 164 | Line 169 | bool DDrPatch_Init()
169          return true;
170   }
171  
172 < enum {s_unknown, s_patch, s_language} ini_section;
172 > enum {s_unknown, s_options, s_patch, s_bsl, s_language} ini_section;
173  
174   bool DDrIniCallback(char* section, bool newsection, char* name, char* value)
175   {
176          if (newsection)
177          {
178 <                if (!stricmp(section, "patch"))
178 >                if (!stricmp(section, "options"))
179 >                        ini_section = s_options;
180 >                else if (!stricmp(section, "patch"))
181                          ini_section = s_patch;
182 +                else if (!stricmp(section, "bsl"))
183 +                        ini_section = s_bsl;
184                  else if (!stricmp(section, "language"))
185                          ini_section = s_language;
186                  else
# Line 183 | Line 192 | bool DDrIniCallback(char* section, bool
192          
193          switch (ini_section)
194          {
195 +                case s_options:
196 +                        if (!stricmp(name, "usedaodanbsl"))
197 +                                opt_usedaodanbsl = !stricmp(value, "true");
198 +                        break;
199                  case s_patch:
200                          if (!stricmp(name, "fonttexturecache"))
201                                  patch_fonttexturecache = !stricmp(value, "true");
# Line 226 | Line 239 | bool DDrIniCallback(char* section, bool
239                                  patch_usedaodangl = !stricmp(value, "true");
240                          else if (!stricmp(name, "windowhack"))
241                                  patch_windowhack = !stricmp(value, "true");
242 +                        else if (!stricmp(name, "daodaninit"))
243 +                                patch_daodaninit = !stricmp(value, "true");
244 +                        else if (!stricmp(name, "bsl"))
245 +                                patch_bsl = !stricmp(value, "true");
246                          else
247                                  DDrStartupMessage("unrecognised patch \"%s\"", name);
248                          break;
249 +                case s_bsl:
250 +                        
251 +                        break;
252                  case s_language:
253                          if (!stricmp(name, "savepoint"))
254                          {
# Line 363 | Line 383 | void DDrConfig()
383          DDrStartupMessage("finished parsing");
384   }
385  
386 + void ONICALL DDrGame_Init()
387 + {
388 +        if (opt_usedaodanbsl)
389 +                SLrDaodan_Initalize();
390 + }
391 +
392   void __cdecl DDrMain(int argc, char* argv[])
393   {
394          DDrStartupMessage("daodan attached!");
# Line 400 | Line 426 | void __cdecl DDrMain(int argc, char* arg
426          if (patch_windowhack)
427                  DDrWindowHack_Install();
428          
429 +        if (patch_daodaninit)
430 +                DDrPatch_MakeCall(OniExe + 0x000d345a, DDrGame_Init);
431 +        
432 +        // Patches for existing BSL functions
433 +        if (patch_bsl)
434 +                SLrDaodan_Patch();
435 +        
436          init_daodan_gl();
437          
438          ONiMain(argc, argv);

Diff Legend

Removed lines
+ Added lines
< Changed lines (old)
> Changed lines (new)