aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLoic Blot <loic.blot@unix-experience.fr>2021-04-29 09:30:19 +0200
committerLoïc Blot <nerzhul@users.noreply.github.com>2021-05-03 19:49:19 +0200
commitccdd886e273ec2fa5f8cfe1d1f474914eccb2abf (patch)
tree076dd76bafc39c824aaa4e372502514c14d6640a
parenta47a00228b7be97a740081ec9ed86f108021ad6d (diff)
downloadminetest-ccdd886e273ec2fa5f8cfe1d1f474914eccb2abf.tar.gz
minetest-ccdd886e273ec2fa5f8cfe1d1f474914eccb2abf.tar.bz2
minetest-ccdd886e273ec2fa5f8cfe1d1f474914eccb2abf.zip
refacto: Hud: make driver, client, player, inventory, tsrc private & drop unused guienv
also fix c_content.h, on client it includes the src/client/hud.h instead of src/hud.h, which leads to wrong file dependency on the lua stack
-rw-r--r--src/client/game.cpp2
-rw-r--r--src/client/hud.cpp7
-rw-r--r--src/client/hud.h15
-rw-r--r--src/script/common/c_content.h2
4 files changed, 12 insertions, 14 deletions
diff --git a/src/client/game.cpp b/src/client/game.cpp
index aa794a755..81508f5f4 100644
--- a/src/client/game.cpp
+++ b/src/client/game.cpp
@@ -1389,7 +1389,7 @@ bool Game::createClient(const GameStartData &start_data)
player->hurt_tilt_timer = 0;
player->hurt_tilt_strength = 0;
- hud = new Hud(guienv, client, player, &player->inventory);
+ hud = new Hud(client, player, &player->inventory);
mapper = client->getMinimap();
diff --git a/src/client/hud.cpp b/src/client/hud.cpp
index ceea96832..7f044cccd 100644
--- a/src/client/hud.cpp
+++ b/src/client/hud.cpp
@@ -45,11 +45,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#define OBJECT_CROSSHAIR_LINE_SIZE 8
#define CROSSHAIR_LINE_SIZE 10
-Hud::Hud(gui::IGUIEnvironment *guienv, Client *client, LocalPlayer *player,
+Hud::Hud(Client *client, LocalPlayer *player,
Inventory *inventory)
{
driver = RenderingEngine::get_video_driver();
- this->guienv = guienv;
this->client = client;
this->player = player;
this->inventory = inventory;
@@ -315,7 +314,7 @@ bool Hud::calculateScreenPos(const v3s16 &camera_offset, HudElement *e, v2s32 *p
{
v3f w_pos = e->world_pos * BS;
scene::ICameraSceneNode* camera =
- RenderingEngine::get_scene_manager()->getActiveCamera();
+ client->getSceneManager()->getActiveCamera();
w_pos -= intToFloat(camera_offset, BS);
core::matrix4 trans = camera->getProjectionMatrix();
trans *= camera->getViewMatrix();
@@ -475,7 +474,7 @@ void Hud::drawLuaElements(const v3s16 &camera_offset)
// Angle according to camera view
v3f fore(0.f, 0.f, 1.f);
- scene::ICameraSceneNode *cam = RenderingEngine::get_scene_manager()->getActiveCamera();
+ scene::ICameraSceneNode *cam = client->getSceneManager()->getActiveCamera();
cam->getAbsoluteTransformation().rotateVect(fore);
int angle = - fore.getHorizontalAngle().Y;
diff --git a/src/client/hud.h b/src/client/hud.h
index cbfdf1ba3..d341105d2 100644
--- a/src/client/hud.h
+++ b/src/client/hud.h
@@ -35,13 +35,6 @@ struct ItemStack;
class Hud
{
public:
- video::IVideoDriver *driver;
- gui::IGUIEnvironment *guienv;
- Client *client;
- LocalPlayer *player;
- Inventory *inventory;
- ITextureSource *tsrc;
-
video::SColor crosshair_argb;
video::SColor selectionbox_argb;
@@ -54,7 +47,7 @@ public:
bool pointing_at_object = false;
- Hud(gui::IGUIEnvironment *guienv, Client *client, LocalPlayer *player,
+ Hud(Client *client, LocalPlayer *player,
Inventory *inventory);
~Hud();
@@ -105,6 +98,12 @@ private:
void drawCompassRotate(HudElement *e, video::ITexture *texture,
const core::rect<s32> &rect, int way);
+ Client *client = nullptr;
+ video::IVideoDriver *driver = nullptr;
+ LocalPlayer *player = nullptr;
+ Inventory *inventory = nullptr;
+ ITextureSource *tsrc = nullptr;
+
float m_hud_scaling; // cached minetest setting
float m_scale_factor;
v3s16 m_camera_offset;
diff --git a/src/script/common/c_content.h b/src/script/common/c_content.h
index 29d576355..f54490e3a 100644
--- a/src/script/common/c_content.h
+++ b/src/script/common/c_content.h
@@ -39,7 +39,7 @@ extern "C" {
#include "itemgroup.h"
#include "itemdef.h"
#include "c_types.h"
-#include "hud.h"
+#include "../../hud.h"
namespace Json { class Value; }