1// SuperTux
2// Copyright (C) 2004-2018 Ingo Ruhnke <grumbel@gmail.com>
3// Copyright (C) 2006 Christoph Sommer <christoph.sommer@2006.expires.deltadevelopment.de>
4//
5// This program is free software: you can redistribute it and/or modify
6// it under the terms of the GNU General Public License as published by
7// the Free Software Foundation, either version 3 of the License, or
8// (at your option) any later version.
9//
10// This program is distributed in the hope that it will be useful,
11// but WITHOUT ANY WARRANTY; without even the implied warranty of
12// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13// GNU General Public License for more details.
14//
15// You should have received a copy of the GNU General Public License
16// along with this program. If not, see <http://www.gnu.org/licenses/>.
17
18#ifndef HEADER_SUPERTUX_WORLDMAP_WORLDMAP_SCREEN_HPP
19#define HEADER_SUPERTUX_WORLDMAP_WORLDMAP_SCREEN_HPP
20
21#include <memory>
22
23#include "supertux/screen.hpp"
24#include "util/currenton.hpp"
25
26namespace worldmap {
27
28class WorldMap;
29
30class WorldMapScreen final : public Screen,
31 public Currenton<WorldMapScreen>
32{
33public:
34 WorldMapScreen(std::unique_ptr<WorldMap> worldmap);
35 ~WorldMapScreen();
36
37 virtual void setup() override;
38 virtual void leave() override;
39
40 virtual void draw(Compositor& compositor) override;
41 virtual void update(float dt_sec, const Controller& controller) override;
42
43private:
44 std::unique_ptr<WorldMap> m_worldmap;
45
46private:
47 WorldMapScreen(const WorldMapScreen&) = delete;
48 WorldMapScreen& operator=(const WorldMapScreen&) = delete;
49};
50
51} // namespace worldmap
52
53#endif
54
55/* EOF */
56