Main
using System;
using System.Collections;
using System.Collections.Generic;
using Sifteo;
using Libraries;

namespace App
{
    public class RulesDisplay
    {
        // Purpose:
        // Used to display game rules, like what beats what.
        // wrapper - Cube the display is for.
        public RulesDisplay(GameCubeWrapper wrapper)
        {
            m_textDisplay.m_show = true;
            m_textDisplay.m_posX = 5;
            m_textDisplay.m_posY = 5;
            UpdateText(wrapper);
        }

        // Purpose:
        // Change rules displayed.
        // next - True if it should go to the next set of rules, false if to the previous.
        public void ChangeRules(bool next,
                                GameCubeWrapper wrapper)
        {  
            if(next)
                ++m_currTextType;
            else
                --m_currTextType;

            if(m_currTextType >= wrapper.GetApp().m_text.m_rulesText.Length)
                m_currTextType = wrapper.GetApp().m_text.m_rulesText.Length - 1;
            else if(0 > m_currTextType)
                m_currTextType = 0;
            else
                m_currPage = 0;     // Change occured, reset the page.
           
            UpdateText(wrapper);
        }

        // Purpose:
        // Update the text to display
        public void UpdateText(GameCubeWrapper wrapper)
        {

            m_textDisplay.m_text = wrapper.GetApp().m_text.m_rulesText[m_currTextType][m_currPage];
            m_textDisplay.m_needsRender = true;
        }

        // Purpose:
        // Change rules page displayed.
        // next = Value is true to go to the next page, false to go to the previous.
        public void ChangePage(bool next,
                               GameCubeWrapper wrapper)
        {
            String [] pages = wrapper.GetApp().m_text.m_rulesText[m_currTextType];

            if(next)
            {
                if(m_currPage != (pages.Length-1))
                {
                    ++m_currPage;
                    UpdateText(wrapper);
                }  
            }
            else
            {
                if(m_currPage > 0)
                {
                    --m_currPage;
                    UpdateText(wrapper);
                }  
            }
        }
       
        // Purpose:
        // Insert render objects into the renderer.
        // renderer - Renderer to use.
        //
        // Return:
        // Value is true if it was included in the renderer, false if not.
        public bool UseRenderer(Renderer renderer)
        {
            if(m_textDisplay.m_needsRender && m_textDisplay.m_show)
            {
                renderer.Insert(m_textDisplay);
                return true;
            }

            return false;
        }

        public RenderObj GetRenderObj()
        {
            return m_textDisplay;
        }

        // Purpose:
        // Check if the rules need to render.  Value is true if it does, false if not.
        public bool CheckNeedsRender()
        {
            return ((null != m_textDisplay) && m_textDisplay.m_needsRender);
        }

        // Current page of text to display.
        private int m_currPage = 0;

        // Current set of text to display.
        private int m_currTextType = 0;
       
        // Text display.
        private Libraries.RenderText m_textDisplay = new Libraries.RenderText("Fontmap", 6, 10, 16);
    }
}

 
Website copyright (c) 2012 Benjamin Millek, all rights reserved.