From f8d1bc4536c657a9d093282750c2d90ea3245c73 Mon Sep 17 00:00:00 2001
From: dizzy <dizone@gmail.com>
Date: Mon, 9 Jan 2006 20:58:15 +0000
Subject: [PATCH] Changed from using old C style numeric limits to the new C++
 style ones. Removed old min/max macros and use the std:: <algorithm> template
 functions.

---
 pvpgn/src/common/d2cs_d2dbs_ladder.h |  4 ++--
 pvpgn/src/d2cs/connection.cpp        |  1 -
 pvpgn/src/d2cs/d2charfile.cpp        |  3 ++-
 pvpgn/src/d2cs/d2gs.cpp              | 10 +++++-----
 pvpgn/src/d2cs/d2ladder.cpp          |  5 +++--
 pvpgn/src/d2cs/setup.h               |  7 -------
 6 files changed, 12 insertions(+), 18 deletions(-)

diff --git a/pvpgn/src/common/d2cs_d2dbs_ladder.h b/pvpgn/src/common/d2cs_d2dbs_ladder.h
index 9537805..04b0818 100644
--- a/pvpgn/src/common/d2cs_d2dbs_ladder.h
+++ b/pvpgn/src/common/d2cs_d2dbs_ladder.h
@@ -55,7 +55,7 @@ typedef struct
 #define D2LADDER_STD_OVERALL		0x09
 #define D2LADDER_EXP_HC_OVERALL		0x13
 #define D2LADDER_EXP_STD_OVERALL	0x1B
-#define D2CHAR_CLASS_MAX		0x04
-#define D2CHAR_EXP_CLASS_MAX		0x06
+const unsigned D2CHAR_CLASS_MAX = 0x04;
+const unsigned D2CHAR_EXP_CLASS_MAX = 0x06;
 
 #endif
diff --git a/pvpgn/src/d2cs/connection.cpp b/pvpgn/src/d2cs/connection.cpp
index 7566b2e..58c4780 100644
--- a/pvpgn/src/d2cs/connection.cpp
+++ b/pvpgn/src/d2cs/connection.cpp
@@ -21,7 +21,6 @@
 
 #include <cctype>
 #include <cstring>
-#include <climits>
 #include <ctime>
 #include <cassert>
 
diff --git a/pvpgn/src/d2cs/d2charfile.cpp b/pvpgn/src/d2cs/d2charfile.cpp
index 36f3fb5..f6ec113 100644
--- a/pvpgn/src/d2cs/d2charfile.cpp
+++ b/pvpgn/src/d2cs/d2charfile.cpp
@@ -19,6 +19,7 @@
 #include "setup.h"
 #include "d2charfile.h"
 
+#include <algorithm>
 #include <cstring>
 #include <ctime>
 #include <cstdio>
@@ -766,7 +767,7 @@ extern int file_read(char const * filename, void * data, unsigned int * size)
 
 	std::fseek(fp,0,SEEK_END); /* FIXME: check return value */
 	n=std::ftell(fp);
-	n=min(*size,n);
+	n=std::min(*size,n);
 	std::rewind(fp); /* FIXME: check return value */
 
 	if (std::fread(data,1,n,fp)!=n) {
diff --git a/pvpgn/src/d2cs/d2gs.cpp b/pvpgn/src/d2cs/d2gs.cpp
index cda898e..7ea6381 100644
--- a/pvpgn/src/d2cs/d2gs.cpp
+++ b/pvpgn/src/d2cs/d2gs.cpp
@@ -19,9 +19,9 @@
 #include "setup.h"
 #include "d2gs.h"
 
+#include <limits>
 #include <cstdlib>
 #include <ctime>
-#include <climits>
 #include <cstring>
 
 #include "compat/psock.h"
@@ -364,14 +364,14 @@ extern unsigned int d2gs_calc_checksum(t_connection * c)
 	len=std::strlen(realmname);
 	for (i=0; i<len ; i++) {
 		ch = (unsigned int)(unsigned char) realmname[i];
-		checksum ^= ROTL(sessionnum,i, sizeof(unsigned int) * CHAR_BIT);
-		checksum ^= ROTL(port , ch, sizeof(unsigned int) * CHAR_BIT);
+		checksum ^= ROTL(sessionnum,i, (std::numeric_limits<unsigned int>::digits));
+		checksum ^= ROTL(port , ch, (std::numeric_limits<unsigned int>::digits));
 	}
 	len=std::strlen(password);
 	for (i=0; i<len ; i++) {
 		ch = (unsigned int)(unsigned char) password[i];
-		checksum ^= ROTL(sessionnum,i, sizeof(unsigned int) * CHAR_BIT);
-		checksum ^= ROTL(port , ch, sizeof(unsigned int) * CHAR_BIT);
+		checksum ^= ROTL(sessionnum,i, (std::numeric_limits<unsigned int>::digits));
+		checksum ^= ROTL(port , ch, (std::numeric_limits<unsigned int>::digits));
 	}
 	checksum ^= addr;
 	return checksum;
diff --git a/pvpgn/src/d2cs/d2ladder.cpp b/pvpgn/src/d2cs/d2ladder.cpp
index c81edc0..9e5fe75 100644
--- a/pvpgn/src/d2cs/d2ladder.cpp
+++ b/pvpgn/src/d2cs/d2ladder.cpp
@@ -20,6 +20,7 @@
 #include "setup.h"
 #include "d2ladder.h"
 
+#include <algorithm>
 #include <cstdio>
 #include <cstring>
 #include <cerrno>
@@ -180,9 +181,9 @@ static int d2ladder_append_ladder(unsigned int type, t_d2ladderfile_ladderinfo *
 	}
 	if (charstatus_get_expansion(status)) {
 		ladderstatus |= LADDERSTATUS_FLAG_EXPANSION;
-		ladderstatus |= min(chclass,D2CHAR_EXP_CLASS_MAX);
+		ladderstatus |= std::min<unsigned>(chclass,D2CHAR_EXP_CLASS_MAX);
 	} else {
-		ladderstatus |= min(chclass,D2CHAR_CLASS_MAX);
+		ladderstatus |= std::min<unsigned>(chclass,D2CHAR_CLASS_MAX);
 	}
 	ladderinfo=ladder_data[type].info+ladder_data[type].curr_len;
 	bn_int_set(&ladderinfo->explow, bn_int_get(info->experience));
diff --git a/pvpgn/src/d2cs/setup.h b/pvpgn/src/d2cs/setup.h
index 857aeef..c3c7c2f 100644
--- a/pvpgn/src/d2cs/setup.h
+++ b/pvpgn/src/d2cs/setup.h
@@ -18,13 +18,6 @@
 #ifndef INCLUDED_D2CS_SETUP_H
 #define INCLUDED_D2CS_SETUP_H
 
-#ifndef min
-#  define min(a,b) (((a)>(b))?(b):(a))
-#endif
-#ifndef max
-# define max(a,b) (((a)>(b))?(a):(b))
-#endif
-
 #define tf(a)	 ((a)?1:0)
 
 #define strcmp_charname		strcasecmp