public override void Deserialize(int version, BinaryReader br)
        {
            base.Deserialize(version, br);

            switch (version)
            {
            case 0x0000001:
            case 0x0000002:
            case 0x0000003:
            case 0x0000004:
            {
                SpawnAmount     = br.ReadInt32();
                AmountPerSocial = br.ReadInt32();
                IsSocial        = br.ReadBoolean();

                int count = br.ReadInt32();
                for (int i = 0; i < count; i++)
                {
                    SocialSpawns ss     = new SocialSpawns(br.ReadBoolean(), this);
                    int          subcnt = br.ReadInt32();
                    for (int j = 0; j < subcnt; j++)
                    {
                        MonsterSpawnPoint msp = new MonsterSpawnPoint();
                        msp.Deserialize(version, br);
                        ss.spawnPoints.Add(msp);
                    }

                    mSpawns.Add(ss);
                }
            }
            break;

            default:
                break;
            }
        }
Exemple #2
0
        void SetData(byte[] data)
        {
            using (MemoryStream ms_iso = new MemoryStream(data))
            {
                BinaryReader r = new BinaryReader(ms_iso);

                int version = r.ReadInt32();

                switch (version)
                {
                case 0x0000001:
                case 0x0000002:
                case 0x0000003:
                {
                    int count = r.ReadInt32();

                    for (int i = 0; i < count; i++)
                    {
                        MonsterSpawnPoint sp = new MonsterSpawnPoint();
                        sp.Deserialize(version, r);
                        mMsts.Add(sp.ID, sp);
                    }

                    //-- Area Spawn point list
                    count = r.ReadInt32();
                    for (int i = 0; i < count; i++)
                    {
                        MonsterSpawnArea sa = new MonsterSpawnArea();
                        sa.Deserialize(version, r);
                        mMstAreas.Add(sa.ID, sa);
                    }

                    // -- NPC
                    count = r.ReadInt32();
                    for (int i = 0; i < count; i++)
                    {
                        NPCSpawnPoint sp = new NPCSpawnPoint();
                        sp.Deserialize(version, r);
                        mNpcs.Add(sp.ID, sp);
                    }

                    // Doodad
                    count = r.ReadInt32();
                    for (int i = 0; i < count; i++)
                    {
                        DoodadSpawnPoint sp = new DoodadSpawnPoint();
                        sp.Deserialize(version, r);
                        mDoodads.Add(sp.ID, sp);
                    }

                    // Item
                    count = r.ReadInt32();
                    for (int i = 0; i < count; i++)
                    {
                        ItemSpwanPoint sp = new ItemSpwanPoint();
                        sp.Deserialize(version, r);
                        mItems.Add(sp.ID, sp);
                    }
                }
                break;

                case 0x0000004:
                {
                    mMaxSpawnPointId = r.ReadInt32();
                    int count = r.ReadInt32();


                    for (int i = 0; i < count; i++)
                    {
                        MonsterSpawnPoint sp = new MonsterSpawnPoint();
                        sp.Deserialize(version, r);
                        mMsts.Add(sp.ID, sp);
                    }

                    //-- Area Spawn point list
                    count = r.ReadInt32();
                    for (int i = 0; i < count; i++)
                    {
                        MonsterSpawnArea sa = new MonsterSpawnArea();
                        sa.Deserialize(version, r);
                        mMstAreas.Add(sa.ID, sa);
                    }

                    // -- NPC
                    count = r.ReadInt32();
                    for (int i = 0; i < count; i++)
                    {
                        NPCSpawnPoint sp = new NPCSpawnPoint();
                        sp.Deserialize(version, r);
                        mNpcs.Add(sp.ID, sp);
                    }

                    // Doodad
                    count = r.ReadInt32();
                    for (int i = 0; i < count; i++)
                    {
                        DoodadSpawnPoint sp = new DoodadSpawnPoint();
                        sp.Deserialize(version, r);
                        mDoodads.Add(sp.ID, sp);
                    }

                    // Item
                    count = r.ReadInt32();
                    for (int i = 0; i < count; i++)
                    {
                        ItemSpwanPoint sp = new ItemSpwanPoint();
                        sp.Deserialize(version, r);
                        mItems.Add(sp.ID, sp);
                    }
                }
                break;

                default: break;
                }
            }
        }