hackChangeMe() can no longer take -1, instead add new receiveAllEvents(bool) function
for that purpose. Campaign upgrades are not yet converted. All 'Power' settings in
ini files are changed, since they used meaningless values, to 'PowerLevel' with 0..2
values that correspond to button settings.
Steps to reproduce:
1) Player A builds a CB sensor.
2) Player B attacks the CB sensor with a mortar borg.
3) Player B runs away with the mortar borg where player A can't see.
4) Player A builds artillery.
5) Player B slowly kills off all the artillery with an MG viper wheels tank, while the artillery just sits there
pointing at the mortar borg without firing.
To trigger, the artillery must be built after the last CB sensor in range of where the mortar borg attacks. Any
type of mobile artillery can trigger the bug, such as archangel leopard tracks, or MRA dragon wheels.
Workaround: Player A can build an uplink, so that the mortar borg becomes visible, and the artillery fires. If
there's still anything left of the artillery by the time the uplink is built, that is.
Fixes ticket:3529.
qtscript: Run visibility update before starting level to ensure consistency.
Add new global scavengerPlayer which is index of scavenger player. Add new
function enumRange(x, y, range[, filter]) for searching for stuff on the map.
Fix use of deprecated function. Add checks against enumerating dead objects.
Droid orders are now contained in a DroidOrder structure, instead of order, orderX, orderY, orderX2, orderY2, orderDirection, psTarget, psTarStats members of DROID.
of vision of enemy units and buildings. Not enabled by default. This simplifies
the vision code, merging terrain discovery and object vision, fixing ticket:2917
in the process. Closes ticket:340. Radar detector changed, no longer does
targetting, but allows discovery over 5x longer range instead, and can discover
ECM emissions.