#pragma once #include #include #include #include class Scene { protected: bool Paused = false; Hud* HeadsUpDisplay = nullptr; std::vector FixedList{}; std::vector EntityList{}; public: [[nodiscard]] bool EntityListContains(const Entity* entity) const; [[nodiscard]] bool FixedListContains(const Fixed* fixed) const; [[nodiscard]] size_t FixedCount() const; [[nodiscard]] size_t EntityCount() const; public: void AppendEntity(Entity* entity); void AppendFixed(Fixed* fixed); // Removes and deallocates. void DestroyEntity(Entity* entity); void DestroyFixed(Fixed* fixed); // Only removes from the list. void RemoveEntity(Entity* entity); void RemoveFixed(Fixed* fixed); virtual void Init() {} virtual void Update(); virtual void Render(); public: Scene() = default; virtual ~Scene(); };