+Vector
+WorldMap::get_camera_pos_for_tux() {
+ Vector camera_offset;
+ Vector tux_pos = tux->get_pos();
+ camera_offset.x = tux_pos.x - SCREEN_WIDTH/2;
+ camera_offset.y = tux_pos.y - SCREEN_HEIGHT/2;
+ return camera_offset;
+}
+
+void
+WorldMap::clamp_camera_position(Vector& c) {
+ if (c.x < 0)
+ c.x = 0;
+ if (c.y < 0)
+ c.y = 0;
+
+ if (c.x > (int)get_width()*32 - SCREEN_WIDTH)
+ c.x = (int)get_width()*32 - SCREEN_WIDTH;
+ if (c.y > (int)get_height()*32 - SCREEN_HEIGHT)
+ c.y = (int)get_height()*32 - SCREEN_HEIGHT;
+
+ if (int(get_width()*32) < SCREEN_WIDTH)
+ c.x = get_width()*16.0 - SCREEN_WIDTH/2.0;
+ if (int(get_height()*32) < SCREEN_HEIGHT)
+ c.y = get_height()*16.0 - SCREEN_HEIGHT/2.0;
+}
+