51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#ifndef HUD_HEADER
-#define HUD_HEADER
+#pragma once
#include "irrlichttypes_extrabloated.h"
#include <string>
// Note that these visibility flags do not determine if the hud items are
// actually drawn, but rather, whether to draw the item should the rest
// of the game state permit it.
-#define HUD_FLAG_HOTBAR_VISIBLE (1 << 0)
-#define HUD_FLAG_HEALTHBAR_VISIBLE (1 << 1)
-#define HUD_FLAG_CROSSHAIR_VISIBLE (1 << 2)
-#define HUD_FLAG_WIELDITEM_VISIBLE (1 << 3)
-#define HUD_FLAG_BREATHBAR_VISIBLE (1 << 4)
-#define HUD_FLAG_MINIMAP_VISIBLE (1 << 5)
+#define HUD_FLAG_HOTBAR_VISIBLE (1 << 0)
+#define HUD_FLAG_HEALTHBAR_VISIBLE (1 << 1)
+#define HUD_FLAG_CROSSHAIR_VISIBLE (1 << 2)
+#define HUD_FLAG_WIELDITEM_VISIBLE (1 << 3)
+#define HUD_FLAG_BREATHBAR_VISIBLE (1 << 4)
+#define HUD_FLAG_MINIMAP_VISIBLE (1 << 5)
+#define HUD_FLAG_MINIMAP_RADAR_VISIBLE (1 << 6)
#define HUD_PARAM_HOTBAR_ITEMCOUNT 1
#define HUD_PARAM_HOTBAR_IMAGE 2
#include <IGUIFont.h>
#include "irr_aabb3d.h"
-class IGameDef;
+class Client;
class ITextureSource;
class Inventory;
class InventoryList;
video::IVideoDriver *driver;
scene::ISceneManager* smgr;
gui::IGUIEnvironment *guienv;
- IGameDef *gamedef;
+ Client *client;
LocalPlayer *player;
Inventory *inventory;
ITextureSource *tsrc;
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,scene::ISceneManager* smgr,
- gui::IGUIEnvironment* guienv, IGameDef *gamedef, LocalPlayer *player,
+ bool use_crosshair_image = false;
+ std::string hotbar_image = "";
+ bool use_hotbar_image = false;
+ std::string hotbar_selected_image = "";
+ bool use_hotbar_selected_image = false;
+
+ Hud(gui::IGUIEnvironment *guienv, Client *client, LocalPlayer *player,
Inventory *inventory);
~Hud();
v3f m_selection_pos;
v3f m_selection_pos_with_offset;
- scene::IMesh* m_selection_mesh;
+ scene::IMesh *m_selection_mesh = nullptr;
video::SColor m_selection_mesh_color;
v3f m_selected_face_normal;
video::SMaterial m_selection_material;
- bool m_use_selection_mesh;
+
+ enum {
+ HIGHLIGHT_BOX,
+ HIGHLIGHT_HALO,
+ HIGHLIGHT_NONE } m_mode;
};
enum ItemRotationKind {
const ItemStack &item,
const core::rect<s32> &rect,
const core::rect<s32> *clip,
- IGameDef *gamedef,
+ Client *client,
ItemRotationKind rotation_kind);
#endif
-
-#endif