Fixed a code collision in a previous attempt at merging Windows and Mac codes, which would prevent the move_to_zero function to work with short types.

Most obvious effects were infinite bless, haste, poison, webs not cleaning, etc

Chokboyz

git-svn-id: http://openexile.googlecode.com/svn/trunk@151 4ebdad44-0ea0-11de-aab3-ff745001d230
This commit is contained in:
Chokboyz
2010-05-25 23:30:07 +00:00
parent b7f759ba0f
commit 4aef873372
4 changed files with 64 additions and 79 deletions

View File

@@ -8,6 +8,8 @@
#include <cstdlib>
#include "mathutil.h"
//minmax, move_to_zero and ex_abs (return absolute value) are templates in the header file
short get_ran (short times,short min,short max){
long int store;
@@ -43,22 +45,6 @@ short min(short a,short b){
else return b;
}
short minmax(short min,short max,short k){
if (k < min)
return min;
if (k > max)
return max;
return k;
}
short move_to_zero(short val){
if (val < 0)
return val + 1;
if (val > 0)
return val - 1;
return val;
}
short gcd(short a, short b){ // Grabbed from Wikipedia and translated to C code
short t;
while(b != 0){

View File

@@ -22,6 +22,23 @@ extern short s_pow(short x,short y);
short s_sqrt(short val);
short max(short a,short b);
short min(short a,short b);
short minmax(short min,short max,short k);
short move_to_zero(short val);
short gcd(short a, short b);
template <class T>
void move_to_zero(T & value)
{
if (value > 0) --value;
else if (value < 0) ++value;
};
template <class T>
T minmax(T min, T max, T k)
{
return (k < min)? min : (k > max)? max : k;
};
template <class T>
T ex_abs(T value)
{
return (value < 0)? (-value) : value;
};