Main.h file

Common nCine header file, includes Common.h and project metadata.

Defines

#define NCINE_APP
Application name.
#define NCINE_APP_NAME
Application full name.
#define NCINE_VERSION
Application version.
#define NCINE_PROTOCOL_VERSION
Application multiplayer protocol version.
#define NCINE_BUILD_YEAR
Application build year.
#define NCINE_LINUX_PACKAGE
Application package name on Linux.
#define NCINE_INSTALL_PREFIX
Install prefix on Unix systems, usually "/usr/local".
#define NCINE_HAS_GAMEPAD_RUMBLE
Whether the current platform supports a gamepad rumble, see IInputManager::joystickRumble().
#define NCINE_HAS_NATIVE_BACK_BUTTON
Whether the current platform has a native (hardware) back button.
#define NCINE_HAS_WINDOWS
Whether the current platform supports vibrations of the device.
#define NCINE_HAS_TOUCH_CONTROLS
Whether the current platform can have a touchscreen.
#define NCINE_HAS_RGB_LIGHTS
Whether the current platform can drive the RGB lighting of connected devices.
#define NCINE_HAS_WRITABLE_CACHE
Whether the current platform can convert the original game data into a cache of its own.
#define NCINE_CURRENT_FUNCTION
Function name.

Define documentation

#define NCINE_PROTOCOL_VERSION

Application multiplayer protocol version.

Decides whether a client and a server can play together, independently of NCINE_VERSION. Set it to the application version in which the protocol last changed incompatibly — packet types, property types, field layouts or the meaning of a field — and leave it alone for releases that don't touch the wire, so those can still play together.

#define NCINE_HAS_WINDOWS

Whether the current platform supports vibrations of the device.

Whether the current platform has non-fullscreen windows

#define NCINE_HAS_TOUCH_CONTROLS

Whether the current platform can have a touchscreen.

Listed rather than excluded, so a platform that has no touchscreen doesn't acquire one by not being mentioned - which is how the consoles ended up offering to configure touch controls.

#define NCINE_HAS_RGB_LIGHTS

Whether the current platform can drive the RGB lighting of connected devices.

Only Windows (through the Razer Chroma™ SDK) and the web build (through a local bridge) actually do so; the other desktop platforms are included because that is where such a device is plugged in, and where RgbLights could gain a backend without the option having to reappear.

#define NCINE_HAS_WRITABLE_CACHE

Whether the current platform can convert the original game data into a cache of its own.

The Dreamcast and PlayStation 2 play from a disc and the GameCube has nowhere to put a cache the size of a converted installation, and the web build is prepared entirely ahead of time - none of the three can write one, so they consume a content tree prebaked with AssetPacker, skip the conversion altogether and never look for the original game files, which are not there in the first place.

Everywhere else the first-run conversion exists, including the PlayStation Portable and the Wii, where the content sits on a writable memory stick or SD card. Those two are usually given a prebaked tree as well, which is recognized at runtime rather than assumed here, see ContentResolver::IsContentPrebaked().