M:C Domestic Screen/Improvements/Ideas

Kailric

Jack of All Trades
Joined
Mar 25, 2008
Messages
3,100
Location
Marooned, Y'isrumgone
We talked about Splitting up the Domestic Advisor to be Domestic/Foreign, but perhaps a better idea would be to rename it to Economic Advisor (or something else fitting) and use the screen for both and we can add the Trade Point Advisor Screen to it as well.

I posted the below in another thread...
To start with, it would be nice if the screens was split between different Domain Types, Land/Sea and at some point perhaps Air. Or you could have one screen with different domain categories perhaps. That way you could remove all those unsightly cancel buttons and make it easier to read. I see some improvements already...

Vanilla Improvements
-Split the Screens into domains, or list the domains separately
-Make Units Selectable so you can add/remove all trade routes
-Place the Units at the top of the screen so you don't have to scroll all the way to the bottom to see them
-Use a different icon to represent if a Unit is on a route as all those unit icons are just confusing
-Make the screen Scroll instead of resizing the Unit Icons


M:C Improvements

-Differentiate between AI Traders and other transports as well as Domain
-Allow Serfs to take on the Porter Profession so they can transport goods as well
-Remove Scouts Cargo, this isn't used for Hunting anymore
-Make Hunter's Cargo only Unload-able, they shouldn't be considered Transports
 
First: I proposed at one place to minimize the init function for Domestic Advisor (DA) and then init each page when it is viewed for the first time.
Goal: remove lag when opening DA. The current setup makes this lag worse whenever more columns are added (based on XML data) as well as when we add more pages.

-Split the Screens into domains, or list the domains separately
We have the left/right buttons. We could use those to make a page for each domain. Alternatively filter buttons with an on/off state. To do this correctly, we should loop data from DomainInfo (currently only used by vanilla code). That way if we add a new domain later, this code will just work. Also we could add data to each domain in XML, such as path to button graphics.

-Make Hunter's Cargo only Unload-able, they shouldn't be considered Transports
I proposed making two gear types for units, which allows them to load yields or units. This will allow promotions specific to transports. Also if that is added, hunters could have none of those, in which case yields can only be added by events like hunting code and not by the general city load code.

The yield transport gear type would also make it possible to filter based on that one for the trade screen. It would make sense to only list units, which can actually load yields.



None of this deals with the real problem, which is to easily get an overview of transports and with very few clicks adjust it to your liking.
 
Even the vanilla DM has a half second delay itself I noticed, so 1.5 or so isn't "that" bad:)

Anyway, yeah all those are good ideas. I thought about that with Hunters, the Yields not showing up until after the hunt and then you can only unload them. In fact we could bypass the whole Cargo system for certain units and just add a new variable to them that tracks the yield amounts, where unloading just adds that amount of yield to the City. Every unit has a YieldAmountStored variable, but I think for Citizens that stores Education. Anyway, either way would work.

Well, if all those issues where addressed it would solve the "real problem". You would have your overview of Trade as that's what the screen is suppose to do. The bug I mentioned needs addressed though, as even with my little empire I have more than 8 Trade Routes.
 
Even the vanilla DM has a half second delay itself I noticed, so 1.5 or so isn't "that" bad:)
The delay scales with the number of units, yields, buildings etc. Also we want to more pages, which would also take time in init.

Every unit has a YieldAmountStored variable, but I think for Citizens that stores Education. Anyway, either way would work.
Lately there has been talk about the DoaNE transport system where transports are limited by number of yields only, not type (they can mix them). If this is done, then the most likely best solution would be to add a yield array to CvUnit. The array would not be allocated if it is empty (that's the whole point in JIT arrays, remember ;)) and it would mean that all units can carry yields even if they have no cargo slots.

If this is added, we can check if the array is allocated and if it is, place an "unload all" button on the unit in the city screen.

The bug I mentioned needs addressed though, as even with my little empire I have more than 8 Trade Routes.
8 isn't true in general. It depends on screen resolution. That's another thing we should look into. Some screens look horrible at certain resolutions. Even worse the tech tree screen might place the exit button outside the screen meaning the only way to exit is to press escape.
 
All my screens scale with resolution if you need a sample
 
All my screens scale with resolution if you need a sample
Thanks. I keep forgetting that goldmine of yours :sad:

However I'm fully aware of how to adjust a python screen to match the resolution. I used this to the full extend in the domestic advisor where it increases the number of columns on each page to match the resolution while it still "stretch" columns to ensure they use the full width.

I think the problem I noticed is more a matter of aspect radio than actual resolution. I don't think it will be that hard to fix if I dig into the files (which I haven't done yet).
 
Back
Top Bottom