// UTS 2000 - fichier 'canton.h'
// V3.7c  Le 22/09/2016
#include "Train_UTS.h"

class cCanton
{
    public:
    int  num_train[NB_CARTE][NB_CANTON];		// (0 à 15) Si un canton est occupé ou seulement réservé = Numéro du train prévu sur ce canton.
    int  res_auto[NB_CARTE][NB_CANTON];			// (0 ou 1) = 1 si un canton est réservé pour un déplacement automatique,  y compris le canton ou est le train 
    int  master_selectif[NB_CARTE][NB_CANTON];	// (0 ou 1) = 1 si un canton est en mode selectif et qu'un train l'occupe
    int  master_selectif_tempo[NB_CARTE][NB_CANTON];	// (x à 0) =0 => (Tempo) On peut libérer un canton qui est en mode selectif et qu'un train n'occupe plus.
    int  inv_selectif[NB_CARTE][NB_CANTON];     // (0 ou 1) = 1 suite à une boucle de retournement, la vitesse du train devient inversée sur ces cantons.
    int  update_selectif[NB_CARTE][NB_CANTON];  // (0 ou 1 ) = 1 si ce prochain canton est réservé par un train qui avance. Le train n'est pas encore sur ce canton.
    int  vit_auto[NB_CARTE][NB_CANTON];
    int  vit_selectif[NB_CARTE][NB_CANTON];
    int  allowed_sens[NB_CARTE][NB_CANTON];
         cCanton(void);
    void init(void);
    void save_conf();
    void maj(void);
    void debug(int action);
    private:
    int get_iti_line(FILE* pf, char ch_tab[][CHAR_CONFIG_NB], int* ch_nb);
};