// 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 __VIEWPORT_H__
-#define __VIEWPORT_H__
+
+#ifndef SUPERTUX_CAMERA_H
+#define SUPERTUX_CAMERA_H
#include <vector>
-#include "vector.h"
-#include "game_object.h"
-#include "serializable.h"
#include <cassert>
+#include "defines.h"
+#include "math/vector.h"
+#include "special/game_object.h"
+#include "video/drawing_context.h"
+#include "serializable.h"
+
+using namespace SuperTux;
+
+namespace SuperTux {
class LispReader;
-class Player;
-class Level;
+}
+
+class Sector;
class Camera : public GameObject, public Serializable
{
public:
- Camera(Player* player = 0, Level* level = 0);
+ Camera(Sector* sector);
virtual ~Camera();
/// parse camera mode from lisp file
/// write camera mode to a lisp file
virtual void write(LispWriter& writer);
+ /// reset camera postion
+ virtual void reset(const Vector& tuxpos);
+
/** @deprecated@ */
const Vector& get_translation() const;
virtual void action(float elapsed_time);
- virtual void draw(DrawingContext& context)
+ virtual void draw(DrawingContext& )
+ {
+ }
+
+ void set_scrolling(int scroll_x, int scroll_y)
{
- (void) context;
+ translation.x = scroll_x;
+ translation.y = scroll_y;
}
enum CameraMode
Vector translation;
- Player* player;
- Level* level;
+ Sector* sector;
// normal mode
bool do_backscrolling;
Vector current_dir;
};
-#endif
+#endif /*SUPERTUX_CAMERA_H*/