{
unsigned char new_zone = ambient_zone;
+ if (new_zone >= N_AMBIENT_ZONES)
+ new_zone = N_AMBIENT_ZONES-1;
+
while (ambient_zones[new_zone].lo > ambient_val)
new_zone--;
slow_10bit = ambient_slow >> AMBIENT_SLOW_SHIFT;
- if (new_zone > 1 && (
- new_zone == ambient_zone-1 || new_zone > ambient_zone)) {
+ if ((new_zone > ambient_zone)
+ || (new_zone > 1 && new_zone == ambient_zone - 1)) {
// but change to the neighbouring zone is governed by _slow,
// except to the darkest zone, where we want fast reaction.
new_zone = val_to_zone(slow_10bit);
if ((user_zone = get_user_param(0)) > 0)
new_zone = user_zone - 1;
+#if 0 // ignore shadow-entering code altogether for now
// are we entering the shadow?
if (!user_zone && new_zone < ambient_zone
&& ambient_zone >= 2 && slow_10bit > fast_10bit
new_zone = ambient_zone; // don't change while entering shadow
ambient_zone_changed(); // notify others the first time
}
+#endif
// TODO: maybe use these values instead of 10-bit?
byte_fast = fast_10bit >> 2;