Repository navigation
Changes from 0.9.0:
C++ Changes:
- GLEW is now initialised using the default window, decoupling it from utility/ImGuiUtils.
- Added error handling when calling a GameScene's on_init_, on_loop_ and on_quit_ functions.
- Added support for AnimationFrames in the utility/ConversionUtils functions.
- Added the GameWindow class, which manages a single Window and can be assigned a GameScene to run.
- Moved close logic from Window into GameWindow.
- Amended the default window to quit the program when closed.
- Moved quit event checking into the application logic.
- Moved object flagging behaviour into a Flaggable class, which is inherited by game objects/resources.
- Split Background into an Image resource usertype, and a Background usertype managed by a GameWindow.
- Tweaked GameObjects to store a CharacterMap, rather than a vector of Characters.
- Added user-supplied callbacks to GameScene for when a scene is loaded, unloaded or running.
- Added protection when calling Lua functions throughout the codebase.
- Fixed multiple bugs, notably:
- Multiple "Could not find game window with ID" errors when starting the application.
- Segmentation fault when parsing invalid CLI arguments.
- Searching for a Font with an empty string causes a segmentation fault.
- Checks in EventListener and TimedFunction for if the user-supplied callback is valid.
Lua Changes:
- Quit() and GameScene:Quit() now return
voidinstead ofbool. - In functions where the name of a GameScene/resource is given, the object itself can also be supplied.
- Added more type validation when setting properties of BoxObject, InputObject, LineObject, MenuObject and TextObject instances.
- Added buildable forms using FormObject, with multiple types of control:
- Text inputs using TextControl
- Number inputs with increment buttons using NumberControl
- Checkboxes/radio buttons using CheckboxControl
- Dropdown inputs using DropdownControl
- Enabled vON and JSON (de)serialisation of CharacterMap-type objects.
- Added the option to remove resources.
- Added a variety of form control-related game objects, with optional validation functions.
- Moved the contents of common/readonly into common/overrides, and added an override to type() to allow users to get the type of extended GameObjects.