Skip to content

Release 1.0.0

Latest

Choose a tag to compare

@JamesHoltom JamesHoltom released this 12 Mar 23:49
· 3 commits to master since this release
6c8257d

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 void instead of bool.
  • 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.