#include "menu.hpp"

//constructeur
menu::menu()
{
    //model
    _menu = loadShell("../data/menu.shell");
    //parametre
    _radY = 0;
    _mode = 1;
    //camera
    _cam.moveTo(point(0,0,8));
    _cam.setRadius(10);
    //inhibiteur
    _mute =false;
}

//mise à jour du menu selon l'entré utilisateur
void menu::update()
{
    //selon le mode de départ et la position du cube menu
    if (_mode == 0 && _radY > -pi/2)
    {
        _radY-=pi/16;
    }
    else if(_mode == 0)
        _mute = false;
    if (_mode == 1)
    {
        if (_radY < -0.1)
        {
            _radY+=pi/32;
        }
        else if (_radY > 0.1)
        {
            _radY-=pi/32;
        }
        else
        {
            _radY=0;
            _mute = false;
        }
    }
    if (_mode == 2 && _radY < pi/2)
    {
        _radY+=pi/16;
    }
    else if (_mode == 2)
        _mute = false;

    //bouger le menu selon l'angle
    shell tmp(_menu);
    tmp.rotY(_radY);
    _cam.addShell(tmp);
}

//pivoter le menu
void menu::left()
{
    if(!_mute && _mode > 0)
        _mode--;
    _mute = true;
}

void menu::right()
{
    if(!_mute && _mode < 2)
        _mode++;
    _mute = true;
}

//obtenir le mode
int menu::getMode()const
{
    //legere traduction
    if (_mode == 0)
        return 0;
    if (_mode == 1)
        return 2;
    if (_mode == 2)
        return 0;
    return 0;
}





