From 0fdf24d64ab055a97e488eb3775cc7c721156d3c Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sun, 11 Dec 2016 21:57:43 +0000 Subject: Fix camera jumping on Android when panning past 0/360 mark --- src/touchscreengui.cpp | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) (limited to 'src/touchscreengui.cpp') diff --git a/src/touchscreengui.cpp b/src/touchscreengui.cpp index f51b2d5fa..e3c6a39a9 100644 --- a/src/touchscreengui.cpp +++ b/src/touchscreengui.cpp @@ -414,7 +414,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 +835,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 -- cgit v1.2.3 From 540071002e949dfa7be3999a58be46d75d7631e9 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sun, 11 Dec 2016 22:17:32 +0000 Subject: Fix segfault on startup error on Android --- src/touchscreengui.cpp | 6 ++++-- src/touchscreengui.h | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'src/touchscreengui.cpp') diff --git a/src/touchscreengui.cpp b/src/touchscreengui.cpp index e3c6a39a9..8d210c63a 100644 --- a/src/touchscreengui.cpp +++ b/src/touchscreengui.cpp @@ -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, diff --git a/src/touchscreengui.h b/src/touchscreengui.h index b4de1b032..53fc6d683 100644 --- a/src/touchscreengui.h +++ b/src/touchscreengui.h @@ -75,7 +75,7 @@ struct button_info { float repeatdelay; irr::EKEY_CODE keycode; std::vector ids; - IGUIButton* guibutton; + IGUIButton* guibutton = NULL; bool immediate_release; }; -- cgit v1.2.3