Hey Civ Community,
The hot fix patch is en route and will resolve some of the issues created on the Fall Patch. Here are the notes for your viewing pleasure.
Thanks for your patience on this one and have a good Thanksgiving!
Hot-Fix Patch Notes
[CRASH]
- DX9 Range-strike crash. A city-strike or ranged unit could cause the game to crash when playing in the DX9 version, mainly in full-screen, but could occur in windowed mode as well.
- DX9 Cascading graphics failure crash. On certain video cards, after playing for a short amount of time (or across a number of short games), the game could exhibit strange graphical behavior (rapidly blinking graphics, terrain unloading, etc.), which could eventually lead to a driver failure or hang.
- DX9 multiple start crash. Fixed an issue where the DX9 version of the game could become unstable or crash if started multiple times in the same session.
[BUG]
- Auto-Annex, no pop-ups bug. Fixed an issue that was causing the pop-up queue to stop displaying in-game pop-ups until the game was reloaded. NOTE: The cause of this could also exist in existing mods. Please see our note at the bottom of the change-list on how modders can correct this.
- Mod constant reload. Fixed an issue causing mods to constantly reload each time the user visited the mods area. Could also cause modded saves to be corrupted or crash on load.
- Denmark Trait not working. Fixed an issue causing Denmark’s trait (allows disembarked units to have an extra move after landing) to not function correctly.
- Inefficient Pathfinder issue. Fixed multiple issues with the pathfinder that was causing units to exhibit inefficient movement choices.
- Exploding workboat graphic. Fixed an issue where the Workboat model exhibited graphical corruption.
- Grey terrain/checker-boarding. Fixed an issue on slower video cards where terrain displayed in large quantities, or with rapid draws (like clicking rapidly around the mini-map), could cause the game to unload the terrain system, resulting in large amounts of checkerboards.
[OPTIMIZATION]
- Multiple Terrain optimizations.
[MODDING NOTE]
Modders need to ensure they are calling the SerialEventGameMessagePopupProcessed event immediately with pop-ups.
The first parameter of this event must be the popup type that is closing, so that the game knows it can show any other popups in the queue. This can be done by explicitly sending the popup type that was opened, e.g. ButtonPopupTypes.BUTTONPOPUP_GOODY_HUT_REWARD, or when the popup handles the SerialEventGameMessagePopup message and determines that it will handle the popup, the popup type is saved off in a global. The latter is needed if the code handles more than one popup type, but is preferred even if the code handles one type. That method will ensure that the code works in all cases. The example below is from ReligionOverview.lua and shows how the popup type is saved off, then re-used when sending the SerialEventGameMessagePopupProcessed. The relevant changes are in red:
Code:
local g_PopupInfo = nil;
function OnPopupMessage(popupInfo)
local popupType = popupInfo.Type;
if popupType ~= ButtonPopupTypes.BUTTONPOPUP_RELIGION_OVERVIEW then
return;
end
if(not Game.IsOption(GameOptionTypes.GAMEOPTION_NO_RELIGION)) then
g_PopupInfo = popupInfo;
if( g_PopupInfo.Data1 == 1 ) then
if( ContextPtr:IsHidden() == false ) then
OnClose();
else
UIManager:QueuePopup( ContextPtr, PopupPriority.eUtmost );
end
else
UIManager:QueuePopup( ContextPtr, PopupPriority.SocialPolicy );
end
end
end
Events.SerialEventGameMessagePopup.Add( OnPopupMessage );
function ShowHideHandler( bIsHide, bInitState )
if( not bInitState ) then
if( not bIsHide ) then
UI.incTurnTimerSemaphore();
Events.SerialEventGameMessagePopupShown(g_PopupInfo);
TabSelect(g_CurrentTab);
else
if(g_PopupInfo ~= nil) then
Events.SerialEventGameMessagePopupProcessed.CallImmediate(g_PopupInfo.Type, 0);
end
UI.decTurnTimerSemaphore();
end
end
end
ContextPtr:SetShowHideHandler( ShowHideHandler );