I have no idea what i'm doing ¯\_(ツ)_/¯
The project currently includes a game chooser activity.
The plan is to have this on the desktop release too, where games can be chosen and added in a list.
(i don't know what will happen to rayman2_openrayman then though, i plan to support more than just Rayman 2)
* 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
* OpenRayman can now read and extract from CNT archives (thanks Szymski/Szymekk!). Check --help for more information.
In the future this, along with other functions, will be exported in a library called "libopenrayman". The plan
is for libopenrayman to be able to read, inspect and extract all relevant files from the Rayman 2 engine.
libopenrayman should be licensed as LGPL, compared to GPL for OpenRayman.
* OpenRayman can now, naturally, also read and convert GF files (CNT files are archives full of textures).
* OpenRayman no longer includes a DSB interpreter, and the decompiler has significantly changed.
Only parts of the DSB that we need are now decompiled. Instead of direct decompilation into a .odsb,
the decompiler produces several .json files that define the same information as the DSB in a much more
human/mod friendly fashion.
* Some minor GTK and engine related changes.
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".