]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/drawscene.cpp
Add option to give every object a nametag
[dragonfireclient.git] / src / drawscene.cpp
index b089e71e697015e014e3286b0d34c29df4ce7cb0..509f341d5741dec798bbf732a1533e3c5739648b 100644 (file)
@@ -18,12 +18,12 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 */
 
 #include "drawscene.h"
-#include "main.h" // for g_settings
 #include "settings.h"
 #include "clouds.h"
 #include "clientmap.h"
 #include "util/timetaker.h"
 #include "fontengine.h"
+#include "guiscalingfilter.h"
 
 typedef enum {
        LEFT = -1,
@@ -324,19 +324,19 @@ void draw_sidebyside_3d_mode(Camera& camera, bool show_hud,
        //makeColorKeyTexture mirrors texture so we do it twice to get it right again
        driver->makeColorKeyTexture(hudtexture, irr::video::SColor(255, 0, 0, 0));
 
-       driver->draw2DImage(left_image,
+       draw2DImageFilterScaled(driver, left_image,
                        irr::core::rect<s32>(0, 0, screensize.X/2, screensize.Y),
                        irr::core::rect<s32>(0, 0, screensize.X, screensize.Y), 0, 0, false);
 
-       driver->draw2DImage(hudtexture,
+       draw2DImageFilterScaled(driver, hudtexture,
                        irr::core::rect<s32>(0, 0, screensize.X/2, screensize.Y),
                        irr::core::rect<s32>(0, 0, screensize.X, screensize.Y), 0, 0, true);
 
-       driver->draw2DImage(right_image,
+       draw2DImageFilterScaled(driver, right_image,
                        irr::core::rect<s32>(screensize.X/2, 0, screensize.X, screensize.Y),
                        irr::core::rect<s32>(0, 0, screensize.X, screensize.Y), 0, 0, false);
 
-       driver->draw2DImage(hudtexture,
+       draw2DImageFilterScaled(driver, hudtexture,
                        irr::core::rect<s32>(screensize.X/2, 0, screensize.X, screensize.Y),
                        irr::core::rect<s32>(0, 0, screensize.X, screensize.Y), 0, 0, true);
 
@@ -380,19 +380,19 @@ void draw_top_bottom_3d_mode(Camera& camera, bool show_hud,
        //makeColorKeyTexture mirrors texture so we do it twice to get it right again
        driver->makeColorKeyTexture(hudtexture, irr::video::SColor(255, 0, 0, 0));
 
-       driver->draw2DImage(left_image,
+       draw2DImageFilterScaled(driver, left_image,
                        irr::core::rect<s32>(0, 0, screensize.X, screensize.Y/2),
                        irr::core::rect<s32>(0, 0, screensize.X, screensize.Y), 0, 0, false);
 
-       driver->draw2DImage(hudtexture,
+       draw2DImageFilterScaled(driver, hudtexture,
                        irr::core::rect<s32>(0, 0, screensize.X, screensize.Y/2),
                        irr::core::rect<s32>(0, 0, screensize.X, screensize.Y), 0, 0, true);
 
-       driver->draw2DImage(right_image,
+       draw2DImageFilterScaled(driver, right_image,
                        irr::core::rect<s32>(0, screensize.Y/2, screensize.X, screensize.Y),
                        irr::core::rect<s32>(0, 0, screensize.X, screensize.Y), 0, 0, false);
 
-       driver->draw2DImage(hudtexture,
+       draw2DImageFilterScaled(driver, hudtexture,
                        irr::core::rect<s32>(0, screensize.Y/2, screensize.X, screensize.Y),
                        irr::core::rect<s32>(0, 0, screensize.X, screensize.Y), 0, 0, true);
 
@@ -416,10 +416,11 @@ void draw_plain(Camera& camera, bool show_hud, Hud& hud,
                camera.drawWieldedTool();
 }
 
-void draw_scene(video::IVideoDriver* driver, scene::ISceneManager* smgr,
-               Camera& camera, Client& client, LocalPlayer* player, Hud& hud,
-               gui::IGUIEnvironment* guienv, std::vector<aabb3f> hilightboxes,
-               const v2u32& screensize, video::SColor skycolor, bool show_hud)
+void draw_scene(video::IVideoDriver *driver, scene::ISceneManager *smgr,
+               Camera &camera, Client& client, LocalPlayer *player, Hud &hud,
+               Mapper &mapper, gui::IGUIEnvironment *guienv,
+               std::vector<aabb3f> hilightboxes, const v2u32 &screensize,
+               video::SColor skycolor, bool show_hud, bool show_minimap)
 {
        TimeTaker timer("smgr");
 
@@ -484,6 +485,8 @@ void draw_scene(video::IVideoDriver* driver, scene::ISceneManager* smgr,
                        hud.drawCrosshair();
                hud.drawHotbar(client.getPlayerItem());
                hud.drawLuaElements(camera.getOffset());
+               if (show_minimap)
+                       mapper.drawMinimap();
        }
 
        guienv->drawAll();