Convenient Quest Log

Show off your mod creations or just a work in progress.
User avatar
Macadaynu
Posts: 18
Joined: Sun Mar 07, 2021 1:18 pm

Convenient Quest Log

Post by Macadaynu »

I wanted to streamline the current quest log. I find when I start to accumulate quests, I don't like scrolling through a load of text to find what I need. Also I can't tell how long it will take to travel to each quest location, without opening the fast travel pop up for each quest.

My solution is to display each quest on the main "Active Quests" page to display as follows:

{Quest Title} ({Time left to complete quest})
{Location} ({Time to travel to location})

If you want to read the quest info you can click the Quest Title.
Clicking on the Location will bring up the fast travel pop up.

Demo here:


This hasn't been updated to work with Travel Options yet but that's what I'll be doing next.

This is my first attempt at modding, not sure how useful this will be to others, but if anyone is interested I can look into getting this available to download. :)
Last edited by Macadaynu on Sun Mar 21, 2021 10:22 pm, edited 1 time in total.

User avatar
Kamer
Posts: 547
Joined: Mon Mar 05, 2018 9:26 pm

Re: Convenient Quest Log

Post by Kamer »

Macadaynu wrote: Sun Mar 21, 2021 1:44 pm This is my first attempt at modding, not sure how useful this will be to others, but if anyone is interested I can look into getting this available to download. :)
I assure you many people have wanted something like this for awhile. The existing quest log works but its cluttered and, for new players, hard to navigate.

User avatar
Macadaynu
Posts: 18
Joined: Sun Mar 07, 2021 1:18 pm

Re: Convenient Quest Log

Post by Macadaynu »

Kamer wrote: Sun Mar 21, 2021 5:58 pm
Macadaynu wrote: Sun Mar 21, 2021 1:44 pm This is my first attempt at modding, not sure how useful this will be to others, but if anyone is interested I can look into getting this available to download. :)
I assure you many people have wanted something like this for awhile. The existing quest log works but its cluttered and, for new players, hard to navigate.
Ok Thanks Kamer,

I'll get Travel Options working with it and sort a release out on Nexus mods

User avatar
Baler
Posts: 186
Joined: Thu May 23, 2019 1:39 am
Location: Earth

Re: Convenient Quest Log

Post by Baler »

Travel to location, That might give me a reason to open the quest log instead of just remember the first 5 or so characters of a location. :)

For a first attempted you're on the right path. I can see people using this mod and it getting attention in youtube videos or live streams.

Nexus Mods is for sure the way to go for more attention on it. Mod compatibility support is up to you.
DFU Discord Link: http://discord.gg/HXMrKU6

User avatar
Hazelnut
Posts: 2680
Joined: Sat Aug 26, 2017 2:46 pm
Contact:

Re: Convenient Quest Log

Post by Hazelnut »

Very nice.

Not sure what compatibility you need to add for Travel Options?

i assume you override the quest journal UI class to do this?
See my mod code for examples of how to change various aspects of DFU: https://github.com/ajrb/dfunity-mods

User avatar
Macadaynu
Posts: 18
Joined: Sun Mar 07, 2021 1:18 pm

Re: Convenient Quest Log

Post by Macadaynu »

Hazelnut wrote: Mon Mar 22, 2021 10:39 am Very nice.

Not sure what compatibility you need to add for Travel Options?

i assume you override the quest journal UI class to do this?
Thanks Hazelnut,

In terms of Travel Options, I 'm wanting to display the hours/mins to travel to the location instead of whole days like shown in the demo, nothing too difficult I don't think.

Yep I had to override the quest journal UI class to do that, using a lot of the same logic, with a few tweaks to group the quest messages by quest parent

User avatar
Hazelnut
Posts: 2680
Joined: Sat Aug 26, 2017 2:46 pm
Contact:

Re: Convenient Quest Log

Post by Hazelnut »

Do say if the base class needs modifying for you to be able to extend it for your needs. We've been changing protection levels for this as people need them, and I'd be happy to help if you need it. (please don't just copy code instead as it will cause maintenance issues for your mod)

The Travel Options calculations are approximations only based on the travel time calculator in DFU, you can see the code on my github repo. Let me know if you have any questions.
See my mod code for examples of how to change various aspects of DFU: https://github.com/ajrb/dfunity-mods

User avatar
Macadaynu
Posts: 18
Joined: Sun Mar 07, 2021 1:18 pm

Re: Convenient Quest Log

Post by Macadaynu »

Hazelnut wrote: Mon Mar 22, 2021 7:13 pm Do say if the base class needs modifying for you to be able to extend it for your needs. We've been changing protection levels for this as people need them, and I'd be happy to help if you need it. (please don't just copy code instead as it will cause maintenance issues for your mod)

The Travel Options calculations are approximations only based on the travel time calculator in DFU, you can see the code on my github repo. Let me know if you have any questions.
The Travel Options stuff is working now thanks.

Changing the protection levels of `DaggerfallQuestJournalWindow` would be great, as I've been coding around it up to now. I would need to be able to access quite a few fields/UI controls though as they are mostly private at the moment. So I would need the following fields to be made protected instead of private:

- lastMessageIndex
- currentMessageIndex
- questLogLabel
- messageCount
- titleLabel
- selectedEntry
- entryLineMap
- questMessages
- GetLastPlaceMentionedInMessage
- HandleClick (I need to be able to override this, so a protected virtual void?)

Also could lines 408-423 go into it's own method please? something like:

Code: Select all

        protected void HandleQuestClick(Message questMessage, Place place)
        {
            // Handle current quest clicks - ask if want to travel to last location for quest.
            Debug.Log(questMessage.ParentQuest.QuestName);
            if (place != null &&
                !string.IsNullOrEmpty(place.SiteDetails.locationName) &&
                place.SiteDetails.locationName != GameManager.Instance.PlayerGPS.CurrentLocation.Name)
            {
                findPlaceName = place.SiteDetails.locationName;
                if (DaggerfallUI.Instance.DfTravelMapWindow.CanFindPlace(place.SiteDetails.regionName, findPlaceName))
                {
                    findPlaceRegion = DaggerfallUnity.Instance.ContentReader.MapFileReader.GetRegionIndex(place.SiteDetails.regionName);
                    string entryStr = string.Format("{0} in {1} province", findPlaceName, place.SiteDetails.regionName);
                    DaggerfallMessageBox dialogBox = CreateDialogBox(entryStr, "confirmFind");
                    dialogBox.OnButtonClick += FindPlace_OnButtonClick;
                    DaggerfallUI.UIManager.PushWindow(dialogBox);
                }
            }
        }
I appreciate if this is not possible, thanks

User avatar
Hazelnut
Posts: 2680
Joined: Sat Aug 26, 2017 2:46 pm
Contact:

Re: Convenient Quest Log

Post by Hazelnut »

Hi there, before I submit the PR could you check here and review the changes I've made:

https://github.com/Interkarma/daggerfal ... e?expand=1

Have I missed anything that you need?
Does it still work properly?
(I have not tested the changes)

As soon as you say you're happy I will submit the PR.
See my mod code for examples of how to change various aspects of DFU: https://github.com/ajrb/dfunity-mods

imsobadatnicknames
Posts: 320
Joined: Sun Jun 02, 2019 4:28 pm
Location: Colombia

Re: Convenient Quest Log

Post by imsobadatnicknames »

Really cool that someone finally figured out how to do something like this, this is brilliant.
Quick question, though, how does the mod pick which timer and location to display? Afaik there are some quests that involve different timers for different events, and some where you have to go to several places.
Released mods: https://www.nexusmods.com/users/5141135 ... files&BH=0
Daggerfall isn't the only ridiculously intrincate fantasy world simulator with the initials DF that I make mods for: http://www.bay12forums.com/smf/index.php?topic=177071.0

Post Reply