Minor change: Named two variables related to nuke flash.
Minor change: for(;blah;) replaced by while().
Replace the hacky access to vectors and constants by the use of static fields.

No change of behavior, though some comments have been updated.
Minor change: Replaced two new'ed DynamicVectorClasses with one of std::pair<> based on the stack.
If KickOutOfRubble() cannot place an infantry unit, it gets uninitialized.
Merge branch 'v02' of github.com:Ares-Developers/Ares into v02

Conflicts:
	src/Ares.version.h
Minor change: Don't retrieve the same ID string twice.
Minor change: Eliminated a superfluous else-block.
Updated the version information and resources.

The numerical file version stays in the recently introduced format <year>.<dayofyear>.<minuteofday>.0. The numerical product version will be the same for beta binaries. For release binaries, the product version will take the form <major>.<minor>.<patch>.0 (like 0.2.1.0 for a hypothetical 0.2p1).

The string file version ("FileVersion") is a string representation of the numerical file version. For beta binaries, "ProductVersion" will be the same. For release binaries, "ProductVersion" will be the human-readable display name of the version name (like "0.2p1").

To distinguish between beta and release binaries, check for the VS_FF_PRERELEASE flag. It will set for betas and clear for release binaries.
The testing version warning on the game's loading screen will disappear if IS_RELEASE_VER is defined, without leaving a gap.
Version number update.
Just a version bump.

This binary is to be compiled with the latest YRpp NukeFlash fix,
related to bug 896361 - sanity checks around foundation occupyheight like WW used
merging in latest fixes
Added the new tag [GlobalControls]DebugKeysEnabled= (boolean, defaults to yes). If it is set to no, the AI Base Plan, AI Control, Dump Types and Map Snapshot keyboard commands are disabled. If they are executed, the language string "TXT_COMMAND_DISABLED" is shown instead.

This tag can be used to prevent users from gaining an unfair advantage in multi-player games, from revealing vital secrets, and from deliberately causing a Reconnection Error in release versions of a mod.

TXT_COMMAND_DISABLED can include one "%s", which is replaced with the actual command name. In Ares, this string defaults to "The %s command is not available.".
Updated forEachObjectInRange() method.

It now returns negative values if the input is invalid. Otherwise it always returns the count of objects that successfully invoked the callback action.

These changes do not affect how the function behaves internally, and no caller uses the return value for anything yet, so this is actually just a minor service update.
Added documentation and better comments to the enumerator functions.

No code change.
Added forEachObjectInCellRange and changed the Psychic Dominator to use it.

forEachObjectInCellRange checks the cell distance to the center cell instead of each object's distance to the center. This means, if a cell is close enough, all objects on it will be affected, regardless of their sub-position on the cell.

This fixes a problem with the original Yuri's Revenge matches (including single player missions) featuring the Dominator, where it would not capture all units in a 3x3 area (only if defaulting to DominatorCaptureRange=). Instead, only the target cell and its four direct neighbors would be affected. The diagonal cells were too far away for a default radius of 1.

For instance, freeing Einstein gives you a one-shot PsyDom, which would not be able to capture all nine units waiting in Yuri's base. You would get only five units - three of them Gatling Tanks - which makes this mission harder. All missions where the PsyDom is used against you became easier, naturally.
Added documentation for the DistinctCollector.
Split forEachObjectInCellRange into two methods. Replaced the almost-cellspread-like distance calculation by a better version based on code by DCoder. It matches the first 10 cell spread areas, and only misses the last one because WW fucked up.

forEachCellInCellSpread invokes a callback on each cell in an area determined by the CellSpread logic. This does not use the CellSpread offset table, so it will work for values greater than 10.

forEachObjectInCellSpread uses the above method to get all cells in the area and then invokes a callback function on each object on that cell.