/// <summary> /// Adds a route to the appropriate list for its type; returns the route. /// </summary> public Route Add(Route route) { switch (route) { case Route.MufflingBoxLink r: MufflingBoxLinks.Add(r); break; case Route.MufflingPortalLink r: MufflingPortalLinks.Add(r); break; default: throw new ArgumentException($"Unrecognized type {route.GetType()}.", nameof(route)); } return(route); }
internal override Route ReadEntry(BinaryReaderEx br) { RouteType type = br.GetEnum32 <RouteType>(br.Position + 0x10); switch (type) { case RouteType.MufflingPortalLink: return(MufflingPortalLinks.EchoAdd(new Route.MufflingPortalLink(br))); case RouteType.MufflingBoxLink: return(MufflingBoxLinks.EchoAdd(new Route.MufflingBoxLink(br))); default: throw new NotImplementedException($"Unimplemented route type: {type}"); } }