UI modifications (suggestions and discussion)

There is an event that awards all your chasers/hunters with trait of your choice (hunter sight, hunter strike or hunter great)... IMHO this should be awarded to great hunters also, because after selecting 'hunter great' all my normal units were 2x stronger than great person.
 
There is an event that awards all your chasers/hunters with trait of your choice (hunter sight, hunter strike or hunter great)... IMHO this should be awarded to great hunters also, because after selecting 'hunter great' all my normal units were 2x stronger than great person.
VERY good point! I think this might be up DH's alley to resolve but I've noticed this before and just forgot to mention it.
 
I have finally finished testing the Civics screen changes needed to get the help working. I now just need to make it pretty again.

The basic outcome is

If you want text to automatically connect to the help (pedia) then it has to be in a text box which is the only thing inside a panel.

The implementation of the screen by C2C, and RoM/AND did not have the text boxes inside a panel. Platyping's version had an icon inside the panel as well.
 
It will make no difference. You still need to read all the entries to decide what is in each category. That is how it currently works eg with buildings, Great Wonders, Cultures and National Wonders. You have to read all the buildings to discover what is in each group.
My test from the fullscreen sevopedia modmod shows that it only takes 170 +/- 10 ms (on my hardware) to go through all the content in the game, adding it all to a list and then sorting that alphabetically.
I found out that adding GUI elements takes significant time inside the .exe, and that nesting many layers of GUI elements by attaching one to another exasperates it.
The more you nest them the longer it takes to get them on the screen because there is some fancy code in the .exe for resizing and repositioning e.g. a panel attached to another panel, so if a third panel is attached to the second one, both will have to resize and reposition based on the amount and sizes of all else that is attached to the parent panel. Only the uppermost parent, and the AttachSomethingAt elements, has a static position and size.

Another thing I found out is that all GUI elements that have data1 and data2 integer arguments like:
VOID addTableHeaderGFC (STRING szAttachTo, STRING szText, INT iCol, WidgetType eWidgetType, INT iData1, INT iData2)
that has something other than iData2 = 0 will load the whole help-text mouse-hover-over info to the tech/building/unit/etc. associated with the eWidgetType used.
So a list with a lot of entries where each entry can be clicked to jump to e.g. a building will take a long time to get up on the screen because the dll needs to load in the help text for each building unless the iData2=0.
 
Last edited:
My test from the fullscreen sevopedia modmod shows that it only takes 170 +/- 10 ms (on my hardware) to go through all the content in the game, adding it all to a list and then sorting that alphabetically.
*cough* wat

What kind of solid state, picomachine sorcery are you running?
 
*cough* wat

What kind of solid state, picomachine sorcery are you running?
Merely an Intel i5 2500k that used to be overclocked from 3.2 GHZ to 4.4 GHz, but after 5 years like that it started to get problems so I had to take it all the way down.
So the test time I took was from an old and tired CPU that was not overclocked.

And btw, after some more optimization of the pedia code I got it down to 150 ms.
Just try out my Fullscreen sevopedia modmod and see how fast the index now opens, the part that takes 2 seconds is actually just the .exe building the graphical UI elements.
 
Last edited:
sevopedia modmod? Tell me more, does it let me browse casually c2c content without having to wait 20 seconds for the building tab to load?
 
What I would really like in UI way is selecting for specialist. I was thinking basically a toggle for every kind of specialist that is prioritized allowed or disallowed. That way you can set up your city for whatever kind of specialisation you like and don't have to come back later because it has grown and thus decided to place a bunch of specialists you don't want. The idea is a single button that is red when you don't want spies or slaves or whatever in the city, yellow when you do allow those kind of specialists and green when you want every avaliable specialist slot of a certain kind filled. It would be such a time saver.
 
stoferb: I agree with you.

However, right now there are some options that help. Clicking on a type of specialist prioritizes that specialist. Also the city automanager button to prioritize GP points will prevent slave specialists from being chosen if another specialist slot is available.
 
I'd be happy if you implemented a minimap that doesn't show culture over water tiles, as it conceals the real shape of continents.

https://forums.civfanatics.com/threads/request-improved-minimap.250485/

https://forums.civfanatics.com/threads/minimap-aesthetic-mod.572515/
Thanks for the request. I'm sure it would be nice to have as a toggleable option. I'm not sure where all that is coded, python or DLL, and I tend to focus on the really critical stuff (and this mod has a lot of that to focus on for years to come) but others may want to take on such a project and I'd be supportive of them doing so if they'd like to pick it up.
 
Thanks for the request. I'm sure it would be nice to have as a toggleable option. I'm not sure where all that is coded, python or DLL, and I tend to focus on the really critical stuff (and this mod has a lot of that to focus on for years to come) but others may want to take on such a project and I'd be supportive of them doing so if they'd like to pick it up.
It is a one line change in a bit of the dll code. It would be about two lines if it was made an game option. More if it was one you could turn on/off in game. The last would require changes to the BUG options Python code for the toggle.
 
It is a one line change in a bit of the dll code. It would be about two lines if it was made an game option. More if it was one you could turn on/off in game. The last would require changes to the BUG options Python code for the toggle.
Of course the last option is the one I think would be most applicable here. I wouldn't want it to be a permanent unadjustable setting because I'd want to be able to see it either way in the game.
 
It is a one line change in a bit of the dll code. It would be about two lines if it was made an game option. More if it was one you could turn on/off in game. The last would require changes to the BUG options Python code for the toggle.

I tried to learn dll compiling just to make that one change, once.
 
WE need to make a further adjustment to the Tech Chooser screen. We have a lot of techs and many don't need to be researched before you go to the next era, especially the Religion ones. This can lead to huge blank regions on the screen if you have "show unlearned techs only" on.

Probably just a case of a little look ahead and if there are more than two empty columns in a row reduce it to two. This may be a problem if we still have multiple blank columns in the tech tree.

Yes I know I could turn off leading Eras to get basically what I want instead.
 
This may be a problem if we still have multiple blank columns in the tech tree.
We no longer have blank columns in the tech tree. That was one of the big things to solve this version and we've done it. Though there are some needs to audit the tech tree now but yeah, no more big blank columns, particularly before the medieval era.

Yes I know I could turn off leading Eras to get basically what I want instead.
I'm not really fully following what this option is, nor what it is you're wanting but that might be due to the fact that I never use 'show unlearned techs only' and wouldn't see any reason to because we recolor the techs that are learned.


I do have a request for a change in this python code though that is above my ability to make. I can be very specific about this:

For the main display button on a religious technology, it is currently referring to the button as defined by the religous tech in the <button> tag slot. What I'd LIKE for it to do is, specifically only for religious techs, refer to the religioninfo.xml for that religion and IF the tech is known by any civilization, use the reference in the <GenericTechButton> slot, otherwise (the religious TECH has not been researched by any civilization) use the button in the <TechButton> slot.

This is not over my head in C++ but in python I'm sure I'd screw it up pretty dramatically. So I need a little help from you or @Toffer90 on that. This should be prerelease as the setup will be complete with the updating of the FPKs. And I just made the code do this for the other places where the religious icons are parsed, such as in the tech selection bar at the top of the main interface and the tech selection popup (I did this wrong and will have it corrected in the next update.) Such a change would go a long ways towards helping a lot to SHOW whether a religious tech is achieved by any other player in the game or not (and thus is useless whether on choose religions, limited religions, divine prophets or not on any of the above.) Again, the references to those button slots are being updated and aligned to this project on the art side right now.
 
We no longer have blank columns in the tech tree. That was one of the big things to solve this version and we've done it. Though there are some needs to audit the tech tree now but yeah, no more big blank columns, particularly before the medieval era.


I'm not really fully following what this option is, nor what it is you're wanting but that might be due to the fact that I never use 'show unlearned techs only' and wouldn't see any reason to because we recolor the techs that are learned.


I do have a request for a change in this python code though that is above my ability to make. I can be very specific about this:

For the main display button on a religious technology, it is currently referring to the button as defined by the religous tech in the <button> tag slot. What I'd LIKE for it to do is, specifically only for religious techs, refer to the religioninfo.xml for that religion and IF the tech is known by any civilization, use the reference in the <GenericTechButton> slot, otherwise (the religious TECH has not been researched by any civilization) use the button in the <TechButton> slot.

This is not over my head in C++ but in python I'm sure I'd screw it up pretty dramatically. So I need a little help from you or @Toffer90 on that. This should be prerelease as the setup will be complete with the updating of the FPKs. And I just made the code do this for the other places where the religious icons are parsed, such as in the tech selection bar at the top of the main interface and the tech selection popup (I did this wrong and will have it corrected in the next update.) Such a change would go a long ways towards helping a lot to SHOW whether a religious tech is achieved by any other player in the game or not (and thus is useless whether on choose religions, limited religions, divine prophets or not on any of the above.) Again, the references to those button slots are being updated and aligned to this project on the art side right now.

1) I have not researched a number of Religion Techs that are in the Prehistoric Era but I am in the Middle Ages. This means that the "show unlearned techs" is almost the same as "show all techs" in the amount of space it takes up so I still have to do a lot of scrolling. I can overcome this by turning off the display of the earlier periods if I want.

2) Thinking on it having many blank columns would not be a problem as it would just shrink them.

3) I have difficulty telling the difference between researched and not in some eras. As would some colourblind people.

4) Icons

background Currently BtS vanilla supports two buttons for a tech. Mostly we use the Tech Icon but if a Religion or Corporation have not been founded we have the option of using the "religion icon". This is defined on the Religion and Corporation XML files.

From the Modiki
  • tag Button Defines the directory path for the religion's main button.
    - It is the one used in the pedia and is mostly like the one that shows below the city on the main map. Hellenism is the odd one out here.

  • tag TechButton Defines the directory path for the image used on the tech tree screen.
    - this is the one displayed if the Religion has not been founded. Not the same as researched but in vanilla the tech that gives the religion is not the same as the religion. That means that in vanilla you get the clue that the religion is available because the tech icon is showing the religion.

  • tag GenericTechButton Unclear. Specifies the directory path for the generic tech tree button
    - this is the one displayed if the religion has not been founded ie the tech not researched. It is the icon of the tech instead.
What this means is that in vanilla where discovering a tech means founding a religion, you can easily see if there are any religions available to be researched as the religion icon not the tech icon is displayed.


I think you are asking for something we already have the ability to do and have set up to do. The "can study" version of the icon has the "religion" button superimposed on it, ie the praying hands. Not sure we got that done for all religions but we have it for most.
 
tag GenericTechButton Unclear. Specifies the directory path for the generic tech tree button
- this is the one displayed if the religion has not been founded ie the tech not researched. It is the icon of the tech instead.
A full research into this last night and we determined this is an alternative method of creating the 'has already researched tech' button display. I guess this was added at some point in case we wanted to have a different approach to this button display entirely (such as something like greyscaling the image or something.) I want to enable this in the tech tree main button display on religious techs. It may never need be something different than the main <button> in Religions but setting it up for use, if we ever wanted it to differ it could be. If that makes sense. At the moment, the references here will be updated to the same as the main <button> in Religions which will also be the same as the button in tech infos.

The big difference I'm asking for here is for the religioninfos.xml <techbutton> tag reference be used as the tech button on the tech tree tech display when the religion isn't researched. And if it is, then pull on GenericTechButton instead. Right now, it does NOT do this swap out with the current tech tree... it's asking all techs, including religious ones, to refer directly to the techinfo <button> definition. I've found the python on this and ran tests to confirm. Perhaps an old tech tree we had did it right but it's not correct at the moment.

As for the subjects you brought up, you're the master in this dept. I'm good with what you want to do! Your reasoning makes sense.
 
Back
Top Bottom