17 | this._min_x = N_x - this._search_range < min_freeform ? min_freeform : N_x - this._search_range;
| 17 | this._min_x = max(min_freeform, min(source_x, goal_x) - this._search_range);
|
---|
18 | this._min_y = N_y - this._search_range < min_freeform ? min_freeform : N_y - this._search_range;
| 18 | this._min_y = max(min_freeform, min(source_y, goal_y) - this._search_range);
|
---|
19 | this._max_x = S_x + this._search_range > AIMap.GetMapSizeX() - max_freeform ? AIMap.GetMapSizeX() - max_freeform : S_x + this._search_range;
| 19 | this._max_x = min(AIMap.GetMapSizeX() - max_freeform, max(source_x, goal_x) + this._search_range);
|
---|
20 | this._max_y = S_y + this._search_range > AIMap.GetMapSizeY() - max_freeform ? AIMap.GetMapSizeY() - max_freeform : S_y + this._search_range;
| 20 | this._max_y = max(AIMap.GetMapSizeY() - max_freeform, max(source_y, goal_y) + this._search_range);
|
---|
21 | }
| 21 | } |
---|
22 | }
| | |
---|
23 |
| | |
---|
24 | function Road::_IsInsideRangeEfficient(self, cur_tile,
| | |
---|
25 | _AIMap = AIMap)
| | |
---|
26 | {
| | |
---|
27 | if (!self._search_range) return true;
| | |
---|
28 | local cur_tile_x = _AIMap.GetTileX(cur_tile);
| | |
---|
29 | local cur_tile_y = _AIMap.GetTileY(cur_tile);
| | |
---|
30 | return cur_tile_x >= self._min_x && cur_tile_x <= self._max_x && cur_tile_y >= self._min_y && cur_tile_y <= self._max_y;
| | |
---|
31 | } | | |
---|