GetLandTilesArrayEx
Like GetLandTilesArray, but searches for several land-tile types at once within the rectangular area bounded by (Xmin, Ymin) – (Xmax, Ymax) in world WorldNum.
TileTypes is an array of tile graphics to match — every land tile whose graphic is in the list is collected into a single result set.
Как GetLandTilesArray, но ищет несколько типов ландшафтных тайлов сразу в прямоугольной области (Xmin, Ymin) – (Xmax, Ymax) в мире WorldNum.
TileTypes — массив график тайлов для поиска: все ландшафтные тайлы, чья графика есть в списке, собираются в один общий результат.
function GetLandTilesArrayEx(Xmin: Word; Ymin: Word; Xmax: Word; Ymax: Word;
WorldNum: Byte; TileTypes: array of Word): TFoundTilesArray;
DWS overload (legacy, returns count):
function GetLandTilesArrayEx(Xmin: Word; Ymin: Word; Xmax: Word; Ymax: Word;
WorldNum: Byte; TileTypes: array of Word; var LandTilesArray: TFoundTilesArray): Word;
function GetLandTilesArrayEx(Xmin: Word; Ymin: Word; Xmax: Word; Ymax: Word;
WorldNum: Byte; TileTypes: TWordDynArray; var LandTilesArray: TFoundTilesArray): Word;
In Pascal Script the TileTypes parameter is the named dynamic-array type TWordDynArray (not an open array of Word); you still pass it with an array literal [...].
Type definitions:
TFoundTile = packed record
Tile: Word;
X: SmallInt;
Y: SmallInt;
Z: ShortInt;
end;
// Pascal Script
TFoundTilesArray = array[0..999] of TFoundTile;
// DWS
TFoundTilesArray = TArray<TFoundTile>;
Notes:
- In Pascal Script,
TFoundTilesArrayis a fixed-size array of 1000 elements. - In DWS,
TFoundTilesArrayis a dynamic array (TArray<TFoundTile>).
In Python there is no separate Ex variant — GetLandTilesArray already accepts a list of tile types:
def GetLandTilesArray(Xmin: int, Ymin: int, Xmax: int, Ymax: int,
WorldNum: int, TileTypes: list[int]) -> list[FoundTile]: ...
var
Tiles: TFoundTilesArray;
Count: Word;
begin
// collect all water tiles of several graphics in the area
Count := GetLandTilesArrayEx(1000, 1000, 1100, 1100, 0,
[$00A8, $00A9, $00AA, $00AB], Tiles);
AddToSystemJournal('Found land tiles: ' + IntToStr(Count));
end.
tiles = GetLandTilesArray(1000, 1000, 1100, 1100, 0, [0xA8, 0xA9, 0xAA, 0xAB])
AddToSystemJournal(f'Found land tiles: {len(tiles)}')