Python Performance and Interface Overhaul (PPIO)

I guess I have to modify the world builder soon, haven't intentionally changed anything about it yet. It's changed due to general changes that affect the entire game.
You can change that in the BUG options.
the world builder has been on the "To Do" list for like 5+ years now, nobody wanted to touch it with a ten foot pole because of the shear size of the work :D atleast that's what I got told last time I mentioned "Hey the World Builder is about as stable as Trump's cabinet" :p
The main problem with the World Builder is that AIAndy converted it between Platyping "strokes of genius".:lol: If only he had waited a couple of months.

Mostly Platyping "fixed" the problem caused by paying coders by the line. The code does what it is supposed to do but may not be efficient, easily understood or maintainable afterward. Not that Platyping's code was perfect, he mistook an object creation as a function call and undid some probably minor efficiency things to do with time and memory.
 
No units listing?? tried all eras, nothing?? waited for 2 minutes on Ancient . . .

got this also"
Traceback (most recent call last):
File "CvWBInterface", line 230, in writeDesc
File "CvWBDesc", line 1545, in write
File "CvWBDesc", line 1193, in write
File "CvWBDesc", line 809, in write
UnicodeEncodeError: 'latin-1' codec can't encode character u'\u0259' in position 19: ordinal not in range(256)
ERR: Python function writeDesc failed, module CvWBInterface
Traceback (most recent call last):
File "CvScreensInterface", line 256, in pediaMain
File "Pedia", line 439, in pediaJump
File "Pedia", line 680, in showContents
File "Pedia", line 734, in placeUnits
File "Pedia", line 781, in getSortedUnitList
AttributeError: 'NoneType' object has no attribute 'getMaxGlobalInstances'
ERR: Python function pediaMain failed, module CvScreensInterface
 

Attachments

  • units.JPG
    units.JPG
    124.4 KB · Views: 121
Last edited:
No units listing?? tried all eras, nothing?? waited for 2 minutes on Ancient . . .
I guess something went horribly wrong when you installed modmod - download it again and let it overwrite ALL files - you failed to overwrite one file, so I guess that file wasn't only one.
Unpack it in directly in Caveman2Cosmos folder.

Lists should appear instantly or up to 5 seconds.

This is what should happen after clicking on some entry at bottom.
There are individual items list displayed now.
Spoiler :

Civ4BeyondSword 2019-02-23 14-12-59-55.jpg

 
Last edited:
and u didnt read what i wrote, i said ABOVE the word draft , separate the arrows more not the separation between the arrow and the word Draft . .
I see, I asked because what you wrote was a bit ambiguous.
I'm cool with increasing the spacing between the arrows, more so than moving them upwards.
Traceback (most recent call last):
File "CvWBInterface", line 230, in writeDesc
File "CvWBDesc", line 1545, in write
File "CvWBDesc", line 1193, in write
File "CvWBDesc", line 809, in write
UnicodeEncodeError: 'latin-1' codec can't encode character u'\u0259' in position 19: ordinal not in range(256)
ERR: Python function writeDesc failed, module CvWBInterface
Same error as you reported last time, I don't think it's a problem with PPIO specifically as those files where the error occur are untouched by PPIO.
 
I guess something went horribly wrong when you installed modmod - download it again and let it overwrite ALL files - you failed to overwrite one file, so I guess that file wasn't only one.
it happened because i took out the module "New_Cultures" which it is a module so should not impact the normal game, or does it??
 
it happened because i took out the module "New_Cultures" which it is a module so should not impact the normal game, or does it??
Well that's the problem: most likely there are interactions between New Cultures module and other modules including core assets.
So you MUST enable back New Cultures.

MAJORITY of modules can't be simply turned off, as there are interactions between modules and other modules or core assets.
 
Same error as you reported last time, I don't think it's a problem with PPIO specifically as those files where the error occur are untouched by PPIO.

Most likely those errors are from disabling module, that shouldn't be disabled.
There was second error here:
Code:
Traceback (most recent call last):
File "CvScreensInterface", line 256, in pediaMain
File "Pedia", line 439, in pediaJump
File "Pedia", line 680, in showContents
File "Pedia", line 734, in placeUnits
File "Pedia", line 781, in getSortedUnitList
AttributeError: 'NoneType' object has no attribute 'getMaxGlobalInstances'
ERR: Python function pediaMain failed, module CvScreensInterface
but I guess its from disabling module too.
 
Well that's the problem: most likely there are interactions between New Cultures module and other modules including core assets.
So you MUST enable back New Cultures.

MAJORITY of modules can't be simply turned off, as there are interactions between modules and other modules or core assets.
Wrong. Majority can. I have made sure of it.:lol: The problems with New_Cultures seems to be something in Pepper's mod but I haven't been able to get at the exact detail because the validate program wont validate them due to an extra \ somewhere in the XML.

@SO, If you don't want New_Cultures you will need to turn off Pepper's mod until I can find where the conflict is. Usually it is just because a dependency was missed somewhere. We have fixed the like before.
 
Wrong. Majority can. I have made sure of it.:lol: The problems with New_Cultures seems to be something in Pepper's mod but I haven't been able to get at the exact detail because the validate program wont validate them due to an extra \ somewhere in the XML.

@SO, If you don't want New_Cultures you will need to turn off Pepper's mod until I can find where the conflict is. Usually it is just because a dependency was missed somewhere. We have fixed the like before.
He probably disabled whole My Mods module, as you can't disable New Cultures trough MLF edit.

I think My Modules (or at least New Cultures in it) is tied to Natural Wonders one or other way: Great Reef Barrier can get improvement by Neanderthal or cultural sea workers not just regular workboats.
I had to make Natural Wonders loaded after My Mods.

I managed to recreate same error after deleting New Cultures.
Spoiler :

Civ4BeyondSword 2019-02-23 15-39-03-46.jpg



So it isn't fault of Toffer's Pedia but it was fault of module not being properly secured.
That is New Cultures can't be disabled since I added ability to build Lanterns and Beacons on Great Reef Barrier (Natural Wonders) to cultural workboats.
 
Last edited:
OK, we cant be putting stuff in that modules have enabled, ok,, DH has been trying for a long time now to get most, but not all modules in the core, but again never put anything in the CORE that has a module connection, PLEASE. . . thx. .

If more has been done this way, pls relocate them to THAT module, and NOT in the core, thx. .ie, techs/buildings/units etc etc etc. . . .

am i right about this DH??
 
OK, we cant be putting stuff in that modules have enabled, ok,, DH has been trying for a long time now to get most, but not all modules in the core, but again never put anything in the CORE that has a module connection, PLEASE. . . thx. .

If more has been done this way, pls relocate them to THAT module, and NOT in the core, thx. .ie, techs/buildings/units etc etc etc. . . .

am i right about this DH??
In this case its two modules interacting with each other.
Not sure if something else in core or other modules needs New Cultures being present.
I think he wanted to keep stuff in modules too.

UNIT_ belongs to New Cultures
_GREAT_BARRIER belongs to Natural Wonders.
Code:
<UnitInfo>
            <Type>UNIT_NEANDERTHAL_WORKBOAT</Type>
            <Builds>
                <Build>
                    <BuildType>BUILD_BEACON_GREAT_BARRIER</BuildType>
                    <bBuild>1</bBuild>
                </Build>
                <Build>
                    <BuildType>BUILD_LIGHTHOUSE_GREAT_BARRIER</BuildType>
                    <bBuild>1</bBuild>
                </Build>
            </Builds>
        </UnitInfo>
        <UnitInfo>
            <Type>UNIT_NEANDERTHAL_CLASSIC_WORKBOAT</Type>
            <Builds>
                <Build>
                    <BuildType>BUILD_BEACON_GREAT_BARRIER</BuildType>
                    <bBuild>1</bBuild>
                </Build>
                <Build>
                    <BuildType>BUILD_LIGHTHOUSE_GREAT_BARRIER</BuildType>
                    <bBuild>1</bBuild>
                </Build>
            </Builds>
        </UnitInfo>
        <UnitInfo>
            <Type>UNIT_GONE_DAU</Type>
            <Builds>
                <Build>
                    <BuildType>BUILD_BEACON_GREAT_BARRIER</BuildType>
                    <bBuild>1</bBuild>
                </Build>
                <Build>
                    <BuildType>BUILD_LIGHTHOUSE_GREAT_BARRIER</BuildType>
                    <bBuild>1</bBuild>
                </Build>
            </Builds>
        </UnitInfo>

@Dancing Hoskuld how that should be done?
Most likely you missed that when I added build actions to cultular workboats.
 
Most likely you missed that when I added build actions to cultular workboats.
Again anyone, PLS dont put stuff in core that has anything to do with modules, thx. . . should be modular first then core when ALL is in that pertaining to that module, right DH??
 
Again anyone, PLS dont put stuff in core that has anything to do with modules, thx. . . should be modular first then core when ALL is in that pertaining to that module, right DH??
Yeah but in that case both Natural Wonders and New Cultures are Module stuff.
 
Again anyone, PLS dont put stuff in core that has anything to do with modules, thx. . . should be modular first then core when ALL is in that pertaining to that module, right DH??
It's not always that simple. I'm building a module now that has some references to objects in other modules and I know that eventually, I'll have to make it more fully modular by adding a shton of added lines of code to make sure that if those other modules are turned off that it doesn't mess with this one being active. More likely I'll just take anything out that refers to other modules and just make the thing pretend like half the game doesn't actually exist for now. The more modules we have, the more work there is to make everything fully modular. It starts getting kinda crazy.
 
It's not always that simple. I'm building a module now that has some references to objects in other modules and I know that eventually, I'll have to make it more fully modular by adding a shton of added lines of code to make sure that if those other modules are turned off that it doesn't mess with this one being active. More likely I'll just take anything out that refers to other modules and just make the thing pretend like half the game doesn't actually exist for now. The more modules we have, the more work there is to make everything fully modular. It starts getting kinda crazy.
Modules also have load order if one depends on another.
 
It's not always that simple. I'm building a module now that has some references to objects in other modules and I know that eventually, I'll have to make it more fully modular by adding a shton of added lines of code to make sure that if those other modules are turned off that it doesn't mess with this one being active. More likely I'll just take anything out that refers to other modules and just make the thing pretend like half the game doesn't actually exist for now. The more modules we have, the more work there is to make everything fully modular. It starts getting kinda crazy.
I dont believe u'd have to make any kind of extra coding, just ask DH about XXDependicies, that's how i believe its done . .
 
It's not always that simple. I'm building a module now that has some references to objects in other modules and I know that eventually, I'll have to make it more fully modular by adding a shton of added lines of code to make sure that if those other modules are turned off that it doesn't mess with this one being active. More likely I'll just take anything out that refers to other modules and just make the thing pretend like half the game doesn't actually exist for now. The more modules we have, the more work there is to make everything fully modular. It starts getting kinda crazy.
And yet it was one of the aims of the mod when it first came out. Mind you making everything modular to the lowest level would make stuff a lot easier to build and maintain, if slower to load and slower when using the non-cached XML.
Modules also have load order if one depends on another.
Yes and no. Load order is only mostly important. What is more important is the load order we have no control over. IE the order the XML is loaded in the dll. For example all Building Classes are loaded before any unit information. This is why you can't have buildings dependent on units. BtW if they ever remove the BuildingClass file modules will probably not work anymore. Although there are ways around that problem.
I dont believe u'd have to make any kind of extra coding, just ask DH about XXDependicies, that's how i believe its done . .
Yes you need to code in the dependencies into the XML code. In some cases you where parts of the building or what ever are dependent but not all you need to split the XML into two parts one with the bit that is true in all cases and those that are true only in some cases.

That is what is done with the Story Teller line at the moment. There are core buildings they can build eg all the Animal Myths etc but new ones of these are in a new file with dependencies (not necessary in some cases but done anyway to avoid possible errors).
 
Yes and no. Load order is only mostly important. What is more important is the load order we have no control over. IE the order the XML is loaded in the dll. For example all Building Classes are loaded before any unit information. This is why you can't have buildings dependent on units. BtW if they ever remove the BuildingClass file modules will probably not work anymore. Although there are ways around that problem.
Well Natural Wonders must be loaded after My Mods (contains New Cultures), as in Natural Wonders module there are build action additions to cultural work boats - building beacon/lighthouse on Great Reef Barrier feature which is Natural Wonder.
 
I dont believe u'd have to make any kind of extra coding, just ask DH about XXDependicies, that's how i believe its done . .
That's the coding I'm talking about - not DLL stuff. The amount of dependency stuff you have to write ends up getting head-swimmingly complicated the more modules we have.

Mind you making everything modular to the lowest level would make stuff a lot easier to build and maintain,
How does it make anything EASIER?
 
Top Bottom