Ejemplo n.º 1
0
        private static void RegionParse_cmd24(ROM rom, List <Region> regions, RegionParseState state)
        {
            int behaviour = rom.Read32(0x14);

            if (behaviour == scrollBehaviour || behaviour == scrollBehaviourLegacy || behaviour == scrollF2)
            {
                EditorScroll scroll = new EditorScroll(rom);
                if (scroll.acts != 0)
                {
                    if (state.scrolls.TryGetValue(state.area, out List <ScrollObject> scrolls))
                    {
                        scrolls.Add(scroll);
                    }
                    else
                    {
                        state.scrolls[state.area] = new List <ScrollObject> {
                            scroll
                        };
                    }

                    if (state.regionState != RegionState.AreaScrolls)
                    {
                        CutRegion(rom, regions, state, rom.offset, RegionState.AreaScrolls);
                    }
                    return;
                }
            }

            if (state.regionState != RegionState.AreaData)
            {
                CutRegion(rom, regions, state, rom.offset, RegionState.AreaData);
            }
        }
Ejemplo n.º 2
0
        public void RegisterScroll(EditorScroll scr)
        {
            if (scr == null)
            {
                return;
            }

            scrollRegions.AddRegion(scr.segmentedAddress, scr.vertexCount * 0x10);
        }