#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__