MAZE_STD.H
#ifndef __MAZE_STD_H__ 
#define __MAZE_STD_H__ 
 
#include <stdlib.h> 
#include <stdio.h> 
#include <string.h> 
 
#include "fixed.h" 
#include "genmaze.h" 
#include "sscommon.h" 
 
#ifdef __cplusplus 
extern "C" { 
#endif 
 
typedef struct _IntPt2 
{ 
    int x, y; 
} IntPt2; 
 
#define DIR_RIGHT 0 
#define DIR_UP 1 
#define DIR_LEFT 2 
#define DIR_DOWN 3 
#define DIR_COUNT 4 
 
typedef struct 
{ 
    TEXTURE  *pTex;   // ptr to texture 
    IPOINT2D texRep;  // texture repetition in s and t directions 
    BOOL     bPalRot; // whether should rotate texture palette 
    int      iPalRot; // current palette rotation start point 
    BOOL     bTransp; // transparency on/off for RGBA textures 
} TEX_ENV; 
 
typedef struct _MazeView 
{ 
    FxPt2 pos; 
    FaAngle ang; 
} MazeView; 
 
#define RENDER_NONE     0 
#define RENDER_FLAT     1 
#define RENDER_SMOOTH   2 
#define RENDER_TEXTURED 3 
#define RENDER_COUNT    4 
 
// surfaces 
enum { 
    WALLS = 0, 
    FLOOR, 
    CEILING, 
    NUM_SURFACES 
}; 
 
// default surface textures 
enum { 
    BRICK_TEXTURE = 0, 
    WOOD_TEXTURE, 
    CASTLE_TEXTURE, 
    CURL4_TEXTURE, 
    BHOLE4_TEXTURE, 
    SNOWFLAK_TEXTURE, 
    SWIRLX4_TEXTURE, 
    NUM_DEF_SURFACE_TEXTURES 
}; 
 
// textured objects 
enum { 
    START = 0, 
    END, 
    RAT, 
    AD, 
    COVER, 
    NUM_OBJECT_TEXTURES 
}; 
 
 
enum { 
    IMAGEQUAL_DEFAULT = 0, 
    IMAGEQUAL_HIGH, 
    IMAGEQUAL_COUNT 
}; 
 
typedef struct _MazeOptions 
{ 
    BOOL depth_test; 
    int render[NUM_SURFACES]; 
    BOOL frame_count; 
    BOOL top_view; 
    BOOL eye_view; 
    BOOL single_step; 
    BOOL all_alpha; 
    BOOL bDither; 
    int nrats; 
} MazeOptions; 
 
extern MazeOptions maze_options; 
 
#ifdef __cplusplus 
} 
#endif 
 
#endif // __MAZE_STD_H__