#pragma once #include "Entity.h" #include "assets/FishAssets.h" #include class Fish : public Entity { private: struct FishAssetRef { int index; FishAsset &asset; }; Fish(const FishAssetRef &ref); static bool initialized; const std::vector ℑ std::vector &mask; static constexpr std::array availableColors = { 'c', 'C', 'r', 'R', 'y', 'Y', 'b', 'B', 'g', 'G', 'm', 'M'}; const float speed; static FishAssetRef getRandomFishAsset(); static void initializeFishAssets(); void randomizeMask(); public: Fish(); void update(); void draw(int layer); };