a) UnitExt : Not much big thing.
1. Added truely unique and invariant Uinit ID. It is unique across all units of *ALL* players and will not chnage before/after unit upgrade/unit gift. You can use the UID as true key or handle to individual units.
2. Script data is preserved across upgrade/gift.
3. getNamekey() will return true TXT_KEY_ key for Great People.
4. More genaral unit data save/load framework. (under study) including versioning.
planned : fast UID -> CvUnit look up. Dynamic Unit XML varible. ( Remove need to change SDK code to add new XML vaiable)
b) Much more flexible and dynamic than existing Action Button 2.0 facility. In fact, it is more general "Custom Widget Action" facility. Any new widget ( Not just fixed action button but any graphical widget on the screen) can have its own class of python handler and help text. (No need to change SDK code) It can dynamically change handler/button/help text. Any thing can be set and chanaged in Python code. No XML file needed. It is not possible with talchas's Action button 2.0 (because it is based on static XML file). As added benefit, now python code can do anything that mouse click can do. (like turning grid on/off in Python)
Actually, Action button feature is just an application/specilization of more general dynamic widget action facility.
Planned feature is that you don't have to edit or change "CVGameInterface.py" file to add a new handler for widget. ( Dynamic addition of handler code itself!)
c) No unitCreated/unitLost event on upgrade/gift. Instead it will trigger new unitReborn event. No more useless CombatOddCalc event. Instead it will trigger beginComat event with more useful infomation arguemnt. New combatHit event for every round of combat with more sane and useful argument and on more useful timing than combatLogHit event.
On Save/load data: My intention is not backward compatibility. On the contrary, it is to prevent old version of save file from loading amake make a havoc. But within some degree of compatible change like adding few new varaibles, it will remain comatible to old save file.
Any opinion or request on this code?
P.S. It is sad that I had to slash time to play Civ4 to spare more free time to write this SDK mod. I worked harder in free time of evening than work time of a day. I am not even a professional programmer myself!
.