enum _CPP(class) Limb _CPP(: uint16_t) { _CPP(None)_C(None_) = 0x0000, Torso = 0x0001, Head1 = Torso << 1, Head2 = Head1 << 1, LeftArm1 = Head2 << 1, LeftArm2 = LeftArm1 << 1, RightArm1 = LeftArm2 << 1, RightArm2 = RightArm1 << 1, LeftLeg1 = RightArm2 << 1, LeftLeg2 = LeftLeg1 << 1, LeftLeg3 = LeftLeg2 << 1, RightLeg1 = LeftLeg3 << 1, RightLeg2 = RightLeg1 << 1, RightLeg3 = RightLeg2 << 1, Brain = RightLeg3 << 1, Weapon = Brain << 1, TORSO = (Torso), HEAD = (Head1 | Head2), LEFT_ARM = (LeftArm1 | LeftArm2), RIGHT_ARM = (RightArm1 | RightArm2), LEFT_LEG = (LeftLeg1 | LeftLeg2 | LeftLeg3), RIGHT_LEG = (RightLeg1 | RightLeg2 | RightLeg3), BRAIN = (Brain), WEAPON = (Weapon), ALL_LIMBS = (TORSO | HEAD | LEFT_ARM | RIGHT_ARM | LEFT_LEG | RIGHT_LEG | BRAIN | WEAPON), };
typedef uint16_t Limb;
const Limb: { None_ = 0x0000, Torso = 0x0001, Head1 = Torso << Torso, Head2 = Head1 << Torso, LeftArm1 = Head2 << Torso, LeftArm2 = LeftArm1 << Torso, RightArm1 = LeftArm2 << Torso, RightArm2 = RightArm1 << Torso, LeftLeg1 = RightArm2 << Torso, LeftLeg2 = LeftLeg1 << Torso, LeftLeg3 = LeftLeg2 << Torso, RightLeg1 = LeftLeg3 << Torso, RightLeg2 = RightLeg1 << Torso, RightLeg3 = RightLeg2 << Torso, Brain = RightLeg3 << Torso, Weapon = Brain << Torso, TORSO = (Torso), HEAD = (Head1 | Head2), LEFT_ARM = (LeftArm1 | LeftArm2), RIGHT_ARM = (RightArm1 | RightArm2), LEFT_LEG = (LeftLeg1 | LeftLeg2 | LeftLeg3), RIGHT_LEG = (RightLeg1 | RightLeg2 | RightLeg3), BRAIN = (Brain), WEAPON = (Weapon), ALL_LIMBS = (TORSO | HEAD | LEFT_ARM | RIGHT_ARM | LEFT_LEG | RIGHT_LEG | BRAIN | WEAPON), }