Wednesday, August 21, 2019

fix games/xevil on sparc64

Hi

With this patch I can build and play xevil on sparc64. I don't
understand the intricacies of the C++ headers that allow defining
min/max macros to work on amd64 but not on sparc64. It doesn't matter
since we can just delete the macro min/max and use the STL one (not a
macro) and cast the types appropriately.

Still works on amd64 too.

diff --git games/xevil/Makefile games/xevil/Makefile
index 7aa1780b9e7..a93de58c013 100644
--- games/xevil/Makefile
+++ games/xevil/Makefile
@@ -9,7 +9,7 @@ COMMENT= side-view, fast-action, kill everything type of game
V= 2.02r2
DISTNAME= xevilsrc${V}
PKGNAME= xevil-${V}
-REVISION = 7
+REVISION = 8

CATEGORIES= games

diff --git games/xevil/patches/patch-cmn_game_cpp games/xevil/patches/patch-cmn_game_cpp
index fc02245f785..0d0d767fa2d 100644
--- games/xevil/patches/patch-cmn_game_cpp
+++ games/xevil/patches/patch-cmn_game_cpp
@@ -19,3 +19,21 @@ Index: cmn/game.cpp

#include "utils.h"
#include "coord.h"
+@@ -566,7 +567,7 @@ void GameObjects::level_reset(const Dim &worldDim,Game
+
+ // Don't allow objectWorldPercent values that are too small.
+ float objWPercent = (float)max(weapons[n]->objectWorldPercent,
+- OBJECT_WORLD_PERCENT_MIN);
++ (float)OBJECT_WORLD_PERCENT_MIN);
+
+ maximums[weapons[n]->classId] = (int)ceil(areaFactor * objWPercent);
+ // A limit may be placed on how many times the object comes back
+@@ -579,7 +580,7 @@ void GameObjects::level_reset(const Dim &worldDim,Game
+ // Check not already set.
+ assert(maximums[oItems[n]->classId] == 0);
+ float objWPercent = (float)max(oItems[n]->objectWorldPercent,
+- OBJECT_WORLD_PERCENT_MIN);
++ (float)OBJECT_WORLD_PERCENT_MIN);
+
+ maximums[oItems[n]->classId] = (int)ceil(areaFactor * objWPercent);
+ levelMaxTimes[oItems[n]->classId] = oItems[n]->levelMaxTimes;
diff --git games/xevil/patches/patch-cmn_utils_h games/xevil/patches/patch-cmn_utils_h
index 934c82e8c92..920edbc1b9b 100644
--- games/xevil/patches/patch-cmn_utils_h
+++ games/xevil/patches/patch-cmn_utils_h
@@ -1,10 +1,26 @@
$OpenBSD: patch-cmn_utils_h,v 1.1 2017/05/02 23:26:32 espie Exp $
+Don't #define min and max, conflicts with STL non-macro definitions.
+
If you're going to wrap C++ functions, you need both const correct wrappers.

Index: cmn/utils.h
--- cmn/utils.h.orig
+++ cmn/utils.h
-@@ -237,13 +237,22 @@ class Utils {
+@@ -98,13 +98,6 @@ extern "C" {
+ #define MSEC_PER_CLOCK (1.0e3 / CLOCKS_PER_SEC)
+

No comments:

Post a Comment