fix(player): ne pas desequiper le stuff sous le niveau de specialisation (10)
Bug (signalement #8, perso draenei): sous le niveau 10, chaque montee de niveau vidait tout l'equipement vers les sacs, obligeant a tout rehabiller. Cause racine: InitTalentForLevel() appelle ResetTalentSpecialization() a chaque montee de niveau tant que level < MIN_SPECIALIZATION_LEVEL (10), ce qui declenche RemoveEquipedSpecializationItems(). Cette derniere desequipe tout objet dont les bits de specialisation ne matchent pas la spe (ou qui echoue CanUseItem). Or sous 10 un perso n'a pas de vraie spe -> desequipement indu, non-blizzlike. Fix durable a la racine: early-return dans RemoveEquipedSpecializationItems() si getLevel() < MIN_SPECIALIZATION_LEVEL. Couvre les 2 appelants sans regression: la voie level-up sous 10 (ResetTalentSpecialization) est neutralisee; la voie ActivateTalentGroup (changement de spe) est de toute facon impossible sous 10. MIN_SPECIALIZATION_LEVEL deja en scope (Player.cpp). Diagnostic produit en autonomie par le pipeline de triage de bugs, verifie puis deploye manuellement. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -30771,6 +30771,13 @@ void Player::RemoveSpecializationSpells()
|
||||
|
||||
void Player::RemoveEquipedSpecializationItems()
|
||||
{
|
||||
// Sous le niveau de specialisation (MIN_SPECIALIZATION_LEVEL=10), un perso n'a pas
|
||||
// de vraie spe : ne pas desequiper. InitTalentForLevel() rappelle
|
||||
// ResetTalentSpecialization() a CHAQUE montee de niveau sous 10, ce qui deshabillait
|
||||
// tout le stuff vers les sacs (non-blizzlike ; cf. signalement #8 "draeneï").
|
||||
if (getLevel() < MIN_SPECIALIZATION_LEVEL)
|
||||
return;
|
||||
|
||||
for (uint8 i = EQUIPMENT_SLOT_START; i < EQUIPMENT_SLOT_END; i++)
|
||||
if (Item* item = GetItemByPos(INVENTORY_SLOT_BAG_0, i))
|
||||
if (!item->GetTemplate()->IsUsableBySpecialization(GetSpecializationId(), getLevel(), false) || CanUseItem(item) != EQUIP_ERR_OK)
|
||||
|
||||
Reference in New Issue
Block a user