From 0e781aeacbf0f349c5b592b52b2175d5cc0581c6 Mon Sep 17 00:00:00 2001 From: marxin Date: Tue, 5 Mar 2019 21:18:46 +0100 Subject: [PATCH] Fix #25641 by not shifting a negative value. --- servers/visual/visual_server_viewport.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/servers/visual/visual_server_viewport.h b/servers/visual/visual_server_viewport.h index 4e3015c0201..51765515403 100644 --- a/servers/visual/visual_server_viewport.h +++ b/servers/visual/visual_server_viewport.h @@ -90,7 +90,8 @@ public: } CanvasKey(const RID &p_canvas, int p_layer, int p_sublayer) { canvas = p_canvas; - stacking = ((int64_t)p_layer << 32) + p_sublayer; + int64_t sign = p_layer < 0 ? -1 : 1; + stacking = sign * (((int64_t)ABS(p_layer)) << 32) + p_sublayer; } int get_layer() const { return stacking >> 32; } };