updated header | added new natives from new small sdk
This commit is contained in:
		| @@ -1,35 +1,74 @@ | |||||||
| /* Float arithmetic | /* Float arithmetic | ||||||
|  * | * | ||||||
|  * (c) Copyright 1999, Artran, Inc. | * (c) Copyright 1999, Artran, Inc. | ||||||
|  * Written by Greg Garner (gmg@artran.com) | *  Written by Greg Garner (gmg@artran.com) | ||||||
|  * Modified in March 2001 to include user defined | *  Modified in March 2001 to include user defined | ||||||
|  * operators for the floating point functions. | *  operators for the floating point functions. | ||||||
|  * | * | ||||||
|  * This file is provided as is (no warranties). | * This file is provided as is (no warranties). | ||||||
|  */ | */ | ||||||
|  |  | ||||||
| #if defined _float_included |  | ||||||
|   #endinput |  | ||||||
| #endif |  | ||||||
| #define _float_included |  | ||||||
|  |  | ||||||
| native Float:float(value); |  | ||||||
| native Float:floatstr(const string[]); |  | ||||||
| native Float:floatmul(Float:oper1, Float:oper2); |  | ||||||
| native Float:floatdiv(Float:dividend, Float:divisor); |  | ||||||
| native Float:floatadd(Float:dividend, Float:divisor); |  | ||||||
| native Float:floatsub(Float:oper1, Float:oper2); |  | ||||||
| native Float:floatfract(Float:value); |  | ||||||
|  |  | ||||||
|  | /* Different methods of rounding */ | ||||||
| enum floatround_method { | enum floatround_method { | ||||||
|   floatround_round, | 	floatround_round = 0, | ||||||
| 	floatround_floor, | 	floatround_floor, | ||||||
|   floatround_ceil | 	floatround_ceil, | ||||||
|  | 	floatround_tozero | ||||||
| } | } | ||||||
|  |  | ||||||
|  | enum anglemode { | ||||||
|  | 	radian = 0, | ||||||
|  | 	degrees, | ||||||
|  | 	grades | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /* Convert an integer into a floating point value */ | ||||||
|  | native Float:float(value); | ||||||
|  |  | ||||||
|  | /* Convert a string into a floating point value */ | ||||||
|  | native Float:floatstr(const string[]); | ||||||
|  |  | ||||||
|  | /* Multiple two floats together */ | ||||||
|  | native Float:floatmul(Float:oper1, Float:oper2); | ||||||
|  |  | ||||||
|  | /* Divide the dividend float by the divisor float */ | ||||||
|  | native Float:floatdiv(Float:dividend, Float:divisor); | ||||||
|  |  | ||||||
|  | /* Add two floats together */ | ||||||
|  | native Float:floatadd(Float:dividend, Float:divisor); | ||||||
|  |  | ||||||
|  | /* Subtract oper2 float from oper1 float */ | ||||||
|  | native Float:floatsub(Float:oper1, Float:oper2); | ||||||
|  |  | ||||||
|  | /* Return the fractional part of a float */ | ||||||
|  | native Float:floatfract(Float:value); | ||||||
|  |  | ||||||
|  | /* Round a float into a integer value */ | ||||||
| native floatround(Float:value, floatround_method:method=floatround_round); | native floatround(Float:value, floatround_method:method=floatround_round); | ||||||
|  |  | ||||||
|  | /* Compare two integers. If the two elements are equal, return 0. | ||||||
|  | * If the first argument is greater than the second argument, return 1, | ||||||
|  | * If the first argument is less than the second argument, return -1. */ | ||||||
| native floatcmp(Float:fOne, Float:fTwo); | native floatcmp(Float:fOne, Float:fTwo); | ||||||
|  |  | ||||||
|  | /* Return the square root of the input value, same as floatpower(value, 0.5) */ | ||||||
|  | native Float:floatsqroot(Float:value); | ||||||
|  |  | ||||||
|  | /* Return the value raised to the power of the exponent */ | ||||||
|  | native Float:floatpower(Float:value, Float:exponent); | ||||||
|  |  | ||||||
|  | /* Return the logarithm */ | ||||||
|  | native Float:floatlog(Float:value, Float:base=10.0); | ||||||
|  |  | ||||||
|  | /* Return the sine, cosine or tangent. | ||||||
|  | * The input angle may be in radian, degrees or grades. */ | ||||||
|  | native Float:floatsin(Float:value, anglemode:mode=radian); | ||||||
|  | native Float:floatcos(Float:value, anglemode:mode=radian); | ||||||
|  | native Float:floattan(Float:value, anglemode:mode=radian); | ||||||
|  |  | ||||||
|  | /* Return the absolute value */ | ||||||
|  | native Float:floatabs(Float:value); | ||||||
|  |  | ||||||
| #pragma rational Float | #pragma rational Float | ||||||
|  |  | ||||||
| /* user defined operators */ | /* user defined operators */ | ||||||
| @@ -114,7 +153,7 @@ stock bool:operator<=(oper1, Float:oper2) | |||||||
| 	return floatcmp(float(oper1), oper2) <= 0; | 	return floatcmp(float(oper1), oper2) <= 0; | ||||||
|  |  | ||||||
| stock bool:operator!(Float:oper) | stock bool:operator!(Float:oper) | ||||||
|     return floatcmp(oper, 0.0) == 0; | 	return (_:oper & 0x7fffffff) == 0; | ||||||
|  |  | ||||||
| /* forbidden operations */ | /* forbidden operations */ | ||||||
| forward operator%(Float:oper1, Float:oper2); | forward operator%(Float:oper1, Float:oper2); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user