예제 #1
0
        private GameFileContainer GetStaypar()
        {
            var tableSearch =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "activity_list.bin;colosseum_participant.bin;commerce_*.bin;complete_haruka.bin;controller_explain.bin;correlation_*.bin;encount_loser_popup.bin;encounter_*.bin;explanation_soldier_mission.bin;farm_vegetable_list.bin;kyoukei_bird_param.bin;otazunemono.bin;pet_*.bin;response_chase.bin;response_roulette.bin;roulette_npc.bin;soldier_card_list.bin;soldier_leader_skill_list.bin;soldier_normal_skill_list.bin;soldier_training_mission.bin;tenkei_blog.bin;treasure_random_item.bin;tutorial.bin;ultimate.bin;virtue_shop_*.bin",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(YakuzaGame.Files.Table.File)
            };

            var enemyNameSearch =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "enemy_name_all.bin",
                IsWildcard      = false,
                RecursiveSearch = false,
                FileType        = typeof(YakuzaGame.Files.EnemyName.File)
            };

            var par = new GameFileContainer
            {
                Path = @"data\staypar\stay.par",
                Type = ContainerType.CompressedFile
            };

            par.FileSearches.Add(tableSearch);
            par.FileSearches.Add(enemyNameSearch);
            return(par);
        }
예제 #2
0
        private IList <GameFileContainer> GetMappar(string path)
        {
            var result = new List <GameFileContainer>();

            var imbSearch =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "*.imb",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(YakuzaGame.Files.Imb.File)
            };

            var map_par_containers = new GameFileContainerSearch
            {
                RelativePath    = @"media\data\map_par",
                TypeSearch      = ContainerType.CompressedFile,
                RecursiveSearch = false,
                SearchPattern   = "st_kamuro.par_c;st_kawara_street.par_c"
            };

            map_par_containers.FileSearches.Add(imbSearch);

            result.AddRange(map_par_containers.GetContainers(path));
            return(result);
        }
예제 #3
0
        private GameFileContainer GetStaypar()
        {
            var tableSearch =
                new GameFileSearch
            {
                RelativePath  = ".",
                SearchPattern = "activity_list.bin_c;complete_minigame.bin_c;controller_explain.bin_c;correlation_person.bin_c;enc_boss_cmn_ability.bin_c;extra.bin_c;onedari_popup.bin_c;response_roulette.bin_c;tougijyo_mode.bin_c;tougijyo_participant.bin_c;tougijyo_realtime_quest.bin_c;tougijyo_string.bin_c;tutorial.bin_c;ultimate.bin_c;virtue_shop.bin_c",
                //SearchPattern = "*.bin_c",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(YakuzaGame.Files.Table.File)
            };

            var enemyNameSearch =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "enemy_name_all.bin_c",
                IsWildcard      = false,
                RecursiveSearch = false,
                FileType        = typeof(YakuzaGame.Files.EnemyName.File)
            };

            var par = new GameFileContainer
            {
                Path = @"media\data\staypar\stay.par",
                Type = ContainerType.CompressedFile
            };

            par.FileSearches.Add(tableSearch);
            par.FileSearches.Add(enemyNameSearch);
            return(par);
        }
예제 #4
0
        private GameFileContainer GetStaypar()
        {
            var tableSearch =
                new GameFileSearch
            {
                RelativePath  = ".",
                SearchPattern =
                    "activity_list.bin_c;battle_result.bin_c;caba_cast_info.bin_c;cabaret_island_area.bin_c;cabaret_island_shop.bin_c;controller_explain.bin_c;correlation_person.bin_c;money_island_shop.bin_c;money_island_tarent.bin_c;search_arms_agent.bin_c;search_arms_kind.bin_c;search_arms_location.bin_c;search_arms_result_picture.bin_c;tougijyo_realtime_quest.bin_c;tutorial.bin_c;ultimate.bin_c;virtue_shop.bin_c;",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(YakuzaGame.Files.Table.File)
            };

            var enemyNameSearch =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "enemy_name_all.bin_c",
                IsWildcard      = false,
                RecursiveSearch = false,
                FileType        = typeof(YakuzaGame.Files.EnemyName.File)
            };

            var par = new GameFileContainer
            {
                Path = @"media\data\staypar\stay.par",
                Type = ContainerType.CompressedFile
            };

            par.FileSearches.Add(tableSearch);
            par.FileSearches.Add(enemyNameSearch);
            return(par);
        }
예제 #5
0
        private IList <GameFileContainer> GetWdr()
        {
            var result = new List <GameFileContainer>();

            var wdr_barSearch =
                new GameFileSearch
            {
                RelativePath    = "shop",
                SearchPattern   = "bar????.bin",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(YakuzaGame.Files.Bar.File)
            };

            var wdr_restaurantSearch =
                new GameFileSearch
            {
                RelativePath    = "shop",
                SearchPattern   = "restaurant????.bin;ex_shop????.bin;shop????.bin",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(YakuzaGame.Files.Restaurant.File)
            };

            var wdr_msgSearch =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "*.msg",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(YakuzaGame.Files.Msg.File)
            };

            var disposeStringSearch =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "dispose_string.bin",
                IsWildcard      = false,
                RecursiveSearch = false,
                FileType        = typeof(YakuzaGame.Files.DisposeString.File)
            };

            var wdr_par = new GameFileContainer
            {
                Path = @"media\data\wdr_par_c\wdr.par",
                Type = ContainerType.CompressedFile
            };

            wdr_par.FileSearches.Add(wdr_barSearch);
            wdr_par.FileSearches.Add(wdr_restaurantSearch);
            wdr_par.FileSearches.Add(wdr_msgSearch);
            wdr_par.FileSearches.Add(disposeStringSearch);

            result.Add(wdr_par);

            return(result);
        }
예제 #6
0
        private IList <GameFileContainer> GetWdrCommon()
        {
            var result = new List <GameFileContainer>();

            var aiPopupSearch =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "ai_popup.bin",
                IsWildcard      = false,
                RecursiveSearch = false,
                FileType        = typeof(Files.AiPopup.File)
            };

            var common_blacksmithSearch =
                new GameFileSearch
            {
                RelativePath    = "shop",
                SearchPattern   = "blacksmith.bin",
                IsWildcard      = false,
                RecursiveSearch = false,
                FileType        = typeof(YakuzaGame.Files.Blacksmith.File)
            };

            var common_presentSearch =
                new GameFileSearch
            {
                RelativePath    = "shop",
                SearchPattern   = "present.bin;send.bin;throw.bin",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(YakuzaGame.Files.PresentSendThrow.File)
            };

            var common_saleSearch =
                new GameFileSearch
            {
                RelativePath    = "shop",
                SearchPattern   = "sale????.bin",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(YakuzaGame.Files.Sale.File)
            };

            var wdr_par_c_common = new GameFileContainer
            {
                Path = @"data\wdr_par\common.par",
                Type = ContainerType.CompressedFile
            };

            wdr_par_c_common.FileSearches.Add(aiPopupSearch);
            wdr_par_c_common.FileSearches.Add(common_blacksmithSearch);
            wdr_par_c_common.FileSearches.Add(common_presentSearch);
            wdr_par_c_common.FileSearches.Add(common_saleSearch);

            result.Add(wdr_par_c_common);

            return(result);
        }
예제 #7
0
        private GameFileContainer GetBootpar()
        {
            var empbSearch =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "encounter_pupup_message.bin_c",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(YakuzaGame.Files.Epmb.File)
            };

            var mailSearch =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "mail.bin_c",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(YakuzaGame.Files.Mail.File)
            };

            var stringTblSearch =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "string_tbl.bin_c",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(YakuzaGame.Files.StringTbl.File)
            };

            var tableSearch =
                new GameFileSearch
            {
                RelativePath  = ".",
                SearchPattern = "ability.bin_c;battle_coefficient.bin_c;battle_deck_list.bin_c;caption.bin_c;complete_heat.bin_c;complete_majima.bin_c;explanation_main_scenario.bin_c;explanation_sub_story.bin_c;item.bin_c;tips_tutorial.bin_c",
                //SearchPattern = "*.bin_c",
                IsWildcard      = true,
                RecursiveSearch = false,
                Exclusions      = { "encounter_pupup_message.bin", "mail.bin", "string_tbl.bin" },
                FileType        = typeof(YakuzaGame.Files.Table.File)
            };

            var bootpar = new GameFileContainer
            {
                Path = @"media\data\bootpar\boot.par",
                Type = ContainerType.CompressedFile
            };

            bootpar.FileSearches.Add(empbSearch);
            bootpar.FileSearches.Add(mailSearch);
            bootpar.FileSearches.Add(stringTblSearch);
            bootpar.FileSearches.Add(tableSearch);
            return(bootpar);
        }
예제 #8
0
        private IList <GameFileContainer> GetMinigame()
        {
            var tableSearch =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "baccarat_cpu.bin_c;baccarat_gallery_msg.bin_c;caba_item_list.bin_c;catfight_human_condition.bin_c;catfight_human_info.bin_c;catfight_information.bin_c;catfight_string.bin_c;catfight_string_matching.bin_c;minigame_chohan_bakuto.bin_c;fishing_bag_info.bin_c;fishing_dispose.bin_c;fishing_fish_info.bin_c;fishing_sao_info.bin_c;poker_com_*.bin_c",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(YakuzaGame.Files.Table.File)
            };

            var ddsSearch =
                new GameFileSearch
            {
                RelativePath    = @".\teleclub",
                SearchPattern   = "*.dds",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(DDSFile)
            };

            var minigame = new GameFileContainer
            {
                Path = @"media\data\minigame",
                Type = ContainerType.Folder
            };

            minigame.FileSearches.Add(tableSearch);
            minigame.FileSearches.Add(ddsSearch);

            var pocketCircuitSearch =
                new GameFileSearch
            {
                RelativePath    = "db",
                SearchPattern   = "*.bin_c",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(Files.PocketCircuit.File)
            };

            var par = new GameFileContainer
            {
                Path = @"media\data\minigame\pokecir.par",
                Type = ContainerType.CompressedFile
            };

            par.FileSearches.Add(pocketCircuitSearch);

            var result = new List <GameFileContainer>();

            result.Add(minigame);
            result.Add(par);
            return(result);
        }
예제 #9
0
        public override GameFileContainer[] GetContainers(string path)
        {
            var result = new List <GameFileContainer>();

            var fontFiles = new GameFileSearch
            {
                RelativePath    = @"data\resource\font",
                SearchPattern   = "*.*",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(Files.FONT.File)
            };

            var drg000 = new GameFileContainer
            {
                Path = @".\drg000.cpk",
                Type = ContainerType.CompressedFile
            };

            drg000.FileSearches.Add(fontFiles);

            var mtpFiles = new GameFileSearch
            {
                RelativePath    = @"data\resource\mtpa_en",
                SearchPattern   = "*.mtp",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(Files.Mtp.File),
            };

            var htxFiles = new GameFileSearch
            {
                RelativePath    = @"data\resource\interface_en\htx",
                SearchPattern   = "chapter_??.htx;sdif_battle_counter.htx;sdif_battle_encount.htx;sdif_battle_fromarge.htx;sdif_battle_gauge_01.htx;sdif_battle_hud_fonts.htx;sdif_battle_imgfont.htx;sdif_battle_parts.htx;sdif_camp_band_fonts.htx;sdif_camp_chara128x1024_c00.htx;sdif_camp_molds.htx;sdif_camp_option.htx;sdif_camp_option_02.htx;sdif_camp_option_03.htx;sdif_camp_option_select_01.htx;sdif_camp_party.htx;sdif_camp_titles.htx;sdif_com_windows.htx;sdif_escape_frame.htx;sdif_event_icon.htx;sdif_evn_*.htx;sdif_field_imgfont02.htx;sdif_field_result_02.htx;sdif_gallery_texture01.htx;sdif_gameover_contents.htx;sdif_grimoire_cutin.htx;sdif_grimoire_cutin02.htx;sdif_grimoire_cutin03.htx;sdif_grimoire_titles.htx;sdif_kizuna_diagram.htx;sdif_loadimg_*.htx;sdif_mapname_omap??.htx;sdif_mapname_tmap01.htx;sdif_mov_ev*.htx;sdif_nev*.htx;sdif_quest_cutin.htx;sdif_shop_fonts_02.htx;sdif_shop_fonts_a.htx;sdif_shop_fonts_b.htx;sdif_shop_fonts_c.htx;sdif_shop_fonts_d.htx;sdif_shop_frame.htx;sdif_skill_tuiningfont.htx;sdif_skill_tuningline.htx;sdif_song_subtitle.htx;sdif_timecounter01.htx;sdif_title_imgfonts.htx;sdif_title_mode.htx;sdif_title_parts01.htx",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(Files.Htx.File),
            };

            var drg022 = new GameFileContainer
            {
                Path = @".\drg022.cpk",
                Type = ContainerType.CompressedFile
            };

            drg022.FileSearches.Add(mtpFiles);
            drg022.FileSearches.Add(htxFiles);

            result.Add(drg000);
            result.Add(drg022);
            return(result.ToArray());
        }
예제 #10
0
        private IList <GameFileContainer> Get2dpar(string path)
        {
            var result = new List <GameFileContainer>();

            var dds1Search =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "2d_cf_*.dds",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(DDSFile),
            };

            var dds2Search =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "*.dds",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(DDSFile),
            };

            var sprite_c = new GameFileContainer
            {
                Path = @"media\data\2dpar\sprite_c.par",
                Type = ContainerType.CompressedFile,
            };

            sprite_c.FileSearches.Add(dds1Search);

            result.Add(sprite_c);

            var ui_c = new GameFileContainer
            {
                Path = @"media\data\2dpar\ui_c.par",
                Type = ContainerType.CompressedFile,
            };

            ui_c.FileSearches.Add(dds2Search);

            result.Add(ui_c);

            return(result);
        }
예제 #11
0
        private IList <GameFileContainer> GetMinigame()
        {
            var tableSearch =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "baccarat_cpu.bin_c;baccarat_gallery_msg.bin_c;minigame_chohan_bakuto.bin_c;mesuking_*.bin_c;poker_com_*.bin_c",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(YakuzaGame.Files.Table.File)
            };

            var minigame = new GameFileContainer
            {
                Path = @"media\data\minigame",
                Type = ContainerType.Folder
            };

            minigame.FileSearches.Add(tableSearch);

            var pocketCircuitSearch =
                new GameFileSearch
            {
                RelativePath    = "db",
                SearchPattern   = "*.bin_c",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(YakuzaGame.Files.PocketCircuit.File)
            };

            var par = new GameFileContainer
            {
                Path = @"media\data\minigame\pokecir.par",
                Type = ContainerType.CompressedFile
            };

            par.FileSearches.Add(pocketCircuitSearch);

            var result = new List <GameFileContainer>();

            result.Add(minigame);
            result.Add(par);
            return(result);
        }
예제 #12
0
        private GameFileContainer GetRoot()
        {
            var search =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "YakuzaKiwami.exe",
                IsWildcard      = false,
                RecursiveSearch = false,
                FileType        = typeof(Files.Exe.File)
            };

            var c = new GameFileContainer
            {
                Path = @"media\",
                Type = ContainerType.Folder
            };

            c.FileSearches.Add(search);
            return(c);
        }
예제 #13
0
        private GameFileContainer GetStage()
        {
            var streetNameSearch =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "street_name_?.dat",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(YakuzaGame.Files.StreetName.File)
            };

            var stage = new GameFileContainer
            {
                Path = @"media\data\stage\w64\flag_data",
                Type = ContainerType.Folder
            };

            stage.FileSearches.Add(streetNameSearch);
            return(stage);
        }
예제 #14
0
        private GameFileContainer GetFontpar()
        {
            var ddsSearch =
                new GameFileSearch
            {
                RelativePath    = @".\hd2",
                SearchPattern   = "hd2_hankaku.dds",
                IsWildcard      = false,
                RecursiveSearch = false,
                FileType        = typeof(DDSFile)
            };

            var fontpar = new GameFileContainer
            {
                Path = @"media\data\fontpar\font.par",
                Type = ContainerType.CompressedFile
            };

            fontpar.FileSearches.Add(ddsSearch);
            return(fontpar);
        }
예제 #15
0
        private GameFileContainer GetReactorpar()
        {
            var nameSearch =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "name_?.bin",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(YakuzaGame.Files.Name.File)
            };

            var reactor = new GameFileContainer
            {
                Path = @"media\data\reactorpar\reactor_w64.par",
                Type = ContainerType.CompressedFile
            };

            reactor.FileSearches.Add(nameSearch);
            return(reactor);
        }
예제 #16
0
        private GameFileContainer GetScenario()
        {
            var search =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "scenario2.bin",
                IsWildcard      = false,
                RecursiveSearch = false,
                FileType        = typeof(Files.Scenario.File)
            };

            var container = new GameFileContainer
            {
                Path = @"data\scenario",
                Type = ContainerType.Folder
            };

            container.FileSearches.Add(search);
            return(container);
        }
예제 #17
0
        private GameFileContainer GetScenario()
        {
            var search =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "scenario2.*",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(YakuzaGame.Files.Scenario.File)
            };

            var scenario = new GameFileContainer
            {
                Path = @"media\data\scenario",
                Type = ContainerType.Folder
            };

            scenario.FileSearches.Add(search);
            return(scenario);
        }
예제 #18
0
        private IList <GameFileContainer> GetAuth(string path)
        {
            var result = new List <GameFileContainer>();

            var cmnSearch =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "cmn.bin",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(YakuzaGame.Files.CmnBin.File)
            };

            var ddsSearch =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "staffroll_d2_??.dds;ifc_jimaku_*.dds",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(DDSFile)
            };

            var auth_w64_containers = new GameFileContainerSearch
            {
                RelativePath    = @"media\data\auth_w64_e",
                TypeSearch      = ContainerType.CompressedFile,
                RecursiveSearch = false,
                SearchPattern   = "*.par"
            };

            auth_w64_containers.Exclusions.Add("inst_auth.par");
            auth_w64_containers.FileSearches.Add(cmnSearch);
            auth_w64_containers.FileSearches.Add(ddsSearch);

            result.AddRange(auth_w64_containers.GetContainers(path));

            return(result);
        }
예제 #19
0
        private GameFileContainer GetSoundpar()
        {
            var mfpSearch =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "*.mfp",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(YakuzaGame.Files.Mfpb.File)
            };

            var soundpar = new GameFileContainer
            {
                Path = @"media\data\soundpar\sound.par",
                Type = ContainerType.CompressedFile
            };

            soundpar.FileSearches.Add(mfpSearch);

            return(soundpar);
        }
예제 #20
0
        private GameFileContainer GetPause()
        {
            var tableSearch =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "extra.bin",
                IsWildcard      = false,
                RecursiveSearch = false,
                FileType        = typeof(YakuzaGame.Files.Table.File)
            };

            var pause = new GameFileContainer
            {
                Path = @"data\pausepar\pause.par",
                Type = ContainerType.CompressedFile
            };

            pause.FileSearches.Add(tableSearch);

            return(pause);
        }
예제 #21
0
        private GameFileContainer GetHact()
        {
            var cmnSearch =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "cmn.bin",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(YakuzaGame.Files.CmnBin.File),
            };

            var hact = new GameFileContainer
            {
                Path = @"media\data\hact.par",
                Type = ContainerType.CompressedFile
            };

            hact.FileSearches.Add(cmnSearch);

            return(hact);
        }
예제 #22
0
        private GameFileContainer GetBootpar()
        {
            var tableSearch =
                new GameFileSearch
            {
                RelativePath  = ".",
                SearchPattern =
                    "ability.bin;caption.bin;chase_base.bin;chase_condition.bin;complete_haruka.bin;complete_heat.bin;complete_shisho.bin;continuepoint.bin;dictionary.bin;dictionary_ignore.bin;environment.bin;explanation_main_scenario.bin;explanation_sub_story.bin;item.bin;item_alias.bin;item_mark.bin;item_weapon_parameter.bin;kiyaku.bin;otazunemono.bin;pet_bonus.bin;restaurant_menu.bin;tips_tutorial.bin",

                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(YakuzaGame.Files.Table.File)
            };

            var bootpar = new GameFileContainer
            {
                Path = @"data\bootpar\boot.par",
                Type = ContainerType.CompressedFile
            };

            bootpar.FileSearches.Add(tableSearch);
            return(bootpar);
        }
예제 #23
0
        public override GameFileContainer[] GetContainers(string path)
        {
            var result = new List <GameFileContainer>();

            var ttfFonts = new GameFileSearch()
            {
                RelativePath    = @".",
                SearchPattern   = "*.ttf",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(TrueTypeFontFile)
            };

            var textures = new GameFileSearch()
            {
                RelativePath    = @".",
                SearchPattern   = "SpriteAtlasTexture*.tex.dds;*_en.tex.dds;*_us.tex.dds;locked*.tex.dds;md_ii006.tex.dds;saveload_a.tex.dds;ui_option_text.tex.dds;ui_somnium_maphelp_02.tex.dds",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(DDS2File)
            };

            var resources = new GameFileContainer
            {
                Path = @".\AI_TheSomniumFiles_Data\resources.assets",
                Type = ContainerType.CompressedFile
            };

            resources.FileSearches.Add(ttfFonts);
            resources.FileSearches.Add(textures);

            result.Add(resources);

            var texturesAll = new GameFileSearch()
            {
                RelativePath    = @".",
                SearchPattern   = "*.tex.dds;",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(DDS2File)
            };

            var imageNameUs = new GameFileContainer
            {
                Path = @".\AI_TheSomniumFiles_Data\StreamingAssets\AssetBundles\StandaloneWindows64\image_name_us",
                Type = ContainerType.CompressedFile
            };

            imageNameUs.FileSearches.Add(texturesAll);

            result.Add(imageNameUs);

            var textSearch = new GameFileSearch()
            {
                RelativePath    = @"Unity_Assets_Files\luabytecode\CAB-0670e8eb4b419284c6de5d2d82066179\",
                SearchPattern   = "*-us.txt",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(Files.LuaText.File)
            };

            var luaByteCode = new GameFileContainer
            {
                Path = @".\AI_TheSomniumFiles_Data\StreamingAssets\AssetBundles\StandaloneWindows64\luabytecode",
                Type = ContainerType.CompressedFile
            };

            luaByteCode.FileSearches.Add(textSearch);

            result.Add(luaByteCode);

            var textSearch2 = new GameFileSearch()
            {
                RelativePath    = @"Unity_Assets_Files\scene_dance\BuildPlayer-Dance.sharedAssets\",
                SearchPattern   = "lyrics-us.txt;lyrics-us2.txt",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(TextFile)
            };

            var scene_dance = new GameFileContainer
            {
                Path = @".\AI_TheSomniumFiles_Data\StreamingAssets\AssetBundles\StandaloneWindows64\scene_dance",
                Type = ContainerType.CompressedFile
            };

            scene_dance.FileSearches.Add(textSearch2);
            scene_dance.FileSearches.Add(textures);
            result.Add(scene_dance);

            var streamingAssets = new GameFileContainerSearch
            {
                RelativePath  = @".\AI_TheSomniumFiles_Data\StreamingAssets\AssetBundles\StandaloneWindows64",
                SearchPattern =
                    @"clue_image;etc;image;item;item_ii006;item_ii011;item_ii027;operation_guide;saveload;scene_a0-open10_m10_00;scene_autosaveguide;scene_fiction;scene_file;scene_flowchart;scene_investigation;scene_languageselect;scene_optionmenu;scene_options;scene_root;scene_save;scene_somnium;scene_title;scene_to-witter;ui_option;",
                RecursiveSearch = false,
                TypeSearch      = ContainerType.CompressedFile
            };

            streamingAssets.FileSearches.Add(ttfFonts);
            streamingAssets.FileSearches.Add(textures);

            result.AddRange(streamingAssets.GetContainers(path));
            return(result.ToArray());
        }
예제 #24
0
        private IList <GameFileContainer> GetPause()
        {
            var ddsSearch =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "2d_k2_kyaba_cutin_*.dds",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(DDSFile),
            };

            var cabaretIsland = new GameFileContainer
            {
                Path = @"media\data\pausepar_e\cabaret_island.par",
                Type = ContainerType.CompressedFile
            };

            cabaretIsland.FileSearches.Add(ddsSearch);

            var dds1Search =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "2d_mn_syotitle_??.dds",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(DDSFile),
            };

            var chapter = new GameFileContainer
            {
                Path = @"media\data\pausepar_e\chapter.par",
                Type = ContainerType.CompressedFile
            };

            chapter.FileSearches.Add(dds1Search);

            ddsSearch =
                new GameFileSearch
            {
                RelativePath    = @"result\",
                SearchPattern   = "2d_ci_bu_rep*.dds",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(DDSFile),
            };

            var findArms = new GameFileContainer
            {
                Path = @"media\data\pausepar_e\find_arms.par",
                Type = ContainerType.CompressedFile
            };

            findArms.FileSearches.Add(ddsSearch);

            ddsSearch =
                new GameFileSearch
            {
                RelativePath    = @".",
                SearchPattern   = "rule_*.dds",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(DDSFile),
            };

            var minigame = new GameFileContainer
            {
                Path = @"media\data\pausepar_e\minigame.par",
                Type = ContainerType.CompressedFile
            };

            minigame.FileSearches.Add(ddsSearch);

            ddsSearch =
                new GameFileSearch
            {
                RelativePath    = @".",
                SearchPattern   = "p??_000.dds;staffroll.dds",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(DDSFile),
            };

            var movie = new GameFileContainer
            {
                Path = @"media\data\pausepar_e\movie.par",
                Type = ContainerType.CompressedFile
            };

            movie.FileSearches.Add(ddsSearch);

            var pause = new GameFileContainer
            {
                Path = @"media\data\pausepar_e\pause.par",
                Type = ContainerType.CompressedFile
            };

            ddsSearch =
                new GameFileSearch
            {
                RelativePath    = @"ability\",
                SearchPattern   = "k_a_all.dds;k_master_??.dds;m_a_all.dds;m_master_??.dds",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(DDSFile)
            };

            pause.FileSearches.Add(ddsSearch);

            ddsSearch =
                new GameFileSearch
            {
                RelativePath    = @"picture\",
                SearchPattern   = "2d_*.dds;head_pic_*.dds;kan_?.dds;rule_*.dds;ifc_jimaku_*.dds",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(DDSFile)
            };

            pause.FileSearches.Add(ddsSearch);

            var pcircuit = new GameFileContainer
            {
                Path = @"media\data\pausepar_e\pcircuit.par",
                Type = ContainerType.CompressedFile
            };

            ddsSearch =
                new GameFileSearch
            {
                RelativePath    = @".",
                SearchPattern   = "2d_ci_item_battery_??.dds",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(DDSFile)
            };

            pcircuit.FileSearches.Add(ddsSearch);

            var dds3Search =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "2d_jm_gp_*.dds;2d_yk_tg_style_??.dds",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(DDSFile)
            };

            var tougijyo = new GameFileContainer
            {
                Path = @"media\data\pausepar_e\tougijyo.par",
                Type = ContainerType.CompressedFile
            };

            tougijyo.FileSearches.Add(dds3Search);

            var result = new List <GameFileContainer>();

            result.Add(cabaretIsland);
            result.Add(chapter);
            result.Add(findArms);
            result.Add(minigame);
            result.Add(movie);
            result.Add(pause);
            result.Add(pcircuit);
            result.Add(tougijyo);
            return(result);
        }
예제 #25
0
        private IList <GameFileContainer> GetWdr()
        {
            var result = new List <GameFileContainer>();

            var aiPopupSearch =
                new GameFileSearch
            {
                RelativePath    = "common",
                SearchPattern   = "ai_popup.bin",
                IsWildcard      = false,
                RecursiveSearch = false,
                FileType        = typeof(YakuzaGame.Files.AiPopup.File)
            };

            var common_armsRepairSearch =
                new GameFileSearch
            {
                RelativePath    = "common\\shop",
                SearchPattern   = "arms_repair.bin",
                IsWildcard      = false,
                RecursiveSearch = false,
                FileType        = typeof(YakuzaGame.Files.ArmsRepair.File)
            };

            var common_blacksmithSearch =
                new GameFileSearch
            {
                RelativePath    = "common\\shop",
                SearchPattern   = "blacksmith.bin",
                IsWildcard      = false,
                RecursiveSearch = false,
                FileType        = typeof(YakuzaGame.Files.Blacksmith.File)
            };

            var common_presentSearch =
                new GameFileSearch
            {
                RelativePath    = "common\\shop",
                SearchPattern   = "present.bin;send.bin;throw.bin",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(YakuzaGame.Files.PresentSendThrow.File)
            };

            var common_saleSearch =
                new GameFileSearch
            {
                RelativePath    = "common\\shop",
                SearchPattern   = "sale????.bin",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(YakuzaGame.Files.Sale.File)
            };

            var wdr_barSearch =
                new GameFileSearch
            {
                RelativePath    = "shop",
                SearchPattern   = "bar????.bin",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(YakuzaGame.Files.Bar.File)
            };

            var wdr_restaurantSearch =
                new GameFileSearch
            {
                RelativePath    = "shop",
                SearchPattern   = "restaurant????.bin;ex_shop????.bin;shop????.bin",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(YakuzaGame.Files.Restaurant.File)
            };

            var snitchSearch =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "snitch.bin",
                IsWildcard      = false,
                RecursiveSearch = false,
                FileType        = typeof(Files.Snitch.File)
            };

            var wdr_msgSearch =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "*.msg",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(YakuzaGame.Files.Msg.File),
                Exclusions      =
                {
                    "pac_STID_TE_0009.bin",
                    "pac_STID_TE_0010.bin"
                }
            };

            var wdr_par = new GameFileContainer
            {
                Path = @"media\data\wdr_par_c\wdr.par",
                Type = ContainerType.CompressedFile
            };

            wdr_par.FileSearches.Add(aiPopupSearch);
            wdr_par.FileSearches.Add(common_armsRepairSearch);
            wdr_par.FileSearches.Add(common_blacksmithSearch);
            wdr_par.FileSearches.Add(common_presentSearch);
            wdr_par.FileSearches.Add(common_saleSearch);

            wdr_par.FileSearches.Add(wdr_barSearch);
            wdr_par.FileSearches.Add(wdr_restaurantSearch);
            wdr_par.FileSearches.Add(snitchSearch);
            wdr_par.FileSearches.Add(wdr_msgSearch);

            result.Add(wdr_par);

            return(result);
        }
예제 #26
0
        private IList <GameFileContainer> GetPause()
        {
            var dds1Search =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "2d_mn_syotitle_??.dds",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(DDSFile),
            };

            var chapter = new GameFileContainer
            {
                Path = @"media\data\pausepar\chapter_c.par",
                Type = ContainerType.CompressedFile
            };

            chapter.FileSearches.Add(dds1Search);

            var dds2Search =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "2d_mn_rom_continue.dds;2d_*.dds;head_pic_*.dds;kan_?.dds;ifc_jimaku_*.dds",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(DDSFile)
            };

            var pause_c = new GameFileContainer
            {
                Path = @"media\data\pausepar\pause_c.par",
                Type = ContainerType.CompressedFile
            };

            pause_c.FileSearches.Add(dds2Search);

            var dds3Search =
                new GameFileSearch
            {
                RelativePath    = ".",
                SearchPattern   = "2d_jm_gp_*.dds",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(DDSFile)
            };

            var tougijyo = new GameFileContainer
            {
                Path = @"media\data\pausepar\tougijyo.par",
                Type = ContainerType.CompressedFile
            };

            tougijyo.FileSearches.Add(dds3Search);

            var result = new List <GameFileContainer>();

            result.Add(chapter);
            result.Add(pause_c);
            result.Add(tougijyo);
            return(result);
        }
예제 #27
0
        private IEnumerable <GameFileContainer> GetScenario(string scenario, string path)
        {
            var result = new List <GameFileContainer>();

            var scenarioSingleLineSearch = new GameFileSearch()
            {
                RelativePath    = @".",
                SearchPattern   = $"{scenario}_u.cho;{scenario}_sel_u.bin;{scenario}_ba_u.bin;{scenario}_nolb_u.bin;",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(Files.SingleLine.File)
            };

            var scenarioMultiLineSearch = new GameFileSearch()
            {
                RelativePath    = @".",
                SearchPattern   = $"{scenario}_note_u.bin;",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(Files.MultiLine.File)
            };

            var scenarioMdtSearch = new GameFileSearch()
            {
                RelativePath    = @".",
                SearchPattern   = $"*_u.mdt;",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(Files.Mdt.File)
            };

            var container = new GameFileContainer
            {
                Path = $@"PWAAT_Data\StreamingAssets\{scenario.ToUpper()}\scenario",
                Type = ContainerType.Folder
            };

            container.FileSearches.Add(scenarioSingleLineSearch);
            container.FileSearches.Add(scenarioMultiLineSearch);
            container.FileSearches.Add(scenarioMdtSearch);

            result.Add(container);

            var ddsSearch = new GameFileSearch()
            {
                RelativePath    = @".",
                SearchPattern   = "*.dds",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(DDSFile)
            };

            var etc = new GameFileContainerSearch
            {
                RelativePath    = $@"PWAAT_Data\StreamingAssets\{scenario.ToUpper()}\etc",
                TypeSearch      = ContainerType.CompressedFile,
                RecursiveSearch = false,
                SearchPattern   = "*u.unity3d"
            };

            etc.FileSearches.Add(ddsSearch);

            result.AddRange(etc.GetContainers(path));

            return(result.ToArray());
        }
예제 #28
0
        public override GameFileContainer[] GetContainers(string path)
        {
            var result = new List <GameFileContainer>();

            var menuMultiLineSearch = new GameFileSearch()
            {
                RelativePath    = @".",
                SearchPattern   = "title_text_u.bin;option_text_u.bin;save_text_u.bin;system_text_u.bin;credit_text.bin",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(Files.MultiLine.File)
            };

            var menuSingleLineSearch = new GameFileSearch()
            {
                RelativePath    = @".",
                SearchPattern   = "common_text_u.bin;platform_text_u.bin",
                IsWildcard      = true,
                RecursiveSearch = false,
                FileType        = typeof(Files.SingleLine.File)
            };

            var menu = new GameFileContainer
            {
                Path = @"PWAAT_Data\StreamingAssets\menu\text",
                Type = ContainerType.Folder
            };

            menu.FileSearches.Add(menuMultiLineSearch);
            menu.FileSearches.Add(menuSingleLineSearch);

            result.Add(menu);

            var ddsSearch = new GameFileSearch()
            {
                RelativePath    = @".",
                SearchPattern   = "*.dds",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(DDSFile)
            };

            var images = new GameFileContainerSearch
            {
                RelativePath    = $@"PWAAT_Data\StreamingAssets",
                TypeSearch      = ContainerType.CompressedFile,
                RecursiveSearch = true,
                SearchPattern   = "*u.unity3d",
                Exclusions      = { "science" }
            };

            images.FileSearches.Add(ddsSearch);

            result.AddRange(images.GetContainers(path));

            result.AddRange(GetScenario("gs1", path));
            result.AddRange(GetScenario("gs2", path));
            result.AddRange(GetScenario("gs3", path));

            return(result.ToArray());
        }
예제 #29
0
        public override GameFileContainer[] GetContainers(string path)
        {
            var result = new List <GameFileContainer>();

            var textSearch = new GameFileSearch()
            {
                RelativePath    = @".",
                SearchPattern   = "EventList.txt",
                IsWildcard      = false,
                RecursiveSearch = true,
                FileType        = typeof(Files.EventList.File)
            };

            var textureSearch = new GameFileSearch()
            {
                RelativePath    = @".",
                SearchPattern   = "GoodEnd_*.dds;staff_*.dds;TX_OBJ_Gimmick201_D*.dds;TX_107*.dds;TX_Default_61*.dds;*UI_*.dds;kick_font_*.dds",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(TF.Core.Files.DDS2File),
            };

            var uiFontSearch = new GameFileSearch()
            {
                RelativePath    = @".",
                SearchPattern   = "Clock Font.UIFont",
                IsWildcard      = false,
                RecursiveSearch = true,
                FileType        = typeof(TF.Core.Files.BinaryFile),
            };

            var resources = new GameFileContainer
            {
                Path = @"NightCry_Data\resources.assets",
                Type = ContainerType.CompressedFile
            };

            resources.FileSearches.Add(textSearch);
            resources.FileSearches.Add(textureSearch);
            resources.FileSearches.Add(uiFontSearch);

            result.Add(resources);

            textureSearch = new GameFileSearch()
            {
                RelativePath    = @".",
                SearchPattern   = "*UI_*.dds;",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(TF.Core.Files.DDS2File),
            };

            var sharedAssets = new GameFileContainer
            {
                Path = @"NightCry_Data\sharedassets0.assets",
                Type = ContainerType.CompressedFile
            };

            sharedAssets.FileSearches.Add(textureSearch);

            result.Add(sharedAssets);

            textureSearch = new GameFileSearch()
            {
                RelativePath    = @".",
                SearchPattern   = "TX_OB_218_D.tex.dds",
                IsWildcard      = false,
                RecursiveSearch = true,
                FileType        = typeof(TF.Core.Files.DDS2File),
            };

            sharedAssets = new GameFileContainer
            {
                Path = @"NightCry_Data\sharedassets7.assets",
                Type = ContainerType.CompressedFile
            };

            sharedAssets.FileSearches.Add(textureSearch);

            result.Add(sharedAssets);

            textureSearch = new GameFileSearch()
            {
                RelativePath    = @".",
                SearchPattern   = "TX_Gimmick163_D.tex.dds",
                IsWildcard      = false,
                RecursiveSearch = true,
                FileType        = typeof(TF.Core.Files.DDS2File),
            };

            sharedAssets = new GameFileContainer
            {
                Path = @"NightCry_Data\sharedassets12.assets",
                Type = ContainerType.CompressedFile
            };

            sharedAssets.FileSearches.Add(textureSearch);

            result.Add(sharedAssets);

            textureSearch = new GameFileSearch()
            {
                RelativePath    = @".",
                SearchPattern   = "TX_PC_Desktop.tex.dds",
                IsWildcard      = false,
                RecursiveSearch = true,
                FileType        = typeof(TF.Core.Files.DDS2File),
            };

            sharedAssets = new GameFileContainer
            {
                Path = @"NightCry_Data\sharedassets17.assets",
                Type = ContainerType.CompressedFile
            };

            sharedAssets.FileSearches.Add(textureSearch);

            result.Add(sharedAssets);

            textureSearch = new GameFileSearch()
            {
                RelativePath    = @".",
                SearchPattern   = "TX_Ending_07_D.tex.dds",
                IsWildcard      = false,
                RecursiveSearch = true,
                FileType        = typeof(TF.Core.Files.DDS2File),
            };

            sharedAssets = new GameFileContainer
            {
                Path = @"NightCry_Data\sharedassets26.assets",
                Type = ContainerType.CompressedFile
            };

            sharedAssets.FileSearches.Add(textureSearch);

            result.Add(sharedAssets);

            textSearch = new GameFileSearch()
            {
                RelativePath    = @".",
                SearchPattern   = "HistoryCtrl.LanguageChanger",
                IsWildcard      = false,
                RecursiveSearch = true,
                FileType        = typeof(Files.LanguageChanger.File),
            };

            var labelSearch = new GameFileSearch()
            {
                RelativePath    = @".",
                SearchPattern   = "*.UILabel",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(Files.UILabel.File),
            };

            var level = new GameFileContainer
            {
                Path = @"NightCry_Data\level3",
                Type = ContainerType.CompressedFile
            };

            level.FileSearches.Add(textSearch);
            level.FileSearches.Add(labelSearch);

            result.Add(level);

            level = new GameFileContainer
            {
                Path = @"NightCry_Data\level4",
                Type = ContainerType.CompressedFile
            };

            level.FileSearches.Add(labelSearch);

            result.Add(level);

            return(result.ToArray());
        }
예제 #30
0
        public GameFileContainer[] GetContainers(string path)
        {
            var result = new List <GameFileContainer>();

            var exe = new GameFileSearch()
            {
                RelativePath    = ".",
                SearchPattern   = "underrail.exe",
                IsWildcard      = false,
                RecursiveSearch = false,
                FileType        = typeof(Files.Exe.File)
            };

            var root = new GameFileContainer
            {
                Path = @".\",
                Type = ContainerType.Folder
            };

            root.FileSearches.Add(exe);

            result.Add(root);

            var udlgs = new GameFileSearch()
            {
                RelativePath    = @".",
                SearchPattern   = "*.udlg",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(Files.Common.File)
            };

            var dialogs = new GameFileContainer()
            {
                Path = @".\data\dialogs",
                Type = ContainerType.Folder
            };

            dialogs.FileSearches.Add(udlgs);
            result.Add(dialogs);

            var ks = new GameFileSearch()
            {
                RelativePath    = @".",
                SearchPattern   = "*.k",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(Files.Common.File)
            };

            var knowledge = new GameFileContainer()
            {
                Path = @".\data\knowledge",
                Type = ContainerType.Folder
            };

            knowledge.FileSearches.Add(ks);
            result.Add(knowledge);

            var items = new GameFileSearch()
            {
                RelativePath    = @".",
                SearchPattern   = "*.item",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(Files.Common.File)
            };

            var itemFolder = new GameFileContainer()
            {
                Path = @".\data\rules\items",
                Type = ContainerType.Folder
            };

            itemFolder.FileSearches.Add(items);
            result.Add(itemFolder);

            var zones = new GameFileSearch()
            {
                RelativePath    = @".",
                SearchPattern   = "*.uz",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(Files.Common.File)
            };
            var zoneLayers = new GameFileSearch()
            {
                RelativePath    = @".",
                SearchPattern   = "*.uzl",
                IsWildcard      = true,
                RecursiveSearch = true,
                FileType        = typeof(Files.Common.File)
            };

            var zonesFolder = new GameFileContainer()
            {
                Path = @".\data\maps\locale\static",
                Type = ContainerType.Folder
            };

            zonesFolder.FileSearches.Add(zones);
            zonesFolder.FileSearches.Add(zoneLayers);
            result.Add(zonesFolder);

            return(result.ToArray());
        }