Release 1.4.4
the Bruce bugs
The bugs found by Bruce Nielsen (Locutus) and related fixes.
- BuildingManager::validateWorkersAndBuildings() copied building objects unnecessarily.
- BuildingManager::cancelQueuedBuildings() and BuildingManager::cancelBuildingType() unsafely deleted buildings from the _buildings vector while looping through it.
- Squad::releaseWorkers() had a similar deletion bug.
- MapTools::nextExpansion() had a typo that caused it to do a check with the wrong coordinates.
other code changes
- UnitUtil::GetAttackRange() and UnitUtil::GetAttackRangeAssumingUpgrades() mistakenly returned the weapons range of a reaver or a carrier as 8 pixels, rather than 8 tiles (8 * 32 pixels). “We’re perfectly safe at this distance, folks!”
- I am reworking DistanceMap as the foundation of a range of classes that keep a number for each tile of the map. A new base class Grid provides the basic data structure, initialization to a constant value, and lookup. DistanceMap is renamed to GridDistances. I wrote a new class GridAttacks as a start on a kind of influence map; some code is there, but it is not yet tested or used, so exercise care.
- Removed the unused BuildingData class, and the unused method MicroManager::calcCenter().
- Removed more unnecessary includes.
zerg
- If an expansion hatchery fails to build, the building manager turns it into a macro hatchery instead. It prevents Steamhammer from sending drone after drone to expand and losing them all. It’s a low-level trick instead of the high-level tactical safety analysis that should be done, but it’s simple and it works moderately well.
- Versus protoss, count only corsairs, scouts, and carriers as reason to make devourers. Steamhammer played a game in which it made devourers to combat the enemy’s large number of observers. “I know how to beat that plan!”
- On 2 player maps, increase the chance of playing rush-safe ZvZ openings. Also rejiggered fast pool chances (suggestion by Antiga). A number of other probabilities are adjusted, mostly to make more diverse choices so that learning has data to work with.
Official press-release: http://satirist.org/ai/starcraft/blog/archives/594-Steamhammer-1.4.4-change-list.html