]> git.lizzy.rs Git - minetest.git/blobdiff - src/hud.h
Don't use msvc libs for mingw build
[minetest.git] / src / hud.h
index c7289f7c4f79244b963f17cd6ef00266c3c960f0..c69867a23506b7123f8d9dfcc6889666a4ec5cd7 100644 (file)
--- a/src/hud.h
+++ b/src/hud.h
@@ -21,6 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #define HUD_HEADER
 
 #include "irrlichttypes_extrabloated.h"
+#include <string>
 
 #define HUD_DIR_LEFT_RIGHT 0
 #define HUD_DIR_RIGHT_LEFT 1
@@ -38,12 +39,12 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #define HUD_FLAG_BREATHBAR_VISIBLE (1 << 4)
 
 #define HUD_PARAM_HOTBAR_ITEMCOUNT 1
+#define HUD_PARAM_HOTBAR_IMAGE 2
+#define HUD_PARAM_HOTBAR_SELECTED_IMAGE 3
 
 #define HUD_HOTBAR_ITEMCOUNT_DEFAULT 8
 #define HUD_HOTBAR_ITEMCOUNT_MAX     23
 
-class Player;
-
 enum HudElementType {
        HUD_ELEM_IMAGE     = 0,
        HUD_ELEM_TEXT      = 1,
@@ -76,23 +77,18 @@ struct HudElement {
        v2f offset;
 };
 
-
-inline u32 hud_get_free_id(Player *player) {
-       size_t size = player->hud.size();
-       for (size_t i = 0; i != size; i++) {
-               if (!player->hud[i])
-                       return i;
-       }
-       return size;
-}
-
 #ifndef SERVER
 
+#include <vector>
 #include <IGUIFont.h>
+#include "irr_aabb3d.h"
 
-#include "gamedef.h"
-#include "inventory.h"
-#include "localplayer.h"
+class IGameDef;
+class ITextureSource;
+class Inventory;
+class InventoryList;
+class LocalPlayer;
+struct ItemStack;
 
 class Hud {
 public:
@@ -112,6 +108,10 @@ class Hud {
        video::SColor crosshair_argb;
        video::SColor selectionbox_argb;
        bool use_crosshair_image;
+       std::string hotbar_image;
+       bool use_hotbar_image;
+       std::string hotbar_selected_image;
+       bool use_hotbar_selected_image;
        
        Hud(video::IVideoDriver *driver, gui::IGUIEnvironment* guienv,
                gui::IGUIFont *font, u32 text_height, IGameDef *gamedef,
@@ -130,6 +130,14 @@ class Hud {
        void drawSelectionBoxes(std::vector<aabb3f> &hilightboxes);
 };
 
+void drawItemStack(video::IVideoDriver *driver,
+               gui::IGUIFont *font,
+               const ItemStack &item,
+               const core::rect<s32> &rect,
+               const core::rect<s32> *clip,
+               IGameDef *gamedef);
+
+
 #endif
 
 #endif