[01:00:448] Context<Critter::ProcessVisibleCritters : Npc (all_brahmin_herdsman, 5001610)>, state<Exception>, call stack<2>:
[01:00:448] 1) main : int TraceWall(uint16, uint16, uint16, uint16, Map&inout, int) : 5216, 3.
[01:00:448] 0) main : bool check_look(Map&inout, Critter&inout, Critter&inout) : 5196, 3.
[01:00:448] Script exception: Index out of bounds : main : int TraceWall(uint16, uint16, uint16, uint16, Map&inout, int) : 5216, 3 : Critter::ProcessVisibleCritters : Npc (all_brahmin_herdsman, 5001610).
[01:00:448] Execution of script stopped due to exception.
int TraceWall(uint16 hx, uint16 hy, uint16 tx, uint16 ty, Map& map, int dist)
{
array<uint8> Lookup;
int dx = tx - hx;
int dy = ty - hy;
if ((ABS(dx) >= MAX_TRACE) || (ABS(dy) >= MAX_TRACE)) return 0;
int idx = (SIZE_LIN * (dy + MAX_TRACE) + dx + MAX_TRACE) * MAX_ARR;
uint16 maxX = 0; uint16 maxY = 0;
for(maxX = 0; maxX < map.GetWidth(); maxX++)
for(maxY = 0; maxY < map.GetHeight(); maxY++)
for (int i = 0; i < dist; i++)
{
Move(hx,hy,Lookup[idx++]);
if ((hx >= maxX) || (hy >= maxY)) return i;
if(!map.IsHexRaked(hx, hy)) return i;
}
return dist;
}