Commit Graph

188 Commits

Author SHA1 Message Date
Adrestie b37ba24445 ForeverUI : outils retires du depot, sauf le patcheur (exe a cote de sa source)
Les outils restent en local (ignores par mod-forever-ui/.gitignore) ; seul tools/patcher
est publie, son executable desormais a cote de ForeverUIPatcher.cs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 14:27:56 +02:00
Adrestie 729da261c9 ForeverUI : Customize UI (menu Echap, grille, poignees, aimant, collage, taille), README resserre
- CustomizeUI.lua : bouton Customize UI apres AddOns, grille reglable (pas, origine 3x3),
  voiles de selection camelot, 9 poignees sur l'element selectionne, Snap on Grid et
  Sticky UI par attraction, fenetre de taille 50-200 %, Cancel / Reset / Validate
- Layout : session de travail, echelle par element, Validate ne touche plus aux places
  des fenetres
- griffons detaches de la barre d'action
- art : editmode (camelot) et poignees housing-advancedmode-scale-handle
- banc : textes sans police refuses, fichiers charges sous leur nom, essais de l'editeur
- README reduit a l'essentiel

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 14:17:58 +02:00
Adrestie 5842eb7a2b ForeverUI : code en anglais, commentaires resserres, code mort retire
Traduction
- Identifiants en anglais dans tout le module : addon, ecrans d'accueil,
  outils Python, banc d'essai et patcheur C#.
- Fichiers au nom francais renommes (Gabarits.lua -> Templates.lua,
  Textes_*.lua -> Texts_*.lua, deployer.py -> deploy.py,
  tools/patcheur -> tools/patcher, etc.).
- Commandes /fui et options de deploy.py en anglais (--check, --server,
  --remove-dbc).
- Cles des variables sauvegardees et de data/dbc/statistics.json
  traduites, sans reprise des anciennes cles.
- API de la micro-barre : ForeverUI.AddMicroButton(def) avec les champs
  name, atlasSet, after, tooltip, onClick, ready, et
  ForeverUI.UpdateMicro(name, isOpen).
- Commentaires reecrits en anglais, courts, sans dates ni historique ;
  les fonctions au nom peu parlant et leurs parametres sont expliques.

Code mort
- Exports, fonctions et variables jamais lus retires.
- Retires a la demande des modules : ForeverUI.PvPJauge, les exports
  FondEntete / TuilerEntete / Polices de TradeSkill, l'art legacy-up-c60,
  honorfill(half)blue et inv_misc_book_09, leurs entrees d'atlas et les
  parties d'outils correspondantes.

Verifications : liaisons des noms comparees avant et apres, banc vert,
chemins de textures inchanges, generateurs reproduisant les fichiers,
patcheur identique octet pour octet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 09:15:52 +02:00
Adrestie fd20e4c66d ForeverUI : onglet Statistics de camelot, statistiques ajoutees, micro-bouton generique
Onglet Statistics (StatisticsTab.lua, nouveau)
- Le StatisticsFrame de camelot sur les statistiques de hauts faits du
  client (GetStatisticsCategoryList, GetCategoryInfo, GetStatistic) :
  categories repliables, sous-categories au bouton campaign_headericon,
  survol, barre de camelot masquee si inutile, mise a jour sur
  CRITERIA_UPDATE ; l'etat replie survit aux mises a jour.
- Valeurs telles que le client les rend (noms des statistiques
  « ... most », montants d'or avec leurs pieces), « -- » sans valeur ;
  colonne de la valeur elargie a ce qu'elle porte.

Statistiques de camelot ajoutees aux hauts faits (data/dbc/statistiques.json)
- 14 boss de donjons classiques et 4 statistiques de raids a 20 / 40
  joueurs (entrees ; morts, en somme des morts sur les cartes de cette
  taille), suivies par le coeur.
- deployer.py, etape dbc (--dbc, --retirer-dbc, --serveur) : lignes
  ajoutees au DBC du client dans patch-Z, DBC du serveur recopie du client,
  lignes d'achievement_criteria_data (une creature tuee n'est comptee que
  si son critere y a une ligne) ; --verifier les controle.
- tools/foreverui/dbc.py : ajout et retrait de ses seules lignes DBC.

Micro-menu et exports pour les autres addons (session Progression)
- BottomBar.lua : ForeverUI.AjouterMicroBouton(def) et
  ForeverUI.MajMicro(nom, ouvert) ; ForeverUI ne connait plus aucun
  addon qui y ajoute un bouton.
- ForeverUI.PvPJauge (jauge circulaire, textures au choix),
  ForeverUI.StatusBarsPoser, exports de TradeSkill.lua.
- Art : legacy-up-c60 (et son masque), honorfill(half)blue,
  inv_misc_book_09 ; cuire_masque.py, cuire_portrait.py,
  decouper_elements.py.

Banc : essais de l'onglet Statistics et d'un micro-bouton d'un autre addon.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 03:39:09 +02:00
Adrestie 9055a1bbed Banc : titre de la section des tailles de textures, avant son texte
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 02:33:53 +02:00
Adrestie b68307e672 Banc : le titre de la section des tailles de textures, a sa place
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 02:33:29 +02:00
Adrestie bd4cb77569 PNJ etape 5 : coiffeur a la disposition de camelot, listes et noms du client
Coiffeur (BarberShop.lua, nouveau)
- Plein ecran a la disposition de camelot : interface cachee, vignettes,
  panneau heavybronze, lignes a fleches, Annuler / Reinitialiser /
  Accepter, prix, Echap, ligne d'erreurs, retour de l'ecran 3.3.5 en
  combat ; l'apparence appliquee ferme le coiffeur.
- Client patche : la case s'ouvre sur la liste de la creation (apercu au
  survol, Echap et clic a cote pour revenir, molette), echantillons de
  couleur (cheveux, peau), noms des choix rendus par le client dans sa
  langue ; choix valides calcules sur les donnees du client
  (BarberShopData.lua, BarberShopColors.lua, ecrits par
  choix_personnalisation.py et couleurs_personnalisation.py).

Creation de personnage
- Nom de la coiffure et de la pilosite dans la case et dans la liste
  (numero + nom), client patche.

Patcheur (ForeverUIPatcher)
- GetBarberShopStyleInfo rend l'indice du choix en cours (et le visage
  pour la peau) ; avec un numero, le seul nom de ce choix.
- CycleCharCustomization(reglage, 0, n) rend aussi le nom du choix n.
- Le code des noms va dans une section .fui ajoutee a Wow.exe, retiree a
  l'octet pres a la restauration ; les clients deja patches sont mis a
  jour piece par piece.

Gabarits : heavybronze-frame-basic, survol et echantillons de la liste.
Banc : faux coiffeur (client d'origine et patche) et ses essais.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 02:32:57 +02:00
Adrestie b1da47c3eb PNJ etapes 3-4 : maitre, vol, etable, sertissage, dialogues, metiers
Etape 3
- Maitre (Trainer.lua, nouveau) : liste de camelot (categories
  professions-recipe-header, lignes TrainerTextures), filtre, rang de
  metier lu dans les competences.
- Maitre de vol (Taxi.lua, nouveau) : TaxiFrame de camelot 590 x 608,
  cadre bronze, images de vol 1463 / 1464 (positions reportees du carre
  3.3.5), boutons et traits de camelot ; zones BC, Outreterre et Norfendre
  sur l'image de 3.3.5.
- Etable (Stable.lua, nouveau) : scene de camelot, fond selon la
  specialisation, rangee de 5 centree.
- Sertissage (Socketing.lua, nouveau) : decor et chasses de camelot.
- Boites de dialogue (Dialogues.lua, nouveau) : StaticPopup1-4 aux
  contours de camelot (fond sombre, bordure en losanges, croix).
- Gabarits : Gb.CadreSimple (repris de la banque de guilde), Gb.MenuFiltre.

Etape 4 (metiers, disposition de camelot)
- Fabrication (TradeSkill.lua, nouveau) : 673 x 594, liste en arbre,
  filtre, recherche, rang, fiche (carte du metier, resultat, reactifs),
  boutons ; noms mesures sur un texte a part (une ligne reutilisee coupait
  le nom suivant) ; eclat du rang rogne a la largeur du masque.
- Micro-bouton Professions (BottomBar.lua) apres la feuille de personnage.
- Livre des metiers (ProfessionsBook.lua, nouveau) : cartes de camelot,
  rangs, sorts securises, oubli ; plus de deux metiers principaux (zone a
  defilement, colonnes reduites) ; portrait cuit rond ; onglets lateraux
  (ensemble + metiers a fabrication, retrecis s'ils sont trop nombreux) ;
  fenetre deplacable (place commune livre / fabrication).
- DropDown : liste du filtre des metiers elargie a ses entrees.
- Art : feuilles et elements des metiers, icones d'onglets cuites
  (cuire_masque.py), portrait rond (cuire_portrait.py, nouveau).
- Banc : essais des etapes 3 et 4 ; micro-menu a neuf boutons.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 00:02:35 +02:00
Adrestie 2c94ea6bc9 PNJ etapes 1-2, barres selon le contenu, liste des donjons, tabard
- PNJ (NpcDialog.lua, nouveau) : dialogue et quete, livres et lettres,
  petition, registre de guilde a la DA de camelot (parchemin
  QuestBG-Parchment, portrait, croix, places de camelot, contours de
  qualite des objets).
- Barres de defilement : chacune cachee quand rien ne defile, et sans
  elle le contenu laisse a droite la marge qu'il a a gauche (courrier et
  papeterie, banque de guilde, hotel des ventes, reputation, competences,
  monnaies, contacts, guilde, macros, reglages, chercheur, dialogues des
  PNJ) ; ecrans d'accueil : selection des personnages (cartes centrees),
  royaumes, AddOns, creation.
- Chercheur de donjon : la liste des donjons reprend la liste a
  categories des raids (en-tetes de la feuille, cases de camelot),
  l'en-tete gardant sa case "tout cocher".
- Tabard : camera 1 et modele dans la moitie gauche de l'encadre, cadrage
  independant de la race (gnome).
- Cabine : portrait a 48 (1, 1.5) ; README a jour (fenetres secondaires,
  commerce).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 17:48:43 +02:00
Adrestie 05b582a2b3 Banque de guilde : fond noir du coffre ; emblème du bouton Social
- GuildBank.lua : le noir de l'interieur du coffre passe au-dessus du
  marbre en Journal, Journal de l'argent et Informations. Camelot range
  marbre et noir dans le meme calque, le noir un sous-calque plus haut ;
  3.3.5 n'a pas de sous-calque et le marbre passait devant en jeu. Marbre en
  BACKGROUND, noir en BORDER, cadres du coffre en ARTWORK
- BottomBar.lua : apres un changement d'embleme, GetGuildTabardFileNames
  ne rend rien le temps que les donnees de la guilde arrivent, et aucun
  evenement ne suit : le bouton Social retombait sur son jeu de base. Dans
  une guilde, un tabard illisible garde le visuel, et le tabard est relu
  toutes les 0,5 s pendant 10 s apres chaque evenement ; la derniere
  lecture tranche (guilde sans tabard : jeu de base), quitter la guilde le
  remet tout de suite
- banc : calques du coffre ; changement d'embleme simule (tabard absent un
  moment, puis nouveau ; guilde sans tabard ; guilde quittee)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 14:24:17 +02:00
Adrestie e4639c55e8 Commerce a la DA de camelot : marchand, echange, courrier, banques, hotel
- Merchant.lua : ButtonFrameTemplate 336 x 444, portrait et titre du
  marchand, encart, fond du bas et du rachat de camelot, argent dore ;
  reparations SpellIcon-256x256-Repair* reposees apres
  MerchantFrame_UpdateRepairButtons ; nom et contour de qualite ; rachat
  115 x 37 et sa fleche ; onglets de Social qui commandent ceux du client
- Trade.lua : 344 x 446, deux portraits sous leur coin de metal, six
  encarts, voile et separation de l'autre, argent dore, noms au-dessus du
  metal, qualite des objets ; pieces a la taille de leurs textures
  virtuelles
- Mail.lua : reception (parchemin, places, contours, Tout ouvrir), envoi
  (pieces jointes et barre de camelot), lettre ouverte a droite de la boite
- Bank.lua : grille de camelot (banque et sacs de banque, 8 colonnes, 88
  par page, onglets de page), sacs a 0,75 et cadenas ; un clic ou un lacher
  pose le sac tenu (PutItemInBag), sinon le prend ; ombres a leur taille ;
  recherche et tri des sacs
- GuildBank.lua : BasicFrameTemplate a la taille des textures virtuelles
  (coin UI-Frame-TopLeftCornerNoPortrait 33 x 33), coffre de marbre, places
  de camelot, journal et information avec la barre minimale, recherche,
  onglets du bas
- AuctionHouse.lua : l'hotel de WotLK (Parcourir, Offres, Encheres) habille
  camelot : fenetre sur l'art visible de 3.3.5, encadres et fonds
  auctionhouse-background-*, categories a trois niveaux (niveaux croissants
  : l'ombre de l'art ne change plus d'un bouton a l'autre), lignes (largeur
  avec barre, choix, survol, rayures, icone), fleches de tri, champs, cases
  a 17 rapprochees, menus compacts a la hauteur des champs, mise en vente
  (onglet, cadre d'objet), onglets du bas et titre
- Gabarits.lua : Gb.MenuStyle1(dd, largeur, hauteur, compact) -- hauteur a
  l'echelle, mode compact (fond rogne a sa boite, fleche sans ombre, texte
  sur la ligne de la fleche) ; la hauteur est tenue apres
  UIDropDownMenu_Initialize (le client remet le menu a 32 a chaque
  ouverture) -- l'horloge en profite ; Contour, ContourQualite, Qualite,
  BarreA
- Bags.lua : le tri des sacs accepte une liste de sacs (banque)
- art : feuilles du marchand, de la banque, de l'hotel (auctionhouse.blp,
  fonds decoupes de auctionhousebackgrounds.blp), courrier, banque de
  guilde, icones des onglets de page
- banc : faux Merchant/Trade/Mail/Bank/GuildBank/AuctionUI, essais ;
  controle de la taille de toute texture d'atlas du commerce ; ouverture
  des menus simulee
- non repris : fenetre d'icone d'un onglet de banque de guilde, facture du
  courrier, papier a lettres, cabine et barre de mise en vente de l'hotel,
  StaticPopup

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 14:07:17 +02:00
Adrestie de4c0f6859 Mention Civil dans les infobulles des PNJ civils
- PvPTab.lua (bloc du canal PVPTITLES) : au survol d'une creature,
  l'entree lue dans son GUID est demandee au serveur (« CIV:<entree> »),
  une fois par entree et par session, seulement si le serveur a dit ses
  seuils ; la reponse « CIV:<entree>:1 » ajoute la ligne Civil a la fin de
  l'infobulle, aussi a celle deja ouverte si elle montre encore cette
  creature ; joueurs et familiers ignores, seul le joueur lui-meme ecoute
- le drapeau (CREATURE_FLAG_EXTRA_CIVILIAN) vient de mod-pvp-titles-ext :
  la requete de creature de 3.3.5 ne le porte pas
- textes : PVPTAB_TOOLTIP_CIVILIAN (Civilian / Civil)
- banc : faux UnitGUID et GetUnit, faux serveur qui repond a CIV, essais
  (sans module, premiere demande, reponse gardee, non civil, joueur et
  familier, auteur etranger, reponse tardive)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 10:45:29 +02:00
Adrestie b53f36a794 Fenetres secondaires, inspection, JcJ servi par le serveur, Deshonore
- hauts faits (Achievements.lua) : camelot n'en a pas, la fenetre du
  client se deplace par son en-tete, place gardee et reposee apres
  UpdateUIPanelPositions
- tutoriel (Tutorial.lua) : fenetre, bouton d'alerte et compteur masques
- horloge (TimeManager.lua) : ButtonFrameTemplate 220 x 240, globe en
  portrait, encart, menus d'alarme en style 1 (Gb.MenuStyle1), case
  d'alarme
- carte de zone (ZoneMap.lua) : cadre battlefieldminimap-border, croix
  rouge, alpha suivant l'opacite (image retiree : le client la repose)
- cabine d'essayage (DressUp.lua) : ButtonFrameTemplate 450 x 545, fond de
  race, fleches et rotation a la souris
- inspection (Inspect.lua) : 338 x 424, deplacable, portrait 48, onglets
  lateraux, page du personnage a la camelot (cadre Char-Paperdoll), page
  JcJ en cartes avec en tete le nom du rang et l'embleme de la faction
  sous son insigne, Civilian sans rang ni donnees ; bouton Talents
- talents de l'inspecte (Talents.lua) : notre fenetre en lecture seule,
  compacte (colonnes de 260, sans portes ni bande du bas), sans recherche
  ni points ; elle ne suit pas l'inspection
- JcJ (PvPTab.lua) : seuils de rang lus du serveur (canal d'addon
  PVPTITLES de mod-pvp-titles-ext : RANKS, REQ), sans serveur les seules
  victoires ; etat Deshonore (DISHONOR) : rang et temps restant, blason
  brise de la faction a la place de l'embleme
- debuff Deshonore dessine par ForeverUI en tete des affaiblissements
  (Buffs.lua), aucun sort ni DBC requis
- art : blasons brises honor-dishonored-alliance / -horde (cuits par
  tools/cuire_deshonneur.py), battlefieldminimap, char-paperdoll-*
- /fui croix : temoin de la croix de la feuille de personnage
- banc : inspection, talents compacts, tete JcJ, canal du serveur, blason
  brise, debuff dessine, temoin de la croix
- README : lignes JcJ, fenetres secondaires, ameliorations et affaiblissements

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 10:33:28 +02:00
Adrestie e6f4b0c704 Infobulles, menu Echap et reglages a la DA de camelot
- infobulles (Tooltips.lua) : decoupe en neuf TooltipDefaultLayout a la
  place du Backdrop de 3.3.5, couleurs du client suivies, infobulles des
  addons reprises, bandeau de comparaison (tooltip-compare-label), croix
  rouge d'ItemRefTooltip
- gabarits communs (Gabarits.lua) : portage en jeu des gabarits valides de
  l'accueil -- cadre de dialogue, en-tete, fenetre translucide, encart,
  croix, boutons rouge / de panneau / argente, barre MinimalScrollBar
  posee sur celle du client, cadre interieur, recopie de texte
- menu Echap (GameMenu.lua) : DialogBorder, en-tete, boutons rouges en
  colonne (ecarts de 20)
- Video, Son et voix, Interface (Settings.lua) : fenetre de camelot, croix
  = HideUIPanel, listes de categories, cases, curseurs, cadres de groupe,
  menus deroulants style 2 (DropDown.lua), onglets MinimalTab ; cadre
  interieur Options_InnerFrame pour les trois fenetres ; Interface a la
  disposition de camelot (listes a -76, fenetre +36)
- raccourcis (Bindings.lua) : fenetre calee sur l'art visible de 3.3.5,
  boutons argentes et lisere du choisi, textes recopies au-dessus
- macros (Macros.lua) : disposition de camelot (338 x 424, portrait,
  onglets du haut, grille 6 x), choix d'icone 525 x 495 en rangees de dix
- configuration du chat (ChatConfig.lua) : DialogBorder, boites en
  decoupe d'infobulle aux couleurs du client, lignes creees ensuite
  reprises, liste des filtres sans lisere
- selecteur de couleur (ColorPicker.lua) : 388 / 331 x 210, places de
  camelot, curseur d'opacite du client en colonne alpha (damier, degrade,
  fleches) ; OpacityFrame en DialogBorder
- art : tooltiplabel, commonbuttonsdropdown, ui-silver-button-select,
  colorpicker (6 entrees d'atlas ajoutees, aucune modifiee)
- banc : vrais types de cadre, OnEnable / OnDisable, OnValueChanged,
  couleurs de Backdrop, degrades ; faux et essais des fenetres reprises

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 05:58:30 +02:00
Adrestie a66aabb7f6 Points d'AMELIORATIONS.md : carte, journal, sacs, trousseau, barres
- carte (WorldMapZoom.lua) : zoom a la molette vers le curseur (x 1,25 par
  cran, de 1 a 4) et deplacement au glisser ; tuiles rognees a la vue,
  reperes hors vue eteints, surface cliquable bornee, fleche du joueur
  reposee ; retour a 1 au changement de carte, de mode, a la fermeture
- journal : le micro-bouton et L rattrapes quand 3.3.5 refuse QuestLogFrame
  (carte agrandie), marque effacee a l'image suivante au lieu de GetTime
  (qui avance pendant l'ouverture de la carte) ; case de suivi redessinee
  au clic ; en-tete de categorie en trois tranches, centre en mosaique
- sacs : ecarts comptes et marge haute (ecart assume) ; le sac ouvert est
  empile des son ouverture
- trousseau : icone en double densite (feuille uiactionbar2xc60), voile a
  la recherche, animation d'entree de camelot
- minimap : la molette fait + et - ; latence du micro-menu : ancre reposee
  apres 3.3.5, trait a 3 pixels ; reputation a la place de l'XP au niveau
  maximum ; /fui barres plus disert
- ajouter_feuilles.py : un nom logique deja servi par une autre table garde
  sa feuille
- banc : cadres de carte freres de WorldMapDetailFrame, panneau "full",
  carte lente a charger ; AMELIORATIONS.md vide, NOTES.md a jour

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 04:11:16 +02:00
Adrestie eb681aa9cd Aucun texte en dur : anglais en base, francais, langues extensibles
- socle : Textes.lua (ForeverUI.L) et ForeverUIGlueTextes.lua (G.L) ; les
  textes dans Textes_enUS / Textes_frFR (325 cles en jeu) et
  ForeverUIGlueTextes_enUS / _frFR (41 cles aux ecrans d'accueil) ; une cle
  absente prend l'anglais, une langue sans fichier lit l'anglais ; ajouter
  une langue = un fichier de plus
- les textes que le client 3.3.5 connait se lisent dans ses globales
  (GlobalStrings, GlueStrings en glue) ; les textes de secours sont retires
- tous les fichiers repris : libelles, infobulles, mode edition, messages et
  aide de /fui, erreurs internes ; .toc : Notes + Notes-frFR
- selection des personnages : race et classe traduites ramenees a leur jeton
  par les tables de langue (GetAvailableRaces / GetAvailableClasses font
  planter le client hors de la creation)
- tools/cartes_instances.py : noms des instances dans toutes les langues de
  la LibBabble-Zone de WDM (portails de la carte sur tout client)
- banc : toute cle employee existe en anglais et en francais, memes cles dans
  les deux, bascule frFR / deDE essayee ; chaines 3.3.5 ajoutees au faux client
- README : etat des sections mis a jour, langues, glue, deploiement --glue

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 03:22:30 +02:00
Adrestie 2be83180ad Selection du chat : le jeu garde le clavier, tout autre geste efface
- la saisie de copie ne prend le clavier que pendant que Ctrl est enfonce
  (Ctrl+C copie) ; au relachement de Ctrl, la selection s'efface
- effacent aussi : un clic, se deplacer, tourner, sauter (hors taxi), lancer
  un sort, une autre saisie qui prend le clavier, une fenetre qui s'ouvre
  (ShowUIPanel), Echap (ToggleGameMenu), le chat qui defile, un message
  selectionne qui change, le chat cache
- banc : personnage (vitesse, orientation, chute, taxi), focus du clavier,
  menu du jeu ; chaque geste essaye

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 02:54:40 +02:00
Adrestie c7c4d52197 Chat a la DA de camelot : onglets, dock, saisie et selection du texte
- onglets (Chat.lua) : l'art de ChatTabArtTemplate (cotes a -2 / +2, milieu
  tendu), texte au centre (0, -5), largeur texte + 20 + marge (au moins 32)
  par accroche de PanelTemplates_TabResize, pour les seuls onglets du chat
- dock : pose sur le haut du fond du chat principal (FCFDock_SetPrimary),
  onglets a 1 l'un de l'autre, bouton de debordement au bas a droite
  (FCFDock_UpdateTabs)
- saisie : jusqu'au bout de la barre de defilement + 8
- selection : Alt maintenu, glisser sur le chat surligne le texte comme dans
  un editeur ; au relacher, il passe dans une saisie invisible en lecture
  seule (Ctrl+C) ; coupures du moteur retrouvees par mesure ; liens copies
  par leur texte, marques par leur etiquette
- /fui chatlignes : releve de la mise en lignes du chat (ForeverUIDB)
- banc : onglets, dock, PanelTemplates_TabResize et FCFDock de 3.3.5,
  fenetres de chuchotement, touches Alt / Ctrl, coupure mot a mot

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 02:46:38 +02:00
Adrestie bbea673e31 Cinematiques et credits des ecrans d'accueil a la DA de camelot
- cinematiques (ForeverUIGlueCinematics.lua) : le CinematicsMenu de
  camelot sur les films du client -- fenetre 819 x 559, vignettes
  StreamCinematic-*-Large, bouton de lecture, surbrillance, case des
  sous-titres ; sous-titres des films en bas de l'ecran (SubtitlesFrame)
- credits (ForeverUIGlueCredits.lua) : fond et illustration de
  l'extension (tuiles, ForeverUIGlueIllustrations.lua), degrades, logo,
  colonne de texte pleine hauteur, boutons de vitesse, Back / Expansion,
  liste des extensions ; textes, musique et bascule restent ceux du client
- connexion : un seul fondu d'apparition (celui du client est retire)
- decouper_elements.py : CreditsScreen-Selected / -Highlight ; table
  d'atlas des ecrans d'accueil completee

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 01:51:36 +02:00
Adrestie d7473f5499 Liste des AddOns, options et menus deroulants a la DA de camelot
- liste des royaumes : fenetre de camelot (ButtonFrameTemplate sans
  portrait, fond noir translucide demande), encart, croix, Annuler / OK
  dans la barre du bas, barre de defilement dans l'encart ; fonctions
  communes G.Fenetre, G.Encart, G.CroixFenetre
- liste des AddOns (ForeverUIGlueAddonList.lua) : la liste de camelot sur
  les donnees de 3.3.5 -- menu des personnages, case des AddOns perimes,
  recherche, lignes, infobulle, boutons ; note d'adresse de 3.3.5 gardee ;
  dialogue des AddOns perimes rhabille
- menus deroulants des ecrans d'accueil (ForeverUIGlueMenuDeroulant.lua) :
  WowStyle1 / WowStyle2 et leurs listes, a l'echelle de GlueParent ;
  noms Windows-1252 (sorties audio) convertis en UTF-8 a l'affichage
- options (ForeverUIGlueOptions.lua) : menu Options, fenetres Video et Son
  en 3.3.5 rhabillee -- categories, cases, curseurs (feuille affinee),
  boites, infobulle, boutons
- echelle et zone utile recalculees quand la resolution change
- connexion : Echap quitte le jeu comme en 3.3.5
- selection : icone des boutons de rotation au-dessus de leur fond
- atlas_accueil.py : feuilles de densite 2 ou 4 acceptees, feuille -hd du
  curseur des options

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 01:29:25 +02:00
Adrestie d80f4deda2 Liste des royaumes a la DA de camelot : 3.3.5 rhabillee
- ForeverUIGlueRealmList.lua : la liste du client garde ses places, ses
  tailles et sa logique ; en-tete DialogHeader, onglets uiframe-tab /
  uiframe-activetab, croix 128-RedButton-Exit, Annuler / OK 128-RedButton,
  barre de defilement minimale, polices de camelot (GlueFont*, Realm*)
- l'art herite que la liste moderne garde (HelpFrame, WhoFrame-ColumnTabs,
  UI-SortArrow, UI-QuestLogTitleHighlight) reste : identique chez camelot
- croix de fermeture decoupee de 128redbuttonc60 (et sa lueur de
  128redbutton) ; table d'atlas des ecrans d'accueil completee

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 23:53:31 +02:00
Adrestie 1de02d13a0 Ecrans d'accueil a la DA de camelot : connexion, menu, selection, dialogues et creation de personnage
- GlueXML ForeverUI (data/glue) : cadre 2:1, polices, atlas, gabarits ;
  connexion, menu, selection des personnages, dialogues, creation en deux
  etapes (races et classes ; personnalisation numerotee, listes ouvrantes,
  echantillons de couleur, apercu differe, nom en bas de l'ecran)
- choix valides calcules sur CharSections aux regles du moteur
  (tools/choix_personnalisation.py) ; couleurs des echantillons lues dans
  les textures du client (tools/couleurs_personnalisation.py), peau teintee
  par la lumiere du decor
- decors de la creation et de la selection reduits a 0,912 pour compenser
  le cadre 2:1 (tools/decors_accueil.py) ; deployer.py suit aussi
  Interface\Glues\Models
- patcheur optionnel de Wow.exe (tools/patcheur, source et executable) :
  CycleCharCustomization rend l'indice du reglage
- art des ecrans d'accueil (data/art), outils de decoupe, d'atlas et de
  donnees
- barre du bas : boutons JcJ et Aide retires, bandeau a la largeur de ses
  boutons

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 23:44:01 +02:00
Adrestie d110de1cbe Chat et barres d'auras a la DA de camelot ; plus aucune globale du client ecrite par l'addon
- Chat : cadre, barre et bouton de retour, colonne, bouton d'amis de camelot ;
  au repos fond, onglets, colonne et saisie s'effacent, allumage au survol
- Barres d'ameliorations et d'affaiblissements (Buffs.lua) : grille, bordures
  par type, clignotement, repli, regroupement, enchantements d'arme
- Souillure : StaticPopupDialogs n'est plus reaffectee (BindEnchant bloque) ;
  menus deroulants, suivi des objectifs, choix d'icone, ajout de canal et
  carte du monde n'ecrivent plus les globales du client ; menus d'unite :
  lignes protegees servies par des boutons securises hors combat, grisees en
  combat ; seule MAP_QUEST_DIFFICULTY reste, par decision
- Gestionnaire d'ensembles : plus d'appel GetEquipmentSetIconInfo(nil)
- Banc : garde des globales ecrites (bytecode Lua 5.1), faux client durci

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 18:36:19 +02:00
Adrestie 81b2ce58a3 Navigateur de raid dans le chercheur : onglet lateral, onglets du bas List My Group et Join, categories de la feuille de personnage, cases et menu de camelot ; README a jour
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 16:08:44 +02:00
Adrestie 725516f262 Chercheur de donjon a la DA du chercheur de groupe camelot : fenetre deplacable, roles, categories, details et recompenses, liste des donjons ; decoupe des feuilles de 2048
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 15:01:01 +02:00
Adrestie 4628f3b4fb Social camelot (contacts, qui, guilde, raid, canaux), onglet PvP, cadres de groupe et de raid, bouton Social en tabard, fenetre de tabard camelot
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 14:00:12 +02:00
Adrestie 1c3f855557 Carte du monde : portails d'instance, bouton World, listes vers le bas ; feuille : onglet Pet, modeles a la souris
- Carte du monde : un clic sur le portail d'un donjon ou d'un raid (icones de
  WDM, livre dans patch-enus-n.mpq) ouvre sa carte par SetMapByID
  (WorldMapInstances.lua, genere des DBC du client par
  tools/cartes_instances.py)
- "World" mene a la vue cosmique (Azeroth / Outreterre), reste actif en donjon
- premiere ouverture en plein ecran habillee camelot d'emblee
- les listes des menus de la carte s'ouvrent vers le bas, calees dans l'ecran
- Feuille de personnage : icone de l'onglet Pet selon la classe ; le
  personnage et le familier tournent a la souris (reglages de camelot)
- /fui souris : le cadre sous la souris a chaque clic (diagnostic)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 20:01:43 +02:00
Adrestie cc7d2d45fa Talents camelot, glyphes refaits, cadre du familier, superposition des fenetres
- Talents : trois arbres cote a cote facon camelot sur PlayerTalentFrame,
  noeuds carres/ronds (TalentsData.lua genere des DBC), fleches, portes,
  changements en attente (Apply / Undo), onglets lateraux des specialisations,
  Activate, talents du familier en fenetre reduite, recherche (marques sur les
  noeuds, apercu, options, absents des barres), confirmation a la fermeture,
  glisser un sort de talent appris vers une barre
- Glyphes : page refaite sur l'art fourni (tools/cuire_glyphes.py), lueurs,
  etincelles, cercles concentriques tournants ; le GlyphFrame de WotLK reste
  sous PlayerTalentFrame (le reparenter plantait le client a la deconnexion)
- Cadre du familier facon camelot (PetFrame.lua)
- Superposition.lua : feuille, grimoire et talents passent entierement l'un
  devant l'autre, grimoire et talents deplacables
- Grimoire : la recherche "Missing from action bar" suit les barres

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 18:12:34 +02:00
Adrestie 9a88e947dd Grimoire : recherche camelot ; README a jour
- Recherche du grimoire (SpellBookSearch.lua) : champ, apercu de 5
  resultats, resultats en sections (exact, apparente, nom, description),
  "Missing from action bar" ; suit Hide Passives et Show all spell ranks,
  ne groupe jamais ; resultats feuilletables en combat.
- README : minimap, carte et journal, suivi de quetes, grimoire.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 13:53:07 +02:00
Adrestie 400a3dc1da Grimoire : grille camelot sur cases securisees, combat, menus volants, reglages
- Livre de camelot dans SpellBookFrame : deux pages ou une, categories en
  onglets-icones, grille condensee, en-tete repete, portrait cuit rond.
- Menus volants : groupes de SpellFlyout.db2, completes des sorts de BC et
  WotLK, un groupe par onglet et par faction ; Seals et Judgements en plus.
- Combat : controleur securise ; onglets, pages, roulette, groupes,
  agrandir/reduire et les trois reglages passent par des blocs securises,
  les huit jeux de reglages publies hors combat.
- Banc : modele de securite de 3.3.5, OnShow/OnHide propages.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 13:19:07 +02:00
Adrestie 29dc3dfe5b Carte du monde : mode agrandi camelot, selecteur d'etages
- Mode agrandi (etape 4) : le plein ecran de WotLK habille a la camelot,
  carte seule. Cadre aux dimensions de UpdateMaximizedSize, pose en haut au
  centre dans l'unite de l'interface ; bordure sans portrait ; titre
  WORLD_MAP ; fil d'Ariane, filtres, etages, coordonnees, boutons rouges.
  La carte remplit le canevas par les constantes QUESTLIST / FULLMAP que
  WotLK lit pour la fleche et les reperes ; bordure, menus et liste des
  quetes du plein ecran de WotLK etouffes.
- Petite fenetre et mode agrandi partagent le meme ancrage.
- Selecteur d'etages : fond decoupe en trois (16 / 19), variante c60 ; nom
  elide ; la liste ne descend pas sous la largeur du selecteur.
- Banc d'essai : plein ecran de WotLK et ses deux vues, essais du mode
  agrandi et du selecteur.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 03:30:11 +02:00
Adrestie 879862c9c3 Carte et journal, suivi de quetes, largeur des menus contextuels
- Carte du monde (WorldMap.lua) : fenetre reduite camelot 702 x 534 posee
  sur l'ossature de WotLK, fil d'Ariane, filtres, etages, coordonnees,
  deplacable par la barre du titre.
- Journal de quetes (QuestLog.lua) : volet liste de camelot a droite de la
  carte (recherche, compteur, reperes, suivi, menus), L ouvre carte + volet ;
  page d'une quete (texte, objectifs, recompenses, Abandon / Share / Track)
  avec bouton Retour qui rend la carte d'avant.
- Suivi de quetes (ObjectiveTracker.lua) : modules camelot Quests et
  Achievements a la place des gestionnaires d'affichage de WotLK, API des
  gestionnaires conservee ; tri et filtres de WotLK dans le bouton filtre ;
  deplacable par /fui, position par defaut de camelot.
- Menus : les menus contextuels et sous-menus prennent la largeur de leur
  contenu, mesuree dans la police affichee.
- Art : feuilles questmaplogatlas, questtracker, cadres et fonds ; outils
  tranches_atlas.py ; banc d'essai etendu (WatchFrame, journal, menus).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 03:10:42 +02:00
Adrestie 51d074f268 Minimap : habillage camelot, horloge, calendrier, coordonnees et fleches du bord
- Minimap.lua : cadre c60, barre du nom de zone, suivi, courrier, zoom,
  cycle jour/nuit, calendrier (GameTimeFrame), horloge dans la barre
  (TimeManagerClockButton) et coordonnees sous la carte, releves dans
  blizzard_minimap, blizzard_timemanager et GameTime.xml de camelot.
- Les etats de bouton absents en 3.3.5 sont crees par chemin puis atlas
  (MiniMapTrackingButton n'a qu'une HighlightTexture).
- La carte garde sa taille de 3.3.5 a l'echelle 198 / 140 : le moteur pose
  les fleches du bord a un rayon fixe en unites de la carte. Leurs images
  sont reduites d'autant, en 64 x 64 avec mipmaps (tools/reduire_fleches.py).
  La fleche de groupe, sans methode, remplace le fichier d'origine dans
  patch-Z (exception accordee a la regle du prefixe).
- Constantes regroupees en tables : le Lua 5.1 du client refuse plus de
  60 upvalues par fonction.
- Banc : compilation Lua 5.1 de chaque fichier, et faux client qui ne donne
  a un bouton que les etats que son gabarit 3.3.5 declare.
- blp.encoder accepte des mipmaps.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 21:20:09 +02:00
Adrestie 1a71d63e40 SetFontObject efface la justification : elle se repose apres lui
Un objet de police porte la SIENNE. GameFontNormalLeft est a gauche ;
GameFontHighlight, NumberFontNormal et NumberFontNormalSmallGray n ont
aucun justifyH -- donc CENTRE, releve dans le FontStyles.xml du client.
Un SetJustifyH pose a la creation, ou avant SetFontObject, ne survit
donc pas.

Dans la reputation, le nom se retrouvait centre dans une boite dont la
largeur change d un gabarit a l autre : il se deplacait horizontalement
au fil du defilement, selon le role que la ligne reprenait. Meme faute
dans les competences et les monnaies, ou le compte d une monnaie a zero
passait de RIGHT a CENTER avec GameFontDisable.

Et sur les boutons d action, ou le raccourci et la quantite sont cales
a droite dans le code mais etaient centres a l ecran. C est du code
VALIDE : le geste ne change pas l intention, il la retablit.

camelot le fait exactement ainsi, et c est ce qui le trahit :
  <FontString inherits="GameFontHighlight" justifyH="LEFT">

Le faux du harnais ne touchait pas a justify : il est desormais fidele,
et c est lui qui a trouve la faute des boutons d action.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-23 16:27:06 +02:00
Adrestie dc4932127c Reputation et competences : la barre de defilement de camelot
ScrollBar.lua refait MinimalScrollBar -- 3.3.5 n a ni ce gabarit ni le
ScrollBox qui le pilote. La barre ne connait pas la liste : on lui donne
combien de lignes existent, combien tiennent et ou l on en est, et elle
rend le nouveau decalage. Elle s efface quand tout tient.

Ancrages de camelot : TOPLEFT sur le TOPRIGHT du ScrollBox (5, -2),
BOTTOMLEFT sur son BOTTOMRIGHT (5, 4).

LES TRANCHES SONT MESUREES, PAS DEDUITES DE LEUR NOM. Celle que la
source appelle thumb-bottom fait 8 x 36 et n est PAS un embout : son
alpha monte de 1 a 255, donc son haut est transparent, et posee au bas
du curseur elle le faisait fondre dans le noir de la glissiere. Les deux
bouts du curseur sont donc le MEME morceau, thumb-top, le second
retourne : le curseur est plein jusqu a ses extremites.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-23 16:21:03 +02:00
Adrestie 1ed47915f0 Documentation : AMELIORATIONS ne porte que ce qui a ete demande
Le reste -- ecarts, pieges, outillage, ce que 3.3.5 ne sait pas faire --
passe dans docs/NOTES.md, ou rien n a ete demande et ou tout m est
seulement utile.

AMELIORATIONS ne garde donc que les deux points demandes : l icone de
l onglet du familier, et le volet droit du PvP.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-23 16:06:16 +02:00
Adrestie 01456dc984 PvP : sans rang, le joueur est un civil, pas un deshonore
Le nom d un rang se lit a l indice "numero + 4". A numero = 0 cela
donnait l indice 4 -- PVP_RANK_4, "Dishonored" -- et l ecran annoncait
donc deshonore tout joueur de moins de cinquante victoires. Or les
indices 1 a 4, Pariah, Outlaw, Exiled et Dishonored, sont les rangs
NEGATIFS, ceux qu on obtient en tuant des civils.

Trois cas desormais, et non deux : un vrai rang se nomme a numero + 4,
un indice de 1 a 4 se nomme par son indice tel quel, et le reste est un
civil.

Ecart assume : "Civilian" n est pas une chaine du client. Cherchee dans
GlobalStrings -- les quarante chaines de rang vont de PVP_RANK_0 a
PVP_RANK_19 -- et dans le binaire : absente des deux. Elle est donc
ecrite en clair, et ne se traduira pas.

AMELIORATIONS gagne une section 5 : l icone qui manque a l onglet du
familier, et le volet droit du PvP, a reprendre sur
CharacterFrameSidePaneTemplate comme les autres.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-23 15:59:05 +02:00
Adrestie 67dd84855b Harnais : six faux rendus fideles au client
Un faux plus aimable que le client ne prouve rien. Six l etaient, et
chacun couvrait une faute que le jeu a montree :

  IsTitleKnown rendait un booleen au lieu de 0 ou 1 -- et zero est VRAI
  en Lua ; idem IsEnabled, qu un bouton desactive rend a 0.
  FACTION_AT_WAR_COLOR etait inventee, alors qu elle n existe pas.
  GetRegions oubliait les FontString.
  UpdatePaperdollStats ne faisait rien, alors que le vrai remontre ses
  lignes a chaque passage.
  Les onglets CharacterFrameTab n avaient aucun OnClick : tout le chemin
  de ToggleCharacter -- qui FERME la fenetre -- n etait jamais joue.
  Les fleches de rotation faisaient 16 de large au lieu de 35, et leur
  ecart se calcule sur leur largeur.

S y ajoutent les faux des nouveaux ecrans : titres, monnaies, familier,
monnaies suivies du sac, et le systeme de panneaux qui replace tout ce
qui est inscrit dans UIPanelWindows.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-23 13:11:16 +02:00
Adrestie ef7b99c75b Sacs : le segment des monnaies suivies, sous la bourse
A la demande, donc une modification accordee d un ecran valide.
UpdateCurrencyFrames de camelot : le segment prend le bas de la fenetre
et c est la BOURSE QUI MONTE, son bas sur le haut du segment.
CalculateExtraHeight ajoute alors sa hauteur, et la fenetre grandit.

L encadre est ContainerFrameCurrencyBorderTemplate, deux bouts et un
milieu tendu, la planche commoncurrencybox entrant dans patch-Z. Les
jetons s enchainent vers la gauche, jusqu a MAX_WATCHED_TOKENS.

ManageBackpackTokenFrame reparente son propre segment dans le sac ET
lui pose BACKPACK_HEIGHT + 22, ce qui defaisait la hauteur calculee : on
masque le sien et on repasse derriere elle. Cocher "Show on Backpack"
passe par SetCurrencyBackpack et par rien d autre.

Les chiffres du segment sont d un cran au-dessus de ceux de camelot, a
la demande ; celui de la bourse ne bouge pas.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-23 13:11:03 +02:00
Adrestie ad401ddcb8 PvP : la jauge circulaire, refaite par quadrants
SetSwipeTexture est absent de 3.3.5 et la texture de balayage du Cooldown
est cablee dans le moteur : la remplacer changerait tous les temps de
recharge du jeu. Le cadran est donc coupe en quatre quarts ; un quart
depasse montre le quart de l anneau, le quart ou la jauge s arrete montre
un DEMI anneau tourne par SetTexCoord a huit arguments.

La cuisson recale le centre du cercle sur le centre du canevas -- une
texture qu on fait tourner decrirait sinon une boucle -- et interpole la
couleur ponderee par l alpha, sans quoi le blanc des texels vides bordait
l anneau d un lisere clair.

Verifie par la geometrie et non par l oeil : le harnais relit les
coordonnees posees et interroge l image sur 72 angles, pour sept
fractions.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-23 13:10:06 +02:00
Adrestie 723558ade3 Bas de l'ecran : le micro-menu resiste aux vehicules
/fui micro a montre deux boutons, et eux seuls, ancres ailleurs que sur
notre bandeau : CharacterMicroButton a BOTTOMLEFT (552, 2) et
SocialsMicroButton sur le BOTTOMRIGHT de QuestLogMicroButton. C'est
exactement ce que fait VehicleMenuBar_MoveMicroButtons, appelee par
MainMenuBar_ToPlayerArt ET MainMenuBar_ToVehicleArt -- donc a chaque entree
ou sortie de vehicule. On repose apres elle, et a chaque passage general.

MainMenuBar avalait les clics a son tour : declaree enableMouse="true" et
couvrant tout le bas de l'ecran, son art remplace par le notre mais sa
souris intacte. Meme remede que pour BonusActionBarFrame.

La lecon se generalise : tout contenant du client qu'on vide garde sa
souris, et il faut la lui retirer.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-23 09:14:44 +02:00
Adrestie 155acf9a15 Bas de l'ecran : la barre bonus n'avale plus les clics du micro-menu
/fui micro a nomme le coupable : les dix boutons sont exactement a leur
place, un seul ancrage chacun, et GetMouseFocus rend BonusActionBarFrame.

Elle est declaree 505 x 43, strate HIGH, toplevel, avec enableMouse="true".
Effacer son art la rend invisible mais PAS inoffensive : elle reste une
dalle au-dessus du bas de l'ecran et avale les clics de tout ce qu'on y a
pose -- le bouton du personnage ne repondait plus.

C'est le meme piege que CharacterModelFrame sur les emplacements
d'equipement, et le meme remede : un cadre qui ne sert que de contenant n'a
pas a recevoir de clic. Ses douze boutons gardent le leur, etant des cadres
fils.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-23 09:08:00 +02:00
Adrestie 10f5fa9e02 Feuille : le rang PvP se nomme par les chaines du client
/fui pvp a tranche : UnitPVPRank rend 0 sur ce serveur et GetPVPRankInfo ne
repond rien. Le "1" du haut n'etait pas un rang mais la SAISON d'arene,
ecrite sans intitule juste au-dessus. Trois corrections.

LE DECALAGE, enfin etabli. UnitPVPRank rend un INDICE, et je n'avais aucun
usage de reference pour en deduire le numero -- WotLK ne s'en sert plus.
L'ordre des quarante chaines le tranche : PVP_RANK_1..4 sont les rangs
NEGATIFS (Pariah, Outlaw, Exiled, Dishonored), PVP_RANK_5 est Scout /
Private donc le rang 1, PVP_RANK_10 est Stone Guard / Knight donc le rang 6.
L'indice est la cle telle quelle, et le numero vaut l'indice moins quatre.
Le nom se lit donc dans ces chaines, comme GetPVPRankText le fait chez
camelot.

LA SAISON porte son intitule : ARENA, ce que le client a de plus proche
d'EXPANSION_SEASON_NAME, absent.

SANS RANG, PAS D'ANNEAU : un cercle dore vide se lit comme un defaut. Le
cadran garde sa lueur, son fond de faction et l'embleme.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-23 08:35:42 +02:00
Adrestie 91181e8897 Feuille : le titre du rang en haut, son numero dans l'anneau
A LA DEMANDE, et non d'apres la source : camelot ecrit les deux en haut --
PVP_RANK_NUMBER_AND_TITLE donne "Rang N : Nom" dans le CurrentRankField --
puis repete le numero dans l'anneau de recompense, par LevelLabel.

Ici le titre reste seul en haut, et le numero n'est qu'a un endroit : dans
le cercle dore.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-23 02:07:21 +02:00
Adrestie 0880e155a9 Feuille : l'onglet PvP, repris de camelot
PVPRankFrame.xml et pvprankframe.lua lus en entier. camelot tire tout de
C_MajorFactions -- le renom -- qui n'existe pas ici. Mais les trois
fonctions de l'epoque des rangs sont TOUJOURS dans le binaire, verifie dans
Wow.exe : UnitPVPRank, GetPVPRankInfo et GetPVPRankProgress. WotLK a
simplement cesse de s'en servir dans son FrameXML.

Heureuse coincidence : la planche c60 de camelot porte QUATORZE icones de
rang, exactement les quatorze rangs classiques. Son art est celui de
l'epoque.

Tout cet art vit sur une feuille que le listfile ne nomme pas :
ajouter_feuilles.py accepte desormais "fdid:<n>.blp => interface/...", et
retrouve ses entrees d'atlas par ce meme identifiant.

Trois ecarts assumes. La jauge circulaire n'est pas portable -- camelot la
fait avec un Cooldown dont il remplace la texture de balayage,
SetSwipeTexture, ABSENT du binaire ; l'anneau, la lueur, le fond de faction
et le badge sont poses, la progression s'ecrit en toutes lettres.
GameFontNormalMed2 n'existe pas. Le compte a rebours de saison demande un
C_SeasonInfo absent.

Le volet droit porte ce que WotLK sait vraiment donner : l'honneur.

Temoin : /fui pvp, qui dit ce que les trois fonctions rendent sur ce
serveur.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-23 02:04:16 +02:00
Adrestie f6f5d10903 Feuille : le balayage complet s'applique aussi a la reputation
A la demande, l'onglet valide recoit le traitement des competences : toutes
les regions ET tous les cadres fils du ReputationFrame du client sont
masques a chaque passage, sans enumeration a tenir a jour. Sa liste a
ascenseur, ses intitules de colonne et ses traits d'arborescence partent
avec.

Deux consequences : les deux traits de liste ont migre sur NOTRE panneau,
hors d'atteinte du balayage, et le balayage de construction devient inutile
-- celui de chaque passage le fait deja, des le premier.

Le cadre de detail echappe au balayage : il a change de parent et vit dans
le volet droit.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-23 01:57:35 +02:00
Adrestie 52c8f71480 Feuille : tout l'ecran des competences du client se tait
Il ne s'agissait pas que de ses lignes. SkillFrame declare aussi un bouton
de tri, un "tout replier", son cadre de depliage et ses trois tuiles, deux
boutons accepter / annuler, sa liste a ascenseur, et tout un cadre de detail
-- ScrollFrame, ScrollChildFrame, StatusBar. Les enumerer serait une liste a
tenir a jour et a oublier.

On masque donc TOUT ce que ce cadre porte et qui n'est pas a nous :
GetRegions ne rend que les textures, GetChildren que les cadres fils -- il
faut les deux, et a chaque passage, SkillFrame_UpdateSkills remontrant les
siennes.

Consequence : nos deux traits de liste sont crees sur NOTRE panneau et non
sur le cadre du client, sinon le balayage les emporterait.

Le faux client ne connaissait pas les cadres fils -- il rendait GetRegions
mais pas GetChildren, et l'essai ne pouvait pas s'ecrire. Chaque cadre tient
desormais la liste des siens, que SetParent met a jour.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-23 01:54:56 +02:00
Adrestie ff72c844a5 Feuille : l'onglet des competences, repris de camelot
SkillsFrame.xml et skillsframe.lua lus en entier. Tout est commun avec la
reputation -- liste (10, -40) / (-25, 15), deux traits, retraits 0 / 2 / 46,
marges 10, ecart 3, survol a 0 / 0,10 / 0,20 -- sauf quatre choses :

  * l'en-tete fait 26 et non 28 ;
  * le nom d'une entree est a x = 2 et non 15, faute d'AccountWideIcon ;
  * la description du volet droit est a -8 sous la jauge et non -6 ;
  * LA BARRE EST BLEUE PAR SON SPRITE -- SetFillTextureByColorType(Blue)
    suivi d'UpdateBarColor(WHITE_FONT_COLOR), donc aucune teinte. Le
    remplissage bleu est cuit au masque comme le blanc.

Le texte de la barre est TOUJOURS la progression : rang / maximum, ou
rang (+bonus) / maximum avec le bonus en vert -- TryShowBarProgressText est
appele des l'initialisation. Et a l'ouverture, la premiere competence qui
n'est pas un en-tete est choisie, comme SelectFirstSkillIfNoneSelected le
veut.

Trois ecarts assumes : 3.3.5 n'a pas de sous-en-tete -- sa hierarchie n'a
qu'un niveau -- les lignes d'armes ne sont pas detaillees, faute des chaines
WEAPON_SKILL_DETAIL_*, et la description ne defile pas.

Temoin : /fui skills.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-23 01:52:48 +02:00
Adrestie bf9b3aea4a Feuille : cocher "Move to Inactive" ne deselectionne plus
Le OnClick du client appelle SetFactionInactive(GetSelectedFaction()), qui
DEPLACE la faction dans le bloc des inactives : tout se renumerote, et
l'indice retenu designait alors une autre ligne.

Le detail suit donc le NOM -- comme la marque de la liste depuis le repli --
et retrouve l'indice a chaque passage, qu'il repose au client pour que ses
trois cases agissent sur la bonne faction. Si la faction quitte la liste, le
volet garde ce qu'il montrait plutot que de se vider.

Et sans faction choisie, le volet droit est VIDE : c'est l'etat de depart.
La source de verite est notre nom retenu, pas GetSelectedFaction, que le
client peut laisser pointer n'importe ou.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-23 01:45:29 +02:00
Adrestie 63a76b63e0 Feuille : seule la case de guerre porte les epees
Les trois cases partagent le meme fond, checkbox-minimal, mais pas la meme
coche. AtWarCheckbox porte Interface/Buttons/UI-CheckBox-SwordCheck -- deux
epees croisees, en 32 posees a (3, -5) -- tandis que MakeInactiveCheckbox et
WatchFactionCheckbox prennent checkmark-minimal, centre.

Les epees avaient ete donnees aux trois.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-23 01:42:05 +02:00