diff -ur src.orig/megamek/client/bot/BotConfiguration.java src/megamek/client/bot/BotConfiguration.java --- src.orig/megamek/client/bot/BotConfiguration.java 2006-09-18 01:20:30.000000000 -0400 +++ src/megamek/client/bot/BotConfiguration.java 2006-09-18 01:26:05.000000000 -0400 @@ -9,7 +9,7 @@ static { try { - BotProperties.load(new FileInputStream("mmconf/bot.properties")); //$NON-NLS-1$ + BotProperties.load(new FileInputStream(System.getProperty("user.home") + "/.megamek/mmconf/bot.properties")); //$NON-NLS-1$ } catch (Exception e) { System.out.println("Bot properties could not be loaded, will use defaults"); //$NON-NLS-1$ } diff -ur src.orig/megamek/client/Client.java src/megamek/client/Client.java --- src.orig/megamek/client/Client.java 2006-09-18 01:20:30.000000000 -0400 +++ src/megamek/client/Client.java 2006-09-18 01:30:01.000000000 -0400 @@ -922,7 +922,7 @@ case Packet.COMMAND_SEND_SAVEGAME: String sFinalFile = (String)c.getObject(0); try { - File sDir = new File("savegames"); + File sDir = new File(System.getProperty("user.home") + "/.megamek/savegames"); if (!sDir.exists()) { sDir.mkdir(); } diff -ur src.orig/megamek/common/options/GameOptions.java src/megamek/common/options/GameOptions.java --- src.orig/megamek/common/options/GameOptions.java 2006-09-18 01:20:30.000000000 -0400 +++ src/megamek/common/options/GameOptions.java 2006-09-18 01:26:15.000000000 -0400 @@ -41,7 +41,7 @@ public class GameOptions extends AbstractOptions implements Serializable { static final long serialVersionUID = 5417081099101580392L; - private static final String GAME_OPTIONS_FILE_NAME = "mmconf/gameoptions.xml"; //$NON-NLS-1$ + private static final String GAME_OPTIONS_FILE_NAME = System.getProperty("user.home") + "/.megamek/mmconf/gameoptions.xml"; //$NON-NLS-1$ public GameOptions() { super(); diff -ur src.orig/megamek/common/preference/ClientPreferences.java src/megamek/common/preference/ClientPreferences.java --- src.orig/megamek/common/preference/ClientPreferences.java 2006-09-18 01:20:31.000000000 -0400 +++ src/megamek/common/preference/ClientPreferences.java 2006-09-18 02:22:17.000000000 -0400 @@ -60,7 +60,27 @@ store.setDefault(MAP_TILESET, "defaulthexset.txt"); store.setDefault(MAX_PATHFINDER_TIME, MovePath.DEFAULT_PATHFINDER_TIME_LIMIT); store.setDefault(DATA_DIRECTORY,"data"); - store.setDefault(LOG_DIRECTORY,"logs"); + try { + File homeDataDir = new File(System.getProperty("user.home") + "/.megamek"); + if (!homeDataDir.exists()) { + homeDataDir.mkdir(); + } + File homeConfDir = new File(System.getProperty("user.home") + "/.megamek/mmconf"); + if (!homeConfDir.exists()) { + homeConfDir.mkdir(); + } + File homeSaveDir = new File(System.getProperty("user.home") + "/.megamek/savegames"); + if (!homeSaveDir.exists()) { + homeSaveDir.mkdir(); + } + File homeLogsDir = new File(System.getProperty("user.home") + "/.megamek/logs"); + if (!homeLogsDir.exists()) { + homeLogsDir.mkdir(); + } + } catch (Exception e) { + System.err.println("Unable to create " + System.getProperty("user.home") + "/.megamek directories"); + } + store.setDefault(LOG_DIRECTORY,System.getProperty("user.home") + "/.megamek/logs"); store.setDefault(MECH_DIRECTORY, store.getDefaultString(DATA_DIRECTORY) + File.separator + "mechfiles"); store.setDefault(METASERVER_NAME, "http://www.damour.info/cgi-bin/james/metaserver"); store.setDefault(GOAL_PLAYERS, 2); diff -ur src.orig/megamek/common/preference/PreferenceManager.java src/megamek/common/preference/PreferenceManager.java --- src.orig/megamek/common/preference/PreferenceManager.java 2006-09-18 01:20:31.000000000 -0400 +++ src/megamek/common/preference/PreferenceManager.java 2006-09-18 01:27:25.000000000 -0400 @@ -35,7 +35,7 @@ public class PreferenceManager { - public static final String DEFAULT_CFG_FILE_NAME = "mmconf/clientsettings.xml"; + public static final String DEFAULT_CFG_FILE_NAME = System.getProperty("user.home") + "/.megamek/mmconf/clientsettings.xml"; public static final String CFG_FILE_OPTION_NAME = "cfgfilename"; public static final String ROOT_NODE_NAME = "MegaMekSettings"; public static final String CLIENT_SETTINGS_STORE_NAME = "ClientSettings"; diff -ur src.orig/megamek/MegaMek.java src/megamek/MegaMek.java --- src.orig/megamek/MegaMek.java 2006-09-18 01:20:30.000000000 -0400 +++ src/megamek/MegaMek.java 2006-09-18 01:29:28.000000000 -0400 @@ -361,7 +361,7 @@ public void loadGame() { FileDialog fd = new FileDialog(frame, Messages.getString("MegaMek.SaveGameDialog.title"), FileDialog.LOAD); //$NON-NLS-1$ - fd.setDirectory("savegames"); //$NON-NLS-1$ + fd.setDirectory(System.getProperty("user.home") + "/.megamek/savegames"); //$NON-NLS-1$ // limit file-list to savedgames only fd.setFilenameFilter(new FilenameFilter() { public boolean accept(File dir, String name) { diff -ur src.orig/megamek/server/Server.java src/megamek/server/Server.java --- src.orig/megamek/server/Server.java 2006-09-18 01:20:30.000000000 -0400 +++ src/megamek/server/Server.java 2006-09-18 01:30:41.000000000 -0400 @@ -673,7 +673,7 @@ if (!sFinalFile.endsWith(".sav")) { sFinalFile = sFile + ".sav"; } - sFinalFile = "savegames" + File.separator + sFinalFile; + sFinalFile = System.getProperty("user.home") + "/.megamek/savegames" + File.separator + sFinalFile; File f = new File(sFinalFile); try { ObjectInputStream ois = new ObjectInputStream( @@ -699,7 +699,7 @@ sFinalFile = sFile + ".sav"; } try { - File sDir = new File("savegames"); + File sDir = new File(System.getProperty("user.home") + "/.megamek/savegames"); if (!sDir.exists()) { sDir.mkdir(); }