Esempio n. 1
0
            internal override Region ReadEntry(BinaryReaderEx br)
            {
                RegionType type = br.GetEnum32 <RegionType>(br.Position + 8);

                switch (type)
                {
                case RegionType.InvasionPoint:
                    return(InvasionPoints.EchoAdd(new Region.InvasionPoint(br)));

                case RegionType.EnvironmentMapPoint:
                    return(EnvironmentMapPoints.EchoAdd(new Region.EnvironmentMapPoint(br)));

                case RegionType.Sound:
                    return(Sounds.EchoAdd(new Region.Sound(br)));

                case RegionType.SFX:
                    return(SFX.EchoAdd(new Region.SFX(br)));

                case RegionType.WindSFX:
                    return(WindSFX.EchoAdd(new Region.WindSFX(br)));

                case RegionType.SpawnPoint:
                    return(SpawnPoints.EchoAdd(new Region.SpawnPoint(br)));

                case RegionType.Message:
                    return(Messages.EchoAdd(new Region.Message(br)));

                case RegionType.PatrolRoute:
                    return(PatrolRoutes.EchoAdd(new Region.PatrolRoute(br)));

                case RegionType.MovementPoint:
                    return(MovementPoints.EchoAdd(new Region.MovementPoint(br)));

                case RegionType.WarpPoint:
                    return(WarpPoints.EchoAdd(new Region.WarpPoint(br)));

                case RegionType.ActivationArea:
                    return(ActivationAreas.EchoAdd(new Region.ActivationArea(br)));

                case RegionType.Event:
                    return(Events.EchoAdd(new Region.Event(br)));

                case RegionType.Logic:
                    return(Logic.EchoAdd(new Region.Logic(br)));

                case RegionType.EnvironmentMapEffectBox:
                    return(EnvironmentMapEffectBoxes.EchoAdd(new Region.EnvironmentMapEffectBox(br)));

                case RegionType.WindArea:
                    return(WindAreas.EchoAdd(new Region.WindArea(br)));

                case RegionType.MufflingBox:
                    return(MufflingBoxes.EchoAdd(new Region.MufflingBox(br)));

                case RegionType.MufflingPortal:
                    return(MufflingPortals.EchoAdd(new Region.MufflingPortal(br)));

                case RegionType.Other:
                    return(Others.EchoAdd(new Region.Other(br)));

                default:
                    throw new NotImplementedException($"Unsupported region type: {type}");
                }
            }