God-Emperor
Deity
Note: This has now been merged into the main release of Final Frontier Plus, as of version 1.7. There is no longer any real need to download this, just get the regular release.
Beta test of merge of Final Frontier Plus with BUG.
This is a complete merge of BUG version 4.4 with Final Frontier Plus version 1.651. The only known problems are listed down in the "Knows Issues" section of this post. As of patch 2, all of the listed Known Issues are resolved.
The Current Version (Beta1) is attached at the end of this post.
Patch 2 for Beta 1 has been posted, see post #11 of this thread.
An update for the optional Advanced Unit Naming feature has been posted.
How to install:
1) Get Bug v4.4 and install it as a mod (not always active, i.e. not in Custom Assets). Here.
2) Get version 1.6 of Final Frontier Plus and patch 1.651 and install them. Both Here.
3) If you want to keep the BUG Mod, then copy the Mods\BUG Mod 4.4 folder into the same Mods folder and use that, otherwise you can use the original. Rename the folder (original or copy) to be exactly this: Final Frontier Plus BUG
4) You don't need the maps that come with BUG since they are regular maps for regular terrain, so delete everything in the PublicMaps folder in the new Final Frontier Plus BUG folder. Likewise, the .ini and uninstaller for BUG in the main folder are not needed so you can delete those too, leaving nothing but the folders in the Final Frontier Plus BUG folder.
5) Copy two of the folders in Final Frontier Plus into Final Frontier Plus BUG, allowing replacement of any files: Assets and PrivateMaps (the scenario in PublicMaps should still work so copy PublicMaps too, if you want).
6) Optional step - remove some FFP files that have different names in the FFPBUG Beta) Go into Final Frontier Plus BUG/Assets/Python and delete these files: CvFinalFrontierEvents.py (and .py.bak if there is one) and CvGameUtils.py. Note: There are some files that are not really needed from FFP since BUG uses different versions. It shouldn't be a problem.
7) Unzip the Final Frontier Plus BUG Beta 1 file somewhere and copy everything in it into the Final Frontier Plus BUG folder, allowing replacement of any files. (This includes merged files, plus a file or two that is the BUG version which copying FFP over BUG replaced.)
8) Unzip the Final Frontier Plus Bug Beta 1 patch 2 file somewhere and copy everything in it into the Final Frontier Plus BUG folder, allowing replacement of any files.
9) Optional: unzip the Advanced Unit Naming update file somewhere and copy everything in it into the Final Frontier Plus BUG folder, allowing replacement of any files.
Now load the mod and play.
In addition to BUG, there are a few additional modifications that ended up included since they are in my version of Final Frontier Plus:
Bugfix for issue in regular FFP:
- The description text key for the BUILDINGCLASS_AUDITOR_GENERAL in CIV4BuildingClassInfos.xml was invalid. Set to the correct value. This text never shows up anywhere in regular FFP so it was never noticed, but it is visible in BUG's domestic advisor.
Semi-random change also present:
- The FinalFrontier.py mapscript has changes to the info it prints to the debug log - it's a lot more compact and readable now. There is also a now commented out line that prints more stuff. All this was done when trying to figure out why the staring cities had no star systems under them (turned out to be a problem with a default setting BUG was applying to a callback). May as well keep it - more compact and easier to read output seems like a good thing.
Additional, unrelated, changes also in this beta:
----------
Known Issues - the list
Fixed 1) In the Sevopedia the text for techs is not hidden before you have researched them the way it was with the regular civilopedia. Fixed in B1 patch 2
Non-Issue 2) On the Tech screen the left panel that shows what the various great people would bulb is present even though there are no great people in the mod. B1 Patch 2 includes a BUG settings file that turns this off.
Fixed 3) Also on the Tech screen, the boxes for the techs are not wide enough. Fixed in B1 patch 1
Fixed 4) Worldbuilder saves do not load. At all. Fixed in B1 patch 1
Non-Issue 5) Dependencies. FFPBUG has not changed the path definitions for the theme files, so it only works if regular Final Frontier Plus is also present (it uses the theme files from that mod's folders).
Fixed 6) In the Domestic Advisor, the Military Overview has a Python exception in the early game before there are any units that could be produced via drafting. Fixed in B1 patch 2
Fixed 7) WorldBuild saves do not actually load properly. Fixed in B1 patch 2
Non-Issue 8) Planet displays on "city" screen and the system preview screen do not update. Turned out to be an options issue.
Know Issues - details
Fixed1) Sevopedia.
This is a minor issue. A FFP options tab may be added to the BUG options screen, if it is this will probably be made an option there that defaults to hiding the text. If not, it may be modified to hide the text sometime during the beta testing.
Non-Issue 2) Tech screen.
A minor issue that should be easy to deal with. There may already be a setting in the BUG options to turn this off, in which case just making the off setting the default would be fine. There is a BUG option for this - Advisors tab, Technology [F6] section, GP Research option. Will be turned off by default in the future. Patch 2 includes a BUG settings file that turns this off.
Fixed 3) Also Tech screen.
This problem is due entirely to the Orbital Engineering tech and the number of things that happen with it - even though the boxes have been widened some it still has an icon off the end of the box.
Fixed 4) Worldbuilder.
This is a pretty serious issue since it will prevent scenarios of any sort from working. I have the basic design for a fix, but have not started implementing it yet.
More info: I found two issues, the first was probably minor but the second is not.
In regular FFP (and probably present in almost every other mod, and base BTS too) there is a bug in the worldbuilder save file writing. It can not deal with unit names that have icons in them. This does not normally cause a problem because unit names are normally not even set and when they are they no not normally get characters outside the regular 8-bit range. BUG includes an automatic unit naming capability. The default for this incldues the unit type in the unit name. In FFP (and regular FF, of course) the unit types can include some non-standard charactgers - specifically the delta and omega icons. Saving these is not hard - simply setting the encoding to substitute HTML encodings for the characters works fine (a change to one location in CvWBDesc.py).
This brings us to the real problem. Now that the worldbuilder saves are actually saved, it turns out that they can not be applied. The reason is that the Final Frontier Plus even handler class has not been initialized at the time the data is loaded so there is no place to save the system data in the Python. My planned fix for this is to save the data instead of actually applying it and then apply it later in FFP's onGameStart.
Non-Issue 5) Dependencies.
A simple issue to fix, but I am expecting that when the beta is done it will just become the regular Final Frontier Plus and therefore there will be no separate "Final Frontier Plus BUG", so changing it now will just mean putting it back later. As it is, the "Final Frontier Plus BUG" name appears in the BUG configuration files, which will need to be fixed then.
Fixed 6) Domestic Advisor.
This is evidently a BUG bug. If there are no units that can be built that are draftable, it fails. Probably easy enough to fix. Should probably notify the BUG team about it too.
Addendum: "it fails" just means that this one particular domestic advisor display doesn't work - the table is not fully populated and if you have Civ set up to show Python exceptions you get the pop-up dialogs from that. Nothing else bad happens and you can switch to a different display from the list just fine.Fixed in B1 patch 2
Fixed 7) WorldBuild saves.
Weird stuff happened in my testing, like star systems with the plot showing wheat but a planet showing spices and one where the plot showed cotton but two different planets in the system showed as having spices. The issue is that the random star system generation and resource assignment was being run even for a worldbuilder save, resulting an additional set of resource assignments and a complete second set of systems being tacked on to the end of the list star system list. As for why this was happening, for some unknown reason the "map script" name is now coming through as all lowercase. For a WorldBuilder save this is the WorldBuilder filename complete with its path. The check to see if it is a WorldBuilder file has always been done by seeing if the text ".CivBeyondSwordWBSave" can be found in it. This is not working now since the way the check is done is case sensitive. The fix is to make sure the map script name is all lowercase (in case it changes again) by converting it and then check to see if ".civbeyondswordwbsave" is part of it. Fixed in B1 patch 2
Non-Issue 8) Planet displays. Instead of updating to show the planet rotating and moons and commercial satellites orbiting them, they are stationary. This is happening for both the system preview screen and the "city" screen. It turns out that this happens if you do not have your game set to High graphics on the Graphics tab on the standard BtS Options screen.
Some Notes on the Merge:
The merge involved "BUGifying" Final Frontier Plus. As BUG does not use a custom DLL, the DLL is the one from FFP without any alterations. The event manager for FFP was converted to the BUG standard, so the FFP event handlers are now loaded into and managed by the BUG event manager. Since it is so different, I changed the file name from CvFinalFrontierEvents.py to just FinalFrontierEvents.py, and changed the anme of the class to match too.
Likewise, the Game Utils functions for the game's callbacks are now managed by BUG. These are loaded with the "override" property set to True. I also changed CvGameUtils.py to FinalFrontierGameUtils.py, and the class to FFGameUtils.
Since BUG is supplying the event manager, the various star system related functions in the FFP event manager class are no longer present in the class you get when you do a "CvEventInterface.getEventManager()". When the FFP event manager is initialized it now defines a value in the BUG event manager that points to the instance of the FFP event manager that was created, allowing it to be found via "CvEventInterface.getEventManager().FinalFrontier". All of the places where the former were done were replaced with the latter, making the star system functions, like "getSystemAt(iX,iY)", available to the rest of the Python. This is used in a bunch of places. Currently, the FinalFrontierEventsr class is inheriting all of the regular CvEventManager stuff. It doesn't relly need to - they only thing it is still using from that is the initialization to get some of the data set up. This will probably be copied into the init routine and the inheritance done away with (it just makes it needlessly use a bit more memory at this point). The various event handlers used to call the regular handler before doing anything, but they don't anymore since BUG already does that. Note: this was changed again in patch 1 as it still had difficulties when trying to load a WB save - see post #3 below.
BUG uses the script data on the CyGame object for it's own puposes, so the Tutorial data that was saved there had to be dealt with. BUG also makes available routines to set and save data (which is what it is put in the CyGame's script data) so I changed the saving and loading of the Tutorial data to use that.
All of the places where Great People and Great Generals show up (that I noticed) have been adusted so that they no longer show. This was necessary not just because FFP has none of these, but also because FFP swaps in the "delta" icon for the "great people" icon (and the "omega" icon for the "power" icon, which is a lot less troublesome since the concept of "you now have electical power" isn't needed in FF/FFP). Because of this, adding great people back in will require a bit more work than it would if FF had just added them instead of userping other icons.
Tied in with that last point, the GameFont_75.tga that comes with BUG has been modified, substituting the delta and omega icons for the great people and power icons (BUG does not change the GameFont.tga file). The original delta and omega icons are actually narrower than the ones they replace, but I did not shuffle everything around to make them that way - in this merge the versions in the GameFont_75.tga file are wider than they were, resulting in a little extra space around them when they are used. Not a significant issue, but it would probably look slightly better in some places if they were made narrower again.
Beta test of merge of Final Frontier Plus with BUG.
This is a complete merge of BUG version 4.4 with Final Frontier Plus version 1.651. The only known problems are listed down in the "Knows Issues" section of this post. As of patch 2, all of the listed Known Issues are resolved.
The Current Version (Beta1) is attached at the end of this post.
Patch 2 for Beta 1 has been posted, see post #11 of this thread.
An update for the optional Advanced Unit Naming feature has been posted.
How to install:
1) Get Bug v4.4 and install it as a mod (not always active, i.e. not in Custom Assets). Here.
2) Get version 1.6 of Final Frontier Plus and patch 1.651 and install them. Both Here.
3) If you want to keep the BUG Mod, then copy the Mods\BUG Mod 4.4 folder into the same Mods folder and use that, otherwise you can use the original. Rename the folder (original or copy) to be exactly this: Final Frontier Plus BUG
4) You don't need the maps that come with BUG since they are regular maps for regular terrain, so delete everything in the PublicMaps folder in the new Final Frontier Plus BUG folder. Likewise, the .ini and uninstaller for BUG in the main folder are not needed so you can delete those too, leaving nothing but the folders in the Final Frontier Plus BUG folder.
5) Copy two of the folders in Final Frontier Plus into Final Frontier Plus BUG, allowing replacement of any files: Assets and PrivateMaps (the scenario in PublicMaps should still work so copy PublicMaps too, if you want).
6) Optional step - remove some FFP files that have different names in the FFPBUG Beta) Go into Final Frontier Plus BUG/Assets/Python and delete these files: CvFinalFrontierEvents.py (and .py.bak if there is one) and CvGameUtils.py. Note: There are some files that are not really needed from FFP since BUG uses different versions. It shouldn't be a problem.
7) Unzip the Final Frontier Plus BUG Beta 1 file somewhere and copy everything in it into the Final Frontier Plus BUG folder, allowing replacement of any files. (This includes merged files, plus a file or two that is the BUG version which copying FFP over BUG replaced.)
8) Unzip the Final Frontier Plus Bug Beta 1 patch 2 file somewhere and copy everything in it into the Final Frontier Plus BUG folder, allowing replacement of any files.
9) Optional: unzip the Advanced Unit Naming update file somewhere and copy everything in it into the Final Frontier Plus BUG folder, allowing replacement of any files.
Now load the mod and play.
In addition to BUG, there are a few additional modifications that ended up included since they are in my version of Final Frontier Plus:
Bugfix for issue in regular FFP:
- The description text key for the BUILDINGCLASS_AUDITOR_GENERAL in CIV4BuildingClassInfos.xml was invalid. Set to the correct value. This text never shows up anywhere in regular FFP so it was never noticed, but it is visible in BUG's domestic advisor.
Semi-random change also present:
- The FinalFrontier.py mapscript has changes to the info it prints to the debug log - it's a lot more compact and readable now. There is also a now commented out line that prints more stuff. All this was done when trying to figure out why the staring cities had no star systems under them (turned out to be a problem with a default setting BUG was applying to a callback). May as well keep it - more compact and easier to read output seems like a good thing.
Additional, unrelated, changes also in this beta:
- all leaders have +5 to their iBuildUnitProb setting compared to regular FFP
- the Streamlined Production, Vacuum Engineering, and Domestic Development techs have been moved from the 2nd era into the 1st, delaying the advance to the 2nd era. (Note: this is probably too much, the 2nd era may be coming a bit late now. Will probably move Vacuum Engineering, at least, back to the 2nd era.)
- change Legendary culture level from 7500 to 10000 (Standard speed) and Iconic from 5000 to 6000. Also adjusted the culture levels for Fast since on Quick speed culture generation is at 67%, but the culture levels mostly were at about 50% - changed to be about 67% too.
----------
Known Issues - the list
Fixed 1) In the Sevopedia the text for techs is not hidden before you have researched them the way it was with the regular civilopedia. Fixed in B1 patch 2
Non-Issue 2) On the Tech screen the left panel that shows what the various great people would bulb is present even though there are no great people in the mod. B1 Patch 2 includes a BUG settings file that turns this off.
Fixed 3) Also on the Tech screen, the boxes for the techs are not wide enough. Fixed in B1 patch 1
Fixed 4) Worldbuilder saves do not load. At all. Fixed in B1 patch 1
Non-Issue 5) Dependencies. FFPBUG has not changed the path definitions for the theme files, so it only works if regular Final Frontier Plus is also present (it uses the theme files from that mod's folders).
Fixed 6) In the Domestic Advisor, the Military Overview has a Python exception in the early game before there are any units that could be produced via drafting. Fixed in B1 patch 2
Fixed 7) WorldBuild saves do not actually load properly. Fixed in B1 patch 2
Non-Issue 8) Planet displays on "city" screen and the system preview screen do not update. Turned out to be an options issue.
Know Issues - details
Fixed1) Sevopedia.
This is a minor issue. A FFP options tab may be added to the BUG options screen, if it is this will probably be made an option there that defaults to hiding the text. If not, it may be modified to hide the text sometime during the beta testing.
Non-Issue 2) Tech screen.
A minor issue that should be easy to deal with. There may already be a setting in the BUG options to turn this off, in which case just making the off setting the default would be fine. There is a BUG option for this - Advisors tab, Technology [F6] section, GP Research option. Will be turned off by default in the future. Patch 2 includes a BUG settings file that turns this off.
Fixed 3) Also Tech screen.
This problem is due entirely to the Orbital Engineering tech and the number of things that happen with it - even though the boxes have been widened some it still has an icon off the end of the box.
Fixed 4) Worldbuilder.
This is a pretty serious issue since it will prevent scenarios of any sort from working. I have the basic design for a fix, but have not started implementing it yet.
More info: I found two issues, the first was probably minor but the second is not.
In regular FFP (and probably present in almost every other mod, and base BTS too) there is a bug in the worldbuilder save file writing. It can not deal with unit names that have icons in them. This does not normally cause a problem because unit names are normally not even set and when they are they no not normally get characters outside the regular 8-bit range. BUG includes an automatic unit naming capability. The default for this incldues the unit type in the unit name. In FFP (and regular FF, of course) the unit types can include some non-standard charactgers - specifically the delta and omega icons. Saving these is not hard - simply setting the encoding to substitute HTML encodings for the characters works fine (a change to one location in CvWBDesc.py).
This brings us to the real problem. Now that the worldbuilder saves are actually saved, it turns out that they can not be applied. The reason is that the Final Frontier Plus even handler class has not been initialized at the time the data is loaded so there is no place to save the system data in the Python. My planned fix for this is to save the data instead of actually applying it and then apply it later in FFP's onGameStart.
Non-Issue 5) Dependencies.
A simple issue to fix, but I am expecting that when the beta is done it will just become the regular Final Frontier Plus and therefore there will be no separate "Final Frontier Plus BUG", so changing it now will just mean putting it back later. As it is, the "Final Frontier Plus BUG" name appears in the BUG configuration files, which will need to be fixed then.
Fixed 6) Domestic Advisor.
This is evidently a BUG bug. If there are no units that can be built that are draftable, it fails. Probably easy enough to fix. Should probably notify the BUG team about it too.
Addendum: "it fails" just means that this one particular domestic advisor display doesn't work - the table is not fully populated and if you have Civ set up to show Python exceptions you get the pop-up dialogs from that. Nothing else bad happens and you can switch to a different display from the list just fine.Fixed in B1 patch 2
Fixed 7) WorldBuild saves.
Weird stuff happened in my testing, like star systems with the plot showing wheat but a planet showing spices and one where the plot showed cotton but two different planets in the system showed as having spices. The issue is that the random star system generation and resource assignment was being run even for a worldbuilder save, resulting an additional set of resource assignments and a complete second set of systems being tacked on to the end of the list star system list. As for why this was happening, for some unknown reason the "map script" name is now coming through as all lowercase. For a WorldBuilder save this is the WorldBuilder filename complete with its path. The check to see if it is a WorldBuilder file has always been done by seeing if the text ".CivBeyondSwordWBSave" can be found in it. This is not working now since the way the check is done is case sensitive. The fix is to make sure the map script name is all lowercase (in case it changes again) by converting it and then check to see if ".civbeyondswordwbsave" is part of it. Fixed in B1 patch 2
Non-Issue 8) Planet displays. Instead of updating to show the planet rotating and moons and commercial satellites orbiting them, they are stationary. This is happening for both the system preview screen and the "city" screen. It turns out that this happens if you do not have your game set to High graphics on the Graphics tab on the standard BtS Options screen.
Some Notes on the Merge:
The merge involved "BUGifying" Final Frontier Plus. As BUG does not use a custom DLL, the DLL is the one from FFP without any alterations. The event manager for FFP was converted to the BUG standard, so the FFP event handlers are now loaded into and managed by the BUG event manager. Since it is so different, I changed the file name from CvFinalFrontierEvents.py to just FinalFrontierEvents.py, and changed the anme of the class to match too.
Likewise, the Game Utils functions for the game's callbacks are now managed by BUG. These are loaded with the "override" property set to True. I also changed CvGameUtils.py to FinalFrontierGameUtils.py, and the class to FFGameUtils.
Since BUG is supplying the event manager, the various star system related functions in the FFP event manager class are no longer present in the class you get when you do a "CvEventInterface.getEventManager()". When the FFP event manager is initialized it now defines a value in the BUG event manager that points to the instance of the FFP event manager that was created, allowing it to be found via "CvEventInterface.getEventManager().FinalFrontier". All of the places where the former were done were replaced with the latter, making the star system functions, like "getSystemAt(iX,iY)", available to the rest of the Python. This is used in a bunch of places. Currently, the FinalFrontierEventsr class is inheriting all of the regular CvEventManager stuff. It doesn't relly need to - they only thing it is still using from that is the initialization to get some of the data set up. This will probably be copied into the init routine and the inheritance done away with (it just makes it needlessly use a bit more memory at this point). The various event handlers used to call the regular handler before doing anything, but they don't anymore since BUG already does that. Note: this was changed again in patch 1 as it still had difficulties when trying to load a WB save - see post #3 below.
BUG uses the script data on the CyGame object for it's own puposes, so the Tutorial data that was saved there had to be dealt with. BUG also makes available routines to set and save data (which is what it is put in the CyGame's script data) so I changed the saving and loading of the Tutorial data to use that.
All of the places where Great People and Great Generals show up (that I noticed) have been adusted so that they no longer show. This was necessary not just because FFP has none of these, but also because FFP swaps in the "delta" icon for the "great people" icon (and the "omega" icon for the "power" icon, which is a lot less troublesome since the concept of "you now have electical power" isn't needed in FF/FFP). Because of this, adding great people back in will require a bit more work than it would if FF had just added them instead of userping other icons.
Tied in with that last point, the GameFont_75.tga that comes with BUG has been modified, substituting the delta and omega icons for the great people and power icons (BUG does not change the GameFont.tga file). The original delta and omega icons are actually narrower than the ones they replace, but I did not shuffle everything around to make them that way - in this merge the versions in the GameFont_75.tga file are wider than they were, resulting in a little extra space around them when they are used. Not a significant issue, but it would probably look slightly better in some places if they were made narrower again.