public static void OnLoad()
        {
            //don't load the file if it don't exist!
            if( !File.Exists( Path.Combine( SAVE_PATH, FILENAME ) ) )
            {
                return;
            }

            using( FileStream bin = new FileStream( Path.Combine( SAVE_PATH, FILENAME ), FileMode.Open, FileAccess.Read, FileShare.Read ) )
            {
                GenericReader reader = new BinaryFileReader( new BinaryReader( bin ) );

                int version = reader.ReadInt();

                int count = reader.ReadInt();

                for( int i = 0; i < count; i++ )
                {
                    GameData.Add( new BoardGameData( reader ) );
                }

                reader.End();
            }
        }
示例#2
0
		public static void Load()
		{
            try
            {
                if (!File.Exists(Path.Combine(General.SavePath, "Gumps.bin")))
                    return;

                using (FileStream bin = new FileStream(Path.Combine(General.SavePath, "Gumps.bin"), FileMode.Open, FileAccess.Read, FileShare.Read))
                {
                    GenericReader reader = new BinaryFileReader(new BinaryReader(bin));

                    int version = reader.ReadInt();

                    if (version >= 0)
                    {
                        s_ForceMenu = reader.ReadBool();
                        int count = reader.ReadInt();
                        GumpInfo info;

                        for (int i = 0; i < count; ++i)
                        {
                            info = new GumpInfo();
                            info.Load(reader);

                            if (info.Type == null)
                                continue;

                            s_ForceInfos[info.Type] = info;
                        }

                        count = reader.ReadInt();

                        for (int i = 0; i < count; ++i)
                        {
                            info = new GumpInfo();
                            info.Load(reader);

                            if (info.Mobile == null || info.Type == null)
                                continue;

                            if (s_Infos[info.Mobile] == null)
                                s_Infos[info.Mobile] = new Hashtable();

                            ((Hashtable)s_Infos[info.Mobile])[info.Type] = info;
                        }
                    }

                    reader.End();
                }
            }
            catch (Exception e)
            {
                Errors.Report(General.Local(198));
                Console.WriteLine(e.Message);
                Console.WriteLine(e.Source);
                Console.WriteLine(e.StackTrace);
            }
		}
示例#3
0
        private static void OnLoad()
        {
            try{

            if ( !File.Exists( Path.Combine( "Saves/Chat/", "Chat.bin" ) ) )
                return;

            using ( FileStream bin = new FileStream( Path.Combine( "Saves/Chat/", "Chat.bin" ), FileMode.Open, FileAccess.Read, FileShare.Read ) )
            {
                GenericReader reader = new BinaryFileReader( new BinaryReader( bin ) );

                int version = reader.ReadInt();

                if ( version >= 12 )
                    s_PublicPlusIRC = reader.ReadBool();

                if ( version >= 11 )
                    s_FilterPenalty = (FilterPenalty)reader.ReadInt();

                if ( version >= 10 )
                    s_AllianceChat = reader.ReadBool();

                if ( version >= 9 )
                    s_AllowFaction = reader.ReadBool();

                if ( version >= 8 )
                    s_GuildMenuAccess = reader.ReadBool();

                if ( version >= 7 )
                    s_MaxPmHistory = reader.ReadInt();

                if ( version >= 6 )
                    s_IrcAutoReconnect = reader.ReadBool();

                if ( version >= 5 )
                    s_IrcMaxAttempts = reader.ReadInt();

                if ( version >= 4 )
                    s_IrcAutoConnect = reader.ReadBool();

                if ( version >= 3 )
                    s_IrcStaffColor = (IrcColor)reader.ReadInt();

                if ( version >= 2 )
                    s_IrcNick = reader.ReadString();

                if ( version >= 1 )
                {
                    s_IrcEnabled = reader.ReadBool();
                    s_IrcServer = reader.ReadString();
                    s_IrcRoom = reader.ReadString();
                    s_IrcPort = reader.ReadInt();
                }

                if ( version >= 0 )
                {
                    int count = reader.ReadInt();

                    for( int i = 0; i < count; ++i )
                        s_Filters.Add( reader.ReadString() );

                    s_SpamLimiter = reader.ReadDouble();
                    s_FilterBanLength = reader.ReadDouble();

                    if ( version < 11 )
                        reader.ReadBool(); // FilterBan removed

                    s_ShowLocation = reader.ReadBool();
                    s_ShowStaff = reader.ReadBool();
                    s_PublicStyle = (PublicStyle)reader.ReadInt();

                    count = reader.ReadInt();
                    ChatInfo info;

                    for( int i = 0; i < count; ++i )
                    {
                        info = new ChatInfo( reader.ReadMobile() );
                        if ( !info.Load( reader ) )
                            return;
                    }
                }

                reader.End();
            }

            if ( s_IrcAutoConnect )
                IrcConnection.Connection.Connect();

            }catch{ Errors.Report( "ChatInfo-> OnLoad" ); }
        }
示例#4
0
        private static void OnLoad()
        {
            try{

            if ( !File.Exists( Path.Combine( "Saves/Gumps/", "Gumps.bin" ) ) )
                return;

            using ( FileStream bin = new FileStream( Path.Combine( "Saves/Gumps/", "Gumps.bin" ), FileMode.Open, FileAccess.Read, FileShare.Read ) )
            {
                GenericReader reader = new BinaryFileReader( new BinaryReader( bin ) );

                int version = reader.ReadInt();

                if ( version >= 0 )
                {
                    int count = reader.ReadInt();
                    GumpInfo info;

                    for( int i = 0; i < count; ++i )
                    {
                        info = new GumpInfo();
                        info.Load( reader );

                        if ( info.Mobile == null || info.Type == null )
                            continue;

                        if ( s_Infos[info.Mobile] == null )
                            s_Infos[info.Mobile] = new Hashtable();

                        ((Hashtable)s_Infos[info.Mobile])[info.Type] = info;
                    }
                }

                reader.End();
            }

            }catch{ Errors.Report( "GumpInfo-> OnLoad" ); }
        }
示例#5
0
		public static void Load(bool initonly)
		{
			if (initonly)
				Console.WriteLine("Initializing ResourcePool database...");
			else
				Console.WriteLine("Resource Pool Loading...");
			
			if (!Directory.Exists("Saves/ResourcePool"))
				Directory.CreateDirectory("Saves/ResourcePool");
			
			bool newconfig = false;
			FileStream rpfs = new FileStream("Saves/ResourcePool/ResourcePool.dat", FileMode.OpenOrCreate, FileAccess.Read);
			BinaryFileReader rpreader = new BinaryFileReader(new BinaryReader(rpfs));
			if (!rpreader.End())
			{
				int rpversion = rpreader.ReadInt();
				switch (rpversion)
				{
					case 0:
					{
						m_LastModified = rpreader.ReadDateTime();
						FileInfo fi = new FileInfo("Data/ResourcePool/config.xml");
						if (fi.LastWriteTime != m_LastModified)
						{
							m_LastModified = fi.LastWriteTime;
							newconfig = true;
						}
						else
							newconfig = false;

						break;
					}
					default:
						throw new Exception("Error loading ResourcePool: Invalid ResourcePool.dat save version");
				}
			}
			else
			{
				m_LastModified = (new FileInfo("Data/ResourcePool/config.xml")).LastWriteTime;
				Console.WriteLine("Warning: Saves/ResourcePool/ResourcePool.dat not found.");
				newconfig = true;
			}

			if (newconfig)
				Console.WriteLine("New configuration detected! Reading from Data/...");
			XmlTextReader reader;
			reader = new XmlTextReader((newconfig ? "Data/ResourcePool/config.xml" : "Saves/ResourcePool/config.xml"));
			reader.WhitespaceHandling = WhitespaceHandling.None;

			FileStream rcfs = new FileStream("Saves/ResourcePool/Consignments.dat", FileMode.OpenOrCreate, FileAccess.Read);
			FileStream dfs = new FileStream("Saves/ResourcePool/Debts.dat", FileMode.OpenOrCreate, FileAccess.Read);
			BinaryFileReader rcreader = new BinaryFileReader(new BinaryReader(rcfs));
			BinaryFileReader dreader = new BinaryFileReader(new BinaryReader(dfs));

			try { reader.MoveToContent(); }
			catch
			{
				Console.WriteLine("Save xml data not found or invalid, reverting to defaults");
				reader = new XmlTextReader("Data/ResourcePool/config.xml");
				reader.WhitespaceHandling = WhitespaceHandling.None;
				reader.MoveToContent();
			}
		
			int version = Int32.Parse(reader.GetAttribute("version"));
			reader.ReadStartElement("ResourcePool");

			switch (version)
			{
				case 0:
				{
					m_PaymentFactor = Double.Parse(reader.ReadElementString("PaymentFactor"));
					m_FailsafePriceHike = Double.Parse(reader.ReadElementString("FailsafePriceHike"));

					m_Resources = new Hashtable();
					while (reader.LocalName == "ResourceData")
					{
						ResourceData rd = new ResourceData(reader, (initonly ? null : rcreader));
						if (rd != null)
							m_Resources[rd.Type] = rd;
					}
					while (reader.LocalName == "RDRedirect")
					{
						RDRedirect rd = new RDRedirect(reader, (initonly ? null : rcreader));
						if (rd != null)
							m_Resources[rd.Type] = rd;
					}

					m_Debts = new Hashtable();

					if (initonly)
						break;

					while (!dreader.End())
					{
						try
						{
							Mobile m = dreader.ReadMobile();
							double debt = dreader.ReadDouble();
							if (m != null)
								m_Debts[m] = debt;
						}
						catch (Exception ex)
						{
							Console.WriteLine("Exception occured attempting to desrialize from Debts.dat : " + ex.Message );
							break;
						}
						
					}

					break;
				}

				case 1:
				{
					m_PaymentFactor = Double.Parse(reader.ReadElementString("PaymentFactor"));
					m_FailsafePriceHike = Double.Parse(reader.ReadElementString("FailsafePriceHike"));

					m_Resources = new Hashtable();
					while (reader.LocalName == "ResourceData")
					{
						ResourceData rd = new ResourceData(reader, (initonly ? null : rcreader));
						if (rd != null)
							m_Resources[rd.Type] = rd;
					}
					while (reader.LocalName == "RDRedirect")
					{
						RDRedirect rd = new RDRedirect(reader, (initonly ? null : rcreader));
						if (rd != null)
							m_Resources[rd.Type] = rd;
					}

					m_Debts = new Hashtable();

					if (initonly)
						break;

					// read count
					int count = dreader.ReadInt();

					for (int ix = 0; ix < count; ix++)
					{
						Mobile m = dreader.ReadMobile();
						double debt = dreader.ReadDouble();
						if (m != null)
							m_Debts[m] = debt;
					}

					break;
				}

				default:
				{
					throw new Exception("Invalid ResourcePool save version.");
				}
			}

			reader.ReadEndElement();
			reader.Close();
			rcfs.Close();
			rpfs.Close();
			dfs.Close();
		}