Diplo Screen Mod Component

Promising thread/screenshots! I'm working on a Mod for high scaled resolutions and one of three main issues is the sealed diplomatic menu. Want rewrite it by myself but now found this thread.
 
I'm considering getting serious about this. We have run into problems where the exe is really stupid regarding yield trades (presumably Colonization only issue). Regardless of what is the bug, which triggers making a new screen, it's all or nothing. I started to write about it here: https://github.com/We-the-People-civ4col-mod/Mod/issues/201, where rather than focusing on the GUI (which this thread has done), I focus on a working network implementation to avoid OOS as well as design strategy for making some standalone files, which works in both BTS and Colonization.

Since this thread was last active, I have gained a lot of modding experience. I know a lot more about python GUI work and I implemented a diplo event queue in M:C where all diplo events are stored in a queue and forwarded to the exe when clicking a button (works, but doesn't solve the exe issue). Also while I wasn't inexperienced with network sync code before, I'm more experienced now. This means I now feel like I have the experienced needed to take on a project like this. Even better, I have confidence in my plan and believe it will work and the outstanding issues are more like details, which can be solved rather than design issues.

The big question now is if anybody else wants to contribute to this. If I end up having to make everything myself, then while it is doable, it will take time. I would much rather build a "diplo screen team" to spread the workload and get useful results much faster. Teamwork is usually also a good way to share ideas and often the best design is a combination of ideas from multiple people.
 
If I can help let me know, but I think you have the DLL part covered (and a much better understanding of what needs to be done), and that's really the only part I am good at. It would be nice to find someone who can draw the Python UI which I can't really do.
 
Sadly Platyping haven't been online for more than a year :cry:
However I think I can make it draw the same thing. In fact just reusing the sample code might not be in our best interest since the new code will be written to work together with the C++ class while the sample code seems to be python only. It wasn't written in vain however since it shows that the project will not stop on some exe limitation. We can draw everything if we call the exe with the right functions/arguments. It's part of the reason why I'm getting close to 100% sure I can get everything up and running without drawbacks.

In fact I think I can do everything myself, meaning I'm not stuck depending on other people. However I would prefer not to be alone, purely from the perspective of how much time I would have to invest in this if I'm completely alone. Particularly testing is something I would prefer other people to do, partly due to time and partly because it's always best to get somebody else to test your code. If you test your own code, you tend to test what you designed the code for while other people are better at ending up in the cases you didn't think of when designing. Bugs tend to hide in the cases you didn't think of while designing.


I figured out what to do about music. The main issue seems to be that we only have an on/off switch while track selection is inside the exe.
On screen open: stop music and play sound effect.
On screen close: stop sound effect and start music.

If the sound effect points to the same audio file as the music, then the player will think it's playing music. The only tradeoff is that it will use the sound effect volume slider instead of the music volume. We can somewhat compensate by using CyUserProfile::getMusicVolume() and CyUserProfile::getSoundEffectsVolume(). In fact since we can set them, we can set sound effects to the same volume as music and restore on window close.

Another neat trick feature would be checking if the sound effect is playing in update(). if not, then start playing. The result will be looping music.
 
... and partly because it's always best to get somebody else to test your code. If you test your own code, you tend to test what you designed the code for while other people are better at ending up in the cases you didn't think of when designing. ...
This is the reason for huge/lengthy design discussions and writing test cases based on the design before writing code.

I am willing to help test and discuss design but I have too many projects on the go.
 
Top Bottom