From 85c66cad08b23b358ba9f553b2da36ddf545c069 Mon Sep 17 00:00:00 2001 From: Kp Date: Sun, 3 Mar 2013 01:03:33 +0000 Subject: [PATCH] Move */include/maths.h -> common/include/maths.h --- {d1x-rebirth => common}/include/maths.h | 0 d2x-rebirth/include/maths.h | 121 ------------------------ 2 files changed, 121 deletions(-) rename {d1x-rebirth => common}/include/maths.h (100%) delete mode 100644 d2x-rebirth/include/maths.h diff --git a/d1x-rebirth/include/maths.h b/common/include/maths.h similarity index 100% rename from d1x-rebirth/include/maths.h rename to common/include/maths.h diff --git a/d2x-rebirth/include/maths.h b/d2x-rebirth/include/maths.h deleted file mode 100644 index 910997d4f..000000000 --- a/d2x-rebirth/include/maths.h +++ /dev/null @@ -1,121 +0,0 @@ -/* Maths.h library header file */ - -#ifndef _MATHS_H -#define _MATHS_H - -#include -#include "pstypes.h" - - - -#define D_RAND_MAX 32767 - -void d_srand (unsigned int seed); -int d_rand (); // Random number function which returns in the range 0-0x7FFF - - -//=============================== FIXED POINT =============================== - -typedef int64_t fix64; //64 bits int, for timers -typedef int32_t fix; //16 bits int, 16 bits frac -typedef int16_t fixang; //angles - -typedef struct quadint // integer 64 bit, previously called "quad" - { - u_int32_t low; - int32_t high; - } -quadint; - - -//Convert an int to a fix/fix64 and back -#define i2f(i) ((i)<<16) -#define f2i(f) ((f)>>16) - -//Get the int part of a fix, with rounding -#define f2ir(f) (((f)+f0_5)>>16) - -//Convert fix to float and float to fix -#define f2fl(f) (((float) (f)) / 65536.0) -#define f2db(f) (((double) (f)) / 65536.0) -#define fl2f(f) ((fix) ((f) * 65536)) - -//Some handy constants -#define f0_0 0 -#define f1_0 0x10000 -#define f2_0 0x20000 -#define f3_0 0x30000 -#define f10_0 0xa0000 - -#define f0_5 0x8000 -#define f0_1 0x199a - -#define F0_0 f0_0 -#define F1_0 f1_0 -#define F2_0 f2_0 -#define F3_0 f3_0 -#define F10_0 f10_0 - -#define F0_5 f0_5 -#define F0_1 f0_1 - -//multiply two fixes, return a fix(64) -fix fixmul (fix a, fix b); -fix64 fixmul64 (fix a, fix b); - -//divide two fixes, return a fix -fix fixdiv (fix a, fix b); - -//multiply two fixes, then divide by a third, return a fix -fix fixmuldiv (fix a, fix b, fix c); - -//multiply two fixes, and add 64-bit product to a quadint -void fixmulaccum (quadint * q, fix a, fix b); - -//extract a fix from a quadint product -fix fixquadadjust (quadint * q); - -//divide a quadint by a long -int32_t fixdivquadlong (u_int32_t qlow, u_int32_t qhigh, u_int32_t d); - -//negate a quadint -void fixquadnegate (quadint * q); - -//computes the square root of a long, returning a short -ushort long_sqrt (int32_t a); - -//computes the square root of a quadint, returning a long -u_int32_t quad_sqrt (u_int32_t low, int32_t high); -//unsigned long quad_sqrt (long low, long high); - -//computes the square root of a fix, returning a fix -fix fix_sqrt (fix a); - -//compute sine and cosine of an angle, filling in the variables -//either of the pointers can be NULL -void fix_sincos (fix a, fix * s, fix * c); //with interpolation - -void fix_fastsincos (fix a, fix * s, fix * c); //no interpolation - -//compute inverse sine & cosine -fixang fix_asin (fix v); - -fixang fix_acos (fix v); - -//given cos & sin of an angle, return that angle. -//parms need not be normalized, that is, the ratio of the parms cos/sin must -//equal the ratio of the actual cos & sin for the result angle, but the parms -//need not be the actual cos & sin. -//NOTE: this is different from the standard C atan2, since it is left-handed. -fixang fix_atan2 (fix cos, fix sin); - -//for passed value a, returns 1/sqrt(a) -fix fix_isqrt (fix a); - -extern const ubyte guess_table[]; -extern const short sincos_table[]; -extern const ushort asin_table[]; -extern const ushort acos_table[]; -extern const fix isqrt_guess_table[]; - -#endif