Cocrane a écrit :1- le dialog.tlk de référence sera utilisé uniquement pour les fichiers en provenance du jeu ou de l'override.
Ce fichier sera crée lors de l'installation de l'éditeur et remplacé en cas de changement de chemin du répertoire de jeu BG signalé dans la configuration de l'éditeur.
Si tu fais ça, ça ne sert à rien de faire une copie. Autant utiliser directement celui du répertoire du jeu.
Cocrane a écrit :2- la création de nouveau fichiers va engendrer de nouveaux textes. Les nouveaux textes seront sauvegardés dans les données de l'éditeur.
Où sont les données de l'éditeur ? Si c'est pour faire comme avec la version 2.1.6, c'est à dire un endroit propre à l'éditeur et non pas au mod, cela ne fera pas vraiment progresser la situation. Tu courras toujours le risque d'écraser ce fichier avec un auteur de mod qui veut en gérer plusieurs à la fois.
Cocrane a écrit :Ils ont auront un indice particulier.
Exemple: E12345. E pour signaler Editeur.
Si un fichier BG à afficher signale le caractère 'E' dans l'un de ses indices, le texte fera donc référence aux données de l'éditeur.
Le pointage du fichier CRE vers le texte est un entier 32 bits (4 octets). Tu ne peux pas y mettre une lettre !
Si tu veux faire ça, décide d'une valeur frontière énorme en terme de nombre entier, par exemple 1 million ou 1 milliard, et au-delà tu décrètes que ça vient du mod et non du jeu.
Cocrane a écrit :Avantage: les nouveaux textes ne seront pas liés au fichier dialog.tlk.
Désavantage: on ne peut pas copier-coller un fichier du répertoire mod dans le répertoire de l'override pour le tester dans le jeu BG. Les indices de type 'E...' ne seront exploitables.
Le désavantage est lourd par rapport à la situation présente. Il t'oblige à coder tout un module spécifique uniquement pour que l'auteur de mod ne se retrouve pas coincé et puisse avoir un moyen simple de tester. Bref tu vas devoir recoder en quelque sort un bout de WeiDU pour y parvenir.
Cocrane a écrit :3- Pour tester, un fichier du mod dans le jeu, une fonction de test effectuera les actions suivantes
- copie du ou des fichiers ciblées du mod avec des nouveaux indices compatibles avec BG.
- création d'un fichier dialog.tlk à partir de celui du jeu BG avec les nouveaux indices.
Les fichiers seront crées dans un répertoire de test.
Les fichiers seront à copier-coller dans l'override.
Le test dans BG pourra commencer.
Si tu veux partir dans la voie de gérer séparément les textes du mod, il serait tout aussi simple de créer un fichier TP2 d'installation des créatures du mod et un fichier TRA asocié, voire de mettre les textes directement dans le fichier TP2 et te passer de fichier TRA. En plus tu faciliterais le travail de l'auteur de mod en lui fournissant un bloc qu'il pourrait recopier avec un minimum d'adaptation dans son mod.
Par exemple, un mod copie une créature dans le jeu de la façon suivante (exemple tiré du mod Chloé) :
COPY ~Chloe/Creatures/CHLOE7.cre~ ~override/CHLOE7.cre~
SAY NAME1 @17
SAY NAME2 @17
SAY LEADER @16
SAY TIRED @35
SAY BORED @36
SAY BATTLE_CRY1 @37
SAY BATTLE_CRY2 @38
SAY BATTLE_CRY3 @39
SAY BATTLE_CRY4 @37
SAY BATTLE_CRY5 @39
SAY DAMAGE @40
SAY DYING @41
SAY HURT @42
SAY AREA_FOREST @43
SAY AREA_CITY @44
SAY AREA_DUNGEON @45
SAY AREA_DAY @46
SAY AREA_NIGHT @47
SAY SELECT_COMMON1 @48
SAY SELECT_COMMON2 @49
SAY SELECT_COMMON3 @50
SAY SELECT_COMMON4 @51
SAY SELECT_COMMON5 @52
SAY SELECT_COMMON6 @49
SAY SELECT_ACTION1 @53
SAY SELECT_ACTION2 @54
SAY SELECT_ACTION3 @55
SAY SELECT_ACTION4 @56
SAY SELECT_ACTION5 @57
SAY SELECT_ACTION6 @58
SAY SELECT_ACTION7 @59
SAY SELECT_RARE1 @60
SAY SELECT_RARE2 @61
SAY CRITICAL_HIT @62
SAY CRITICAL_MISS @63
SAY TARGET_IMMUNE @64
SAY INVENTORY_FULL @65
SAY PICKED_POCKET @66
SAY HIDDEN_IN_SHADOWS @67
SAY SPELL_DISRUPTED @68
SAY SET_A_TRAP @69
SAY REACT_TO_DIE_GENERAL @70
SAY BIO @71
Ici tu as non seulement le nom du personnage, mais aussi sa biographie et également l'ensemble des textes et voix du personnage (cas où l'auteur les a définis dans l'éditeur).
@16 = ~Tu veux que ce soit MOI qui prenne la tête du groupe ? Très bien, si c’est ta décision...~ [CHLOEB]
@17 = ~Chloé~
@35 = ~(Soupir) Je vais m'endormir sur place. Nous devons installer notre campement au plus tôt.~ [CHLOEC]
@36 = ~Pourrais-tu S'IL TE PLAIT nous dire pourquoi nous restons plantés là comme des idiots ?~ [CHLOED]
@37 = ~Les Yr'Kai sont invincibles !~ [CHLOE8]
@38 = ~Vous ne recevrez aucune pitié de ma part !~ [CHLOE9]
@39 = ~Subis les foudres d'Akadie !~ [CHLOEA]
@40 = ~Argh...~ [CHLOEL]
@41 = ~Akadie... je te rejoins...~ [CHLOEM]
@42 = ~Arrgh... On a besoin d'aide par ici, un prêtre...~ [CHLOEE]
@43 = ~Aaahh... sentez-moi ce bon air frais... Ressentez ces piqûres d’insectes... Quelle MERVEILLEUSE idée de faire un crochet par la forêt*...~ [CHLOEN]
@44 = ~Les villes me fascinent. Le moindre coin de rue recèle une bonne occasion... et un voleur pour la saisir.~ [CHLOEO]
@45 = ~Il fait plutôt sombre ici... j'aimerais tant que mon héritage divin m’ait également rendue nyctalope...!~ [CHLOEP]
@46 = ~La lumière du jour. C'est une telle bénédiction... Merci Lathandre.~ [CHLOEQ]
@47 = ~Est-ce que quelqu'un aurait une lanterne ou de la lumière ? Je ne vois pas plus loin que le bout de mon nez...~ [CHLOER]
@48 = ~J'écoute. Que veux-tu ?~ [CHLOE0]
@49 = ~Qu’y a-t-il pour ton service ?~ [CHLOEF]
@50 = ~Oui ?~ [CHLOEG]
@51 = ~Cesse donc de me donner des coups de coude et dis-moi simplement ce que tu veux.~ [CHLOEH]
@52 = ~Bien sûr*! Heu... que dois-je faire, déjà ?~ [CHLOES]
@53 = ~D'accord. Je vais m'en charger.~ [CHLOEI]
@54 = ~T’es sûr de ce que tu me demandes*? D'accord, d'accord...~ [CHLOEJ]
@55 = ~J'ai la situation en main, pas d'inquiétude.~ [CHLOEK]
@56 = ~Bon sang ! Je suis une guerrière, pas une esclave ! Cesse donc de me donner des ordres à tout va.~ [CHLOE_]
@57 = ~Zha'liis ! Envoyer une Yr'Kai... quelle bonne idée.~ [CHLOET]
@58 = ~Je m'en charge.~ [CHLOEU]
@59 = ~D'accord... Mais la prochaine fois c'est TOI qui t’en charges.~ [CHLOEV]
@60 = ~Encore !! De quoi s’agit-il*cette fois ?~ [CHLOEX]
@61 = ~Lucy dit "salut" !~ [CHLOEY]
@62 = ~Prends ça, nil'la fiem !~ [CHLOEZ]
@63 = ~Shal'lach siev ! J'ai raté mon coup !?~ [CHLOE1]
@64 = ~S'tekzhai est invulnérable !~ [CHLOE2]
@65 = ~Tu ne penses pas que je trimballe assez de camelote comme ça ? Je ne suis pas une bête de somme.~ [CHLOE3]
@66 = ~Je m'ennuie.~
@67 = ~Je m'ennuie énormément.~
@68 = ~Tu vas regretter d'avoir brisé ma concentration.~
@69 = ~Ce n’est pas pour dire, mais je m'ennuie VRAIMENT.~
@70 = ~Sales bâtards ! Je vais tous vous crever !!~ [CHLOEW]
@71 = ~Chloé a grandi dans un petit orphelinat près de Padhiver. Elle prétend être issue de l'union d’Akadie - déesse de l'Air et de la Rapidité – avec un mortel. Bien qu'elle n'ait aucune preuve de ce qu’elle avance, sa rapidité et ses talents surnaturels accréditent cette affirmation. Chloé semble motivée par une force intérieure qui la pousse à améliorer ses compétences en permanence, passant le plus clair de ses journées à s'entraîner. Vous vous demandez comment elle fait pour se battre aussi bien alors que la plupart seraient épuisés par un tel sacerdoce, mais elle se contente d’un sourire complice et déclare que c’est tout simplement dû à son entraînement quotidien, non à son héritage divin. Elle se sent proche d’Imoen et de vous, qui partagez également des ascendances divines.~
@72 = ~Argh... tu as signé ton arrêt de mort !~ [CHLOEL]
Moyennant un peu de code avant pour que le fichier TP2 soit complet, tu donnerais la possibilité à l'auteur d'installer facilement ses créatures pour les tester. Avec les avantages de WeiDU en prime : la désinstallation, pour revenir à un état "vierge", à l'exception du fichier dialog.tlk (WeiDU n'efface jamais les textes qu'il y a ajoutés).
A titre d'exemple (peut-être incomplet)
BACKUP ~MonBeauMod/backup~
AUTHOR ~mon adresse mail~
// Version appearing in WeiDU.log
VERSION ~v0.1~
AUTO_TRA ~MonBeauMod/Language/%s~
LANGUAGE ~Francais~
~Francais~
~MonBeauMod/Language/Francais/setup.tra~
BEGIN ~Mon Beau Mod : installation de base pour test des creatures~
// Ensuite, tu mets tous les COPY xxx pour toutes les créatures
Et tu crées l'arborescence de fichiers qui va bien pour que le fichier tra soit au bon endroit par rapport à ce qui est indiqué dans le TP2.
Cette solution aurait l'avantage d'ouvrir la voie à ce que l'auteur a besoin de faire pour l'installation de son mod.
Pour mémoire, je te rappelle que j'avais proposé des pistes de solution alternative dans mon rapport de bug :
Isaya a écrit :Solutions possibles (pouvant être combinées pour plus d'efficacité) :
- ajouter un bouton Annuler dans l'écran de configuration
- vérifier s'il y a vraiment eu des changements dans l'écran de configuration pour ne recopier le fichier dialog.tlk qu'à bon escient
- placer le fichier dialog.tlk dans le répertoire de mod choisi par le créateur de mod : c'est un pas vers la gestion multi-configurations, et surtout ça te permettrait de mettre en place une stratégie de protection du fichier dialog.tlk du mod, en refusant de l'écraser s'il a été modifié par rapport à la référence que tu cherches à recopier
...
- imposer un redémarrage de l'éditeur quand un changement de configuration intervient, de façon à ce que tous les fichiers de référence soient bien chargés
Tu pourrais conserver le principe du fichier dialog.tlk incluant les textes du jeu plus ceux du mod.
- en le stockant dans le répertoire du mod, tu le protèges contre le changement de répertoire de mod (un fichier par mod).
- en sécurisant l'utilisation de l'écran de configuration, tu évites que la personne qui y entre par erreur ne soit obligé de cliquer sur le seul bouton de sortie et que le programme n'écrase le fichier incluant les textes du mod
- en empêchant l'écrasement, sauf sur confirmation par l'utilisateur, tu fais en sorte que ce soit l'utilisateur qui prenne la décision de perdre ses textes
- et enfin l'utilisateur garde la possibilité de tester assez facilement ses fichiers, en recopiant temporairement ce fichier dialog.tlk dans le jeu
La dernière suggestion permet d'éviter que quelqu'un qui change vraiment la configuration ne continue à travailler sur la base d'un fichier dialog.tlk qui a été chargé au démarrage du programme, donc avant le changement de configuration (si je suis passé de BG II à BGT, les informations lues au démarrage ne sont pas du tout bonnes).
La deuxième solution devrait t'occasionner moins de travail, il me semble (surtout des contrôles).