Single Player bugs and crashes v38 plus (SVN) - After the 20th of February 2018

@Thunderbrd is Advanced nukes option automatically disabled if No nukes option is selected?

By the way no AI built NASA, this means AI doesn't even know how to initiate space program.
Even without that NASA is nice national wonder.
And this savegame is close to midway of galactic era.
 
Last edited:
Found out why it stalled: see pic
 

Attachments

  • art_def.JPG
    art_def.JPG
    26.7 KB · Views: 68
Found out why it stalled: see pic
Find that name in the unit xml SELAHADINE_AYUBI and remove the name from the name list where it's found on a great person definition. That'd be the quick fix.
@Thunderbrd is Advanced nukes option automatically disabled if No nukes option is selected?
No but it shouldn't need to be.

I have one more thing to check there that would explain the behavior. I must've set the no nukes option to change the result on a unit's nuke range so they are all slipping through. Though I'm very confused by the fact that it was confirmed to now work previously but one game has held on and still is misfunctioning. I might have to look directly at that game.
 
Find that name in the unit xml SELAHADINE_AYUBI and remove the name from the name list where it's found on a great person definition. That'd be the quick fix.

No but it shouldn't need to be.

I have one more thing to check there that would explain the behavior. I must've set the no nukes option to change the result on a unit's nuke range so they are all slipping through. Though I'm very confused by the fact that it was confirmed to now work previously but one game has held on and still is misfunctioning. I might have to look directly at that game.
Oh, that's why game didn't stall on me - when I recalculated variables most likely other GP was spawned or at least different name was choosen.
I removed that name in unit defs on my side.
Will be committed after V38.5 release.

I guess this change related to no nukes didn't impact games in progress after manhattan project got built.
 
Find that name in the unit xml SELAHADINE_EYUBI and remove the name from the name list where it's found on a great person definition. That'd be the quick fix..
can someone do this for me, for some reason my SVN is acting up even after i updated it . ..thx,,,, SO
 
I guess this change related to no nukes didn't impact games in progress after manhattan project got built.
That's a possibility.
 
Oh, that's why game didn't stall on me - when I recalculated variables most likely other GP was spawned or at least different name was choosen.
I removed that name in unit defs on my side.
Will be committed after V38.5 release.
This is a critical fix. If you can somehow get this done for the SVN now, that'd be cool.
 
The nuke units appear to be capable of being trained still because caching has kept them around and is hard to initiate... perhaps a recalc could clear it up? I have another means of looking deeper still if need be.

There are some really bugged units being loaded in this save too... I'm thinking you might be hitting some strength level overflows that SM may be responsible for. I'm not 100% sure of that and it'll be a bit before I try to correct it.

I also found some other possible bugs of a fair degree of seriousness that I may attempt to resolve down the road.

I can confirm that removing that name from the list corrects the crash at least.
 
The education boni / mali unlocked at Galactic+ don't have education values assigned to them (no entry in Assets\XML\GameInfo\CIV4PropertyInfos.xml). The bonus / malus unlocked at Transhuman Lifestyle (e.g. Mastermind) is given for 10,000 education points - if you give the further boni like the previous ones, the Galactic bonus (Genius) would be at 25,000, the cosmic bonus (Wise) at 50,000 and the Transcendent bonus (Omniscience) at 100,000 - in that case the maximum would need to be raised from currently 100,000.
 
This is a critical fix. If you can somehow get this done for the SVN now, that'd be cool.
Ah I wasn't sure if it was critical fix.

I see, that you already fixed it.

I'll check, if there isn't more such surprises.

Following great persons are in UnitInfos but not in ArtDefines:
PASCUAL_OROZCO

Following great persons are in ArtDefines but not in UnitInfos:
HERCULE_POIROT
MISS_MARPLE
MONTALBANO
SHIRLOCK_HOLMES
MPASCUAL_OROZCO - TYPO ^ (great statesman)

At least three Notepad++ plugins were used in this process.

I found one typo and four unused GP (all probably meant to be great spies).
Ignored judges - they have unique names but not art defs except one - probably all judges share this art def.

At least that explained pascal thingy, that was reported some time ago and shrugged off as modmod due to incomplete bug report (someone didn't copypaste assert, just said some sort of pascal_).

The nuke units appear to be capable of being trained still because caching has kept them around and is hard to initiate... perhaps a recalc could clear it up? I have another means of looking deeper still if need be.
I recalculated before testing things in save.
 
Last edited:
I always play with disabling caching.
Game loads within minute for me, so I don't need it.
Caching means many things. In this case it means that the code saves what is and is not a valid train/build so that it doesn't have to look every round. Anything that would change what is and is not valid to train or build might reset that check but once saved it's in there until specifically obsoleted or something happens like the resource is no longer there that is required. This is different to cached xml that makes it faster to load the game and other types such as what you are toggling with in the .ini.
 
Caching means many things. In this case it means that the code saves what is and is not a valid train/build so that it doesn't have to look every round. Anything that would change what is and is not valid to train or build might reset that check but once saved it's in there until specifically obsoleted or something happens like the resource is no longer there that is required. This is different to cached xml that makes it faster to load the game and other types such as what you are toggling with in the .ini.
Ah, so it is different form of caching.


By the way I can confirm, that education related pseudobuildings at level 11/12/13 aren't spawned by education being high or low enough.

Spoiler :

I think you forgot to define their spawning levels :p
 
Ah I wasn't sure if it was critical fix.

I see, that you already fixed it.

I'll check, if there isn't more such surprises.

Following great persons are in UnitInfos but not in ArtDefines:
PASCUAL_OROZCO

Following great persons are in ArtDefines but not in UnitInfos:
HERCULE_POIROT
MISS_MARPLE
MONTALBANO
SHIRLOCK_HOLMES
MPASCUAL_OROZCO - TYPO ^ (great statesman)

At least three Notepad++ plugins were used in this process.

I found one typo and four unused GP (all probably meant to be great spies).
Ignored judges - they have unique names but not art defs except one - probably all judges share this art def.

At least that explained pascal thingy, that was reported some time ago and shrugged off as modmod due to incomplete bug report (someone didn't copypaste assert, just said some sort of pascal_).


I recalculated before testing things in save.
It used to be a non critical problem as if the code could not find the file/art define it would use the default image for the great person type.

By the way does a recalc send a call/event to Python so that it can do any recalcs it may need to do?
 
Ah, so it is different form of caching.


By the way I can confirm, that education related pseudobuildings at level 11/12/13 aren't spawned by education being high or low enough.

Spoiler :

I think you forgot to define their spawning levels :p
You can fix that if you like. In fact, please do. (You can select individual files to commit so you don't have to commit every adjustment you have to correct this isolated issue.)
 
Last edited:
It used to be a non critical problem as if the code could not find the file/art define it would use the default image for the great person type.

By the way does a recalc send a call/event to Python so that it can do any recalcs it may need to do?
1)Sparth set up an extra graphic call and did not make it as safe.
2)I don't believe Python does anything during a recalc, which is pretty much a process that just rebuilds the city numbers. Units don't generally recalc either. There's been a few more things added into the process over the years but I still am not sure about a few things on how it works exactly.
 
2. the mapinguari pikeman needs an upgrade to something??
Looks like the buildings are not done.

Suggest all Mapinguari units upgrade to Retired Mapinguari.

Retired Mapinguari are civilian/engineer units that can neither attack or defend but are captured like workers are.
Cost tech: Spear Making - retiring later units will give you money
Required techs: Ceremony, Celebration and Chiefdom
Can build (in cities)
  • Mapinguari Changing of the Guard (requires Mapinguari Compound)
  • Ceremonial Guard First Regiment (requires centre of government)
  • Ceremonial Guard Second Regiment (requires Palace or the national wonder Heroic Epic or Military????)
  • Holy Guard (requires any holy shrine, not sure if we need one per shrine or just one in a city)
All these buildings would now provide a reduced cost in building units or buildings. All would provide tourism and a positive effect for cultural stability.​

Can build (on plot, using up the unit) - Mapinguari Reserve requires caves and fresh water.​
 
2)I don't believe Python does anything during a recalc, which is pretty much a process that just rebuilds the city numbers. Units don't generally recalc either. There's been a few more things added into the process over the years but I still am not sure about a few things on how it works exactly.
I don't think we use any of the more advanced python mods where instead of doing a long bit of processing it is done once and stored in memory then only updated necessary. That sort of thing may benefit in the future.
 
where instead of doing a long bit of processing it is done once and stored in memory then only updated necessary
@raxo2222 :This behavior DH is talking about is otherwise known as caching as well.

And yes it could be a benefit but I'm not sure where python would use it... it could be done in the dll and referred to there if it needs an ongoing tracked value between saves of course.
 
Top Bottom