Home API Manuals About Forum
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

ConvertIntegerToFlags

Converts a numeric bitmask value to tile data flags.

Group determines the tile type: 1 for land tiles, 2 for static tiles. Other values are ignored and return an empty result.

Returns an empty result if UO data files are not loaded or Group is not 1 or 2.

In Pascal, returns TTileDataFlagSet (a set type). In Python, returns a list[str] containing flag name strings.

Преобразует числовое значение битовой маски во флаги данных тайла.

Group определяет тип тайла: 1 для ландшафтных, 2 для статических. Другие значения игнорируются, возвращается пустой результат.

Возвращает пустой результат, если файлы UO Data не загружены или Group не равен 1 или 2.

В Pascal возвращает TTileDataFlagSet (тип множество). В Python возвращает list[str] со строковыми именами флагов.

Pascal

function ConvertIntegerToFlags(Group: Byte; Value: Cardinal): TTileDataFlagSet;

Parameters:

  • Group — tile group: 1 = land tiles, 2 = static tiles.
  • Value — numeric bitmask of flags.

Type definition:

TTileDataFlags = (
  tsfBackground, tsfWeapon, tsfTransparent, tsfTranslucent,
  tsfWall, tsfDamaging, tsfImpassable, tsfWet,
  tsfUnknown, tsfSurface, tsfBridge, tsfGeneric,
  tsfWindow, tsfNoShoot, tsfPrefixA, tsfPrefixAn,
  tsfInternal, tsfFoliage, tsfPartialHue, tsfUnknown1,
  tsfMap, tsfContainer, tsfWearable, tsfLightSource,
  tsfAnimated, tsfNoDiagonal, tsfUnknown2, tsfArmor,
  tsfRoof, tsfDoor, tsfStairBack, tsfStairRight,
  // Land-specific flags:
  tlfTranslucent, tlfWall, tlfDamaging, tlfImpassable,
  tlfWet, tlfSurface, tlfBridge, tlfPrefixA, tlfPrefixAn,
  tlfInternal, tlfMap, tlfUnknown3
);

TTileDataFlagSet = set of TTileDataFlags;

Python

def ConvertIntegerToFlags(Group: int, Flags: int) -> list[str]: ...

Returns a list of flag name strings (e.g. ['Background', 'Surface', 'NoShoot']).

Pascal Example

var
  FlagSet: TTileDataFlagSet;
begin
  // Convert flags for a static tile
  FlagSet := ConvertIntegerToFlags(2, 67117569);
  if tsfSurface in FlagSet then
    AddToSystemJournal('Surface');
  if tsfImpassable in FlagSet then
    AddToSystemJournal('Impassable');
end.

Python Example

flags = ConvertIntegerToFlags(2, 67117569)
AddToSystemJournal(f'Flags: {flags}')
if 'Surface' in flags:
    AddToSystemJournal('This is a surface tile')
if 'Impassable' in flags:
    AddToSystemJournal('This tile is impassable')

See Also

GetTileFlags