/*
* Empire - A multi-player, client/server Internet based war game.
- * Copyright (C) 1986-2005, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ * Copyright (C) 1986-2008, Dave Pare, Jeff Bailey, Thomas Ruschak,
* Ken Stevens, Steve McClure
*
* This program is free software; you can redistribute it and/or modify
*
* ---
*
- * See the "LEGAL", "LICENSE", "CREDITS" and "README" files for all the
- * related information and legal notices. It is expected that any future
- * projects/authors will amend these files as needed.
+ * See files README, COPYING and CREDITS in the root of the source
+ * tree for related information and legal notices. It is expected
+ * that future projects/authors will amend these files as needed.
*
* ---
*
*
*/
-#ifndef _PATH_H_
-#define _PATH_H_
+#ifndef PATH_H
+#define PATH_H
-#include "misc.h" /* s_char coord etc. */
-#include "sect.h" /* struct sctstr */
-#include "xy.h"
+#include "types.h"
/* direction indices */
#define DIR_STOP 0
#define DIR_FIRST 1
#define DIR_LAST 6
-extern int dirindex[];
-extern int diroff[][2];
-extern s_char dirch[];
+enum p_mode { /* How to find path to destination */
+ P_NONE, /* don't */
+ P_FLYING, /* use BestAirPath() */
+ P_SAILING /* use BestShipPath() */
+};
+
+extern signed char dirindex['z'-'a'+1];
+extern int diroff[DIR_MAP+1][2];
+extern char dirch[DIR_MAP+2];
+extern char *routech[DIR_LAST+1][2];
/* src/lib/subs/paths.c */
-extern s_char *getpath(s_char *, s_char *, coord, coord, int, int,
- int, int);
+extern char *getpath(char *, char *, coord, coord, int, int, enum p_mode);
extern double fcost(struct sctstr *, natid);
extern double ncost(struct sctstr *, natid);
-extern double pathtoxy(s_char *, coord *, coord *,
- double (*)(struct sctstr * sp, natid own));
-extern int chkdir(s_char, int, int);
-extern void direrr(s_char *, s_char *, s_char *);
-extern void pathrange(register coord, register coord, register s_char *,
- int, struct range *);
-
-extern double sector_mcost(struct sctstr *sp, int do_bonus);
+extern double pathtoxy(char *, coord *, coord *,
+ double (*)(struct sctstr *, natid));
+extern int chkdir(char, int, int);
+extern int diridx(char);
+extern void direrr(char *, char *, char *);
+extern void pathrange(coord, coord, char *, int, struct range *);
-#define P_NONE 0 /* NO destinations allowed */
-#define P_WALKING 1 /* use BestLandPath, only owned */
-#define P_FLYING 2 /* use bestpath, any */
-#define P_SAILING 3 /* use bestpath, any */
-#define P_DISTING 4 /* use BestDistPath, only owned */
+extern double sector_mcost(struct sctstr *, int);
+extern double speed_factor(double, int);
#define MAX_PATH_LEN 1024
-#endif /* _PATH_H_ */
+#endif