AutoHideButtonBar::AutoHideButtonBar(IrrlichtDevice *device,
IEventReceiver* receiver) :
- m_texturesource(NULL),
m_driver(device->getVideoDriver()),
m_guienv(device->getGUIEnvironment()),
- m_receiver(receiver),
- m_active(false),
- m_visible(true),
- m_timeout(0),
- m_timeout_value(3),
- m_initialized(false),
- m_dir(AHBB_Dir_Right_Left)
+ m_receiver(receiver)
{
- m_screensize = device->getVideoDriver()->getScreenSize();
-
}
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,
TouchScreenGUI::TouchScreenGUI(IrrlichtDevice *device, IEventReceiver* receiver):
m_device(device),
m_guienv(device->getGUIEnvironment()),
- m_camera_yaw(0.0),
- m_camera_pitch(0.0),
- m_visible(false),
- m_move_id(-1),
m_receiver(receiver),
- m_move_has_really_moved(false),
- m_move_downtime(0),
- m_move_sent_as_mouse_event(false),
- // use some downlocation way off screen as init value to avoid invalid behaviour
- m_move_downlocation(v2s32(-10000, -10000)),
m_settingsbar(device, receiver),
m_rarecontrolsbar(device, receiver)
{
u32 button_size = getGuiButtonSize();
m_visible = true;
m_texturesource = tsrc;
- m_control_pad_rect = rect<s32>(0, m_screensize.Y - 3 * button_size,
- 3 * button_size, m_screensize.Y);
/*
draw control pad
0 1 2
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;
}
/* 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
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;
(!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