[We the People] Bug reporting

[New_Hope daily (current)]
Pastures and pens cannot be built on hills. I think this is caused by hills not yielding food anymore.

I tried fixing this by emptying PrereqNatureYields, and I think it works, but is this ok? Why was it set in the first place?
 
[New_Hope daily (current)]
Pastures and pens cannot be built on hills.
I will check it. :thumbsup:

Edit:
It is fixed now in my last commit. :)

-----
I think this is caused by hills not yielding food anymore.
Only some Terrains have Hills without Food to be precise.
(e.g. on Grasland or Savannah Hills still have Food, but e.g. Taiga or Shrubland Hills do not.)

Why was it set in the first place?
Because originally the Food requirement was used to prevent Pastures to be built e.g. in Desert or Tundra regions.
(With the current setup this is however done by listing the valid Terrains explicitly.)

-----

Anyways, it is fixed now. :)
Thanks for reporting.
 
Last edited:
I have consistent crash to desktop. I am running 3.0.1, Steam version, I have reverted in steam to the version mentioned in the installation instruction and I am using the DLL from June. I have no idea why this is happening..
 

Attachments

[New_Hope daily (current)]
Olives resource is valid on shrubland hills, but shrubland does not allow olive production.
I'd suggest either 1) changing the resource to be valid on plains or 2) moving olive production from plains to shrubland. (probably better 2)

Also, forests currently reduce olive production where I think they should increase it instead.
 
[New_Hope daily (current)]
On Rock Steppes you can build a mine but not a quarry. Quarries on flat land exist in the real world, is there any reason not to allow this?

AFAICT this is the only base terrain that yields stone, and there are no features that add stone, so removing bHillsMakesValid from IMPROVEMENT_QUARRY should not impact anything else.
 
[New_Hope daily (current)]
Light and heavy artillery veterans can not be trained in universities. I'm not sure that is intended - there is no way to get veteran artillery except buying from Europe ...

I think this setting should be something else than 0 for both units...? (2? or 1 for heavy?)
XML:
<iTeacherWeight>0</iTeacherWeight>
 
I think this setting should be something else than 0 for both units...? (2? or 1 for heavy?)
Without looking through the code, I will assume the code uses 0 and 1. As I recall the weight stuff has been replaced with booleans. However I can't even remember how it's used offhand. I know that iTeachLevel sets which level school is required, so setting that to 3 would require universities.

Also the school only learns new units on new turn event so to change xml and test this you need to place those units in the colony and then end the turn. If you enable them, then they should show up as a possible candidate for students the following turn.
 
Without looking through the code, I will assume the code uses 0 and 1. As I recall the weight stuff has been replaced with booleans. However I can't even remember how it's used offhand. I know that iTeachLevel sets which level school is required, so setting that to 3 would require universities.
the iTeachLevel is already set to 3 (as expected), but iTeacherWeight seems necessary as well.
According to this post https://forums.civfanatics.com/threads/learning-cost.410491/post-10179900, iTeacherWeight sets the price of the unit when learning, decreasing with higher prices.
I chose to set it to 2, same as veteran infantry. (3 would be the cheaper professions like blacksmith etc., 4 would be no gold cost like farmer etc.). I don't know what 1 would do.

// edit: I tested it and it works. But I was not entirely sure if this is an oversight or intended behaviour. If you agree that artillery veterans should be taught in the colonies, here is a pull request:
https://github.com/We-the-People-civ4col-mod/Mod/pull/659
 
Last edited:
there is no way to get veteran artillery except buying from Europe ...
That is not true, you can still get them from LbD (by Combat XP.) --> This is actually the intended method to get Veterans in the game.
(Except buying them of course - but after Declaration of Independendence LbD was intended to become the main source of Veterans.)

----
I'm not sure that is intended -
Yes and no.

Yes: I always hated that Veterans could be trained by School System.
No: It is inconsistent to the other Veterans that still can be trained by School System.

---

For me training Veterans in College (by TAC School System) instead of on the Battlefield (by RaR LbD) is kind of an exploit.
But since people got so used to it and each player can decide for himself if he wants to us it or not ... let us just keep it. :dunno:

---

Summary:
Let us just give them the same value of iTeacherWeight as for the other Veterans. :thumbsup:
(There was no real intention to have them balanced different like the other Veterans.).

Edit:
I merged the pull request.
 
Last edited:
WB is consistently crashing here. Any ideas why?

It seems to be in the exe, so I can't even try to read the code ...
Code:
wine: Unhandled page fault on read access to 00000054 at address 009AFFB4 (thread 0120), starting debugger...
Unhandled exception: page fault on read access to 0x00000054 in 32-bit code (0x009affb4).
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
 EIP:009affb4 ESP:0122f13c EBP:2797dc30 EFLAGS:00010213(  R- --  I   -A- -C)
 EAX:00000015 EBX:786e5850 ECX:786e5820 EDX:00000000
 ESI:786e5850 EDI:00000000
Stack dump:
0x0122f13c:  786e585c 786e58a0 00000000 2797dc30
0x0122f14c:  786e5850 786e5850 009b0cb4 00000000
0x0122f15c:  73d3c531 10036e30 00000000 10036e84
0x0122f16c:  27ddb388 2797dc30 10036e84 73d3c531
0x0122f17c:  009a701f 009a703e 27f66b30 10036e30
0x0122f18c:  2797dc30 27ddb370 00000001 00915d86
Backtrace:
=>0 0x009affb4 initCvPythonExtensions+0x2e07d4() in colonization (0x2797dc30)
  1 0x00000003 (0x00ad5e5c)
  2 0x009149d0 initCvPythonExtensions+0x2451f0() in colonization (0x00915190)
  3 0xfffffbe8 (0xe8f18b56)
0x009affb4 colonization+0x5affb4: movl  0x54(%edi),%ecx
 
WB is consistently crashing here. Any ideas why?
The only consistent reason I remember from the past with crashes of WB are related to graphics.

-----

e.g. There are "Building_Bonus_..." graphic references that are only used if a Bonus Resource is on the same plot as a City / Native Village.
If one of them is broken, the game may crash once you open WB and the graphics engine tries to display that graphic.

The best way to test without a save:
Start a new game.
Place a Native Village by WB.
Test placing each Bonus Resource on that Plot.

If it crashes you figured out that the "Building_Bonus_..." graphic reference is broken.

Alternatively to analyse with a save:

Of course a debug DLL could also help you to find the issue.
(Since that crash would be 100% reproducable with a save.)

-----

All other bugs related to graphics you should most likely already find in Colopedia.
(Except maybe rare stuff related to animations.)

-----

Edit:

Just tested "Building_Bonus_..." references of all Bonus Resources as described above.
They all worked fine - so that is no the problem.
 
Last edited:
WB is consistently crashing here. Any ideas why?

It seems to be in the exe, so I can't even try to read the code ...
If you have a savegame, which does this, then give me that savegame. There is a reasonable chance that I can catch this with a debugger where it triggers an assert failure or something.

Other than that, not sure. It's reading a null pointer like it points to data and while that is a common cause of a crash, it doesn't really give any indication to what the bug might be.

The only consistent reason I remember from the past with crashes of WB are related to graphics.
WB shows the entire map so if there is a plot, which has corrupted data (possibly valid game data with broken xml data), then it crashes when trying to display it. If so it's plausible it will crash too if you try to explore that plot during the game. This too gives little information on where to look for such a bug, other than going through all xml files manually and maybe spot something if you are lucky.
 
If you have a savegame, which does this, then give me that savegame. There is a reasonable chance that I can catch this with a debugger where it triggers an assert failure or something.

Other than that, not sure. It's reading a null pointer like it points to data and while that is a common cause of a crash, it doesn't really give any indication to what the bug might be.


WB shows the entire map so if there is a plot, which has corrupted data (possibly valid game data with broken xml data), then it crashes when trying to display it. If so it's plausible it will crash too if you try to explore that plot during the game. This too gives little information on where to look for such a bug, other than going through all xml files manually and maybe spot something if you are lucky.
I had thought at first it was wrong plot information (because I did quite some editing and the game has survived a few updates of the DLL).
But at a later state the same game does allow WB to open, so I'm attaching the save that allows the crash to reproduce. Just enter WB right after loading.

Note that there is a plot near Tampico which has been manually edited before, now it has non-matching resource/terrain. I wanted to edit that same plot back. Actually I was now able to do this a few turn laters into the game.
 

Attachments

I found a small issue in branch New_Hope (SHA-1: c246545c). Salinas can be built in the inland. The toolTip says "Yields raw salt from costal terrain".

1671967163910.png
 
I found a small issue in branch New_Hope (SHA-1: c246545c). Salinas can be built in the inland. The toolTip says "Yields raw salt from costal terrain".
It's most likely triggering on the river. However rivers rarely contain salt so indeed this is a bug. The question is how to fix this. Maybe build commands should gain a surrounding terrain required like buildings has now. It sounds like a good solution, but I'm wondering about the performance impact.
 
Back
Top Bottom