Subject: [bug#52911] [PATCH] gnu: openmw: Update to 0.47.0.

From: Michal Atlas <[email-masked]>
Date: Fri, 31 Dec 2021 00:57:26 +0100

* gnu/packages/game-development.scm (recastnavigation): New variable.

* gnu/packages/game-development.scm (bullet): Added USE_DOUBLE_PRECISION build flag.

* gnu/packages/game-development.scm (openmw): Update to 0.47.0.

---
  gnu/packages/game-development.scm | 41 +++++++++++++++++++++++++++----
  1 file changed, 36 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/game-development.scm 
b/gnu/packages/game-development.scm
index 305c2c2819..443e96f241 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -140,7 +140,8 @@ (define-public bullet
                    #t))))
      (build-system cmake-build-system)
      (arguments
-     '(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON"
+     '(#:configure-flags (list "-DUSE_DOUBLE_PRECISION=ON" // Required 
by OpenMW
+                               "-DBUILD_SHARED_LIBS=ON"
                                 "-DBUILD_CPU_DEMOS=OFF"
                                 "-DBUILD_OPENGL3_DEMOS=OFF"
                                 "-DBUILD_BULLET2_DEMOS=OFF"
@@ -1764,10 +1765,37 @@ (define-public mygui-gl
         (prepend mesa glu)))
      (synopsis "Fast, flexible and simple GUI (OpenGL backend)")))

+(define-public recastnavigation
+  (package (name "recastnavigation")
+       (version "2.0")
+       (source
+        (origin
+         (method git-fetch)
+         (uri (git-reference
+           (url "https://github.com/recastnavigation/recastnavigation")
+           (commit "c5cbd53024c8a9d8d097a4371215e3342d2fdc87")))
+         (file-name (git-file-name name version))
+         (sha256 (base32 
"034bm47gc3r285w1pnvkhmm74zz99d204b1r865gisaiq4qfbza0"))))
+       (build-system cmake-build-system)
+       (inputs `(
+             ("mesa" ,mesa)
+             ("sdl2" ,sdl2)
+             ("glu" ,glu)))
+       (synopsis "Navigation-mesh Toolset for Games")
+       (description "Recast is a navigation mesh construction toolset 
for games.
+@itemize
+@item It is automatic, which means that you can throw any level 
geometry at it and you will get a robust mesh out
+@item It is fast which means swift turnaround times for level designers
+@item It is open source so it comes with full source and you can 
customize it to your heart's content.
+@end itemize
+")
+       (home-page "https://github.com/recastnavigation/recastnavigation")
+       (license license:zlib)))
+
  (define-public openmw
    (package
      (name "openmw")
-    (version "0.46.0")
+    (version "0.47.0")
      (source
       (origin
         (method git-fetch)
@@ -1777,16 +1805,19 @@ (define-public openmw
         (file-name (git-file-name name version))
         (sha256
          (base32
-         "0rm32zsmxvr6b0jjihfj543skhicbw5kg6shjx312clhlm035w2x"))))
+         "19mcbnjl4279qalb97msf965bjax48mx1r1qczyvwhn28h6n3bsy"))))
      (build-system cmake-build-system)
      (arguments
       `(#:tests? #f                      ; No test target
         #:configure-flags
-       (list "-DDESIRED_QT_VERSION=5")))
+       (list "-DDESIRED_QT_VERSION=5"
+             "-DOPENMW_USE_SYSTEM_RECASTNAVIGATION=ON")))
      (native-inputs
       (list boost doxygen pkg-config))
      (inputs
-     `(("bullet" ,bullet)
+     `(("recastnavigation" ,recastnavigation)
+       ("lz4" ,lz4)
+       ("bullet" ,bullet)
         ("ffmpeg" ,ffmpeg)
         ("libxt" ,libxt)
         ("mygui" ,mygui-gl)              ; OpenMW does not need Ogre.
-- 
2.34.1