Index: /trunk/src/scriptbuilder/gui/ScriptBuilderFrame.java
===================================================================
--- /trunk/src/scriptbuilder/gui/ScriptBuilderFrame.java	(revision 85)
+++ /trunk/src/scriptbuilder/gui/ScriptBuilderFrame.java	(revision 87)
@@ -1461,5 +1461,5 @@
      */
     private void incidentOkButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_incidentOkButtonActionPerformed
-        if (!editingIncident)
+        if (!editingIncident)//adding new incident
         {
             boolean found = false;
@@ -1507,34 +1507,49 @@
             script.numberOfIncidents++;
         }
-        else
-        {
-            ScriptIncident backup = script.incidents.get(oldIncidentIndex);
-            script.incidents.remove(oldIncidentIndex);
-            script.incidents.add(oldIncidentIndex, null);
-
-            for (ScriptIncident i : script.incidents)
-            {
-                if (i != null && i.number == (Integer) addIncidentNumber.getValue())
-                {
-                    script.incidents.remove(oldIncidentIndex);
-                    script.incidents.add(oldIncidentIndex, backup);
-                    JOptionPane.showMessageDialog(this, "Incident number already in use.",
-                            "Unable to Create Incident", JOptionPane.ERROR_MESSAGE);
-                    incidentFrame.setVisible(true);
-                    return;
-                }
-            }
-
-            script.incidents.remove(oldIncidentIndex);
-            SimulationScript.incidentColors[oldIncidentIndex] = selectedColor;
-            script.incidents.add(oldIncidentIndex,
-                    new ScriptIncident(SimulationScript.incidentColors[oldIncidentIndex],
-                            (Integer) addIncidentNumber.getValue(), addIncidentName.getText(), addIncidentDescription.getText(),
-                            script));
-            script.incidents.get(oldIncidentIndex).length = (Integer) addIncidentLength.getValue() * 60;
-            script.incidents.get(oldIncidentIndex).slices = backup.slices;
-            script.incidents.get(oldIncidentIndex).offset = backup.offset;
-            script.incidents.get(oldIncidentIndex).setOffset((Integer) addIncidentStart.getValue() * 60);
-            script.numberOfIncidents++;
+        else//editing existing incident
+        {
+//            //what the hell?
+//            ScriptIncident backup = script.incidents.get(oldIncidentIndex);
+//            script.incidents.remove(oldIncidentIndex);
+//            script.incidents.add(oldIncidentIndex, null);
+//
+//            for (ScriptIncident i : script.incidents)
+//            {
+//                if (i != null && i.number == (Integer) addIncidentNumber.getValue())
+//                {
+//                    script.incidents.remove(oldIncidentIndex);
+//                    script.incidents.add(oldIncidentIndex, backup);
+//                    JOptionPane.showMessageDialog(this, "Incident number already in use.",
+//                            "Unable to Create Incident", JOptionPane.ERROR_MESSAGE);
+//                    incidentFrame.setVisible(true);
+//                    return;
+//                }
+//            }
+//
+//            //ugh why do it like this
+//            script.incidents.remove(oldIncidentIndex);
+//            SimulationScript.incidentColors[oldIncidentIndex] = selectedColor;
+//            script.incidents.add(oldIncidentIndex,
+//                    new ScriptIncident(SimulationScript.incidentColors[oldIncidentIndex],
+//                            (Integer) addIncidentNumber.getValue(), addIncidentName.getText(), addIncidentDescription.getText(),
+//                            script));
+//            script.incidents.get(oldIncidentIndex).length = (Integer) addIncidentLength.getValue() * 60;
+//            script.incidents.get(oldIncidentIndex).slices = backup.slices;
+//            script.incidents.get(oldIncidentIndex).offset = backup.offset;
+//            script.incidents.get(oldIncidentIndex).setOffset((Integer) addIncidentStart.getValue() * 60);
+
+            script.incidents.get(oldIncidentIndex).color = selectedColor;
+            script.incidents.get(oldIncidentIndex).name = addIncidentName.getText();
+            script.incidents.get(oldIncidentIndex).description = addIncidentDescription.getText();
+            script.incidents.get(oldIncidentIndex).setOffset(((int) addIncidentStart.getValue()) * 60);
+            if (!scriptContainsLogNum(script, (int) addIncidentNumber.getValue()))
+            {
+                script.incidents.get(oldIncidentIndex).number = (int) addIncidentNumber.getValue();
+            }
+            else
+            {
+                JOptionPane.showMessageDialog(this, "Incident number already in use.",
+                        "Unable To Alter Incident Detail", JOptionPane.ERROR_MESSAGE);
+            }
         }
 
@@ -1543,4 +1558,16 @@
         repaint();
     }//GEN-LAST:event_incidentOkButtonActionPerformed
+
+    private boolean scriptContainsLogNum(SimulationScript script, int num)
+    {
+        for (ScriptIncident incident : script.incidents)
+        {
+            if (incident != null && incident.number == num)
+            {
+                return true;
+            }
+        }
+        return false;
+    }
 
     /**
@@ -1865,7 +1892,9 @@
         if (newColor != null)
         {
+            System.out.println("New color is " + newColor.toString());
             selectedColor = newColor;
             incidentColorField.setBackground(newColor);
         }
+        incidentFrame.setVisible(true);
     }//GEN-LAST:event_jButton3ActionPerformed
 
