BIS fnc bitflagsCheck: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
Lou Montana (talk | contribs) m (Some wiki formatting) |
||
(19 intermediate revisions by 2 users not shown) | |||
Line 8: | Line 8: | ||
|descr= Checks if one or more flags are set in the given flagset, represented with decimal or hexadecimal number<br> | |descr= Checks if one or more flags are set in the given flagset, represented with decimal or hexadecimal number<br> | ||
(Hexadecimal number representation is simply auto-converted into decimal by the engine)<br> | (Hexadecimal number representation is simply auto-converted into decimal by the engine)<br> | ||
In other words, it simply performs a [[BIS_fnc_bitwiseAND|bitwise AND (&)]] operation on the two numbers: | In other words, it simply performs a [[BIS_fnc_bitwiseAND|bitwise AND (&)]] operation on the two numbers: {{hl|flags & flagset > 0}}<br> | ||
To check which flags are present in given flagset use [[BIS_fnc_bitflagsToArray]]<br><br> | To check which flags are present in given flagset use [[BIS_fnc_bitflagsToArray]]<br><br> | ||
|s1=[flagset, flag] call [[BIS_fnc_bitflagsCheck]] | |pr= Due to various limitations of the Real Virtuality engine this function is intended to work with unsigned 24 bit integers only. This means that the supported range is 2^0...2^24 (1..16777216). | ||
|s1= [flagset, flag] call [[BIS_fnc_bitflagsCheck]] | |||
|p1= flagset: [[Number]] - flagset | |p1= flagset: [[Number]] - flagset | ||
|p2= flag: [[Number]] - one or more flags to check | |p2= flag: [[Number]] - one or more flags to check | ||
|r1=[[Boolean]] | |r1= [[Boolean]] | ||
* [[true]]: one or more flags are set in given flagset | * [[true]]: one or more flags are set in given flagset | ||
* [[false]]: no given flag or flags are set in the given flagset | * [[false]]: no given flag or flags are set in the given flagset | ||
|x1=< | |x1= <sqf> | ||
[2 + 4 + 8, 2 + 32] | [2 + 4 + 8, 8] call BIS_fnc_bitflagsCheck; // true | ||
[2 + 4 + 8, 1] | [2 + 4 + 8, 2 + 32] call BIS_fnc_bitflagsCheck; // true | ||
[2 + 4 + 8, 1 + 32] | [2 + 4 + 8, 1] call BIS_fnc_bitflagsCheck; // false | ||
[2 + 4 + 8, 1 + 32] call BIS_fnc_bitflagsCheck; // false | |||
</sqf> | |||
|seealso= [[ | |seealso= [[BIS_fnc_bitflagsFlip]] [[BIS_fnc_bitflagsSet]] [[BIS_fnc_bitflagsToArray]] [[BIS_fnc_bitflagsUnset]] | ||
}} | }} |
Latest revision as of 16:28, 27 July 2022
Description
- Description:
- Checks if one or more flags are set in the given flagset, represented with decimal or hexadecimal number
(Hexadecimal number representation is simply auto-converted into decimal by the engine)
In other words, it simply performs a bitwise AND (&) operation on the two numbers: flags & flagset > 0
To check which flags are present in given flagset use BIS_fnc_bitflagsToArray - Execution:
- call
- Problems:
- Due to various limitations of the Real Virtuality engine this function is intended to work with unsigned 24 bit integers only. This means that the supported range is 2^0...2^24 (1..16777216).
- Groups:
- Bitwise
Syntax
- Syntax:
- [flagset, flag] call BIS_fnc_bitflagsCheck
- Parameters:
- flagset: Number - flagset
- flag: Number - one or more flags to check
- Return Value:
- Boolean
Examples
- Example 1:
Additional Information
Notes
-
Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note