From db3466dbe885f27b87ceca0a4bb115169f844a0c Mon Sep 17 00:00:00 2001 From: gregorycu Date: Wed, 14 Jan 2015 01:19:54 +1100 Subject: Water fixes Change must_reflow to a deque Add overload for MapBlock::raiseModified that takes a const char*. This is a speed improvement. Comment out unused variable Optimisations to block offset calculations --- src/util/numeric.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/util') diff --git a/src/util/numeric.h b/src/util/numeric.h index 098a5631c..db1eb003e 100644 --- a/src/util/numeric.h +++ b/src/util/numeric.h @@ -85,6 +85,26 @@ inline v3s16 getContainerPos(v3s16 p, v3s16 d) ); } +inline void getContainerPosWithOffset(s16 p, s16 d, s16 &container, s16 &offset) +{ + container = (p >= 0 ? p : p - d + 1) / d; + offset = p & (d - 1); +} + +inline void getContainerPosWithOffset(const v2s16 &p, s16 d, v2s16 &container, v2s16 &offset) +{ + getContainerPosWithOffset(p.X, d, container.X, offset.X); + getContainerPosWithOffset(p.Y, d, container.Y, offset.Y); +} + +inline void getContainerPosWithOffset(const v3s16 &p, s16 d, v3s16 &container, v3s16 &offset) +{ + getContainerPosWithOffset(p.X, d, container.X, offset.X); + getContainerPosWithOffset(p.Y, d, container.Y, offset.Y); + getContainerPosWithOffset(p.Z, d, container.Z, offset.Z); +} + + inline bool isInArea(v3s16 p, s16 d) { return ( -- cgit v1.2.3