Ever wanted to play deus ex campaigns big and small with coop? Got a small party of friends for a private server? Don't mind a few things lacking completion...
The year is 2052 and the world is a dangerous and chaotic place. Terrorists operate openly, killing thousands; drugs, disease and pollution kill even more. The world's economies are close to collapse and the gap between the insanely wealthy and the desperately poor grows ever wider. Worst of all, an ages old conspiracy bent on world domination has decided that the time is right to emerge from the shadows and take control. No one believes they exist. No one but you.
Version 6 (mar 18, 2014)
Switched to Visual Studio 2013, make sure to update your runtimes.
Dropped Windows XP support.
Executable marked as High DPI aware.
The INI file names in the launcher dialog are now clickable to easily edit the files. Note that any changes made will not be picked up by the game until next launch; changes made in the Deus Exe GUI will be visible in the files, though.
Instead of the various separate FOV settings, the choices are now 'Default', 'Automatic' and 'Custom'.
Uses game game default (75 for Deus Ex).
Calculates optimal FOV depending on the game's resolution.
Note that automatic mode sets the FOV for the selected resolution, it will not change the FOV upon in-game resolution changes.
The resolution drop-down box is now populated with the resolutions supported by the primary monitor.
User.ini changes (FOV) now take the USERINI command-line option into account.
When starting the game for the first time, the desktop resolution is chosen for full-screen mode.
Instead of using a mix of DirectInput and raw input to combat mouse acceleration, raw input is now a dedicated mode. In this mode, standard Windows input is used for the menu mouse cursor, while the player camera uses the raw input API to be acceleration free.
Duplicate mouse cursor when playing in windowed mode now also removed in standard input mode.
Added LARGEADDRESSAWARE linker flag and set stack size to 2MB for Revision support.
Data Directories dialog is now tree-based.
Localization file override support. Mods such as Shifter and its derivatives replace some game strings by overwriting DeusEx.int. These .int files can now be stored in a mod's subdirectory and will be used if the user adds this directory in the 'Data Directories' dialog.
Three matters complicate all this:
The user running a localized version of the game, e.g. the language set to something other than 'int', such as 'det' for German. In that case, the game uses 'DeusEx.det' for its strings, with the original 'int' file as a fallback for when a string is not found in the 'det' file.
The ability to rename the game's executable; if DeusEx.exe is renamed to 'bla.exe', the executable will use 'bla.int' for its strings.
The fact that DeusEx.int also contains strings for the 'DeusEx.u' package, such as main menu text items. When DeusEx.exe is renamed, 'DeusEx.int' (or .det, etc.) will still be used for those.
In the end I settled on the following behavior:
The 'Data Directories' dialog only looks for .int files, so it won't recognize mods that for some odd reason do not include English strings.
The replacement mechanism itself will reroute access to any localization file the game tries to access. This means the 'DeusEx.u' package will still use the 'DeusEx' localization file for its strings no matter the .exe name, just like before.
When the language is something other than 'int', access to both that language's localization file (e.g. 'DeusEx.det') and the '.int' file is rerouted, so localized mods work fine. If a string is not found in the mod's language-specific file, its .int file is used.
Combining the above two rules, if Deus Exe is renamed to 'bla.exe' and the language is 'det', it reroutes access from 'System\bla.det' to 'Shifter\bla.det' and from 'System\bla.int' to 'Shifter\bla.int'. But explicit access to 'System\DeusEx.int' by the 'DeusEx.u' package is unchanged.
As a result of the localization file fallback mechanism, with the language set to e.g. 'det', if a mod only includes an .int file, and not a .det file, the .int file will be used for all its strings, which turns the game English but does allow the mod to use its text.
There's NO fallback for individual entries; if 'Shifter\DeusEx.int' does not contain a string, the original 'System\DeusEx.int' file is not queried; but then, the new file needs to include all strings anyway to be compatible with the original DeusEx.exe, which has no override mechanism for localization files at all.