/// <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: var portalLink = new Route.MufflingPortalLink(br); MufflingPortalLinks.Add(portalLink); return(portalLink); case RouteType.MufflingBoxLink: var boxLink = new Route.MufflingBoxLink(br); MufflingBoxLinks.Add(boxLink); return(boxLink); default: throw new NotImplementedException($"Unimplemented route type: {type}"); } }