Flametongue Weapon support.

path: src/game/Player.cpp

@@ -7408,8 +7408,24 @@
         if (!pEnchant) continue;
         for (int s = 0; s < 3; ++s)
         {
+        uint32 spell_id = 0;
             if (pEnchant->type[s] != ITEM_ENCHANTMENT_TYPE_COMBAT_SPELL)
-                continue;
+            
+        {
+                // Flametongue Weapon support
+                switch(pEnchant->ID)
+                {
+                    case 3:    spell_id =  8026; break; // Rank1
+                    case 4:    spell_id =  8028; break; // Rank2
+                    case 5:    spell_id =  8029; break; // Rank3
+                    case 523:  spell_id = 10445; break; // Rank4
+                    case 1665: spell_id = 16343; break; // Rank5
+                    case 1666: spell_id = 16344; break; // Rank6
+                    case 2634: spell_id = 25488; break; // Rank7
+                    default:
+                        continue;
+                } 
+            }
 
             SpellEnchantProcEntry const* entry =  spellmgr.GetSpellEnchantProcEvent(enchant_id);
             if (entry && entry->procEx)
@@ -7425,14 +7441,16 @@
                     continue;
             }
 
-            SpellEntry const *spellInfo = sSpellStore.LookupEntry(pEnchant->spellid[s]);
+                if(!spell_id)
+                    spell_id = pEnchant->spellid[s];
+
+            SpellEntry const *spellInfo = sSpellStore.LookupEntry(spell_id);
             if (!spellInfo)
             {
-                sLog.outError("Player::CastItemCombatSpell Enchant %i, cast unknown spell %i", pEnchant->ID, pEnchant->spellid[s]);
-                continue;
-            }
-
-            // do not allow proc windfury totem from yellow attacks
+            sLog.outError("Player::CastItemCombatSpell Enchant %i, cast unknown spell %i", pEnchant->ID, spell_id);
+                continue;
+            }
+            
             if (spell && spellInfo->SpellFamilyName == SPELLFAMILY_SHAMAN && spellInfo->SpellFamilyFlags & 0x200000000LL)
                 return;
 
@@ -7451,14 +7469,14 @@
                 chance = entry->customChance;
 
             // Apply spell mods
-            ApplySpellMod(pEnchant->spellid[s],SPELLMOD_CHANCE_OF_SUCCESS,chance);
+            ApplySpellMod(spell_id,SPELLMOD_CHANCE_OF_SUCCESS,chance);
 
             if (roll_chance_f(chance))
             {
-                if (IsPositiveSpell(pEnchant->spellid[s]))
-                    CastSpell(this, pEnchant->spellid[s], true, item);
+               if(IsPositiveSpell(spell_id))
+                  CastSpell(this, spell_id, true, item);
                 else
-                    CastSpell(target, pEnchant->spellid[s], true, item);
+                    CastSpell(target, spell_id, true, item);
             }
         }
     }
@@ -12153,6 +12171,10 @@
             case ITEM_ENCHANTMENT_TYPE_EQUIP_SPELL:
                 if (enchant_spell_id)
                 {
+                SpellEntry const *temp = sSpellStore.LookupEntry(enchant_spell_id);
+                    if(!temp)
+                        break;
+                
                     if (apply)
                     {
                         int32 basepoints = 0;

path: src/game/SpellEffects.cpp

@@ -1761,6 +1761,23 @@
             break;
         case SPELLFAMILY_SHAMAN:
 
+            // Flametongue Weapon Proc
+            if(m_spellInfo->SpellFamilyFlags & 0x200000)
+            {
+                if(m_caster->GetTypeId() != TYPEID_PLAYER)
+                    return;
+
+                bool mainhand = false;
+
+                if(m_CastItem && m_CastItem->GetSlot() == EQUIPMENT_SLOT_MAINHAND)
+                    mainhand = true;
+
+                bp = ((Player*)m_caster)->SpellBaseDamageBonus(SPELL_SCHOOL_MASK_FIRE) *0.1;
+                bp += m_caster->GetAttackTime(mainhand ? BASE_ATTACK : OFF_ATTACK) * (m_spellInfo->EffectBasePoints[0]+1) / 100000;
+                spell_id = 10444;
+                break;
+            }
+        
             // Flametongue Totem Proc
             if (m_spellInfo->SpellFamilyFlags & 0x0000000400000000LL)
             {

AFAIK flametongue has been already fixed https://bitbucket.org/oregon/oregoncore … lametongue

"A little hard-work never killed anyone important." - Abe