private GameObjectDefinition getChildDefinition() { int child = -1; if (varBitId != -1) { VarBit varBit = VarBit.values[varBitId]; int configId = varBit.configId; int lsb = varBit.leastSignificantBit; int msb = varBit.mostSignificantBit; int bit = ConstantData.GetBitfieldMaxValue(msb - lsb); child = clientInstance.GetInterfaceSettings(configId) >> lsb & bit; } else if (configId != -1) { child = clientInstance.GetInterfaceSettings(configId); } if (child < 0 || child >= childrenIds.Length || childrenIds[child] == -1) { return(null); } else { return(GameObjectDefinition.getDefinition(childrenIds[child])); } }