Vegastrike 0.5.1 rc1  1.0
Original sources for Vegastrike Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
masks.cpp
Go to the documentation of this file.
1 #include "masks.h"
2 
3 bool checkbit( int &number, int bit_number )
4 {
5  if ( (bit_number > 31) || (bit_number < 0) )
6  return 0;
7  if ( ( number&(1<<bit_number) ) != 0 )
8  return 1;
9 
10  else
11  return 0;
12 }
13 
14 void dosetbit( int &number, int bit_number )
15 {
16  if ( (bit_number > 31) || (bit_number < 0) )
17  return;
18  number = ( number|(1<<bit_number) );
19 }
20 
21 void unsetbit( int &number, int bit_number )
22 {
23  if ( (bit_number > 31) || (bit_number < 0) )
24  return;
25  int temp = 0;
26  if (bit_number != 0)
27  temp = ( ( 0xffffffff<<(bit_number+1) )|( 0xffffffff>>(32-bit_number) ) );
28  else
29  temp = ( 0xffffffff<<(bit_number+1) );
30  number = number&temp;
31 }
32 
33 void flipbit( int &number, int bit_number )
34 {
35  if ( (bit_number > 31) || (bit_number < 0) )
36  return;
37  if (checkbit( number, bit_number ) == 1)
38  unsetbit( number, bit_number );
39  else
40  dosetbit( number, bit_number );
41 }
42 
43 float Delta( float a, float b )
44 {
45  float ans = a-b;
46  if (ans < 0)
47  return -1.0*ans;
48  else
49  return ans;
50 }
51