ok, I'm on it. Next time I'll read guidelines *before* posting ;) BBT
2009/10/20 jeremy rosen <[email protected]> > hello > > yes, i've noticed that bug in 1.6 and I agree it's a bit annoying... > > however we don't plan to have anymore 1.6 releases, so here is what > you should do > > 1) check that the issue is still there in trunk (probably is) > 2) port your patch to trunk (should be simple) > 3) read the patch posting guidline in the forum > 4) post your patch on patches.wesnoth.org > > this patch is quite simple and shouldn't lead to any problems, but by > going through patches.wesnoth.org there is much less risk that it gets > forgotten (i'll probably handle it myself once it's there...) > > > Cheers > Boucman > > On Tue, Oct 20, 2009 at 12:45 AM, babataz <[email protected]> wrote: > > Hi all, > > > > first I'm new to this mailing list but I'm enjoying BfW for quite a time > > now. > > Thanks for the work. > > > > So, there was a little something bothering me in the game : > > on beginning of turn, when lots of units are healed, > > the order in which the healing is displayed appear (for the player) quite > > random. > > In worst cases, the screen juste goes forth and back > > although for examples some units are packed around a healer. > > > > I propose this little patch, > > the idea is to sort healed unit according to their position on the map > > to minimize map movement. > > Of course, there is room for improvement here, > > but I wanted to give the idea with concrete material. > > > > Code is based on wesnoth-1.6.5 and compiles just fine on my debian box. > > Here's the patch : > > > > diff --git a/actions.cpp b/actions.cpp > > index 944fc1b..49d7bfc 100644 > > --- a/actions.cpp > > +++ b/actions.cpp > > @@ -36,6 +36,7 @@ > > > > > > #include <boost/scoped_ptr.hpp> > > +#include <list> > > > > #define DBG_NG LOG_STREAM(debug, engine) > > #define LOG_NG LOG_STREAM(info, engine) > > @@ -1672,11 +1673,26 @@ void reset_resting(unit_map& units, unsigned int > > side) > > } > > } > > > > +struct unit_healing_struct { > > + unit *healed; > > + map_location *healed_loc; > > + std::vector<unit_map::iterator> *healers; > > + int healing; > > + > > + static > > + bool uhs_compare(struct unit_healing_struct &a, > > + struct unit_healing_struct &b) { > > + return *a.healed_loc < *b.healed_loc; > > + } > > + > > +}; > > + > > void calculate_healing(game_display& disp, const gamemap& map, > > unit_map& units, unsigned int side, > > const std::vector<team>& teams, bool update_display) > > { > > DBG_NG << "beginning of healing calculations\n"; > > + std::list<struct unit_healing_struct> l; > > > > // We look for all allied units, then we see if our healer is near > > them. > > for (unit_map::iterator i = units.begin(); i != units.end(); ++i) { > > @@ -1833,7 +1849,13 @@ void calculate_healing(game_display& disp, const > > gamemap& map, > > && update_display > > && !(i->second.invisible(i->first,units,teams) && > > teams[disp.viewing_team()].is_enemy(side))) { > > - > unit_display::unit_healing(i->second,i->first,healers,healing); > > + struct unit_healing_struct uhs = { > > + &i->second, > > + &i->first, > > + &healers, > > + healing > > + }; > > + l.push_front(uhs); > > } > > if (healing > 0) > > i->second.heal(healing); > > @@ -1841,6 +1863,15 @@ void calculate_healing(game_display& disp, const > > gamemap& map, > > i->second.take_hit(-healing); > > disp.invalidate_unit(); > > } > > + > > + // display healing > > + l.sort(unit_healing_struct::uhs_compare); > > + for (std::list<struct unit_healing_struct>::iterator i = > l.begin(); > > + i != l.end(); > > + i++) { > > + unit_display::unit_healing(*i->healed, *i->healed_loc, > > *i->healers, > > + i->healing); > > + } > > DBG_NG << "end of healing calculations\n"; > > } > > > > Have a nice day, > > BBT > > > > > > _______________________________________________ > > Wesnoth-dev mailing list > > [email protected] > > https://mail.gna.org/listinfo/wesnoth-dev > > > > > > _______________________________________________ > Wesnoth-dev mailing list > [email protected] > https://mail.gna.org/listinfo/wesnoth-dev >
_______________________________________________ Wesnoth-dev mailing list [email protected] https://mail.gna.org/listinfo/wesnoth-dev
