internal override Event ReadEntry(BinaryReaderEx br) { EventType type = br.GetEnum32 <EventType>(br.Position + 8); switch (type) { case EventType.Light: return(Lights.EchoAdd(new Event.Light(br))); case EventType.Sound: return(Sounds.EchoAdd(new Event.Sound(br))); case EventType.SFX: return(SFX.EchoAdd(new Event.SFX(br))); case EventType.Wind: return(Wind.EchoAdd(new Event.Wind(br))); case EventType.Treasure: return(Treasures.EchoAdd(new Event.Treasure(br))); case EventType.Generator: return(Generators.EchoAdd(new Event.Generator(br))); case EventType.Message: return(Messages.EchoAdd(new Event.Message(br))); default: throw new NotImplementedException($"Unsupported event type: {type}"); } }
internal override Event ReadEntry(BinaryReaderEx br) { EventType type = br.GetEnum32 <EventType>(br.Position + 8); switch (type) { case EventType.Light: return(Lights.EchoAdd(new Event.Light(br))); case EventType.Sound: return(Sounds.EchoAdd(new Event.Sound(br))); case EventType.SFX: return(SFX.EchoAdd(new Event.SFX(br))); case EventType.Wind: return(Wind.EchoAdd(new Event.Wind(br))); case EventType.Treasure: return(Treasures.EchoAdd(new Event.Treasure(br))); case EventType.Generator: return(Generators.EchoAdd(new Event.Generator(br))); case EventType.Message: return(Messages.EchoAdd(new Event.Message(br))); case EventType.ObjAct: return(ObjActs.EchoAdd(new Event.ObjAct(br))); case EventType.SpawnPoint: return(SpawnPoints.EchoAdd(new Event.SpawnPoint(br))); case EventType.MapOffset: return(MapOffsets.EchoAdd(new Event.MapOffset(br))); case EventType.Navmesh: return(Navmeshes.EchoAdd(new Event.Navmesh(br))); case EventType.Environment: return(Environments.EchoAdd(new Event.Environment(br))); case EventType.PseudoMultiplayer: return(PseudoMultiplayers.EchoAdd(new Event.PseudoMultiplayer(br))); default: throw new NotImplementedException($"Unsupported event type: {type}"); } }
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}"); } }