Tooltips: Unify the tooltip[] and list[] description tooltip display functions (...
[oweals/minetest.git] / src / touchscreengui.cpp
index f51b2d5fa37561a05fccc6dc8761706e46b58773..0139b8c4f8aa91914790448077529881deaddaeb 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),
@@ -792,7 +794,7 @@ void TouchScreenGUI::translateEvent(const SEvent &event)
                        if (m_move_id == -1) {
                                m_move_id                  = event.TouchInput.ID;
                                m_move_has_really_moved    = false;
-                               m_move_downtime            = getTimeMs();
+                               m_move_downtime            = porting::getTimeMs();
                                m_move_downlocation        = v2s32(event.TouchInput.X, event.TouchInput.Y);
                                m_move_sent_as_mouse_event = false;
                        }
@@ -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
@@ -926,7 +922,7 @@ bool TouchScreenGUI::doubleTapDetection()
        m_key_events[1].x         = m_move_downlocation.X;
        m_key_events[1].y         = m_move_downlocation.Y;
 
-       u32 delta = porting::getDeltaMs(m_key_events[0].down_time, getTimeMs());
+       u64 delta = porting::getDeltaMs(m_key_events[0].down_time, porting::getTimeMs());
        if (delta > 400)
                return false;
 
@@ -1010,7 +1006,7 @@ void TouchScreenGUI::step(float dtime)
                        (!m_move_has_really_moved) &&
                        (!m_move_sent_as_mouse_event)) {
 
-               u32 delta = porting::getDeltaMs(m_move_downtime,getTimeMs());
+               u64 delta = porting::getDeltaMs(m_move_downtime, porting::getTimeMs());
 
                if (delta > MIN_DIG_TIME_MS) {
                        m_shootline = m_device