static StageIDMap()
        {
            // static initializer

            List <KeyValuePair <byte, string> > byID = new List <KeyValuePair <byte, string> >();

            for (byte b = 1; b <= 103; b++)
            {
                string pac = StageIDMap.PacBasenameForStageID(b);
                if (pac != null)
                {
                    byID.Add(new KeyValuePair <byte, string>(b, pac.ToUpper()));
                }
            }
            StagesByID = byID.AsReadOnly();
        }
        public Song GetSong(string filename, Song originalSong)
        {
            int stageID = StageIDMap.StageIDForPac(filename);

            if (this.AlternateStageLoaderData.TryGetDefinition(filename, out AlternateStageEntry entry))
            {
                foreach (var alt in entry.ButtonActivated.Where(b => filename.EndsWith($"_{b.Letter}.pac", StringComparison.InvariantCultureIgnoreCase)))
                {
                    Song newSong = this.AltStageSongForcer.GetSong(stageID, alt.ButtonMask, originalSong);
                    if (newSong.ID != originalSong.ID)
                    {
                        return(newSong);
                    }
                }
            }
            return(this.SongLoaders.GetSong(stageID, originalSong));
        }
Esempio n. 3
0
        static StageIDMap()
        {
            // static initializer
            #region Arrays containing stage data
            string[] relnames = { "st_custom##",
                                  "st_battle",    "st_final",
                                  "st_dolpic",    "st_mansion",    "st_mariopast",
                                  "st_kart",      "st_donkey",     "st_jungle",
                                  "st_pirates",   "st_norfair",    "st_orpheon",
                                  "st_crayon",    "st_halberd",    "st_starfox",
                                  "st_stadium",   "st_tengan",     "st_fzero",
                                  "st_ice",       "st_gw",         "st_emblem",
                                  "st_madein",    "st_earth",      "st_palutena",
                                  "st_famicom",   "st_newpork",    "st_village",
                                  "st_metalgear", "st_greenhill",  "st_pictchat",
                                  "st_plankton",  "st_config",     "st_dxshrine",
                                  "st_dxyorster", "st_dxgarden",   "st_dxonett",
                                  "st_dxgreens",  "st_dxpstadium", "st_dxrcruise",
                                  "st_dxcorneria","st_dxbigblue",  "st_dxzebes",
                                  "st_oldin",     "st_homerun",    "st_stageedit",
                                  "st_heal",      "st_otrain",     "st_tbreak" };
            string[] pac_basenames = { "custom",
                                       "battlefield","final",
                                       "dolpic",     "mansion",        "mariopast",
                                       "kart",       "donkey",         "jungle",
                                       "pirates",    "norfair",        "orpheon",
                                       "crayon",     "halberd",        "starfox",
                                       "stadium",    "tengan",         "fzero",
                                       "ice",        "gw",             "emblem",
                                       "madein",     "earth",          "palutena",
                                       "famicom",    "newpork",        "village",
                                       "metalgear",  "greenhill",      "pictchat",
                                       "plankton",   "configtest",     "dxshrine",
                                       "dxyorster",  "dxgarden",       "dxonett",
                                       "dxgreens",   "dxpstadium",     "dxrcruise",
                                       "dxcorneria", "dxbigblue",      "dxzebes",
                                       "oldin",      "homerun",        "edit",
                                       "heal",       "onlinetraining", "targetlv" };
            string[] stagenames = { "STGCUSTOM##.pac",        "Battlefield",
                                    "Final Destination",      "Delfino Plaza",         "Luigi's Mansion",
                                    "Mushroomy Kingdom",      "Mario Circuit",         "75 m",
                                    "Rumble Falls",           "Pirate Ship",           "Norfair",
                                    "Frigate Orpheon",        "Yoshi's Island (Brawl)","Halberd",
                                    "Lylat Cruise",           "Pokemon Stadium 2",     "Spear Pillar",
                                    "Port Town Aero Dive",    "Summit",                "Flat Zone 2",
                                    "Castle Siege",           "WarioWare Inc.",        "Distant Planet",
                                    "Skyworld",               "Mario Bros.",           "New Pork City",   "Smashville",
                                    "Shadow Moses Island",    "Green Hill Zone",       "PictoChat",
                                    "Hanenbow",               "ConfigTest",            "Temple",
                                    "Yoshi's Island (Melee)", "Jungle Japes",          "Onett",
                                    "Green Greens",           "Pokemon Stadium",       "Rainbow Cruise",
                                    "Corneria",               "Big Blue",              "Brinstar",        "Bridge of Eldin",
                                    "Homerun",                "Edit",                  "Heal",            "Online Practice Stage",
                                    "TargetBreak" };
            byte[]   ids = { 0,  1,  2,  3,  4,  5,  6,  7,
                             8,    9, 11, 12, 13, 14, 19, 20, 21,
                             22,  23, 24, 25, 28, 29, 30, 31, 32, 33,
                             34,  35, 36, 37, 38, 41,
                             42,  43, 44, 45, 46, 47, 48, 49, 50, 51,
                             52,  53, 54, 55, 56 };
            #endregion

            List <Stage> list = new List <Stage>(ids.Length);
            for (int i = 0; i < ids.Length; i++)
            {
                list.Add(new Stage(ids[i], stagenames[i], relnames[i], pac_basenames[i]));
            }
            Stages = list.AsReadOnly();

            List <KeyValuePair <byte, string> > byID = new List <KeyValuePair <byte, string> >();
            for (byte b = 1; b <= 100; b++)
            {
                string pac = StageIDMap.PacBasenameForStageID(b);
                if (pac != null)
                {
                    byID.Add(new KeyValuePair <byte, string>(b, pac.ToUpper()));
                }
            }
            StagesByID = byID.AsReadOnly();
        }