Parler et verbes de communication dans la lib francophone

Le problème avec l’appelation « VagueTell » c’est justement sa proximité avec « VagueDo ».
En effet, VagueDo c’est quand quelqu’un a tapé juste « faire ». Je ne vois aucune situation où le verbe « faire » seul peut servir à quelque chose.

En revanche « ParlerSansPrecision » est susceptible d’être souvent utilisé par les auteurs qui ne veulent pas s’embeter avec des dialogues compliqués et déclenchent un dialogue scripté.

En revanche c’est vrai que ParlerSansPrecision est un peu long et si on peut trouver plus court sans ajouter d’ambiguïté ce ne serait pas mal.

Pour le InterrogerSansPrecision, c’est vrai qu’il peut être superflu, je le retire donc et je le remplace par ParlerSansPrecision.
Cependant, si quelqu’un a un bon argument pour le remettre on étudiera cette éventualité.
Edit : au final seul ParlerSansPrecision reste.

Une précision sur l’impact de cette nouvelle action ParlerSansPrecision sur le codage de nos IF : cette action ne sera pas interceptée dans la propriété « life » des PNJ (d’ailleurs si quelqu’un sait comment faire pour qu’elle le soit je suis preneur !), donc il faudra la traiter dans le before.
Edit : maintenant si.

Ainsi, pour traiter un PNJ il faudra bien penser à intercepter cette action dans le before (Edit : dans life maintenant), ainsi que Answer, Tell et Ask dans life. Si l’on veut que Answer, Tell et Ask renvoient sans distinction l’action ParlerSansPrecision, plutôt que dupliquer le code pour traiter les actions, envoyer un <>, qu’en pensez-vous ? (Edit : inutile maintenant qu’on peut tout intercepter dans life)

Résumé des actions de communication
Pour travailler sur ces modifications, j’ai dû réussir à comprendre les différences entre les diverses actions, et en voici un résumé pour ceux qui comme moi il y a trois jours ignoraient comment communiquer correctement avec les personnages.
Par défaut dans la lib anglophone, pour communiquer par la parole avec un personnage, on a les actions suivantes :

  • Answer : comme son nom ne l’indique pas, c’est l’action d’envoyer n’importe quel texte libre au personnage. C’est la
    plus difficile à gérer. Si je dis « dire comment ça va au personnage », le personnage va recevoir une action Answer avec le texte « comment ça va ». A nous de gérer ensuite comment il la traite. J’adorerais qu’on ait une classe de PNJ prédéfinie qui gère les expressions de base, et je la ferai d’ailleurs peut-être moi-même, ou on pourrait la faire ensemble.

  • Tell : ça c’est quand on parle d’un sujet précis à un personnage : « Parler du loup des bois à toto ». L’action Tell est envoyée à l’objet toto, avec comme « topic », sujet de conversation, les mots « loup des bois ». A nous de gérer ensuite les différents sujets qui peuvent être abordés et leurs diverses formulations.

  • Ask : c’est identique à Tell ! Sauf que c’est l’action envoyée par les verbes permettant d’interroger les personnages. Cela permet si l’on le souhaite, de différencier le fait de parler d’un sujet avec celui de questionner sur un sujet. Dans la pratique, si l’on ne souhaite pas faire cette différenciation, il est indispensable d’intercepter aussi bien Tell que Ask dans la propriété life.

    life [;
        Ask, Tell : ! si le sujet dont on veut parler est le loup des bois, dire qu'il est très rare
  • ParlerSansPrecision
    Le lecteur avisé aura remarqué ce que j’ai mis un moment avant de comprendre : il n’existe dans la lib anglophone d’origine aucune action pour intercepter le verbe Parler (cherchez « talk » dans Grammar.h vous verrez). Le fait de pouvoir simplement « Parler » est un ajout dans la lib francophone, mais dans la version actuelle il est erronné (même si ça ne se voit pas toujours dans la pratique) car il est associé à l’action Tell qui attend obligatoirement un topic pour être traitée correctement !

Comme le fait de pouvoir simplement « Parler » sans évoquer un sujet précis me semble très utile, j’ai donc ajouté ce fameux ParlerSansPrecision, et s’il est retenu il va nous falloir apprendre à en tenir compte dans nos codages, et adapter le code de certains jeux existants à cette séparation des actions.

Autre solution, suivre la lib anglophone et mettre le verbe Parler dans un fichier de lib séparé, mais dans tous les cas un jeu recompilé avec la prochaine version de la lib francophone devra être retesté sur les dialogues, voire adapté. (Edit : cette solution n’a pas été retenue pour l’instant)

C’est pourquoi l’avis de tous les intéressés est plus que nécessaire avant tout changement définitif.

(Autres actions que je n’ai pas détaillées : AskFor qui envoit une action Give au life du personnage : « demander du pain au boulanger », et AskTo qui veut dire « demander de faire quelque chose » et qui est traité dans la propriété « orders » des personnages.