ch->hp += hit_gain(ch);You would now write (ideally without the magic numbers):
ch->healing_counter += hit_gain(ch);That way it still uses exactly the same formula as before, it just spreads it out over 60 seconds. Then just do the same for mana and move.
ch->hp += (healing_counter/60);
ch->healing_counter %= 60;