Index: /branches/czw_branch/cleanup/ppImage/src/ppImageBurntoolMask.c
===================================================================
--- /branches/czw_branch/cleanup/ppImage/src/ppImageBurntoolMask.c	(revision 25155)
+++ /branches/czw_branch/cleanup/ppImage/src/ppImageBurntoolMask.c	(revision 25155)
@@ -0,0 +1,65 @@
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "ppImage.h"
+
+bool ppImageBurntoolMask (pmConfig *config, ppImageOptions *options, pmFPAview *view) {
+
+  bool status = true;
+  pmFPAfile *inputFile = psMetadataLookupPtr(&status , config->files, "PPIMAGE.INPUT");
+  if (!status) {
+    psError(PS_ERR_IO,false, "Unable to identify inputFile");
+    return(false);
+  }
+
+  psFits *fits = inputFile->fits;
+
+  if (!psFitsMoveExtName(fits,"burntool_areas")) {
+    psError(PS_ERR_IO,false, "Unable to find extension burntool_areas");
+    return(false);
+  }
+  long Nrows = psFitsTableSize(fits);  
+  long row = 0;
+  
+  pmFPAview *detview = pmFPAviewAlloc(0);
+  *detview = *view;
+  detview->readout = 0;
+  pmReadout *mask = pmFPAfileThisReadout(config->files,detview,"PPIMAGE.MASK");
+  psImage *image = mask->mask;
+
+  psImageMaskType maskValue = psMetadataLookupS32(&status,config,"PPIMAGE.BURNTOOL_MASK");
+  
+  for (row = 0; row < Nrows; row++) {
+    psMetadata *rowMD = psFitsReadTableRow(fits,row);
+
+    if (psMetadataLookupS32(&status,rowMD,"cell") == detview->cell) {
+
+      if (psMetadataLookupS32(&status,rowMD,"func") != -1) { // This should be an actual check
+
+	for (int i = psMetadataLookupS32(&status,rowMD,"sxfit");
+	     i <= psMetadataLookupS32(&status,rowMD,"exfit");
+	     i++) {
+
+	  if (psMetadataLookupS32(&status,rowMD,"up") == 0) {
+	    for (int j = 0; j <= psMetadataLookupS32(&status,rowMD,"y1p"); j++) {
+	      image->data.PS_TYPE_IMAGE_MASK_DATA[j][i] |= maskValue;
+	    }
+	  }
+	  else {
+	    for (int j = psMetadataLookupS32(&status,rowMD,"y1m") j < image->numRows ; j++) {
+	      image->data.PS_TYPE_IMAGE_MASK_DATA[j][i] |= maskValue;
+	    }
+	  }
+	}
+
+      }
+    }
+  }
+
+  return(status);
+}
+	    
+
+
+    
