]> git.lizzy.rs Git - minetest.git/blobdiff - src/touchscreengui.cpp
Minimap: Optimise
[minetest.git] / src / touchscreengui.cpp
index f51b2d5fa37561a05fccc6dc8761706e46b58773..8d210c63a843dcd4a77e64de89b009ed21ce1a05 100644 (file)
@@ -177,8 +177,10 @@ void AutoHideButtonBar::init(ISimpleTextureSource* tsrc,
 
 AutoHideButtonBar::~AutoHideButtonBar()
 {
-       m_starter.guibutton->setVisible(false);
-       m_starter.guibutton->drop();
+       if (m_starter.guibutton) {
+               m_starter.guibutton->setVisible(false);
+               m_starter.guibutton->drop();
+       }
 }
 
 void AutoHideButtonBar::addButton(touch_gui_button_id button_id,
@@ -414,7 +416,7 @@ void AutoHideButtonBar::show()
 TouchScreenGUI::TouchScreenGUI(IrrlichtDevice *device, IEventReceiver* receiver):
        m_device(device),
        m_guienv(device->getGUIEnvironment()),
-       m_camera_yaw(0.0),
+       m_camera_yaw_change(0.0),
        m_camera_pitch(0.0),
        m_visible(false),
        m_move_id(-1),
@@ -835,17 +837,11 @@ void TouchScreenGUI::translateEvent(const SEvent &event)
 
                                        /* adapt to similar behaviour as pc screen */
                                        double d         = g_settings->getFloat("mouse_sensitivity") *4;
-                                       double old_yaw   = m_camera_yaw;
+                                       double old_yaw   = m_camera_yaw_change;
                                        double old_pitch = m_camera_pitch;
 
-                                       m_camera_yaw   -= dx * d;
-                                       m_camera_pitch  = MYMIN(MYMAX( m_camera_pitch + (dy * d),-180),180);
-
-                                       while (m_camera_yaw < 0)
-                                               m_camera_yaw += 360;
-
-                                       while (m_camera_yaw > 360)
-                                               m_camera_yaw -= 360;
+                                       m_camera_yaw_change -= dx * d;
+                                       m_camera_pitch = MYMIN(MYMAX(m_camera_pitch + (dy * d), -180), 180);
 
                                        // update shootline
                                        m_shootline = m_device