Initializes our application. Put other things here if you need them.
Defines various states for the control. Mainly used to avoid effects from typematic and such. These are the bare minimum requirements for a game.
Defines various states of the game. I have added some quite useful and very often used ones
Called if an axis input event has occured. Note: This function will be changed once I move input handling and output screen handling to iota.
Called when a controller is added to the system. Note: This function will be changed once I move input handling and output screen handling to iota.
Called when a controller is removed the system. Note: This function will be changed once I move input handling and output screen handling to iota.
Called if a key input event has occured. Note: This function will be changed once I move input handling and output screen handling to iota.
This function will load a map file to display levels, or portions of levels. If you're clever, you can store other things in map files
Collision events can be handled from here.
Called if the window is closed, etd.
Handles audio devices and outputs.
Contains various control state flags
Contains pointer to the game field, so we can easily interact with it.
For input handling.
Stores the currently loaded map file with all related data.
MIDI sequencer for MIDI playback.
Loads and handles module configuration, including routing, patches, and samples.
Handles the modules and their output.
Detects object collisions that were registered to it.
To display our game's graphics
Contains the random number generator and its state.
To manage our layers and palette.
Contains various game state flags (is it running, is it paused, etc).
Contains the pointer to the textlayer. Can be used for the menu, status bars, etc.
I generally like to put most of the application logic into one class to keep track of globals, as well as targets to certain events.