--- deliantra/server/common/map.C 2008/12/23 01:51:27 1.152 +++ deliantra/server/common/map.C 2008/12/24 01:37:24 1.154 @@ -967,10 +967,10 @@ * difficulty does not have a lot to do with character level, * but does have a lot to do with treasure on the map. * - * Difficulty can now be set by the map creature. If the value stored - * in the map is zero, then use this routine. Maps should really - * have a difficulty set than using this function - human calculation - * is much better than this functions guesswork. + * Difficulty can now be set by the map creator. If the value stored + * in the map is zero, then use this routine. Maps should really + * have a difficulty set rather than using this function - human calculation + * is much better than this function's guesswork. */ int maptile::estimate_difficulty () const @@ -1025,10 +1025,8 @@ int maptile::change_map_light (int change) { - int new_level = darkness + change; - /* Nothing to do */ - if (!change || (new_level <= 0 && darkness == 0) || (new_level >= MAX_DARKNESS && darkness >= MAX_DARKNESS)) + if (!change) return 0; /* inform all players on the map */ @@ -1037,17 +1035,7 @@ else new_info_map (NDI_BLACK | NDI_UNIQUE, this, "It becomes brighter."); - /* Do extra checking. since darkness is a unsigned value, - * we need to be extra careful about negative values. - * In general, the checks below are only needed if change - * is not +/-1 - */ - if (new_level < 0) - darkness = 0; - else if (new_level >= MAX_DARKNESS) - darkness = MAX_DARKNESS; - else - darkness = new_level; + darkness = clamp (darkness + change, -MAX_DARKNESS, MAX_DARKNESS); /* All clients need to get re-updated for the change */ update_all_map_los (this);