We are proud to announce the release of a major new free update for the critically-acclaimed World War 2 operational wargames Command Ops: Battles from the Bulge and Command Ops: Highway to the Reich.
The v4.4.263 update represents over a year of additional development and improvements on the Command Ops engine, largely based on community feedback. This is provided as a free update to Command Ops customers, representing incredible value in terms of post-release support and improvements.
This update fixes bugs and greatly improves gameplay and modding. This includes improvements to the LOS tool, handles stalled moves and scheduled attacks better, improvements to supply, enables units that are retreating and retreat recovering to surrender, and a veritable host of dozens of other improvements.
For a full list of changes, check below:
V4.4.263 May 17, 2013
Removed some redundant asserts from the debug version
Fixed crash in ScenMaker due to units not having estab associated
Fixed crash when SaveFileLoc.cfg is not available. This normally manifested in Win 8 OS.).
V4.4.262 May 10, 2013
Enable units that are retreating and retreat recovering to surrender. Previously, this was restricted to routing, and rout recovering units. Though for retreating and retreat recovering units the enemy must be nearby and they must have been engaged within the last two minutes. This ensures surrounded units surrender in a reasonable time.
Remove the formation aspect modifier from the fire routines where the range is very close. If covered terrain then reduce the effect. This addresses the issue where a low strength unit never dies (as per Daz's M8 recon units).
Allow player assigned HHour for attacks to slip automatically during planning process if the earliest possible HHour is later than the assigned one. This ensures the attack is not abandoned because of insufficient time to get to the FUP.
Added HHour Slipped report to advise the player where the HHour has been automatically slipped in planning.
Ensure that assaults are not cribbed where the player has assigned a HHour. This assists the player to manually coordinate attacks.
V4.4.261 April 15, 2013
Ensure HHour of player orders are not slipped if the player sets the HHour.
Ensure that the End time of a player order is not slipped if the player sets the HHour and it is still active.
End times for Bombard and Fire tasks are now correctly set.
Converted all HTTR Ex Pack data to be compliant with patch.
V4.4.260 April 9, 2013
Changes and Fixes
Ensure that StartAtDelayType is passed down through all scheduling code. This prevents attacking forces from waiting at the start of their FUP Reorg. Note this anomaly only affected attacks ordered by human players and did not apply to AI launched attacks.
Increase max tick count of routes. This addresses Assert at MapVisitTable.cpp 328
Use PodDoubles to eliminate data overflow inside ScenDump::ModifyPayloadSupplyQuantities(). Fixes assert at PodFloat.inl, line 277.
Decreased the probability of supply lines being cut.
Players' orders are disabled while Terrain Tables are recalculated. Player (or players, if it's a multiplayer game) is notified of this via a High Priority report. While the player can't issue any new orders, it is allowed to inspect units and tasks data. Once the Terrain Tables have been stabilizied and all on-going tasks adjusted accordingly, the player is notified that further orders can be issued. This fixes potential crashes after crossings are upgraded or degraded.
Revised the handling of user-defined H Hours when mission plans are generated and slip to ensure task timings are consistent.
Fixed a check on user-defined H Hours which under certain conditions deemed a player order with a feasible plan to be unfeasible due to timing constraints.
Improved task duration estimation for all orders involving movement and assaults.
H Hour Auto checkbox disabled once assaults are underway.
Threat assessments for HQs and support units are now ignored if the Bypass option is unchecked on the order settings.
V4.4.259 March 28, 2013
Changes and Fixes
Handle cases inside PlanMove where the Route is recalced (because of a slip plan) and the subject is located on the route but not at the start. This ensures that the force does not try and go back to the start of the route. Addresses assert at ScenCommonAI line 7952.
Handle cases where a force with a delay mission bunkers down and then reassesses, having no blocking tasks. It now will force replan if the bossTask was not a delay or it will abandon its plan if the bossTask was a delay. This addresses assert at TaskDoctrine.cpp, line 7930.
Ensure that objective Tasks that have already started and whose HHour is not set do not try and slip their HHour even if the bossHHour and bossStart are slipped. This addresses assert at ScenTask 2220.
Ensure that PlanAttack:AdjustAdvanceRoute() caters for cases where the subject starts on the truncated approach route and therefore doesn't need a join route. This addresses assert at ScenCommonAI 7952.
Ensure that PlanAttack::DevelopScenarioEndQuickAttack() will not call GetValues() on the attackFG if it not populated. Addresses assert at ScenForceGroup.cpp, line 1070.
Ensure that the missionTask Hhour is not updated inside PlanAttack::ConfirmTimings() when plans are slipped if the HHour is self assigned. This addresses assert at PlanAttack.cpp, line 5198.
Ensure that where a unit does not have a current task inside WillRedeployFirebase() that it does not try to call GetPlanningParams(). This addresses access violation st ScenTask 7094.
Ensure that the plan subject is valid before trying to access its type inside GetIndirectAvailableOnCallSupport(). This fixes a crash that occurred at ScenForceGroupUtils line 378.
Ensure MapSearchParams is thread safe so that the UI and AI threads can safely calc routes at the same time. This fixes a nasty CTD that can occur when placing multiple waypoints while the game is running fast.
Ensure that CalcInitialFrontageAndDepth() calls CullSupplyAndFirebasingUnits() so that the frontage and depth excludes the personnel from bases and long range arty.
Ensure that inside MustWaitForUnitAhead()it only ignores the unit ahead if it has a different task type and is waiting on a receive orders event. This prevents unnecessary formation lockups.
Added new feature to EstabEditor that enables the user to select the image file for a Side, Nation, Service, Vehicle or Ammo using a standard file requester dialog.
Added new feature to EstabEditor that displays the name of the opened estab xml document in the title bar.
Mods to the Estab XML schema to support the change from IDs to actual file references for estab images
Modify the conversion code for estab databases to automatically convert new estab image file references.
Modify the EstabManager's XML import and export code to handle new estab image file referencing.
Added new feature to MapMaker to import and export MapEffects data using CSV spreadsheet file format. This allows the scenario designer the power to compare and edit the different effects for all terrain layers in a spreadsheet table format.
Ensure that the path finding code is thread-safe. This avoids corrupting data when players assign tasks to forces while the game is running.
Fixed bug in LOS tool that sometimes displayed location as visible when they were not visible due to intervening terrain.
Changed LOS tool so that elevation profile lines always point up to the top of the screen.
Changed LOS tool by reducing scale of elevation profile lines. Improves visualization where there are big differences in elevation.
V4.4.258 March 4, 2013
Ensure subGroup not added twice when generating right echelon formation. Fixes assert at ScenForceFormation 2612.
Add extra test to assert at PD 3759 to handle cases where a unit requests extra time to slip its plan and where the boss abandons its plan in the process.
Ensure that AssessForSubAttacksWhoseReorgsCanBeBroughtForward() aborts cleanly if the force is waiting to receive orders from boss aand has already curtailed the missionTask end. Addresses assert at TaskAttack line 1727.
Ensure that static arty units assigned to their own mission plan within the onMapBoss's OpPlan are searched when calling GetAvailableOnCallSupport(). This ensures that they get a chance to fire if not in direct support of a particular mission.
Ensure that dateTimes are validated for local settings.
Ensure that cases where no valid route can be generated are handled properly throughout the assessment functions.
Remove and prevent UI loopbacks that were causing task changes not to stick while the game was paused.
Added new code to assess for stalled moves that will either wait, bypass, or replan depending on a number of factors like are there any subordinates attacking, can we bypass effectively. In the process overhauled the AssessBypass() and ensured that the caution factor was increased each time a bypass attempt was made thus making it more likely the force would select a route that avoided the enemy.
Added new unit log messages, and player reports for stalled moves.
Fixed bug inside MustWait() that was allowing filler units to move off even though the unit ahead of them was still receiving his move orders. This should fix cases where support units charge off on their own ahead of the main body.
Ensure that the nextRouteIndex and nextRouteLoc are used consistently throughout the formation movement code. This avoids formation lockups.
Ensure that units don't request emergency re-supplies of ammo for which they have no weapon left that can use that ammo type.
Revise the cap on emergency re-supply ammo qty, ensuring that units get at least something. These two fixes prevent the never ending loop of units requesting emergency ammo that they don't need and also of not getting ammo they do need.
Ensure that when creating a new route that all exiting waypoints are cleared. This fixes a bug that wasn't clearing the interim waypoint and adding it to the new route, even though it shouldn't.
Ensure that routing and recovering units do not try and create a new route if they reassess their task. This could see a routing or recovering unit heading back to its objective before it had recovered. This may explain some cases of units retreating toward the enemy.
V4.4.257 February 15, 2013
Ensure start and end times of advance to reserve task within an attack are maxed to timeNow + 1 min. This fixes assert at ScenTask 2137.
Ensure that advance to FUP routes ignore truncation where the subject cannot join the approach route before the FUP. Addresses assert at FPRouteOutput.cpp, line 2222.
Overhaul Formation code ensuring all formations cater for cases where the hub is a line unit. Also modified subGroup generation and offsets across the following formations - line, successive lines, vee, arrowhead, left and right echelon.
Overhaul UI code for drawing task bounding boxes so that these more closely match the likely formation deployment area and ensure that when the user changes formation settings these are reflected even when the game is paused.
Tweak the combat code, including reducing the area per man constants, tweaking the global accuracy settings (especially for close range and overlapping forces).
Teak the reaction code, including decreasing rout threshold (thereby increasing likelihood of retreating), removed double counting of recent casualties, reduced suppression effects applied when retreating and routing in place and substituted instead a reduction in cohesion.
Ensure attacks are aborted in the planning code if insufficient time. This fixes assert at PlanAttack 10515.
Ensure that blown crossings are catered for inside the planning of Moves. Fixes assert at PlanMove 5283.
Use doubles instead of floats to avoid data overflow when determining bombardment area for large caliber guns. Fixes assert at PodFloat 277.
AutoSave now saves ten saved games every ten minutes. Once it gets to ten it overwrites the oldest one.
V4.4.256 January 10, 2013
Handle cases where eng unit cannot get any closer to the bridge but is still further than 100m. It now just constructs in place. This addresses FPAsset at SCAI line 8380.
Upon disbandment ensure that only units whose current loc is passable to the disbanding unit's moveType are considered eligible to receive any disbanded vehicles. This fixes an assert at ScenRoute 1029.
Ignore code within AllocateForcesToTasks() that tries to preallocated resources to nearby threatened objectives when allocating for attacks. This avoids line units being allocated to the reserve when the reserveLoc is near enemy. Fixes the single assault company issue.
Restrict preallocation of nearby units to threatened objectives once the currShare of combat power exceeds the required priority share but only after scernario start +30 mins. This ensures that during the at start plan development cnearby units will be allocated even if this wouyld exceed the normal priority share allocation. After 30 mknutes reverts to normal.
Fixed data overflow - ie number too big for the size allocated - inside ScenSupplyTransportEvent::DetermineLosses(). The code now uses PodDoubles rather than PodFloats. This addresses FPAssert at PodFloat 36.
Reduced min and max range for routers from 1800-2700m to 1200-2100m.
Ensure router use "safest" routes - ie stick to cover and avoid enemy firepower.
V4.4.255 Dec 17, 2012
Overhauled Formation code
Accounting for variable HubToFrontDistances. Previously set the hubToFrontDistance to hubDepth /2. But this was compressing the deployments where more than 50% of the force was forward of the hub, which was in most cases.
Modifying the UI so the task bounding box which depicts the force occupied area now uses a hub based on a variable hubToFrontDistance. Because of the need to make this thread safe, changes made while the game is paused such as to task facing may not be reflected till the game starts running.
Fixed issue that was preventing the game running under Windows XP by exluding certain system dependencies from the installer. These included COMDLG32.dll, DSOUND.dll, VERSION.dll and WSOCK32.dll
Ensure that attack are called off due to lack of time if the shortfall exceeds the assaultDuration. ( PA 10835 )
Fix Assert in DetermineSlippageResponse() to account for cases where the FUP has been terminated and its times all set to its start. ( MSP 5511 )
Ensure attackSubHQs determined after independents in End of Scenario attack. ( PA 2343 )
Ensure that all stored peripheral task force groups are factored into the unitCount inside VerifyPlanForceGroups() regardless of their status ( SMP 4097 )
Modify Assert inside AssessForSubAttacksWhoseReorgsCanBeBroughtForward() to cater for cases where an attack is scheduled to start next minute while it's status is set to current. ( TA 1789 )
Ensure that OnCallSpt forces subtracted from Independents before developing end of scenario attacks. This avoids the possibility of allocating the same unit to more than one current task - ie reserve and assault. ( SRF 16165 )
Ensure that the start of concurrent tasks are not slipped if the sourceTask they are linked to is already current. This prevents continual slipping of complex tasks, where their starts are not coordinated. ( SMP 4228 )
Prevent the allocation of a forceGroup subject to a task if it is not suitable. ( SFTTAR 4309 )
Added new member to SlippageTask and modified slippage code to ignore End if nextTask is ignoring its start time. This ensures that linked tasks are slipped and cribbed correctly. ( SMP 4311 )
Ensure that existing peripheral forceGroups are deducted from the CoreFG at the start of DevelopMissionPlan() ( SMP 4098 )
Modified code inside TaskMove::ReassessOptions() to only Halt when under serious threat and not just because the unit is not making progress.
Reduced probability of halting where unit is trying to move away from closest threat and the unit is not co-located with the closest threat.
Where unit co-located with closest threat but is trying to move away, it will now retreat rather than halt.
Remove LOS check inside CanFire() where a unit is passed in as unit will be from know visible threats. In other words stop double checking LOS. This ensures that a unit can have a chance to fire at a visible threat and reduced processing - excellent! In testing it increased the number of fire events by 70%.
Increased range of routs from between 600 and 1200m to 1800 and 2700m
Added code to give priority to covered terrain when retreating/routing.
Extensive modification of Fire code both for APer and AArm fire to get more historical casualty results.
Decreased the probability and quantum of surrenders that occur when a units routs.
Fixed a number of access violations introduced in last build. ( SRF.inl 143 and PS 342 )
Added new code to create IndDefendAtFUP task where a force is already at the FUP. It will now defend there till the main assault forces arrive and then it will join them in the FUPReorg and Assault. ( SCAI 7323 )
Modified ConfirmTimings() for attacks to accomodate new IndDefendAtFUP task.
Ensure that OnCallSpt forces subtracted from Independents before developing basic and complex attacks. this avoids the possibility of allocating the same unit to more than one current task - ie reserve and assault. ( SRF 16165 )
Converted Estab files for both BFTB and COTA ensuring that all estab forces have their supplies, firepower counts and capabilities updated. This fixes a problem encountered in the COTA ExPack where bridging units had lost their constrcut bridge capability after the initial conversion.
Doubled morale degradation for units low on supplies. Now such units lose around 30% morale per day. Cannot reduce below 20% for this purpose.
Ensure the missionPlan is replanned in cases where the assault has ended and there is no final reorg task ( SPS 18063 )
Ensure that a plan is not already in opPlan->pendingPlans before adding it. Ths avoid referenced corpse ( GameDiagnostic 1029 )
Ensure that fuel vehicles from returning transport columns are not added as equipment to bases whose estab does not have any fuel vehicles. (SFGV 1378 )
Ensure that independent advance to FUP and indepenedent defend at FUP tasks are properly linked as concurrent tasks. (PodDB 614 )
Added code to check if the forces assigned to the advanceToFUP task are alreay near the FUP. If all are narby then the advanceToFUP task is killed off. If part, then the nearby forces are subtracted from its forceGroup and go on hold till the FUPReorg, leaving the rest to advance to the FUP. (SCAI 7323)
Prevent face changing for assaulting units and those moving in road column
Default the task settings for ArtyDirectFireOnly to true for attacks and probes
Added the registrationTime to remainingDuration in bombardment events. This ensures that the arty unit fires for at least the specified number of minutes.
Now cap maxSuppression to 75% for direct fire and to 85% for indirect fire when the target is in covered terrain.
Reduced max registration times from 15 to 5 minutes and increased the range denominator from 200 to 500. Rego time = min( 5, range / 500 ). The overall effect is to reduce registration times for arty fire. Fatigue and training can increase time by up to 56% to a max of 8 minutes.
OnCallSpt bombardment duration now reduced if arty ammo level below 50%.
Ensured suitability iterator updated before allocating resources to nearby objectives.
Overhauled Halting code to reduce instances of halting.
Fix crash inside ScenRoute when the taskLoc == leaveLoc and the effEndIndex is not adjusted correctly.
Added new Scenario Statistics feature to ScenMaker.
Added new Cull Inactive Units feature to ScenMaker.
Culled Inactive units from all converted COTA scenarios.
Turned off FPAssert at ScenPlanScheduling.cpp, line 14529. There still occurs from time to time cases where a support units will be left without an order for some as yet to be explained reason. They get new orders after replanning. Given the rarity of this and the difficulty in determining the cause I have opted to ignore it.
Ensured the sort function CompareResourcesByAscendingSizeDescendingSuitability() has a valid comparitor when both resources are not suitable.
Ditto for CompareResourcesByHQsAndDescendingSuitability().
Fixed bug in Terrain Popup which was adding the base altitude to the spot height, which it should not have done.
Ensured that Impassable Cliffs in the Malta map had zero move effect for motorised units.
Rebuilt the Sidi Rezeh map to eliminate data corruption.
Fixed bug in Debug version when autoStaffSupport selected for human player. Recompile of Tools and Game PCHs required.
Added new AssessForStalledAttack() reassessment code. It now checks to see if an attack should be called off if subordinates are halting.
Modified the code that prioritieses objectives. If a nearby enemy ( ie one within 3000m ) is closer to another objective then its values are reduced. This has the effect of reducing the amount of friendly forces assigned to friendly objectives and helps maintain momentum in an advance.
To download the update, players can run Check for Update via the game menu or download it directly from the games download pages here and here
Get more information on Command Ops: Battles from the Bulge and Command Ops: Highway to the Reich from their official product pages.