If you disable a tech and enable a tech requiring the first you can research both by clicking on the second in the science advisor screen. Also the AI can research disabled techs.
However until fixed by firaxis you can fix this yourself. Below is the code I've used including the line before and after to make finding where to put it easy. File is CvTechChooser.py.
...and this will fix it for the AI (I think). This goes under onTechSelected in CvEventManager. Note that this will also make the AI research a new tech. You can remove that part but the AI seems to research nothing for a few turns then.
Below is an attached file with a modified techtree to show the bug aswell as a file with my first fix. Not the AI fix, check again tomorrow.
However until fixed by firaxis you can fix this yourself. Below is the code I've used including the line before and after to make finding where to put it easy. File is CvTechChooser.py.
Code:
screen.setActivation( szTechID, ActivationTypes.ACTIVATE_MIMICPARENTFOCUS )
#DISABLEFIXHUMAN
if ( gc.getPlayer(g_civSelected).isResearchingTech(i) and not gc.getPlayer(g_civSelected).canEverResearch(i) ):
[tab]gc.getPlayer(g_civSelected).clearResearchQueue()
[tab]self.updateTechRecords()
#ENDDISABLEFIXHUMAN
if ( gc.getTeam(gc.getPlayer(g_civSelected).getTeam()).isHasTech(i) ):
Code:
iTechType, iPlayer = argsList
#DISABLEFIXAI
if not gc.getPlayer(iPlayer).canEverResearch(iTechType):
[tab]gc.getPlayer(iPlayer).clearResearchQueue()
[tab]if not gc.getPlayer(iPlayer).isHuman():
[tab][tab]i = gc.getNumTechInfos()
[tab][tab]while i:
[tab][tab][tab]if gc.getPlayer(iPlayer).canResearch(i, False) or gc.getPlayer(iPlayer).canResearch(i, True):
[tab][tab][tab][tab]gc.getPlayer(iPlayer).pushResearch(i, True)
[tab][tab][tab][tab]i = 0
[tab][tab][tab]i -= 1
#ENDDISABLEFIXAI
if (not self.__LOG_TECH):
Below is an attached file with a modified techtree to show the bug aswell as a file with my first fix. Not the AI fix, check again tomorrow.