namespace Death {
//###==##====#=====--==~--~=~- --- -- -  -  -   -

/** @mainpage

This is an API documentation for Jazz² Resurrection. For user documentation, please visit [project homepage](https://deat.tk/jazz2/).
Additionaly, the project is hosted on https://github.com/deathkiller/jazz2-native/.

Jazz² Resurrection is reimplementation of the game Jazz Jackrabbit 2 released in 1998. Supports
various versions of the game (Shareware Demo, Holiday Hare '98, The Secret Files and Christmas
Chronicles). Also, it partially supports some features of JJ2+ extension and MLLE. **Online multiplayer**
and **scripting support** (AngelScript) is currently in development, everything else, including
story episodes fully playable in cooperation, is already implemented.

To get in touch with the developers and the community, you can use the official [Discord server](https://discord.gg/Y7SBvkD).

For getting started guide, see @ref building. For game-specific API documentation, see @ref Jazz2
namespace. For common utility functions and generic containers, see @ref Death "the shared root namespace".
In addition, @ref CommonBase.h contains common configuration-specific and platform-specific
definitions. For **nCine** game engine documentation, see @ref nCine namespace. The **nCine** game
engine used in this game has been extensively modified, so the original documentation no longer
matches the current implementation.

@section mainpage-platforms Supported platforms

- **Android**
- **FreeBSD**
- **Linux** and other Unix-like systems
- **macOS**
- **Windows**
- **Nintendo Switch** using [devkitPro toolchain](https://devkitpro.org/wiki/devkitPro_pacman)
- **Xbox** (Universal Windows Platform) using ANGLE/Mesa
- **Web** (WebAssembly) using [Emscripten](https://kripken.github.io/emscripten-site/)

The code is mainly optimized to run on 64-bit **x86** and **ARM** processors including advanced
instruction sets. Additionally, **OpenGL** 3.3, **OpenGL|ES** 3.0 or **WebGL** 2.0 is required
to run the application. However, Google ANGLE or Mesa can be used to translate OpenGL calls to
the native graphics API. See also @ref death-partialsupport "the list of partially supported features"
that depend on specific platforms.
	
@section mainpage-license License

This project is licensed under the terms of the [GNU General Public License v3.0](https://github.com/deathkiller/jazz2-native/blob/master/LICENSE).
See also @ref third-party for the licenses of the libraries used.

*/

/** @file Main.h
	@brief Common nCine header file, includes @ref Common.h and project metadata
*/
/** @dir nCine
	@brief Namespace @ref nCine
*/
/** @namespace nCine
	@brief Root namespace of nCine game engine
*/
/** @file nCine/AppConfiguration.h
	@brief Class @ref nCine::AppConfiguration
*/
/** @file nCine/Application.h
	@brief Class @ref nCine::Application
*/
/** @file nCine/CommonConstants.h
	@brief Common mathematical constants
*/
/** @file nCine/I18n.h
	@brief Class @ref nCine::I18n
*/
/** @file nCine/IAppEventHandler.h
	@brief Interface @ref nCine::IAppEventHandler
*/
/** @file nCine/MainApplication.h
	@brief Class @ref nCine::MainApplication
*/
/** @file nCine/ServiceLocator.h
	@brief Class @ref nCine::ServiceLocator
*/
/** @dir nCine/Backends
	@brief Namespace @ref nCine::Backends
*/
/** @namespace nCine::Backends
	@brief Platform-specific backends
*/
/** @dir nCine/Primitives
	@brief Namespace @ref nCine::Primitives
*/
/** @namespace nCine::Primitives
	@brief Primitives
*/
/** @namespace nCine::Primitives::Literals
	@brief Literals for primitives
*/
/** @dir nCine/Graphics/RHI
	@brief Namespace @ref nCine::RHI
*/
/** @namespace nCine::RHI
	@brief Render Hardware Interface — compile-time-selectable graphics backend abstraction

	Exactly one backend is compiled into a binary, selected by a `WITH_RHI_*` macro (the OpenGL
	family is the default). The render pipeline refers only to the backend-neutral aliases declared
	here (e.g. @ref nCine::RHI::Device, @ref nCine::RHI::Texture), so each backend only has to provide
	the same set of names with the same surface.
*/
/** @dir nCine/Graphics/RHI/GL
	@brief Namespace @ref nCine::RHI::GL
*/
/** @namespace nCine::RHI::GL
	@brief OpenGL 3.3 core, OpenGL|ES 3.0/2.0 and WebGL 2.0 backend, selected by `WITH_RHI_GL`
*/
/** @dir nCine/Graphics/RHI/Software
	@brief Namespace @ref nCine::RHI::Software
*/
/** @namespace nCine::RHI::Software
	@brief CPU software rasterizer backend, selected by `WITH_RHI_SOFTWARE`
*/
/** @namespace nCine::RHI::Software::sw
	@brief Runtime support types for the transpiled (GLSL→C++) software shaders
*/
/** @namespace nCine::RHI::Software::UniformTypeInfo
	@brief Free-function helpers that classify reflected uniform types (component count, float-ness)
*/
/** @dir nCine/Graphics/RHI/D3D11
	@brief Namespace @ref nCine::RHI::D3D11
*/
/** @namespace nCine::RHI::D3D11
	@brief Direct3D 11 backend, selected by `WITH_RHI_D3D11`
*/
/** @namespace nCine::RHI::D3D11::UniformTypeInfo
	@brief Free-function helpers that classify reflected uniform types (component count, float-ness)
*/
/** @dir nCine/Graphics/RHI/Vulkan
	@brief Namespace @ref nCine::RHI::Vulkan
*/
/** @namespace nCine::RHI::Vulkan
	@brief Vulkan backend, selected by `WITH_RHI_VULKAN`
*/
/** @namespace nCine::RHI::Vulkan::UniformTypeInfo
	@brief Free-function helpers that classify reflected uniform types (component count, float-ness)
*/

/** @dir Jazz2
	@brief Namespace @ref Jazz2
*/
/** @namespace Jazz2
	@brief Root namespace of Jazz² Resurrection
*/

/** @dir Jazz2/Actors
	@brief Namespace @ref Jazz2::Actors
*/
/** @namespace Jazz2::Actors
	@brief Implementation of all objects
*/
/** @dir Jazz2/Actors/Collectibles
	@brief Namespace @ref Jazz2::Actors::Collectibles
*/
/** @namespace Jazz2::Actors::Collectibles
	@brief Collectibles
*/
/** @dir Jazz2/Actors/Enemies
	@brief Namespace @ref Jazz2::Actors::Enemies
*/
/** @namespace Jazz2::Actors::Enemies
	@brief Enemies
*/
/** @dir Jazz2/Actors/Enemies/Bosses
	@brief Namespace @ref Jazz2::Actors::Bosses
*/
/** @namespace Jazz2::Actors::Bosses
	@brief Enemy bosses
*/
/** @dir Jazz2/Actors/Environment
	@brief Namespace @ref Jazz2::Actors::Environment
*/
/** @namespace Jazz2::Actors::Environment
	@brief Environmental objects
*/
/** @dir Jazz2/Actors/Lighting
	@brief Namespace @ref Jazz2::Actors::Lighting
*/
/** @namespace Jazz2::Actors::Lighting
	@brief Lighting effects
*/
/** @dir Jazz2/Actors/Multiplayer
	@brief Namespace @ref Jazz2::Actors::Multiplayer
*/
/** @namespace Jazz2::Actors::Multiplayer
	@brief Multiplayer-related objects, compiled only if `WITH_MULTIPLAYER`
*/
/** @dir Jazz2/Actors/Solid
	@brief Namespace @ref Jazz2::Actors::Solid
*/
/** @namespace Jazz2::Actors::Solid
	@brief Solid objects
*/
/** @dir Jazz2/Actors/Weapons
	@brief Namespace @ref Jazz2::Actors::Weapons
*/
/** @namespace Jazz2::Actors::Weapons
	@brief Weapons
*/

/** @dir Jazz2/Collisions
	@brief Namespace @ref Jazz2::Collisions
*/
/** @namespace Jazz2::Collisions
	@brief Collision checking
*/
/** @dir Jazz2/Compatibility
	@brief Namespace @ref Jazz2::Compatibility
*/
/** @namespace Jazz2::Compatibility
	@brief Translation layer for original data files
*/
/** @dir Jazz2/Events
	@brief Namespace @ref Jazz2::Events
*/
/** @namespace Jazz2::Events
	@brief Events and object spawning
*/
/** @dir Jazz2/Input
	@brief Namespace @ref Jazz2::Input
*/
/** @namespace Jazz2::Input
	@brief Input handling
*/
/** @dir Jazz2/Multiplayer
	@brief Namespace @ref Jazz2::Multiplayer
*/
/** @namespace Jazz2::Multiplayer
	@brief Multiplayer-related classes, compiled only if `WITH_MULTIPLAYER`
	
	@experimental
*/
/** @dir Jazz2/Rendering
	@brief Namespace @ref Jazz2::Rendering
*/
/** @namespace Jazz2::Rendering
	@brief Scene rendering and viewport management
*/
/** @namespace Jazz2::Resources
	@brief Structures for game resources
*/
/** @dir Jazz2/Scripting
	@brief Namespace @ref Jazz2::Scripting
*/
/** @namespace Jazz2::Scripting
	@brief Scripting-related classes, compiled only if `WITH_ANGELSCRIPT`
	
	@experimental
*/
/** @namespace Jazz2::Scripting::Legacy
	@brief Legacy JJ2+ definitions
	
	@experimental
*/
/** @dir Jazz2/Tiles
	@brief Namespace @ref Jazz2::Tiles
*/
/** @namespace Jazz2::Tiles
	@brief Tile sets and maps
*/
/** @dir Jazz2/UI
	@brief Namespace @ref Jazz2::UI
*/
/** @namespace Jazz2::UI
	@brief User interface and menus
*/
/** @dir Jazz2/UI/Menu
	@brief Namespace @ref Jazz2::UI::Menu
*/
/** @namespace Jazz2::UI::Menu
	@brief Menu implementation
*/
/** @namespace Jazz2::UI::Menu::Resources
	@brief Common menu resources defined in `Metadata/UI/MainMenu.res`
*/
/** @dir Jazz2/UI/Multiplayer
	@brief Namespace @ref Jazz2::UI::Multiplayer
*/
/** @namespace Jazz2::UI::Multiplayer
	@brief Multiplayer-related user interface, compiled only if `WITH_MULTIPLAYER`
	
	@experimental
*/

}
