Mercurial > traipse_dev
view orpg/dirpath/dirpath_tools.py @ 26:65c5cb9be59c traipse_dev
This patch fixes the known issue with users not being able to set their name
in the settings menu. This version also cleans up the themes settings in
main.py and preps for Ornery Orc. Some cleaning was done with
orpg_settings.py also
author | sirebral |
---|---|
date | Fri, 31 Jul 2009 00:44:10 -0500 |
parents | 0b8b7e3ed78d |
children | 4840657c23c5 |
line wrap: on
line source
import sys import os import errno from orpg.orpg_wx import * if WXLOADED: class tmpApp(wx.App): def OnInit(self): return True #------------------------------------------------------- # void load_paths( dir_struct_reference ) # moved structure loading from dirpath.py by Snowdog 3-8-05 #------------------------------------------------------- def load_paths(dir_struct, root_dir): dir_struct["home"] = root_dir + os.sep dir_struct["core"] = dir_struct["home"] + "orpg"+ os.sep dir_struct["data"] = dir_struct["home"] + "data"+ os.sep dir_struct["d20"] = dir_struct["data"] + "d20" + os.sep dir_struct["dnd3e"] = dir_struct["data"] + "dnd3e" + os.sep dir_struct["dnd35"] = dir_struct["data"] + "dnd35" + os.sep dir_struct["SWd20"] = dir_struct["data"] + "SWd20" + os.sep dir_struct["icon"] = dir_struct["home"] + "images" + os.sep dir_struct["template"] = dir_struct["core"] + "templates" + os.sep dir_struct["plugins"] = dir_struct["home"] + "plugins" + os.sep dir_struct["nodes"] = dir_struct["template"] + "nodes" + os.sep dir_struct["rollers"] = dir_struct["core"] + "dieroller" + os.sep + "rollers" + os.sep _userbase_dir = _userbase_dir = os.environ['OPENRPG_BASE'] _user_dir = _userbase_dir + os.sep + "myfiles" + os.sep try: os.makedirs(_user_dir) os.makedirs(_user_dir + "runlogs" + os.sep); os.makedirs(_user_dir + "logs" + os.sep); os.makedirs(_user_dir + "webfiles" + os.sep); except OSError, e: if e.errno != errno.EEXIST: raise dir_struct["user"] = _user_dir dir_struct["logs"] = dir_struct["user"] + "logs" + os.sep #------------------------------------------------------- # int verify_home_path( directory_name ) # added by Snowdog 3-8-05 # updated with bailout code. Snowdog 7-25-05 #------------------------------------------------------- def verify_home_path( path ): """checks for key ORPG files in the openrpg tree and askes for user intervention if their is a problem""" try: #verify that the root dir (as supplied) exists if not verify_file(path): return 0 #These checks require that 'path' have a separator at the end. #Check and temporarily add one if needed if (path[(len(path)-len(os.sep)):] != os.sep): path = path + os.sep # These files should always exist at the root orpg dir check_files = ["orpg","data","images"] for n in range(len(check_files)): if not verify_file(path + check_files[n]): return 0 except: # an error occured while verifying the directory structure # bail out with error signal return 0 #all files and directories exist. return 1 #------------------------------------------------------- # int verify_file( absolute_path ) # added by Snowdog 3-8-05 #------------------------------------------------------- def verify_file(abs_path): """Returns True if file or directory exists""" try: os.stat(abs_path) return 1 except OSError: #this exception signifies the file or dir doesn't exist return 0 #------------------------------------------------------- # pathname get_user_help() # added by Snowdog 3-8-05 # bug fix (SF #1242456) and updated with bailout code. Snowdog 7-25-05 #------------------------------------------------------- def get_user_located_root(): """Notify the user of directory problems and show directory selection dialog """ if WXLOADED: app = tmpApp(0) app.MainLoop() dir = None try: msg = "OpenRPG cannot locate critical files.\nPlease locate the /System/ directory in the following window" alert= wx.MessageDialog(None,msg,"Warning",wx.OK|wx.ICON_ERROR) alert.Show() if alert.ShowModal() == wx.OK: alert.Destroy() dlg = wx.DirDialog(None, "Locate the openrpg1 directory:",style=wx.DD_DEFAULT_STYLE) if dlg.ShowModal() == wx.ID_OK: dir = dlg.GetPath() dlg.Destroy() app.Destroy() return dir except Exception, e: print e print "OpenRPG encountered a problem while attempting to load file dialog to locate the OpenRPG root directory." print "please delete the files ./openrpg/orpg/dirpath/aproot.py and ./openrpg/orpg/dirpath/aproot.pyc and try again." else: dir = raw_input("Enter the full path to your openrpg folder: ") return dir