Beispiel #1
0
            internal override Event ReadEntry(BinaryReaderEx br)
            {
                EventType type = br.GetEnum8 <EventType>(br.Position + br.VarintSize + 4);

                switch (type)
                {
                case EventType.Light:
                    return(Lights.EchoAdd(new Event.Light(br)));

                case EventType.Shadow:
                    return(Shadows.EchoAdd(new Event.Shadow(br)));

                case EventType.Fog:
                    return(Fogs.EchoAdd(new Event.Fog(br)));

                case EventType.BGColor:
                    return(BGColors.EchoAdd(new Event.BGColor(br)));

                case EventType.MapOffset:
                    return(MapOffsets.EchoAdd(new Event.MapOffset(br)));

                case EventType.Warp:
                    return(Warps.EchoAdd(new Event.Warp(br)));

                case EventType.CheapMode:
                    return(CheapModes.EchoAdd(new Event.CheapMode(br)));

                default:
                    throw new NotImplementedException($"Unimplemented event type: {type}");
                }
            }
            internal override Event ReadEntry(BinaryReaderEx br)
            {
                EventType type = br.GetEnum16 <EventType>(br.Position + 0xC);

                switch (type)
                {
                case EventType.Light:
                    var light = new Event.Light(br);
                    Lights.Add(light);
                    return(light);

                case EventType.Shadow:
                    var shadow = new Event.Shadow(br);
                    Shadows.Add(shadow);
                    return(shadow);

                case EventType.Fog:
                    var fog = new Event.Fog(br);
                    Fogs.Add(fog);
                    return(fog);

                case EventType.BGColor:
                    var bgColor = new Event.BGColor(br);
                    BGColors.Add(bgColor);
                    return(bgColor);

                case EventType.MapOffset:
                    var mapOffset = new Event.MapOffset(br);
                    MapOffsets.Add(mapOffset);
                    return(mapOffset);

                case EventType.Warp:
                    var warp = new Event.Warp(br);
                    Warps.Add(warp);
                    return(warp);

                case EventType.CheapMode:
                    var cheapMode = new Event.CheapMode(br);
                    CheapModes.Add(cheapMode);
                    return(cheapMode);

                default:
                    throw new NotImplementedException($"Unimplemented event type: {type}");
                }
            }
            public void Add(IMsbEvent item)
            {
                switch (item)
                {
                case Event.Light e:
                    Lights.Add(e);
                    break;

                case Event.Shadow e:
                    Shadows.Add(e);
                    break;

                case Event.Fog e:
                    Fogs.Add(e);
                    break;

                case Event.BGColor e:
                    BGColors.Add(e);
                    break;

                case Event.MapOffset e:
                    MapOffsets.Add(e);
                    break;

                case Event.Warp e:
                    Warps.Add(e);
                    break;

                case Event.CheapMode e:
                    CheapModes.Add(e);
                    break;

                default:
                    throw new ArgumentException(
                              message: "Item is not recognized",
                              paramName: nameof(item));
                }
            }
Beispiel #4
0
            /// <summary>
            /// Adds an event to the appropriate list for its type; returns the event.
            /// </summary>
            public Event Add(Event evnt)
            {
                switch (evnt)
                {
                case Event.Light e: Lights.Add(e); break;

                case Event.Shadow e: Shadows.Add(e); break;

                case Event.Fog e: Fogs.Add(e); break;

                case Event.BGColor e: BGColors.Add(e); break;

                case Event.MapOffset e: MapOffsets.Add(e); break;

                case Event.Warp e: Warps.Add(e); break;

                case Event.CheapMode e: CheapModes.Add(e); break;

                default:
                    throw new ArgumentException($"Unrecognized type {evnt.GetType()}.", nameof(evnt));
                }
                return(evnt);
            }