b96e1ce8b2
GuideTable.lua:88 used the Lua 5.0 global getn() to size the color- substitution table opentext. In Lua 5.1 (WoW 3.3.5) the bare getn is gone and table.getn is deprecated, so this would have crashed with 'attempt to call global getn (a nil value)' before any guide could render. Replaced with the # length operator. Also record the fix and the upstream README cleanup under 'Files we touched' in README-CoA.md.
688 lines
24 KiB
Lua
688 lines
24 KiB
Lua
--[[--------------------------------------------------
|
||
----- VanillaGuide -----
|
||
------------------
|
||
GuideTable.lua
|
||
Authors: mrmr
|
||
Version: 1.04.2
|
||
------------------------------------------------------
|
||
Description:
|
||
Object Handling the Guides
|
||
1.00
|
||
-- Initial Ace2 release
|
||
1.99a
|
||
-- Ally addition starter version
|
||
1.03
|
||
-- No Changes. Just adjusting "version".
|
||
1.99x for a beta release was a weird choise.
|
||
1.04.1
|
||
-- This will be the place where we "prepare" the guides,
|
||
upon player login.
|
||
We'll include all the needed guides here and we'll provide
|
||
function to retrive informations too
|
||
1.04.2
|
||
-- no changes in here for this revision
|
||
------------------------------------------------------
|
||
Connection:
|
||
--]]--------------------------------------------------
|
||
|
||
--local VGuide = VGuide
|
||
Dv(" VGuide GuideTable.lua Start")
|
||
|
||
objGuideTable = {}
|
||
objGuideTable.__index = objGuideTable
|
||
|
||
function objGuideTable:new(oSettings)
|
||
local obj = {}
|
||
setmetatable(obj, self)
|
||
|
||
local function TablesMerge(t1, t2)
|
||
for k, v in pairs(t2) do
|
||
if (type(v) == "table") and (type(t1[k] or false) == "table") then
|
||
TablesMerge(t1[k], t2[k])
|
||
else
|
||
t1[k] = v
|
||
end
|
||
end
|
||
return t1
|
||
end
|
||
|
||
local function ColorizeTable(t1)
|
||
for k1, _ in pairs(t1) do
|
||
if type(t1[k1].items) == "table" then
|
||
for k2, v2 in pairs(t1[k1].items) do
|
||
if v2 then
|
||
local opentext = {
|
||
[1] = {
|
||
["find"] = "#ACCEPT",
|
||
["replace"] = "|c0000ffff"
|
||
},
|
||
[2] = {
|
||
["find"] = "#DOQUEST",
|
||
["replace"] = "|c000079d2"
|
||
},
|
||
[3] = {
|
||
["find"] = "#TURNIN",
|
||
["replace"] = "|c0000ff00"
|
||
},
|
||
[4] = {
|
||
["find"] = "#NPC",
|
||
["replace"] = "|c00ff00ff"
|
||
},
|
||
[5] = {
|
||
["find"] = "#COORDS",
|
||
["replace"] = "|c00ffff00"
|
||
},
|
||
[6] = {
|
||
["find"] = "#VIDEO",
|
||
["replace"] = "|c00ff0000"
|
||
},
|
||
[7] = {
|
||
["find"] = "#PICTURE",
|
||
["replace"] = "|c00fca742"
|
||
},
|
||
[8] = {
|
||
["find"] = "#HUNTER",
|
||
["replace"] = "|c00a80000"
|
||
},
|
||
}
|
||
for n = 1, #opentext do
|
||
t1[k1].items[k2].str = gsub(t1[k1].items[k2].str, opentext[n]["find"],opentext[n]["replace"])
|
||
end
|
||
t1[k1].items[k2].str = gsub(t1[k1].items[k2].str, "#","|r")
|
||
end
|
||
end
|
||
end
|
||
end
|
||
return t1
|
||
end
|
||
|
||
obj.TableDDM = {
|
||
lvl1 = {
|
||
{ "v", "Introduction", id = 1},
|
||
{ "s", "Starting Zones" },
|
||
{ "s", "Later Leveling" },
|
||
{ "s", "Profession Guides" },
|
||
},
|
||
lvl2 = {
|
||
["Later Leveling"] = {
|
||
{ "s", "12-20" },
|
||
{ "s", "20-30" },
|
||
{ "s", "30-40" },
|
||
{ "s", "40-50" },
|
||
{ "s", "50-60" },
|
||
},
|
||
["Profession Guides"] = {
|
||
{ "v", "Alchemy", id = nil },
|
||
{ "v", "Blacksmithing", id = nil },
|
||
{ "v", "[H] Cooking", id = nil },
|
||
{ "v", "[A] Cooking", id = nil },
|
||
{ "v", "Enchanting", id = nil },
|
||
{ "v", "Engineering", id = nil },
|
||
{ "v", "Leatherworking", id = nil },
|
||
{ "v", "Tailoring", id = nil }
|
||
},
|
||
["[H] Starting Zones"] = {
|
||
{ "s", "Orcs & Trolls" },
|
||
{ "s", "Taurens" },
|
||
{ "s", "Undeads" },
|
||
},
|
||
["[A] Starting Zones"] = {
|
||
{ "s", "Humans" },
|
||
{ "s", "Dwarves & Gnomes" },
|
||
{ "s", "Night Elves" },
|
||
},
|
||
},
|
||
lvl3 = {
|
||
["Orcs & Trolls"] = {
|
||
{ "v", "1-6 Durotar", id = nil },
|
||
{ "v", "6-9 Durotar", id = nil },
|
||
{ "v", "9-12 Durotar", id = nil },
|
||
},
|
||
["Taurens"] = {
|
||
{ "v", "1-6 Mulgore", id = nil },
|
||
{ "v", "6-10 Mulgore", id = nil },
|
||
{ "v", "10-12 Mulgore", id = nil },
|
||
},
|
||
["Undeads"] = {
|
||
{ "v", "1-6 DeathKnell", id = nil },
|
||
{ "v", "6-10 Tirisfal Glades", id = nil },
|
||
{ "v", "10-12 Tirisfal Glades", id = nil },
|
||
},
|
||
["[H] 12-20"] = {
|
||
{ "v", "12-15 Barrens", id = nil },
|
||
{ "v", "15-16 Stonetalon Mountains", id = nil },
|
||
{ "v", "16-20 Barrens (part 1)", id = nil },
|
||
{ "v", "16-20 Barrens (part 2)", id = nil },
|
||
},
|
||
["[H] 20-30"] = {
|
||
{ "v", "20-21 Stonetalon Mountains", id = nil },
|
||
{ "v", "21-21 Ashenvale", id = nil },
|
||
{ "v", "22-23 Southern Barrens", id = nil },
|
||
{ "v", "23-25 Stonetalon Mountains", id = nil },
|
||
{ "v", "25-25 Southern Barrens", id = nil },
|
||
{ "v", "25-26 Thousand Needles", id = nil },
|
||
{ "v", "26-27 Ashenvale", id = nil },
|
||
{ "v", "27-27 Stonetalon Mountains", id = nil },
|
||
{ "v", "27-29 Thousand Needles", id = nil },
|
||
{ "v", "29-30 Hillsbrad Foothills", id = nil },
|
||
},
|
||
["[H] 30-40"] = {
|
||
{ "v", "30-30 Alterac Mountains", id = nil },
|
||
{ "v", "30-30 Arathi Highlands", id = nil },
|
||
{ "v", "30-31 Stranglethorn Vale", id = nil },
|
||
{ "v", "31-32 TN (Shimmering Flats)", id = nil },
|
||
{ "v", "32-34 Desolace", id = nil },
|
||
{ "v", "34-35 Stranglethorn Vale", id = nil },
|
||
{ "v", "35-37 Arathi Highlands", id = nil },
|
||
{ "v", "37-37 Alterac Mountains", id = nil },
|
||
{ "v", "37-37 Thousand Needles", id = nil },
|
||
{ "v", "37-38 Dustwallow Marsh", id = nil },
|
||
{ "v", "38-40 Stranglethorn Vale", id = nil },
|
||
},
|
||
["[H] 40-50"] = {
|
||
{ "v", "40-41 Badlands", id = nil },
|
||
{ "v", "41-42 Swamp of Sorrows", id = nil },
|
||
{ "v", "42-43 Stranglethorn Vale", id = nil },
|
||
{ "v", "43-43 Desolace", id = nil },
|
||
{ "v", "43-43 Dustwallow Marsh", id = nil },
|
||
{ "v", "43-44 Tanaris", id = nil },
|
||
{ "v", "44-46 Feralas", id = nil },
|
||
{ "v", "46-46 Azshara", id = nil },
|
||
{ "v", "46-47 Hinterlands", id = nil },
|
||
{ "v", "47-47 Stranglethorn Vale", id = nil },
|
||
{ "v", "47-48 Searing Gorge", id = nil },
|
||
{ "v", "48-48 Swamp of Sorrows", id = nil },
|
||
{ "v", "48-49 Ferelas", id = nil },
|
||
{ "v", "49-50 Tanaris", id = nil },
|
||
},
|
||
["[H] 50-60"] = {
|
||
{ "v", "50-50 Azshara", id = nil },
|
||
{ "v", "50-50 Hinterlands", id = nil },
|
||
{ "v", "50-51 Blasted Lands", id = nil },
|
||
{ "v", "51-52 Un'Goro Crater", id = nil },
|
||
{ "v", "52-53 Burning Steppes", id = nil },
|
||
{ "v", "53-54 Azshara", id = nil },
|
||
{ "v", "54-54 Felwood", id = nil },
|
||
{ "v", "54-55 Winterspring", id = nil },
|
||
{ "v", "55-55 Felwood", id = nil },
|
||
{ "v", "55-55 Silithus", id = nil },
|
||
{ "v", "55-56 Western Plaguelands", id = nil },
|
||
{ "v", "56-57 Eastern Plaguelands", id = nil },
|
||
{ "v", "57-58 Western Plaguelands", id = nil },
|
||
{ "v", "58-60 Winterspring", id = nil },
|
||
},
|
||
|
||
["Humans"] = {
|
||
{ "v", "1-10 Elwynn Forest", id = nil },
|
||
{ "v", "10-12 Westfall and Lock Modan", id = nil },
|
||
},
|
||
["Dwarves & Gnomes"] = {
|
||
{ "v", "1-6 Cold Ridge Valley", id = nil },
|
||
{ "v", "6-12 Dun Morogh", id = nil },
|
||
},
|
||
["Night Elves"] = {
|
||
{ "v", "1-6 Teldrassil", id = nil },
|
||
{ "v", "6-12 Teldrassil", id = nil },
|
||
},
|
||
["[A] 12-20"] = {
|
||
{ "v", "12-14 Darkshore", id = nil },
|
||
{ "v", "14-17 Darkshore", id = nil },
|
||
{ "v", "17-18 Loch Modan", id = nil },
|
||
{ "v", "18-20 Redredge Mountains", id = nil },
|
||
},
|
||
["[A] 20-30"] = {
|
||
{ "v", "20-21 Darkshore", id = nil },
|
||
{ "v", "21-22 Ashenvale", id = nil },
|
||
{ "v", "22-23 Stonetalon Mountains", id = nil },
|
||
{ "v", "23-24 Darkshore", id = nil },
|
||
{ "v", "24-25 Ashenvale", id = nil },
|
||
{ "v", "25-27 Wetlands", id = nil },
|
||
{ "v", "27-28 Lakeshire", id = nil },
|
||
{ "v", "28-29 Duskwood", id = nil },
|
||
{ "v", "29-30 Ashenvale", id = nil },
|
||
{ "v", "30-30 Wetlands", id = nil },
|
||
},
|
||
["[A] 30-40"] = {
|
||
{ "v", "30-31 Hillsbrad Foothills", id = nil },
|
||
{ "v", "31-31 Alterac Mountains", id = nil },
|
||
{ "v", "31-32 Arathi Highlands", id = nil },
|
||
{ "v", "32-32 Stranglethorn Vale", id = nil },
|
||
{ "v", "32-33 Thousand Needles (Shimmering Flats)", id = nil },
|
||
{ "v", "33-33 Stonetalon Mountains", id = nil },
|
||
{ "v", "33-35 Desolace", id = nil },
|
||
{ "v", "35-36 Stranglethorn Vale", id = nil },
|
||
{ "v", "36-37 Alterac Mountains", id = nil },
|
||
{ "v", "37-38 Arathi Highlands", id = nil },
|
||
{ "v", "38-38 Dustwallow Marsh", id = nil },
|
||
{ "v", "38-40 Stranglethorn Vale", id = nil },
|
||
},
|
||
["[A] 40-50"] = {
|
||
{ "v", "40-41 Badlands", id = nil },
|
||
{ "v", "41-41 Swamp of Sorrows", id = nil },
|
||
{ "v", "41-42 Desolace", id = nil },
|
||
{ "v", "42-43 Stranglethron Vale", id = nil },
|
||
{ "v", "43-43 Tanaris", id = nil },
|
||
{ "v", "43-45 Feralas", id = nil },
|
||
{ "v", "45-46 Uldaman", id = nil },
|
||
{ "v", "46-47 The Hinterlands", id = nil },
|
||
{ "v", "47-47 Feralas", id = nil },
|
||
{ "v", "47-48 Tanaris", id = nil },
|
||
{ "v", "48-48 The Hinterlands", id = nil },
|
||
{ "v", "48-49 Stranglethorn Vale", id = nil },
|
||
{ "v", "49-50 Blasted Lands", id = nil },
|
||
},
|
||
["[A] 50-60"] = {
|
||
{ "v", "50-51 Searing Gorge", id = nil },
|
||
{ "v", "51-52 Un’Goro Crater", id = nil },
|
||
{ "v", "52-53 Azshara", id = nil },
|
||
{ "v", "53-54 Felwood", id = nil },
|
||
{ "v", "54-54 Tanaris", id = nil },
|
||
{ "v", "54-54 Felwood", id = nil },
|
||
{ "v", "54-55 Winterspring", id = nil },
|
||
{ "v", "55-56 Burning Steppes", id = nil },
|
||
{ "v", "56-56 Tanaris", id = nil },
|
||
{ "v", "56-56 Silithus", id = nil },
|
||
{ "v", "56-57 Western Plaguelands", id = nil },
|
||
{ "v", "57-58 Eastern Plaguelands", id = nil },
|
||
{ "v", "58-58 Western Plaguelands", id = nil },
|
||
{ "v", "58-58 Eastern Plaguelands", id = nil },
|
||
{ "v", "58-59 Western Plaguelands", id = nil },
|
||
{ "v", "59-60 Winterspring", id = nil },
|
||
},
|
||
},
|
||
}
|
||
|
||
local tCharInfo = oSettings:GetSettingsCharInfo()
|
||
|
||
obj.Guide = {}
|
||
obj.NoGuide = {}
|
||
obj.GuideCount = 0
|
||
obj.NoGuideCount = 0
|
||
obj.Faction = tCharInfo.Faction
|
||
obj.Race = tCharInfo.Race
|
||
tCharInfo = nil
|
||
|
||
-- Guides Praparation methods
|
||
obj.PrepareGuidesTableHorde = function(self, tRace)
|
||
obj.Guide = TablesMerge(obj.Guide, ColorizeTable(Table_001_Introduction))
|
||
if tRace == "Tauren" then
|
||
obj.Guide = TablesMerge(obj.Guide, ColorizeTable(Table_002_Mulgore))
|
||
elseif tRace == "Undead" then
|
||
obj.Guide = TablesMerge(obj.Guide, ColorizeTable(Table_002_TirisfalGlades))
|
||
else
|
||
obj.Guide = TablesMerge(obj.Guide, ColorizeTable(Table_002_Durotar))
|
||
end
|
||
obj.Guide = TablesMerge(obj.Guide, ColorizeTable(Table_003_Horde_12to20))
|
||
obj.Guide = TablesMerge(obj.Guide, ColorizeTable(Table_003_Horde_20to30))
|
||
obj.Guide = TablesMerge(obj.Guide, ColorizeTable(Table_003_Horde_30to40))
|
||
obj.Guide = TablesMerge(obj.Guide, ColorizeTable(Table_003_Horde_40to50))
|
||
obj.Guide = TablesMerge(obj.Guide, ColorizeTable(Table_003_Horde_50to60))
|
||
obj.Guide = TablesMerge(obj.Guide, ColorizeTable(Table_004_Professions))
|
||
end
|
||
|
||
obj.PrepareNoGuidesTableHorde = function(self, tRace)
|
||
-- we normilize here, cause "indexes" will clash otherwise
|
||
if tRace == "Tauren" then
|
||
obj.NoGuide = TablesMerge(obj.NoGuide, ColorizeTable(Table_002_TirisfalGlades))
|
||
obj:NormalizeGuide(obj.NoGuide, nil)
|
||
obj.NoGuide = TablesMerge(obj.NoGuide, ColorizeTable(Table_002_Durotar))
|
||
elseif tRace == "Undead" then
|
||
obj.NoGuide = TablesMerge(obj.NoGuide, ColorizeTable(Table_002_Durotar))
|
||
obj:NormalizeGuide(obj.NoGuide, nil)
|
||
obj.NoGuide = TablesMerge(obj.NoGuide, ColorizeTable(Table_002_Mulgore))
|
||
else
|
||
|
||
obj.NoGuide = TablesMerge(obj.NoGuide, ColorizeTable(Table_002_Mulgore))
|
||
obj:NormalizeGuide(obj.NoGuide, nil)
|
||
obj.NoGuide = TablesMerge(obj.NoGuide, ColorizeTable(Table_002_TirisfalGlades))
|
||
end
|
||
end
|
||
|
||
obj.PrepareGuidesTableAlliance = function(self, tRace)
|
||
obj.Guide = TablesMerge(obj.Guide, ColorizeTable(Table_001_Introduction))
|
||
if tRace == "Human" then
|
||
obj.Guide = TablesMerge(obj.Guide, ColorizeTable(Table_002_ElwynnForest))
|
||
elseif tRace == "Night Elf" then
|
||
obj.Guide = TablesMerge(obj.Guide, ColorizeTable(Table_002_Teldrassil))
|
||
else
|
||
obj.Guide = TablesMerge(obj.Guide, ColorizeTable(Table_002_DunMorogh))
|
||
end
|
||
obj.Guide = TablesMerge(obj.Guide, ColorizeTable(Table_003_Alliance_12to20))
|
||
obj.Guide = TablesMerge(obj.Guide, ColorizeTable(Table_003_Alliance_20to30))
|
||
obj.Guide = TablesMerge(obj.Guide, ColorizeTable(Table_003_Alliance_30to40))
|
||
obj.Guide = TablesMerge(obj.Guide, ColorizeTable(Table_003_Alliance_40to50))
|
||
obj.Guide = TablesMerge(obj.Guide, ColorizeTable(Table_003_Alliance_50to60))
|
||
obj.Guide = TablesMerge(obj.Guide, ColorizeTable(Table_004_Professions))
|
||
end
|
||
|
||
obj.PrepareNoGuidesTableAlliance = function(self, tRace)
|
||
-- we normilize here, cause "indexes" will clash otherwise
|
||
if tRace == "Human" then
|
||
obj.NoGuide = TablesMerge(obj.NoGuide, ColorizeTable(Table_002_DunMorogh))
|
||
obj:NormalizeGuide(obj.NoGuide, nil)
|
||
obj.NoGuide = TablesMerge(obj.NoGuide, ColorizeTable(Table_002_Teldrassil))
|
||
elseif tRace == "Night Elf" then
|
||
obj.NoGuide = TablesMerge(obj.NoGuide, ColorizeTable(Table_002_ElwynnForest))
|
||
obj:NormalizeGuide(obj.NoGuide, nil)
|
||
obj.NoGuide = TablesMerge(obj.NoGuide, ColorizeTable(Table_002_DunMorogh))
|
||
else
|
||
obj.NoGuide = TablesMerge(obj.NoGuide, ColorizeTable(Table_002_Teldrassil))
|
||
obj:NormalizeGuide(obj.NoGuide, nil)
|
||
obj.NoGuide = TablesMerge(obj.NoGuide, ColorizeTable(Table_002_ElwynnForest))
|
||
end
|
||
end
|
||
|
||
obj.NormalizeGuide = function(self, t, offset)
|
||
if not offset then offset = 0 end
|
||
|
||
-- the index_table will store all the guideIDs, as they are readen from file.
|
||
-- then, once done, those IDs are sorted (from lower to higer)
|
||
local index_table = {}
|
||
for i,_ in pairs(t) do
|
||
table.insert(index_table, i)
|
||
end
|
||
table.sort(index_table)
|
||
|
||
-- this for-cicle will sort the tables, so we'll have them listed from lower to higer
|
||
-- Every ID will be converted from its original value to a new incremental index
|
||
-- starting from 1 (Introduction)
|
||
local c = 0 + offset
|
||
for _,v in ipairs(index_table) do
|
||
c = c + 1
|
||
t[c] = t[v]
|
||
if v ~= c then
|
||
t[v] = nil
|
||
end
|
||
end
|
||
|
||
return t, c - offset
|
||
end
|
||
|
||
-- DropDownMenu Preparation methods
|
||
local function xSearchID(tDDMsection)
|
||
for _,v1 in ipairs(tDDMsection) do
|
||
for k,v2 in ipairs(obj.Guide) do
|
||
-- we use the "plain" method here, as in those "title" string
|
||
-- we could find special characters like "-" and "["
|
||
if string.find(v2.title, v1[2], 1, true) then
|
||
v1.id = k
|
||
end
|
||
end
|
||
end
|
||
end
|
||
|
||
obj.DefineDDMProfessionsSubMenu = function(self)
|
||
xSearchID(obj.TableDDM.lvl2["Profession Guides"])
|
||
end
|
||
|
||
obj.DefineDDMStartingZonesSubMenu = function(self, tFaction)
|
||
if tFaction == "Horde" then
|
||
xSearchID(obj.TableDDM.lvl3["Orcs & Trolls"])
|
||
xSearchID(obj.TableDDM.lvl3["Taurens"])
|
||
xSearchID(obj.TableDDM.lvl3["Undeads"])
|
||
else
|
||
xSearchID(obj.TableDDM.lvl3["Humans"])
|
||
xSearchID(obj.TableDDM.lvl3["Night Elves"])
|
||
xSearchID(obj.TableDDM.lvl3["Dwarves & Gnomes"])
|
||
end
|
||
end
|
||
|
||
obj.DefineDDMLaterLevelingSubMenu = function(self, tFaction)
|
||
if tFaction == "Horde" then
|
||
xSearchID(obj.TableDDM.lvl3["[H] 12-20"])
|
||
xSearchID(obj.TableDDM.lvl3["[H] 20-30"])
|
||
xSearchID(obj.TableDDM.lvl3["[H] 30-40"])
|
||
xSearchID(obj.TableDDM.lvl3["[H] 40-50"])
|
||
xSearchID(obj.TableDDM.lvl3["[H] 50-60"])
|
||
else
|
||
xSearchID(obj.TableDDM.lvl3["[A] 12-20"])
|
||
xSearchID(obj.TableDDM.lvl3["[A] 20-30"])
|
||
xSearchID(obj.TableDDM.lvl3["[A] 30-40"])
|
||
xSearchID(obj.TableDDM.lvl3["[A] 40-50"])
|
||
xSearchID(obj.TableDDM.lvl3["[A] 50-60"])
|
||
end
|
||
end
|
||
|
||
-- Clear Tables read from .toc
|
||
obj.ClearInitialTablesContent = function(self)
|
||
Table_001_Introduction = nil
|
||
Table_002_Durotar = nil
|
||
Table_002_Mulgore = nil
|
||
Table_002_TirisfalGlades = nil
|
||
Table_002_DunMorogh = nil
|
||
Table_002_Teldrassil = nil
|
||
Table_002_ElwynnForest = nil
|
||
Table_003_Horde_12to20 = nil
|
||
Table_003_Horde_20to30 = nil
|
||
Table_003_Horde_30to40 = nil
|
||
Table_003_Horde_40to50 = nil
|
||
Table_003_Horde_50to60 = nil
|
||
Table_003_Alliance_12to20 = nil
|
||
Table_003_Alliance_20to30 = nil
|
||
Table_003_Alliance_30to40 = nil
|
||
Table_003_Alliance_40to50 = nil
|
||
Table_003_Alliance_50to60 = nil
|
||
Table_004_Professions = nil
|
||
end
|
||
|
||
-- Query object methods
|
||
obj.GetGuide = function(self, nGuideID)
|
||
if nGuideID > obj.GuideCount then
|
||
Dv(" -- Guide not present! ID exceed the GuideCount value!")
|
||
elseif nGuideID < 1 then
|
||
Dv(" -- negative or zero ID! Are you joking?")
|
||
else
|
||
return obj.Guide[nGuideID]
|
||
end
|
||
end
|
||
|
||
obj.GetTableDDM = function(self)
|
||
return obj.TableDDM
|
||
end
|
||
|
||
-- Constructor Main
|
||
if obj.Faction == "Horde" then
|
||
obj:PrepareGuidesTableHorde(obj.Race)
|
||
obj:PrepareNoGuidesTableHorde(obj.Race)
|
||
else
|
||
obj:PrepareGuidesTableAlliance(obj.Race)
|
||
obj:PrepareNoGuidesTableAlliance(obj.Race)
|
||
end
|
||
|
||
-- we use a HUGE offset here, so we know those NoGuide will end up at the end!
|
||
obj.NoGuide, obj.NoGuideCount = obj:NormalizeGuide(obj.NoGuide, 100500)
|
||
obj.Guide = TablesMerge(obj.Guide, obj.NoGuide)
|
||
|
||
obj.Guide, obj.GuideCount = obj:NormalizeGuide(obj.Guide, nil)
|
||
|
||
obj:DefineDDMProfessionsSubMenu()
|
||
obj:DefineDDMStartingZonesSubMenu(obj.Faction)
|
||
obj:DefineDDMLaterLevelingSubMenu(obj.Faction)
|
||
|
||
obj:ClearInitialTablesContent()
|
||
|
||
return obj
|
||
end
|
||
|
||
Dv(" VGuide GuideTable.lua Start")
|
||
--return VGuide
|
||
|
||
--[[
|
||
do
|
||
-----------------------------------------------------------------
|
||
Table_001_Introduction = {
|
||
[0001] = { title = "Introduction" },
|
||
}
|
||
-----------------------------------------------------------------
|
||
Table_002_Durotar = {
|
||
[0106] = { title = "1-6 Durotar" },
|
||
[0609] = { title = "6-9 Durotar" },
|
||
[0912] = { title = "9-12 Durotar" },
|
||
}
|
||
Table_002_Mulgore = {
|
||
[0106] = { title = "1-6 Mulgore" },
|
||
[0610] = { title = "6-10 Mulgore" },
|
||
[1012] = { title = "10-12 Mulgore" },
|
||
}
|
||
Table_002_TirisfalGlades = {
|
||
[0106] = { title = "1-6 DeathKnell (Tirisfal Glades)" },
|
||
[0610] = { title = "6-10 Tirisfal Glades" },
|
||
[1012] = { title = "10-12 Tirisfal Glades" },
|
||
}
|
||
-----------------------------------------------------------------
|
||
Table_002_DunMorogh = {
|
||
[0106] = { title = "1-6 Cold Ridge Valley" },
|
||
[0612] = { title = "6-12 Dun Morogh" },
|
||
}
|
||
Table_002_Teldrassil = {
|
||
[0106] = { title = "1-6 Teldrassil" },
|
||
[0612] = { title = "6-12 Teldrassil" },
|
||
}
|
||
Table_002_ElwynnForest = {
|
||
[0110] = { title = "1-10 Elwynn Forest" },
|
||
[1012] = { title = "10-12 Westfall and Lock Modan" },
|
||
}
|
||
-----------------------------------------------------------------
|
||
Table_003_Horde_12to20 = {
|
||
[1215] = { title = "12-15 Barrens" },
|
||
[1516] = { title = "15-16 Stonetalon Mountains" },
|
||
[1618] = { title = "16-20 Barrens Part 1" },
|
||
[1820] = { title = "16-20 Barrens Part 2" },
|
||
}
|
||
Table_003_Horde_20to30 = {
|
||
[2021] = { title = "20-21 Stonetalon Mountains" },
|
||
[2121] = { title = "21-21 Ashenvale" },
|
||
[2223] = { title = "22-23 Southern Barrens" },
|
||
[2325] = { title = "23-25 Stonetalon Mountains" },
|
||
[2525] = { title = "25-25 Southern Barrens" },
|
||
[2526] = { title = "25-26 Thousand Needles" },
|
||
[2627] = { title = "26-27 Ashenvale" },
|
||
[2727] = { title = "27-27 Stonetalon Mountains" },
|
||
[2729] = { title = "27-29 Thousand Needles" },
|
||
[2930] = { title = "29-30 Hillsbrad Foothills" },
|
||
}
|
||
Table_003_Horde_30to40 = {
|
||
[3029] = { title = "30-30 Alterac Mountains" },
|
||
[3030] = { title = "30-30 Arathi Highlands" },
|
||
[3031] = { title = "30-31 Stranglethorn Vale" },
|
||
[3132] = { title = "31-32 TN (Shimmering Flats)" },
|
||
[3234] = { title = "32-34 Desolace" },
|
||
[3435] = { title = "34-35 Stranglethorn Vale" },
|
||
[3537] = { title = "35-37 Arathi Highlands" },
|
||
[3736] = { title = "37-37 Alterac Mountains" },
|
||
[3737] = { title = "37-37 Thousand Needles" },
|
||
[3738] = { title = "37-38 Dustwallow Marsh" },
|
||
[3840] = { title = "38-40 Stranglethorn Vale" },
|
||
}
|
||
Table_003_Horde_40to50 = {
|
||
[4041] = { title = "40-41 Badlands" },
|
||
[4142] = { title = "41-42 Swamp of Sorrows" },
|
||
[4243] = { title = "42-43 Stranglethorn Vale" },
|
||
[4342] = { title = "43-43 Desolace" },
|
||
[4343] = { title = "43-43 Dustwallow Marsh" },
|
||
[4344] = { title = "43-44 Tanaris" },
|
||
[4446] = { title = "44-46 Feralas" },
|
||
[4646] = { title = "46-46 Azshara" },
|
||
[4647] = { title = "46-47 Hinterlands" },
|
||
[4747] = { title = "47-47 Stranglethorn Vale" },
|
||
[4748] = { title = "47-48 Searing Gorge" },
|
||
[4848] = { title = "48-48 Swamp of Sorrows" },
|
||
[4849] = { title = "48-49 Feralas" },
|
||
[4950] = { title = "49-50 Tanaris" },
|
||
}
|
||
Table_003_Horde_50to60 = {
|
||
[5049] = { title = "50-50 Azshara" },
|
||
[5050] = { title = "50-50 Hinterlands" },
|
||
[5051] = { title = "50-51 Blasted Lands" },
|
||
[5152] = { title = "51-52 Un'Goro Crater" },
|
||
[5253] = { title = "52-53 Burning Steppes" },
|
||
[5354] = { title = "53-54 Azshara" },
|
||
[5454] = { title = "54-54 Felwood" },
|
||
[5455] = { title = "54-55 Winterspring" },
|
||
[5554] = { title = "55-55 Felwood" },
|
||
[5555] = { title = "55-55 Silithus" },
|
||
[5556] = { title = "55-56 Western Plaguelands" },
|
||
[5657] = { title = "56-57 Eastern Plaguelands" },
|
||
[5758] = { title = "57-58 Western Plaguelands" },
|
||
[5860] = { title = "58-60 Winterspring" },
|
||
}
|
||
-----------------------------------------------------------------
|
||
Table_003_Alliance_12to20 = {
|
||
[1214] = { title = "12-14 Darkshore" },
|
||
[1417] = { title = "14-17 Darkshore" },
|
||
[1718] = { title = "17-18 Loch Modan" },
|
||
[1820] = { title = "18-20 Redredge Mountains" },
|
||
}
|
||
Table_003_Alliance_20to30 = {
|
||
[2021] = { title = "20-21 Darkshore" },
|
||
[2122] = { title = "21-22 Ashenvale" },
|
||
[2223] = { title = "22-23 Stonetalon Mountains" },
|
||
[2324] = { title = "23-24 Darkshore" },
|
||
[2425] = { title = "24-25 Ashenvale" },
|
||
[2526] = { title = "25-27 Wetlands" },
|
||
[2728] = { title = "27-28 Lakeshire" },
|
||
[2829] = { title = "28-29 Duskwood" },
|
||
[2930] = { title = "29-30 Ashenvale" },
|
||
[3030] = { title = "30-30 Wetlands" },
|
||
}
|
||
Table_003_Alliance_30to40 = {
|
||
[3031] = { title = "30-31 Hillsbrad Foothills" },
|
||
[3131] = { title = "31-31 Alterac Mountains" },
|
||
[3132] = { title = "31-32 Arathi Highlands" },
|
||
[3232] = { title = "32-32 Stranglethorn Vale" },
|
||
[3233] = { title = "32-33 Thousand Needles (Shimmering Flats)" },
|
||
[3333] = { title = "33-33 Stonetalon Mountains" },
|
||
[3335] = { title = "33-35 Desolace" },
|
||
[3536] = { title = "35-36 Stranglethorn Vale" },
|
||
[3637] = { title = "36-37 Alterac Mountains" },
|
||
[3738] = { title = "37-38 Arathi Highlands" },
|
||
[3838] = { title = "38-38 Dustwallow Marsh", }
|
||
[3840] = { title = "38-40 Stranglethorn Vale" },
|
||
}
|
||
Table_003_Alliance_40to50 = {
|
||
[4041] = { title = "40-41 Badlands" },
|
||
[4141] = { title = "41-41 Swamp of Sorrows" },
|
||
[4142] = { title = "41-42 Desolace" },
|
||
[4243] = { title = "42-43 Stranglethron Vale" },
|
||
[4343] = { title = "43-43 Tanaris" },
|
||
[4345] = { title = "43-45 Feralas" },
|
||
[4546] = { title = "45-46 Uldaman" },
|
||
[4647] = { title = "46-47 The Hinterlands" },
|
||
[4747] = { title = "47-47 Feralas" },
|
||
[4748] = { title = "47-48 Tanaris" },
|
||
[4848] = { title = "48-48 The Hinterlands" },
|
||
[4849] = { title = "48-49 Stranglethorn Vale" },
|
||
[4950] = { title = "49-50 Blasted Lands" },
|
||
}
|
||
Table_003_Alliance_50to60 = {
|
||
[5051] = { title = "50-51 Searing Gorge" },
|
||
[5152] = { title = "51-52 Un’Goro Crater" },
|
||
[5253] = { title = "52-53 Azshara" },
|
||
[5354] = { title = "53-54 Felwood" },
|
||
[5453] = { title = "54-54 Tanaris" },
|
||
[5454] = { title = "54-54 Felwood" },
|
||
[5455] = { title = "54-55 Winterspring" },
|
||
[5556] = { title = "55-56 Burning Steppes" },
|
||
[5655] = { title = "56-56 Tanaris" },
|
||
[5656] = { title = "56-56 Silithus" },
|
||
[5657] = { title = "56-57 Western Plaguelands" },
|
||
[5758] = { title = "57-58 Eastern Plaguelands" },
|
||
[5857] = { title = "58-58 Western Plaguelands" },
|
||
[5858] = { title = "58-58 Eastern Plaguelands" },
|
||
[5859] = { title = "58-59 Western Plaguelands" },
|
||
[5960] = { title = "59-60 Winterspring" },
|
||
}
|
||
-----------------------------------------------------------------
|
||
Table_004_Professions = {
|
||
[7002] = { title = "1-300 Alchemy" },
|
||
[7003] = { title = "1-300 Blacksmithing" },
|
||
[7004] = { title = "1-300 Cooking (Horde)" },
|
||
[7005] = { title = "1-300 Cooking (Alliance)" },
|
||
[7006] = { title = "1-300 Enchanting" },
|
||
[7007] = { title = "1-300 Engineering" },
|
||
[7008] = { title = "1-300 Leatherworking" },
|
||
[7009] = { title = "1-300 Tailoring" },
|
||
}
|
||
end
|
||
]]
|