* do not use deprecated library features (wstring_convert was deorecated in C++17) - instead use the existing WideString utility.
* do proper calculation of the current directory's path length.
* remove the mostly redundant I_OpenShellFile function and instead use ExtractFilePath to get the config's path.
* re-added screen blends for images from the hardware renderer.
* moved all postprocessing of the image out of the renderers.
* cleaned out a large piece of cruft for handling the palette in the frame buffer class. This was all a remnant of the old paletted backend that no longer exists. Nowadays the screen blend is just a postprocessing effect drawn over the 3D screen, there is no need to maintain any of it as global state anymore.
* since the engine doesn't produce paletted screenshots anymore there is no need to have handling for it in the generation code. This depended on otherwise obsolete information so it got removed along with that information.
- fixed: The streaming music player must return the file reader if it fails to open, so that the next player can still use it.
- fixed: Timidity++'s Instruments class did not delete the sound font when it was destroyed.
..-
Since this is a non-standard function it's better kept to as few places as possible, so now DirEntryExists returns an additional flag to say what type an entry is and is being used nearly everywhere where stat was used, excluding a few low level parts in the POSIX code.
- let FScanner::OpenFile return an error instead of throwing an exception. The exception was never used anyway aside from being caught right away to be ignored.
For some files that had the Doom Source license attached but saw heavy external contributions over the years I added a special note to license all original ZDoom code under BSD.
This is to ensure that the Class pointer can be set right on creation. ZDoom had always depended on handling this lazily which poses some problems for the VM.
So now there is a variadic Create<classtype> function taking care of that, but to ensure that it gets used, direct access to the new operator has been blocked.
This also neccessitated making DArgs a regular object because they get created before the type system is up. Since the few uses of DArgs are easily controllable this wasn't a big issue.
- did a bit of optimization on the bots' decision making whether to pick up a health item or not.
Both files can now be included independently without causing problems.
This also required moving some inline functions into separate files and splitting off the GC definitions from dobject.h to ensure that r_defs does not need to pull in any part of the object hierarchy.
This is so that PNGs can be written to memory, not just to an external file. stdio's FILE cannot be easily redirected but a C++ class can.
The writer is very simple and primitive right now, allowing no seeking, but for the job at hand it is sufficient.
Note that large parts of savegame creation have been disabled, because they are about to be rewritten and it makes no sense to adjust them all before.
This has an important implication:
Previously the config was loaded before IWADINFO so in order to allow the config to access the data this had to be switched around.
This means that zdoom.pk3 will not be looked for in the global IWAD search paths anymore, but since it shouldn't be there to begin with it should be an acceptable compromise.
- If the current user does not have write permissions for the directory
zdoom.exe is located in, use standard folder paths located in their home
directory instead. This is a common scenario when people put ZDoom into
Program Files. (Ironically, zdoom.ini used to be in AppData, buth then
people complained when it wasn't in the same directory as zdoom.exe, so
it got turned into zdoom-<user>.ini so at least it could retain some
multi-user support. I'm not sure when the AppData support was removed,
though, since it should have still been kept around for migrating
configs to the new name.)
The 'unix' identifier isn't defined when '-std' is passed to the compiler (tested with gcc and clang), so use '__unix__' which is well enough documented.
- Use functions in gitinfo.cpp to retrieve the strings from gitinfo.h so
that changes to gitinfo.h only require recompiling one file instead of
several.
- changed all parsers that check for the current game to use the same function for the game check.
- fixed: The TEAMINFO parser handled 'game Any' incorrectly.
SVN r2934 (trunk)
* Fixed: Trying to use a response file would result in infinite looping until memory was
exhausted.
* Fixed: Response files were read after coalescing file parameters, which would lead to
non-coalesced parameters if the original command line and response file both had them.
* You can now use more than one response file.
* Response files can include other response files.
SVN r2334 (trunk)