036060d917e1e8f7810d3d661cd3718c58686260
[supertux.git] / src / scripting / camera.hpp
1 //  SuperTux
2 //  Copyright (C) 2006 Matthias Braun <matze@braunis.de>
3 //
4 //  This program is free software: you can redistribute it and/or modify
5 //  it under the terms of the GNU General Public License as published by
6 //  the Free Software Foundation, either version 3 of the License, or
7 //  (at your option) any later version.
8 //
9 //  This program is distributed in the hope that it will be useful,
10 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
11 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 //  GNU General Public License for more details.
13 //
14 //  You should have received a copy of the GNU General Public License
15 //  along with this program.  If not, see <http://www.gnu.org/licenses/>.
16
17 #ifndef HEADER_SUPERTUX_SCRIPTING_CAMERA_HPP
18 #define HEADER_SUPERTUX_SCRIPTING_CAMERA_HPP
19
20 #ifndef SCRIPTING_API
21 class Camera;
22 typedef Camera _Camera;
23 #endif
24
25 namespace Scripting {
26
27 class Camera
28 {
29 public:
30 #ifndef SCRIPTING_API
31   Camera(_Camera* camera);
32   ~Camera();
33 #endif
34
35   void reload_config();
36
37   /** Shake the camera */
38   void shake(float speed, float x, float y);
39   /** Set camera to a specific coordinate */
40   void set_pos(float x, float y);
41   /** Set camera to a specific mode, can be "normal", "manual" */
42   void set_mode(const std::string& mode);
43   /** Scroll camera to position x,y in scrolltime seconds */
44   void scroll_to(float x, float y, float scrolltime);
45
46 #ifndef SCRIPTING_API
47   _Camera* camera;
48
49 private:
50   Camera(const Camera&);
51   Camera& operator=(const Camera&);
52 #endif
53 };
54
55 }
56
57 #endif
58
59 /* EOF */