input manager provides ground of truth on device input choise
This commit is contained in:
21
lib/game.h
21
lib/game.h
@@ -12,6 +12,9 @@
|
||||
#include "display/low_level_render.h"
|
||||
#include "display/low_level_gui.h"
|
||||
|
||||
// Forward declaration
|
||||
class InputManager;
|
||||
|
||||
/**
|
||||
* @brief Abstract base class for all games
|
||||
*
|
||||
@@ -31,9 +34,10 @@ public:
|
||||
* @param height Display height in pixels
|
||||
* @param renderer Pointer to low-level rendering interface
|
||||
* @param gui Pointer to GUI drawing primitives
|
||||
* @param input_manager Pointer to input manager for capability queries
|
||||
*/
|
||||
Game(uint16_t width, uint16_t height, LowLevelRenderer* renderer, LowLevelGUI* gui)
|
||||
: width(width), height(height), renderer(renderer), gui(gui) {
|
||||
Game(uint16_t width, uint16_t height, LowLevelRenderer* renderer, LowLevelGUI* gui, InputManager* input_manager)
|
||||
: width(width), height(height), renderer(renderer), gui(gui), input_manager(input_manager) {
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -68,6 +72,16 @@ public:
|
||||
* The actual screen refresh happens in the main loop on Core 1.
|
||||
*/
|
||||
virtual void draw() = 0;
|
||||
|
||||
/**
|
||||
* @brief Check if game wants to exit back to launcher
|
||||
*
|
||||
* Games can override this to signal they want to return to the menu.
|
||||
* Default implementation returns false.
|
||||
*
|
||||
* @return true if game wants to exit, false to continue playing
|
||||
*/
|
||||
virtual bool wants_to_exit() const { return false; }
|
||||
|
||||
protected:
|
||||
// Display dimensions
|
||||
@@ -77,6 +91,9 @@ protected:
|
||||
// Rendering interfaces (provided by basic1.cpp)
|
||||
LowLevelRenderer* renderer;
|
||||
LowLevelGUI* gui;
|
||||
|
||||
// Input manager for capability queries
|
||||
InputManager* input_manager;
|
||||
};
|
||||
|
||||
#endif // GAME_H
|
||||
|
||||
Reference in New Issue
Block a user