Total RP 3: Extended

Total RP 3: Extended

903k Downloads

Campaign tracker overhaul

Solanya opened this issue ยท 3 comments

commented
  • The campaign tracker doesn't appear if no in-game quest is tracked. It should appear regardless.
  • It doesn't take into account that you may be tracking achievements, world quests, bonus objectives; as such, it displays on top of them.
  • Longer objectives get out of the screen instead of wrapping on a new line.

There were talks about needing to rewrite that objective tracker, and I'm suggesting to put the actions buttons at the top of the tracker while we're at it, to make it take less space while being always visible while on a campaign, target or not.

commented

When I commit to this, we could look to add alternative objective displays, like a bar filling based on a variable value (and a given max value).

commented

Parenting it to UIParent will potentially cause issues if a user has some addon installed which independently changes the scale of the ObjectiveTrackerBlocksFrame. Not sure how many objective trackers would do this, but you also need to factor in UI tweak addons like MoveAnything which provide such options.

commented

Hi,
I found a potential fix to the layout overlap:

Interface\AddOns\totalRP3_Extended\quest\quest.xml:33

<SimpleHTML name="TRP3_QuestObjectives" parent="UIParent">
	<Size x="0" y="100"/>
</SimpleHTML>

Interface\AddOns\totalRP3_Extended\quest\quest_objective.lua:109

local ticker = C_Timer.NewTicker(1, function()		
	if ObjectiveTrackerBlocksFrame:IsShown() then
		local top = ObjectiveTrackerBlocksFrame.contentsHeight
		if top > 0 then
			top = top + 20
		end
		frame:SetPoint("TOPRIGHT", ObjectiveTrackerBlocksFrame, "TOPRIGHT", 0, -top);
		frame:SetPoint("TOPLEFT", ObjectiveTrackerBlocksFrame, "TOPLEFT", 0, -top);
		display();
		frame:Show();
	else
		frame:Hide();
	end	
end);

Attaching it to UIParent makes it independent of the tracked content, but it is still anchored to ObjectiveTrackerBlocksFrame.
ObjectiveTrackerBlocksFrame:IsShown() checks if the "Hide Objectives" button was clicked.