Zmienna int czyli integer zapisuje liczby korzystając z 32 bitów. Jeśli chcemy zapisywać tylko wartości logiczne (TRUE/FALSE) możemy skorzystać z jednego inta do całego moda (zamiast robić 32 zmienne int wystarczy nam jedna).
Napisałem 2 funkcje trochę je testowałem ale tylko na 2 liczbach w kilku kombinacjach wiec nie mam 100 % pewności ze wszystko działa.
func int getbool(var int zmienna,var int pozycja_bitu){
var int b;
b = zmienna << (32 - pozycja_bitu);
if (b < 0){
return 1;
}else{
return 0;
};
};
func int setbool(var int zmienna,var int pozycja_bitu,var int wartosc){
if (wartosc == 1){
return zmienna|(wartosc << (pozycja_bitu-1));
};
if (wartosc == 0){
return ~((~zmienna)|(1 << (pozycja_bitu-1)));
};
};
Teraz jak je wykorzystać ? Przykładowo skorzystamy tylko z 4 pierwszych pozycji. Zapiszemy prawda, fałsz, fałsz, prawda.
ZAPISYWANIE
var int super_zmienna;
super_zmienna = setbool(0,1,TRUE);//pierwszy parametr (0) oznacza wartość do której będzie dopisywana wartość logiczna
//0 - zerowanie zmiennej
//drugi parametr(1) określa pozycje bitu
//trzeci parametr(TRUE) określa wartość logiczna do zapisania
super_zmienna = setbool(super_zmienna,2,FALSE);//przy kolejnych pierwszym parametrem jest zmienna bo teraz dopisujemy bity do tego co już zapisalismy w tej zmiennej
super_zmienna = setbool(super_zmienna,3,FALSE);
super_zmienna = setbool(super_zmienna,4,TRUE);
ODCZYTYWANIE
Z tym chyba nikt nie powinien mieć problemu podajemy zmienną i pozycje do odczytania.
getbool(super_zmienna,4);//zwróci nam TRUE bo na 4 pozycji taką właśnie wartość zapisaliśmy.
getbool(super_zmienna,1);//to tez TRUE
getbool(super_zmienna,3);//FALSE
getbool(super_zmienna,2);//FALSE
o wszystkich nie powodzeniach i nie działających wypadkach piszcie.
Dla was ma nie być pozycji zero !!!

Przy odczycie 0 to 32 pozycja
Przy zapisie 0 to pozycja -1 więc będą błędy.
Do określania pozycji wartości używajcie liczb z zakresu od 1 do 32.
EDIT : Skrypty Lehona są lepsze (4 post) więc korzystajcie z nich działają na tej samej zasadzie z tą różnicą ze pozycje podajemy w zakresie od 0 do 31.