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] со строковыми именами флагов.
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;
def ConvertIntegerToFlags(Group: int, Flags: int) -> list[str]: ...
Returns a list of flag name strings (e.g. ['Background', 'Surface', 'NoShoot']).
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.
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')