Bug Reports

Debug version works for me. I loaded a savegame (single player, no AI for testing) and it worked fine. I can't build monesteries, but I also discovered another problem. There is a bandit with 24 HP left. He has +10% power (veteran?) and +75 defense from plot. This gives him a total power of 48.83, making him totally unbeatable for my veteran soldiers, which only has a power of 3.3. Also archer profession appears to be missing.

The weird part is that all this worked the last time I checked :confused:

Maybe I can find my CD version and reinstall. Yeah, I didn't really notice 24 hitpoint bandits but the odds versus my spearman seemed a bit odd. Anyway, in one of the patches I made it so in order to be an Archer your unit had to be level 2. I could be archers in my game, veterans can be archers at the start.
 
When ever I open the Medieval_Tech project in MV C++ 2010 express I get the below error codes...

errorlist.jpg

And when I attach debug I get the following errors. The game crashes as soon as I try to do anything in the game... any ideas?

P.S. I went through and added permissions to all the common files in Steam but they didn't help anything.
Code:
'Colonization.exe': Loaded 'C:\Program Files (x86)\Steam\SteamApps\common\Civilization IV Colonization\Colonization.exe', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\ntdll.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Program Files\AVAST Software\Avast\snxhk.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\kernel32.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\KernelBase.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Program Files (x86)\Steam\SteamApps\common\Civilization IV Colonization\boost_python-vc71-mt-1_32.dll', Binary was not built with debug information.
'Colonization.exe': Loaded 'C:\Program Files (x86)\Steam\SteamApps\common\Civilization IV Colonization\zlib1.dll', Binary was not built with debug information.
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\gdi32.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Program Files (x86)\Steam\SteamApps\common\Civilization IV Colonization\binkw32.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\ws2_32.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Program Files (x86)\Steam\SteamApps\common\Civilization IV Colonization\msvcp71.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\version.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Program Files (x86)\Steam\SteamApps\common\Civilization IV Colonization\python24.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Program Files (x86)\Steam\SteamApps\common\Civilization IV Colonization\msvcr71.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\user32.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\advapi32.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\ole32.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\shell32.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\oleaut32.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\winmm.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\d3dx9_33.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Program Files (x86)\Steam\SteamApps\common\Civilization IV Colonization\Mss32.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Program Files (x86)\Steam\SteamApps\common\Civilization IV Colonization\hapdbg.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\dsound.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\msvcrt.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\rpcrt4.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\nsi.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\sechost.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\combase.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\shlwapi.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\winmmbase.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\powrprof.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\sspicli.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\cfgmgr32.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\devobj.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\cryptbase.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\bcryptprimitives.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\imm32.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\msctf.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Program Files (x86)\Steam\GameOverlayRenderer.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\psapi.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\cryptsp.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\rsaenh.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\uxtheme.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\clbcatq.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\SHCore.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\profapi.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\propsys.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\setupapi.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\linkinfo.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\ntshrui.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\srvcli.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\cscapi.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Users\Teddy Mac\Documents\My Games\Civilization IV Colonization\MODS\Medieval_Tech\Assets\CvGameCoreDLL.dll', Symbols loaded.
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\msxml3.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\dwmapi.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\wtsapi32.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\winsta.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.9200.16658_none_bf1359a245f1cd12\comctl32.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Program Files\Logitech Gaming Software\LcdApi\x86\LgLcdApi.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Program Files (x86)\Steam\SteamApps\common\Civilization IV Colonization\Miles\win32\mssmp3.asi', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Program Files (x86)\Steam\SteamApps\common\Civilization IV Colonization\Miles\win32\mssvoice.asi', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Program Files (x86)\Steam\SteamApps\common\Civilization IV Colonization\Miles\win32\mssdolby.flt', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Program Files (x86)\Steam\SteamApps\common\Civilization IV Colonization\Miles\win32\mssds3d.flt', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Program Files (x86)\Steam\SteamApps\common\Civilization IV Colonization\Miles\win32\mssdsp.flt', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Program Files (x86)\Steam\SteamApps\common\Civilization IV Colonization\Miles\win32\msseax.flt', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Program Files (x86)\Steam\SteamApps\common\Civilization IV Colonization\Miles\win32\msssrs.flt', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\MMDevAPI.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\AudioSes.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\avrt.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\atiu9pag.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\d3d9.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\aticfx32.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\atiumdag.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\atiumdva.dll', Cannot find or open the PDB file
'Colonization.exe': Loaded 'C:\Windows\SysWOW64\d3dx9_31.dll', Cannot find or open the PDB file
The thread 'Win32 Thread' (0x14d4) has exited with code 0 (0x0).
Warning: DirectSound playback reset due to non-moving playback cursor (buggy sound driver) time: 77396 play: 9064 write: 11708.
 
The first errors is not really an issue IntelliSense is the VC++ feature which allows you to click on a function name and jump to the function or hover over enums to get their value. It complains that it can't find boost and python meaning those functions will get red lines underneath. The makefile is less picky about the locatoin of those directories and you can compile if the Makefile can find them. You can copy the two directories into the source (the directories, not content of the directories!) and the error should go away.

Failure to find the PDB file is normal. PDB files contain debugging information and we aren't really interested in debug info in anything besides our own DLL file (ok, I would like to see the one for Colonization.exe, but I can't).

I'm not sure about the DirectSound error. Update DirectX or ignore it. If audio plays fine, then ignore it.

I can't see any problems that should prevent you from compiling or playing. There is no clue to the issue with lack of monasteries etc in the output you printed here. I plan to go back in time to the time where I made my test savegame because it was working back then and then walk though the changes to see where it breaks. I'm not sure when I will finish that task, but it's top priority and is the next thing I will do.
 
There is a bandit with 24 HP left. He has +10% power (veteran?) and +75 defense from plot. This gives him a total power of 48.83, making him totally unbeatable for my veteran soldiers, which only has a power of 3.3.
Fixed. It was a typo when using gear types to set combat modifiers, which resulted in giving the bandit +9999% for something where he should have gained +0%.

One good thing came out of this. The bug was near impossible to miss once I met the right conditions for it and the combat odds was aware of the changed modifier meaning combat odds are aware of modifiers aimed towards gear types. This is great news for the AI.
 
I have found the cause of the failure to build monasteries. The cache is set before the variable is loaded and monasteries becomes 0 when read from XML and 1 where it is hardcoded in the DLL. As a result monasteries can only be build when 0 == 1.

I have had it with XML load order. I thought I had it right this time (did a lot of testing), but now I would dare to say that we need a new approach to the problem. Fixing the bug is easy, but it is likely to fail for another variable either now (undetected so far) or for future additions. I have decided to sacrifice a little performance to get rid of this problem once and for all.

The new approach is NOT to set the cache when the game starts. Instead it is set to some value not used by XML ('m thinking of using 0xFFFF1234, which is -60876 and is unlikely to be used in XML). When reading, if the cache has this value, then the cache should update for that specific value. This way we don't have to consider when to set the cache relatively to when each data is loaded and this type of bug will be history. The only way this can go wrong is if a value is read during the init process before the XML value in question is read from XML. However doing that would make even getDefineINT() fail.

I can't help thinking we have a check, which fails way more than 99% of the time. The CPU estimates if it is true or false and then have to flush the pipeline each time it guesses wrong (loses like 30 cycles each time). There is an instruction which tells the CPU to assume it should always assume false (and one for true), but those are only available from ASM, not C++. I'm not going to use ASM for this, but this is a decent candidate for that instruction. Oh well at least it will still be way faster than getDefineINT(), which the cache is meant to replace. We aren't likely to detect any performance difference from this extra check anyway.

Now the issue is to code this new approach. I know how to do it, but I can't tell when I will finish it. It shouldn't take too long, but I want the real final solution this time with a perl script to update the cache building function automatically or we will have another potential bug when adding new XML values in the future.
 
Fixed the cache problem and pushed the solution. The cache now works a bit different and didn't end up working as I wrote in the previous post.

I added the following functions (all part of CvGlobal)
getXMLuncached:
It gets an index as argument and return getDefineINT() for that index. This is synced with XMLconstantTypes in CvEnums.h and kept in sync with a new perl script.

There are now two functions to read from the cache:
getXMLval
This one sets the cache if it is unset and always return the content of the cache.

getXMLvalConst
This one returns the return value from getXMLuncached() if the cache is unset and the content of the cache if it is set. It will assert if the cache is unset as it results in a serious performance issue.

Both functions will always return the same. Generally I recommend using getXMLval as setting the cache is highly recommended. getXMLvalConst() is intended for const functions as they can't call non-const functions.

During startup all cache is set to being uncached (XML_INIT_VALUE from bottom of CvEnums.h). Once most XML is read it will set the cache for as much as it can. However it can't tell the difference between 0 and unset meaning only non-zero values are cached at this point. The rest will be cached when calling getXMLval(). getXMLvalConst() benefits the most from values being set here while it makes little difference to getXMLval().

getXMLvalConst() isn't used at the moment, but it is likely critical to have for some future additions.
 
I'm having problems accessing the github repo for some reason.. I've been using Git for Windows interface which has been working well, but now when trying to pull from the master it fails to sync; and also fails when trying to pull directly using git at the command prompt.

I've been searching online & in the documentation and found the same issue described at the stackoverflow thread below:
http://stackoverflow.com/questions/15387640/github-windows-failed-to-sync-this-branch

When I instead often a git shell and type git status, it gives expected output "behind 'origin/master' by 6 commits", etc without any indication of problems.
Spoiler :
command prompt, Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. All rights reserved.

C:\Users\DR\Documents\GitHub\Medieval_Tech [master +1 ~15 -0 !]> git status
# On branch master
# Your branch is behind 'origin/master' by 6 commits, and can be fast-forwarded.

# (use "git pull" to update your local branch)
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: Assets/Python/Screens/CvMainInterface.py
# modified: DLL_Sources/CvCity.cpp
# modified: DLL_Sources/CvCity.h
# modified: DLL_Sources/CvDLLButtonPopup.cpp
# modified: DLL_Sources/CvEnums.h
# modified: DLL_Sources/CvGlobals.cpp
# modified: DLL_Sources/CvGlobals.h
# modified: DLL_Sources/CvSelectionGroupAI.cpp
# modified: DLL_Sources/CvUnit.cpp
# modified: DLL_Sources/CyCity.cpp
# modified: DLL_Sources/CyCity.h
# modified: DLL_Sources/CyCityInterface1.cpp
# modified: DLL_Sources/CyEnumsInterface.cpp
# modified: DLL_Sources/Medieval_Tech.vcxproj
# modified: ReadMe.txt
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# scripts/getXMLval.pl
no changes added to commit (use "git add" and/or "git commit -a")
When trying git pull from the command prompt it gives a proxy error; so I tried correcting this as described in the stackoverflow thread, but it didn't help. I also checked in my c:\users\DR\.gitconfig file but I think it seems to have the settings correct:
[user]
name = orlanth
email = Colonization2071@gmail.com
[http]
proxy = %HTTP_PROXY%
Any ideas of how to correct this? :confused:
Spoiler :
C:\Users\DR\Documents\GitHub\Medieval_Tech [master +1 ~15 -0 !]> git pull
fatal: unable to access 'https://github.com/Nightinggale/Medieval_Tech.git/': Co
uld not resolve proxy: %HTTP_PROXY%
C:\Users\DR\Documents\GitHub\Medieval_Tech [master +1 ~15 -0 !]> git config --gl
obal http.proxy %HTTP_PROXY%
C:\Users\DR\Documents\GitHub\Medieval_Tech [master +1 ~15 -0 !]> git pull
fatal: unable to access 'https://github.com/Nightinggale/Medieval_Tech.git/': Co
uld not resolve proxy: %HTTP_PROXY%
C:\Users\DR\Documents\GitHub\Medieval_Tech [master +1 ~15 -0 !]>
 
I can pull just fine meaning the problem is in your end.

Generally speaking when I can't pull it is often because I have local uncommitted modifications. Commit those first. If that isn't the problem, then try to make a new clone.

I don't like the proxy problem. If you wrote --global like in the link then it will be true for all your git clones, even future ones. The danger here is that it worked before you wrote it and if that breaks it somehow, then you screwed git on your system. Whenever I test something I use --local first to only modify the clone I test on.

Maybe you should try
Code:
git --global unset http_proxy
You can always set it again afterwards if it doesn't work.
 
I pulled the lastest update just now with no problems. I was having problems once before and thought I wasn't getting any error feedback but then I realized that I could scroll up in the feedback box and it told me exactly what my problem was.
 
I think it's some problem with the Github for Windows application.. I had to uninstall and reinstall a couple times, and the Github for Windows GUI still isn't recognizing any local changed files to add to a commit, but I was finally able to do it using git pull, add, commit and push manually directly from the shell (at least it seems to have worked.)
 
In this game I've killed all the Pope's units except some carricks. So why haven't I won?
 

Attachments

  • Current Solo MT 2.0 Development Game.ColonizationSave
    368.1 KB · Views: 32
In this game I've killed all the Pope's units except some carricks. So why haven't I won?

Thanks mastrude, maybe this time I can track down this bug as I've seen it before. By the way, has anyone heard from Nightinggale as I haven't seen him on lately?

Edit: Which version of the Mod is this a saved game for as it says it needs the Medieval Tech Working mod?
 
I am not sure if this is a bug, or if I am doing something wrong, or if this is just the way it is.

It's about Tax collecting.

I currently have 2 vassal towns, I am collecting taxes from one, but when I sent a collector to the second it did not let me tax them. (there was no button)

Is it supposed to be this way? Could it be because bot vassals came from the same parent civ? Can you only collect from one vassal town? If so what's the point of multiple vassals?

P.S. I really like the tax system!
 
I am not sure if this is a bug, or if I am doing something wrong, or if this is just the way it is.

It's about Tax collecting.

I currently have 2 vassal towns, I am collecting taxes from one, but when I sent a collector to the second it did not let me tax them. (there was no button)

Is it supposed to be this way? Could it be because bot vassals came from the same parent civ? Can you only collect from one vassal town? If so what's the point of multiple vassals?

P.S. I really like the tax system!

Cool, thanks. The tax system is in the rough at the moment but I glad you like it. Each town should be able to support one and only one tax collector. If you have followed all the rules for tax collector I am not sure what could be causing this. If you can't figure it out post a save.
 
Ok, here is a save from my game, I have two vassals in the south of my kingdom, the one in the centre has a tax collector (all good) the one on the left won't take one, you should be able to 'borrow' a person from the monastery next door, to test. Sorry I didn't have a save with a taxman there already..

I think I am following the rules, unless I have missed something, like I said the first one worked fine and I just repeated the process for the second..
 

Attachments

  • AutoSave_AD-1407.rar
    303.9 KB · Views: 50
I am not sure if this is a bug or not, or if you just decided to change the implentation, with the FAIR trade screen, I can access it in any of my cities, without needing to build The Fair.

I am curious to know, I would like to know if there is the ability to program trade screen types from both 'towns' and 'buildings'.
 
I am not sure if this is a bug or not, or if you just decided to change the implentation, with the FAIR trade screen, I can access it in any of my cities, without needing to build The Fair.

I am curious to know, I would like to know if there is the ability to program trade screen types from both 'towns' and 'buildings'.

At the moment it is not a bug. I changed it up for some reason I can't even remember now. But it is possible for sure to program trade screen types from towns or buildings. I remember trying to decide if I wanted to have to build a Fair building first or not and eventually just went with towns.
 
Yeah that is cool, I find myself not using the fair over much anyway, although at the moment I am considering buying LOADS of plate armour, using my 40,000 or so profits from my Spice-Silk trade :D I love that part of the game!

Is the Building/Town bit handled in SDK?

Both actually. <iModdersCode1>MODER_CODE_ALLOWS_TRADE_FAIR</iModdersCode1> in BuildingInfos tells the SDK that this building allows the trade fair. And currently the SDK allows travel to the fair from any town. This could be change easily enough by adding some new modding code.
 
Yeah, I saw that XML entry, so I figured other something was broken or removed from the SDK, or you had added something in the SDk that just over rode it.

Is this controlled by just one file in the SDK, or is it spread out over several files? I know how to compile SDk and have made some changes in the past, as well as modcomp merging, but always civ4, and I still don't 'really' understand what I am doing, but sometimes 'poop is magical', or a Wizard uses some of theirs! :D
 
Top Bottom