Skip to content

fix: восстанавливать weapon_affect биты при надевании с no_cast (#3170)#3182

Merged
bylins merged 1 commit intomasterfrom
fix/weapon-affect-no-cast-3170
Apr 20, 2026
Merged

fix: восстанавливать weapon_affect биты при надевании с no_cast (#3170)#3182
bylins merged 1 commit intomasterfrom
fix/weapon-affect-no-cast-3170

Conversation

@bylins
Copy link
Copy Markdown
Owner

@bylins bylins commented Apr 19, 2026

Проблема

При использовании UnequipChar с флагом skip_total и последующем EquipObj с no_cast | skip_total оружейные биты (weapon_affect) снимались, но не восстанавливались — CastAffect полностью пропускался. Единственным обходом было ручное вызов affect_total.

Причина

В UnequipChar биты снимаются через affect_modify(bitvec, false). В EquipObj при no_cast весь блок weapon_affect пропускается — нет ни CastAffect, ни affect_modify. affect_total же применяет биты напрямую через affect_modify, поэтому и "чинил" проблему.

Исправление

При no_cast в EquipObj и ActivateStuff биты теперь применяются через affect_modify (как делает affect_total), без вызова заклинания. Декларация GetApplyByWeaponAffect добавлена в affect_data.h.

Closes #3170

🤖 Generated with Claude Code

При использовании флага no_cast в EquipObj/ActivateStuff оружейные
биты (weapon_affect) снимались через affect_modify в UnequipChar, но
не восстанавливались — CastAffect пропускался полностью. Теперь при
no_cast биты применяются напрямую через affect_modify (как в affect_total),
без вызова заклинания. Декларация GetApplyByWeaponAffect добавлена в
affect_data.h.

Closes #3170

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@bylins bylins merged commit cbb8985 into master Apr 20, 2026
20 checks passed
@bylins bylins deleted the fix/weapon-affect-no-cast-3170 branch April 20, 2026 06:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Непонятка с переодеванием шмоток

1 participant