1. We have added a Gift Upgrades feature that allows you to gift an account upgrade to another member, just in time for the holiday season. You can see the gift option when going to the Account Upgrades screen, or on any user profile screen.
    Dismiss Notice

Bug Reports

Discussion in 'Civ4Col - Medieval: Conquests' started by Kailric, Aug 4, 2013.

  1. Lib.Spi't

    Lib.Spi't Overlord of the Wasteland

    Joined:
    Feb 12, 2009
    Messages:
    3,672
    Location:
    UK
    I think the text description is muddled for the Norman's, they keep being reffered to as Norse.

    I am pretty sure it's vikings that are Norse right?
     
  2. Nightinggale

    Nightinggale Chieftain Supporter

    Joined:
    Feb 2, 2009
    Messages:
    3,998
    Interestingly enough, the vikings went to Normandy and became the Normans. Still, Norse should refer to vikings only.
     
  3. Trade Winds

    Trade Winds Chieftain

    Joined:
    Nov 21, 2013
    Messages:
    235
    Yes, Lib is right. If I accept, then I sign peace after no war.

    Another bug about food. I'll reproduce the debugger information and post it here.

    I don't have a clue what could have produced it.
     

    Attached Files:

  4. Trade Winds

    Trade Winds Chieftain

    Joined:
    Nov 21, 2013
    Messages:
    235
    Assert Failed

    File: CvCity.cpp
    Line: 4883
    Expression: iValue >= 0 || eYield == YIELD_FOOD
    Message:

    ----------------------------------------------------------
     
  5. Trade Winds

    Trade Winds Chieftain

    Joined:
    Nov 21, 2013
    Messages:
    235
    And one more bug:

    Assert Failed

    File: CvUnit.cpp
    Line: 10208
    Expression: false
    Message: Goods transported over water by none Sea Vessel

    ----------------------------------------------------------
     

    Attached Files:

  6. Kailric

    Kailric Jack of All Trades

    Joined:
    Mar 25, 2008
    Messages:
    3,094
    Location:
    Marooned, Y'isrumgone
    Thanks guys, I am looking into these now. Also note, that when you get a Diplomacy bug and you can choose, "Let me consult my advisors", the code logs what Diplomacy event is being called. So, when you see this go to your MyDocuments and find your Colonization installed and look for the MPlog in the Logs folder and upload that as well, or post the relevant parts of the log. You can open it in notepad. Also, note that MPlog is only created when you click to go to next turn. So, if you load a game there is no log created yet. So this means loading your saved games doesn't give me the log, so it would be helpful if you remember to get that for me on these types of errors. Or for any type of crash error as well. Grab that log right after the crash and upload it as well.
     
  7. Kailric

    Kailric Jack of All Trades

    Joined:
    Mar 25, 2008
    Messages:
    3,094
    Location:
    Marooned, Y'isrumgone
    Ok, the Diplomacy bug has to be tied into the Delayed Response, it looks like he is offering peace along with 300 gold in Trade's save. In Lib's game Mansa Musa is offering Peace and Gold in exchange for Peace and a Tech, however there is another Cease Fire offer being made by Godwinson "I think" and it works fine.

    I think at this point we just need to #if0 (remove) the Delayed Response feature as it is constantly being an issue until we have time to dedicate to this.

    I remember there was an issue with the Peace Treaty agreements not working as intended because of issues with the DLL and being at war. Perhaps we can try and just remove the Peace offers like this from the Delayed Response and see how that goes.

    How useful is this feature any way is the question, is it worth all this hassle?
     
  8. Nightinggale

    Nightinggale Chieftain Supporter

    Joined:
    Feb 2, 2009
    Messages:
    3,998
    Better make it #ifdef USE_DELAYED_RESPONSE. That way we can just define that flag in a header later and it will enable all the places we disable now.

    It's very useful. You get an offer, you stall it to check stuff to figure out if you want to do it or not. However the place where I need it the most is actually RaR because I play that one in multiplayer. It would be awesome to delay a response, chat about what to do and then give an answer when both member of the team agrees.

    It might have some bugs, but it will be worth it to solve those. I'm not sure what to do with the peace offering, which vanishes inside the exe. Not only is diplomacy not supposed to be the job of the exe, it has a bug in it. Removing the delayed response feature will not fix that bug and the game will still not behave as the DLL wants it to behave.
     
  9. Kailric

    Kailric Jack of All Trades

    Joined:
    Mar 25, 2008
    Messages:
    3,094
    Location:
    Marooned, Y'isrumgone
    @Night

    Will #ifdef USE_DELAYED_RESPONSE work without the variable being define?

    Yeah, while looking at the below bug I got another delayed response. It was yet another no info diplomacy screen and you could not see what it was about. I was able to check the log and see that it was a Research Pact agreement, so this bug isn't just confined to Peace Treaties.

    I agree, it is a super cool feature, we just need to work out the bugs if possible.



    Ok, this is about Saracen and their ability to change from Pirate to Land Marauders, in when they capture goods then cross over to land and are no longer suppose to carry goods. The goods are destroyed which is fine with the current code as the Saracen are somewhat independent entities but, perhaps at some point we can add the ability for them to carry these goods and sell them on the market. Anyway, these can safely be ignored for now.

    This is an interesting one and will need more investigation. The Natives "trade" amongst there own villages and for some reason one of their villages is ending up with a negative amount of weapons. I'll report back when I figure this one out.

    It doesn't crash on me however.
     
  10. Nightinggale

    Nightinggale Chieftain Supporter

    Joined:
    Feb 2, 2009
    Messages:
    3,998
    #if is handled just like a regular if, except that it is done by the precompiler. There are #if #else #endif, which pretty much covers all needs.

    #ifdef X is a shortcut for #if defined(X) and it pretty much tells what it is about. If the flag isn't defined, then defined(X) will be false.

    I wrote some other code using precompiler branching. It is in the top of CvDefines.h (note that we shouldn't mess too much in that file as the exe is sensitive about it)
    PHP:
    // allocate 32 or 64 bools for players
    // MAX_PLAYERS could be moved to the top of the file and made mod specific
    #if MAX_PLAYERS > 32
    typedef unsigned __int64 PlayerBitmap;
    #else
    typedef unsigned int PlayerBitmap;
    #endif
     
  11. Trade Winds

    Trade Winds Chieftain

    Joined:
    Nov 21, 2013
    Messages:
    235
    Several display bugs that I have experienced:

    On two occasions when I clicked to enter a city screen what I got was a zoomed out planetary view. It happened two consecutive times but then I don't know how it all continued normally.

    I also noticed that when cycling cities into the city screen, the square with the 9 plots map changed but didn't the rest of the city screen, and then when I exited the city screen, the workers remained on screen, as you can see. It got solved after opening and closing the game main options.

    From time to time I also get my map screen with no buttons

    I also found an old known bug for me, that I ignored and I could continue. (sav attached)

    Assert Failed

    File: CvPlayer.cpp
    Line: 21856
    Expression: pPlotGroup != NULL
    Message: city lacks a plotgroup

    ----------------------------------------------------------

    Also, as you can see I'm able to send a criminal to pray in one city but not in the other.

    And one suggestion, I like a monk needing wood and tools to found a city, but that should be used, not stored for another city.

    I attach the sav for the plot group bug, and the sav for the peace making deal that will be produced next turn.

    If you don't get the log (I don't have the MPlog file in my docuements\....\logs), you can ignore the plot group bug, and after a
    couple of turns you will be offered peace.
     

    Attached Files:

  12. Nightinggale

    Nightinggale Chieftain Supporter

    Joined:
    Feb 2, 2009
    Messages:
    3,998
    There is one or more python error. If the python file fails, it fails completely, not just the affected function.

    Do enable python error messages as that would be way more useful than the screenshots. Edit CivilizationIV.ini
    Code:
    ; Set to 1 for no python exception popups
    HidePythonExceptions = 0
    This way it will provide a file and a line, which fails as well as a description of what went wrong. I attached a screenshot of what an error message looks like.

    While the entire message could be useful, the most important part is the two last lines.
     

    Attached Files:

  13. Kailric

    Kailric Jack of All Trades

    Joined:
    Mar 25, 2008
    Messages:
    3,094
    Location:
    Marooned, Y'isrumgone
    Interesting, will have to investigate.

    Yeah, this is a known bug and I believe Night has fixed this issue in his update, but it hasn't been merged with mine. Or was it. Do you remember Night what is was you did for this?

    Ah, the one city is at Max Population. The city title shows red, such as Mainz (Max), meaning the city is at Max Population. If you hover over the city name it will tell you it is at Max and what buildings you need in order to increase it.

    Actually, these "Pioneer" type professions are so that you can transport materials to a site where you want to found a village/monastery and you will have those materials to help you start building infrastructure right away. They are simply extra professions for this purpose. Your Workers can choose to be "Pioneer" types as well if you have the goods available.
    Night brings up a good point. The reason you don't see any logs is logging isn't turned on in that same init file.

    You will also need to set :

    ; Enable the logging system
    LoggingEnabled = 1

    and
    ; Enable message logging
    MessageLog = 1
     
  14. Trade Winds

    Trade Winds Chieftain

    Joined:
    Nov 21, 2013
    Messages:
    235
    I know it, the fact is that that criminal was already a wine maker in the city, and I couldn't change proffesion.

    I am thinking I may get all those display bugs because I used the 8 graphic files from versión 2.5 alone...
     
  15. Nightinggale

    Nightinggale Chieftain Supporter

    Joined:
    Feb 2, 2009
    Messages:
    3,998
    That could cause pink boxes where the mission graphics should be, not complete failures. It really look like you have encountered a python bug.
     
  16. Trade Winds

    Trade Winds Chieftain

    Joined:
    Nov 21, 2013
    Messages:
    235
    Working further with the blank offer:

    Ziri ibn Manad makes me the blank offer. I consult the advisors and open the log file. I accept, I make peace and continue playing.

    This is what the MPlog said about this blank offer:
    *** Delayed Response AI_doDiploCollaborateResearch Player 8 Ziri ibn Manad Target ID 0


    That is the only mention to Ziri ibn Manad on the MPlog.
     

    Attached Files:

  17. Kailric

    Kailric Jack of All Trades

    Joined:
    Mar 25, 2008
    Messages:
    3,094
    Location:
    Marooned, Y'isrumgone
    Ok, yeah, there is just some bug in the Delayed Response. I am going to disable this feature for now until it can be fully tested. We keep having issues because we have to work through the exe and the exe isn't modder friendly. I'll post a new DLL for you guys asap.
     
  18. Nightinggale

    Nightinggale Chieftain Supporter

    Joined:
    Feb 2, 2009
    Messages:
    3,998
    Modder friendly isn't the worst problem. The main problem appears to be that it is buggy and can alter or discard diplomatic events, which is totally unrelated to modder friendliness.

    I think the easiest way to completely disable delayed responses is by adding two lines of code here:
    PHP:
    void CvPlayer::addDelayedResponses(CvDiploParameterspDiplo)
    {
        
    gDLL->beginDiplomacy(pDiplogetID());
        return;
        
    // the rest of the function is untouched, but is now unreachable
    If the DLL tries to add a delayed response, it will be forwarded to the exe and not added to the list in the DLL. It's quick to add and will be quick to remove once we look into fixing the problems.
     
  19. Kailric

    Kailric Jack of All Trades

    Joined:
    Mar 25, 2008
    Messages:
    3,094
    Location:
    Marooned, Y'isrumgone
    Well, to late. I actually thought of that half way through commenting out the lines but went ahead and finished anyway. I just comment out the delayed response and added or uncommitted the call to diplomacy. It's a one min issue regardless.

    I posted the updated DLL in the download thread.
     
  20. Nightinggale

    Nightinggale Chieftain Supporter

    Joined:
    Feb 2, 2009
    Messages:
    3,998
    I tried playing in the AI_trader branch and a native next to me declared holy war against me in 506 AD :crazyeye:

    Debugging a bit, I would say that it makes little sense. He is pleased with me. It's never fun when somebody declares war, but this war is not only too soon (vanilla code prevents other wars). I can't see what I have done to deserve this. I didn't take land from anybody, I didn't even make a unit enter land owned by another player.

    Debugging didn't reveal what made the AI decide on holy war.
     

Share This Page