<URL: http://bugs.freeciv.org/Ticket/Display.html?id=37262 >
This adds function is_losing_hp(). Currently it has only one caller, but #34646 will introduce more of them. - ML
diff -Nurd -X.diff_ignore freeciv/common/aicore/pf_tools.c freeciv/common/aicore/pf_tools.c --- freeciv/common/aicore/pf_tools.c 2007-02-12 15:27:43.000000000 +0200 +++ freeciv/common/aicore/pf_tools.c 2007-03-01 17:06:57.000000000 +0200 @@ -625,10 +625,8 @@ } if (!parameter->is_pos_dangerous - && get_player_bonus(unit_owner(punit), EFT_UNIT_RECOVER) - < (unit_type(punit)->hp * - get_unit_class(unit_type(punit))->hp_loss_pct / 100)) { - /* United nations cancels out helicoptor fuel loss. */ + && is_losing_hp(punit)) { + /* Unit loses hitpoints each turn when not in city/safe base/carrier */ parameter->is_pos_dangerous = air_is_pos_dangerous; parameter->turn_mode = TM_WORST_TIME; } diff -Nurd -X.diff_ignore freeciv/common/unit.c freeciv/common/unit.c --- freeciv/common/unit.c 2007-02-28 23:02:38.000000000 +0200 +++ freeciv/common/unit.c 2007-03-01 17:08:38.000000000 +0200 @@ -1456,3 +1456,13 @@ return result; } + +/************************************************************************** + Does unit lose hitpoints each turn? +**************************************************************************/ +bool is_losing_hp(const struct unit *punit) +{ + return get_player_bonus(unit_owner(punit), EFT_UNIT_RECOVER) + < (unit_type(punit)->hp * + get_unit_class(unit_type(punit))->hp_loss_pct / 100); +} diff -Nurd -X.diff_ignore freeciv/common/unit.h freeciv/common/unit.h --- freeciv/common/unit.h 2007-02-12 15:27:43.000000000 +0200 +++ freeciv/common/unit.h 2007-03-01 17:03:46.000000000 +0200 @@ -298,4 +298,6 @@ enum unit_upgrade_result get_unit_upgrade_info(char *buf, size_t bufsz, const struct unit *punit); +bool is_losing_hp(const struct unit *punit); + #endif /* FC__UNIT_H */
_______________________________________________ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev