Ejemplo n.º 1
0
void ControlleurJDR::modification (bool fini, Qt::CheckState achat, QSet<Supplement> supplement)
{
    JeuxDeRole* athena = dynamic_cast<JeuxDeRole*>(courant ());

    athena->setFini (fini);
    athena->setAchat (achat);
    QSet<Supplement> hera;
    QSet<Supplement> artemis = athena->supplement ();
    foreach(Supplement zeus, artemis)
    {
        if(!supplement.contains (zeus))
        {
            hera<<zeus;
        }
    }

    artemis.subtract (hera);
    artemis += supplement;
}
Ejemplo n.º 2
0
void chaine_effets::operator()() {
	
	for(size_t i=0; i<effets_.size(); ++i) {
		effet& courant = *effets_[i];
		// Règle l'entrée et la sortie
		if(i % 2 == 0) {
			courant.in(s_tmp2_);
			courant.out(s_tmp1_);
		} else {
			courant.in(s_tmp1_);
			courant.out(s_tmp2_);
		}
		
		if(i == 0)
			courant.in(s_);
		
		// out <- in (pour l'instant)
		courant.out().resize(courant.in().size());
		std::copy(courant.in().data().begin(), courant.in().data().end(), courant.out().data().begin());
		
		// Applique l'effet
		courant();
	}
}
Ejemplo n.º 3
0
void ControlleurJDR::setVue ()
{
    m_vue = new FenetreJDR(dynamic_cast<JeuxDeRole*>(courant ()));
    connect(dynamic_cast<FenetreJDR*>(m_vue), SIGNAL(s_accept(bool,Qt::CheckState,QSet<Supplement>)), this, SLOT(modification(bool,Qt::CheckState,QSet<Supplement>)));
}
Ejemplo n.º 4
0
ListeDescripteurs liste(char* nom_fichier, bool affichage) {
    int fd = open(nom_fichier, O_RDONLY);
    if (fd == -1) {
        printf("%s n'a pas pu être ouvert... Merci de vérifier son chemin\n", nom_fichier);
        return NULL;
    }
    //printf("Avant lseek\n");
    off_t finDescripteurs = lseek(fd, ((-1)  * sizeof(uint)), SEEK_END);             //on se met au descripteur global d'archive
    uint archive;
    //printf("avant read\n");
    read(fd, &archive, 32);
    //printf("avant premierDescripteur\n");
    off_t premierDescripteur = getPremierDescripteur(archive);      //on construit le 1° descripteur
    
    lseek(fd, premierDescripteur, SEEK_SET);

    uint bufferDescripteursBruts;
    uint* descripteursBruts = malloc(255 * sizeof(uint)); 
    int lus;
    int i=0;
    while((lus = read(fd, &bufferDescripteursBruts, sizeof(uint))) > 0){
        descripteursBruts[i] = bufferDescripteursBruts;
    }
    // On a récupérer les descripteurs en "brut" (que des int qui se suivent)
    if(descripteursBruts == NULL){
        printf("le buffer est vide\n");
    }
    // Cette fonction nous créé une liste de descripteurs
    ListeDescripteurs liste =  getIntToDescripteurs(descripteursBruts);

    // partie affichage
    if (affichage) {
        int j;
        printf("type:date:nom");
        if (affiche)
            printf(":taille(octets):uid:gid:droits");
        printf("\n");

        int profTab = 0;
        if(courant(liste) == NULL){
            printf("Erreur : impossible de récupérer la configuration de l'archive\n");
            detruireListeDescripteurs(liste);
            return NULL;
        }
        do{
            char* espacement_actuel = "";
            profTab = getProfondeur(courant(liste));
            for (j = 0; j < profTab; j++) { //tabulation par rapport a la profondeur du fichier
                strcat(espacement_actuel, espacement);
            }
            char* nameS = getFilename(courant(liste));
            printf("nom de fichier%s\n", getNbCarac(courant(liste)));
    	    printf("%s->%u:%u:%s", espacement_actuel, getType(courant(liste)), getDate(courant(liste)), nameS), getFilename(courant(liste));

            if (affiche) { //le reste des parametres de l'archive si demandé
                printf(":%u:%u:%u:%u", getTailleFichier(courant(liste)), getUid(courant(liste)), getGid(courant(liste)), getDroits(courant(liste)));
            }
            printf("\n");
        }while(suivant(liste));
    }
    close(fd);
    return liste;
}