예제 #1
0
        private static void CutRegion(ROM rom, List <Region> regions, RegionParseState state, int regionEnd, RegionState newState)
        {
            // Trim 0x1008000000000000 commands from beginning
            int regionStart = state.start;

            if (rom.PRead64(regionStart) == 0x1008000000000000)
            {
                regionStart += 8;
            }

            if (regionStart == regionEnd)
            {
                return;
            }

            Region region = new LevelScriptRegion(regionStart, regionEnd - regionStart, state.regionState);

            region.area = state.area;
            regions.Add(region);

            state.regionState = newState;
            state.start       = regionEnd;
        }