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; \
123int RT_DebugSpecial(
mapTiles_t*
mapTiles,
Routing& routing,
const int actorSize,
const int x,
const int y,
const int dir,
const char** list);
124void RT_DebugPathDisplay (
Routing& routing,
const int actorSize,
int x,
int y,
int z);
#define PATHFINDING_HEIGHT
15 max, adjusting above 8 will require a rewrite to the DV code
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_CanActorStandHere(const Routing &routing, const int actorSize, const pos3_t pos)
Check if an actor can stand(up) in the cell given by pos.
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_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_WriteCSVFiles(const Routing &routing, const char *baseFilename, const GridBox &box)
bool RT_AllCellsBelowAreFilled(const Routing &routing, const int actorSize, const pos3_t pos)
Check if pos is on solid ground.
static mapTiles_t mapTiles