Quest.lua 14.7 KB
Newer Older
Crum's avatar
Crum committed
1 2 3 4 5
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule('Skins')

--Lua functions
local _G = _G
Crum's avatar
Crum committed
6
local gsub, type, pairs, ipairs, select, unpack, strstrfind = gsub, type, pairs, ipairs, select, unpack, strstrfind
Crum's avatar
Crum committed
7
--WoW API / Variables
Crum's avatar
Crum committed
8 9 10 11 12 13 14 15 16 17
local GetMoney = GetMoney
local CreateFrame = CreateFrame
local GetQuestID = GetQuestID
local GetQuestLogTitle = GetQuestLogTitle
local GetQuestLogRequiredMoney = GetQuestLogRequiredMoney
local GetQuestLogLeaderBoard = GetQuestLogLeaderBoard
local GetNumQuestLeaderBoards = GetNumQuestLeaderBoards
local GetNumQuestLogRewardSpells = GetNumQuestLogRewardSpells
local GetNumRewardSpells = GetNumRewardSpells
local GetQuestLogSelection = GetQuestLogSelection
Crum's avatar
Crum committed
18 19
local hooksecurefunc = hooksecurefunc

Crum's avatar
Crum committed
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
local function HandleReward(frame)
	if (not frame) then return end

	if frame.Icon then
		S:HandleIcon(frame.Icon, true)

		frame.Count:ClearAllPoints()
		frame.Count:Point("BOTTOMRIGHT", frame.Icon, "BOTTOMRIGHT", 2, 0)
	end

	if frame.NameFrame then
		frame.NameFrame:SetAlpha(0)
	end

	if frame.Name then
		frame.Name:SetFontObject("GameFontHighlightSmall")
	end

	if (frame.CircleBackground) then
		frame.CircleBackground:SetAlpha(0)
		frame.CircleBackgroundGlow:SetAlpha(0)
	end
end


local function StyleScrollFrame(scrollFrame, widthOverride, heightOverride, inset)
	scrollFrame:SetTemplate()
	if not scrollFrame.spellTex then
		scrollFrame.spellTex = scrollFrame:CreateTexture(nil, 'BACKGROUND', 1)
	end

	scrollFrame.spellTex:SetTexture([[Interface\QuestFrame\QuestBG]])
	if inset then
		scrollFrame.spellTex:Point("TOPLEFT", 1, -1)
	else
		scrollFrame.spellTex:Point("TOPLEFT")
	end
	scrollFrame.spellTex:Size(widthOverride or 506, heightOverride or 615)
	scrollFrame.spellTex:SetTexCoord(0, 1, 0.02, 1)
end

-- Quest objective text color
local function Quest_GetQuestID()
	if _G.QuestInfoFrame.questLog then
		return select(8, GetQuestLogTitle(GetQuestLogSelection()))
	else
		return GetQuestID()
	end
end


Crum's avatar
Crum committed
71 72 73
local function LoadSkin()
	if E.private.skins.blizzard.enable ~= true or E.private.skins.blizzard.quest ~= true then return end

Crum's avatar
Crum committed
74 75
	local QuestLogFrame = _G.QuestLogFrame
	S:HandlePortraitFrame(QuestLogFrame, true)
76 77
	QuestLogFrame.backdrop:Point('TOPLEFT', 10, -12)
	QuestLogFrame.backdrop:Point('BOTTOMRIGHT', -1, 8)
Crum's avatar
Crum committed
78
	QuestLogFrame:Width(374)
Crum's avatar
Crum committed
79

80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
	for frame, numItems in pairs({['QuestLogItem'] = MAX_NUM_ITEMS, ['QuestProgressItem'] = MAX_REQUIRED_ITEMS}) do
		for i = 1, numItems do
			local item = _G[frame..i]
			local icon = _G[frame..i..'IconTexture']

			item:StripTextures()
			item:SetTemplate('Default')
			item:StyleButton()
			item:Size(143, 40)
			item:SetFrameLevel(item:GetFrameLevel() + 2)

			icon:Size(E.PixelMode and 38 or 32)
			icon:SetDrawLayer('OVERLAY')
			icon:Point('TOPLEFT', E.PixelMode and 1 or 4, -(E.PixelMode and 1 or 4))
			S:HandleIcon(icon)
		end
Crum's avatar
Crum committed
96 97
	end

Crum's avatar
Crum committed
98
	local QuestInfoItemHighlight = _G.QuestInfoItemHighlight
99
	QuestInfoItemHighlight:StripTextures()
Crum's avatar
Crum committed
100 101 102 103
	QuestInfoItemHighlight:SetTemplate(nil, nil, true)
	QuestInfoItemHighlight:SetBackdropBorderColor(1, 1, 0)
	QuestInfoItemHighlight:SetBackdropColor(0, 0, 0, 0)
	QuestInfoItemHighlight:Size(142, 40)
Crum's avatar
Crum committed
104

105
	hooksecurefunc('QuestInfoItem_OnClick', function(self)
Crum's avatar
Crum committed
106 107 108 109 110
		QuestInfoItemHighlight:ClearAllPoints()
		QuestInfoItemHighlight:SetOutside(self.Icon)

		for _, Button in ipairs(_G.QuestInfoRewardsFrame.RewardButtons) do
			Button.Name:SetTextColor(1, 1, 1)
Crum's avatar
Crum committed
111
		end
Crum's avatar
Crum committed
112 113

		self.Name:SetTextColor(1, .8, .1)
114 115
	end)

Crum's avatar
Crum committed
116 117 118
	_G.QuestRewardScrollFrame:CreateBackdrop()
	_G.QuestRewardScrollFrame:Height(_G.QuestRewardScrollFrame:GetHeight() - 2)

119 120 121 122 123
	S:HandleButton(QuestLogFrameAbandonButton)
	QuestLogFrameAbandonButton:Point('BOTTOMLEFT', 14, 14)

	S:HandleButton(QuestFramePushQuestButton)
	QuestFramePushQuestButton:Point('LEFT', QuestLogFrameAbandonButton, 'RIGHT', 2, 0)
Crum's avatar
Crum committed
124

125 126 127
	S:HandleButton(QuestFrameExitButton)
	QuestFrameExitButton:Point('BOTTOMRIGHT', -9, 14)

Azilroka's avatar
Azilroka committed
128 129 130
	hooksecurefunc(_G, 'QuestLog_UpdateQuestDetails', function()
		_G.QuestLogQuestTitle:SetTextColor(1, .8, .1)
		_G.QuestLogObjectivesText:SetTextColor(1, 1, 1)
131

Azilroka's avatar
Azilroka committed
132 133
		_G.QuestLogDescriptionTitle:SetTextColor(1, .8, .1)
		_G.QuestLogQuestDescription:SetTextColor(1, 1, 1)
Crum's avatar
Crum committed
134

Azilroka's avatar
Azilroka committed
135
		_G.QuestLogRewardTitleText:SetTextColor(1, .8, .1)
Crum's avatar
Crum committed
136

Azilroka's avatar
Azilroka committed
137 138
		_G.QuestLogItemChooseText:SetTextColor(1, 1, 1)
		_G.QuestLogSpellLearnText:SetTextColor(1, 1, 1)
Crum's avatar
Crum committed
139

Azilroka's avatar
Azilroka committed
140 141
		local numObjectives = GetNumQuestLeaderBoards()
		local numVisibleObjectives = 0
142

Azilroka's avatar
Azilroka committed
143 144 145
		for i = 1, numObjectives do
			local _, _, finished = GetQuestLogLeaderBoard(i)
			if (type ~= 'spell' and type ~= 'log' and numVisibleObjectives < _G.MAX_OBJECTIVES) then
146
				numVisibleObjectives = numVisibleObjectives + 1
Azilroka's avatar
Azilroka committed
147 148 149 150 151 152
				local objective = _G['QuestLogObjective'..numVisibleObjectives]
				if objective then
					if finished then
						objective:SetTextColor(1, .8, .1)
					else
						objective:SetTextColor(.63, .09, .09)
153 154 155
					end
				end
			end
Crum's avatar
Crum committed
156
		end
Azilroka's avatar
Azilroka committed
157 158 159 160 161 162

		if QuestLogRequiredMoneyText:GetTextColor() == 0 then
			QuestLogRequiredMoneyText:SetTextColor(0.6, 0.6, 0.6)
		else
			QuestLogRequiredMoneyText:SetTextColor(1, 0.80, 0.10)
		end
163 164
	end)

Crum's avatar
Crum committed
165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182
	local function QuestObjectiveText()
		local numObjectives = GetNumQuestLeaderBoards()
		local objective
		local _, type, finished
		local numVisibleObjectives = 0
		for i = 1, numObjectives do
			_, type, finished = GetQuestLogLeaderBoard(i)
			if type ~= "spell" then
				numVisibleObjectives = numVisibleObjectives + 1
				objective = _G["QuestInfoObjective"..numVisibleObjectives]
				if finished then
					objective:SetTextColor(1, 0.80, 0.10)
				else
					objective:SetTextColor(0.6, 0.6, 0.6)
				end
			end
		end
	end
Crum's avatar
Crum committed
183

Crum's avatar
Crum committed
184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199
	hooksecurefunc('QuestInfo_Display', function()
		for i = 1, #_G.QuestInfoRewardsFrame.RewardButtons do
			local questItem = _G.QuestInfoRewardsFrame.RewardButtons[i]
			print(questItem)
			if not questItem:IsShown() then break end

			local point, relativeTo, relativePoint, _, y = questItem:GetPoint()
			if point and relativeTo and relativePoint then
				if i == 1 then
					questItem:Point(point, relativeTo, relativePoint, 0, y)
				elseif relativePoint == "BOTTOMLEFT" then
					questItem:Point(point, relativeTo, relativePoint, 0, -4)
				else
					questItem:Point(point, relativeTo, relativePoint, 4, 0)
				end
			end
Crum's avatar
Crum committed
200

Crum's avatar
Crum committed
201
			questItem.Name:SetTextColor(1, 1, 1)
202
		end
Crum's avatar
Crum committed
203

Crum's avatar
Crum committed
204 205
		local rewardsFrame = _G.QuestInfoFrame.rewardsFrame
		local isQuestLog = _G.QuestInfoFrame.questLog ~= nil
Crum's avatar
Crum committed
206

Crum's avatar
Crum committed
207 208 209 210 211 212 213
		local textColor = {1, 1, 1}
		local titleTextColor = {1, 0.80, 0.10}
		-- headers
		QuestInfoTitleHeader:SetTextColor(unpack(titleTextColor))
		QuestInfoDescriptionHeader:SetTextColor(unpack(titleTextColor))
		QuestInfoObjectivesHeader:SetTextColor(unpack(titleTextColor))
		QuestInfoRewardsFrame.Header:SetTextColor(unpack(titleTextColor))
214
		-- other text
Crum's avatar
Crum committed
215 216 217 218
		QuestInfoDescriptionText:SetTextColor(unpack(textColor))
		QuestInfoObjectivesText:SetTextColor(unpack(textColor))
		QuestInfoGroupSize:SetTextColor(unpack(textColor))
		QuestInfoRewardText:SetTextColor(unpack(textColor))
219
		-- reward frame text
Crum's avatar
Crum committed
220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252
		QuestInfoRewardsFrame.ItemChooseText:SetTextColor(unpack(textColor))
		QuestInfoRewardsFrame.ItemReceiveText:SetTextColor(unpack(textColor))
		QuestInfoRewardsFrame.PlayerTitleText:SetTextColor(unpack(textColor))
		QuestInfoRewardsFrame.XPFrame.ReceiveText:SetTextColor(unpack(textColor))

		QuestInfoRewardsFrame.spellHeaderPool.textR, QuestInfoRewardsFrame.spellHeaderPool.textG, QuestInfoRewardsFrame.spellHeaderPool.textB = unpack(textColor)

		local questID = Quest_GetQuestID()
		local numObjectives = GetNumQuestLeaderBoards()
		local numVisibleObjectives = 0

		for i = 1, numObjectives do
			local _, _, finished = GetQuestLogLeaderBoard(i)
			if (type ~= "spell" and type ~= "log" and numVisibleObjectives < _G.MAX_OBJECTIVES) then
				numVisibleObjectives = numVisibleObjectives + 1
				local objective = _G['QuestInfoObjective'..numVisibleObjectives]
				if objective then
					if finished then
						objective:SetTextColor(1, .8, .1)
					else
						objective:SetTextColor(.63, .09, .09)
					end
				end
			end
		end
	end)

	local Rewards = { 'MoneyFrame', 'HonorFrame', 'XPFrame', 'SpellFrame', 'SkillPointFrame' }

	for _, frame in pairs(Rewards) do
		HandleReward(_G.MapQuestInfoRewardsFrame[frame])
		HandleReward(_G.QuestInfoRewardsFrame[frame])
	end
253

Crum's avatar
Crum committed
254 255 256 257 258 259 260 261 262 263 264 265
	-- Hook for WorldQuestRewards / QuestLogRewards
	hooksecurefunc("QuestInfo_GetRewardButton", function(rewardsFrame, index)
		local RewardButton = rewardsFrame.RewardButtons[index]

		if (not RewardButton.Icon.backdrop) then
			HandleReward(RewardButton)

			RewardButton.IconBorder:SetAlpha(0)
			RewardButton.NameFrame:Hide()

			hooksecurefunc(RewardButton.IconBorder, 'SetVertexColor', function(_, r, g, b) RewardButton.Icon.backdrop:SetBackdropBorderColor(r, g, b) end)
		end
266
	end)
Crum's avatar
Crum committed
267 268 269 270 271 272 273 274 275 276 277 278
	--Reward: Title
	local QuestInfoPlayerTitleFrame = _G.QuestInfoPlayerTitleFrame
	QuestInfoPlayerTitleFrame.FrameLeft:SetTexture()
	QuestInfoPlayerTitleFrame.FrameCenter:SetTexture()
	QuestInfoPlayerTitleFrame.FrameRight:SetTexture()
	QuestInfoPlayerTitleFrame.Icon:SetTexCoord(unpack(E.TexCoords))
	QuestInfoPlayerTitleFrame:CreateBackdrop()
	QuestInfoPlayerTitleFrame.backdrop:SetOutside(QuestInfoPlayerTitleFrame.Icon)



	QuestLogTimerText:SetTextColor(1, 1, 1)
279

280 281
	QuestInfoTimerText:SetTextColor(1, 1, 1)
	QuestInfoAnchor:SetTextColor(1, 1, 1)
Crum's avatar
Crum committed
282

283
	QuestLogDetailScrollFrame:StripTextures()
Crum's avatar
Crum committed
284

285 286 287 288
	QuestLogFrame:HookScript('OnShow', function()
		if not QuestLogDetailScrollFrame.backdrop then
			QuestLogDetailScrollFrame:CreateBackdrop('Transparent')
		end
Crum's avatar
Crum committed
289

290 291 292
		QuestLogDetailScrollFrame.backdrop:Point('TOPLEFT', 0, 2)
		QuestLogDetailScrollFrame.backdrop:Point('BOTTOMRIGHT', 0, -2)
		QuestLogDetailScrollFrame:Point('TOPRIGHT', -32, -76)
Crum's avatar
Crum committed
293
		QuestLogDetailScrollFrame:Size(302, 296)
Crum's avatar
Crum committed
294

295 296
		QuestLogDetailScrollFrameScrollBar:Point('TOPLEFT', QuestLogDetailScrollFrame, 'TOPRIGHT', 5, -12)
	end)
Crum's avatar
Crum committed
297

298 299 300 301 302
	QuestLogDetailScrollFrame:HookScript('OnShow', function()
		if not QuestLogDetailScrollFrame.backdrop then
			QuestLogDetailScrollFrame:CreateBackdrop('Transparent')
		end
	end)
Crum's avatar
Crum committed
303

304 305
	QuestLogSkillHighlight:SetTexture(E.Media.Textures.Highlight)
	QuestLogSkillHighlight:SetAlpha(0.35)
Crum's avatar
Crum committed
306

Crum's avatar
Crum committed
307
	S:HandleCloseButton(QuestLogFrameCloseButton, QuestLogFrame.backdrop)
Crum's avatar
Crum committed
308

309
	EmptyQuestLogFrame:StripTextures()
Crum's avatar
Crum committed
310 311 312 313 314 315

	S:HandleScrollBar(QuestLogDetailScrollFrameScrollBar)
	S:HandleScrollBar(QuestDetailScrollFrameScrollBar)
	S:HandleScrollBar(QuestProgressScrollFrameScrollBar)
	S:HandleScrollBar(QuestRewardScrollFrameScrollBar)

316
	-- Quest Frame
Crum's avatar
Crum committed
317 318
	local QuestFrame = _G.QuestFrame
	S:HandlePortraitFrame(QuestFrame, true)
319 320 321
	QuestFrame.backdrop:Point('TOPLEFT', 15, -11)
	QuestFrame.backdrop:Point('BOTTOMRIGHT', -20, 0)
	QuestFrame:Width(374)
Crum's avatar
Crum committed
322

Crum's avatar
Crum committed
323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341
	_G.QuestFrameDetailPanel:StripTextures(true)
	_G.QuestDetailScrollFrame:StripTextures(true)
	_G.QuestDetailScrollFrame:SetTemplate()
	_G.QuestProgressScrollFrame:SetTemplate()
	_G.QuestGreetingScrollFrame:SetTemplate()

	local function UpdateGreetingFrame()
		for Button in _G.QuestFrameGreetingPanel.titleButtonPool:EnumerateActive() do
			Button.Icon:SetDrawLayer("ARTWORK")
			if E.private.skins.parchmentRemover.enable then
				local Text = Button:GetFontString():GetText()
				if Text and strfind(Text, '|cff000000') then
					Button:GetFontString():SetText(gsub(Text, '|cff000000', '|cffffe519'))
				end
			end
		end
	end


342 343
	QuestFrameDetailPanel:StripTextures(true)
	QuestDetailScrollFrame:StripTextures(true)
Crum's avatar
Crum committed
344
	QuestDetailScrollFrame:Height(400)
345 346
	QuestDetailScrollChildFrame:StripTextures(true)
	QuestRewardScrollFrame:StripTextures(true)
Crum's avatar
Crum committed
347
	QuestRewardScrollFrame:Height(400)
348 349
	QuestRewardScrollChildFrame:StripTextures(true)
	QuestFrameProgressPanel:StripTextures(true)
Crum's avatar
Crum committed
350
	QuestProgressScrollFrame:Height(400)
351
	QuestProgressScrollFrame:StripTextures()
352 353
	QuestFrameRewardPanel:StripTextures(true)

Crum's avatar
Crum committed
354 355 356
	QuestNpcNameFrame:Width(300)
	QuestNpcNameFrame:Point("TOPLEFT", QuestFrame.backdrop, "TOPLEFT", 18, -10)

357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374
	S:HandleButton(QuestFrameAcceptButton, true)
	QuestFrameAcceptButton:Point('BOTTOMLEFT', 20, 4)

	S:HandleButton(QuestFrameDeclineButton, true)
	QuestFrameDeclineButton:Point('BOTTOMRIGHT', -37, 4)

	S:HandleButton(QuestFrameCompleteButton, true)
	QuestFrameCompleteButton:Point('BOTTOMLEFT', 20, 4)

	S:HandleButton(QuestFrameGoodbyeButton, true)
	QuestFrameGoodbyeButton:Point('BOTTOMRIGHT', -37, 4)

	S:HandleButton(QuestFrameCompleteQuestButton, true)
	QuestFrameCompleteQuestButton:Point('BOTTOMLEFT', 20, 4)

	S:HandleButton(QuestFrameCancelButton)
	QuestFrameCancelButton:Point('BOTTOMRIGHT', -37, 4)

Crum's avatar
Crum committed
375
	S:HandleCloseButton(QuestFrameCloseButton, QuestFrame.backdrop)
Crum's avatar
Crum committed
376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394

	hooksecurefunc('QuestFrameProgressItems_Update', function()
		QuestProgressTitleText:SetTextColor(1, 0.80, 0.10)
		QuestProgressText:SetTextColor(1, 1, 1)
		QuestProgressRequiredItemsText:SetTextColor(1, 0.80, 0.10)

		if GetQuestMoneyToGet() > 0 then
			if GetQuestMoneyToGet() > GetMoney() then
				QuestProgressRequiredMoneyText:SetTextColor(0.6, 0.6, 0.6)
			else
				QuestProgressRequiredMoneyText:SetTextColor(1, 0.80, 0.10)
			end
		end

		for i = 1, MAX_REQUIRED_ITEMS do
			local item = _G['QuestProgressItem'..i]
			local name = _G['QuestProgressItem'..i..'Name']
			local link = item.type and GetQuestItemLink(item.type, item:GetID())

395
			QuestQualityColors(item, name, link)
Crum's avatar
Crum committed
396 397 398 399 400
		end
	end)

	for i = 1, QUESTS_DISPLAYED do
		local questLogTitle = _G['QuestLogTitle'..i]
Crum's avatar
Crum committed
401

Azilroka's avatar
Azilroka committed
402 403
		_G['QuestLogTitle'..i..'Highlight']:SetAlpha(0)

Crum's avatar
Crum committed
404
		questLogTitle:SetNormalTexture(E.Media.Textures.PlusButton)
Crum's avatar
Crum committed
405
		questLogTitle.SetNormalTexture = E.noop
Crum's avatar
Crum committed
406

407 408
		questLogTitle:GetNormalTexture():Size(16)
		questLogTitle:GetNormalTexture():Point('LEFT', 5, 0)
Crum's avatar
Crum committed
409

410 411
		questLogTitle:SetHighlightTexture('')
		questLogTitle.SetHighlightTexture = E.noop
Crum's avatar
Crum committed
412 413

		hooksecurefunc(questLogTitle, 'SetNormalTexture', function(self, texture)
414 415
			local tex = self:GetNormalTexture()

Crum's avatar
Crum committed
416 417 418 419
			if strfind(texture, 'MinusButton') then
				tex:SetTexture(E.Media.Textures.MinusButton)
			elseif strfind(texture, 'PlusButton') then
				tex:SetTexture(E.Media.Textures.PlusButton)
Crum's avatar
Crum committed
420
			else
421 422
				tex:SetTexture()
			end
Crum's avatar
Crum committed
423 424 425 426 427 428
		end)
	end

	QuestLogCollapseAllButton:StripTextures()
	QuestLogCollapseAllButton:Point('TOPLEFT', -45, 7)

Crum's avatar
Crum committed
429
	QuestLogCollapseAllButton:SetNormalTexture(E.Media.Textures.PlusButton)
Crum's avatar
Crum committed
430
	QuestLogCollapseAllButton.SetNormalTexture = E.noop
431
	QuestLogCollapseAllButton:GetNormalTexture():Size(16)
Crum's avatar
Crum committed
432 433 434 435

	QuestLogCollapseAllButton:SetHighlightTexture('')
	QuestLogCollapseAllButton.SetHighlightTexture = E.noop

Crum's avatar
Crum committed
436
	QuestLogCollapseAllButton:SetDisabledTexture(E.Media.Textures.PlusButton)
Crum's avatar
Crum committed
437
	QuestLogCollapseAllButton.SetDisabledTexture = E.noop
438
	QuestLogCollapseAllButton:GetDisabledTexture():Size(16)
Crum's avatar
Crum committed
439
	QuestLogCollapseAllButton:GetDisabledTexture():SetTexture(E.Media.Textures.PlusButton)
Crum's avatar
Crum committed
440 441 442
	QuestLogCollapseAllButton:GetDisabledTexture():SetDesaturated(true)

	hooksecurefunc(QuestLogCollapseAllButton, 'SetNormalTexture', function(self, texture)
443 444
		local tex = self:GetNormalTexture()

Azilroka's avatar
Azilroka committed
445 446
		if strfind(texture, 'MinusButton') then
			tex:SetTexture(E.Media.Textures.MinusButton)
Crum's avatar
Crum committed
447
		else
Crum's avatar
Crum committed
448
			tex:SetTexture(E.Media.Textures.PlusButton)
449
		end
Crum's avatar
Crum committed
450 451 452
	end)
end

Azilroka's avatar
Azilroka committed
453
S:AddCallback('Quest', LoadSkin)