/**************************************************************/
/**  C++ code Copyright (C) Nick V. King <nking@eworld.com>  **/
/**************************************************************/

#include <headers_mac.h>

#include <stdio.h>

#define volatile

#define PI 3.141592654

#define SIGN(x) (((x) < 0) ? -1 : (((x) > 0) ? 1 : 0))
#define MAX(x,y) ((x)<(y) ? (y):(x))
#define MIN(x,y) ((x)>(y) ? (y):(x))
#define SQR(x) ((x) * (x))

extern char* ltoa(long, char*, int);

typedef short int16;
typedef long int32;
typedef unsigned short uint16;
typedef unsigned long uint32;
typedef unsigned int uint;

#define read_binary(x,y) \
	fread(&(y), sizeof((y)), 1, (x))
   
#define START(x) \
	fseek((x),0,0)
	
#define END(x) \
	fseek((x),0,2)
  
#define destroy(x) \
	if (x) delete (x); \
	(x) = 0

#define destroy_array(x) \
	if (x) delete [] (x) \

#define TEST(result, value, message) \
	if ((result) != (value)) \
		fatal_error((message))
		
void yield(void);

#define BIG_ARRAY(type) big_array_##type
#define BIG_MULTI_ARRAY(type) big_multi_array_##type
#define BIG_2_ARRAY(type) big_2_array_##type
#define BIG_4_ARRAY(type) big_4_array_##type

void write_binary(FILE*, char);
void write_binary(FILE*, byte);
void write_binary(FILE*, int16);
void write_binary(FILE*, uint16);
void write_binary(FILE*, uint32);

/***********/
/**  End  **/
/***********/