This page combines previous information from other locations into one source about tileset pathnodespath nodes.
| Table of Contents |
|---|
In Game Pathfinding Usage
The tileset pathnodes are used to do cross-tile click-to-walk and ActionMoveToLocation/ActionMoveToObject and related commands used via. scripting. If a location is outside the objects current tile (10x10 meter divisions in the map) then a path node specifies if one tile can reach another tile, and also if they were to move onto that tile would they then be able to move onto other tiles past it.
...
Note that WASD movement does not use the tile path nodes so if you are testing a new tileset or a broken old one, this is an easy way to check if things work correctly (barring other things like doors blocking pathfinding).
Pathnode Table
This is all the pathnodes in the game, visually represented. The reason they are defined as base ASCII is since they are stored in ini files it maintains maximum compatibility.
...
| Tile Path Node | ASCII Art | Picture | Notes | ||
|---|---|---|---|---|---|
| A |
| ||||
| B |
| ||||
| C |
| ||||
| D |
| ||||
| E |
| ||||
| F |
| ||||
| G |
| ||||
| H |
| ||||
| I |
| ||||
| J |
| NOTE: this is wrong in the ASCII need to amend | |||
| K |
| ||||
| L |
| ||||
| M |
| ||||
| N |
| ||||
| O |
| ||||
| P |
| "Removed" so unused so don't use it (who knows might be at somepoint reused). Instead use T for a total pathfinding blocker (eg all black wall tiles in interior areas) | |||
| Q |
| ||||
| R |
| ||||
| S |
| ||||
| T |
| A blocker pathfinding node, use for all black wall tiles in interior areas or areas of sea or similar no-pathingfinding tiles | |||
| U |
| ||||
| V |
| ||||
| W |
| ||||
| X |
| ||||
| Y |
| ||||
| Z |
| ||||
| a |
| ||||
| b |
| ||||
| c |
| ||||
| d |
| ||||
| e |
| ||||
| f |
| Added in later Bioware patches so may not be used in the earliest tilesets. | |||
| g |
| Added in later Bioware patches so may not be used in the earliest tilesets. | |||
| h |
| Added in later Bioware patches so may not be used in the earliest tilesets. Similar to e only with two of the areas connected. | |||
| i |
| Added in later Bioware patches so may not be used in the earliest tilesets. | |||
| j |
| Added in later Bioware patches so may not be used in the earliest tilesets. | |||
| k |
| Added in later Bioware patches so may not be used in the earliest tilesets. | |||
| l |
| Added in later Bioware patches so may not be used in the earliest tilesets. | |||
| m |
| Added in later Bioware patches so may not be used in the earliest tilesets. | |||
| n |
| Added in later Bioware patches so may not be used in the earliest tilesets. | |||
| o |
| Added in later Bioware patches so may not be used in the earliest tilesets. | |||
| p |
| Added in later Bioware patches so may not be used in the earliest tilesets. | |||
| q |
| Added in 1.87.8193.35. | |||
| r |
| Added in 1.87.8193.35. | |||
| s |
| Added in 1.87.8193.35. | |||
| t |
| Added in 1.87.8193.35. | |||
| u |
| Added in 1.87.8193.35. | |||
| v |
| Added in 1.87.8193.35. | |||
| w |
| Added in 1.87.8193.35. | |||
| x |
| Added in 1.87.8193.35. |
Technical Engine Definition
The game hardcodes the pathnode definitions - Bioware added several post-release as have Beamdog covering the majority of tile connection possibilities. The code defining them has been provided by the developers but is hard to parse (Although the comments do show a rough outline of which each one is defined as):
| Code Block | ||||
|---|---|---|---|---|
| ||||
case NWTILE_PATH_FINDING_TYPE_A:
{
// ---------
// [ | ]
// [ | ]
// [---+---]
// [ | ]
// [ | ]
// ---------
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
}
break;
case NWTILE_PATH_FINDING_TYPE_B:
{
// ---------
// [ | ]
// [---+-+ ]
// [ +-]
// [-+ | ]
// [ | | ]
// ---------
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = -2.5;
(*pfRegionNodes)[i++] = -2.5;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
}
break;
case NWTILE_PATH_FINDING_TYPE_C:
{
// ---------
// [ | | ]
// [ | | ]
// [--+ +--]
// [ | | ]
// [ | | ]
// ---------
(*pfRegionNodes)[i++] = -2.5;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 2.5;
(*pfRegionNodes)[i++] = 0.0;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
}
break;
case NWTILE_PATH_FINDING_TYPE_D:
{
// ---------
// [ | | ]
// [-+ +-]
// [ ]
// [-+ +-]
// [ | | ]
// ---------
(*pfRegionNodes)[i++] = -2.5;
(*pfRegionNodes)[i++] = 2.5;
(*pfRegionNodes)[i++] = -2.5;
(*pfRegionNodes)[i++] = -2.5;
(*pfRegionNodes)[i++] = 2.5;
(*pfRegionNodes)[i++] = -2.5;
(*pfRegionNodes)[i++] = 2.5;
(*pfRegionNodes)[i++] = 2.5;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 3;
(*pnTileExitRegion)[k++] = 3;
}
break;
case NWTILE_PATH_FINDING_TYPE_E:
{
// ---------
// [ | | ]
// [-+ | ]
// [ +--]
// [-+ | ]
// [ | | ]
// ---------
(*pfRegionNodes)[i++] = -2.5;
(*pfRegionNodes)[i++] = 2.5;
(*pfRegionNodes)[i++] = -2.5;
(*pfRegionNodes)[i++] = -2.5;
(*pfRegionNodes)[i++] = 2.5;
(*pfRegionNodes)[i++] = 0.0;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 2;
}
break;
case NWTILE_PATH_FINDING_TYPE_F:
{
// ---------
// [ | | ]
// [ | | ]
// [--+-+--]
// [ | | ]
// [ | | ]
// ---------
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
}
break;
case NWTILE_PATH_FINDING_TYPE_G:
{
// ---------
// [ | | ]
// [ | | ]
// [--+++--]
// [ | ]
// [ | ]
// ---------
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
}
break;
case NWTILE_PATH_FINDING_TYPE_H:
{
// ---------
// [ ]
// [ ]
// [---+ ]
// [ | ]
// [ | ]
// ---------
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
}
break;
case NWTILE_PATH_FINDING_TYPE_I:
{
// ---------
// [ | ]
// [ | ]
// [---+ ]
// [ | ]
// [ | ]
// ---------
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
}
break;
case NWTILE_PATH_FINDING_TYPE_J:
{
// ---------
// [ | ]
// [ +-]
// [ ]
// [-+ ]
// [ | ]
// ---------
(*pfRegionNodes)[i++] = -2.5;
(*pfRegionNodes)[i++] = -2.5;
(*pfRegionNodes)[i++] = 2.5;
(*pfRegionNodes)[i++] = 2.5;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
}
break;
case NWTILE_PATH_FINDING_TYPE_K:
{
// ---------
// [ | | ]
// [ | +-]
// [-+ ]
// [ +---]
// [ | ]
// ---------
(*pfRegionNodes)[i++] = -2.5;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = -2.5;
(*pfRegionNodes)[i++] = 2.5;
(*pfRegionNodes)[i++] = 2.5;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 2;
}
break;
case NWTILE_PATH_FINDING_TYPE_L:
{
// ---------
// [ | ]
// [ | ]
// [ + ]
// [ | ]
// [ | ]
// ---------
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
}
break;
case NWTILE_PATH_FINDING_TYPE_M:
{
// ---------
// [ | | ]
// [ | | ]
// [ + + ]
// [ | | ]
// [ | | ]
// ---------
(*pfRegionNodes)[i++] = -2.5;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 2.5;
(*pfRegionNodes)[i++] = 0.0;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = -5.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
}
break;
case NWTILE_PATH_FINDING_TYPE_N:
{
// ---------
// [ | ]
// [ | ]
// [ + ]
// [ ]
// [ ]
// ---------
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 0;
}
break;
case NWTILE_PATH_FINDING_TYPE_O:
{
// ---------
// [ | | ]
// [-+ /-]
// [ + ]
// [-/ +-]
// [ | | ]
// ---------
(*pfRegionNodes)[i++] = -2.5;
(*pfRegionNodes)[i++] = 2.5;
(*pfRegionNodes)[i++] = 0;
(*pfRegionNodes)[i++] = 0;
(*pfRegionNodes)[i++] = 2.5;
(*pfRegionNodes)[i++] = -2.5;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
}
break;
case NWTILE_PATH_FINDING_TYPE_P:
{
// Deleted tile
}
break;
case NWTILE_PATH_FINDING_TYPE_Q:
{
// ---------
// [ | | ]
// [ | | ]
// [-+ /--]
// [ + ]
// [ | ]
// ---------
(*pfRegionNodes)[i++] = -2.5;
(*pfRegionNodes)[i++] = 1.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
}
break;
case NWTILE_PATH_FINDING_TYPE_R:
{
// ---------
// [ | ]
// [ + ]
// [-+ \--]
// [ | | ]
// [ | | ]
// ---------
(*pfRegionNodes)[i++] = -2.5;
(*pfRegionNodes)[i++] = 1.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = -5.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
}
break;
case NWTILE_PATH_FINDING_TYPE_S:
{
// ---------
// [ | | ]
// [ | | ]
// [-+ +-]
// [ ]
// [ ]
// ---------
(*pfRegionNodes)[i++] = -2.5;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 2.5;
(*pfRegionNodes)[i++] = 0.0;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
}
break;
case NWTILE_PATH_FINDING_TYPE_T:
{
// ---------
// [ ]
// [ ]
// [ ]
// [ ]
// [ ]
// ---------
}
break;
case NWTILE_PATH_FINDING_TYPE_U:
{
// ---------
// [ | ]
// [ \ ]
// [-+ +-]
// [ / ]
// [ | ]
// ---------
(*pfRegionNodes)[i++] = -2.5;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 2.5;
(*pfRegionNodes)[i++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
}
break;
case NWTILE_PATH_FINDING_TYPE_V:
{
// ---------
// [ | ]
// [ + ]
// [ --]
// [ / ]
// [ | ]
// ---------
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 2.5;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = -1.25;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
}
break;
case NWTILE_PATH_FINDING_TYPE_W:
{
// ---------
// [ | ]
// [ + ]
// [-- ]
// [ \ ]
// [ | ]
// ---------
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 2.5;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = -1.25;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
}
break;
case NWTILE_PATH_FINDING_TYPE_X:
{
// ---------
// [ | ]
// [ + ]
// [-+ ]
// [ ]
// [ ]
// ---------
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 2.5;
(*pfRegionNodes)[i++] = -2.5;
(*pfRegionNodes)[i++] = 0.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
}
break;
case NWTILE_PATH_FINDING_TYPE_Y:
{
// ---------
// [ | ]
// [ + ]
// [ ]
// [ + ]
// [ | ]
// ---------
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 2.5;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = -2.5;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
}
break;
case NWTILE_PATH_FINDING_TYPE_Z:
{
// ---------
// [ | ]
// [---+ ]
// [ +-+-]
// [-+/ | ]
// [ | | ]
// ---------
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
}
break;
case NWTILE_PATH_FINDING_TYPE_a:
{
// ---------
// [ | | ]
// [ | + ]
// [--+++--]
// [ | ]
// [ | ]
// ---------
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 2.5;
(*pfRegionNodes)[i++] = 2.5;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
}
break;
case NWTILE_PATH_FINDING_TYPE_b:
{
// ---------
// [ | | ]
// [ + | ]
// [--+++--]
// [ | ]
// [ | ]
// ---------
(*pfRegionNodes)[i++] = -2.5;
(*pfRegionNodes)[i++] = 2.5;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
}
break;
case NWTILE_PATH_FINDING_TYPE_c:
{
// ---------
// [ | | | ]
// [ | | | ]
// [-+-+-+-]
// [ | ]
// [ | ]
// ---------
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
}
break;
case NWTILE_PATH_FINDING_TYPE_d:
{
// ---------
// [ | | | ]
// [ | + | ]
// [-+ +-]
// [ \ / ]
// [ | ]
// ---------
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
}
break;
case NWTILE_PATH_FINDING_TYPE_e:
{
// ---------
// [ | ]
// [---+-+ ]
// [--- +-]
// [-+ | | ]
// [ | | | ]
// ---------
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
}
break;
case NWTILE_PATH_FINDING_TYPE_f:
{
// ---------
// [ | | | ]
// [ | | | ]
// [-+ + +-]
// [ | | | ]
// [ | | | ]
// ---------
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
}
break;
case NWTILE_PATH_FINDING_TYPE_g:
{
// ---------
// [ | | | ]
// [ | | | ]
// [-+-+ +-]
// [ | | | ]
// [ | | | ]
// ---------
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
}
break;
case NWTILE_PATH_FINDING_TYPE_h:
{
// Similar to NWTILE_PATH_FINDING_TYPE_e only with two of the areas connected.
// ---------
// [ | ]
// [---+-+ ]
// [----/+-]
// [-+ | | ]
// [ | | | ]
// ---------
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
}
break;
case NWTILE_PATH_FINDING_TYPE_i:
{
// ---------
// [---+---]
// [ | ]
// [-+ | +-]
// [ | ]
// [---+---]
// ---------
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 4.0;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
}
break;
case NWTILE_PATH_FINDING_TYPE_j:
{
// ---------
// [---+---]
// [ ]
// [-+ +-]
// [ ]
// [---+---]
// ---------
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 4.0;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 3;
(*pnTileExitRegion)[k++] = 3;
(*pnTileExitRegion)[k++] = 3;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
}
break;
case NWTILE_PATH_FINDING_TYPE_k:
{
// ---------
// [ | | | ]
// [-+ | | ]
// [---+ +-]
// [-+ | | ]
// [ | | | ]
// ---------
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 3;
(*pnTileExitRegion)[k++] = 3;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
}
break;
case NWTILE_PATH_FINDING_TYPE_l:
{
// ---------
// [ | | | ]
// [-+ | +-]
// [---+---]
// [-+ | +-]
// [ | | | ]
// ---------
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 3;
(*pnTileExitRegion)[k++] = 3;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 4;
(*pnTileExitRegion)[k++] = 4;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 0;
}
break;
case NWTILE_PATH_FINDING_TYPE_m:
{
// ---------
// [ | | | ]
// [-+ | +-]
// [ + ]
// [-+ | +-]
// [ | | | ]
// ---------
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 3;
(*pnTileExitRegion)[k++] = 3;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 4;
(*pnTileExitRegion)[k++] = 4;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 0;
}
break;
case NWTILE_PATH_FINDING_TYPE_n:
{
// ---------
// [ | | | ]
// [-+ + +-]
// [ ]
// [-+ + +-]
// [ | | | ]
// ---------
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 3;
(*pnTileExitRegion)[k++] = 3;
(*pnTileExitRegion)[k++] = 4;
(*pnTileExitRegion)[k++] = 5;
(*pnTileExitRegion)[k++] = 5;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 0;
}
break;
case NWTILE_PATH_FINDING_TYPE_o:
{
// ---------
// [ | | | ]
// [-+ | | ]
// [ + +-]
// [-+ | | ]
// [ | | | ]
// ---------
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 3;
(*pnTileExitRegion)[k++] = 3;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
}
break;
case NWTILE_PATH_FINDING_TYPE_p:
{
// ---------
// [ | | ]
// [-+ | ]
// [-+ +-]
// [-+ | ]
// [ | | ]
// ---------
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 3;
(*pnTileExitRegion)[k++] = 3;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
}
break;
case NWTILE_PATH_FINDING_TYPE_q:
{
// ---------
// [ | | ]
// [-+ | ]
// [-----+-]
// [-+ | ]
// [ | | ]
// ---------
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
}
break;
case NWTILE_PATH_FINDING_TYPE_r:
{
// ---------
// [ | | | ]
// [-+ + +-]
// [-+ +-]
// [-+ + +-]
// [ | | | ]
// ---------
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = -5.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = -5.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 5.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 5.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 3;
(*pnTileExitRegion)[k++] = 4;
(*pnTileExitRegion)[k++] = 4;
(*pnTileExitRegion)[k++] = 5;
(*pnTileExitRegion)[k++] = 6;
(*pnTileExitRegion)[k++] = 6;
(*pnTileExitRegion)[k++] = 7;
}
break;
case NWTILE_PATH_FINDING_TYPE_s:
{
// ---------
// [ | | ]
// [-+ +-]
// [-+ +-]
// [-+ + +-]
// [ | | | ]
// ---------
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = -5.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = -5.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 5.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 3;
(*pnTileExitRegion)[k++] = 4;
(*pnTileExitRegion)[k++] = 4;
(*pnTileExitRegion)[k++] = 5;
(*pnTileExitRegion)[k++] = 6;
(*pnTileExitRegion)[k++] = 6;
}
break;
case NWTILE_PATH_FINDING_TYPE_t:
{
// ---------
// [ | | ]
// [-+ +-]
// [ +---]
// [-+ | +-]
// [ | | | ]
// ---------
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 3;
(*pnTileExitRegion)[k++] = 3;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 4;
(*pnTileExitRegion)[k++] = 4;
}
break;
case NWTILE_PATH_FINDING_TYPE_u:
{
// ---------
// [ | | | ]
// [-+ | +-]
// [ +---]
// [-+ | +-]
// [ | | | ]
// ---------
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 3;
(*pnTileExitRegion)[k++] = 3;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 4;
(*pnTileExitRegion)[k++] = 4;
(*pnTileExitRegion)[k++] = 0;
}
break;
case NWTILE_PATH_FINDING_TYPE_v:
{
// ---------
// [ | | | ]
// [-+ | +-]
// [-+ +---]
// [-+ | +-]
// [ | | | ]
// ---------
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = 4.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 3;
(*pnTileExitRegion)[k++] = 3;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 4;
(*pnTileExitRegion)[k++] = 4;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 5;
(*pnTileExitRegion)[k++] = 5;
(*pnTileExitRegion)[k++] = 0;
}
break;
case NWTILE_PATH_FINDING_TYPE_w:
{
// ---------
// [ | ]
// [ + ]
// [-+ +-]
// [ + ]
// [ | ]
// ---------
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfRegionNodes)[i++] = -4.0;
(*pfRegionNodes)[i++] = 4.0;
(*pfRegionNodes)[i++] = 0.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = 0.0;
(*pfTileExits)[j++] = -5.0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 3;
}
break;
case NWTILE_PATH_FINDING_TYPE_x:
{
// ---------
// [ | ]
// [-+ ]
// [ ]
// [-+ +-]
// [ | | ]
// ---------
(*pfRegionNodes)[i++] = -2.5;
(*pfRegionNodes)[i++] = 2.5;
(*pfRegionNodes)[i++] = -2.5;
(*pfRegionNodes)[i++] = -2.5;
(*pfRegionNodes)[i++] = 2.5;
(*pfRegionNodes)[i++] = -2.5;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = -2.5;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 2.5;
(*pfTileExits)[j++] = -5.0;
(*pfTileExits)[j++] = 5.0;
(*pfTileExits)[j++] = -2.5;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 0;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 1;
(*pnTileExitRegion)[k++] = 2;
(*pnTileExitRegion)[k++] = 2;
}
break; |
Technical Explaination
An explaination of the code for those who want to understand it perfectly:
...