private static DonatorAccountSettings GetSettings(Account acc)
        {
            DonatorAccountSettings settings;

            if ((settings = (DonatorAccountSettings)DonatorAccountSettingsTable[acc]) == null)
            {
                settings = new DonatorAccountSettings(acc);
                DonatorAccountSettingsTable.Add(acc, settings);
            }
            return(settings);
        }
        public static void Load()
        {
            Console.Write("DonatorAccountSettings: Loading...");

            string idxPath = Path.Combine("Saves/Donation", "DonatorAccountSettings.idx");
            string binPath = Path.Combine("Saves/Donation", "DonatorAccountSettings.bin");

            if (File.Exists(idxPath) && File.Exists(binPath))
            {
                // Declare and initialize reader objects.
                FileStream       idx       = new FileStream(idxPath, FileMode.Open, FileAccess.Read, FileShare.Read);
                FileStream       bin       = new FileStream(binPath, FileMode.Open, FileAccess.Read, FileShare.Read);
                BinaryReader     idxReader = new BinaryReader(idx);
                BinaryFileReader binReader = new BinaryFileReader(new BinaryReader(bin));

                // Start by reading the number of duels from an index file
                int orderCount = idxReader.ReadInt32();

                for (int i = 0; i < orderCount; ++i)
                {
                    DonatorAccountSettings das = new DonatorAccountSettings();
                    // Read start-position and length of current order from index file
                    long startPos = idxReader.ReadInt64();
                    int  length   = idxReader.ReadInt32();
                    // Point the reading stream to the proper position
                    binReader.Seek(startPos, SeekOrigin.Begin);

                    try
                    {
                        das.Deserialize(binReader);

                        if (binReader.Position != (startPos + length))
                        {
                            throw new Exception(String.Format("***** Bad serialize on DonatorAccountSettings[{0}] *****", i));
                        }
                    }
                    catch
                    {
                        //handle
                    }
                    if (das != null && das.m_Account != null)
                    {
                        DonatorAccountSettingsTable.Add(das.m_Account, das);
                    }
                }
                // Remember to close the streams
                idxReader.Close();
                binReader.Close();
            }

            Console.WriteLine("done");
        }
		public static void Load()
		{
			Console.Write("DonatorAccountSettings: Loading...");

			string idxPath = Path.Combine( "Saves/Donation", "DonatorAccountSettings.idx" );
			string binPath = Path.Combine( "Saves/Donation", "DonatorAccountSettings.bin" );

			if (File.Exists(idxPath) && File.Exists(binPath))
			{
				// Declare and initialize reader objects.
				FileStream idx = new FileStream(idxPath, FileMode.Open, FileAccess.Read, FileShare.Read);
				FileStream bin = new FileStream(binPath, FileMode.Open, FileAccess.Read, FileShare.Read);
				BinaryReader idxReader = new BinaryReader(idx);
				BinaryFileReader binReader = new BinaryFileReader(new BinaryReader(bin));

				// Start by reading the number of duels from an index file
				int orderCount = idxReader.ReadInt32();

				for (int i = 0; i < orderCount; ++i)
				{

					DonatorAccountSettings das = new DonatorAccountSettings();
					// Read start-position and length of current order from index file
					long startPos = idxReader.ReadInt64();
					int length = idxReader.ReadInt32();
					// Point the reading stream to the proper position
					binReader.Seek(startPos, SeekOrigin.Begin);

					try
					{
						das.Deserialize(binReader);

						if (binReader.Position != (startPos + length))
							throw new Exception(String.Format("***** Bad serialize on DonatorAccountSettings[{0}] *****", i));
					}
					catch
					{
						//handle
					}
					if ( das != null && das.m_Account != null )
						DonatorAccountSettingsTable.Add( das.m_Account, das );
				}
				// Remember to close the streams
				idxReader.Close();
				binReader.Close();
			}

			Console.WriteLine("done");
		}
		private static DonatorAccountSettings GetSettings( Account acc )
		{
			DonatorAccountSettings settings;
			if ( (settings = (DonatorAccountSettings)DonatorAccountSettingsTable[acc]) == null )
			{
				settings = new DonatorAccountSettings( acc );
				DonatorAccountSettingsTable.Add( acc, settings );
			}
			return settings;
		}
        public static void SetRobeHue(Account acc, int hue)
        {
            DonatorAccountSettings settings = GetSettings(acc);

            settings.m_RobeHue = hue;
        }
        public static int GetRobeHue(Account acc)
        {
            DonatorAccountSettings settings = GetSettings(acc);

            return(settings.m_RobeHue);
        }
        public static int GetBandanaHue(Account acc)
        {
            DonatorAccountSettings settings = GetSettings(acc);

            return(settings.m_BandanaHue);
        }