? diff Index: client/climisc.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/client/climisc.c,v retrieving revision 1.61 diff -u -r1.61 climisc.c --- client/climisc.c 2001/09/20 11:07:28 1.61 +++ client/climisc.c 2001/09/27 10:39:00 @@ -571,7 +571,7 @@ unit_list_iterate(ptile->units, punit) { activity_total[punit->activity] += punit->activity_count; mr = get_unit_type(punit->type)->move_rate; - activity_units[punit->activity] += mr ? mr / SINGLE_MOVE : 1; + activity_units[punit->activity] += mr / SINGLE_MOVE; } unit_list_iterate_end; Index: common/unit.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/common/unit.c,v retrieving revision 1.135 diff -u -r1.135 unit.c --- common/unit.c 2001/09/16 09:38:08 1.135 +++ common/unit.c 2001/09/27 10:39:08 @@ -53,8 +53,7 @@ if (val < 2 * SINGLE_MOVE) val = 2 * SINGLE_MOVE; } - if (val < SINGLE_MOVE - && unit_type(punit)->move_rate > 0) { + if (val < SINGLE_MOVE) { val = SINGLE_MOVE; } return val; Index: server/ruleset.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/server/ruleset.c,v retrieving revision 1.80 diff -u -r1.80 ruleset.c --- server/ruleset.c 2001/09/15 15:31:27 1.80 +++ server/ruleset.c 2001/09/27 10:39:10 @@ -661,6 +661,11 @@ secfile_lookup_int(file,"%s.defense", sec[i]); u->move_rate = SINGLE_MOVE*secfile_lookup_int(file,"%s.move_rate", sec[i]); + if (u->move_rate <= 0) { + freelog(LOG_FATAL, _("for unit_type \"%s\": firepower is %d but " + "must be at least 0."), u->name, u->move_rate); + exit(1); + } u->vision_range = secfile_lookup_int(file,"%s.vision_range", sec[i]); Index: server/unittools.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/server/unittools.c,v retrieving revision 1.138 diff -u -r1.138 unittools.c --- server/unittools.c 2001/09/15 15:31:28 1.138 +++ server/unittools.c 2001/09/27 10:39:13 @@ -783,7 +783,7 @@ without it counting toward the time to finish */ if (punit->moves_left) { punit->activity_count += mr/SINGLE_MOVE; - } else if (mr == 0) { + } else { punit->activity_count += 1; }