Branch "Challenge" - Candidate for Release 2.8.1. - for testing [OBSOLETE]

Loaded up 2.8.1 and receive this screen when I clicked on the Europe icon.

Making sure I installed correctly - unpacked the file attached to the very first post in thread and replaced it with the dll in the \assets folder
 

Attachments

  • Screenshot 2020-10-01 20.30.24.png
    Screenshot 2020-10-01 20.30.24.png
    483.1 KB · Views: 145
Did you also download "Challenge" as well?
(And replaced everthing within your WTP mod folder with its content?)

Branch "Challenge" contains the complete mod without DLL.
(With all recent updates.)

After that you can copy the DLL attached from the starting post (after extracting of course).
Updating the DLL alone will not suffice. (You first need to get the complete rest from Challenge.)

Savegames from 2.8 are not compatible with 2.8.1

By the way:

"Challenge"
and DLL were just recently updated yesterday.
(To reflect some of the recent changes made in the Advisor Screens.)

Both DLL Versions (2-Plot and 1-Plot) were updated.
(2-Plot-DLL attached in starting post and for 1-Plot-DLL by following the link from there)
 
Last edited:
I downloaded the updated mod and dll - the same error. I was creating a new folder for the mod, not adding to the existing one.
I have two saves:
zzz is the most recent update to the mod. error when trying to open the Europe screen.
Mr. ZorG AD-1494 is the penultimate update of the mod. no error when trying to open the europe screen.

saving in the attached archive.

SOS)))
 

Attachments

  • single.7z
    1 MB · Views: 41
1.
Today, I downloaded the challange-files and the 2-Plot-DLL and started a new game and were shown the Python Exception as well as Derek Brown when entering the europe screen. But when I loaded a savegame from before the newest file combination the europe screen appears.

2.
On a map with plenty islands I found a scout stuck on a smaller one. :)
 

Attachments

  • Civ4ScreenShot0000.JPG
    Civ4ScreenShot0000.JPG
    224.7 KB · Views: 69
@community:

I can absolutely confirm this bug. :sad:
(Whenever I try to open Europe Screen, I also get that Exception.)

The good news is, it is extremely easy to reproduce.
(By starting a new game and trying to enter Europe Screen.)

The bad news is, it is a really serious bug.

However:

It only happens if I start a new game. :think:

When I load an existing game, everything is fine.
(Which is the reason I first could not confirm it.)

This is really strange ... :dunno:
(Nothing I had coded wouled explain this.)

Edit:
see SPOLER

I think I can now explain after some more analysis.

Spoiler :

Edit:

I found out that it is somehow related to the the following call.
(It is also mentioned in the Python Exception.)

CvEuropeScreen.py
Line 117


sdToolKit.sdEntityInit('komaScreens', player.getID(), { 'TradeBox': false, 'LastWinter': 0, 'PreviewMode': "INTERFACE_DOMESTIC_ADVISOR", 'DealFailed': -1 })

Edit 2:

Further analysis leads me to the point, where I am pretty sure that this recent change has caused the trouble.
(But I do not understand why it was made.)

CyPlayer.cpp
Line 562

This new method returns "PlayerTypes"

Code:
PlayerTypes CyPlayer::getID() const
{
   return m_pPlayer ? m_pPlayer->getID() : NO_PLAYER;
}

Before it was like this:
And the old code was working perfectly.

The old method returned an "int"
Code:
int CyPlayer::getID()
{
   return m_pPlayer ? m_pPlayer->getID() : -1;
}


Summary:

@Nightinggale

Could you please check what happened, fix it and let me know?
(I will then attach the corrected DLLs again.)

I could change and fix it myself but you seem to have changed it on purpose . :dunno:
(I do not want to mess up something else, e.g. some other code you have coded for Domestic Advisor.)
 
Last edited:
@Derek Brown
@Mr. ZorG
@3tag


Thanks for reporting. :)
Do not worry, we will get this bug here fixed soon. :thumbsup:

Once it is fixed, I will inform community.
(And also upload corrected DLLs.)

Things like this happen if a branch is still in development.
("Challenge" is still just a test branch, that gets updated from time to time.)

Sorry for any inconvenience.
And also thanks for your support.
 
Last edited:
Could you please check what happened, fix it and let me know?
(I will then attach the corrected DLLs again.)

I could change and fix it myself but you seem to have changed it on purpose . :dunno:
(I do not want to mess up something else, e.g. some other code you have coded for Domestic Advisor.)
Fixed. Ironically it was an unneeded change, which was intended to catch bugs rather than cause them. I'm still not quite sure why it failed, but it looks like we better not change the return types of existing functions. It seems safe to do in C++ though and will catch certain types of bugs at compile time. I added a bunch of compile time tests as well as startup tests (non-release version) to the DLL and here it works as intended and they do catch bugs from time to time (usually before anybody has a chance to test something new manually). I figured if it's a success in the DLL, why not do the same to python? Well now we know why it shouldn't be done to python. Oh well. Most code is in the DLL anyway, with GUI code being the biggest exception and yes this was GUI code breaking.
 
@Community
The bug reported above has been fixed. :)
(And yes sorry, it was serious.)

The updated / corrected DLLs (both 2 Plot DLL and 1 Plot DLL) have been attached again.
Thus to everybody who had recently downloaded branch "Challenge" from this thread, please get the updated DLL.

@Nightinggale
Thanks for fixing it so fast. :thumbsup:
 
Last edited:
... but it looks like we better not change the return types of existing functions.
Yes please. :)
At least if it is not a necessary fix.

But well it is fixed again now. :thumbsup:
Nothing bad happened - except myself breaking out in panic after reading Mr. Zorg screaming "SOS" ...

And also, we are a bit smarter again.

My bug analysis was really confusing me as well - because I had checked your commit before I merged.
And everything looked ok but I found no other explanation either than the return type of getID().

I am glad it was that easy to fix though.
 
Last edited:
I apologize for causing such a panic ...
Nothing to apologize for. ;)
We are happy that it was reported soon enough and is now fixed.

But see, considering serious bug reports of RaR / WTP I react like a mother that is told "Your baby is sick.". :lol:
 
[QUOTE = "raystuttgart, post: 15928440, member: 204022"] I react like a mother that is told "Your baby is sick.[/ QUOTE]
:clap::goodjob:
 
Ok, I will link to this post now from the starting post. :thumbsup:
(I will also remove my attached DLLs to be sure.)

I know it is a bit annoying to publish DLLs this way.
But once the official release is published, it will not be necessary anymore.

Please keep it synchronized to the other changes in "Challenge" that depend on DLL.
Meaning to post updated DLLs whenever necessary.
 
Last edited:
We need to version these releases somehow. I hope we at least tagged the commit they were built from.
Good point. It's the newest revision in the Challenge branch at the time of upload. Not the greatest versioning number. Makes me wonder if we can compile the revision into the DLL. I think I coded something like that for Medieval Conquest, but then it has the sideeffect of not compiling without having git installed. There are however ways around that as well. It would make sense to add the revision string to DLL, log at startup and savegames, particularly if it can be done automatically.
 
I figured out an trader exploit.
Choose a Nation/Leader with an enterprising perk and established a trade post in an settlement which has the trader perk. Like Chef Joseph, Uracca,... Around every 6 turns they produce a treasure.
( Please confirm )
 
I figured out an trader exploit.
It is not an "exploit" in my opinion. :nono:

Choose a Nation/Leader with an enterprising perk and established a trade post in an settlement (of a Native Leader) which has the trader perk ...
I know that. :)

That is exactly why I implemented "Native Trade Posts" to also be affected by Traits.
(This did not happen by accident" - it had to be coded purposely.)

When I implemented / configured "Native Trade Posts" I wanted to make "Enterprising" stronger.
(Because before this feature it was actually one of the weakest Leader Traits.)

This is not an exploit, this is just "smart gameplay" / making good usage of features. :thumbsup:

( Please confirm )
Confirmed. ;)

Edit:

Just in case you have not figured out yet yourself
- apart from the Leader Traits (of Player and Natives) or the Expertise of the Native Trader Unit founding the Trade Post -
the most important factor for the effectiveness of "Native Trade Posts" is the size of the Native Village.
(The larger the Village, the faster you get Gold.)

Edit 2:

Grrr ... players start to figure out the deep hidden secrets of my feature logic. :undecide:
I need to make my next features more complicated and confusing. :mischief:
And in Game Concept Pedia I will write only total non-sense and misleading information ... :devil:
 
Last edited:
I just tried the the Enterprizing/Native Trader Combo an like it very much.
"Danke für den Tipp" :)
 
Top Bottom