* OpenRayman can now fully decode .apm (Ubisoft? IMA ADPCM) audio used by Rayman 2 for music.
* APM audio is fully preseved and encoded into FLAC audio to ease editing with external programs (e.g. Audacity)
* Support for .bnm (audio banks with PCM and IMA ADPCM audio) is underway. This is only commited to get the online GitHub repo up to date.
* The data extractor is now threaded (not fully, it simply runs linearly in another thread)
* The data extractor now has a GUI progress dialog showing some information to the user (IProgressDialog on Win32, GTK3 on Linux)
* Various minor changes and bugfixes
* Split OpenRayman into two parts (openrayman and libopenrayman)
libopenrayman is licensed under LGPLv3
* dsb_interpreter -> dsb_script
gf_converter -> gf_texture
This means that all currently available formats share a mostly common interface
(specify stream via constructor, check if the file is valid via valid()
and/or extract/decompile via a function returning bool)
* Since all formats can only be created via an std::istream,
libopenrayman includes two helper stream functions in openrayman::common
These are in_mem_(i/o)stream and encoded_stream
in_mem stream read and write to a block of memory (can be created from vector/char*)
encoded_streams take an existing stream and decodes data after reading it from the original stream
* Some small refactoring to other parts of the engine
This commit adds a game class, which is a collection of files that can depend on other files.
The base game "rayman2" contains all files required for the game, and they can then be overriden by games that depend on it.
OpenRayman will use this for editing menus (adding settings) and possibly other things.
All mods should target "rayman2_openrayman".