aboutsummaryrefslogtreecommitdiff
path: root/games/zhlt
diff options
context:
space:
mode:
authorAlexey Dokuchaev <danfe@FreeBSD.org>2016-04-01 15:04:08 +0000
committerAlexey Dokuchaev <danfe@FreeBSD.org>2016-04-01 15:04:08 +0000
commit59f9e439a0f972a58acf5068673321d6d867c378 (patch)
tree5277c8dd4cc2ce469fd7e68de36214e843e38e27 /games/zhlt
parent72ea7e696b763bdbcef04fdbccc122c0364fa567 (diff)
downloadports-59f9e439a0f972a58acf5068673321d6d867c378.tar.gz
ports-59f9e439a0f972a58acf5068673321d6d867c378.zip
Try to unbreak on 64-bit architectures by avoiding casting from pointer to
a smaller type (int) which loses information. Also, reduce imperativeness of the `files/Makefile' while at it. Reported by: pkg-fallout
Notes
Notes: svn path=/head/; revision=412353
Diffstat (limited to 'games/zhlt')
-rw-r--r--games/zhlt/Makefile7
-rw-r--r--games/zhlt/files/Makefile22
-rw-r--r--games/zhlt/files/patch-64bit-fixes322
3 files changed, 340 insertions, 11 deletions
diff --git a/games/zhlt/Makefile b/games/zhlt/Makefile
index 525055dd3ba7..79c63c201497 100644
--- a/games/zhlt/Makefile
+++ b/games/zhlt/Makefile
@@ -12,7 +12,12 @@ COMMENT= Zoner's Half-Life compile tools
USES= dos2unix zip
DOS2UNIX_FILES= common/bspfile.h common/cmdlib.cpp common/mathlib.h \
- common/win32fix.h hlrad/mathutil.cpp
+ common/threads.cpp common/threads.h common/win32fix.h \
+ hlbsp/qbsp.cpp hlcsg/brush.cpp hlcsg/brushunion.cpp \
+ hlcsg/csg.h hlcsg/qcsg.cpp hlrad/lightmap.cpp \
+ hlrad/mathutil.cpp hlrad/qrad.cpp hlrad/qrad.h \
+ hlrad/sparse.cpp hlrad/vismatrix.cpp hlrad/vismatrixutil.cpp \
+ hlvis/flow.cpp hlvis/vis.cpp hlvis/vis.h
MAKEFILE= ${FILESDIR}/Makefile
NO_WRKSUBDIR= yes
diff --git a/games/zhlt/files/Makefile b/games/zhlt/files/Makefile
index 6b269b985ca3..64827dbdeab5 100644
--- a/games/zhlt/files/Makefile
+++ b/games/zhlt/files/Makefile
@@ -1,7 +1,10 @@
+CXXFLAGS+= -Wall -Wextra
CPPFLAGS+= -DSYSTEM_POSIX -DSTDC_HEADERS -DHAVE_SYS_RESOURCE_H \
-DHAVE_SYS_STAT_H -DHAVE_SYS_TIME_H \
-DHAVE_FCNTL_H -DHAVE_UNISTD_H -DDOUBLEVEC_T
-CXXFLAGS+= -Wall -Wextra
+.if $(ARCH:M*64)
+CPPFLAGS+= -DSIZEOF_CHARP=8
+.endif
common_OBJS= common/blockmem.o \
common/bspfile.o \
@@ -16,7 +19,7 @@ common_OBJS= common/blockmem.o \
common/threads.o \
common/winding.o
-hlbsp_OBJ= hlbsp/merge.o \
+hlbsp_OBJS= hlbsp/merge.o \
hlbsp/outside.o \
hlbsp/portals.o \
hlbsp/qbsp.o \
@@ -57,18 +60,17 @@ hlvis_OBJS= hlvis/flow.o \
ripent_OBJS= ripent/ripent.o
-PROGS= hlbsp/hlbsp hlcsg/hlcsg hlrad/hlrad hlvis/hlvis ripent/ripent
-
.cpp.o:
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $@ -c $< -Icommon -Itemplate
-all: $(PROGS)
+all: # force default goal
+
+.for p in hlbsp hlcsg hlrad hlvis ripent
+PROGS+= $(p)/$(p)
+$(p)/$(p): $(common_OBJS) $($(p)_OBJS)
+.endfor
-hlbsp/hlbsp: $(common_OBJS) $(hlbsp_OBJ)
-hlcsg/hlcsg: $(common_OBJS) $(hlcsg_OBJS)
-hlrad/hlrad: $(common_OBJS) $(hlrad_OBJS)
-hlvis/hlvis: $(common_OBJS) $(hlvis_OBJS)
-ripent/ripent: $(common_OBJS) $(ripent_OBJS)
+all: $(PROGS)
$(PROGS):
$(CXX) $(LDFLAGS) -o $@ $> -lpthread
diff --git a/games/zhlt/files/patch-64bit-fixes b/games/zhlt/files/patch-64bit-fixes
new file mode 100644
index 000000000000..ffe6ae4ac2e9
--- /dev/null
+++ b/games/zhlt/files/patch-64bit-fixes
@@ -0,0 +1,322 @@
+--- common/threads.cpp.orig 2016-04-01 13:18:21 UTC
++++ common/threads.cpp
+@@ -180,7 +180,7 @@ q_threadfunction workfunction;
+ #pragma warning(push)
+ #pragma warning(disable: 4100) // unreferenced formal parameter
+ #endif
+-static void ThreadWorkerFunction(int unused)
++static void ThreadWorkerFunction(intptr_t unused)
+ {
+ int work;
+
+@@ -499,7 +499,7 @@ q_threadfunction q_entry;
+
+ static void* CDECL ThreadEntryStub(void* pParam)
+ {
+- q_entry((int)pParam);
++ q_entry((intptr_t)pParam);
+ return NULL;
+ }
+
+--- common/threads.h.orig 2016-04-01 13:18:21 UTC
++++ common/threads.h
+@@ -15,7 +15,7 @@ typedef enum
+ }
+ q_threadpriority;
+
+-typedef void (*q_threadfunction) (int);
++typedef void (*q_threadfunction) (intptr_t);
+
+ #ifdef SYSTEM_WIN32
+ #define DEFAULT_NUMTHREADS -1
+--- hlbsp/qbsp.cpp.orig 2016-04-01 13:18:21 UTC
++++ hlbsp/qbsp.cpp
+@@ -833,7 +833,7 @@ static surfchain_t* ReadSurfs(FILE* file
+ // ProcessModelThreaded
+ // time to compl
+ // =====================================================================================
+-void ProcessModel(int modelnum)
++void ProcessModel(intptr_t modelnum)
+ {
+ surfchain_t* surfs;
+ node_t* nodes;
+--- hlcsg/brush.cpp.orig 2016-04-01 13:18:21 UTC
++++ hlcsg/brush.cpp
+@@ -1075,7 +1075,7 @@ contents_t CheckBrushContents(const
+ // CreateBrush
+ // makes a brush!
+ // =====================================================================================
+-void CreateBrush(const int brushnum)
++void CreateBrush(const intptr_t brushnum)
+ {
+ brush_t* b;
+ int contents;
+--- hlcsg/brushunion.cpp.orig 2016-04-01 13:18:21 UTC
++++ hlcsg/brushunion.cpp
+@@ -252,7 +252,7 @@ static bool isInvalidHull(const brus
+ return false;
+ }
+
+-void CalculateBrushUnions(const int brushnum)
++void CalculateBrushUnions(const intptr_t brushnum)
+ {
+ int bn, hull;
+ brush_t* b1;
+--- hlcsg/csg.h.orig 2016-04-01 13:18:21 UTC
++++ hlcsg/csg.h
+@@ -190,7 +190,7 @@ extern int TexinfoForBrushTexture(c
+ extern brush_t* Brush_LoadEntity(entity_t* ent, int hullnum);
+ extern contents_t CheckBrushContents(const brush_t* const b);
+
+-extern void CreateBrush(int brushnum);
++extern void CreateBrush(intptr_t brushnum);
+
+ //=============================================================================
+ // csg.c
+@@ -253,7 +253,7 @@ extern void HandleWadinclude();
+
+ //=============================================================================
+ // brushunion.c
+-void CalculateBrushUnions(int brushnum);
++void CalculateBrushUnions(intptr_t brushnum);
+
+ //============================================================================
+ // hullfile.cpp
+--- hlcsg/qcsg.cpp.orig 2016-04-01 13:18:21 UTC
++++ hlcsg/qcsg.cpp
+@@ -546,7 +546,7 @@ static bface_t* CopyFacesToOutside(brush
+ // =====================================================================================
+ // CSGBrush
+ // =====================================================================================
+-static void CSGBrush(int brushnum)
++static void CSGBrush(intptr_t brushnum)
+ {
+ int hull;
+ brush_t* b1;
+@@ -1078,7 +1078,7 @@ static void ProcessModels()
+ // =====================================================================================
+ // SetModelCenters
+ // =====================================================================================
+-static void SetModelCenters(int entitynum)
++static void SetModelCenters(intptr_t entitynum)
+ {
+ int i;
+ int last;
+--- hlrad/lightmap.cpp.orig 2016-04-01 13:18:21 UTC
++++ hlrad/lightmap.cpp
+@@ -1786,7 +1786,7 @@ const vec3_t s_circuscolors[] = {
+ // =====================================================================================
+ // BuildFacelights
+ // =====================================================================================
+-void BuildFacelights(const int facenum)
++void BuildFacelights(const intptr_t facenum)
+ {
+ dface_t* f;
+ vec3_t sampled[MAXLIGHTMAPS];
+@@ -2206,7 +2206,7 @@ void PrecompLightmapOffsets()
+ // FinalLightFace
+ // Add the indirect lighting on top of the direct lighting and save into final map format
+ // =====================================================================================
+-void FinalLightFace(const int facenum)
++void FinalLightFace(const intptr_t facenum)
+ {
+ int i, j, k;
+ vec3_t lb, v;
+--- hlrad/qrad.cpp.orig 2016-04-01 13:18:21 UTC
++++ hlrad/qrad.cpp
+@@ -1506,7 +1506,7 @@ static void CollectLight()
+ #pragma warning(push)
+ #pragma warning(disable: 4100) // unreferenced formal parameter
+ #endif
+-static void GatherLight(int threadnum)
++static void GatherLight(intptr_t threadnum)
+ {
+ int j;
+ patch_t* patch;
+@@ -1628,7 +1628,7 @@ static void GatherLight(int threadnu
+
+ // RGB Transfer version
+ #ifdef HLRAD_HULLU
+-static void GatherRGBLight(int threadnum)
++static void GatherRGBLight(intptr_t threadnum)
+ {
+ int j;
+ patch_t* patch;
+--- hlrad/qrad.h.orig 2016-04-01 13:18:21 UTC
++++ hlrad/qrad.h
+@@ -432,9 +432,9 @@ extern float g_softlight_hack_distance;
+
+ extern void MakeTnodes(dmodel_t* bm);
+ extern void PairEdges();
+-extern void BuildFacelights(int facenum);
++extern void BuildFacelights(intptr_t facenum);
+ extern void PrecompLightmapOffsets();
+-extern void FinalLightFace(int facenum);
++extern void FinalLightFace(intptr_t facenum);
+ extern int TestLine(const vec3_t start, const vec3_t stop);
+ extern int TestLine_r(int node, const vec3_t start, const vec3_t stop);
+ extern void CreateDirectLights();
+@@ -468,12 +468,12 @@ extern bool readtransfers(const char
+ extern void writetransfers(const char* const transferfile, long total_patches);
+
+ // vismatrixutil.c (shared between vismatrix.c and sparse.c)
+-extern void SwapTransfers(int patchnum);
+-extern void MakeScales(int threadnum);
++extern void SwapTransfers(intptr_t patchnum);
++extern void MakeScales(intptr_t threadnum);
+ extern void DumpTransfersMemoryUsage();
+ #ifdef HLRAD_HULLU
+-extern void SwapRGBTransfers(int patchnum);
+-extern void MakeRGBScales(int threadnum);
++extern void SwapRGBTransfers(intptr_t patchnum);
++extern void MakeRGBScales(intptr_t threadnum);
+
+ // transparency.c (transparency array functions - shared between vismatrix.c and sparse.c)
+ extern void GetTransparency(const unsigned p1, const unsigned p2, vec3_t &trans, unsigned int &next_index);
+--- hlrad/sparse.cpp.orig 2016-04-01 13:18:21 UTC
++++ hlrad/sparse.cpp
+@@ -339,7 +339,7 @@ static void BuildVisRow(const int pa
+ #pragma warning(push)
+ #pragma warning(disable: 4100) // unreferenced formal parameter
+ #endif
+-static void BuildVisLeafs(int threadnum)
++static void BuildVisLeafs(intptr_t threadnum)
+ {
+ int i;
+ int lface, facenum, facenum2;
+--- hlrad/vismatrix.cpp.orig 2016-04-01 13:18:21 UTC
++++ hlrad/vismatrix.cpp
+@@ -151,7 +151,7 @@ static void BuildVisRow(const int pa
+ #pragma warning(push)
+ #pragma warning(disable: 4100) // unreferenced formal parameter
+ #endif
+-static void BuildVisLeafs(int threadnum)
++static void BuildVisLeafs(intptr_t threadnum)
+ {
+ int i;
+ int lface, facenum, facenum2;
+--- hlrad/vismatrixutil.cpp.orig 2016-04-01 13:18:21 UTC
++++ hlrad/vismatrixutil.cpp
+@@ -190,7 +190,7 @@ static transfer_index_t* CompressTransfe
+ #pragma warning(push)
+ #pragma warning(disable: 4100) // unreferenced formal parameter
+ #endif
+-void MakeScales(const int threadnum)
++void MakeScales(const intptr_t threadnum)
+ {
+ int i;
+ unsigned j;
+@@ -391,7 +391,7 @@ void MakeScales(const int thr
+ * they will actually be rather different.
+ * =============
+ */
+-void SwapTransfers(const int patchnum)
++void SwapTransfers(const intptr_t patchnum)
+ {
+ patch_t* patch = &g_patches[patchnum];
+ transfer_index_t* tIndex = patch->tIndex;
+@@ -456,7 +456,7 @@ void SwapTransfers(const int
+ #pragma warning(push)
+ #pragma warning(disable: 4100) // unreferenced formal parameter
+ #endif
+-void MakeRGBScales(const int threadnum)
++void MakeRGBScales(const intptr_t threadnum)
+ {
+ int i;
+ unsigned j;
+@@ -678,7 +678,7 @@ void MakeRGBScales(const int
+ * they will actually be rather different.
+ * =============
+ */
+-void SwapRGBTransfers(const int patchnum)
++void SwapRGBTransfers(const intptr_t patchnum)
+ {
+ patch_t* patch = &g_patches[patchnum];
+ transfer_index_t* tIndex = patch->tIndex;
+--- hlvis/flow.cpp.orig 2016-04-01 13:18:21 UTC
++++ hlvis/flow.cpp
+@@ -678,7 +678,7 @@ static void SimpleFlood(byte* const
+ // =====================================================================================
+ // BlockVis
+ // =====================================================================================
+-void BlockVis(int unused)
++void BlockVis(intptr_t unused)
+ {
+ int i, j, k, l, m;
+ portal_t *p;
+@@ -1156,7 +1156,7 @@ static float CalcSplitsAndDotProducts(p
+ // =====================================================================================
+ // BasePortalVis
+ // =====================================================================================
+-void BasePortalVis(int unused)
++void BasePortalVis(intptr_t unused)
+ {
+ int i, j, k;
+ portal_t* tp;
+@@ -1242,7 +1242,7 @@ void BasePortalVis(int unused
+ // =====================================================================================
+ // MaxDistVis
+ // =====================================================================================
+-void MaxDistVis(int unused)
++void MaxDistVis(intptr_t unused)
+ {
+ int i, j, k, m;
+ int a, b, c, d;
+--- hlvis/vis.cpp.orig 2016-04-01 13:18:21 UTC
++++ hlvis/vis.cpp
+@@ -213,14 +213,14 @@ static void PlaneFromWinding(winding
+ static winding_t* NewWinding(const int points)
+ {
+ winding_t* w;
+- int size;
++ intptr_t size;
+
+ if (points > MAX_POINTS_ON_WINDING)
+ {
+ Error("NewWinding: %i points > MAX_POINTS_ON_WINDING", points);
+ }
+
+- size = (int)((winding_t*)0)->points[points];
++ size = (intptr_t)((winding_t*)0)->points[points];
+ w = (winding_t*)calloc(1, size);
+
+ return w;
+@@ -463,7 +463,7 @@ void CompressAll(void)
+ #endif
+
+ #ifndef ZHLT_NETVIS
+-static void LeafThread(int unused)
++static void LeafThread(intptr_t unused)
+ {
+ portal_t* p;
+
+@@ -483,7 +483,7 @@ static void LeafThread(int unused)
+
+ #ifdef ZHLT_NETVIS
+
+-static void LeafThread(int unused)
++static void LeafThread(intptr_t unused)
+ {
+ if (g_vismode == VIS_MODE_CLIENT)
+ {
+--- hlvis/vis.h.orig 2016-04-01 13:18:21 UTC
++++ hlvis/vis.h
+@@ -184,14 +184,14 @@ extern volatile int g_vislocalpercent;
+
+ extern Zones* g_Zones;
+
+-extern void BasePortalVis(int threadnum);
++extern void BasePortalVis(intptr_t threadnum);
+
+
+ #ifdef HLVIS_MAXDIST // AJM: MVD
+ extern visblocker_t *GetVisBlock(char *name);
+-extern void BlockVis(int unused);
+-extern void MaxDistVis(int threadnum);
+-//extern void PostMaxDistVis(int threadnum);
++extern void BlockVis(intptr_t unused);
++extern void MaxDistVis(intptr_t threadnum);
++//extern void PostMaxDistVis(intptr_t threadnum);
+ #endif
+
+ extern void PortalFlow(portal_t* p);