(dirindex): Narrow member type to signed char to save cache.
(pathcost): Catch bad direction characters (should not happen).
This commit is contained in:
parent
6bfdc38df1
commit
a88f12017e
3 changed files with 13 additions and 6 deletions
|
@ -51,7 +51,7 @@
|
||||||
#define DIR_FIRST 1
|
#define DIR_FIRST 1
|
||||||
#define DIR_LAST 6
|
#define DIR_LAST 6
|
||||||
|
|
||||||
extern int dirindex[];
|
extern signed char dirindex['z'-'a'+1];
|
||||||
extern int diroff[][2];
|
extern int diroff[][2];
|
||||||
extern s_char dirch[];
|
extern s_char dirch[];
|
||||||
|
|
||||||
|
|
|
@ -307,8 +307,9 @@ bp_clear_cachepath(void)
|
||||||
double
|
double
|
||||||
pathcost(struct sctstr *start, s_char *path, int mob_type)
|
pathcost(struct sctstr *start, s_char *path, int mob_type)
|
||||||
{
|
{
|
||||||
register int o;
|
unsigned i;
|
||||||
register int cx, cy;
|
int o;
|
||||||
|
int cx, cy;
|
||||||
double cost = 0.0;
|
double cost = 0.0;
|
||||||
struct sctstr *sp;
|
struct sctstr *sp;
|
||||||
int sx, sy, offset;
|
int sx, sy, offset;
|
||||||
|
@ -321,7 +322,12 @@ pathcost(struct sctstr *start, s_char *path, int mob_type)
|
||||||
path++;
|
path++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
o = dirindex[(int)((*path) - 'a')];
|
i = *path - 'a';
|
||||||
|
if (CANT_HAPPEN(i >= sizeof(dirindex) / sizeof(*dirindex)))
|
||||||
|
break;
|
||||||
|
o = dirindex[i];
|
||||||
|
if (CANT_HAPPEN(o) < 0)
|
||||||
|
break;
|
||||||
cx += diroff[o][0];
|
cx += diroff[o][0];
|
||||||
cy += diroff[o][1];
|
cy += diroff[o][1];
|
||||||
sx = XNORM(cx);
|
sx = XNORM(cx);
|
||||||
|
|
|
@ -55,8 +55,9 @@ int diroff[][2] = {
|
||||||
|
|
||||||
/* this maps a character from a to z into the diroff mappings. It
|
/* this maps a character from a to z into the diroff mappings. It
|
||||||
keeps us from having to loop if we don't want to */
|
keeps us from having to loop if we don't want to */
|
||||||
int dirindex[] = { 0, 4, 0, 0, 0, 0, 5, 0, 0, 2, 0, 0, 8,
|
signed char dirindex[] = {
|
||||||
3, 0, 0, 0, 0, 0, 0, 1, 7, 0, 0, 6, 0
|
-1, 4, -1, -1, -1, -1, 5, 0, -1, 2, -1, -1, 8,
|
||||||
|
3, -1, -1, -1, -1, -1, -1, 1, 7, -1, -1, 6, -1
|
||||||
};
|
};
|
||||||
|
|
||||||
/* must agree with dirch[] and DIR_ defines */
|
/* must agree with dirch[] and DIR_ defines */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue