diff --git a/src/lib/core/EntityAdmin.h b/src/lib/core/EntityAdmin.h index bdf70d4..a5772ff 100644 --- a/src/lib/core/EntityAdmin.h +++ b/src/lib/core/EntityAdmin.h @@ -28,7 +28,7 @@ public: void forEach(Func&& f) const; template - bool hasAll(entt::entity entity); + bool hasAll(entt::entity entity) const; template T& get(entt::entity entity); @@ -101,7 +101,7 @@ void EntityAdmin::forEach(Func&& f) const } template -bool EntityAdmin::hasAll(entt::entity entity) +bool EntityAdmin::hasAll(entt::entity entity) const { return m_registry.all_of(entity); } diff --git a/src/ui/SelectionBounds.cpp b/src/ui/SelectionBounds.cpp index 52c734c..b3ea85a 100644 --- a/src/ui/SelectionBounds.cpp +++ b/src/ui/SelectionBounds.cpp @@ -42,7 +42,7 @@ std::optional getBuildingWidgetRect(const FactoryState& state, return std::nullopt; } -std::optional getActorWidgetRect(EntityAdmin& admin, +std::optional getActorWidgetRect(const EntityAdmin& admin, const WorldCoordinates& coordinates, entt::entity actor) { @@ -68,7 +68,7 @@ std::optional getActorWidgetRect(EntityAdmin& admin, return std::nullopt; } -std::optional getDebrisWidgetRect(EntityAdmin& admin, +std::optional getDebrisWidgetRect(const EntityAdmin& admin, const WorldCoordinates& coordinates, entt::entity debris) { @@ -82,7 +82,7 @@ std::optional getDebrisWidgetRect(EntityAdmin& admin, return QRectF(center.x() - radius, center.y() - radius, 2.0 * radius, 2.0 * radius); } -QRect getSelectionWidgetRect(Simulation& sim, const WorldCoordinates& coordinates, +QRect getSelectionWidgetRect(const Simulation& sim, const WorldCoordinates& coordinates, const std::vector& buildings, const std::vector& actors, const std::vector& debris) diff --git a/src/ui/SelectionBounds.h b/src/ui/SelectionBounds.h index 60c34e6..6c34b23 100644 --- a/src/ui/SelectionBounds.h +++ b/src/ui/SelectionBounds.h @@ -29,22 +29,20 @@ std::optional getBuildingWidgetRect(const FactoryState& state, BuildingId id); // The body of a ship or of a defence station (REQ-UI-ENTITY-CLICK-SELECT): a station's -// footprint, or the square the ship's triangle is drawn in. The admin is taken by -// non-const reference only because EntityAdmin::hasAll() is not const; nothing here -// writes to it. -std::optional getActorWidgetRect(EntityAdmin& admin, +// footprint, or the square the ship's triangle is drawn in. +std::optional getActorWidgetRect(const EntityAdmin& admin, const WorldCoordinates& coordinates, entt::entity actor); // The circle a piece of debris is drawn as (REQ-UI-DEBRIS-CLICK-SELECT). -std::optional getDebrisWidgetRect(EntityAdmin& admin, +std::optional getDebrisWidgetRect(const EntityAdmin& admin, const WorldCoordinates& coordinates, entt::entity debris); // The rectangle covering a whole selection -- one object, or the bounding box of all of // them (REQ-UI-SELECTION-PANEL). Objects that no longer resolve are skipped; the result // is null when none of them does. -QRect getSelectionWidgetRect(Simulation& sim, const WorldCoordinates& coordinates, +QRect getSelectionWidgetRect(const Simulation& sim, const WorldCoordinates& coordinates, const std::vector& buildings, const std::vector& actors, const std::vector& debris);