using System; using System.Linq; namespace OpenVIII.Fields { public static class Initializer { /// /// Should be called only once /// public static void Init() { ArchiveWorker aw = new ArchiveWorker(Memory.Archives.A_FIELD); string[] lists = aw.GetListOfFiles(); string maplist = lists.First(x => x.ToLower().Contains("mapdata.fs")); ArchiveBase mapdata = aw.GetArchive(maplist); string map = mapdata.GetListOfFiles()[0]; string[] maplistb = System.Text.Encoding.UTF8.GetString(mapdata.GetBinaryFile(map)) .Replace("\r", "") .Split('\n'); Memory.FieldHolder.fields = maplistb; FieldId.FieldId_ = maplistb; } public static IServices GetServices() { ServiceProvider services = new ServiceProvider(); EventEngine engine = new EventEngine(); services.Register(ServiceId.Interaction, new InteractionService()); services.Register(ServiceId.Field, new FieldService(engine)); services.Register(ServiceId.Global, new GlobalVariableService()); services.Register(ServiceId.Gameplay, new GameplayService()); services.Register(ServiceId.Salary, new SalaryService()); services.Register(ServiceId.Party, new PartyService()); services.Register(ServiceId.Movie, new MovieService()); services.Register(ServiceId.Message, new MessageService()); services.Register(ServiceId.Menu, new MenuService()); services.Register(ServiceId.Music, new MusicService()); services.Register(ServiceId.Sound, new SoundService()); services.Register(ServiceId.Rendering, new RenderingService()); return services; } } }