1
0
Bifurcation 0

Separated initialization timeslice out into its own file for readability. Function reachability has not yet been checked.

Cette révision appartient à :
Nathanial.C.Jones 2013-01-02 18:11:26 +00:00
Parent d0b8ba397e
révision faa5ef7aa7
3 fichiers modifiés avec 217 ajouts et 210 suppressions

Voir le fichier

@ -170,6 +170,7 @@ core.lua
#-upgrade.lua
pref.lua
vars.lua
init_timeslice.lua
main.lua
objective.lua

214
QuestHelper/init_timeslice.lua Fichier normal
Voir le fichier

@ -0,0 +1,214 @@
QuestHelper_File["init_timeslice.lua"] = "4.0.1.$svnversion$"
QuestHelper_Loadtime["init_timeslice.lua"] = GetTime()
local GetTime = QuestHelper_GetTime
function QH_Init_Timeslice()
QuestHelper_Loadtime["init3_start"] = GetTime()
QuestHelper.loading_main = QuestHelper.CreateLoadingCounter()
QuestHelper.loading_init3 = QuestHelper.loading_main:MakeSubcategory(0.3)
QuestHelper.loading_flightpath = QuestHelper.loading_main:MakeSubcategory(1)
QuestHelper.loading_preroll = QuestHelper.loading_main:MakeSubcategory(1)
local stt = 0
-- This is where the slow stuff goes
-- 4.0.3a Breakage related
local datime = time() + 30 -- We're gonna wait 30 seconds, just in case.
--while datime >= time() do --[[sleep (busy wait)]] end
--QuestHelper_BuildZoneLookup()
--QH_Graph_Init()
--load_graph_links()
if QuestHelper_Locale ~= GetLocale() then
self:TextOut(QHText("LOCALE_ERROR"))
return
end
--[[
if not self:ZoneSanity() then
self:TextOut(QHFormat("ZONE_LAYOUT_ERROR", expected_version))
QH_fixedmessage(QHFormat("ZONE_LAYOUT_ERROR", expected_version))
QuestHelper = nil
return
end
QuestHelper_UpgradeDatabase(_G)
QuestHelper_UpgradeComplete()
if QuestHelper_IsPolluted(_G) then
self:TextOut(QHFormat("NAG_POLLUTED"))
self:Purge(nil, true, true)
end
--]]
local signature = expected_version .. " on " .. GetBuildInfo()
QuestHelper_Quests[signature] = QuestHelper_Quests[signature] or {}
QuestHelper_Objectives[signature] = QuestHelper_Objectives[signature] or {}
QuestHelper_FlightInstructors[signature] = QuestHelper_FlightInstructors[signature] or {}
QuestHelper_FlightRoutes[signature] = QuestHelper_FlightRoutes[signature] or {}
QuestHelper_Quests_Local = QuestHelper_Quests[signature]
QuestHelper_Objectives_Local = QuestHelper_Objectives[signature]
QuestHelper_FlightInstructors_Local = QuestHelper_FlightInstructors[signature]
QuestHelper_FlightRoutes_Local = QuestHelper_FlightRoutes[signature]
QuestHelper_SeenRealms[GetRealmName()] = true -- some attempt at tracking private servers
QuestHelper.loading_init3:SetPercentage(0.1)
QH_Collector_Init()
QuestHelper.loading_init3:SetPercentage(0.5)
--DB_Init()
QuestHelper.loading_init3:SetPercentage(0.9)
self.player_level = UnitLevel("player")
self:SetLocaleFonts()
if QuestHelper_Pref.share and not QuestHelper_Pref.solo then
self:EnableSharing()
end
if QuestHelper_Pref.hide then
self.map_overlay:Hide()
end
self:HandlePartyChange()
self:Nag("all")
for locale in pairs(QuestHelper_StaticData) do
if locale ~= self.locale then
-- Will delete references to locales you don't use.
QuestHelper_StaticData[locale] = nil
_G["QuestHelper_StaticData_" .. locale] = nil
end
end
local static = QuestHelper_StaticData[self.locale]
if static then
if static.flight_instructors then for faction in pairs(static.flight_instructors) do
if faction ~= self.faction then
-- Will delete references to flight instructors that don't belong to your faction.
static.flight_instructors[faction] = nil
end
end end
if static.quest then for faction in pairs(static.quest) do
if faction ~= self.faction then
-- Will delete references to quests that don't belong to your faction.
static.quest[faction] = nil
end
end end
end
-- Adding QuestHelper_CharVersion, so I know if I've already converted this characters saved data.
if not QuestHelper_CharVersion then
-- Changing per-character flight routes, now only storing the flight points they have,
-- will attempt to guess the routes from this.
local routes = {}
for i, l in pairs(QuestHelper_KnownFlightRoutes) do
for key in pairs(l) do
routes[key] = true
end
end
QuestHelper_KnownFlightRoutes = routes
-- Deleting the player's home again.
-- But using the new CharVersion variable I'm adding is cleaner that what I was doing, so I'll go with it.
QuestHelper_Home = nil
QuestHelper_CharVersion = 1
end
if not QuestHelper_Home then
-- Not going to bother complaining about the player's home not being set, uncomment this when the home is used in routing.
-- self:TextOut(QHText("HOME_NOT_KNOWN"))
end
if QuestHelper_Pref.map_button then
-- QuestHelper:InitMapButton()
end
if QuestHelper_Pref.tomtom_wp_new then
-- self:EnableTomTom()
end
-- self.tracker:SetScale(QuestHelper_Pref.track_scale)
local version = GetAddOnMetadata("QuestHelper", "Version") or "Unknown"
local major, minor = (version_string or ""):match("^(%d+)%.(%d+)")
major, minor = tonumber(major), tonumber(minor)
QH_Hook(self, "OnUpdate", self.OnUpdate)
-- Seems to do its own garbage collection pass before fully loading, so I'll just rely on that
--collectgarbage("collect") -- Free everything we aren't using.
--[[
if self.debug_objectives then
for name, data in pairs(self.debug_objectives) do
self:LoadDebugObjective(name, data)
end
end]]
-- wellllp
QH_Arrow_SetScale()
QH_Arrow_SetTextScale()
--[[
QH_Timeslice_Add(function ()
self:ResetPathing()
self.Routing:Initialize() -- Set up the routing task
end, "init")]] -- FUCK YOU BOXBOT
QH_Event("CHAT_MSG_ADDON", function (...)
local arg1 = select(1,...)
local arg2 = select(2,...)
local arg4 = select(4,...)
if arg1 == "QHpr" and arg4 ~= UnitName("player") then
QH_Questcomm_Msg(arg2, arg4)
end
end)
--[[
QH_Event({"PARTY_MEMBERS_CHANGED", "UNIT_LEVEL", "RAID_ROSTER_UPDATE"}, function ()
QH_Filter_Group_Sync()
QH_Route_Filter_Rescan("filter_quest_level")
--QH_Route_Filter_Rescan("filter_quest_group")
--QH_Route_Filter_Rescan("filter_quest_raid_accessible") -- These should be in right now, but for simplicity's sake we're actually scanning everything when we get a rescan request. So they're unnecessary. PUT THEM BACK should they become necessary.
end)
QH_Event({"PARTY_MEMBERS_CHANGED", "RAID_ROSTER_UPDATE"}, function ()
QH_Questcomm_Sync()
end)
--]]
QH_Event("PLAYER_LEVEL_UP", function ()
self.player_level = arg1
--QH_Route_Filter_Rescan("filter_quest_level")
end)
--[[
QH_Event("TAXIMAP_OPENED", function ()
self:taxiMapOpened()
end)
QH_Event({"ZONE_CHANGED", "ZONE_CHANGED_INDOORS", "ZONE_CHANGED_NEW_AREA"}, function()
QH_Route_Filter_Rescan(nil, true)
end)
]]
QH_Event("CHAT_MSG_CHANNEL_NOTICE", function()
if please_submit_enabled and not please_submit_initted then
please_submit_enabled = QHNagInit()
startup_time = GetTime()
please_submit_initted = true
end
end)
QuestHelper.loading_init3:SetPercentage(1.0) -- victory
QuestHelper_Loadtime["init3_end"] = GetTime()
end

Voir le fichier

@ -139,6 +139,7 @@ local function FileCheck()
-- ["upgrade.lua"] = true,
["pref.lua"] = true,
["vars.lua"] = true,
["init_timeslice.lua"] = true,
["main.lua"] = true,
["recycle.lua"] = true,
["objective.lua"] = true,
@ -324,216 +325,7 @@ function QuestHelper_AddonLoadedHandler(addonid)
end
QuestHelper_SaveDate = time()
QH_Timeslice_Add(function ()
QuestHelper_Loadtime["init3_start"] = GetTime()
QuestHelper.loading_main = QuestHelper.CreateLoadingCounter()
QuestHelper.loading_init3 = QuestHelper.loading_main:MakeSubcategory(0.3)
QuestHelper.loading_flightpath = QuestHelper.loading_main:MakeSubcategory(1)
QuestHelper.loading_preroll = QuestHelper.loading_main:MakeSubcategory(1)
local stt = 0
-- This is where the slow stuff goes
-- 4.0.3a Breakage related
local datime = time() + 30 -- We're gonna wait 30 seconds, just in case.
--while datime >= time() do --[[sleep (busy wait)]] end
--QuestHelper_BuildZoneLookup()
--QH_Graph_Init()
--load_graph_links()
if QuestHelper_Locale ~= GetLocale() then
self:TextOut(QHText("LOCALE_ERROR"))
return
end
--[[
if not self:ZoneSanity() then
self:TextOut(QHFormat("ZONE_LAYOUT_ERROR", expected_version))
QH_fixedmessage(QHFormat("ZONE_LAYOUT_ERROR", expected_version))
QuestHelper = nil
return
end
QuestHelper_UpgradeDatabase(_G)
QuestHelper_UpgradeComplete()
if QuestHelper_IsPolluted(_G) then
self:TextOut(QHFormat("NAG_POLLUTED"))
self:Purge(nil, true, true)
end
--]]
local signature = expected_version .. " on " .. GetBuildInfo()
QuestHelper_Quests[signature] = QuestHelper_Quests[signature] or {}
QuestHelper_Objectives[signature] = QuestHelper_Objectives[signature] or {}
QuestHelper_FlightInstructors[signature] = QuestHelper_FlightInstructors[signature] or {}
QuestHelper_FlightRoutes[signature] = QuestHelper_FlightRoutes[signature] or {}
QuestHelper_Quests_Local = QuestHelper_Quests[signature]
QuestHelper_Objectives_Local = QuestHelper_Objectives[signature]
QuestHelper_FlightInstructors_Local = QuestHelper_FlightInstructors[signature]
QuestHelper_FlightRoutes_Local = QuestHelper_FlightRoutes[signature]
QuestHelper_SeenRealms[GetRealmName()] = true -- some attempt at tracking private servers
QuestHelper.loading_init3:SetPercentage(0.1)
QH_Collector_Init()
QuestHelper.loading_init3:SetPercentage(0.5)
--DB_Init()
QuestHelper.loading_init3:SetPercentage(0.9)
self.player_level = UnitLevel("player")
self:SetLocaleFonts()
if QuestHelper_Pref.share and not QuestHelper_Pref.solo then
self:EnableSharing()
end
if QuestHelper_Pref.hide then
self.map_overlay:Hide()
end
self:HandlePartyChange()
self:Nag("all")
for locale in pairs(QuestHelper_StaticData) do
if locale ~= self.locale then
-- Will delete references to locales you don't use.
QuestHelper_StaticData[locale] = nil
_G["QuestHelper_StaticData_" .. locale] = nil
end
end
local static = QuestHelper_StaticData[self.locale]
if static then
if static.flight_instructors then for faction in pairs(static.flight_instructors) do
if faction ~= self.faction then
-- Will delete references to flight instructors that don't belong to your faction.
static.flight_instructors[faction] = nil
end
end end
if static.quest then for faction in pairs(static.quest) do
if faction ~= self.faction then
-- Will delete references to quests that don't belong to your faction.
static.quest[faction] = nil
end
end end
end
-- Adding QuestHelper_CharVersion, so I know if I've already converted this characters saved data.
if not QuestHelper_CharVersion then
-- Changing per-character flight routes, now only storing the flight points they have,
-- will attempt to guess the routes from this.
local routes = {}
for i, l in pairs(QuestHelper_KnownFlightRoutes) do
for key in pairs(l) do
routes[key] = true
end
end
QuestHelper_KnownFlightRoutes = routes
-- Deleting the player's home again.
-- But using the new CharVersion variable I'm adding is cleaner that what I was doing, so I'll go with it.
QuestHelper_Home = nil
QuestHelper_CharVersion = 1
end
if not QuestHelper_Home then
-- Not going to bother complaining about the player's home not being set, uncomment this when the home is used in routing.
-- self:TextOut(QHText("HOME_NOT_KNOWN"))
end
if QuestHelper_Pref.map_button then
-- QuestHelper:InitMapButton()
end
if QuestHelper_Pref.tomtom_wp_new then
-- self:EnableTomTom()
end
-- self.tracker:SetScale(QuestHelper_Pref.track_scale)
local version = GetAddOnMetadata("QuestHelper", "Version") or "Unknown"
local major, minor = (version_string or ""):match("^(%d+)%.(%d+)")
major, minor = tonumber(major), tonumber(minor)
QH_Hook(self, "OnUpdate", self.OnUpdate)
-- Seems to do its own garbage collection pass before fully loading, so I'll just rely on that
--collectgarbage("collect") -- Free everything we aren't using.
--[[
if self.debug_objectives then
for name, data in pairs(self.debug_objectives) do
self:LoadDebugObjective(name, data)
end
end]]
-- wellllp
QH_Arrow_SetScale()
QH_Arrow_SetTextScale()
--[[
QH_Timeslice_Add(function ()
self:ResetPathing()
self.Routing:Initialize() -- Set up the routing task
end, "init")]] -- FUCK YOU BOXBOT
QH_Event("CHAT_MSG_ADDON", function (...)
local arg1 = select(1,...)
local arg2 = select(2,...)
local arg4 = select(4,...)
if arg1 == "QHpr" and arg4 ~= UnitName("player") then
QH_Questcomm_Msg(arg2, arg4)
end
end)
--[[
QH_Event({"PARTY_MEMBERS_CHANGED", "UNIT_LEVEL", "RAID_ROSTER_UPDATE"}, function ()
QH_Filter_Group_Sync()
QH_Route_Filter_Rescan("filter_quest_level")
--QH_Route_Filter_Rescan("filter_quest_group")
--QH_Route_Filter_Rescan("filter_quest_raid_accessible") -- These should be in right now, but for simplicity's sake we're actually scanning everything when we get a rescan request. So they're unnecessary. PUT THEM BACK should they become necessary.
end)
QH_Event({"PARTY_MEMBERS_CHANGED", "RAID_ROSTER_UPDATE"}, function ()
QH_Questcomm_Sync()
end)
--]]
QH_Event("PLAYER_LEVEL_UP", function ()
self.player_level = arg1
--QH_Route_Filter_Rescan("filter_quest_level")
end)
--[[
QH_Event("TAXIMAP_OPENED", function ()
self:taxiMapOpened()
end)
QH_Event({"ZONE_CHANGED", "ZONE_CHANGED_INDOORS", "ZONE_CHANGED_NEW_AREA"}, function()
QH_Route_Filter_Rescan(nil, true)
end)
]]
QH_Event("CHAT_MSG_CHANNEL_NOTICE", function()
if please_submit_enabled and not please_submit_initted then
please_submit_enabled = QHNagInit()
startup_time = GetTime()
please_submit_initted = true
end
end)
QuestHelper.loading_init3:SetPercentage(1.0) -- victory
QuestHelper_Loadtime["init3_end"] = GetTime()
end, "preinit")
QH_Timeslice_Add(QH_Init_Timeslice, "preinit")
QuestHelper_Loadtime["init2_end"] = GetTime()
end