]> git.localhorst.tv Git - blobs.git/blobdiff - src/ui/CreaturePanel.hpp
track top ten for each record
[blobs.git] / src / ui / CreaturePanel.hpp
index e3df0417ce68f81e980bb192f31d332bf2652f98..be1234828384d3f8a80901ae0f2d917dd8a73ca5 100644 (file)
@@ -3,6 +3,8 @@
 
 #include "Panel.hpp"
 
+#include <vector>
+
 
 namespace blobs {
 namespace app {
@@ -22,7 +24,7 @@ class Meter;
 class CreaturePanel {
 
 public:
-       explicit CreaturePanel(const app::Assets &);
+       explicit CreaturePanel(app::Assets &);
        ~CreaturePanel();
 
        CreaturePanel(const CreaturePanel &) = delete;
@@ -35,27 +37,32 @@ public:
        void Show(creature::Creature &);
        void Hide() noexcept;
 
-       void Draw(app::Assets &, graphics::Viewport &) noexcept;
+       bool Shown() const noexcept { return c; }
+       const creature::Creature &GetCreature() const noexcept { return *c; }
 
-private:
-       void CreateNeeds();
+       void ZIndex(float z) noexcept { panel.ZIndex(z); }
+
+       void Draw(graphics::Viewport &) noexcept;
 
 private:
-       const app::Assets &assets;
+       app::Assets &assets;
        creature::Creature *c;
 
        Label *name;
+       Label *parents;
+       Label *born;
        Label *age;
        Label *mass;
+       Label *goal;
        Label *pos;
        Label *tile;
-       Label *goal;
-       Panel *needs;
+       Label *head;
+       Panel *composition;
+       std::vector<Label *> components;
+       Meter *stats[7];
+       Label *props[9];
        Panel panel;
 
-       Meter *health_meter;
-       std::vector<Meter *> need_meters;
-
 };
 
 }