I have no idea what World View is because I've probably not imported that feature in AND, but if you want here's how I solved the problem. Problem was that clicking on the missile icon next to BUG icon was opening the MAD Nuke Manager but only the first tab was available (outgoing missiles), while the second one (incoming missiles) was never showing up. After some comparison with other files, I've discovered that MAD Nukes Screen is working differently from other advisors screens, so basically what I've done is to modifly it to make it work like other advisors do. Here's what I've changed:
Added to CIV4ControlInfos.xml
Code:
<ControlInfo>
<Type>CONTROL_MAD</Type>
<Description>TXT_KEY_MAD</Description>
<Help/>
<HotKey>KB_N</HotKey>
<bAltDown>1</bAltDown>
<bShiftDown>0</bShiftDown>
<bCtrlDown>0</bCtrlDown>
<iHotKeyPriority>0</iHotKeyPriority>
<HotKeyAlt/>
<bAltDownAlt>0</bAltDownAlt>
<bShiftDownAlt>0</bShiftDownAlt>
<bCtrlDownAlt>0</bCtrlDownAlt>
<iHotKeyPriorityAlt>0</iHotKeyPriorityAlt>
</ControlInfo>
added at the end of enum ControlTypes in cvEnums.h
added in bool CvGame::canDoControl(ControlTypes eControl) const in CvGameInterface.cpp
and just before the end of the function
Code:
case CONTROL_MAD:
PYTHON_CALL_FUNCTION2(__FUNCTION__, PYScreensModule, "showMADNukesManager");
break;
Added in CyEnumsInterface.cpp
Code:
.value("CONTROL_MAD", CONTROL_MAD)
just before
Code:
.value("NUM_CONTROL_TYPES", NUM_CONTROL_TYPES)
In CvMADNukesManager.py
Code:
self.INCOMING_SUMMARY_LABEL_ID = "MADNukesManagerOutgoingSummaryLabelWidget"
self.INCOMING_LABEL_ID = "MADNukesManagerOutgoingLabelWidget"
becomes
Code:
self.INCOMING_SUMMARY_LABEL_ID = "MADNukesManagerIncomingSummaryLabelWidget"
self.INCOMING_LABEL_ID = "MADNukesManagerIncomingLabelWidget"
And finally in CvScreensInterface.py I've added
after import CvEspionageAdvisor
and then this part in red
Code:
[COLOR="Red"]MADNukesManager = CvMADNukesManager.CvMADNukesManager(MAD_NUKES_MANAGER)
def showMADNukesManager():
if (-1 != CyGame().getActivePlayer()):
MADNukesManager.interfaceScreen()[/COLOR]
espionageAdvisor = CvEspionageAdvisor.CvEspionageAdvisor()
def showEspionageAdvisor():
if (-1 != CyGame().getActivePlayer()):
espionageAdvisor.interfaceScreen()
and
Code:
MAD_NUKES_MANAGER: MADNukesManager,
just before
Code:
WORLDBUILDER_SCREEN : worldBuilderScreen,
That's it, although it took me a while to reverse engineer the code to understand what was doing what.