1// SuperTux
2// Copyright (C) 2008 Wolfgang Becker <uafr@gmx.de>
3// Copyright (C) 2010 Florian Forster <supertux at octo.it>
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_BADGUY_OWL_HPP
19#define HEADER_SUPERTUX_BADGUY_OWL_HPP
20
21#include "badguy/badguy.hpp"
22
23class Portable;
24
25class Owl final : public BadGuy
26{
27public:
28 Owl(const ReaderMapping& reader);
29
30 virtual void initialize() override;
31 virtual void collision_solid(const CollisionHit& hit) override;
32 virtual void kill_fall() override;
33
34 virtual void freeze() override;
35 virtual void unfreeze() override;
36 virtual bool is_freezable() const override;
37 virtual void ignite() override;
38 virtual std::string get_class() const override { return "owl"; }
39 virtual std::string get_display_name() const override { return _("Owl"); }
40 virtual ObjectSettings get_settings() override;
41
42protected:
43 bool is_above_player() const;
44 virtual void active_update (float dt_sec) override;
45 virtual bool collision_squished(GameObject& object) override;
46
47 std::string carried_obj_name;
48 Portable *carried_object;
49
50private:
51 Owl(const Owl&) = delete;
52 Owl& operator=(const Owl&) = delete;
53};
54
55#endif
56
57/* EOF */
58