X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fworld%2FWorld.h;h=9953e465901f3d2bca329fbdbb6d55a40f1395aa;hb=HEAD;hp=8a00f60541302a489d8e34565c916eecea3f7b5d;hpb=ba1cd7abc93eaacc3c25c0ad1b923b2ce7b280e2;p=gworm.git diff --git a/src/world/World.h b/src/world/World.h index 8a00f60..9953e46 100644 --- a/src/world/World.h +++ b/src/world/World.h @@ -24,12 +24,19 @@ public: bool InBounds(Vector pos) const { return pos.x > 0 && pos.y > 0 && pos.x < size.x && pos.y < size.y; } - int Index(Vector pos) const { return pos.x * size.y + pos.y; } + int Index(Vector pos) const { return pos.y * size.x + pos.x; } float MassAt(Vector pos) const { return masses[Index(pos)]; } void SetMass(Vector pos, float m) { masses[Index(pos)] = m; } + Color ColorAt(Vector pos) const { return colors[Index(pos)]; } - void SetColor(Vector pos, Color c) { colors[Index(pos)] = c; } + const Color *GetColors() const { return colors.data(); } + void SetColor(Vector pos, Color c) { + colors[Index(pos)] = c; + colorDirty = true; + } + bool ColorDirty() const { return colorDirty; } + void CleanColor() { colorDirty = false; } const std::list &Entities() const { return entities; } Entity &AddEntity(const Entity &); @@ -45,6 +52,7 @@ private: std::vector masses; std::vector colors; + bool colorDirty; std::list entities;