Quantcast

Separate out rotation functions from the default scripts for reusability.

Johnny C. Lam [12-28-14 - 02:58]
Separate out rotation functions from the default scripts for reusability.

The rotation functions form the model for the script and the icon
defintions form the view for the script.  Split them into separate scripts
so that it's possible to tweak just the icon layout.
Filename
scripts/ovale_deathknight.lua
scripts/ovale_druid.lua
scripts/ovale_hunter.lua
scripts/ovale_mage.lua
scripts/ovale_monk.lua
scripts/ovale_paladin.lua
scripts/ovale_priest.lua
scripts/ovale_rogue.lua
scripts/ovale_shaman.lua
scripts/ovale_warlock.lua
scripts/ovale_warrior.lua
diff --git a/scripts/ovale_deathknight.lua b/scripts/ovale_deathknight.lua
index 4439b43..a2d4a1c 100644
--- a/scripts/ovale_deathknight.lua
+++ b/scripts/ovale_deathknight.lua
@@ -3,9 +3,9 @@ local OvaleScripts = Ovale.OvaleScripts

 do
 	local name = "ovale_deathknight"
-	local desc = "[6.0] Ovale: Blood, Frost, Unholy"
+	local desc = "[6.0] Ovale: Rotations (Blood, Frost, Unholy)"
 	local code = [[
-# Ovale death knight script based on SimulationCraft.
+# Death knight rotation functions based on SimulationCraft.

 Include(ovale_common)
 Include(ovale_deathknight_spells)
@@ -261,45 +261,6 @@ AddFunction BloodReActions
 	if Rune(blood) >= 2 BloodBloodActions()
 }

-### Blood icons
-AddCheckBox(opt_deathknight_blood_aoe L(AOE) specialization=blood default)
-
-AddIcon specialization=blood help=shortcd enemies=1 checkbox=!opt_deathknight_blood_aoe
-{
-	if InCombat(no) BloodPrecombatShortCdActions()
-	BloodDefaultShortCdActions()
-}
-
-AddIcon specialization=blood help=shortcd checkbox=opt_deathknight_blood_aoe
-{
-	if InCombat(no) BloodPrecombatShortCdActions()
-	BloodDefaultShortCdActions()
-}
-
-AddIcon specialization=blood help=main enemies=1
-{
-	if InCombat(no) BloodPrecombatActions()
-	BloodDefaultActions()
-}
-
-AddIcon specialization=blood help=aoe checkbox=opt_deathknight_blood_aoe
-{
-	if InCombat(no) BloodPrecombatActions()
-	BloodDefaultActions()
-}
-
-AddIcon specialization=blood help=cd enemies=1 checkbox=!opt_deathknight_blood_aoe
-{
-	if InCombat(no) BloodPrecombatCdActions()
-	BloodDefaultCdActions()
-}
-
-AddIcon specialization=blood help=cd checkbox=opt_deathknight_blood_aoe
-{
-	if InCombat(no) BloodPrecombatCdActions()
-	BloodDefaultCdActions()
-}
-
 ###
 ### Frost (dual-wield)
 ###
@@ -1062,93 +1023,6 @@ AddFunction FrostTwoHanderSingleTargetCdActions
 	}
 }

-### Frost icons.
-AddCheckBox(opt_deathknight_frost_aoe L(AOE) specialization=frost default)
-
-AddIcon specialization=frost help=shortcd enemies=1 checkbox=!opt_deathknight_frost_aoe
-{
-	if HasWeapon(offhand)
-	{
-		if InCombat(no) FrostDualWieldPrecombatShortCdActions()
-		FrostDualWieldDefaultShortCdActions()
-	}
-	if HasWeapon(offhand no)
-	{
-		if InCombat(no) FrostTwoHanderPrecombatShortCdActions()
-		FrostTwoHanderDefaultShortCdActions()
-	}
-}
-
-AddIcon specialization=frost help=shortcd checkbox=opt_deathknight_frost_aoe
-{
-	if HasWeapon(offhand)
-	{
-		if InCombat(no) FrostDualWieldPrecombatShortCdActions()
-		FrostDualWieldDefaultShortCdActions()
-	}
-	if HasWeapon(offhand no)
-	{
-		if InCombat(no) FrostTwoHanderPrecombatShortCdActions()
-		FrostTwoHanderDefaultShortCdActions()
-	}
-}
-
-AddIcon specialization=frost help=main enemies=1
-{
-	if HasWeapon(offhand)
-	{
-		if InCombat(no) FrostDualWieldPrecombatActions()
-		FrostDualWieldDefaultActions()
-	}
-	if HasWeapon(offhand no)
-	{
-		if InCombat(no) FrostTwoHanderPrecombatActions()
-		FrostTwoHanderDefaultActions()
-	}
-}
-
-AddIcon specialization=frost help=aoe checkbox=opt_deathknight_frost_aoe
-{
-	if HasWeapon(offhand)
-	{
-		if InCombat(no) FrostDualWieldPrecombatActions()
-		FrostDualWieldDefaultActions()
-	}
-	if HasWeapon(offhand no)
-	{
-		if InCombat(no) FrostTwoHanderPrecombatActions()
-		FrostTwoHanderDefaultActions()
-	}
-}
-
-AddIcon specialization=frost help=cd enemies=1 checkbox=!opt_deathknight_frost_aoe
-{
-	if HasWeapon(offhand)
-	{
-		if InCombat(no) FrostDualWieldPrecombatCdActions()
-		FrostDualWieldDefaultCdActions()
-	}
-	if HasWeapon(offhand no)
-	{
-		if InCombat(no) FrostTwoHanderPrecombatCdActions()
-		FrostTwoHanderDefaultCdActions()
-	}
-}
-
-AddIcon specialization=frost help=cd checkbox=opt_deathknight_frost_aoe
-{
-	if HasWeapon(offhand)
-	{
-		if InCombat(no) FrostDualWieldPrecombatCdActions()
-		FrostDualWieldDefaultCdActions()
-	}
-	if HasWeapon(offhand no)
-	{
-		if InCombat(no) FrostTwoHanderPrecombatCdActions()
-		FrostTwoHanderDefaultCdActions()
-	}
-}
-
 ###
 ### Unholy
 ###
@@ -1604,6 +1478,144 @@ AddFunction UnholySpreadActions
 AddFunction UnholySpreadShortCdActions {}

 AddFunction UnholySpreadCdActions {}
+]]
+	OvaleScripts:RegisterScript("DEATHKNIGHT", name, desc, code, "include")
+end
+
+do
+	local name = "Ovale"	-- The default script.
+	local desc = "[6.0] Ovale: Blood, Frost, Unholy"
+	local code = [[
+# Ovale death knight script based on SimulationCraft.
+
+# Death knight rotation functions.
+Include(ovale_deathknight)
+
+### Blood icons
+AddCheckBox(opt_deathknight_blood_aoe L(AOE) specialization=blood default)
+
+AddIcon specialization=blood help=shortcd enemies=1 checkbox=!opt_deathknight_blood_aoe
+{
+	if InCombat(no) BloodPrecombatShortCdActions()
+	BloodDefaultShortCdActions()
+}
+
+AddIcon specialization=blood help=shortcd checkbox=opt_deathknight_blood_aoe
+{
+	if InCombat(no) BloodPrecombatShortCdActions()
+	BloodDefaultShortCdActions()
+}
+
+AddIcon specialization=blood help=main enemies=1
+{
+	if InCombat(no) BloodPrecombatActions()
+	BloodDefaultActions()
+}
+
+AddIcon specialization=blood help=aoe checkbox=opt_deathknight_blood_aoe
+{
+	if InCombat(no) BloodPrecombatActions()
+	BloodDefaultActions()
+}
+
+AddIcon specialization=blood help=cd enemies=1 checkbox=!opt_deathknight_blood_aoe
+{
+	if InCombat(no) BloodPrecombatCdActions()
+	BloodDefaultCdActions()
+}
+
+AddIcon specialization=blood help=cd checkbox=opt_deathknight_blood_aoe
+{
+	if InCombat(no) BloodPrecombatCdActions()
+	BloodDefaultCdActions()
+}
+
+### Frost icons.
+AddCheckBox(opt_deathknight_frost_aoe L(AOE) specialization=frost default)
+
+AddIcon specialization=frost help=shortcd enemies=1 checkbox=!opt_deathknight_frost_aoe
+{
+	if HasWeapon(offhand)
+	{
+		if InCombat(no) FrostDualWieldPrecombatShortCdActions()
+		FrostDualWieldDefaultShortCdActions()
+	}
+	if HasWeapon(offhand no)
+	{
+		if InCombat(no) FrostTwoHanderPrecombatShortCdActions()
+		FrostTwoHanderDefaultShortCdActions()
+	}
+}
+
+AddIcon specialization=frost help=shortcd checkbox=opt_deathknight_frost_aoe
+{
+	if HasWeapon(offhand)
+	{
+		if InCombat(no) FrostDualWieldPrecombatShortCdActions()
+		FrostDualWieldDefaultShortCdActions()
+	}
+	if HasWeapon(offhand no)
+	{
+		if InCombat(no) FrostTwoHanderPrecombatShortCdActions()
+		FrostTwoHanderDefaultShortCdActions()
+	}
+}
+
+AddIcon specialization=frost help=main enemies=1
+{
+	if HasWeapon(offhand)
+	{
+		if InCombat(no) FrostDualWieldPrecombatActions()
+		FrostDualWieldDefaultActions()
+	}
+	if HasWeapon(offhand no)
+	{
+		if InCombat(no) FrostTwoHanderPrecombatActions()
+		FrostTwoHanderDefaultActions()
+	}
+}
+
+AddIcon specialization=frost help=aoe checkbox=opt_deathknight_frost_aoe
+{
+	if HasWeapon(offhand)
+	{
+		if InCombat(no) FrostDualWieldPrecombatActions()
+		FrostDualWieldDefaultActions()
+	}
+	if HasWeapon(offhand no)
+	{
+		if InCombat(no) FrostTwoHanderPrecombatActions()
+		FrostTwoHanderDefaultActions()
+	}
+}
+
+AddIcon specialization=frost help=cd enemies=1 checkbox=!opt_deathknight_frost_aoe
+{
+	if HasWeapon(offhand)
+	{
+		if InCombat(no) FrostDualWieldPrecombatCdActions()
+		FrostDualWieldDefaultCdActions()
+	}
+	if HasWeapon(offhand no)
+	{
+		if InCombat(no) FrostTwoHanderPrecombatCdActions()
+		FrostTwoHanderDefaultCdActions()
+	}
+}
+
+AddIcon specialization=frost help=cd checkbox=opt_deathknight_frost_aoe
+{
+	if HasWeapon(offhand)
+	{
+		if InCombat(no) FrostDualWieldPrecombatCdActions()
+		FrostDualWieldDefaultCdActions()
+	}
+	if HasWeapon(offhand no)
+	{
+		if InCombat(no) FrostTwoHanderPrecombatCdActions()
+		FrostTwoHanderDefaultCdActions()
+	}
+}

 ### Unholy icons.
 AddCheckBox(opt_deathknight_unholy_aoe L(AOE) specialization=unholy default)
@@ -1644,8 +1656,5 @@ AddIcon specialization=unholy help=cd checkbox=opt_deathknight_unholy_aoe
 	UnholyDefaultCdActions()
 }
 ]]
-
-	OvaleScripts:RegisterScript("DEATHKNIGHT", name, desc, code, "include")
-	-- Register as the default Ovale script.
-	OvaleScripts:RegisterScript("DEATHKNIGHT", "Ovale", desc, code, "script")
+	OvaleScripts:RegisterScript("DEATHKNIGHT", name, desc, code, "script")
 end
diff --git a/scripts/ovale_druid.lua b/scripts/ovale_druid.lua
index 67fe6c7..8fe9ce2 100644
--- a/scripts/ovale_druid.lua
+++ b/scripts/ovale_druid.lua
@@ -3,9 +3,9 @@ local OvaleScripts = Ovale.OvaleScripts

 do
 	local name = "ovale_druid"
-	local desc = "[6.0] Ovale: Feral, Guardian, Restoration"
+	local desc = "[6.0] Ovale: Rotations (Feral, Guardian, Restoration)"
 	local code = [[
-# Ovale druid script based on SimulationCraft.
+# Druid rotation functions based on SimulationCraft.

 Include(ovale_common)
 Include(ovale_druid_spells)
@@ -275,51 +275,6 @@ AddFunction FeralPrecombatCdActions
 	}
 }

-### Feral Icons
-AddCheckBox(opt_druid_feral_aoe L(AOE) specialization=feral default)
-
-AddIcon specialization=feral help=shortcd enemies=1 checkbox=!opt_druid_feral_aoe
-{
-	if InCombat(no) FeralPrecombatShortCdActions()
-	FeralDefaultShortCdActions()
-}
-
-AddIcon specialization=feral help=shortcd checkbox=opt_druid_feral_aoe
-{
-	if InCombat(no) FeralPrecombatShortCdActions()
-	FeralDefaultShortCdActions()
-}
-
-AddIcon specialization=feral help=main enemies=1
-{
-	if InCombat(no) FeralPrecombatActions()
-	FeralDefaultActions()
-}
-
-AddIcon specialization=feral help=predict enemies=1 checkbox=!opt_druid_feral_aoe
-{
-	if InCombat(no) FeralPrecombatPredictActions()
-	FeralDefaultPredictActions()
-}
-
-AddIcon specialization=feral help=aoe checkbox=opt_druid_feral_aoe
-{
-	if InCombat(no) FeralPrecombatActions()
-	FeralDefaultActions()
-}
-
-AddIcon specialization=feral help=cd enemies=1 checkbox=!opt_druid_feral_aoe
-{
-	if InCombat(no) FeralPrecombatCdActions()
-	FeralDefaultCdActions()
-}
-
-AddIcon specialization=feral help=cd checkbox=opt_druid_feral_aoe
-{
-	if InCombat(no) FeralPrecombatCdActions()
-	FeralDefaultCdActions()
-}
-
 ###
 ### Guardian
 ###
@@ -426,45 +381,6 @@ AddFunction GuardianPrecombatShortCdActions {}

 AddFunction GuardianPrecombatCdActions {}

-### Guardian icons.
-AddCheckBox(opt_druid_guardian_aoe L(AOE) specialization=guardian default)
-
-AddIcon specialization=guardian help=shortcd enemies=1 checkbox=!opt_druid_guardian_aoe
-{
-	if InCombat(no) GuardianPrecombatShortCdActions()
-	GuardianDefaultShortCdActions()
-}
-
-AddIcon specialization=guardian help=shortcd checkbox=opt_druid_guardian_aoe
-{
-	if InCombat(no) GuardianPrecombatShortCdActions()
-	GuardianDefaultShortCdActions()
-}
-
-AddIcon specialization=guardian help=main enemies=1
-{
-	if InCombat(no) GuardianPrecombatActions()
-	GuardianDefaultActions()
-}
-
-AddIcon specialization=guardian help=aoe checkbox=opt_druid_guardian_aoe
-{
-	if InCombat(no) GuardianPrecombatActions()
-	GuardianDefaultActions()
-}
-
-AddIcon specialization=guardian help=cd enemies=1 checkbox=!opt_druid_guardian_aoe
-{
-	if InCombat(no) GuardianPrecombatCdActions()
-	GuardianDefaultCdActions()
-}
-
-AddIcon specialization=guardian help=cd checkbox=opt_druid_guardian_aoe
-{
-	if InCombat(no) GuardianPrecombatCdActions()
-	GuardianDefaultCdActions()
-}
-
 ###
 ### Restoration
 ###
@@ -528,6 +444,102 @@ AddFunction RestorationCdActions
 	Spell(heart_of_the_wild_heal)
 	Spell(natures_vigil)
 }
+]]
+	OvaleScripts:RegisterScript("DRUID", name, desc, code, "include")
+end
+
+do
+	local name = "Ovale"	-- The default script.
+	local desc = "[6.0] Ovale: Feral, Guardian, Restoration"
+	local code = [[
+# Ovale druid script based on SimulationCraft.
+
+# Druid rotation functions.
+Include(ovale_druid)
+
+### Feral Icons
+AddCheckBox(opt_druid_feral_aoe L(AOE) specialization=feral default)
+
+AddIcon specialization=feral help=shortcd enemies=1 checkbox=!opt_druid_feral_aoe
+{
+	if InCombat(no) FeralPrecombatShortCdActions()
+	FeralDefaultShortCdActions()
+}
+
+AddIcon specialization=feral help=shortcd checkbox=opt_druid_feral_aoe
+{
+	if InCombat(no) FeralPrecombatShortCdActions()
+	FeralDefaultShortCdActions()
+}
+
+AddIcon specialization=feral help=main enemies=1
+{
+	if InCombat(no) FeralPrecombatActions()
+	FeralDefaultActions()
+}
+
+AddIcon specialization=feral help=predict enemies=1 checkbox=!opt_druid_feral_aoe
+{
+	if InCombat(no) FeralPrecombatPredictActions()
+	FeralDefaultPredictActions()
+}
+
+AddIcon specialization=feral help=aoe checkbox=opt_druid_feral_aoe
+{
+	if InCombat(no) FeralPrecombatActions()
+	FeralDefaultActions()
+}
+
+AddIcon specialization=feral help=cd enemies=1 checkbox=!opt_druid_feral_aoe
+{
+	if InCombat(no) FeralPrecombatCdActions()
+	FeralDefaultCdActions()
+}
+
+AddIcon specialization=feral help=cd checkbox=opt_druid_feral_aoe
+{
+	if InCombat(no) FeralPrecombatCdActions()
+	FeralDefaultCdActions()
+}
+
+### Guardian icons.
+AddCheckBox(opt_druid_guardian_aoe L(AOE) specialization=guardian default)
+
+AddIcon specialization=guardian help=shortcd enemies=1 checkbox=!opt_druid_guardian_aoe
+{
+	if InCombat(no) GuardianPrecombatShortCdActions()
+	GuardianDefaultShortCdActions()
+}
+
+AddIcon specialization=guardian help=shortcd checkbox=opt_druid_guardian_aoe
+{
+	if InCombat(no) GuardianPrecombatShortCdActions()
+	GuardianDefaultShortCdActions()
+}
+
+AddIcon specialization=guardian help=main enemies=1
+{
+	if InCombat(no) GuardianPrecombatActions()
+	GuardianDefaultActions()
+}
+
+AddIcon specialization=guardian help=aoe checkbox=opt_druid_guardian_aoe
+{
+	if InCombat(no) GuardianPrecombatActions()
+	GuardianDefaultActions()
+}
+
+AddIcon specialization=guardian help=cd enemies=1 checkbox=!opt_druid_guardian_aoe
+{
+	if InCombat(no) GuardianPrecombatCdActions()
+	GuardianDefaultCdActions()
+}
+
+AddIcon specialization=guardian help=cd checkbox=opt_druid_guardian_aoe
+{
+	if InCombat(no) GuardianPrecombatCdActions()
+	GuardianDefaultCdActions()
+}

 ### Restoration icons.
 AddCheckBox(opt_druid_restoration_aoe L(AOE) specialization=restoration default)
@@ -553,8 +565,5 @@ AddIcon specialization=restoration help=cd
 	RestorationCdActions()
 }
 ]]
-
-	OvaleScripts:RegisterScript("DRUID", name, desc, code, "include")
-	-- Register as the default Ovale script.
-	OvaleScripts:RegisterScript("DRUID", "Ovale", desc, code, "script")
+	OvaleScripts:RegisterScript("DRUID", name, desc, code, "script")
 end
diff --git a/scripts/ovale_hunter.lua b/scripts/ovale_hunter.lua
index 49cf7ec..26dc911 100644
--- a/scripts/ovale_hunter.lua
+++ b/scripts/ovale_hunter.lua
@@ -3,8 +3,10 @@ local OvaleScripts = Ovale.OvaleScripts

 do
 	local name = "ovale_hunter"
-	local desc = "[6.0] Ovale: Beast Mastery, Marksmanship, Survival"
+	local desc = "[6.0] Ovale: Rotations (Beast Mastery, Marksmanship, Survival)"
 	local code = [[
+# Hunter rotation functions based on SimulationCraft.
+
 Include(ovale_common)
 Include(ovale_hunter_spells)

@@ -169,45 +171,6 @@ AddFunction BeastMasteryPrecombatCdActions
 	}
 }

-### Beast Mastery icons
-AddCheckBox(opt_hunter_beast_mastery_aoe L(AOE) specialization=beast_mastery default)
-
-AddIcon specialization=beast_mastery help=shortcd enemies=1 checkbox=!opt_hunter_beast_mastery_aoe
-{
-	if InCombat(no) BeastMasteryPrecombatShortCdActions()
-	BeastMasteryDefaultShortCdActions()
-}
-
-AddIcon specialization=beast_mastery help=shortcd checkbox=opt_hunter_beast_mastery_aoe
-{
-	if InCombat(no) BeastMasteryPrecombatShortCdActions()
-	BeastMasteryDefaultShortCdActions()
-}
-
-AddIcon specialization=beast_mastery help=main enemies=1
-{
-	if InCombat(no) BeastMasteryPrecombatActions()
-	BeastMasteryDefaultActions()
-}
-
-AddIcon specialization=beast_mastery help=aoe checkbox=opt_hunter_beast_mastery_aoe
-{
-	if InCombat(no) BeastMasteryPrecombatActions()
-	BeastMasteryDefaultActions()
-}
-
-AddIcon specialization=beast_mastery help=cd enemies=1 checkbox=!opt_hunter_beast_mastery_aoe
-{
-	if InCombat(no) BeastMasteryPrecombatCdActions()
-	BeastMasteryDefaultCdActions()
-}
-
-AddIcon specialization=beast_mastery help=cd checkbox=opt_hunter_beast_mastery_aoe
-{
-	if InCombat(no) BeastMasteryPrecombatCdActions()
-	BeastMasteryDefaultCdActions()
-}
-
 ###
 ### Marksmanship
 ###
@@ -359,45 +322,6 @@ AddFunction MarksmanshipPrecombatCdActions
 	}
 }

-### Marksmanship icons
-AddCheckBox(opt_hunter_marksmanship_aoe L(AOE) specialization=marksmanship default)
-
-AddIcon specialization=marksmanship help=shortcd enemies=1 checkbox=!opt_hunter_marksmanship_aoe
-{
-	if InCombat(no) MarksmanshipPrecombatShortCdActions()
-	MarksmanshipDefaultShortCdActions()
-}
-
-AddIcon specialization=marksmanship help=shortcd checkbox=opt_hunter_marksmanship_aoe
-{
-	if InCombat(no) MarksmanshipPrecombatShortCdActions()
-	MarksmanshipDefaultShortCdActions()
-}
-
-AddIcon specialization=marksmanship help=main enemies=1
-{
-	if InCombat(no) MarksmanshipPrecombatActions()
-	MarksmanshipDefaultActions()
-}
-
-AddIcon specialization=marksmanship help=aoe checkbox=opt_hunter_marksmanship_aoe
-{
-	if InCombat(no) MarksmanshipPrecombatActions()
-	MarksmanshipDefaultActions()
-}
-
-AddIcon specialization=marksmanship help=cd enemies=1 checkbox=!opt_hunter_marksmanship_aoe
-{
-	if InCombat(no) MarksmanshipPrecombatCdActions()
-	MarksmanshipDefaultCdActions()
-}
-
-AddIcon specialization=marksmanship help=cd checkbox=opt_hunter_marksmanship_aoe
-{
-	if InCombat(no) MarksmanshipPrecombatCdActions()
-	MarksmanshipDefaultCdActions()
-}
-
 ###
 ### Survival
 ###
@@ -562,6 +486,96 @@ AddFunction SurvivalPrecombatCdActions
 		UsePotionAgility()
 	}
 }
+]]
+	OvaleScripts:RegisterScript("HUNTER", name, desc, code, "include")
+end
+
+do
+	local name = "Ovale"	-- The default script.
+	local desc = "[6.0] Ovale: Beast Mastery, Marksmanship, Survival"
+	local code = [[
+# Ovale hunter script based on SimulationCraft.
+
+# Hunter rotation functions.
+Include(ovale_hunter)
+
+### Beast Mastery icons
+AddCheckBox(opt_hunter_beast_mastery_aoe L(AOE) specialization=beast_mastery default)
+
+AddIcon specialization=beast_mastery help=shortcd enemies=1 checkbox=!opt_hunter_beast_mastery_aoe
+{
+	if InCombat(no) BeastMasteryPrecombatShortCdActions()
+	BeastMasteryDefaultShortCdActions()
+}
+
+AddIcon specialization=beast_mastery help=shortcd checkbox=opt_hunter_beast_mastery_aoe
+{
+	if InCombat(no) BeastMasteryPrecombatShortCdActions()
+	BeastMasteryDefaultShortCdActions()
+}
+
+AddIcon specialization=beast_mastery help=main enemies=1
+{
+	if InCombat(no) BeastMasteryPrecombatActions()
+	BeastMasteryDefaultActions()
+}
+
+AddIcon specialization=beast_mastery help=aoe checkbox=opt_hunter_beast_mastery_aoe
+{
+	if InCombat(no) BeastMasteryPrecombatActions()
+	BeastMasteryDefaultActions()
+}
+
+AddIcon specialization=beast_mastery help=cd enemies=1 checkbox=!opt_hunter_beast_mastery_aoe
+{
+	if InCombat(no) BeastMasteryPrecombatCdActions()
+	BeastMasteryDefaultCdActions()
+}
+
+AddIcon specialization=beast_mastery help=cd checkbox=opt_hunter_beast_mastery_aoe
+{
+	if InCombat(no) BeastMasteryPrecombatCdActions()
+	BeastMasteryDefaultCdActions()
+}
+
+### Marksmanship icons
+AddCheckBox(opt_hunter_marksmanship_aoe L(AOE) specialization=marksmanship default)
+
+AddIcon specialization=marksmanship help=shortcd enemies=1 checkbox=!opt_hunter_marksmanship_aoe
+{
+	if InCombat(no) MarksmanshipPrecombatShortCdActions()
+	MarksmanshipDefaultShortCdActions()
+}
+
+AddIcon specialization=marksmanship help=shortcd checkbox=opt_hunter_marksmanship_aoe
+{
+	if InCombat(no) MarksmanshipPrecombatShortCdActions()
+	MarksmanshipDefaultShortCdActions()
+}
+
+AddIcon specialization=marksmanship help=main enemies=1
+{
+	if InCombat(no) MarksmanshipPrecombatActions()
+	MarksmanshipDefaultActions()
+}
+
+AddIcon specialization=marksmanship help=aoe checkbox=opt_hunter_marksmanship_aoe
+{
+	if InCombat(no) MarksmanshipPrecombatActions()
+	MarksmanshipDefaultActions()
+}
+
+AddIcon specialization=marksmanship help=cd enemies=1 checkbox=!opt_hunter_marksmanship_aoe
+{
+	if InCombat(no) MarksmanshipPrecombatCdActions()
+	MarksmanshipDefaultCdActions()
+}
+
+AddIcon specialization=marksmanship help=cd checkbox=opt_hunter_marksmanship_aoe
+{
+	if InCombat(no) MarksmanshipPrecombatCdActions()
+	MarksmanshipDefaultCdActions()
+}

 ### Survival icons
 AddCheckBox(opt_hunter_survival_aoe L(AOE) specialization=survival default)
@@ -602,8 +616,5 @@ AddIcon specialization=survival help=cd checkbox=opt_hunter_survival_aoe
 	SurvivalDefaultCdActions()
 }
 ]]
-
-	OvaleScripts:RegisterScript("HUNTER", name, desc, code, "include")
-	-- Register as the default Ovale script.
-	OvaleScripts:RegisterScript("HUNTER", "Ovale", desc, code, "script")
+	OvaleScripts:RegisterScript("HUNTER", name, desc, code, "script")
 end
diff --git a/scripts/ovale_mage.lua b/scripts/ovale_mage.lua
index 5be21ce..3ede80b 100644
--- a/scripts/ovale_mage.lua
+++ b/scripts/ovale_mage.lua
@@ -3,9 +3,9 @@ local OvaleScripts = Ovale.OvaleScripts

 do
 	local name = "ovale_mage"
-	local desc = "[6.0] Ovale: Arcane, Fire, Frost"
+	local desc = "[6.0] Ovale: Rotations (Arcane, Fire, Frost)"
 	local code = [[
-# Ovale mage script based on SimulationCraft.
+# Mage rotation functions based on SimulationCraft.

 Include(ovale_common)
 Include(ovale_mage_spells)
@@ -372,45 +372,6 @@ AddFunction ArcanePrecombatCdActions
 	}
 }

-### Arcane icons.
-AddCheckBox(opt_mage_arcane_aoe L(AOE) specialization=arcane default)
-
-AddIcon specialization=arcane help=shortcd enemies=1 checkbox=!opt_mage_arcane_aoe
-{
-	if InCombat(no) ArcanePrecombatShortCdActions()
-	ArcaneDefaultShortCdActions()
-}
-
-AddIcon specialization=arcane help=shortcd checkbox=opt_mage_arcane_aoe
-{
-	if InCombat(no) ArcanePrecombatShortCdActions()
-	ArcaneDefaultShortCdActions()
-}
-
-AddIcon specialization=arcane help=main enemies=1
-{
-	if InCombat(no) ArcanePrecombatActions()
-	ArcaneDefaultActions()
-}
-
-AddIcon specialization=arcane help=aoe checkbox=opt_mage_arcane_aoe
-{
-	if InCombat(no) ArcanePrecombatActions()
-	ArcaneDefaultActions()
-}
-
-AddIcon specialization=arcane help=cd enemies=1 checkbox=!opt_mage_arcane_aoe
-{
-	if InCombat(no) ArcanePrecombatCdActions()
-	ArcaneDefaultCdActions()
-}
-
-AddIcon specialization=arcane help=cd checkbox=opt_mage_arcane_aoe
-{
-	if InCombat(no) ArcanePrecombatCdActions()
-	ArcaneDefaultCdActions()
-}
-
 ###
 ### Fire
 ###
@@ -762,45 +723,6 @@ AddFunction FireSingleTargetCdActions
 	}
 }

-### Fire icons.
-AddCheckBox(opt_mage_fire_aoe L(AOE) specialization=fire default)
-
-AddIcon specialization=fire help=shortcd enemies=1 checkbox=!opt_mage_fire_aoe
-{
-	if InCombat(no) FirePrecombatShortCdActions()
-	FireDefaultShortCdActions()
-}
-
-AddIcon specialization=fire help=shortcd checkbox=opt_mage_fire_aoe
-{
-	if InCombat(no) FirePrecombatShortCdActions()
-	FireDefaultShortCdActions()
-}
-
-AddIcon specialization=fire help=main enemies=1
-{
-	if InCombat(no) FirePrecombatActions()
-	FireDefaultActions()
-}
-
-AddIcon specialization=fire help=aoe checkbox=opt_mage_fire_aoe
-{
-	if InCombat(no) FirePrecombatActions()
-	FireDefaultActions()
-}
-
-AddIcon specialization=fire help=cd enemies=1 checkbox=!opt_mage_fire_aoe
-{
-	if InCombat(no) FirePrecombatCdActions()
-	FireDefaultCdActions()
-}
-
-AddIcon specialization=fire help=cd checkbox=opt_mage_fire_aoe
-{
-	if InCombat(no) FirePrecombatCdActions()
-	FireDefaultCdActions()
-}
-
 ###
 ### Frost
 ###
@@ -1076,6 +998,96 @@ AddFunction FrostSingleTargetCdActions
 	#call_action_list,name=cooldowns,if=!talent.prismatic_crystal.enabled|cooldown.prismatic_crystal.remains>15
 	if not Talent(prismatic_crystal_talent) or SpellCooldown(prismatic_crystal) > 15 FrostCooldownsCdActions()
 }
+]]
+	OvaleScripts:RegisterScript("MAGE", name, desc, code, "include")
+end
+
+do
+	local name = "Ovale"	-- The default script.
+	local desc = "[6.0] Ovale: Arcane, Fire, Frost"
+	local code = [[
+# Ovale mage script based on SimulationCraft.
+
+# Mage rotation functions.
+Include(ovale_mage)
+
+### Arcane icons.
+AddCheckBox(opt_mage_arcane_aoe L(AOE) specialization=arcane default)
+
+AddIcon specialization=arcane help=shortcd enemies=1 checkbox=!opt_mage_arcane_aoe
+{
+	if InCombat(no) ArcanePrecombatShortCdActions()
+	ArcaneDefaultShortCdActions()
+}
+
+AddIcon specialization=arcane help=shortcd checkbox=opt_mage_arcane_aoe
+{
+	if InCombat(no) ArcanePrecombatShortCdActions()
+	ArcaneDefaultShortCdActions()
+}
+
+AddIcon specialization=arcane help=main enemies=1
+{
+	if InCombat(no) ArcanePrecombatActions()
+	ArcaneDefaultActions()
+}
+
+AddIcon specialization=arcane help=aoe checkbox=opt_mage_arcane_aoe
+{
+	if InCombat(no) ArcanePrecombatActions()
+	ArcaneDefaultActions()
+}
+
+AddIcon specialization=arcane help=cd enemies=1 checkbox=!opt_mage_arcane_aoe
+{
+	if InCombat(no) ArcanePrecombatCdActions()
+	ArcaneDefaultCdActions()
+}
+
+AddIcon specialization=arcane help=cd checkbox=opt_mage_arcane_aoe
+{
+	if InCombat(no) ArcanePrecombatCdActions()
+	ArcaneDefaultCdActions()
+}
+
+### Fire icons.
+AddCheckBox(opt_mage_fire_aoe L(AOE) specialization=fire default)
+
+AddIcon specialization=fire help=shortcd enemies=1 checkbox=!opt_mage_fire_aoe
+{
+	if InCombat(no) FirePrecombatShortCdActions()
+	FireDefaultShortCdActions()
+}
+
+AddIcon specialization=fire help=shortcd checkbox=opt_mage_fire_aoe
+{
+	if InCombat(no) FirePrecombatShortCdActions()
+	FireDefaultShortCdActions()
+}
+
+AddIcon specialization=fire help=main enemies=1
+{
+	if InCombat(no) FirePrecombatActions()
+	FireDefaultActions()
+}
+
+AddIcon specialization=fire help=aoe checkbox=opt_mage_fire_aoe
+{
+	if InCombat(no) FirePrecombatActions()
+	FireDefaultActions()
+}
+
+AddIcon specialization=fire help=cd enemies=1 checkbox=!opt_mage_fire_aoe
+{
+	if InCombat(no) FirePrecombatCdActions()
+	FireDefaultCdActions()
+}
+
+AddIcon specialization=fire help=cd checkbox=opt_mage_fire_aoe
+{
+	if InCombat(no) FirePrecombatCdActions()
+	FireDefaultCdActions()
+}

 ### Frost icons.
 AddCheckBox(opt_mage_frost_aoe L(AOE) specialization=frost default)
@@ -1116,8 +1128,5 @@ AddIcon specialization=frost help=cd checkbox=opt_mage_frost_aoe
 	FrostDefaultCdActions()
 }
 ]]
-
-	OvaleScripts:RegisterScript("MAGE", name, desc, code, "include")
-	-- Register as the default Ovale script.
-	OvaleScripts:RegisterScript("MAGE", "Ovale", desc, code, "script")
+	OvaleScripts:RegisterScript("MAGE", name, desc, code, "script")
 end
diff --git a/scripts/ovale_monk.lua b/scripts/ovale_monk.lua
index 4fdfb89..aa585b0 100644
--- a/scripts/ovale_monk.lua
+++ b/scripts/ovale_monk.lua
@@ -3,9 +3,9 @@ local OvaleScripts = Ovale.OvaleScripts

 do
 	local name = "ovale_monk"
-	local desc = "[6.0] Ovale: Brewmaster, Windwalker"
+	local desc = "[6.0] Ovale: Rotations (Brewmaster, Windwalker)"
 	local code = [[
-# Ovale monk script based on SimulationCraft.
+# Monk rotation functions based on SimulationCraft.

 Include(ovale_common)
 Include(ovale_monk_spells)
@@ -258,45 +258,9 @@ AddFunction BrewmasterStShortCdActions

 AddFunction BrewmasterStCdActions {}

-### Brewmaster icons.
-AddCheckBox(opt_monk_brewmaster_aoe L(AOE) specialization=brewmaster default)
-
-AddIcon specialization=brewmaster help=shortcd enemies=1 checkbox=!opt_monk_brewmaster_aoe
-{
-	if InCombat(no) BrewmasterPrecombatShortCdActions()
-	BrewmasterDefaultShortCdActions()
-}
-
-AddIcon specialization=brewmaster help=shortcd checkbox=opt_monk_brewmaster_aoe
-{
-	if InCombat(no) BrewmasterPrecombatShortCdActions()
-	BrewmasterDefaultShortCdActions()
-}
-
-AddIcon specialization=brewmaster help=main enemies=1
-{
-	if InCombat(no) BrewmasterPrecombatActions()
-	BrewmasterDefaultActions()
-}
-
-AddIcon specialization=brewmaster help=aoe checkbox=opt_monk_brewmaster_aoe
-{
-	if InCombat(no) BrewmasterPrecombatActions()
-	BrewmasterDefaultActions()
-}
-
-AddIcon specialization=brewmaster help=cd enemies=1 checkbox=!opt_monk_brewmaster_aoe
-{
-	if InCombat(no) BrewmasterPrecombatCdActions()
-	BrewmasterDefaultCdActions()
-}
-
-AddIcon specialization=brewmaster help=cd checkbox=opt_monk_brewmaster_aoe
-{
-	if InCombat(no) BrewmasterPrecombatCdActions()
-	BrewmasterDefaultCdActions()
-}
-
+###
+### Windwalker
+###
 # Based on SimulationCraft profile "Monk_Windwalker_1h_T17M".
 #	class=monk
 #	spec=windwalker
@@ -487,6 +451,57 @@ AddFunction WindwalkerStShortCdActions
 }

 AddFunction WindwalkerStCdActions {}
+]]
+	OvaleScripts:RegisterScript("MONK", name, desc, code, "include")
+end
+
+do
+	local name = "Ovale"	-- The default script.
+	local desc = "[6.0] Ovale: Brewmaster, Windwalker"
+	local code = [[
+# Ovale monk script based on SimulationCraft.
+
+# Monk rotation functions.
+Include(ovale_monk)
+
+### Brewmaster icons.
+AddCheckBox(opt_monk_brewmaster_aoe L(AOE) specialization=brewmaster default)
+
+AddIcon specialization=brewmaster help=shortcd enemies=1 checkbox=!opt_monk_brewmaster_aoe
+{
+	if InCombat(no) BrewmasterPrecombatShortCdActions()
+	BrewmasterDefaultShortCdActions()
+}
+
+AddIcon specialization=brewmaster help=shortcd checkbox=opt_monk_brewmaster_aoe
+{
+	if InCombat(no) BrewmasterPrecombatShortCdActions()
+	BrewmasterDefaultShortCdActions()
+}
+
+AddIcon specialization=brewmaster help=main enemies=1
+{
+	if InCombat(no) BrewmasterPrecombatActions()
+	BrewmasterDefaultActions()
+}
+
+AddIcon specialization=brewmaster help=aoe checkbox=opt_monk_brewmaster_aoe
+{
+	if InCombat(no) BrewmasterPrecombatActions()
+	BrewmasterDefaultActions()
+}
+
+AddIcon specialization=brewmaster help=cd enemies=1 checkbox=!opt_monk_brewmaster_aoe
+{
+	if InCombat(no) BrewmasterPrecombatCdActions()
+	BrewmasterDefaultCdActions()
+}
+
+AddIcon specialization=brewmaster help=cd checkbox=opt_monk_brewmaster_aoe
+{
+	if InCombat(no) BrewmasterPrecombatCdActions()
+	BrewmasterDefaultCdActions()
+}

 ### Windwalker icons.
 AddCheckBox(opt_monk_windwalker_aoe L(AOE) specialization=windwalker default)
@@ -527,8 +542,5 @@ AddIcon specialization=windwalker help=cd checkbox=opt_monk_windwalker_aoe
 	WindwalkerDefaultCdActions()
 }
 ]]
-
-	OvaleScripts:RegisterScript("MONK", name, desc, code, "include")
-	-- Register as the default Ovale script.
-	OvaleScripts:RegisterScript("MONK", "Ovale", desc, code, "script")
+	OvaleScripts:RegisterScript("MONK", name, desc, code, "script")
 end
diff --git a/scripts/ovale_paladin.lua b/scripts/ovale_paladin.lua
index 89df950..b9a15db 100644
--- a/scripts/ovale_paladin.lua
+++ b/scripts/ovale_paladin.lua
@@ -3,9 +3,9 @@ local OvaleScripts = Ovale.OvaleScripts

 do
 	local name = "ovale_paladin"
-	local desc = "[6.0] Ovale: Protection, Retribution"
+	local desc = "[6.0] Ovale: Rotations (Protection, Retribution)"
 	local code = [[
-# Ovale paladin script based on SimulationCraft.
+# Paladin rotation functions based on SimulationCraft.

 Include(ovale_common)
 Include(ovale_paladin_spells)
@@ -281,45 +281,6 @@ AddFunction ProtectionPrecombatCdActions
 	}
 }

-### Protection Icons
-AddCheckBox(opt_paladin_protection_aoe L(AOE) specialization=protection default)
-
-AddIcon specialization=protection help=shortcd enemies=1 checkbox=!opt_paladin_protection_aoe
-{
-	if InCombat(no) ProtectionPrecombatShortCdActions()
-	ProtectionDefaultShortCdActions()
-}
-
-AddIcon specialization=protection help=shortcd checkbox=opt_paladin_protection_aoe
-{
-	if InCombat(no) ProtectionPrecombatShortCdActions()
-	ProtectionDefaultShortCdActions()
-}
-
-AddIcon specialization=protection help=main enemies=1
-{
-	if InCombat(no) ProtectionPrecombatActions()
-	ProtectionDefaultActions()
-}
-
-AddIcon specialization=protection help=aoe checkbox=opt_paladin_protection_aoe
-{
-	if InCombat(no) ProtectionPrecombatActions()
-	ProtectionDefaultActions()
-}
-
-AddIcon specialization=protection help=cd enemies=1 checkbox=!opt_paladin_protection_aoe
-{
-	if InCombat(no) ProtectionPrecombatCdActions()
-	ProtectionDefaultCdActions()
-}
-
-AddIcon specialization=protection help=cd checkbox=opt_paladin_protection_aoe
-{
-	if InCombat(no) ProtectionPrecombatCdActions()
-	ProtectionDefaultCdActions()
-}
-
 ###
 ### Retribution
 ###
@@ -572,6 +533,57 @@ AddFunction RetributionSingleActions
 	#holy_prism
 	Spell(holy_prism)
 }
+]]
+	OvaleScripts:RegisterScript("PALADIN", name, desc, code, "include")
+end
+
+do
+	local name = "Ovale"	-- The default script.
+	local desc = "[6.0] Ovale: Protection, Retribution"
+	local code = [[
+# Ovale paladin script based on SimulationCraft.
+
+# Paladin rotation functions.
+Include(ovale_paladin)
+
+### Protection Icons
+AddCheckBox(opt_paladin_protection_aoe L(AOE) specialization=protection default)
+
+AddIcon specialization=protection help=shortcd enemies=1 checkbox=!opt_paladin_protection_aoe
+{
+	if InCombat(no) ProtectionPrecombatShortCdActions()
+	ProtectionDefaultShortCdActions()
+}
+
+AddIcon specialization=protection help=shortcd checkbox=opt_paladin_protection_aoe
+{
+	if InCombat(no) ProtectionPrecombatShortCdActions()
+	ProtectionDefaultShortCdActions()
+}
+
+AddIcon specialization=protection help=main enemies=1
+{
+	if InCombat(no) ProtectionPrecombatActions()
+	ProtectionDefaultActions()
+}
+
+AddIcon specialization=protection help=aoe checkbox=opt_paladin_protection_aoe
+{
+	if InCombat(no) ProtectionPrecombatActions()
+	ProtectionDefaultActions()
+}
+
+AddIcon specialization=protection help=cd enemies=1 checkbox=!opt_paladin_protection_aoe
+{
+	if InCombat(no) ProtectionPrecombatCdActions()
+	ProtectionDefaultCdActions()
+}
+
+AddIcon specialization=protection help=cd checkbox=opt_paladin_protection_aoe
+{
+	if InCombat(no) ProtectionPrecombatCdActions()
+	ProtectionDefaultCdActions()
+}

 ### Retribution Icons
 AddCheckBox(opt_paladin_retribution_aoe L(AOE) specialization=retribution default)
@@ -612,8 +624,5 @@ AddIcon specialization=retribution help=cd checkbox=opt_paladin_retribution_aoe
 	RetributionDefaultCdActions()
 }
 ]]
-
-	OvaleScripts:RegisterScript("PALADIN", name, desc, code, "include")
-	-- Register as the default Ovale script.
-	OvaleScripts:RegisterScript("PALADIN", "Ovale", desc, code, "script")
+	OvaleScripts:RegisterScript("PALADIN", name, desc, code, "script")
 end
diff --git a/scripts/ovale_priest.lua b/scripts/ovale_priest.lua
index 171d047..4a91b93 100644
--- a/scripts/ovale_priest.lua
+++ b/scripts/ovale_priest.lua
@@ -3,9 +3,9 @@ local OvaleScripts = Ovale.OvaleScripts

 do
 	local name = "ovale_priest"
-	local desc = "[6.0] Ovale: Shadow"
+	local desc = "[6.0] Ovale: Rotations (Shadow)"
 	local code = [[
-# Ovale priest script based on SimulationCraft.
+# Priest rotation functions based on SimulationCraft.

 Include(ovale_common)
 Include(ovale_priest_spells)
@@ -688,6 +688,18 @@ AddFunction ShadowVentCdActions
 	#shadowfiend,if=!talent.mindbender.enabled&cooldown.mind_blast.remains>=gcd
 	if not Talent(mindbender_talent) and SpellCooldown(mind_blast) >= GCD() Spell(shadowfiend)
 }
+]]
+	OvaleScripts:RegisterScript("PRIEST", name, desc, code, "include")
+end
+
+do
+	local name = "Ovale"	-- The default script.
+	local desc = "[6.0] Ovale: Shadow"
+	local code = [[
+# Ovale priest script based on SimulationCraft.
+
+# Priest rotation functions.
+Include(ovale_priest)

 ### Shadow icons
 AddCheckBox(opt_priest_shadow_aoe L(AOE) specialization=shadow default)
@@ -728,8 +740,5 @@ AddIcon specialization=shadow help=cd checkbox=opt_priest_shadow_aoe
 	ShadowDefaultCdActions()
 }
 ]]
-
-	OvaleScripts:RegisterScript("PRIEST", name, desc, code, "include")
-	-- Register as the default Ovale script.
-	OvaleScripts:RegisterScript("PRIEST", "Ovale", desc, code, "script")
+	OvaleScripts:RegisterScript("PRIEST", name, desc, code, "script")
 end
diff --git a/scripts/ovale_rogue.lua b/scripts/ovale_rogue.lua
index 8004b4d..45f5480 100644
--- a/scripts/ovale_rogue.lua
+++ b/scripts/ovale_rogue.lua
@@ -3,9 +3,9 @@ local OvaleScripts = Ovale.OvaleScripts

 do
 	local name = "ovale_rogue"
-	local desc = "[6.0] Ovale: Assassination, Combat, Subtlety"
+	local desc = "[6.0] Ovale: Rotations (Assassination, Combat, Subtlety)"
 	local code = [[
-# Ovale rogue script based on SimulationCraft.
+# Rogue rotation functions based on SimulationCraft.

 Include(ovale_common)
 Include(ovale_rogue_spells)
@@ -185,45 +185,6 @@ AddFunction AssassinationPrecombatCdActions
 	}
 }

-### Assassination icons.
-AddCheckBox(opt_rogue_assassination_aoe L(AOE) specialization=assassination default)
-
-AddIcon specialization=assassination help=shortcd enemies=1 checkbox=!opt_rogue_assassination_aoe
-{
-	if InCombat(no) AssassinationPrecombatShortCdActions()
-	AssassinationDefaultShortCdActions()
-}
-
-AddIcon specialization=assassination help=shortcd checkbox=opt_rogue_assassination_aoe
-{
-	if InCombat(no) AssassinationPrecombatShortCdActions()
-	AssassinationDefaultShortCdActions()
-}
-
-AddIcon specialization=assassination help=main enemies=1
-{
-	if InCombat(no) AssassinationPrecombatActions()
-	AssassinationDefaultActions()
-}
-
-AddIcon specialization=assassination help=aoe checkbox=opt_rogue_assassination_aoe
-{
-	if InCombat(no) AssassinationPrecombatActions()
-	AssassinationDefaultActions()
-}
-
-AddIcon specialization=assassination help=cd enemies=1 checkbox=!opt_rogue_assassination_aoe
-{
-	if InCombat(no) AssassinationPrecombatCdActions()
-	AssassinationDefaultCdActions()
-}
-
-AddIcon specialization=assassination help=cd checkbox=opt_rogue_assassination_aoe
-{
-	if InCombat(no) AssassinationPrecombatCdActions()
-	AssassinationDefaultCdActions()
-}
-
 ###
 ### Combat
 ###
@@ -379,45 +340,6 @@ AddFunction CombatPrecombatCdActions
 	}
 }

-### Combat icons.
-AddCheckBox(opt_rogue_combat_aoe L(AOE) specialization=combat default)
-
-AddIcon specialization=combat help=shortcd enemies=1 checkbox=!opt_rogue_combat_aoe
-{
-	if InCombat(no) CombatPrecombatShortCdActions()
-	CombatDefaultShortCdActions()
-}
-
-AddIcon specialization=combat help=shortcd checkbox=opt_rogue_combat_aoe
-{
-	if InCombat(no) CombatPrecombatShortCdActions()
-	CombatDefaultShortCdActions()
-}
-
-AddIcon specialization=combat help=main enemies=1
-{
-	if InCombat(no) CombatPrecombatActions()
-	CombatDefaultActions()
-}
-
-AddIcon specialization=combat help=aoe checkbox=opt_rogue_combat_aoe
-{
-	if InCombat(no) CombatPrecombatActions()
-	CombatDefaultActions()
-}
-
-AddIcon specialization=combat help=cd enemies=1 checkbox=!opt_rogue_combat_aoe
-{
-	if InCombat(no) CombatPrecombatCdActions()
-	CombatDefaultCdActions()
-}
-
-AddIcon specialization=combat help=cd checkbox=opt_rogue_combat_aoe
-{
-	if InCombat(no) CombatPrecombatCdActions()
-	CombatDefaultCdActions()
-}
-
 ###
 ### Subtlety
 ###
@@ -683,6 +605,96 @@ AddFunction SubtletyPrecombatCdActions
 		UsePotionAgility()
 	}
 }
+]]
+	OvaleScripts:RegisterScript("ROGUE", name, desc, code, "include")
+end
+
+do
+	local name = "Ovale"	-- The default script.
+	local desc = "[6.0] Ovale: Assassination, Combat, Subtlety"
+	local code = [[
+# Ovale rogue script based on SimulationCraft.
+
+# Rogue rotation functions.
+Include(ovale_rogue)
+
+### Assassination icons.
+AddCheckBox(opt_rogue_assassination_aoe L(AOE) specialization=assassination default)
+
+AddIcon specialization=assassination help=shortcd enemies=1 checkbox=!opt_rogue_assassination_aoe
+{
+	if InCombat(no) AssassinationPrecombatShortCdActions()
+	AssassinationDefaultShortCdActions()
+}
+
+AddIcon specialization=assassination help=shortcd checkbox=opt_rogue_assassination_aoe
+{
+	if InCombat(no) AssassinationPrecombatShortCdActions()
+	AssassinationDefaultShortCdActions()
+}
+
+AddIcon specialization=assassination help=main enemies=1
+{
+	if InCombat(no) AssassinationPrecombatActions()
+	AssassinationDefaultActions()
+}
+
+AddIcon specialization=assassination help=aoe checkbox=opt_rogue_assassination_aoe
+{
+	if InCombat(no) AssassinationPrecombatActions()
+	AssassinationDefaultActions()
+}
+
+AddIcon specialization=assassination help=cd enemies=1 checkbox=!opt_rogue_assassination_aoe
+{
+	if InCombat(no) AssassinationPrecombatCdActions()
+	AssassinationDefaultCdActions()
+}
+
+AddIcon specialization=assassination help=cd checkbox=opt_rogue_assassination_aoe
+{
+	if InCombat(no) AssassinationPrecombatCdActions()
+	AssassinationDefaultCdActions()
+}
+
+### Combat icons.
+AddCheckBox(opt_rogue_combat_aoe L(AOE) specialization=combat default)
+
+AddIcon specialization=combat help=shortcd enemies=1 checkbox=!opt_rogue_combat_aoe
+{
+	if InCombat(no) CombatPrecombatShortCdActions()
+	CombatDefaultShortCdActions()
+}
+
+AddIcon specialization=combat help=shortcd checkbox=opt_rogue_combat_aoe
+{
+	if InCombat(no) CombatPrecombatShortCdActions()
+	CombatDefaultShortCdActions()
+}
+
+AddIcon specialization=combat help=main enemies=1
+{
+	if InCombat(no) CombatPrecombatActions()
+	CombatDefaultActions()
+}
+
+AddIcon specialization=combat help=aoe checkbox=opt_rogue_combat_aoe
+{
+	if InCombat(no) CombatPrecombatActions()
+	CombatDefaultActions()
+}
+
+AddIcon specialization=combat help=cd enemies=1 checkbox=!opt_rogue_combat_aoe
+{
+	if InCombat(no) CombatPrecombatCdActions()
+	CombatDefaultCdActions()
+}
+
+AddIcon specialization=combat help=cd checkbox=opt_rogue_combat_aoe
+{
+	if InCombat(no) CombatPrecombatCdActions()
+	CombatDefaultCdActions()
+}

 ### Subtlety icons.
 AddCheckBox(opt_rogue_subtlety_aoe L(AOE) specialization=subtlety default)
@@ -723,8 +735,5 @@ AddIcon specialization=subtlety help=cd checkbox=opt_rogue_subtlety_aoe
 	SubtletyDefaultCdActions()
 }
 ]]
-
-	OvaleScripts:RegisterScript("ROGUE", name, desc, code, "include")
-	-- Register as the default Ovale script.
-	OvaleScripts:RegisterScript("ROGUE", "Ovale", desc, code, "script")
+	OvaleScripts:RegisterScript("ROGUE", name, desc, code, "script")
 end
diff --git a/scripts/ovale_shaman.lua b/scripts/ovale_shaman.lua
index 5c24f01..d584e6f 100644
--- a/scripts/ovale_shaman.lua
+++ b/scripts/ovale_shaman.lua
@@ -2,10 +2,10 @@ local OVALE, Ovale = ...
 local OvaleScripts = Ovale.OvaleScripts

 do
-	local name = "legacy_ovale_shaman"
-	local desc = "[6.0] Ovale: Elemental, Enhancement, Restoration"
+	local name = "ovale_shaman"
+	local desc = "[6.0] Ovale: Rotations (Elemental, Enhancement, Restoration)"
 	local code = [[
-# Ovale shaman script based on SimulationCraft.
+# Shaman rotation functions based on SimulationCraft.

 Include(ovale_common)
 Include(ovale_shaman_spells)
@@ -224,45 +224,6 @@ AddFunction ElementalSingleShortCdActions

 AddFunction ElementalSingleCdActions {}

-### Elemental icons.
-AddCheckBox(opt_shaman_elemental_aoe L(AOE) specialization=elemental default)
-
-AddIcon specialization=elemental help=shortcd enemies=1 checkbox=!opt_shaman_elemental_aoe
-{
-	if InCombat(no) ElementalPrecombatShortCdActions()
-	ElementalDefaultShortCdActions()
-}
-
-AddIcon specialization=elemental help=shortcd checkbox=opt_shaman_elemental_aoe
-{
-	if InCombat(no) ElementalPrecombatShortCdActions()
-	ElementalDefaultShortCdActions()
-}
-
-AddIcon specialization=elemental help=main enemies=1
-{
-	if InCombat(no) ElementalPrecombatActions()
-	ElementalDefaultActions()
-}
-
-AddIcon specialization=elemental help=aoe checkbox=opt_shaman_elemental_aoe
-{
-	if InCombat(no) ElementalPrecombatActions()
-	ElementalDefaultActions()
-}
-
-AddIcon specialization=elemental help=cd enemies=1 checkbox=!opt_shaman_elemental_aoe
-{
-	if InCombat(no) ElementalPrecombatCdActions()
-	ElementalDefaultCdActions()
-}
-
-AddIcon specialization=elemental help=cd checkbox=opt_shaman_elemental_aoe
-{
-	if InCombat(no) ElementalPrecombatCdActions()
-	ElementalDefaultCdActions()
-}
-
 ###
 ### Enhancement
 ###
@@ -427,45 +388,6 @@ AddFunction EnhancementSingleActions
 	if TotemRemaining(searing_totem) <= 20 and not TotemPresent(fire_elemental_totem) and not BuffPresent(liquid_magma_buff) Spell(searing_totem)
 }

-### Enhancement icons.
-AddCheckBox(opt_shaman_enhancement_aoe L(AOE) specialization=enhancement default)
-
-AddIcon specialization=enhancement help=shortcd enemies=1 checkbox=!opt_shaman_enhancement_aoe
-{
-	if InCombat(no) EnhancementPrecombatShortCdActions()
-	EnhancementDefaultShortCdActions()
-}
-
-AddIcon specialization=enhancement help=shortcd checkbox=opt_shaman_enhancement_aoe
-{
-	if InCombat(no) EnhancementPrecombatShortCdActions()
-	EnhancementDefaultShortCdActions()
-}
-
-AddIcon specialization=enhancement help=main enemies=1
-{
-	if InCombat(no) EnhancementPrecombatActions()
-	EnhancementDefaultActions()
-}
-
-AddIcon specialization=enhancement help=aoe checkbox=opt_shaman_enhancement_aoe
-{
-	if InCombat(no) EnhancementPrecombatActions()
-	EnhancementDefaultActions()
-}
-
-AddIcon specialization=enhancement help=cd enemies=1 checkbox=!opt_shaman_enhancement_aoe
-{
-	if InCombat(no) EnhancementPrecombatCdActions()
-	EnhancementDefaultCdActions()
-}
-
-AddIcon specialization=enhancement help=cd checkbox=opt_shaman_enhancement_aoe
-{
-	if InCombat(no) EnhancementPrecombatCdActions()
-	EnhancementDefaultCdActions()
-}
-
 ###
 ### Restoration
 ###
@@ -527,6 +449,96 @@ AddFunction RestorationCdActions
 	Spell(fire_elemental_totem)
 	Spell(earth_elemental_totem)
 }
+]]
+	OvaleScripts:RegisterScript("SHAMAN", name, desc, code, "include")
+end
+
+do
+	local name = "Ovale"	-- The default script.
+	local desc = "[6.0] Ovale: Elemental, Enhancement, Restoration"
+	local code = [[
+# Ovale shaman script based on SimulationCraft.
+
+# Shaman rotation functions.
+Include(ovale_shaman)
+
+### Elemental icons.
+AddCheckBox(opt_shaman_elemental_aoe L(AOE) specialization=elemental default)
+
+AddIcon specialization=elemental help=shortcd enemies=1 checkbox=!opt_shaman_elemental_aoe
+{
+	if InCombat(no) ElementalPrecombatShortCdActions()
+	ElementalDefaultShortCdActions()
+}
+
+AddIcon specialization=elemental help=shortcd checkbox=opt_shaman_elemental_aoe
+{
+	if InCombat(no) ElementalPrecombatShortCdActions()
+	ElementalDefaultShortCdActions()
+}
+
+AddIcon specialization=elemental help=main enemies=1
+{
+	if InCombat(no) ElementalPrecombatActions()
+	ElementalDefaultActions()
+}
+
+AddIcon specialization=elemental help=aoe checkbox=opt_shaman_elemental_aoe
+{
+	if InCombat(no) ElementalPrecombatActions()
+	ElementalDefaultActions()
+}
+
+AddIcon specialization=elemental help=cd enemies=1 checkbox=!opt_shaman_elemental_aoe
+{
+	if InCombat(no) ElementalPrecombatCdActions()
+	ElementalDefaultCdActions()
+}
+
+AddIcon specialization=elemental help=cd checkbox=opt_shaman_elemental_aoe
+{
+	if InCombat(no) ElementalPrecombatCdActions()
+	ElementalDefaultCdActions()
+}
+
+### Enhancement icons.
+AddCheckBox(opt_shaman_enhancement_aoe L(AOE) specialization=enhancement default)
+
+AddIcon specialization=enhancement help=shortcd enemies=1 checkbox=!opt_shaman_enhancement_aoe
+{
+	if InCombat(no) EnhancementPrecombatShortCdActions()
+	EnhancementDefaultShortCdActions()
+}
+
+AddIcon specialization=enhancement help=shortcd checkbox=opt_shaman_enhancement_aoe
+{
+	if InCombat(no) EnhancementPrecombatShortCdActions()
+	EnhancementDefaultShortCdActions()
+}
+
+AddIcon specialization=enhancement help=main enemies=1
+{
+	if InCombat(no) EnhancementPrecombatActions()
+	EnhancementDefaultActions()
+}
+
+AddIcon specialization=enhancement help=aoe checkbox=opt_shaman_enhancement_aoe
+{
+	if InCombat(no) EnhancementPrecombatActions()
+	EnhancementDefaultActions()
+}
+
+AddIcon specialization=enhancement help=cd enemies=1 checkbox=!opt_shaman_enhancement_aoe
+{
+	if InCombat(no) EnhancementPrecombatCdActions()
+	EnhancementDefaultCdActions()
+}
+
+AddIcon specialization=enhancement help=cd checkbox=opt_shaman_enhancement_aoe
+{
+	if InCombat(no) EnhancementPrecombatCdActions()
+	EnhancementDefaultCdActions()
+}

 ### Restoration icons.
 AddCheckBox(opt_shaman_restoration_aoe L(AOE) specialization=restoration default)
@@ -551,8 +563,5 @@ AddIcon specialization=restoration help=cd
 	RestorationCdActions()
 }
 ]]
-
-	OvaleScripts:RegisterScript("SHAMAN", name, desc, code, "include")
-	-- Register as the default Ovale script.
-	OvaleScripts:RegisterScript("SHAMAN", "Ovale", desc, code, "script")
+	OvaleScripts:RegisterScript("SHAMAN", name, desc, code, "script")
 end
diff --git a/scripts/ovale_warlock.lua b/scripts/ovale_warlock.lua
index 920576e..0cc9d44 100644
--- a/scripts/ovale_warlock.lua
+++ b/scripts/ovale_warlock.lua
@@ -3,9 +3,9 @@ local OvaleScripts = Ovale.OvaleScripts

 do
 	local name = "ovale_warlock"
-	local desc = "[6.0] Ovale: Affliction, Demonology, Destruction"
+	local desc = "[6.0] Ovale: Rotations (Affliction, Demonology, Destruction)"
 	local code = [[
-# Ovale warlock script based on SimulationCraft.
+# Warlock rotation functions based on SimulationCraft.

 Include(ovale_common)
 Include(ovale_warlock_spells)
@@ -150,51 +150,6 @@ AddFunction AfflictionPrecombatCdActions
 	}
 }

-### Affliction icons.
-AddCheckBox(opt_warlock_affliction_aoe L(AOE) specialization=affliction default)
-
-AddIcon specialization=affliction help=shortcd enemies=1 checkbox=!opt_warlock_affliction_aoe
-{
-	if InCombat(no) AfflictionPrecombatShortCdActions()
-	AfflictionDefaultShortCdActions()
-}
-
-AddIcon specialization=affliction help=shortcd checkbox=opt_warlock_affliction_aoe
-{
-	if InCombat(no) AfflictionPrecombatShortCdActions()
-	AfflictionDefaultShortCdActions()
-}
-
-AddIcon specialization=affliction help=main enemies=1
-{
-	if InCombat(no) AfflictionPrecombatActions()
-	AfflictionDefaultActions()
-}
-
-AddIcon specialization=affliction help=predict enemies=1 checkbox=!opt_warlock_affliction_aoe
-{
-	if InCombat(no) AfflictionPrecombatPredictActions()
-	AfflictionDefaultPredictActions()
-}
-
-AddIcon specialization=affliction help=aoe checkbox=opt_warlock_affliction_aoe
-{
-	if InCombat(no) AfflictionPrecombatActions()
-	AfflictionDefaultActions()
-}
-
-AddIcon specialization=affliction help=cd enemies=1 checkbox=!opt_warlock_affliction_aoe
-{
-	if InCombat(no) AfflictionPrecombatCdActions()
-	AfflictionDefaultCdActions()
-}
-
-AddIcon specialization=affliction help=cd checkbox=opt_warlock_affliction_aoe
-{
-	if InCombat(no) AfflictionPrecombatCdActions()
-	AfflictionDefaultCdActions()
-}
-
 ###
 ### Demonology
 ###
@@ -535,51 +490,6 @@ AddFunction DemonologyPrecombatCdActions
 	}
 }

-### Demonology icons.
-AddCheckBox(opt_warlock_demonology_aoe L(AOE) specialization=demonology default)
-
-AddIcon specialization=demonology help=shortcd enemies=1 checkbox=!opt_warlock_demonology_aoe
-{
-	if InCombat(no) DemonologyPrecombatShortCdActions()
-	DemonologyDefaultShortCdActions()
-}
-
-AddIcon specialization=demonology help=shortcd checkbox=opt_warlock_demonology_aoe
-{
-	if InCombat(no) DemonologyPrecombatShortCdActions()
-	DemonologyDefaultShortCdActions()
-}
-
-AddIcon specialization=demonology help=main enemies=1
-{
-	if InCombat(no) DemonologyPrecombatActions()
-	DemonologyDefaultActions()
-}
-
-AddIcon specialization=demonology help=predict enemies=1 checkbox=!opt_warlock_demonology_aoe
-{
-	if InCombat(no) DemonologyPrecombatPredictActions()
-	DemonologyDefaultPredictActions()
-}
-
-AddIcon specialization=demonology help=aoe checkbox=opt_warlock_demonology_aoe
-{
-	if InCombat(no) DemonologyPrecombatActions()
-	DemonologyDefaultActions()
-}
-
-AddIcon specialization=demonology help=cd enemies=1 checkbox=!opt_warlock_demonology_aoe
-{
-	if InCombat(no) DemonologyPrecombatCdActions()
-	DemonologyDefaultCdActions()
-}
-
-AddIcon specialization=demonology help=cd checkbox=opt_warlock_demonology_aoe
-{
-	if InCombat(no) DemonologyPrecombatCdActions()
-	DemonologyDefaultCdActions()
-}
-
 ###
 ### Destruction
 ###
@@ -825,6 +735,108 @@ AddFunction DestructionSingleTargetShortCdActions
 }

 AddFunction DestructionSingleTargetCdActions {}
+]]
+	OvaleScripts:RegisterScript("WARLOCK", name, desc, code, "include")
+end
+
+do
+	local name = "Ovale"	-- The default script.
+	local desc = "[6.0] Ovale: Affliction, Demonology, Destruction"
+	local code = [[
+# Ovale warlock script based on SimulationCraft.
+
+# Warlock rotation functions.
+Include(ovale_warlock)
+
+### Affliction icons.
+AddCheckBox(opt_warlock_affliction_aoe L(AOE) specialization=affliction default)
+
+AddIcon specialization=affliction help=shortcd enemies=1 checkbox=!opt_warlock_affliction_aoe
+{
+	if InCombat(no) AfflictionPrecombatShortCdActions()
+	AfflictionDefaultShortCdActions()
+}
+
+AddIcon specialization=affliction help=shortcd checkbox=opt_warlock_affliction_aoe
+{
+	if InCombat(no) AfflictionPrecombatShortCdActions()
+	AfflictionDefaultShortCdActions()
+}
+
+AddIcon specialization=affliction help=main enemies=1
+{
+	if InCombat(no) AfflictionPrecombatActions()
+	AfflictionDefaultActions()
+}
+
+AddIcon specialization=affliction help=predict enemies=1 checkbox=!opt_warlock_affliction_aoe
+{
+	if InCombat(no) AfflictionPrecombatPredictActions()
+	AfflictionDefaultPredictActions()
+}
+
+AddIcon specialization=affliction help=aoe checkbox=opt_warlock_affliction_aoe
+{
+	if InCombat(no) AfflictionPrecombatActions()
+	AfflictionDefaultActions()
+}
+
+AddIcon specialization=affliction help=cd enemies=1 checkbox=!opt_warlock_affliction_aoe
+{
+	if InCombat(no) AfflictionPrecombatCdActions()
+	AfflictionDefaultCdActions()
+}
+
+AddIcon specialization=affliction help=cd checkbox=opt_warlock_affliction_aoe
+{
+	if InCombat(no) AfflictionPrecombatCdActions()
+	AfflictionDefaultCdActions()
+}
+
+### Demonology icons.
+AddCheckBox(opt_warlock_demonology_aoe L(AOE) specialization=demonology default)
+
+AddIcon specialization=demonology help=shortcd enemies=1 checkbox=!opt_warlock_demonology_aoe
+{
+	if InCombat(no) DemonologyPrecombatShortCdActions()
+	DemonologyDefaultShortCdActions()
+}
+
+AddIcon specialization=demonology help=shortcd checkbox=opt_warlock_demonology_aoe
+{
+	if InCombat(no) DemonologyPrecombatShortCdActions()
+	DemonologyDefaultShortCdActions()
+}
+
+AddIcon specialization=demonology help=main enemies=1
+{
+	if InCombat(no) DemonologyPrecombatActions()
+	DemonologyDefaultActions()
+}
+
+AddIcon specialization=demonology help=predict enemies=1 checkbox=!opt_warlock_demonology_aoe
+{
+	if InCombat(no) DemonologyPrecombatPredictActions()
+	DemonologyDefaultPredictActions()
+}
+
+AddIcon specialization=demonology help=aoe checkbox=opt_warlock_demonology_aoe
+{
+	if InCombat(no) DemonologyPrecombatActions()
+	DemonologyDefaultActions()
+}
+
+AddIcon specialization=demonology help=cd enemies=1 checkbox=!opt_warlock_demonology_aoe
+{
+	if InCombat(no) DemonologyPrecombatCdActions()
+	DemonologyDefaultCdActions()
+}
+
+AddIcon specialization=demonology help=cd checkbox=opt_warlock_demonology_aoe
+{
+	if InCombat(no) DemonologyPrecombatCdActions()
+	DemonologyDefaultCdActions()
+}

 ### Destruction icons.
 AddCheckBox(opt_warlock_destruction_aoe L(AOE) specialization=destruction default)
@@ -871,8 +883,5 @@ AddIcon specialization=destruction help=cd checkbox=opt_warlock_destruction_aoe
 	DestructionDefaultCdActions()
 }
 ]]
-
-	OvaleScripts:RegisterScript("WARLOCK", name, desc, code, "include")
-	-- Register as the default Ovale script.
-	OvaleScripts:RegisterScript("WARLOCK", "Ovale", desc, code, "script")
+	OvaleScripts:RegisterScript("WARLOCK", name, desc, code, "script")
 end
diff --git a/scripts/ovale_warrior.lua b/scripts/ovale_warrior.lua
index cf8ca84..9ea759a 100644
--- a/scripts/ovale_warrior.lua
+++ b/scripts/ovale_warrior.lua
@@ -3,9 +3,9 @@ local OvaleScripts = Ovale.OvaleScripts

 do
 	local name = "ovale_warrior"
-	local desc = "[6.0] Ovale: Arms, Fury, Protection"
+	local desc = "[6.0] Ovale: Rotations (Arms, Fury, Protection)"
 	local code = [[
-# Ovale warrior script based on SimulationCraft.
+# Warrior rotation functions based on SimulationCraft.

 Include(ovale_common)
 Include(ovale_warrior_spells)
@@ -243,45 +243,6 @@ AddFunction ArmsSingleShortCdActions

 AddFunction ArmsSingleCdActions {}

-### Arms icons.
-AddCheckBox(opt_warrior_arms_aoe L(AOE) specialization=arms default)
-
-AddIcon specialization=arms help=shortcd enemies=1 checkbox=!opt_warrior_arms_aoe
-{
-	if InCombat(no) ArmsPrecombatShortCdActions()
-	ArmsDefaultShortCdActions()
-}
-
-AddIcon specialization=arms help=shortcd checkbox=opt_warrior_arms_aoe
-{
-	if InCombat(no) ArmsPrecombatShortCdActions()
-	ArmsDefaultShortCdActions()
-}
-
-AddIcon specialization=arms help=main enemies=1
-{
-	if InCombat(no) ArmsPrecombatActions()
-	ArmsDefaultActions()
-}
-
-AddIcon specialization=arms help=aoe checkbox=opt_warrior_arms_aoe
-{
-	if InCombat(no) ArmsPrecombatActions()
-	ArmsDefaultActions()
-}
-
-AddIcon specialization=arms help=cd enemies=1 checkbox=!opt_warrior_arms_aoe
-{
-	if InCombat(no) ArmsPrecombatCdActions()
-	ArmsDefaultCdActions()
-}
-
-AddIcon specialization=arms help=cd checkbox=opt_warrior_arms_aoe
-{
-	if InCombat(no) ArmsPrecombatCdActions()
-	ArmsDefaultCdActions()
-}
-
 ###
 ### Fury (Single-Minded Fury)
 ###
@@ -956,93 +917,6 @@ AddFunction FuryTitansGripTwoTargetsCdActions
 	Spell(bloodbath)
 }

-### Fury icons.
-AddCheckBox(opt_warrior_fury_aoe L(AOE) specialization=fury default)
-
-AddIcon specialization=fury help=shortcd enemies=1 checkbox=!opt_warrior_fury_aoe
-{
-	if HasWeapon(main type=one_handed)
-	{
-		if InCombat(no) FurySingleMindedFuryPrecombatShortCdActions()
-		FurySingleMindedFuryDefaultShortCdActions()
-	}
-	if HasWeapon(main type=two_handed)
-	{
-		if InCombat(no) FuryTitansGripPrecombatShortCdActions()
-		FuryTitansGripDefaultShortCdActions()
-	}
-}
-
-AddIcon specialization=fury help=shortcd checkbox=opt_warrior_fury_aoe
-{
-	if HasWeapon(main type=one_handed)
-	{
-		if InCombat(no) FurySingleMindedFuryPrecombatShortCdActions()
-		FurySingleMindedFuryDefaultShortCdActions()
-	}
-	if HasWeapon(main type=two_handed)
-	{
-		if InCombat(no) FuryTitansGripPrecombatShortCdActions()
-		FuryTitansGripDefaultShortCdActions()
-	}
-}
-
-AddIcon specialization=fury help=main enemies=1
-{
-	if HasWeapon(main type=one_handed)
-	{
-		if InCombat(no) FurySingleMindedFuryPrecombatActions()
-		FurySingleMindedFuryDefaultActions()
-	}
-	if HasWeapon(main type=two_handed)
-	{
-		if InCombat(no) FuryTitansGripPrecombatActions()
-		FuryTitansGripDefaultActions()
-	}
-}
-
-AddIcon specialization=fury help=aoe checkbox=opt_warrior_fury_aoe
-{
-	if HasWeapon(main type=one_handed)
-	{
-		if InCombat(no) FurySingleMindedFuryPrecombatActions()
-		FurySingleMindedFuryDefaultActions()
-	}
-	if HasWeapon(main type=two_handed)
-	{
-		if InCombat(no) FuryTitansGripPrecombatActions()
-		FuryTitansGripDefaultActions()
-	}
-}
-
-AddIcon specialization=fury help=cd enemies=1 checkbox=!opt_warrior_fury_aoe
-{
-	if HasWeapon(main type=one_handed)
-	{
-		if InCombat(no) FurySingleMindedFuryPrecombatCdActions()
-		FurySingleMindedFuryDefaultCdActions()
-	}
-	if HasWeapon(main type=two_handed)
-	{
-		if InCombat(no) FuryTitansGripPrecombatCdActions()
-		FuryTitansGripDefaultCdActions()
-	}
-}
-
-AddIcon specialization=fury help=cd checkbox=opt_warrior_fury_aoe
-{
-	if HasWeapon(main type=one_handed)
-	{
-		if InCombat(no) FurySingleMindedFuryPrecombatCdActions()
-		FurySingleMindedFuryDefaultCdActions()
-	}
-	if HasWeapon(main type=two_handed)
-	{
-		if InCombat(no) FuryTitansGripPrecombatCdActions()
-		FuryTitansGripDefaultCdActions()
-	}
-}
-
 ###
 ### Protection
 ###
@@ -1408,6 +1282,144 @@ AddFunction ProtectionGladiatorSingleShortCdActions
 }

 AddFunction ProtectionGladiatorSingleCdActions {}
+]]
+	OvaleScripts:RegisterScript("WARRIOR", name, desc, code, "include")
+end
+
+do
+	local name = "Ovale"	-- The default script.
+	local desc = "[6.0] Ovale: Arms, Fury, Protection"
+	local code = [[
+# Ovale warrior script based on SimulationCraft.
+
+# Warrior rotation functions.
+Include(ovale_warrior)
+
+### Arms icons.
+AddCheckBox(opt_warrior_arms_aoe L(AOE) specialization=arms default)
+
+AddIcon specialization=arms help=shortcd enemies=1 checkbox=!opt_warrior_arms_aoe
+{
+	if InCombat(no) ArmsPrecombatShortCdActions()
+	ArmsDefaultShortCdActions()
+}
+
+AddIcon specialization=arms help=shortcd checkbox=opt_warrior_arms_aoe
+{
+	if InCombat(no) ArmsPrecombatShortCdActions()
+	ArmsDefaultShortCdActions()
+}
+
+AddIcon specialization=arms help=main enemies=1
+{
+	if InCombat(no) ArmsPrecombatActions()
+	ArmsDefaultActions()
+}
+
+AddIcon specialization=arms help=aoe checkbox=opt_warrior_arms_aoe
+{
+	if InCombat(no) ArmsPrecombatActions()
+	ArmsDefaultActions()
+}
+
+AddIcon specialization=arms help=cd enemies=1 checkbox=!opt_warrior_arms_aoe
+{
+	if InCombat(no) ArmsPrecombatCdActions()
+	ArmsDefaultCdActions()
+}
+
+AddIcon specialization=arms help=cd checkbox=opt_warrior_arms_aoe
+{
+	if InCombat(no) ArmsPrecombatCdActions()
+	ArmsDefaultCdActions()
+}
+
+### Fury icons.
+AddCheckBox(opt_warrior_fury_aoe L(AOE) specialization=fury default)
+
+AddIcon specialization=fury help=shortcd enemies=1 checkbox=!opt_warrior_fury_aoe
+{
+	if HasWeapon(main type=one_handed)
+	{
+		if InCombat(no) FurySingleMindedFuryPrecombatShortCdActions()
+		FurySingleMindedFuryDefaultShortCdActions()
+	}
+	if HasWeapon(main type=two_handed)
+	{
+		if InCombat(no) FuryTitansGripPrecombatShortCdActions()
+		FuryTitansGripDefaultShortCdActions()
+	}
+}
+
+AddIcon specialization=fury help=shortcd checkbox=opt_warrior_fury_aoe
+{
+	if HasWeapon(main type=one_handed)
+	{
+		if InCombat(no) FurySingleMindedFuryPrecombatShortCdActions()
+		FurySingleMindedFuryDefaultShortCdActions()
+	}
+	if HasWeapon(main type=two_handed)
+	{
+		if InCombat(no) FuryTitansGripPrecombatShortCdActions()
+		FuryTitansGripDefaultShortCdActions()
+	}
+}
+
+AddIcon specialization=fury help=main enemies=1
+{
+	if HasWeapon(main type=one_handed)
+	{
+		if InCombat(no) FurySingleMindedFuryPrecombatActions()
+		FurySingleMindedFuryDefaultActions()
+	}
+	if HasWeapon(main type=two_handed)
+	{
+		if InCombat(no) FuryTitansGripPrecombatActions()
+		FuryTitansGripDefaultActions()
+	}
+}
+
+AddIcon specialization=fury help=aoe checkbox=opt_warrior_fury_aoe
+{
+	if HasWeapon(main type=one_handed)
+	{
+		if InCombat(no) FurySingleMindedFuryPrecombatActions()
+		FurySingleMindedFuryDefaultActions()
+	}
+	if HasWeapon(main type=two_handed)
+	{
+		if InCombat(no) FuryTitansGripPrecombatActions()
+		FuryTitansGripDefaultActions()
+	}
+}
+
+AddIcon specialization=fury help=cd enemies=1 checkbox=!opt_warrior_fury_aoe
+{
+	if HasWeapon(main type=one_handed)
+	{
+		if InCombat(no) FurySingleMindedFuryPrecombatCdActions()
+		FurySingleMindedFuryDefaultCdActions()
+	}
+	if HasWeapon(main type=two_handed)
+	{
+		if InCombat(no) FuryTitansGripPrecombatCdActions()
+		FuryTitansGripDefaultCdActions()
+	}
+}
+
+AddIcon specialization=fury help=cd checkbox=opt_warrior_fury_aoe
+{
+	if HasWeapon(main type=one_handed)
+	{
+		if InCombat(no) FurySingleMindedFuryPrecombatCdActions()
+		FurySingleMindedFuryDefaultCdActions()
+	}
+	if HasWeapon(main type=two_handed)
+	{
+		if InCombat(no) FuryTitansGripPrecombatCdActions()
+		FuryTitansGripDefaultCdActions()
+	}
+}

 ### Protection icons.
 AddCheckBox(opt_warrior_protection_aoe L(AOE) specialization=protection default)
@@ -1496,8 +1508,5 @@ AddIcon specialization=protection help=cd checkbox=opt_warrior_protection_aoe
 	}
 }
 ]]
-
-	OvaleScripts:RegisterScript("WARRIOR", name, desc, code, "include")
-	-- Register as the default Ovale script.
-	OvaleScripts:RegisterScript("WARRIOR", "Ovale", desc, code, "script")
+	OvaleScripts:RegisterScript("WARRIOR", name, desc, code, "script")
 end