/** Poziom menu
 */
class mnu_Submenu extends mnu_Element
{
    public mnu_Element[] aSubMenu = null;//#

    public String toString()
    {
        String names = "";

        if(aSubMenu!=null)
        {
            for (int i=0; i<aSubMenu.length; i++)
                names += aSubMenu[i].toString() + " ";
        }
        
        return new String(sName + "[ " + names + "]");
    }

    void OnDestroy()
    {
        if(aSubMenu != null)
        {
            for(int i=0; i<aSubMenu.length; ++i)
            {
                if(aSubMenu[i] != null)
                {
                    aSubMenu[i].delete();
                    aSubMenu[i] = null;
                }
            }
            aSubMenu = null;
        }
    }
    
    public void PropagateParents(mnu_Submenu cParent)
    {
        super.PropagateParents(cParent);
        
        if(aSubMenu!=null)
        {
            for (int i=0; i<aSubMenu.length; i++)
                aSubMenu[i].PropagateParents(this);
        }
    }
    
    //*********************************************************
    //					SaveGame
    //*********************************************************
    
    /** Metoda wczytujaca zapisane dane w Save gracza
     */	
    public void SGLoadChunk(FileChunk cParentFC)
    {
        FileChunk.Log("[mnu_Submenu.SGLoadChunk]\n");
        
        FileChunk cFC = GameObject.LoadChunk(cParentFC);
        
        if (cFC.GetID() == ESGChunksChrome._CHK_MNU_SUBMENU_ELEMENT)
        {
            cFC.LoadObjectsTable(aSubMenu);
        }
        
        cFC.delete();
    }
    
    /** Metoda zapisujaca dane do Save gracza
     */		
    public void SGSaveChunk(FileChunk cFCParent)
    {
        FileChunk.Log("[mnu_Submenu.SGSaveChunk]\n");
        
        FileChunk cFC = GameObject.NewChunk(ESGChunksChrome._CHK_MNU_SUBMENU_ELEMENT, cFCParent);
        
        cFC.SaveObjectsTable(aSubMenu);
        
        cFC.delete();
    }							

}
