diff options
author | sapier <Sapier at GMX dot net> | 2014-04-05 14:12:36 +0200 |
---|---|---|
committer | sapier <Sapier at GMX dot net> | 2014-04-27 21:53:13 +0200 |
commit | 1838a3fd696782b1733a435bbb25accf3e40d1f3 (patch) | |
tree | 9edee41b26d5307b1d2e4626e65bb372a3d8cab7 /src/game.cpp | |
parent | 8d315347100f1d261bb496b6c73f8cab5d2b7a41 (diff) | |
download | minetest-1838a3fd696782b1733a435bbb25accf3e40d1f3.tar.gz minetest-1838a3fd696782b1733a435bbb25accf3e40d1f3.tar.bz2 minetest-1838a3fd696782b1733a435bbb25accf3e40d1f3.zip |
Add support for dpi based HUD scaling
Add support for (configurable) multiline hotbar
Improved screensize handling
Add userdefined gui scale by BlockMen
Diffstat (limited to 'src/game.cpp')
-rw-r--r-- | src/game.cpp | 26 |
1 files changed, 9 insertions, 17 deletions
diff --git a/src/game.cpp b/src/game.cpp index 2d6205140..bcf59fb26 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -1099,7 +1099,6 @@ void the_game(bool &kill, bool random_input, InputHandler *input, // Calculate text height using the font u32 text_height = font->getDimension(L"Random test string").Height; - v2u32 last_screensize(0,0); v2u32 screensize = driver->getScreenSize(); /* @@ -1842,15 +1841,6 @@ void the_game(bool &kill, bool random_input, InputHandler *input, /* Random calculations */ - last_screensize = screensize; - screensize = driver->getScreenSize(); - v2s32 displaycenter(screensize.X/2,screensize.Y/2); - //bool screensize_changed = screensize != last_screensize; - - - // Update HUD values - hud.screensize = screensize; - hud.displaycenter = displaycenter; hud.resizeHotbar(); // Hilight boxes collected during the loop and displayed @@ -2267,10 +2257,11 @@ void the_game(bool &kill, bool random_input, InputHandler *input, first_loop_after_window_activation = false; } else{ - s32 dx = input->getMousePos().X - displaycenter.X; - s32 dy = input->getMousePos().Y - displaycenter.Y; - if(invert_mouse || player->camera_mode == CAMERA_MODE_THIRD_FRONT) + s32 dx = input->getMousePos().X - (driver->getScreenSize().Width/2); + s32 dy = input->getMousePos().Y - (driver->getScreenSize().Height/2); + if(invert_mouse || player->camera_mode == CAMERA_MODE_THIRD_FRONT) { dy = -dy; + } //infostream<<"window active, pos difference "<<dx<<","<<dy<<std::endl; /*const float keyspeed = 500; @@ -2292,7 +2283,8 @@ void the_game(bool &kill, bool random_input, InputHandler *input, turn_amount = v2f(dx, dy).getLength() * d; } - input->setMousePos(displaycenter.X, displaycenter.Y); + input->setMousePos((driver->getScreenSize().Width/2), + (driver->getScreenSize().Height/2)); } else{ // Mac OSX gets upset if this is set every frame @@ -2657,7 +2649,7 @@ void the_game(bool &kill, bool random_input, InputHandler *input, } player->camera_mode = current_camera_mode; tool_reload_ratio = MYMIN(tool_reload_ratio, 1.0); - camera.update(player, dtime, busytime, screensize, tool_reload_ratio, + camera.update(player, dtime, busytime, tool_reload_ratio, current_camera_mode, client.getEnv()); camera.step(dtime); @@ -3538,8 +3530,8 @@ void the_game(bool &kill, bool random_input, InputHandler *input, */ if (show_hud) { - hud.drawHotbar(v2s32(displaycenter.X, screensize.Y), - client.getHP(), client.getPlayerItem(), client.getBreath()); + hud.drawHotbar(client.getHP(), client.getPlayerItem(), + client.getBreath()); } /* |