Object Character Flags
Object Character Flags sind Attribute eines Objekts, die sich als Kombination aus einigen DefCore-Einträgen sowie dem aktuellen Zustand des Objekts in der Landschaft ergeben. Da sich diese Flags aus dem gegenwärtigen Zustand des Objekts ergeben, und automatisch von der Engine gesetzt werden, können sie natürlich nur getestet, und nicht direkt per Script manipuliert werden.
Alle OCF-Flags sind als Bitmaske in einem 32Bit-DWORD gespeichert. Dadurch können sie mit einem einfachen bitweisen "und" getestet werden. Also zum Beispiel:
if (object->GetOCF() & OCF_Living) Log("The object is a living being.");
Die häufigste Anwendung für OCFs sind FindObjects-Schleifen:
for (var obj in FindObjects(Find_InRect(-100,-100,200,200), Find_OCF(OCF_Rotate),Find_NoContainer()) obj->SetR(180);
Dieses Script dreht alle Objekte auf den Kopf.
OCF-Konstanten
Es sind folgende OCFs im Script definiert:
OCF_Alive, OCF_Available, OCF_Chop, OCF_Collectible, OCF_Collection, OCF_Construct, OCF_Container, OCF_CrewMember, OCF_Entrance, OCF_Exclusive, OCF_Fullcon, OCF_Grab, OCF_HitSpeed1, OCF_HitSpeed2, OCF_HitSpeed3, OCF_HitSpeed4, OCF_Inflammable, OCF_InFree, OCF_InLiquid, OCF_InSolid, OCF_Living, OCF_NotContained, OCF_OnFire, OCF_Rotate