X-Git-Url: https://plomlompom.com/repos/test.html?a=blobdiff_plain;f=src%2Fserver%2Fmap_object_actions.c;h=6c92d07577eaade92234e042b2d64beb0d3c572e;hb=4266e8b48fc5481ce24c0bf02fdd517217f8390a;hp=17d74d5825feebad5555a81820ae4a1c7a02914e;hpb=c53b42dfc7e4de104f9189428dd5b9a0d431c00a;p=plomrogue diff --git a/src/server/map_object_actions.c b/src/server/map_object_actions.c index 17d74d5..6c92d07 100644 --- a/src/server/map_object_actions.c +++ b/src/server/map_object_actions.c @@ -9,6 +9,7 @@ #include "../common/rexit.h" /* exit_err() */ #include "../common/try_malloc.h" /* try_malloc() */ #include "../common/yx_uint8.h" /* struct yx_uint8 */ +#include "field_of_view.h" /* build_fov_map() */ #include "map_objects.h" /* structs MapObj, MapObjDef, get_player(), * set_object_position(), own_map_object(), * get_map_object_def() @@ -139,14 +140,12 @@ static uint8_t match_dir(char d, char ** dsc_d, char match, char * dsc_match) static void playerbonus_move(char d, uint8_t passable) { - char * dsc_dir = "north"; - if ( match_dir(d, &dsc_dir, '6', "east") - || match_dir(d, &dsc_dir, '2', "south") - || match_dir(d, &dsc_dir, '4', "west") - || match_dir(d, &dsc_dir, '7', "north-west") - || match_dir(d, &dsc_dir, '9', "north-east") - || match_dir(d, &dsc_dir, '1', "south-west") - || match_dir(d, &dsc_dir, '3', "south-east")) + char * dsc_dir = "north-east"; + if ( match_dir(d, &dsc_dir, 'd', "east") + || match_dir(d, &dsc_dir, 'c', "south-east") + || match_dir(d, &dsc_dir, 'x', "south-west") + || match_dir(d, &dsc_dir, 's', "west") + || match_dir(d, &dsc_dir, 'w', "north-west")) { ; } @@ -264,6 +263,8 @@ extern void actor_move(struct MapObj * mo) if (passable) { set_object_position(mo, target); + free(mo->fov_map); + mo->fov_map = build_fov_map(mo); } if (mo == get_player()) {