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; } }
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; } } }