Esempio n. 1
0
        public override void Deserialize(GenericReader reader)
        {
            TimeSpan ts = TimeSpan.Zero;

            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 3:
            {
                m_LevelScale = reader.ReadDouble();
                goto case 2;
            }

            case 2:
            {
                m_LevelError = (LevelErrors)reader.ReadInt();
                goto case 1;
            }

            case 1:
            {
                ts = reader.ReadDeltaTime() - DateTime.Now;
                goto case 0;
            }

            case 0:
            {
                // read it all back in
                m_Type = ((ChampLevelData.SpawnTypes)reader.ReadInt());

                int a = reader.ReadInt();
                SpawnLevels = new ArrayList();

                // create new level array through deserialise constructors
                for (int i = 0; i < a; ++i)
                {
                    SpawnLevels.Add(new ChampLevelData(reader));
                }

                m_Monsters     = reader.ReadMobileList();
                m_FreeMonsters = reader.ReadMobileList();
                m_LevelCounter = reader.ReadInt();
                m_Kills        = reader.ReadInt();
                m_ExpireTime   = reader.ReadDateTime();
                m_NavDest      = (NavDestinations)reader.ReadInt();

                // the bools
                m_bActive   = reader.ReadBool();
                m_bGraphics = reader.ReadBool();

                // if graphics were on remake them thru deserialise constructor
                if (m_bGraphics)
                {
                    m_Graphics = new ChampGraphics(this, reader);
                }

                // and the restart...
                m_bRestart     = reader.ReadBool();
                m_RestartDelay = reader.ReadTimeSpan();

                if (reader.ReadBool() && !m_bActive && m_bRestart)
                {
                    // in this case the champ is activley in restart mode, so create new timer
                    //pla: 13/01/07
                    //changed so we don't lose time on restart
                    if (ts == TimeSpan.Zero)
                    {
                        DoTimer(m_RestartDelay);
                    }
                    else
                    {
                        DoTimer(ts);
                    }
                }
                else if (m_bActive)
                {
                    // if spawn was active then start the wheels turning...
                    StartSlice();
                }

                break;
            }
            }
        }
Esempio n. 2
0
		public override void Deserialize( GenericReader reader )
		{
            TimeSpan ts = TimeSpan.Zero;

			base.Deserialize( reader );

			int version = reader.ReadInt();
			
			switch ( version )
			{
				case 3:
					{
						m_LevelScale = reader.ReadDouble();
						goto case 2;
					}
        case 2:
        {
            m_LevelError = (LevelErrors)reader.ReadInt();
            goto case 1;
        }
        case 1:
        {                                      
            ts = reader.ReadDeltaTime() - DateTime.Now;                    
            goto case 0;
        }
				case 0:
				{

					// read it all back in									
					m_Type = ((ChampLevelData.SpawnTypes)reader.ReadInt());

					int a = reader.ReadInt();
					SpawnLevels  = new ArrayList();
					
					// create new level array through deserialise constructors
					for( int i = 0 ; i < a; ++i )
						SpawnLevels.Add( new ChampLevelData( reader ) );	

					m_Monsters = reader.ReadMobileList();
					m_FreeMonsters = reader.ReadMobileList();
					m_LevelCounter = reader.ReadInt();
					m_Kills = reader.ReadInt();
					m_ExpireTime = reader.ReadDateTime();
					m_NavDest = (NavDestinations)reader.ReadInt();
					
					// the bools
					m_bActive = reader.ReadBool();
					m_bGraphics = reader.ReadBool();					

					// if graphics were on remake them thru deserialise constructor
					if( m_bGraphics )
						m_Graphics = new ChampGraphics(this, reader);

					// and the restart...
					m_bRestart = reader.ReadBool();
					m_RestartDelay = reader.ReadTimeSpan();
					
					if( reader.ReadBool() && !m_bActive && m_bRestart )
					{
						// in this case the champ is activley in restart mode, so create new timer
						//pla: 13/01/07
						//changed so we don't lose time on restart
						if (ts == TimeSpan.Zero)
								DoTimer(m_RestartDelay);
						else
								DoTimer(ts);
					}
					else if( m_bActive )
					{					
						// if spawn was active then start the wheels turning...
						StartSlice();
					}
										
					break;
				}
				
			}

		}