I didn't test this, but I did look through the changes.
in no particular order, some very minor observations:
your point #11. The fix would be to not allow trading while engaged instead of not recalculating bonuses.
you use GetSkill(DODGE) etc. instead of GetSkill(19), so you should also use m_inv.GetItem(SLOT_PRIMARY) and m_inv.GetItem(SLOT_SECONDARY) instead of m_inv.GetItem(13) and m_inv.GetItem(14)
|