예제 #1
0
파일: LoadSave.cs 프로젝트: DJuttmann/SM3E
        // Read all scroll sets from ROM.
        private void ReadScrollSets(Rom rom)
        {
            ScrollSets.Clear();
            List <int> addressesPC = new List <int> ();

            for (int k = 0; k < AreaCount; k++)
            {
                foreach (Room r in Rooms[k])
                {
                    int roomArea   = r.Width * r.Height;
                    int stateCount = r.RoomStates.Count;
                    addressesPC.Clear();
                    for (int i = 0; i < stateCount; i++)
                    {
                        int address = Tools.LRtoPC(r.RoomStates [i].ScrollSetPtr);
                        if (address != 0)
                        {
                            addressesPC.Add(address);
                        }
                    }
                    Tools.RemoveDuplicates(addressesPC);
                    for (int i = 0; i < addressesPC.Count; i++)
                    {
                        var s = new ScrollSet();
                        s.SetSize(roomArea);
                        s.ReadFromROM(rom, addressesPC [i]);
                        ScrollSets.Add(s);
                    }
                }
            }
        }