40 #define RT_IS_BIDIRECTIONAL 0
52 #define RT_CONN_PX(r, actorSize, x, y, z) (r.getConn(actorSize, x, y, z, 0))
53 #define RT_CONN_NX(r, actorSize, x, y, z) (r.getConn(actorSize, x, y, z, 1))
54 #define RT_CONN_PY(r, actorSize, x, y, z) (r.getConn(actorSize, x, y, z, 2))
55 #define RT_CONN_NY(r, actorSize, x, y, z) (r.getConn(actorSize, x, y, z, 3))
57 #define RT_CONN_PX_PY(r, actorSize, x, y, z) (r.getConn(actorSize, x, y, z, 4))
58 #define RT_CONN_PX_NY(r, actorSize, x, y, z) (r.getConn(actorSize, x, y, z, 7))
59 #define RT_CONN_NX_PY(r, actorSize, x, y, z) (r.getConn(actorSize, x, y, z, 6))
60 #define RT_CONN_NX_NY(r, actorSize, x, y, z) (r.getConn(actorSize, x, y, z, 5))
62 #define RT_STEPUP_PX(r, actorSize, x, y, z) (r.getStepup(actorSize, x, y, z, 0))
63 #define RT_STEPUP_NX(r, actorSize, x, y, z) (r.getStepup(actorSize, x, y, z, 1))
64 #define RT_STEPUP_PY(r, actorSize, x, y, z) (r.getStepup(actorSize, x, y, z, 2))
65 #define RT_STEPUP_NY(r, actorSize, x, y, z) (r.getStepup(actorSize, x, y, z, 3))
67 #define RT_STEPUP_PX_PY(r, actorSize, x, y, z) (r.getStepup(actorSize, x, y, z, 4))
68 #define RT_STEPUP_PX_NY(r, actorSize, x, y, z) (r.getStepup(actorSize, x, y, z, 7))
69 #define RT_STEPUP_NX_PY(r, actorSize, x, y, z) (r.getStepup(actorSize, x, y, z, 6))
70 #define RT_STEPUP_NX_NY(r, actorSize, x, y, z) (r.getStepup(actorSize, x, y, z, 5))
75 #define ModelFloorToQuant(x) (ceil((x) / QUANT))
77 #define ModelCeilingToQuant(x) (floor((x) / QUANT))
79 #define QuantToModel(x) ((x) * QUANT)
84 #define SizedPosToVec(p, actorSize, v) { \
85 assert(actorSize > ACTOR_SIZE_INVALID); \
86 assert(actorSize <= ACTOR_MAX_SIZE); \
87 v[0] = ((int)p[0] - 128) * UNIT_SIZE + (UNIT_SIZE * actorSize) / 2; \
88 v[1] = ((int)p[1] - 128) * UNIT_SIZE + (UNIT_SIZE * actorSize) / 2; \
89 v[2] = (int)p[2] * UNIT_HEIGHT + UNIT_HEIGHT / 2; \
123 int RT_DebugSpecial(
mapTiles_t*
mapTiles,
Routing& routing,
const int actorSize,
const int x,
const int y,
const int dir,
const char** list);
124 void RT_DebugPathDisplay (
Routing& routing,
const int actorSize,
int x,
int y,
int z);
void RT_UpdateConnectionColumn(mapTiles_t *mapTiles, Routing &routing, const int actorSize, const int x, const int y, const int dir, const char **list=nullptr, const int minZ=0, const int maxZ=PATHFINDING_HEIGHT)
Routing Function to update the connection between two fields.
void RT_GetMapSize(mapTiles_t *mapTiles, AABB &mapBox)
Calculate the map size via model data and store grid size in map_min and map_max. This is done with e...
bool RT_AllCellsBelowAreFilled(const Routing &routing, const int actorSize, const pos3_t pos)
Check if pos is on solid ground.
int RT_CheckCell(mapTiles_t *mapTiles, Routing &routing, const int actorSize, const int x, const int y, const int z, const char **list)
This function looks to see if an actor of a given size can occupy a cell(s) and if so identifies the ...
void RT_WriteCSVFiles(const Routing &routing, const char *baseFilename, const GridBox &box)
#define PATHFINDING_HEIGHT
15 max, adjusting above 8 will require a rewrite to the DV code
bool RT_CanActorStandHere(const Routing &routing, const int actorSize, const pos3_t pos)
Check if an actor can stand(up) in the cell given by pos.
static mapTiles_t mapTiles