Index: trunk/ab5.0/jenga/include/common/Environment.h
===================================================================
--- trunk/ab5.0/jenga/include/common/Environment.h	(revision 694)
+++ trunk/ab5.0/jenga/include/common/Environment.h	(revision 718)
@@ -19,5 +19,5 @@
 	{
 		static std::string appDir;
-		if( appDir.size() == 0 )
+		if( appDir.empty() )
 		{
 			char temporary[MAX_PATH];
@@ -40,5 +40,5 @@
 	{
 		static std::string appFileName;
-		if( appFileName.size() == 0 )
+		if( appFileName.empty() )
 		{
 			char temporary[MAX_PATH];
@@ -57,5 +57,5 @@
 	{
 		static std::string appFilePath;
-		if( appFilePath.size() == 0 )
+		if( appFilePath.empty() )
 		{
 			char temporary[MAX_PATH];
@@ -66,4 +66,25 @@
 		return appFilePath;
 	}
+
+	static const std::string &GetUserAppDir()
+	{
+		static std::string userAppDir;
+		if( userAppDir.empty() )
+		{
+			char szDirPath[MAX_PATH];
+			if( SHGetSpecialFolderPath( NULL, szDirPath, CSIDL_APPDATA, TRUE ) == FALSE )
+			{
+				throw;
+			}
+			userAppDir = szDirPath;
+
+			if( userAppDir[userAppDir.size()-1] == '\\' )
+			{
+				userAppDir = userAppDir.substr( 0, userAppDir.size() - 1 );
+			}
+		}
+
+		return userAppDir;
+	}
 };
 
