1 /* Copyright (C) 2013-2014 Michal Brzozowski (rusolis@poczta.fm) 2 3 This file is part of KeeperRL. 4 5 KeeperRL is free software; you can redistribute it and/or modify it under the terms of the 6 GNU General Public License as published by the Free Software Foundation; either version 2 7 of the License, or (at your option) any later version. 8 9 KeeperRL is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 10 even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 GNU General Public License for more details. 12 13 You should have received a copy of the GNU General Public License along with this program. 14 If not, see http://www.gnu.org/licenses/ . */ 15 16 #pragma once 17 18 #include "enums.h" 19 #include "level.h" 20 21 class Vision { 22 public: Vision()23 Vision() {} 24 VisionId getId() const; 25 bool canSeeAt(double light, double distance) const; 26 void update(WConstCreature); 27 28 template <class Archive> 29 void serialize(Archive& ar, const unsigned int version); 30 31 private: 32 VisionId SERIAL(id) = VisionId::NORMAL; 33 bool SERIAL(nightVision) = false; 34 }; 35