4FBWCGO5NTT2KBBTYTYVR2AOBI5LHSP7L3TB3ESYF6OFLMEJQESQC
B5ED3LZM7H6NMC7HBVUWKE4AODTQSKF4EOKZ7KZBZVOCGBZ3XMGQC
AL3SLCDLHEM2K7XFORCHBSO2WRSHWAPRCSMH7HHMRWVBPNA5EM7AC
TQRXKGNUMPIPB4DWAEYEQ33MWWKOMERRAMG4IILPJSJMCHEA5PEQC
SVY2PTCLXR3KNPQAWXVXTTGCC5DR334HOAKHYO3VDDRWM2BWMALAC
ACZYEIX7WMPIIODKCATBCUE626AJ4ZGGBOMVC6BGXM27EQU2RECAC
5X6QOOUFVHPEEHOSLZ5RUTNRD5LH4BSGIIFWNEDJJBVJJNM7MBZQC
UFMQQPYCBI6Z576P7PH4ZAPC7L7P3D4H66NJMFQKP6WRAPIK2NOQC
M5GEYKK4YABVLWKYWZ2EQ7U2JXJBAI5HWQEYK7PV7CDH42NARU6AC
JPITTXY2C43TV7GPYP6MWZJBMRPA6FDB2YVLTTJ2CTW6TZJXMR3AC
PHJ2TT2CQ2IRXOB5KAV2664KKTPYFPFUIBEGAOQBGB4SAZ7PKNHAC
int shoot_ray(double accx, double accy, const double slope,
int maxrange, int xpos[], int ypos[]);
// quadrant
enum quad_type
{
QUAD_SE = 0,
QUAD_SW = 1,
QUAD_NW = 2,
QUAD_NE = 3
};
// direction of advance:
enum adv_type
{
ADV_X = 0, // changed x
ADV_Y = 1, // changed y
ADV_XY = 2 // changed x and y (diagonal)
};
// returns the direction taken (0,1,2)
int advance(bool shorten = false, const coord_def *p = NULL);
int advance_through(const coord_def &point);
// returns the direction taken
adv_type advance(bool shorten = false, const coord_def *p = NULL);
adv_type advance_through(const coord_def &point);