| 7 |  | #include "Daodan_Cheater.h" | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 8 |  | #include "Daodan_Persistence.h" | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 9 |  |  | 
 
 
 
 
 
 
 
 | 10 | + | #include "Daodan_WindowHack.h" | 
 
 
 
 
 
 
 
 | 11 | + |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 12 |  | #include "Oni.h" | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 13 |  | #include "Oni_Persistence.h" | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 14 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 24 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 25 |  | bool patch_fonttexturecache = true; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 26 |  | bool patch_largetextures = true; | 
 
 
 
 
 
 
 
 
 | 25 | – | bool patch_pathfinding = true; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 27 |  | bool patch_levelplugins = true; | 
 
 
 
 
 
 
 
 | 28 | + | bool patch_pathfinding = true; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 29 |  | bool patch_projaware = true; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 30 |  | bool patch_directinput = true; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 31 |  | bool patch_wpfadetime = true; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 42 |  | bool patch_usegettickcount = true; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 43 |  | bool patch_cheatsenabled = true; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 44 |  | bool patch_usedaodangl = false; | 
 
 
 
 
 
 
 
 | 45 | + | bool patch_windowhack = true; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 46 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 47 |  | bool DDrPatch_Init() | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 48 |  | { | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 181 |  | patch_fonttexturecache = !stricmp(value, "true"); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 182 |  | else if (!stricmp(name, "largetextures")) | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 183 |  | patch_largetextures = !stricmp(value, "true"); | 
 
 
 
 
 
 
 
 | 184 | + | else if (!stricmp(name, "levelplugins")) | 
 
 
 
 
 
 
 
 | 185 | + | patch_levelplugins = !stricmp(value, "true"); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 186 |  | else if (!stricmp(name, "pathfinding")) | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 187 |  | patch_pathfinding = !stricmp(value, "true"); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 188 |  | else if (!stricmp(name, "projaware")) | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 189 |  | patch_projaware = !stricmp(value, "true"); | 
 
 
 
 
 
 
 
 
 | 185 | – | else if (!stricmp(name, "levelplugins")) | 
 
 
 
 
 
 
 
 
 | 186 | – | patch_levelplugins = !stricmp(value, "true"); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 190 |  | else if (!stricmp(name, "directinput")) | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 191 |  | patch_directinput = !stricmp(value, "true"); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 192 |  | else if (!stricmp(name, "wpfadetime")) | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 215 |  | patch_cheatsenabled = !stricmp(value, "true"); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 216 |  | else if (!stricmp(name, "usedaodangl")) | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 217 |  | patch_usedaodangl = !stricmp(value, "true"); | 
 
 
 
 
 
 
 
 | 218 | + | else if (!stricmp(name, "windowhack")) | 
 
 
 
 
 
 
 
 | 219 | + | patch_windowhack = !stricmp(value, "true"); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 220 |  | else | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 221 |  | DDrStartupMessage("unrecognised patch \"%s\"", name); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 222 |  | break; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 254 |  | else if (!stricmp(name, "canttouchthis_off")) | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 255 |  | DDr_CheatTable[3].message_off = strdup(value); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 256 |  | else if (!stricmp(name, "fatloot_on")) | 
 
 
 
 
 
 
 
 
 
 
 | 257 | < | DDr_CheatTable[4].message_off = strdup(value); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 257 | > | DDr_CheatTable[4].message_on = strdup(value); | 
 
 
 
 
 | 258 | > | else if (!stricmp(name, "glassworld_on")) | 
 
 
 
 
 | 259 | > | DDr_CheatTable[5].message_on = strdup(value); | 
 
 
 
 
 | 260 | > | else if (!stricmp(name, "glassworld_off")) | 
 
 
 
 
 | 261 | > | DDr_CheatTable[5].message_off = strdup(value); | 
 
 
 
 
 | 262 | > | else if (!stricmp(name, "winlevel_on")) | 
 
 
 
 
 | 263 | > | DDr_CheatTable[6].message_on = strdup(value); | 
 
 
 
 
 | 264 | > | else if (!stricmp(name, "loselevel_on")) | 
 
 
 
 
 | 265 | > | DDr_CheatTable[7].message_on = strdup(value); | 
 
 
 
 
 | 266 | > | else if (!stricmp(name, "bighead_on")) | 
 
 
 
 
 | 267 | > | DDr_CheatTable[8].message_on = strdup(value); | 
 
 
 
 
 | 268 | > | else if (!stricmp(name, "bighead_off")) | 
 
 
 
 
 | 269 | > | DDr_CheatTable[8].message_off = strdup(value); | 
 
 
 
 
 | 270 | > | else if (!stricmp(name, "minime_on")) | 
 
 
 
 
 | 271 | > | DDr_CheatTable[9].message_on = strdup(value); | 
 
 
 
 
 | 272 | > | else if (!stricmp(name, "minime_off")) | 
 
 
 
 
 | 273 | > | DDr_CheatTable[9].message_off = strdup(value); | 
 
 
 
 
 | 274 | > | else if (!stricmp(name, "superammo_on")) | 
 
 
 
 
 | 275 | > | DDr_CheatTable[10].message_on = strdup(value); | 
 
 
 
 
 | 276 | > | else if (!stricmp(name, "superammo_off")) | 
 
 
 
 
 | 277 | > | DDr_CheatTable[10].message_off = strdup(value); | 
 
 
 
 
 | 278 | > | else if (!stricmp(name, "devmode_on")) | 
 
 
 
 
 | 279 | > | { | 
 
 
 
 
 | 280 | > | char* str = strdup(value); | 
 
 
 
 
 | 281 | > | DDr_CheatTable[11].message_on = str; | 
 
 
 
 
 | 282 | > | DDr_CheatTable[cheat_devmodex].message_on = str; | 
 
 
 
 
 | 283 | > | } | 
 
 
 
 
 | 284 | > | else if (!stricmp(name, "devmode_off")) | 
 
 
 
 
 | 285 | > | { | 
 
 
 
 
 | 286 | > | char* str = strdup(value); | 
 
 
 
 
 | 287 | > | DDr_CheatTable[11].message_off = str; | 
 
 
 
 
 | 288 | > | DDr_CheatTable[cheat_devmodex].message_off = str; | 
 
 
 
 
 | 289 | > | } | 
 
 
 
 
 | 290 | > | else if (!stricmp(name, "reservoirdogs_on")) | 
 
 
 
 
 | 291 | > | DDr_CheatTable[12].message_on = strdup(value); | 
 
 
 
 
 | 292 | > | else if (!stricmp(name, "reservoirdogs_off")) | 
 
 
 
 
 | 293 | > | DDr_CheatTable[12].message_off = strdup(value); | 
 
 
 
 
 | 294 | > | else if (!stricmp(name, "roughjustice_on")) | 
 
 
 
 
 | 295 | > | DDr_CheatTable[13].message_on = strdup(value); | 
 
 
 
 
 | 296 | > | else if (!stricmp(name, "roughjustice_off")) | 
 
 
 
 
 | 297 | > | DDr_CheatTable[13].message_off = strdup(value); | 
 
 
 
 
 | 298 | > | else if (!stricmp(name, "chenille_on")) | 
 
 
 
 
 | 299 | > | DDr_CheatTable[14].message_on = strdup(value); | 
 
 
 
 
 | 300 | > | else if (!stricmp(name, "chenille_off")) | 
 
 
 
 
 | 301 | > | DDr_CheatTable[14].message_off = strdup(value); | 
 
 
 
 
 | 302 | > | else if (!stricmp(name, "behemoth_on")) | 
 
 
 
 
 | 303 | > | DDr_CheatTable[15].message_on = strdup(value); | 
 
 
 
 
 | 304 | > | else if (!stricmp(name, "behemoth_off")) | 
 
 
 
 
 | 305 | > | DDr_CheatTable[15].message_off = strdup(value); | 
 
 
 
 
 | 306 | > | else if (!stricmp(name, "elderrune_on")) | 
 
 
 
 
 | 307 | > | DDr_CheatTable[16].message_on = strdup(value); | 
 
 
 
 
 | 308 | > | else if (!stricmp(name, "elderrune_off")) | 
 
 
 
 
 | 309 | > | DDr_CheatTable[16].message_off = strdup(value); | 
 
 
 
 
 | 310 | > | else if (!stricmp(name, "moonshadow_on")) | 
 
 
 
 
 | 311 | > | DDr_CheatTable[17].message_on = strdup(value); | 
 
 
 
 
 | 312 | > | else if (!stricmp(name, "moonshadow_off")) | 
 
 
 
 
 | 313 | > | DDr_CheatTable[17].message_off = strdup(value); | 
 
 
 
 
 | 314 | > | else if (!stricmp(name, "munitionfrenzy_on")) | 
 
 
 
 
 | 315 | > | DDr_CheatTable[18].message_on = strdup(value); | 
 
 
 
 
 | 316 | > | else if (!stricmp(name, "fistsoflegend_on")) | 
 
 
 
 
 | 317 | > | DDr_CheatTable[19].message_on = strdup(value); | 
 
 
 
 
 | 318 | > | else if (!stricmp(name, "fistsoflegend_off")) | 
 
 
 
 
 | 319 | > | DDr_CheatTable[19].message_off = strdup(value); | 
 
 
 
 
 | 320 | > | else if (!stricmp(name, "killmequick_on")) | 
 
 
 
 
 | 321 | > | DDr_CheatTable[20].message_on = strdup(value); | 
 
 
 
 
 | 322 | > | else if (!stricmp(name, "killmequick_off")) | 
 
 
 
 
 | 323 | > | DDr_CheatTable[20].message_off = strdup(value); | 
 
 
 
 
 | 324 | > | else if (!stricmp(name, "carousel_on")) | 
 
 
 
 
 | 325 | > | DDr_CheatTable[21].message_on = strdup(value); | 
 
 
 
 
 | 326 | > | else if (!stricmp(name, "carousel_off")) | 
 
 
 
 
 | 327 | > | DDr_CheatTable[21].message_off = strdup(value); | 
 
 
 
 
 
 
 
 
 
 
 | 328 |  | else | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 329 |  | DDrStartupMessage("unrecognised language item \"%s\"", name); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 330 |  | break; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 387 |  | DDrPatch_MakeJump(gl_platform_initialize, daodangl_platform_initialize); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 388 |  | } | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 389 |  |  | 
 
 
 
 
 
 
 
 | 390 | + | // Hacked windowed mode (for when daodangl isn't working properly) | 
 
 
 
 
 
 
 
 | 391 | + | if (patch_windowhack) | 
 
 
 
 
 
 
 
 | 392 | + | DDrWindowHack_Install(); | 
 
 
 
 
 
 
 
 | 393 | + |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 394 |  | init_daodan_gl(); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 395 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 396 |  | ONiMain(argc, argv); |