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; }
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(); } }
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>))); }
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; }