From: <ma...@us...> - 2009-03-15 18:46:58
|
Revision: 6048 http://exult.svn.sourceforge.net/exult/?rev=6048&view=rev Author: marzojr Date: 2009-03-15 18:46:39 +0000 (Sun, 15 Mar 2009) Log Message: ----------- schedule.cc: Fixed excessive processor usage in the boat travel to Moonshade in SI. Modified Paths: -------------- exult/trunk/ChangeLog exult/trunk/schedule.cc Modified: exult/trunk/ChangeLog =================================================================== --- exult/trunk/ChangeLog 2009-03-15 14:54:27 UTC (rev 6047) +++ exult/trunk/ChangeLog 2009-03-15 18:46:39 UTC (rev 6048) @@ -2,6 +2,8 @@ * files/U7objs.h: Reverted previous commit and fixed the true underlying problem of incorrect assignment operator. Also removed misinformation from changelog. + * schedule.cc: Fixed excessive processor usage in the boat travel to + Moonshade in SI. 2009-03-14 Marzo Sette Torres Junior <ma...@ya...> * actors.cc: Fixed bug #2687078. Modified: exult/trunk/schedule.cc =================================================================== --- exult/trunk/schedule.cc 2009-03-15 14:54:27 UTC (rev 6047) +++ exult/trunk/schedule.cc 2009-03-15 18:46:39 UTC (rev 6048) @@ -2639,17 +2639,25 @@ ( int min_delay // Min. delay in msecs. ) -{ - if (customer) { - Tile_coord dest = Map_chunk::find_spot(customer->get_tile(), - 3, npc); - if (dest.tx != -1 && npc->walk_path_to_tile(dest, - gwin->get_std_delay(), min_delay + rand()%1000)) - return true; // Walking there. - } + { + if (customer) + { + if (customer->get_schedule_type() != Schedule::eat_at_inn) + // Customer schedule changed. Tell schedule to refresh the list + // (this happens with Hawk & others in SI). + customers.clear(); + else + { + Tile_coord dest = Map_chunk::find_spot(customer->get_tile(), + 3, npc); + if (dest.tx != -1 && npc->walk_path_to_tile(dest, + gwin->get_std_delay(), min_delay + rand()%1000)) + return true; // Walking there. + } + } npc->start(200, 2000 + rand()%4000); // Failed so try again later. return false; -} + } /* * Find tables and categorize them. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |