/// <summary>
        /// Obtains the pointers for a specific stage's start/ending/bragging positions for the given stage.
        /// </summary>
        public static StageInfo FromStageId(Stage stageId)
        {
            // Categorize the individual stage and decide if to take 1P or 2P path.
            var tags = Tagger.GetStageTags(stageId);
            var info = new StageInfo();

            // Check if 2 player to perform or 1 player.
            if (tags.HasFlag(StageTag.TwoPlayer))
            {
                for (int x = 0; x < StageFunctions.MultiplayerStart.Count; x++)
                {
                    if (StageFunctions.MultiplayerStart[x].StageId == stageId)
                    {
                        info.MultiplayerStartPositions = &StageFunctions.MultiplayerStart.Pointer[x];
                        break;
                    }
                }

                for (int x = 0; x < StageFunctions.MultiPlayerBrag.Count; x++)
                {
                    if (StageFunctions.MultiPlayerBrag[x].StageId == stageId)
                    {
                        info.MultiplayerBragPositions = &StageFunctions.MultiPlayerBrag.Pointer[x];
                        break;
                    }
                }
            }
            else
            {
                for (int x = 0; x < StageFunctions.SinglePlayerStart.Count; x++)
                {
                    if (StageFunctions.SinglePlayerStart[x].StageId == stageId)
                    {
                        info.StartPositions = &StageFunctions.SinglePlayerStart.Pointer[x];
                        break;
                    }
                }
            }

            for (int x = 0; x < StageFunctions.BothPlayerEnd.Count; x++)
            {
                if (StageFunctions.BothPlayerEnd[x].StageId == stageId)
                {
                    info.EndPositions = &StageFunctions.BothPlayerEnd.Pointer[x];
                    break;
                }
            }

            return(info);
        }