public void KONAMI(GamePadState gamePadState)
    {
        // stores a letter if up, down, left, right, a, b or start is pressed and a dash if something else is pressed
        if (gamePadState.DPad.Up == ButtonState.Pressed && !m_inputDelay.bFlag)
        {
            if (m_fKonamiTimer >= m_fKONAMIDuration)
            {
                m_fKonamiTimer = 0.0f;
                m_sBuffer      = string.Empty;
            }

            m_sBuffer         += "u";
            m_inputDelay.bFlag = true;
            m_fKonamiTimer     = 0.0f;
        }
        else if (gamePadState.DPad.Down == ButtonState.Pressed && !m_inputDelay.bFlag)
        {
            if (m_fKonamiTimer >= m_fKONAMIDuration)
            {
                m_fKonamiTimer = 0.0f;
                m_sBuffer      = string.Empty;
            }

            m_sBuffer         += "d";
            m_inputDelay.bFlag = true;
            m_fKonamiTimer     = 0.0f;
        }
        else if (gamePadState.DPad.Left == ButtonState.Pressed && !m_inputDelay.bFlag)
        {
            if (m_fKonamiTimer >= m_fKONAMIDuration)
            {
                m_fKonamiTimer = 0.0f;
                m_sBuffer      = string.Empty;
            }

            m_sBuffer         += "l";
            m_inputDelay.bFlag = true;
            m_fKonamiTimer     = 0.0f;
        }
        else if (gamePadState.DPad.Right == ButtonState.Pressed && !m_inputDelay.bFlag)
        {
            if (m_fKonamiTimer >= m_fKONAMIDuration)
            {
                m_fKonamiTimer = 0.0f;
                m_sBuffer      = string.Empty;
            }

            m_sBuffer         += "r";
            m_inputDelay.bFlag = true;
            m_fKonamiTimer     = 0.0f;
        }
        else if (gamePadState.Buttons.B == ButtonState.Pressed && !m_inputDelay.bFlag)
        {
            if (m_fKonamiTimer >= m_fKONAMIDuration)
            {
                m_fKonamiTimer = 0.0f;
                m_sBuffer      = string.Empty;
            }

            m_sBuffer         += "b";
            m_inputDelay.bFlag = true;
            m_fKonamiTimer     = 0.0f;
        }
        else if (gamePadState.Buttons.A == ButtonState.Pressed && !m_inputDelay.bFlag)
        {
            if (m_fKonamiTimer >= m_fKONAMIDuration)
            {
                m_fKonamiTimer = 0.0f;
                m_sBuffer      = string.Empty;
            }

            m_sBuffer         += "a";
            m_inputDelay.bFlag = true;
            m_fKonamiTimer     = 0.0f;
        }
        else if (gamePadState.Buttons.Start == ButtonState.Pressed && !m_inputDelay.bFlag)
        {
            if (m_fKonamiTimer >= m_fKONAMIDuration)
            {
                m_fKonamiTimer = 0.0f;
                m_sBuffer      = string.Empty;
            }

            m_sBuffer         += "s";
            m_inputDelay.bFlag = true;
            m_fKonamiTimer     = 0.0f;
        }
        else if (gamePadState.Buttons.X == ButtonState.Pressed && gamePadState.Buttons.Y == ButtonState.Pressed &&
                 gamePadState.Buttons.Back == ButtonState.Pressed && gamePadState.Buttons.Guide == ButtonState.Pressed &&
                 gamePadState.Buttons.LeftShoulder == ButtonState.Pressed && gamePadState.Buttons.RightShoulder == ButtonState.Pressed &&
                 gamePadState.Buttons.LeftStick == ButtonState.Pressed && gamePadState.Buttons.RightStick == ButtonState.Pressed &&
                 gamePadState.Triggers.Left != 0.0f && gamePadState.Triggers.Right != 0.0f &&
                 gamePadState.ThumbSticks.Left.X != 0.0f && gamePadState.ThumbSticks.Left.Y != 0.0f &&
                 gamePadState.ThumbSticks.Right.X != 0.0f && gamePadState.ThumbSticks.Right.Y != 0.0f &&
                 !m_inputDelay.bFlag)
        {
            if (m_fKonamiTimer >= m_fKONAMIDuration)
            {
                m_fKonamiTimer = 0.0f;
                m_sBuffer      = string.Empty;
            }

            m_sBuffer         += "-";
            m_inputDelay.bFlag = true;
            m_fKonamiTimer     = 0.0f;
        }

        // checks if too many characters are given
        if (m_sBuffer.Length > 11)
        {
            // removes the first character
            char[] sBuffer = m_sBuffer.ToCharArray(1, 11);
            m_sBuffer = string.Empty;
            for (int i = 0; i < sBuffer.Length; i++)
            {
                m_sBuffer += sBuffer[i];
            }
        }

        // ensures the user is not taking too long to input the code
        if (m_fKonamiTimer <= m_fKONAMIDuration)
        {
            m_fKonamiTimer += Time.deltaTime;
        }

        // checks if the konami code was entered
        if (m_sBuffer == m_sKonami && !m_bKonami)
        {
            m_gameOverCanvas.KONAMION();
            m_sBuffer = string.Empty;
        }
        else if (m_sBuffer == m_sKonami && m_bKonami)
        {
            m_gameOverCanvas.KONAMIOFF();
            m_sBuffer = string.Empty;
        }

        if (m_inputDelay.bFlag)
        {
            m_inputDelay.fTimer -= Time.deltaTime;
            if (m_inputDelay.fTimer < 0.0f)
            {
                m_inputDelay.fTimer = m_fInputDelay;
                m_inputDelay.bFlag  = false;
            }
        }
    }