#ifndef COMPONENTS_H_ #define COMPONENTS_H_ #include #include namespace Ogre { class ImGuiOverlay; } namespace OgreBites { class ApplicationContextSDL; class InputListenerChain; class InputListener; } namespace ECS { struct GameData { int tmp; }; struct EngineData { Ogre::SceneManager *mScnMgr; float delta; float startupDelay; int width; int height; bool enableDbgDraw; }; struct Vector3 { float x; float y; float z; bool zeroLength() const; }; struct Vector2 { float x, y; }; struct Input { uint32_t control; uint32_t control_prev; Vector3 motion; Vector2 mouse; Vector2 mouse_abs; float wheel_y; bool mouse_moved; bool wheel_moved; bool fast; bool act; bool act_pressed; bool act2; bool act2_pressed; Input() : control(0) , control_prev(0) , motion({ 0, 0, 0 }) , fast(false) { } }; struct Camera { Ogre::SceneNode *mCameraNode; Ogre::Camera *mCamera; bool configured; Ogre::SceneNode *mCameraPivot; Ogre::SceneNode *mCameraGoal; Ogre::Real mPivotPitch; }; struct RenderWindow { Ogre::RenderWindow *window; float dpi; }; struct CollisionShape { void *shape; }; struct GroundCheckReady {}; struct Body2Entity { /* std::unordered_map entities; */ }; struct EditorSceneSwitch { int scene; }; } #endif