kaos/KaosSrc/fixed.h

31 lines
1.1 KiB
C
Raw Permalink Normal View History

2024-10-12 20:32:30 -05:00
/************************************************************************
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
************************************************************************/
#define FIXSHIFT 16
#define FIXONE (1l << FIXSHIFT)
#define SGN(x) ((x)>0?1:-1)
#define ABS(x) ((int)(x)>0?(x):-(x))
#define LABS(x) ((long)(x)>0?(x):-(x))
#define fixed long
extern long lshr6(long);
extern long lshl6(long);
extern long lshr8(long);
extern long lshl8(long);
extern int lshr16(fixed);
extern fixed lshl16(int);
extern fixed fixmul(fixed,fixed);
extern fixed fixdiv(fixed,fixed);
extern fixed fixdiv64(fixed a_l,fixed a_h, fixed b);
extern fixed fixdiv64shl16(fixed a, fixed b);
extern fixed fixmuldiv64(fixed a, fixed b, fixed c);
extern fixed fixsqrt(fixed a);
extern fixed fixdist(fixed dx, fixed dy);
extern int intdist(int dex, int dey);