/******************* step14.h *******************/ #ifndef __step14_h #define __step14_h #define ORDERING_TABLE_LENGTH (12) #define MAX_NO_PACKETS (102400) #define TRUE (1) #define FALSE (0) #define GROUNDMAX_X (30) #define GROUNDMAX_Z (30) #define GROUNDSIZE (1200) #define GROUNDSIZEDIV2 (GROUNDSIZE/2) #define PLAYER_PRECISION 2 #define WORLD_GROUND_PRECISION 1 #define WORLD_OVERLAY_PRECISION 2 #define SCREEN_WIDTH (320) #define SCREEN_HEIGHT (240) #define CLIPXWIDTH 5 #define CLIPZWIDTH 5 #define MIN(a,b) ( ((a) > (b)) ? (b) : (a)) #define MAX(a,b) ( ((a) > (b)) ? (a) : (b)) #define NUM_ENEMIES 10 #define limitrange(x, l, h) ( (x) = ( (x)<(l)?(l):(x)>(h)?(h):(x) ) ) #define PLAYER_START_X 3600 #define PLAYER_START_Y -200 #define PLAYER_START_Z 3600 #define ENEMY_START_X (GROUNDMAX_X/2)*GROUNDSIZE #define ENEMY_START_Y -100 #define ENEMY_START_Z (GROUNDMAX_Z/2)*GROUNDSIZE // sound macros #define InitialiseSound(vh,vb) \ SsVabTransfer((u_char*) (vh), (u_char*) (vb), -1, 1) #define PlaySound(v,p,t,n) \ SsUtKeyOn((v),(p),(t), (n), 0, 128, 128) #define StopSound()\ SsUtAllKeyOff(0) int CurrentBuffer; #define RenderPrepare()\ GsSetRefView2(&ViewPoint);\ CurrentBuffer=GsGetActiveBuff(); \ GsSetWorkBase((PACKET*)Packet_Memory[CurrentBuffer]);\ GsClearOt(0, 0, &OTable_Header[CurrentBuffer]); #define RenderFinish()\ DrawSync(0);\ GsSwapDispBuff(); \ GsSortClear(0, 0, 0,&OTable_Header[CurrentBuffer]); \ GsDrawOt(&OTable_Header[CurrentBuffer]); // We need two Ordering Table Headers, one for each buffer GsOT OTable_Header[2]; // And we need Two Ordering Tables, one for each buffer GsOT_TAG OTable_Array[2][1<