# HG changeset patch # User sirebral # Date 1263609423 21600 # Node ID fa18af3e04b980cdfc667382eb166ed2667f563a # Parent 12ba14d30baa9f972cf09876cf68795f2bfd8f42 Traipse Alpha 'OpenRPG' {100115-01} Traipse is a distribution of OpenRPG that is designed to be easy to setup and go. Traipse also makes it easy for developers to work on code without fear of sacrifice. 'Ornery-Orc' continues the trend of 'Grumpy' and adds fixes to the code. 'Ornery-Orc's main goal is to offer more advanced features and enhance the productivity of the user. Update Summary (Keeping up with Beta) New Features: Added Bookmarks Added 'boot' command to remote admin Added confirmation window for sent nodes Minor changes to allow for portability to an OpenSUSE linux OS Miniatures Layer pop up box allows users to turn off Mini labels, from FlexiRPG Zoom Mouse plugin added Images added to Plugin UI Switching to Element Tree Map efficiency, from FlexiRPG Added Status Bar to Update Manager New TrueDebug Class in orpg_log (See documentation for usage) Portable Mercurial Tip of the Day added, from Core and community New Reference Syntax added for custom PC sheets New Child Reference for gametree New Parent Reference for gametree New Gametree Recursion method, mapping, context sensitivity, and effeciency.. New Features node with bonus nodes and Node Referencing help added Dieroller structure from Core New DieRoller portability for odd Dice Added 7th Sea die roller; ie [7k3] = [7d10.takeHighest(3).open(10)] New 'Mythos' System die roller added Added new vs. die roller method for WoD; ie [3v3] = [3d10.vs(3)]. Included for Mythos roller also New Warhammer FRPG Die Roller (Special thanks to Puu-san for the support) New EZ_Tree Reference system. Push a button, Traipse the tree, get a reference (Beta!) Fixes: Fix to Text based Server Fix to Remote Admin Commands Fix to Pretty Print, from Core Fix to Splitter Nodes not being created Fix to massive amounts of images loading, from Core Fix to Map from gametree not showing to all clients Fix to gametree about menus Fix to Password Manager check on startup Fix to PC Sheets from tool nodes. They now use the tabber_panel Fix to Whiteboard ID to prevent random line or text deleting. Fixes to Server, Remote Server, and Server GUI Fix to Update Manager; cleaner clode for saved repositories Fixes made to Settings Panel and now reactive settings when Ok is pressed Fixes to Alternity roller's attack roll. Uses a simple Tuple instead of a Splice Fix to Use panel of Forms and Tabbers. Now longer enters design mode Fix made Image Fetching. New fetching image and new failed image Modified ID's to prevent non updated clients from ruining the fix. default_manifest.xml renamed to default_upmana.xml diff -r 12ba14d30baa -r fa18af3e04b9 orpg/gametree/nodehandlers/containers.py --- a/orpg/gametree/nodehandlers/containers.py Fri Jan 15 00:09:39 2010 -0600 +++ b/orpg/gametree/nodehandlers/containers.py Fri Jan 15 20:37:03 2010 -0600 @@ -200,10 +200,10 @@ def __init__(self, xml, tree_node): container_handler.__init__(self, xml, tree_node) - def get_design_panel(self,parent): + def get_design_panel(self, parent): return tabbed_panel(parent, self, 1) - def get_use_panel(self,parent): + def get_use_panel(self, parent): return tabbed_panel(parent, self, 0) @@ -212,6 +212,7 @@ orpgTabberWnd.__init__(self, parent, style=FNB.FNB_NO_X_BUTTON) self.handler = handler self.parent = parent + if mode == 1: self.AddPage(tabbed_edit_panel(parent, handler), 'Tabber', False) handler.tree.traverse(handler.mytree_node, self.pick_panel, mode, False) parent.SetSize(self.GetBestSize()) @@ -229,9 +230,9 @@ component.get('frame').TraipseSuiteWarn('item') if panel: self.AddPage(panel, name, False) -class tabbed_edit_panel(orpgTabberWnd): +class tabbed_edit_panel(wx.Panel): def __init__(self, parent, handler): - orpgTabberWnd.__init__(self, parent, style=FNB.FNB_NO_X_BUTTON) + wx.Panel.__init__(self, parent, -1, style=FNB.FNB_NO_X_BUTTON) self.handler = handler self.parent = parent main_sizer = wx.StaticBoxSizer(wx.StaticBox(self, -1, "Tabber"), wx.VERTICAL) @@ -241,8 +242,10 @@ self.SetSizer(main_sizer) self.SetAutoLayout(True) self.Fit() + parent.SetSize(self.GetBestSize()) self.Bind(wx.EVT_TEXT, self.on_text, id=1) + def on_text(self,evt): txt = self.title.GetValue() if txt != "": diff -r 12ba14d30baa -r fa18af3e04b9 orpg/gametree/nodehandlers/forms.py --- a/orpg/gametree/nodehandlers/forms.py Fri Jan 15 00:09:39 2010 -0600 +++ b/orpg/gametree/nodehandlers/forms.py Fri Jan 15 20:37:03 2010 -0600 @@ -384,10 +384,9 @@ complete = complete + obj.xml.get('name') + '@!' elif do == 'Parent': while start[0] == end[0]: - top = start[0] del end[0], start[0] if len(start) == 0 or len(end) == 0: break - complete = "!#" + top + "::" + complete = "!#" for e in end: complete += e +'::' complete = complete + obj.xml.get('name') + '#!' elif do == 'Child': @@ -695,7 +694,6 @@ sizer = wx.StaticBoxSizer(wx.StaticBox(self, -1, "List Box Properties"), wx.VERTICAL) self.text = wx.TextCtrl(self, P_TITLE, handler.xml.get('name')) - self.listbox = wx.ListCtrl(self, LIST_CTRL, style=wx.LC_REPORT) self.listbox.InsertColumn(0, 'Caption') self.listbox.InsertColumn(1, 'Value') @@ -830,10 +828,9 @@ complete = complete + obj.xml.get('name') + '@!' elif do == 'Parent': while start[0] == end[0]: - top = start[0] del end[0], start[0] if len(start) == 0 or len(end) == 0: break - complete = "!#" + top + "::" + complete = "!#" for e in end: complete += e +'::' complete = complete + obj.xml.get('name') + '#!' elif do == 'Child': diff -r 12ba14d30baa -r fa18af3e04b9 orpg/gametree/nodehandlers/rpg_grid.py --- a/orpg/gametree/nodehandlers/rpg_grid.py Fri Jan 15 00:09:39 2010 -0600 +++ b/orpg/gametree/nodehandlers/rpg_grid.py Fri Jan 15 20:37:03 2010 -0600 @@ -487,10 +487,9 @@ complete = complete + obj.xml.get('name') + '@!' elif do == 'Parent': while start[0] == end[0]: - top = start[0] del end[0], start[0] if len(start) == 0 or len(end) == 0: break - complete = "!#" + top + "::" + complete = "!#" for e in end: complete += e +'::' complete = complete + obj.xml.get('name') + '#!' elif do == 'Child': diff -r 12ba14d30baa -r fa18af3e04b9 orpg/networking/mplay_server.py --- a/orpg/networking/mplay_server.py Fri Jan 15 00:09:39 2010 -0600 +++ b/orpg/networking/mplay_server.py Fri Jan 15 20:37:03 2010 -0600 @@ -887,7 +887,7 @@ print def broadcast(self,msg): - self.send_to_all("0","" + msg + "") + self.send_to_all("0","" + msg + "") def console_log(self): if self.log_to_console == 1: @@ -1107,9 +1107,8 @@ (remote_host,remote_port) = newsock.getpeername() bad_xml_string = "Your client sent an illegal message to the server and will be disconnected. " bad_xml_string += "Please report this bug to the development team at:
" -########## - bad_xml_string += "Traipse OpenRPG bugs " - bad_xml_string += "(http://www.assembla.com/wiki/show/traipse_dev)
" + bad_xml_string += "OpenRPG bugs " + bad_xml_string += "(http://sourceforge.net/tracker/?group_id=2237&atid=102237)
" self.sendMsg( newsock, "" + bad_xml_string, new_stub.useCompression, new_stub.compressionType) @@ -1321,6 +1320,16 @@ try: newsock.close() except: pass return #returning causes connection thread instance to terminate + # Clear out the xml_dom in preparation for new stuff, if necessary + """try: if xml_dom: xml_dom.unlink() + + except: + self.log_msg( "The following exception caught unlinking xml_dom:") + self.log_msg("Continuing") + try: newsock.close() + except: pass + return #returning causes connection thread instance to terminate + # Parse the XML received from the connecting client""" try: xml_dom = XML(data) @@ -2136,6 +2145,7 @@ except: pass def send(self,msg,player,group): + debug(msg) self.players[player].send(msg,player,group) def send_to_all(self,from_id,data): @@ -2150,8 +2160,9 @@ self.log_msg("Exception: send_to_all(): " + str(e)) def send_to_group(self, from_id, group_id, data): - data = ("" + data + "") + #data = ("" + data + "") data = ServerPlugins.postParseIncoming(data) #Function breaks here. + debug(data) try: self.p_lock.acquire() keys = self.groups[group_id].get_player_ids() @@ -2175,8 +2186,10 @@ def send_group_list(self, to_id, action="new"): try: + print self.groups for key in self.groups: xml = self.groups[key].toxml(action) + print xml, key self.players[to_id].outbox.put(xml) except Exception, e: self.log_msg("Exception: send_group_list(): (client #"+to_id+") : " + str(e)) @@ -2539,7 +2552,7 @@ pl += "" pl += "Statistics: groups: " + str(len(self.groups)) + " " pl += "players: " + str(len(self.players)) + "" - except Exception, e: print e; self.log_msg(str(e)) + except Exception, e: self.log_msg(str(e)) self.p_lock.release() return pl diff -r 12ba14d30baa -r fa18af3e04b9 orpg/orpgCore.py --- a/orpg/orpgCore.py Fri Jan 15 00:09:39 2010 -0600 +++ b/orpg/orpgCore.py Fri Jan 15 20:37:03 2010 -0600 @@ -71,6 +71,16 @@ if self.__components.has_key(key): del self.__components[key] else: return + def strip_html(self, string): + ret_string = ""; x = 0; in_tag = 0 + for x in range(len(string)) : + if string[x] == "<" or string[x] == ">" or in_tag == 1 : + if string[x] == "<": in_tag = 1 + elif string[x] == ">": in_tag = 0 + else: pass + else: ret_string = ret_string + string[x] + return ret_string + ###Grumpy to Ornery### def add_component(self, key, com): return self.add(key, com) diff -r 12ba14d30baa -r fa18af3e04b9 orpg/orpg_version.py --- a/orpg/orpg_version.py Fri Jan 15 00:09:39 2010 -0600 +++ b/orpg/orpg_version.py Fri Jan 15 20:37:03 2010 -0600 @@ -4,7 +4,7 @@ #BUILD NUMBER FORMAT: "YYMMDD-##" where ## is the incremental daily build index (if needed) DISTRO = "Traipse Alpha" DIS_VER = "Ornery Orc" -BUILD = "100115-00" +BUILD = "100115-01" # This version is for network capability. PROTOCOL_VERSION = "1.2" diff -r 12ba14d30baa -r fa18af3e04b9 upmana/updatemana.py --- a/upmana/updatemana.py Fri Jan 15 00:09:39 2010 -0600 +++ b/upmana/updatemana.py Fri Jan 15 20:37:03 2010 -0600 @@ -5,7 +5,6 @@ from orpg.orpgCore import component from orpg.dirpath import dir_struct from orpg.tools.orpg_log import logger, crash -from orpg.tools.decorators import debugging from upmana.validate import validate from orpg.dirpath import dir_struct from mercurial import ui, hg, commands, repo, revlog, cmdutil, util @@ -18,7 +17,6 @@ sys.__stdout__.write(text) class Updater(wx.Panel): - @debugging def __init__(self, parent, component): wx.Panel.__init__(self, parent) ### Status Bar ### @@ -715,6 +713,7 @@ p.Layout() self.Refresh() self.Bind(wx.EVT_CLOSE, self.OnClose) + component.add('upmana-win', self) def OnClose(self, event): if self.main == False: self.Destroy() @@ -729,7 +728,6 @@ component.add('validate', validate) self.updater = updaterFrame(self, "OpenRPG Update Manager 1.0", component, manifest, self.main) - component.add('upmana-win', self.updater) if manifest.GetString("updatemana", "auto_update", "") == 'on' and self.main == False: self.AutoUpdate(); self.OnExit() else: pass