Example #1
0
            internal override Event ReadEntry(BinaryReaderEx br)
            {
                EventType type = br.GetEnum32 <EventType>(br.Position + 0xC);

                switch (type)
                {
                case EventType.Treasure:
                    return(Treasures.EchoAdd(new Event.Treasure(br)));

                case EventType.Generator:
                    return(Generators.EchoAdd(new Event.Generator(br)));

                case EventType.ObjAct:
                    return(ObjActs.EchoAdd(new Event.ObjAct(br)));

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

                case EventType.PseudoMultiplayer:
                    return(PseudoMultiplayers.EchoAdd(new Event.PseudoMultiplayer(br)));

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

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

                case EventType.Other:
                    return(Others.EchoAdd(new Event.Other(br)));

                default:
                    throw new NotImplementedException($"Unsupported event type: {type}");
                }
            }
Example #2
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.Treasure e: Treasures.Add(e); break;

                case Event.Generator e: Generators.Add(e); break;

                case Event.ObjAct e: ObjActs.Add(e); break;

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

                case Event.PseudoMultiplayer e: PseudoMultiplayers.Add(e); break;

                case Event.PatrolInfo e: PatrolInfo.Add(e); break;

                case Event.PlatoonInfo e: PlatoonInfo.Add(e); break;

                case Event.Other e: Others.Add(e); break;

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