@MagisterCultuum - Thanks for the alpha and save.
First issue found.
- CIV4UnitInfos.xml - UNITCLASS_ARTIST - You have a stray '3' outside of the XML tags in the UnitClassUpgrades section
Also looks like you have hardcoded paths to Magister Modmod in several places. This will break anyone trying to run it from a different directory.
I don't know how that 3 got there, but of course removed it promptly.
changeFreeBonus() - FAssert(getFreeBonus(eIndex) >= 0);
This happens when switching religions and looks to be related to your ReligiousMana section in onPlayerChangeStateReligion. Players are ending up with negative mana values. This may be By Design on your part? If so, it's not gamebreaking but it may confuse the AI at some points. And it also results in a cascade of other asserts related to bonuses.
It is intentional for the religious mana buildings to subtract some mana.
(Originally I only wanted the religion to provide -1 mana in the opposing sphere, but a +1 kept being read as a +3. I just did a quick test, and found that a -1 now seems to be read as a +5 now.)
I've never had any problems with this before. None of those bonus related asserts seem to be anything other but a minor annoyance to be hidden in debug mode and never even noticed otherwise.
At what points would it confuse the AI?
This is related to trying to play a movie for the Market.
Why would it be trying to play a move for the Market? That building never had any movies associated with it, and I pretty much always play with movies turned off.
CvSpellInterface.py - you're missing some indentation between lines 15954 and 15959
I don't think there actually was any missing indentation there. I use "break" and "continue" statements there right after the colon. If the "then" part of an "if-then" statement is a single line, then it is perfectly acceptable in python to place it on the same line right after the colon rather than using any indentation.
Just to make things clearer though, I moved those statements to the next line, indented them, and put the following code in (probably unnecessary) "else" statements.
As far as I can tell, nothing you have mentioned yet is at all related to the crash though. Have you any clue what is causing that last assert?
Code:
Assert Failed
File: CvGlobals.cpp
Line: 1845
Expression: eImprovementNum > -1
Message: