X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fobject%2Fcamera.hpp;h=53aecb73e47b6e4cb0ecdbccc49c995ee0d722cb;hb=8eff855963e2699763d0d653dabc9b709f0d2ab0;hp=061fe4d1b26a87313b1cdc8788f9042b75d229dc;hpb=08ccb17345a52f5ffd8a5dd6ecf675cad55f16a7;p=supertux.git diff --git a/src/object/camera.hpp b/src/object/camera.hpp index 061fe4d1b..53aecb73e 100644 --- a/src/object/camera.hpp +++ b/src/object/camera.hpp @@ -1,12 +1,10 @@ -// $Id$ -// // SuperTux // Copyright (C) 2006 Matthias Braun // -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -14,41 +12,33 @@ // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -#ifndef SUPERTUX_CAMERA_H -#define SUPERTUX_CAMERA_H +// along with this program. If not, see . + +#ifndef HEADER_SUPERTUX_OBJECT_CAMERA_HPP +#define HEADER_SUPERTUX_OBJECT_CAMERA_HPP -#include -#include #include #include "math/vector.hpp" -#include "game_object.hpp" -#include "video/drawing_context.hpp" -#include "serializable.hpp" -#include "timer.hpp" -#include "script_interface.hpp" - -namespace lisp { -class Lisp; -} +#include "supertux/game_object.hpp" +#include "supertux/script_interface.hpp" +#include "supertux/timer.hpp" +#include "util/reader_fwd.hpp" class Sector; class Path; class PathWalker; class CameraConfig; -class Camera : public GameObject, public Serializable, public ScriptInterface +class Camera : public GameObject, + public ScriptInterface { public: Camera(Sector* sector, std::string name = ""); virtual ~Camera(); /// parse camera mode from lisp file - void parse(const lisp::Lisp& reader); - /// write camera mode to a lisp file - virtual void write(lisp::Writer& writer); + void parse(const Reader& reader); /// reset camera position void reset(const Vector& tuxpos); @@ -98,6 +88,7 @@ private: void keep_in_bounds(Vector& vector); void shake(); +private: /** * The camera basically provides lookahead on the left or right side * or is undecided. @@ -106,6 +97,7 @@ private: LOOKAHEAD_NONE, LOOKAHEAD_LEFT, LOOKAHEAD_RIGHT }; +private: Vector translation; Sector* sector; @@ -118,8 +110,8 @@ private: Vector cached_translation; // autoscroll mode - std::auto_ptr autoscroll_path; - std::auto_ptr autoscroll_walker; + std::unique_ptr autoscroll_path; + std::unique_ptr autoscroll_walker; // shaking Timer shaketimer; @@ -134,6 +126,12 @@ private: float scrollspeed; CameraConfig *config; + +private: + Camera(const Camera&); + Camera& operator=(const Camera&); }; #endif /*SUPERTUX_CAMERA_H*/ + +/* EOF */