class LocalPlayer;
struct MapDrawControl;
-class IGameDef;
+class Client;
class WieldMeshSceneNode;
struct Nametag {
{
public:
Camera(scene::ISceneManager* smgr, MapDrawControl& draw_control,
- IGameDef *gamedef);
+ Client *client);
~Camera();
// Get player scene node.
void update(LocalPlayer* player, f32 frametime, f32 busytime,
f32 tool_reload_ratio, ClientEnvironment &c_env);
- // Render distance feedback loop
- void updateViewingRange(f32 frametime_in, f32 busytime_in);
+ // Update render distance
+ void updateViewingRange();
// Start digging animation
// Pass 0 for left click, 1 for right click
else
m_camera_mode = CAMERA_MODE_FIRST;
}
-
+
+ // Set the current camera mode
+ inline void setCameraMode(CameraMode mode)
+ {
+ m_camera_mode = mode;
+ }
+
//read the current camera mode
inline CameraMode getCameraMode()
{
void removeNametag(Nametag *nametag);
- std::list<Nametag *> *getNametags()
- { return &m_nametags; }
+ const std::list<Nametag *> &getNametags() { return m_nametags; }
void drawNametags();
// draw control
MapDrawControl& m_draw_control;
- IGameDef *m_gamedef;
+ Client *m_client;
video::IVideoDriver *m_driver;
// Absolute camera position
f32 m_fov_x;
f32 m_fov_y;
- // Stuff for viewing range calculations
- f32 m_added_busytime;
- s16 m_added_frames;
- f32 m_range_old;
- f32 m_busytime_old;
- f32 m_frametime_counter;
- f32 m_time_per_range;
-
// View bobbing animation frame (0 <= m_view_bobbing_anim < 1)
f32 m_view_bobbing_anim;
// If 0, view bobbing is off (e.g. player is standing).
f32 m_cache_fall_bobbing_amount;
f32 m_cache_view_bobbing_amount;
- f32 m_cache_wanted_fps;
f32 m_cache_fov;
- bool m_cache_view_bobbing;
+ f32 m_cache_zoom_fov;
std::list<Nametag *> m_nametags;
};