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