X-Git-Url: https://plomlompom.com/repos/berlin_corona.txt?a=blobdiff_plain;f=src%2Fserver%2Fthing_actions.c;h=9befd76234bc1efba1f2c9edf0c047d99eb7946c;hb=bc117a9e8e2d69fcad8c8955ae8237b3476bf67b;hp=40a44ba17ce71dd4ed51a8ae29137b9618edce95;hpb=edebb2bf9aa780ee2f7006c1d2be9168564d34df;p=plomrogue diff --git a/src/server/thing_actions.c b/src/server/thing_actions.c index 40a44ba..9befd76 100644 --- a/src/server/thing_actions.c +++ b/src/server/thing_actions.c @@ -12,7 +12,8 @@ #include "field_of_view.h" /* build_fov_map() */ #include "hardcoded_strings.h" /* s */ #include "things.h" /* Thing, ThingType, get_player(), own_thing(), - * set_thing_position(), get_thing_type() + * set_thing_position(), get_thing_type(), + * free_things_in_memory() */ #include "map.h" /* is_passable() */ #include "yx_uint8.h" /* mv_yx_in_dir(), yx_uint8_cmp() */ @@ -151,6 +152,8 @@ static void actor_hits_actor(struct Thing * hitter, struct Thing * hitted) hitted->fov_map = NULL; free(hitted->mem_map); hitted->mem_map = NULL; + free_things_in_memory(hitted->t_mem); + hitted->t_mem = NULL; } update_log(" It dies."); } @@ -286,7 +289,7 @@ extern void actor_move(struct Thing * t) extern void actor_drop(struct Thing * t) { - uint8_t owns_none = (NULL == t->owns); + uint8_t owns_none = (!t->owns); if (!owns_none) { uint8_t select = t->arg; @@ -307,21 +310,21 @@ extern void actor_pick(struct Thing * t) { struct Thing * picked = NULL; struct Thing * t_i; - for (t_i = world.things; NULL != t_i; t_i = t_i->next) + for (t_i = world.things; t_i; t_i = t_i->next) { if (t_i != t && yx_uint8_cmp(&t_i->pos, &t->pos)) { picked = t_i; } } - if (NULL != picked) + if (picked) { own_thing(&t->owns, &world.things, picked->id); set_thing_position(picked, t->pos); } if (t == get_player()) { - playerbonus_pick(NULL != picked); + playerbonus_pick(!(!picked)); } } @@ -330,7 +333,7 @@ extern void actor_pick(struct Thing * t) extern void actor_use(struct Thing * t) { uint8_t wrong_thing = 1; - uint8_t no_thing = (NULL == t->owns); + uint8_t no_thing = (!t->owns); if (!no_thing) { uint8_t select = t->arg;