Sehr gut erklärt.. Über ODER (|) bzw. UND (&) Operatoren kannst du dann noch Flags setzten bzw. abfragen..
( 1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
bzw.
1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
)
also:
my.skill1 |= Flag16 =
000000000000000 | 1000000000000000
= 1000000000000000
wenn du es jetzt noch mit Flag 2 verknüpfst passiert folgendes:
my.skill1 |= Flag2;
1000000000000000 | 0000000000000010
= 1000000000000010
Also das jeweilige 1. bis 16. Bit wird gesetzt.
Abfragen kannst du es mit den UND Operator..
Beispiel:
my.skill1 & Flag3
1000000000000010 & 0000000000000100
=0000000000000000 (nicht gesetzt)
my.skill1 & Flag2
1000000000000010 & 0000000000000010
=0000000000000010 (gesetzt da ungleich 0)
mfg
TripleX