[BtS-3.13] BombingMissions

I have a question, Dale: are there any actual C++ changes necessary (beyond the standard merging and compiling) in order to get this to work with some of your other mod components? I merged it with RangedBombardment and The Atomic Bomb Mod and successfully compiled the DLL, and it "works" in game but there is a pesky intermittent CTD that I get for no apparent reason. (Perhaps due to my inexperience with the SDK, but nonetheless... :D)

The reason I ask is because you had all three of these in Road to War, and I was wondering if you had to make any code changes to the modded sections to get them to work together.

EDIT: Yep, just tested it again, and ranged bombardment doesn't work at all. (Airstrikes work fine.) I am using your latest version of RB if that makes a difference.
 
Have you had a look at DCM? http://forums.civfanatics.com/showthread.php?t=257210 It's got all my components in it, and is easy to turn parts you don't want off (xml tag in GlobalDefinesAlt.xml). It might also lead you to what's not working in yours. I suspect it may be Civ4InterfaceModeInfos.xml though.

Code will be available for it in a few days. :)
 
I have a question, Dale: are there any actual C++ changes necessary (beyond the standard merging and compiling) in order to get this to work with some of your other mod components? I merged it with RangedBombardment and The Atomic Bomb Mod and successfully compiled the DLL, and it "works" in game but there is a pesky intermittent CTD that I get for no apparent reason. (Perhaps due to my inexperience with the SDK, but nonetheless... :D)

The reason I ask is because you had all three of these in Road to War, and I was wondering if you had to make any code changes to the modded sections to get them to work together.

EDIT: Yep, just tested it again, and ranged bombardment doesn't work at all. (Airstrikes work fine.) I am using your latest version of RB if that makes a difference.


You need to make sure the Missions in the CIV4MissionInfos.xml file and the CIV4InterfaceModeInfos.xml files are in the same order. If one of them is off, it could mess things up.

That happened to me right after I merged Ranged Bombardment with Bombing Missions. I had RBOMBARD set right after INTERFACEMODE_PYTHON_PICK_PLOT in CIV4InterfaceModeInfos.xml where it should of been after it. It prevened Ranged Bombardment from showing up for siege units.

A quick re-arrange in the XML files and everything was golden. :)
 
Yeah, I figured it was something along those lines when I replaced my newly compiled DLL with the original one supplied in Dale's RB mod. The same error occurred! So it can't be the SDK (though that may yet have its own problems :p).

I will try your solution when I can get a chance and report back.

@Dale: Does DCM have the Atomic Bomb Mod? ;) But kudos to you for supplying all in one place. Saves a lot of work. :D
 
Grave, apparently that did not fix the problem. Maybe I'm missing something here, but I have them in the same order as you said, and I still get a CTD.

If it helps, this is exactly how I have it:

InterfaceModeInfos
Spoiler :

Code:
		<InterfaceModeInfo>
			<Type>INTERFACEMODE_REBASE</Type>
			<Description>TXT_KEY_INTERFACEMODE_REBASE</Description>
			<Help>TXT_KEY_INTERFACEMODE_REBASE_HELP</Help>
			<CursorType>CURSOR_REBASE</CursorType>
			<Mission>MISSION_MOVE_TO</Mission>
			<HotKey>KB_R</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>
			<bVisible>1</bVisible>
			<bGotoPlot>0</bGotoPlot>
			<bHighlightPlot>1</bHighlightPlot>
			<bSelectType>0</bSelectType>
			<bSelectAll>0</bSelectAll>
			<Button>,Art/Interface/Buttons/Actions/Rebase.dds,Art/Interface/Buttons/Actions_Builds_LeaderHeads_Specialists_Atlas.dds,2,6</Button>
		</InterfaceModeInfo>
		<InterfaceModeInfo>
			<Type>INTERFACEMODE_PYTHON_PICK_PLOT</Type>
			<Description></Description>
			<Help/>
			<CursorType>CURSOR_PING</CursorType>
			<Mission>NONE</Mission>
			<bVisible>0</bVisible>
			<bGotoPlot>0</bGotoPlot>
			<bHighlightPlot>1</bHighlightPlot>
			<bSelectType>0</bSelectType>
			<bSelectAll>0</bSelectAll>
		</InterfaceModeInfo>
		<InterfaceModeInfo>
			<Type>INTERFACEMODE_RANGEBOMB</Type>
			<Description>TXT_KEY_INTERFACEMODE_BOMBARD</Description>
			<Help>TXT_KEY_INTERFACEMODE_BOMBARD_HELP</Help>
			<CursorType>CURSOR_AIRBOMB</CursorType>
			<Mission>MISSION_BOMBARD</Mission>
			<HotKey>KB_B</HotKey>
			<bAltDown>0</bAltDown>
			<bShiftDown>0</bShiftDown>
			<bCtrlDown>0</bCtrlDown>
			<iHotKeyPriority>0</iHotKeyPriority>
			<HotKeyAlt/>
			<bAltDownAlt>0</bAltDownAlt>
			<bShiftDownAlt>0</bShiftDownAlt>
			<bCtrlDownAlt>0</bCtrlDownAlt>
			<iHotKeyPriorityAlt>0</iHotKeyPriorityAlt>
			<bVisible>1</bVisible>
			<bGotoPlot>0</bGotoPlot>
			<bHighlightPlot>1</bHighlightPlot>
			<bSelectType>0</bSelectType>
			<bSelectAll>0</bSelectAll>
			<Button>,Art/Interface/Buttons/Actions/Bombard.dds,Art/Interface/Buttons/Actions_Builds_LeaderHeads_Specialists_Atlas.dds,2,1</Button>
		</InterfaceModeInfo>
		<InterfaceModeInfo>
			<Type>INTERFACEMODE_BOMBARD</Type>
			<Description>TXT_KEY_CONCEPT_RBOMBARD_TEXT</Description>
			<Help>TXT_KEY_INTERFACEMODE_BOMBARD_HELP</Help>
			<CursorType>CURSOR_AIRBOMB</CursorType>
			<Mission>MISSION_RBOMBARD</Mission>
			<HotKey>KB_B</HotKey>
			<bAltDown>0</bAltDown>
			<bShiftDown>0</bShiftDown>
			<bCtrlDown>0</bCtrlDown>
			<iHotKeyPriority>0</iHotKeyPriority>
			<HotKeyAlt/>
			<bAltDownAlt>0</bAltDownAlt>
			<bShiftDownAlt>0</bShiftDownAlt>
			<bCtrlDownAlt>0</bCtrlDownAlt>
			<iHotKeyPriorityAlt>0</iHotKeyPriorityAlt>
			<bVisible>1</bVisible>
			<bGotoPlot>0</bGotoPlot>
			<bHighlightPlot>1</bHighlightPlot>
			<bSelectType>0</bSelectType>
			<bSelectAll>0</bSelectAll>
			<Button>,Art/Interface/Buttons/Actions/Bombard.dds,Art/Interface/Buttons/Actions_Builds_LeaderHeads_Specialists_Atlas.dds,2,1</Button>
		</InterfaceModeInfo>
		<InterfaceModeInfo>
			<Type>INTERFACEMODE_AIRBOMB1</Type>
			<Description>TXT_KEY_INTERFACEMODE_AIRBOMB1</Description>
			<Help>TXT_KEY_INTERFACEMODE_AIRBOMB1_HELP</Help>
			<CursorType>CURSOR_AIRBOMB</CursorType>
			<Mission>MISSION_AIRBOMB1</Mission>
			<HotKey>KB_B</HotKey>
			<bAltDown>0</bAltDown>
			<bShiftDown>0</bShiftDown>
			<bCtrlDown>0</bCtrlDown>
			<iHotKeyPriority>0</iHotKeyPriority>
			<HotKeyAlt/>
			<bAltDownAlt>0</bAltDownAlt>
			<bShiftDownAlt>0</bShiftDownAlt>
			<bCtrlDownAlt>0</bCtrlDownAlt>
			<iHotKeyPriorityAlt>0</iHotKeyPriorityAlt>
			<bVisible>1</bVisible>
			<bGotoPlot>0</bGotoPlot>
			<bHighlightPlot>1</bHighlightPlot>
			<bSelectType>0</bSelectType>
			<bSelectAll>0</bSelectAll>
			<Button>,Art/Interface/Buttons/Actions/Airbomb.dds,Art/Interface/Buttons/Actions_Builds_LeaderHeads_Specialists_Atlas.dds,5,6</Button>
		</InterfaceModeInfo>
		<InterfaceModeInfo>
			<Type>INTERFACEMODE_AIRBOMB2</Type>
			<Description>TXT_KEY_INTERFACEMODE_AIRBOMB2</Description>
			<Help>TXT_KEY_INTERFACEMODE_AIRBOMB2_HELP</Help>
			<CursorType>CURSOR_AIRBOMB</CursorType>
			<Mission>MISSION_AIRBOMB2</Mission>
			<HotKey>KB_B</HotKey>
			<bAltDown>0</bAltDown>
			<bShiftDown>0</bShiftDown>
			<bCtrlDown>0</bCtrlDown>
			<iHotKeyPriority>0</iHotKeyPriority>
			<HotKeyAlt/>
			<bAltDownAlt>0</bAltDownAlt>
			<bShiftDownAlt>0</bShiftDownAlt>
			<bCtrlDownAlt>0</bCtrlDownAlt>
			<iHotKeyPriorityAlt>0</iHotKeyPriorityAlt>
			<bVisible>1</bVisible>
			<bGotoPlot>0</bGotoPlot>
			<bHighlightPlot>1</bHighlightPlot>
			<bSelectType>0</bSelectType>
			<bSelectAll>0</bSelectAll>
			<Button>Art/Interface/Buttons/Actions/Airbomb_civil.dds</Button>
		</InterfaceModeInfo>
		<InterfaceModeInfo>
			<Type>INTERFACEMODE_AIRBOMB3</Type>
			<Description>TXT_KEY_INTERFACEMODE_AIRBOMB3</Description>
			<Help>TXT_KEY_INTERFACEMODE_AIRBOMB3_HELP</Help>
			<CursorType>CURSOR_AIRBOMB</CursorType>
			<Mission>MISSION_AIRBOMB3</Mission>
			<HotKey>KB_B</HotKey>
			<bAltDown>0</bAltDown>
			<bShiftDown>0</bShiftDown>
			<bCtrlDown>0</bCtrlDown>
			<iHotKeyPriority>0</iHotKeyPriority>
			<HotKeyAlt/>
			<bAltDownAlt>0</bAltDownAlt>
			<bShiftDownAlt>0</bShiftDownAlt>
			<bCtrlDownAlt>0</bCtrlDownAlt>
			<iHotKeyPriorityAlt>0</iHotKeyPriorityAlt>
			<bVisible>1</bVisible>
			<bGotoPlot>0</bGotoPlot>
			<bHighlightPlot>1</bHighlightPlot>
			<bSelectType>0</bSelectType>
			<bSelectAll>0</bSelectAll>
			<Button>Art/Interface/Buttons/Actions/Airbomb_prod.dds</Button>
		</InterfaceModeInfo>
		<InterfaceModeInfo>
			<Type>INTERFACEMODE_AIRBOMB4</Type>
			<Description>TXT_KEY_INTERFACEMODE_AIRBOMB4</Description>
			<Help>TXT_KEY_INTERFACEMODE_AIRBOMB4_HELP</Help>
			<CursorType>CURSOR_AIRBOMB</CursorType>
			<Mission>MISSION_AIRBOMB4</Mission>
			<HotKey>KB_B</HotKey>
			<bAltDown>0</bAltDown>
			<bShiftDown>0</bShiftDown>
			<bCtrlDown>0</bCtrlDown>
			<iHotKeyPriority>0</iHotKeyPriority>
			<HotKeyAlt/>
			<bAltDownAlt>0</bAltDownAlt>
			<bShiftDownAlt>0</bShiftDownAlt>
			<bCtrlDownAlt>0</bCtrlDownAlt>
			<iHotKeyPriorityAlt>0</iHotKeyPriorityAlt>
			<bVisible>1</bVisible>
			<bGotoPlot>0</bGotoPlot>
			<bHighlightPlot>1</bHighlightPlot>
			<bSelectType>0</bSelectType>
			<bSelectAll>0</bSelectAll>
			<Button>Art/Interface/Buttons/Actions/Airbomb_port.dds</Button>
		</InterfaceModeInfo>
		<InterfaceModeInfo>
			<Type>INTERFACEMODE_AIRBOMB5</Type>
			<Description>TXT_KEY_INTERFACEMODE_AIRBOMB5</Description>
			<Help>TXT_KEY_INTERFACEMODE_AIRBOMB5_HELP</Help>
			<CursorType>CURSOR_AIRBOMB</CursorType>
			<Mission>MISSION_AIRBOMB5</Mission>
			<HotKey>KB_B</HotKey>
			<bAltDown>0</bAltDown>
			<bShiftDown>0</bShiftDown>
			<bCtrlDown>0</bCtrlDown>
			<iHotKeyPriority>0</iHotKeyPriority>
			<HotKeyAlt/>
			<bAltDownAlt>0</bAltDownAlt>
			<bShiftDownAlt>0</bShiftDownAlt>
			<bCtrlDownAlt>0</bCtrlDownAlt>
			<iHotKeyPriorityAlt>0</iHotKeyPriorityAlt>
			<bVisible>1</bVisible>
			<bGotoPlot>0</bGotoPlot>
			<bHighlightPlot>1</bHighlightPlot>
			<bSelectType>0</bSelectType>
			<bSelectAll>0</bSelectAll>
			<Button>Art/Interface/Buttons/Actions/Airbomb_strat.dds</Button>
		</InterfaceModeInfo>
		<InterfaceModeInfo>
			<Type>INTERFACEMODE_SAVE_PLOT_NIFS</Type>
			<Description></Description>
			<Help/>
			<CursorType>CURSOR_PING</CursorType>
			<Mission>NONE</Mission>
			<bVisible>0</bVisible>
			<bGotoPlot>0</bGotoPlot>
			<bHighlightPlot>1</bHighlightPlot>
			<bSelectType>0</bSelectType>
			<bSelectAll>0</bSelectAll>
		</InterfaceModeInfo>
	</InterfaceModeInfos>
</Civ4InterfaceModeInfos>



MissionInfos
Spoiler :

Code:
		<MissionInfo>
			<Type>MISSION_MULTI_SELECT</Type>
			<Description>TXT_KEY_MISSION_BUILD_IMPROVEMENT</Description>
			<Help>TXT_KEY_MISSION_BUILD_IMPROVEMENT</Help>
			<Waypoint>NONE</Waypoint>
			<EntityEventType>ENTITY_EVENT_MULTI_SELECT</EntityEventType>
			<iTime>0</iTime>
			<bTarget>0</bTarget>
			<bBuild>0</bBuild>
			<bSound>0</bSound>
		</MissionInfo>
		<MissionInfo>
			<Type>MISSION_MULTI_DESELECT</Type>
			<Description>TXT_KEY_MISSION_BUILD_IMPROVEMENT</Description>
			<Help>TXT_KEY_MISSION_BUILD_IMPROVEMENT</Help>
			<Waypoint>NONE</Waypoint>
			<EntityEventType>ENTITY_EVENT_MULTI_DESELECT</EntityEventType>
			<iTime>0</iTime>
			<bTarget>0</bTarget>
			<bBuild>0</bBuild>
			<bSound>0</bSound>
		</MissionInfo>
		<MissionInfo>
			<Type>MISSION_RBOMBARD</Type>
			<Description>TXT_KEY_MISSION_RBOMBARD</Description>
			<Help>TXT_KEY_MISSION_RBOMBARD_HELP</Help>
			<Waypoint>NONE</Waypoint>
			<EntityEventType>ENTITY_EVENT_BOMBARD</EntityEventType>
			<iTime>10</iTime>
			<bTarget>0</bTarget>
			<bBuild>0</bBuild>
			<bSound>1</bSound>
			<Button>,Art/Interface/Buttons/Actions/Bombard.dds,Art/Interface/Buttons/Actions_Builds_LeaderHeads_Specialists_Atlas.dds,2,1</Button>
		</MissionInfo>
		<MissionInfo>
			<Type>MISSION_AIRBOMB1</Type>
			<Description>TXT_KEY_MISSION_AIRBOMB1</Description>
			<Help>TXT_KEY_MISSION_AIRBOMB1_HELP</Help>
			<Waypoint>NONE</Waypoint>
			<iTime>20</iTime>
			<bTarget>0</bTarget>
			<bBuild>0</bBuild>
			<bSound>1</bSound>
			<Button>,Art/Interface/Buttons/Actions/Airbomb.dds,Art/Interface/Buttons/Actions_Builds_LeaderHeads_Specialists_Atlas.dds,5,6</Button>
		</MissionInfo>
		<MissionInfo>
			<Type>MISSION_AIRBOMB2</Type>
			<Description>TXT_KEY_MISSION_AIRBOMB2</Description>
			<Help>TXT_KEY_MISSION_AIRBOMB2_HELP</Help>
			<Waypoint>NONE</Waypoint>
			<iTime>20</iTime>
			<bTarget>0</bTarget>
			<bBuild>0</bBuild>
			<bSound>1</bSound>
			<Button>Art/Interface/Buttons/Actions/Airbomb_civil.dds</Button>
		</MissionInfo>
		<MissionInfo>
			<Type>MISSION_AIRBOMB3</Type>
			<Description>TXT_KEY_MISSION_AIRBOMB3</Description>
			<Help>TXT_KEY_MISSION_AIRBOMB3_HELP</Help>
			<Waypoint>NONE</Waypoint>
			<iTime>20</iTime>
			<bTarget>0</bTarget>
			<bBuild>0</bBuild>
			<bSound>1</bSound>
			<Button>Art/Interface/Buttons/Actions/Airbomb_prod.dds</Button>
		</MissionInfo>
		<MissionInfo>
			<Type>MISSION_AIRBOMB4</Type>
			<Description>TXT_KEY_MISSION_AIRBOMB4</Description>
			<Help>TXT_KEY_MISSION_AIRBOMB4_HELP</Help>
			<Waypoint>NONE</Waypoint>
			<iTime>20</iTime>
			<bTarget>0</bTarget>
			<bBuild>0</bBuild>
			<bSound>1</bSound>
			<Button>Art/Interface/Buttons/Actions/Airbomb_port.dds</Button>
		</MissionInfo>
		<MissionInfo>
			<Type>MISSION_AIRBOMB5</Type>
			<Description>TXT_KEY_MISSION_AIRBOMB5</Description>
			<Help>TXT_KEY_MISSION_AIRBOMB5_HELP</Help>
			<Waypoint>NONE</Waypoint>
			<iTime>20</iTime>
			<bTarget>0</bTarget>
			<bBuild>0</bBuild>
			<bSound>1</bSound>
			<Button>Art/Interface/Buttons/Actions/Airbomb_strat.dds</Button>
		</MissionInfo>
	</MissionInfos>
</Civ4MissionInfos>


Is there another tag that I need to delete or something?
 
Yep, it's a CTD, and I don't know that the SDK is entirely to blame (though I do not seem to get one if I don't use the modded SDK). Yet the ranged bombardment does not work even when I replace my new DLL with the one Dale originally supplied. It should, shouldn't it? Just because I have the new airstrikes also defined in XML, they wouldn't actually do anything because they wouldn't be called by the SDK.
 
Except the interface and missions are registered in the SDK. If the order in the SDK is different to the XML files, then there'll be problems. :)

Here's the SDK enums:
Code:
enum DllExport InterfaceModeTypes			// Exposed to Python
{
	NO_INTERFACEMODE = -1,

	INTERFACEMODE_SELECTION,
	INTERFACEMODE_PING,
	INTERFACEMODE_SIGN,
	INTERFACEMODE_GRIP,
	INTERFACEMODE_GLOBELAYER_INPUT,
	INTERFACEMODE_GO_TO,
	INTERFACEMODE_GO_TO_TYPE,
	INTERFACEMODE_GO_TO_ALL,
	INTERFACEMODE_ROUTE_TO,
	INTERFACEMODE_AIRLIFT,
	INTERFACEMODE_NUKE,
	INTERFACEMODE_RECON,
	INTERFACEMODE_PARADROP,
	INTERFACEMODE_AIRBOMB,
	INTERFACEMODE_RANGE_ATTACK,
	INTERFACEMODE_AIRSTRIKE,
	INTERFACEMODE_REBASE,
	INTERFACEMODE_PYTHON_PICK_PLOT,
	INTERFACEMODE_SAVE_PLOT_NIFS,
	INTERFACEMODE_AIRBOMB1,
	INTERFACEMODE_AIRBOMB2,
	INTERFACEMODE_AIRBOMB3,
	INTERFACEMODE_AIRBOMB4,
	INTERFACEMODE_AIRBOMB5,
	INTERFACEMODE_BOMBARD,
	INTERFACEMODE_ABOMBARD,

#ifdef _USRDLL
	NUM_INTERFACEMODE_TYPES
#endif
};

And also:
Code:
enum DllExport MissionTypes				// Exposed to Python
{
	NO_MISSION = -1,

	MISSION_MOVE_TO,
	MISSION_ROUTE_TO,
	MISSION_MOVE_TO_UNIT,
	MISSION_SKIP,
	MISSION_SLEEP,
	MISSION_FORTIFY,
	MISSION_PLUNDER,
	MISSION_AIRPATROL,
	MISSION_SEAPATROL,
	MISSION_HEAL,
	MISSION_SENTRY,
	MISSION_AIRLIFT,
	MISSION_NUKE,
	MISSION_RECON,
	MISSION_PARADROP,
	MISSION_AIRBOMB,
	MISSION_RANGE_ATTACK,
	MISSION_BOMBARD,
	MISSION_PILLAGE,
	MISSION_SABOTAGE,
	MISSION_DESTROY,
	MISSION_STEAL_PLANS,
	MISSION_FOUND,
	MISSION_SPREAD,
	MISSION_SPREAD_CORPORATION,
	MISSION_JOIN,
	MISSION_CONSTRUCT,
	MISSION_DISCOVER,
	MISSION_HURRY,
	MISSION_TRADE,
	MISSION_GREAT_WORK,
	MISSION_INFILTRATE,
	MISSION_GOLDEN_AGE,
	MISSION_BUILD,
	MISSION_LEAD,
	MISSION_ESPIONAGE,
	MISSION_DIE_ANIMATION,

	MISSION_BEGIN_COMBAT,
	MISSION_END_COMBAT,
	MISSION_AIRSTRIKE,
	MISSION_SURRENDER,
	MISSION_CAPTURED,
	MISSION_IDLE,
	MISSION_DIE,
	MISSION_DAMAGE,
	MISSION_MULTI_SELECT,
	MISSION_MULTI_DESELECT,
	MISSION_AIRBOMB1,
	MISSION_AIRBOMB2,
	MISSION_AIRBOMB3,
	MISSION_AIRBOMB4,
	MISSION_AIRBOMB5,
	MISSION_RBOMBARD,
	MISSION_ABOMBARD,

#ifdef _USRDLL
	NUM_MISSION_TYPES
#endif
};

Which means Civ4InterfaceModeInfos.xml must be like this:
Code:
		<InterfaceModeInfo>
			<Type>INTERFACEMODE_PYTHON_PICK_PLOT</Type>
			<Description></Description>
			<Help/>
			<CursorType>CURSOR_PING</CursorType>
			<Mission>NONE</Mission>
			<bVisible>0</bVisible>
			<bGotoPlot>0</bGotoPlot>
			<bHighlightPlot>1</bHighlightPlot>
			<bSelectType>0</bSelectType>
			<bSelectAll>0</bSelectAll>
		</InterfaceModeInfo>
		<InterfaceModeInfo>
			<Type>INTERFACEMODE_RANGEBOMB</Type>
			<Description>TXT_KEY_INTERFACEMODE_BOMBARD</Description>
			<Help>TXT_KEY_INTERFACEMODE_BOMBARD_HELP</Help>
			<CursorType>CURSOR_AIRBOMB</CursorType>
			<Mission>MISSION_AIRBOMB1</Mission>
			<HotKey>KB_B</HotKey>
			<bAltDown>0</bAltDown>
			<bShiftDown>0</bShiftDown>
			<bCtrlDown>0</bCtrlDown>
			<iHotKeyPriority>0</iHotKeyPriority>
			<HotKeyAlt/>
			<bAltDownAlt>0</bAltDownAlt>
			<bShiftDownAlt>0</bShiftDownAlt>
			<bCtrlDownAlt>0</bCtrlDownAlt>
			<iHotKeyPriorityAlt>0</iHotKeyPriorityAlt>
			<bVisible>1</bVisible>
			<bGotoPlot>0</bGotoPlot>
			<bHighlightPlot>1</bHighlightPlot>
			<bSelectType>0</bSelectType>
			<bSelectAll>0</bSelectAll>
			<Button>,Art/Interface/Buttons/Actions/Bombard.dds,Art/Interface/Buttons/Actions_Builds_LeaderHeads_Specialists_Atlas.dds,2,1</Button>
		</InterfaceModeInfo>
		<InterfaceModeInfo>
			<Type>INTERFACEMODE_AIRBOMB1</Type>
			<Description>TXT_KEY_INTERFACEMODE_AIRBOMB1</Description>
			<Help>TXT_KEY_INTERFACEMODE_AIRBOMB1_HELP</Help>
			<CursorType>CURSOR_AIRBOMB</CursorType>
			<Mission>MISSION_AIRBOMB1</Mission>
			<HotKey>KB_B</HotKey>
			<bAltDown>0</bAltDown>
			<bShiftDown>0</bShiftDown>
			<bCtrlDown>0</bCtrlDown>
			<iHotKeyPriority>0</iHotKeyPriority>
			<HotKeyAlt/>
			<bAltDownAlt>0</bAltDownAlt>
			<bShiftDownAlt>0</bShiftDownAlt>
			<bCtrlDownAlt>0</bCtrlDownAlt>
			<iHotKeyPriorityAlt>0</iHotKeyPriorityAlt>
			<bVisible>1</bVisible>
			<bGotoPlot>0</bGotoPlot>
			<bHighlightPlot>1</bHighlightPlot>
			<bSelectType>0</bSelectType>
			<bSelectAll>0</bSelectAll>
			<Button>,Art/Interface/Buttons/Actions/Airbomb.dds,Art/Interface/Buttons/Actions_Builds_LeaderHeads_Specialists_Atlas.dds,5,6</Button>
		</InterfaceModeInfo>
		<InterfaceModeInfo>
			<Type>INTERFACEMODE_AIRBOMB2</Type>
			<Description>TXT_KEY_INTERFACEMODE_AIRBOMB2</Description>
			<Help>TXT_KEY_INTERFACEMODE_AIRBOMB2_HELP</Help>
			<CursorType>CURSOR_AIRBOMB</CursorType>
			<Mission>MISSION_AIRBOMB2</Mission>
			<HotKey>KB_B</HotKey>
			<bAltDown>0</bAltDown>
			<bShiftDown>0</bShiftDown>
			<bCtrlDown>0</bCtrlDown>
			<iHotKeyPriority>0</iHotKeyPriority>
			<HotKeyAlt/>
			<bAltDownAlt>0</bAltDownAlt>
			<bShiftDownAlt>0</bShiftDownAlt>
			<bCtrlDownAlt>0</bCtrlDownAlt>
			<iHotKeyPriorityAlt>0</iHotKeyPriorityAlt>
			<bVisible>1</bVisible>
			<bGotoPlot>0</bGotoPlot>
			<bHighlightPlot>1</bHighlightPlot>
			<bSelectType>0</bSelectType>
			<bSelectAll>0</bSelectAll>
			<Button>Art/Interface/Buttons/Actions/Airbomb_civil.dds</Button>
		</InterfaceModeInfo>
		<InterfaceModeInfo>
			<Type>INTERFACEMODE_AIRBOMB3</Type>
			<Description>TXT_KEY_INTERFACEMODE_AIRBOMB3</Description>
			<Help>TXT_KEY_INTERFACEMODE_AIRBOMB3_HELP</Help>
			<CursorType>CURSOR_AIRBOMB</CursorType>
			<Mission>MISSION_AIRBOMB3</Mission>
			<HotKey>KB_B</HotKey>
			<bAltDown>0</bAltDown>
			<bShiftDown>0</bShiftDown>
			<bCtrlDown>0</bCtrlDown>
			<iHotKeyPriority>0</iHotKeyPriority>
			<HotKeyAlt/>
			<bAltDownAlt>0</bAltDownAlt>
			<bShiftDownAlt>0</bShiftDownAlt>
			<bCtrlDownAlt>0</bCtrlDownAlt>
			<iHotKeyPriorityAlt>0</iHotKeyPriorityAlt>
			<bVisible>1</bVisible>
			<bGotoPlot>0</bGotoPlot>
			<bHighlightPlot>1</bHighlightPlot>
			<bSelectType>0</bSelectType>
			<bSelectAll>0</bSelectAll>
			<Button>Art/Interface/Buttons/Actions/Airbomb_prod.dds</Button>
		</InterfaceModeInfo>
		<InterfaceModeInfo>
			<Type>INTERFACEMODE_AIRBOMB4</Type>
			<Description>TXT_KEY_INTERFACEMODE_AIRBOMB4</Description>
			<Help>TXT_KEY_INTERFACEMODE_AIRBOMB4_HELP</Help>
			<CursorType>CURSOR_AIRBOMB</CursorType>
			<Mission>MISSION_AIRBOMB4</Mission>
			<HotKey>KB_B</HotKey>
			<bAltDown>0</bAltDown>
			<bShiftDown>0</bShiftDown>
			<bCtrlDown>0</bCtrlDown>
			<iHotKeyPriority>0</iHotKeyPriority>
			<HotKeyAlt/>
			<bAltDownAlt>0</bAltDownAlt>
			<bShiftDownAlt>0</bShiftDownAlt>
			<bCtrlDownAlt>0</bCtrlDownAlt>
			<iHotKeyPriorityAlt>0</iHotKeyPriorityAlt>
			<bVisible>1</bVisible>
			<bGotoPlot>0</bGotoPlot>
			<bHighlightPlot>1</bHighlightPlot>
			<bSelectType>0</bSelectType>
			<bSelectAll>0</bSelectAll>
			<Button>Art/Interface/Buttons/Actions/Airbomb_port.dds</Button>
		</InterfaceModeInfo>
		<InterfaceModeInfo>
			<Type>INTERFACEMODE_AIRBOMB5</Type>
			<Description>TXT_KEY_INTERFACEMODE_AIRBOMB5</Description>
			<Help>TXT_KEY_INTERFACEMODE_AIRBOMB5_HELP</Help>
			<CursorType>CURSOR_AIRBOMB</CursorType>
			<Mission>MISSION_AIRBOMB5</Mission>
			<HotKey>KB_B</HotKey>
			<bAltDown>0</bAltDown>
			<bShiftDown>0</bShiftDown>
			<bCtrlDown>0</bCtrlDown>
			<iHotKeyPriority>0</iHotKeyPriority>
			<HotKeyAlt/>
			<bAltDownAlt>0</bAltDownAlt>
			<bShiftDownAlt>0</bShiftDownAlt>
			<bCtrlDownAlt>0</bCtrlDownAlt>
			<iHotKeyPriorityAlt>0</iHotKeyPriorityAlt>
			<bVisible>1</bVisible>
			<bGotoPlot>0</bGotoPlot>
			<bHighlightPlot>1</bHighlightPlot>
			<bSelectType>0</bSelectType>
			<bSelectAll>0</bSelectAll>
			<Button>Art/Interface/Buttons/Actions/Airbomb_strat.dds</Button>
		</InterfaceModeInfo>
		<InterfaceModeInfo>
			<Type>INTERFACEMODE_BOMBARD</Type>
			<Description>TXT_KEY_CONCEPT_RBOMBARD_TEXT</Description>
			<Help>TXT_KEY_INTERFACEMODE_BOMBARD_HELP</Help>
			<CursorType>CURSOR_AIRBOMB</CursorType>
			<Mission>MISSION_RBOMBARD</Mission>
			<HotKey>KB_B</HotKey>
			<bAltDown>0</bAltDown>
			<bShiftDown>0</bShiftDown>
			<bCtrlDown>0</bCtrlDown>
			<iHotKeyPriority>0</iHotKeyPriority>
			<HotKeyAlt/>
			<bAltDownAlt>0</bAltDownAlt>
			<bShiftDownAlt>0</bShiftDownAlt>
			<bCtrlDownAlt>0</bCtrlDownAlt>
			<iHotKeyPriorityAlt>0</iHotKeyPriorityAlt>
			<bVisible>1</bVisible>
			<bGotoPlot>0</bGotoPlot>
			<bHighlightPlot>1</bHighlightPlot>
			<bSelectType>0</bSelectType>
			<bSelectAll>0</bSelectAll>
			<Button>,Art/Interface/Buttons/Actions/Bombard.dds,Art/Interface/Buttons/Actions_Builds_LeaderHeads_Specialists_Atlas.dds,2,1</Button>
		</InterfaceModeInfo>
		<InterfaceModeInfo>
			<Type>INTERFACEMODE_ABOMBARD</Type>
			<Description>TXT_KEY_CONCEPT_ABOMBARD_TEXT</Description>
			<Help>TXT_KEY_INTERFACEMODE_ABOMBARD_HELP</Help>
			<CursorType>CURSOR_AIRBOMB</CursorType>
			<Mission>MISSION_ABOMBARD</Mission>
			<HotKey>KB_B</HotKey>
			<bAltDown>0</bAltDown>
			<bShiftDown>0</bShiftDown>
			<bCtrlDown>0</bCtrlDown>
			<iHotKeyPriority>0</iHotKeyPriority>
			<HotKeyAlt/>
			<bAltDownAlt>0</bAltDownAlt>
			<bShiftDownAlt>0</bShiftDownAlt>
			<bCtrlDownAlt>0</bCtrlDownAlt>
			<iHotKeyPriorityAlt>0</iHotKeyPriorityAlt>
			<bVisible>1</bVisible>
			<bGotoPlot>0</bGotoPlot>
			<bHighlightPlot>1</bHighlightPlot>
			<bSelectType>0</bSelectType>
			<bSelectAll>0</bSelectAll>
			<Button>Art/Interface/Buttons/Actions/Barrage.dds</Button>
		</InterfaceModeInfo>
		<InterfaceModeInfo>
			<Type>INTERFACEMODE_SAVE_PLOT_NIFS</Type>
			<Description></Description>
			<Help/>
			<CursorType>CURSOR_PING</CursorType>
			<Mission>NONE</Mission>
			<bVisible>0</bVisible>
			<bGotoPlot>0</bGotoPlot>
			<bHighlightPlot>1</bHighlightPlot>
			<bSelectType>0</bSelectType>
			<bSelectAll>0</bSelectAll>
		</InterfaceModeInfo>
	</InterfaceModeInfos>

And Civ4MissionInfo.xml like this:
Code:
		<MissionInfo>
			<Type>MISSION_MULTI_DESELECT</Type>
			<Description>TXT_KEY_MISSION_BUILD_IMPROVEMENT</Description>
			<Help>TXT_KEY_MISSION_BUILD_IMPROVEMENT</Help>
			<Waypoint>NONE</Waypoint>
			<EntityEventType>ENTITY_EVENT_MULTI_DESELECT</EntityEventType>
			<iTime>0</iTime>
			<bTarget>0</bTarget>
			<bBuild>0</bBuild>
			<bSound>0</bSound>
		</MissionInfo>
		<MissionInfo>
			<Type>MISSION_AIRBOMB1</Type>
			<Description>TXT_KEY_MISSION_AIRBOMB1</Description>
			<Help>TXT_KEY_MISSION_AIRBOMB1_HELP</Help>
			<Waypoint>NONE</Waypoint>
			<iTime>20</iTime>
			<bTarget>0</bTarget>
			<bBuild>0</bBuild>
			<bSound>1</bSound>
			<Button>,Art/Interface/Buttons/Actions/Airbomb.dds,Art/Interface/Buttons/Actions_Builds_LeaderHeads_Specialists_Atlas.dds,5,6</Button>
		</MissionInfo>
		<MissionInfo>
			<Type>MISSION_AIRBOMB2</Type>
			<Description>TXT_KEY_MISSION_AIRBOMB2</Description>
			<Help>TXT_KEY_MISSION_AIRBOMB2_HELP</Help>
			<Waypoint>NONE</Waypoint>
			<iTime>20</iTime>
			<bTarget>0</bTarget>
			<bBuild>0</bBuild>
			<bSound>1</bSound>
			<Button>Art/Interface/Buttons/Actions/Airbomb_civil.dds</Button>
		</MissionInfo>
		<MissionInfo>
			<Type>MISSION_AIRBOMB3</Type>
			<Description>TXT_KEY_MISSION_AIRBOMB3</Description>
			<Help>TXT_KEY_MISSION_AIRBOMB3_HELP</Help>
			<Waypoint>NONE</Waypoint>
			<iTime>20</iTime>
			<bTarget>0</bTarget>
			<bBuild>0</bBuild>
			<bSound>1</bSound>
			<Button>Art/Interface/Buttons/Actions/Airbomb_prod.dds</Button>
		</MissionInfo>
		<MissionInfo>
			<Type>MISSION_AIRBOMB4</Type>
			<Description>TXT_KEY_MISSION_AIRBOMB4</Description>
			<Help>TXT_KEY_MISSION_AIRBOMB4_HELP</Help>
			<Waypoint>NONE</Waypoint>
			<iTime>20</iTime>
			<bTarget>0</bTarget>
			<bBuild>0</bBuild>
			<bSound>1</bSound>
			<Button>Art/Interface/Buttons/Actions/Airbomb_port.dds</Button>
		</MissionInfo>
		<MissionInfo>
			<Type>MISSION_AIRBOMB5</Type>
			<Description>TXT_KEY_MISSION_AIRBOMB5</Description>
			<Help>TXT_KEY_MISSION_AIRBOMB5_HELP</Help>
			<Waypoint>NONE</Waypoint>
			<iTime>20</iTime>
			<bTarget>0</bTarget>
			<bBuild>0</bBuild>
			<bSound>1</bSound>
			<Button>Art/Interface/Buttons/Actions/Airbomb_strat.dds</Button>
		</MissionInfo>
		<MissionInfo>
			<Type>MISSION_RBOMBARD</Type>
			<Description>TXT_KEY_MISSION_RBOMBARD</Description>
			<Help>TXT_KEY_MISSION_RBOMBARD_HELP</Help>
			<Waypoint>NONE</Waypoint>
			<EntityEventType>ENTITY_EVENT_BOMBARD</EntityEventType>
			<iTime>10</iTime>
			<bTarget>0</bTarget>
			<bBuild>0</bBuild>
			<bSound>1</bSound>
			<Button>,Art/Interface/Buttons/Actions/Bombard.dds,Art/Interface/Buttons/Actions_Builds_LeaderHeads_Specialists_Atlas.dds,2,1</Button>
		</MissionInfo>
		<MissionInfo>
			<Type>MISSION_ABOMBARD</Type>
			<Description>TXT_KEY_MISSION_ABOMBARD</Description>
			<Help>TXT_KEY_MISSION_ABOMBARD_HELP</Help>
			<Waypoint>NONE</Waypoint>
			<EntityEventType>ENTITY_EVENT_BOMBARD</EntityEventType>
			<iTime>10</iTime>
			<bTarget>0</bTarget>
			<bBuild>0</bBuild>
			<bSound>1</bSound>
			<Button>Art/Interface/Buttons/Actions/Barrage.dds</Button>
		</MissionInfo>
	</MissionInfos>

I don't know why you need an false interfacemode definition before the real ones, but it's the only way to get it to work.
 
Hmm, well I have it as:


Code:
	INTERFACEMODE_PYTHON_PICK_PLOT,
	INTERFACEMODE_SAVE_PLOT_NIFS,
	INTERFACEMODE_BOMBARD,
	INTERFACEMODE_AIRBOMB1,
	INTERFACEMODE_AIRBOMB2,
	INTERFACEMODE_AIRBOMB3,
	INTERFACEMODE_AIRBOMB4,
	INTERFACEMODE_AIRBOMB5,

and

Code:
	MISSION_MULTI_SELECT,
	MISSION_MULTI_DESELECT,
	MISSION_RBOMBARD,
	MISSION_AIRBOMB1,
	MISSION_AIRBOMB2,
	MISSION_AIRBOMB3,
	MISSION_AIRBOMB4,
	MISSION_AIRBOMB5,

Which seems to be in a different order than yours, but that's because I started from the RB code and added the new air missions after it. (And where did ABombard come from?)

But anyway, I don't see why that should matter, since it still does not function properly when I use your own SDK... but I'm sure it's something I've done wrong, so I'll just have to go back and look at it when I can get a chance. :crazyeye:
 
ABOMBARD is the new archery bombard (like FFH's archery barrage).

The order of the enums MUST be in the same order as the xml files, or you'll have probs.
 
Okay guys, more news. Just for a try, I loaded the bombing missions mod as a stand-alone, just like one would normally do. I started a new game in Civ 4 BtS set in the Modern Era, and played a few rounds. To test things, I declared war on my neighbor and gave him a bunch of planes.

I still get a CTD.

This suggests that it is something in the original mod that's doing it (and not my recompiled SDK, as I originally thought), but I haven't the foggiest what it is. Has anyone else reported CTDs?


EDIT: Oh, one other note. I noticed that when you used Seven05's new "smart weapons" system, you geared it by tech, specifically TECH_COMPUTERS and TECH_LASER. Now, since I tested this in regular BtS (not a scenario) that wouldn't be the cause of a CTD, but would it matter for someone who wants to use your mod in a scenario without those techs?
 
Okay guys, more news. Just for a try, I loaded the bombing missions mod as a stand-alone, just like one would normally do. I started a new game in Civ 4 BtS set in the Modern Era, and played a few rounds. To test things, I declared war on my neighbor and gave him a bunch of planes.

I still get a CTD.

This suggests that it is something in the original mod that's doing it (and not my recompiled SDK, as I originally thought), but I haven't the foggiest what it is. Has anyone else reported CTDs?


EDIT: Oh, one other note. I noticed that when you used Seven05's new "smart weapons" system, you geared it by tech, specifically TECH_COMPUTERS and TECH_LASER. Now, since I tested this in regular BtS (not a scenario) that wouldn't be the cause of a CTD, but would it matter for someone who wants to use your mod in a scenario without those techs?

Yes it will. I want to make those references generic, so an xml tag in Civ4TechInfos.xml controls it, not a static line of code. Makes it more generic and modder friendly. :)
 
Hey Dale,


Just a suggestion here:

Would you be able to create a new promotion that will allow you to manually choose which building you want to destroy?

Or perhaps a new mission that would allow you to do so?

I wanted to see something that simulates precision guided munitions a little better than just gaining Computers or Lasers. The random building destruction is good for simulating carpet bombing, but not very good for simulating smart weapons.


Also, one more suggestion:

Would you be able to add a diplomatic penalty if the AirBomb2 mission is used? Maybe a watered down version of the diplo penalty when using nukes?

Most civilized nations frown upon bombing a hospital or such things. ;)
 
There is probably something that only arises in very special circumstances doing it, which is why when I tested it in my new Pacific scenario I immediately got a CTD. Somebody else also reported a CTD in the updated DCM mod, which just added the new air missions. It's too much of a coincidence. :crazyeye:
 
I'm iffy on precision-guided attacks.. the main reason is because this will provide free information on the building composition of a city. If I target a city, and then get the pop up to select a building, I immediately know exactly which buildings are in that city. I've done nothing to earn this information, but there it is. And yes, I suppose we could say that since you'll probably have satellites by the time you get to precision bombing, it makes it somewhat irrelevant, but I can't just push a button, select a city, and get a list of their buildings otherwise. Why should I be able to do it with this one bombing mission?

Besides, selective targetting would also require additional AI programming to get them to choose the "best" building to attack rather than a random building.
 
i totally agree. this modcomp makes bombers extremely powerful already.

In fact, i will be one to suggest Dale increases the costs of bombers and fighters after making this huge addition of the powers of these units.
 
There is probably something that only arises in very special circumstances doing it, which is why when I tested it in my new Pacific scenario I immediately got a CTD. Somebody else also reported a CTD in the updated DCM mod, which just added the new air missions. It's too much of a coincidence. :crazyeye:

adding a modcomp to an existing mod is not as easy as many think :)
at least, to do it proper
 
Back
Top Bottom