From a0fe785fe2cafe648c21b3cdcdf8996329f1afdd Mon Sep 17 00:00:00 2001
From: Allanis <allanis@saracraft.net>
Date: Wed, 19 Jun 2013 21:55:13 +0100
Subject: [PATCH] [Add] <resedit> hacked together chance for multiple fleets
 with differenct chance of the same type.

---
 utils/resedit/data.py  | 28 ++++++++++++++++------------
 utils/resedit/space.py | 19 +++++++++++++------
 2 files changed, 29 insertions(+), 18 deletions(-)

diff --git a/utils/resedit/data.py b/utils/resedit/data.py
index c162c7e..02c3c7f 100644
--- a/utils/resedit/data.py
+++ b/utils/resedit/data.py
@@ -33,11 +33,12 @@ def load_Tag(node, do_array=None, do_special=None):
   i = 0
 
   # Figure out if we need an array or dic.
-  if do_array != None and node.nodeName in do_array:
-    array = []
+  array = []
+  section = {}
+  if(do_array != None and node.nodeName in do_array) or \
+      (do_special != None and node.nodeName in do_special):
     use_array = True
   else:
-    section = {}
     use_array = False
 
   for child in filter(lambda x: x.nodeType == x.ELEMENT_NODE, node.childNodes):
@@ -50,13 +51,14 @@ def load_Tag(node, do_array=None, do_special=None):
       section[child.nodeName] = children
 
     # Big ugly hack to use list instead of array.
-    elif use_array:
+    elif use_array and node.nodeName in do_array:
       array.append(child.firstChild.data)
 
     # Uglier hack for special things.
-    elif do_special != None and node.nodeName in do_special.keys():
+    elif use_array and do_special != None and node.nodeName in do_special.keys():
       section[child.firstChild.data] = \
           child.attributes[do_special[node.nodeName]].value
+      array.append(section)
 
     elif n > 0:
       section[child.nodeName] = children
@@ -111,13 +113,15 @@ def save_Tag(xml, parent, data, do_array=None, do_special=None):
 
     # Check see if we need to run the ULTRA UBER HACK!
     elif do_special != None and key in do_special.keys():
-      for key2, value2 in value.items():
-        node2 = xml.createElement(do_special[key][0])
-        node2.setAttribute(do_special[key][1], value2)
-        txtnode = xml.createTextNode(str(key2))
-        node2.appendChild(txtnode)
-        node.appendChild(node2)
-    
+      for item in value:
+        for key2, value2 in item.items(): # Should only be one member.
+          node2 = xml.createElement(do_special[key][0])
+          node2.setAttribute(do_special[key][1], value2)
+          txtnode = xml.createTextNode(str(key2))
+          node2.appendChild(txtnode)
+          node.appendChild(node2)
+        
+
     elif isinstance(value, dict):
       save_Tag(xml, node, value, do_array, do_special)
 
diff --git a/utils/resedit/space.py b/utils/resedit/space.py
index 5f32667..fab4aa6 100644
--- a/utils/resedit/space.py
+++ b/utils/resedit/space.py
@@ -241,8 +241,9 @@ class Space:
 
     # Load fleets.
     fleets = gtk.ListStore(str, int)
-    for fleet, chance in system["fleets"].items():
-      treenode = fleets.append([fleet, int(chance)])
+    for item in system["fleets"]:
+      for fleet, chance in item.items():
+        treenode = fleets.append([fleet, int(chance)])
     wgt = self.__swidget("treFleets")
     if wgt.get_column(0):
       wgt.remove_column(wgt.get_column(0))
@@ -644,20 +645,26 @@ class Space:
       iter = tree.get_selection().get_selected()[1]
     except:
       return ""
-    return model.get_value(iter, 0)
+    return model.get_value(iter, 0), mode.get_value(iter, 1)
 
   def __fleet_add(self, wgt=None, event=None):
     fleet = self.__swidget("comFleets").get_active_text()
     value = self.__swidget("spiFleets").get_value_as_int()
     if fleet != "None" and value > 0:
-      self.systems[self.cur_system]["fleets"][fleet] = str(value)
+      self.systems[self.cur_system]["fleets"].append({fleet:str(value)})
       self.__supdate()
 
   def __fleet_rm(self, wgt=None, event=None):
-    sel = self.__fleet_sel()
+    sel, chance = self.__fleet_sel()
     if sel is "":
       return
-    del self.systems[self.cur_system]["fleets"][sel]
+    i = 0
+    for item in self.systems[self.cur_system]["fleets"]:
+      for key, value in item.items():
+        if key == sel and value == chance:
+          self.systems[self.cur_system]["fleets"].pop(i)
+      i = i+1
+    print self.systems[self.cur_system]["fleets"]
     self.__supdate()
 
   """