From: <ma...@us...> - 2008-01-19 18:17:57
|
Update of /cvsroot/exult/./exult/usecode In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv7394/usecode Modified Files: ucinternal.cc intrinsics.cc Log Message: * Added overloaded methods for Fast_pathfinder_client::is_grabable to make use of the new distance function. * Exult Studio/Exult can now search for a shape of a given frame as well. * Fixed can_avatar_reach_pos intrinsic. * Switched from DELTA_WRAP_CHECK and DELTA_CHECK macros to static inline functions to prevent possible undetected problems. * Update of MSVC projects, including a new project for ES (though I doubt it compiles). Index: ucinternal.cc =================================================================== RCS file: /cvsroot/exult/./exult/usecode/ucinternal.cc,v retrieving revision 1.156 retrieving revision 1.157 diff -u -d -r1.156 -r1.157 --- ucinternal.cc 3 Sep 2007 02:02:04 -0000 1.156 +++ ucinternal.cc 19 Jan 2008 18:17:52 -0000 1.157 @@ -1569,10 +1569,14 @@ Tile_coord dest ) { + if (dest.tz < 0) + return false; + if (npc->distance(dest) <= 1) // Already OK. + return true; Path_walking_actor_action *action = new Path_walking_actor_action(0, 6); - bool ret = action->walk_to_tile(npc, npc->get_tile(), dest); + bool ret = action->walk_to_tile(npc, npc->get_tile(), dest, 1); delete action; return ret; } Index: intrinsics.cc =================================================================== RCS file: /cvsroot/exult/./exult/usecode/intrinsics.cc,v retrieving revision 1.310 retrieving revision 1.311 diff -u -d -r1.310 -r1.311 --- intrinsics.cc 15 Oct 2007 00:19:44 -0000 1.310 +++ intrinsics.cc 19 Jan 2008 18:17:52 -0000 1.311 @@ -3378,12 +3378,12 @@ USECODE_INTRINSIC(can_avatar_reach_pos) { Usecode_value ret(0); - if (parms[1].get_array_size() < 2) + if (parms[0].get_array_size() < 2) return ret; - Tile_coord dest = Tile_coord(parms[1].get_elem(0).get_int_value(), - parms[1].get_elem(1).get_int_value(), - parms[1].get_array_size() == 2 ? 0 : - parms[1].get_elem(2).get_int_value()); + Tile_coord dest = Tile_coord(parms[0].get_elem(0).get_int_value(), + parms[0].get_elem(1).get_int_value(), + parms[0].get_array_size() == 2 ? 0 : + parms[0].get_elem(2).get_int_value()); ret = Usecode_value(is_dest_reachable(gwin->get_main_actor(), dest)); return ret; } |