| 23 |
|
bool patch_fonttexturecache = true; |
| 24 |
|
bool patch_largetextures = true; |
| 25 |
|
bool patch_pathfinding = true; |
| 26 |
+ |
bool patch_levelplugins = true; |
| 27 |
|
bool patch_projaware = true; |
| 28 |
+ |
bool patch_directinput = true; |
| 29 |
|
bool patch_wpfadetime = true; |
| 30 |
|
bool patch_kickguns = false; |
| 31 |
|
bool patch_cooldowntimer = true; |
| 38 |
|
bool patch_safeprintf = true; |
| 39 |
|
bool patch_daodandisplayenum = true; |
| 40 |
|
bool patch_usegettickcount = true; |
| 41 |
+ |
bool patch_cheatsenabled = true; |
| 42 |
|
bool patch_usedaodangl = false; |
| 43 |
|
|
| 44 |
|
bool DDrPatch_Init() |
| 57 |
|
DDrPatch_Byte (OniExe + 0x00005251, 0x10); |
| 58 |
|
|
| 59 |
|
// Non-"_Final" levels are now valid |
| 60 |
< |
DDrPatch_Byte (OniExe + 0x000206a8, 0x01); |
| 60 |
> |
if (patch_levelplugins) |
| 61 |
> |
DDrPatch_Byte (OniExe + 0x000206a8, 0x01); |
| 62 |
|
|
| 63 |
|
// Pathfinding grid cache size x8 |
| 64 |
|
if (patch_pathfinding) |
| 77 |
|
} |
| 78 |
|
|
| 79 |
|
// Forced DirectInput (for Windows NT) |
| 80 |
< |
DDrPatch_Byte (OniExe + 0x00002e6d, 0xeb); |
| 80 |
> |
if (patch_directinput) |
| 81 |
> |
DDrPatch_Byte (OniExe + 0x00002e6d, 0xeb); |
| 82 |
|
|
| 83 |
|
if (patch_wpfadetime) |
| 84 |
|
{ |
| 182 |
|
patch_pathfinding = !stricmp(value, "true"); |
| 183 |
|
else if (!stricmp(name, "projaware")) |
| 184 |
|
patch_projaware = !stricmp(value, "true"); |
| 185 |
+ |
else if (!stricmp(name, "levelplugins")) |
| 186 |
+ |
patch_levelplugins = !stricmp(value, "true"); |
| 187 |
+ |
else if (!stricmp(name, "directinput")) |
| 188 |
+ |
patch_directinput = !stricmp(value, "true"); |
| 189 |
|
else if (!stricmp(name, "wpfadetime")) |
| 190 |
|
patch_wpfadetime = !stricmp(value, "true"); |
| 191 |
|
else if (!stricmp(name, "kickguns")) |
| 208 |
|
patch_daodandisplayenum = !stricmp(value, "true"); |
| 209 |
|
else if (!stricmp(name, "usegettickcount")) |
| 210 |
|
patch_usegettickcount = !stricmp(value, "true"); |
| 211 |
+ |
else if (!stricmp(name, "cheatsenabled")) |
| 212 |
+ |
patch_cheatsenabled = !stricmp(value, "true"); |
| 213 |
|
else if (!stricmp(name, "usedaodangl")) |
| 214 |
|
patch_usedaodangl = !stricmp(value, "true"); |
| 215 |
|
else |
| 232 |
|
DDrPatch_StrDup(OniExe + 0x0010fb6e, value); |
| 233 |
|
else if (!stricmp(name, "blam")) |
| 234 |
|
DDrPatch_StrDup(OniExe + 0x0010fb73, value); |
| 235 |
+ |
else if (!stricmp(name, "shapeshifter_on")) |
| 236 |
+ |
DDr_CheatTable[0].message_on = strdup(value); |
| 237 |
+ |
else if (!stricmp(name, "shapeshifter_off")) |
| 238 |
+ |
DDr_CheatTable[0].message_off = strdup(value); |
| 239 |
+ |
else if (!stricmp(name, "liveforever_on")) |
| 240 |
+ |
DDr_CheatTable[1].message_on = strdup(value); |
| 241 |
+ |
else if (!stricmp(name, "liveforever_off")) |
| 242 |
+ |
DDr_CheatTable[1].message_off = strdup(value); |
| 243 |
+ |
else if (!stricmp(name, "touchofdeath_on")) |
| 244 |
+ |
DDr_CheatTable[2].message_on = strdup(value); |
| 245 |
+ |
else if (!stricmp(name, "touchofdeath_off")) |
| 246 |
+ |
DDr_CheatTable[2].message_off = strdup(value); |
| 247 |
+ |
else if (!stricmp(name, "canttouchthis_on")) |
| 248 |
+ |
DDr_CheatTable[3].message_on = strdup(value); |
| 249 |
+ |
else if (!stricmp(name, "canttouchthis_off")) |
| 250 |
+ |
DDr_CheatTable[3].message_off = strdup(value); |
| 251 |
+ |
else if (!stricmp(name, "fatloot_on")) |
| 252 |
+ |
DDr_CheatTable[4].message_off = strdup(value); |
| 253 |
|
else |
| 254 |
|
DDrStartupMessage("unrecognised language item \"%s\"", name); |
| 255 |
|
break; |
| 302 |
|
} |
| 303 |
|
|
| 304 |
|
// Cheats always enabled |
| 305 |
< |
DDrPatch_MakeJump(ONrPersist_GetWonGame, DDrPersist_GetWonGame); |
| 305 |
> |
if (patch_cheatsenabled) |
| 306 |
> |
DDrPatch_MakeJump(ONrPersist_GetWonGame, DDrPersist_GetWonGame); |
| 307 |
|
|
| 308 |
|
// Windowed mode |
| 309 |
|
if (patch_usedaodangl) |