aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--builtin/settingtypes.txt3
-rw-r--r--minetest.conf.example4
-rw-r--r--src/client/camera.cpp5
-rw-r--r--src/defaultsettings.cpp1
-rw-r--r--src/settings_translation_file.cpp2
5 files changed, 14 insertions, 1 deletions
diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt
index caa6e4db3..3ecad57fc 100644
--- a/builtin/settingtypes.txt
+++ b/builtin/settingtypes.txt
@@ -225,6 +225,9 @@ view_bobbing_amount (View bobbing factor) float 1.0 0.0 7.9
# For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double.
fall_bobbing_amount (Fall bobbing factor) float 0.03 0.0 100.0
+# Draw main hand on left side of screen, offhand on right side.
+mirror_hands (Mirror hands) bool false
+
[**Camera]
# Camera 'near clipping plane' distance in nodes, between 0 and 0.25
diff --git a/minetest.conf.example b/minetest.conf.example
index 2f153413a..a9a15e133 100644
--- a/minetest.conf.example
+++ b/minetest.conf.example
@@ -212,6 +212,10 @@
# type: float min: 0 max: 100
# fall_bobbing_amount = 0.03
+# Draw main hand on left side of screen, offhand on right side.
+# type: bool
+# mirror_hands = false
+
### Camera
# Camera 'near clipping plane' distance in nodes, between 0 and 0.25
diff --git a/src/client/camera.cpp b/src/client/camera.cpp
index 5ca4e4908..3b4c2fad8 100644
--- a/src/client/camera.cpp
+++ b/src/client/camera.cpp
@@ -45,7 +45,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#define WIELDMESH_AMPLITUDE_X 7.0f
#define WIELDMESH_AMPLITUDE_Y 10.0f
-#define HANDS (int i = 0, s = +1; i <= 1; i++, s *= -1) // i is index, s is sign
+#define HANDS (int i = 0, s = +1; i <= +1; i++, s = -1, (void) s) // i is index, s is sign
Camera::Camera(MapDrawControl &draw_control, Client *client, RenderingEngine *rendering_engine):
m_draw_control(draw_control),
@@ -529,6 +529,9 @@ void Camera::update(LocalPlayer* player, f32 frametime, f32 tool_reload_ratio)
m_player_light_color = player->light_color;
for HANDS {
+ if (g_settings->getBool("mirror_hands"))
+ s *= -1;
+
// Position the wielded item
//v3f wield_position = v3f(45, -35, 65);
v3f wield_position = v3f(m_wieldmesh_offset.X, m_wieldmesh_offset.Y, 65);
diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp
index 222000712..6320dc6d0 100644
--- a/src/defaultsettings.cpp
+++ b/src/defaultsettings.cpp
@@ -207,6 +207,7 @@ void set_default_settings()
settings->setDefault("enable_clouds", "true");
settings->setDefault("view_bobbing_amount", "1.0");
settings->setDefault("fall_bobbing_amount", "0.03");
+ settings->setDefault("mirror_hands", "false");
settings->setDefault("enable_3d_clouds", "true");
settings->setDefault("cloud_radius", "12");
settings->setDefault("menu_clouds", "true");
diff --git a/src/settings_translation_file.cpp b/src/settings_translation_file.cpp
index 03bb564fb..ad0aaa9b1 100644
--- a/src/settings_translation_file.cpp
+++ b/src/settings_translation_file.cpp
@@ -86,6 +86,8 @@ fake_function() {
gettext("Enable view bobbing and amount of view bobbing.\nFor example: 0 for no view bobbing; 1.0 for normal; 2.0 for double.");
gettext("Fall bobbing factor");
gettext("Multiplier for fall bobbing.\nFor example: 0 for no view bobbing; 1.0 for normal; 2.0 for double.");
+ gettext("Mirror hands");
+ gettext("Draw main hand on left side of screen, offhand on right side.");
gettext("Camera");
gettext("Near plane");
gettext("Camera 'near clipping plane' distance in nodes, between 0 and 0.25\nOnly works on GLES platforms. Most users will not need to change this.\nIncreasing can reduce artifacting on weaker GPUs.\n0.1 = Default, 0.25 = Good value for weaker tablets.");