windows-nt/Source/XPSP1/NT/multimedia/opengl/scrsave/maze/slvmaze.h

50 lines
1.1 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
#ifndef __SLVMAZE_H__
#define __SLVMAZE_H__
#define ANI_STATE_NONE 0
#define ANI_STATE_TURN_TO 1
#define ANI_STATE_TURN_AWAY 2
#define ANI_STATE_FORWARD 3
#define ANI_STATE_REVERSE 4
#define SOL_DIR_LEFT 0
#define SOL_DIR_UP 1
#define SOL_DIR_RIGHT 2
#define SOL_DIR_DOWN 3
#define SOL_DIRS 4
#define SOL_TURN_LEFT 0
#define SOL_TURN_RIGHT 1
typedef struct _MazeGoal
{
int clx, cly;
void *user;
} MazeGoal;
typedef struct _MazeSolution
{
int clx, cly;
int dir;
Cell *maze;
int w, h;
MazeGoal *goals;
int ngoals;
int ani_state;
int ani_count;
int *turn_to;
int *turn_away;
int dir_sign;
} MazeSolution;
void SolveMazeStart(MazeView *vw,
Cell *maze, int w, int h,
IntPt2 *start, int start_dir,
MazeGoal *goals, int ngoals,
int turn_to,
MazeSolution *sol);
void SolveMazeSetGoals(MazeSolution *sol, MazeGoal *goals, int ngoals);
MazeGoal *SolveMazeStep(MazeView *vw, MazeSolution *sol);
#endif