flags

Ein Satz von 'Schaltern', die sich entweder auf 'an' ('on') oder zurück auf 'aus' ('off') setzen lassen. Alle Flags werden per default zurückgesetzt. Flags können in der Definition gesetzt werden und zur Laufzeit gesetzt, zurückgesetzt oder gelesen werden.

Bemerkungen:

Beispiel (C-Script):

ENTITY* gun { ... flags = BRIGHT | PASSABLE; ... }
...
gun.ZNEAR = ON;  // set the ZNEAR flag of the gun object
gun.ZNEAR = OFF; // reset the ZNEAR flag of the gun object
if (gun.ZNEAR == ON) { ... } // read the ZNEAR flag of the my object

Beispiel (lite-C):

ENTITY* gun { ... flags = BRIGHT | PASSABLE; ... }
...
gun.flags |= ZNEAR;  // set the ZNEAR flag of the my object
gun.flags &= ~ZNEAR; // reset the ZNEAR flag of the my object
if (gun.flags & ZNEAR) { ... } // read the ZNEAR flag of the my object
 LC  Zur Vereinfachung wurden in acknex.h einige Makros zum Setzen, Zurücksetzen, Toggeln oder Testen von Flags. definiert:
#define set(obj,flag) obj.flags |= (flag)
#define reset(obj,flag) obj.flags &= ~(flag)
#define toggle(obj,flag) obj.flags ^= (flag)
#define is(obj,flag) (obj.flags & (flag))
...
set(my,ZNEAR);
reset(my,ZNEAR);
toggle(my,ZNEAR);
if is(my,ZNEAR) { ... }
        
 LC  In lite-C lassen sich diverse Flags in einem einzigen Statement setzen und zurücksetzen.
mypanel.flags |= (SHOW | LIGHT | ZNEAR);
set(mypanel, SHOW | LIGHT | ZNEAR);

► Aktuelle Version Online