X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=src%2Fmap_object_actions.c;h=5ba99c07f1afcf80ff7532ecb65e9b24ebe32dbf;hb=ea9dd0ae82153bf07b6c0fe2927548afea57e833;hp=cdd1e97e322eeaa0b07958a71657710d59eeb527;hpb=97d23e7656f4c5e634b789fc760183edd7fd581e;p=plomrogue diff --git a/src/map_object_actions.c b/src/map_object_actions.c index cdd1e97..5ba99c0 100644 --- a/src/map_object_actions.c +++ b/src/map_object_actions.c @@ -1,7 +1,7 @@ /* map_object_actions.c */ #include "map_object_actions.h" -#include /* for uint8_t */ +#include /* for uint8_t, uint16_t */ #include /* for strlen(), strcmp() */ #include "yx_uint16.h" /* for yx_uint16 struct, mv_yx_in_dir(), * yx_uint16_cmp() @@ -12,7 +12,7 @@ #include "misc.h" /* for update_log(), try_malloc() */ #include "map.h" /* for is_passable() */ #include "main.h" /* for world global */ -#include "readwrite.h" /* for try_fopen(), try_fclose(), get_linemax() */ +#include "readwrite.h" /* for try_fopen(), try_fclose(), textfile_sizes() */ #include "rexit.h" /* for exit_err() */ @@ -27,7 +27,7 @@ static uint8_t try_func_name(struct MapObjAct * moa, static void actor_hits_actor(struct MapObj * hitter, struct MapObj * hitted); /* Bonus stuff to actor_*() to happen if actor==player. Mostly writing of log - * messages; _pick and _drop also decrement world.inventory_select by 1 if >0. + * messages; _pick and _drop also decrement world.inventory_sel by 1 if >0. */ static void playerbonus_wait(); static void playerbonus_move(char d, uint8_t passable); @@ -78,14 +78,12 @@ static void actor_hits_actor(struct MapObj * hitter, struct MapObj * hitted) if (player == hitted) { update_log(" You die."); + return; } - else + update_log(" It dies."); + if (player == hitter) { - update_log(" It dies."); - if (player == hitter) - { - world.score = world.score + mod_hitted->lifepoints; - } + world.score = world.score + mod_hitted->lifepoints; } } } @@ -131,15 +129,10 @@ static void playerbonus_drop(uint8_t owns_none) if (0 != owns_none) { update_log("\nYou try to drop an object, but you own none."); + return; } - else - { - update_log("\nYou drop an object."); - if (0 < world.inventory_select) - { - world.inventory_select--; - } - } + update_log("\nYou drop an object."); + world.inventory_sel = world.inventory_sel - (0 < world.inventory_sel); } @@ -149,11 +142,9 @@ static void playerbonus_pick(uint8_t picked) if (picked) { update_log("\nYou pick up an object."); + return; } - else - { - update_log("\nYou try to pick up an object, but there is none."); - } + update_log("\nYou try to pick up an object, but there is none."); } @@ -163,19 +154,15 @@ static void playerbonus_use(uint8_t no_object, uint8_t wrong_object) if (no_object) { update_log("\nYou try to use an object, but you own none."); + return; } else if (wrong_object) { update_log("\nYou try to use this object, but fail."); + return; } - else - { - update_log("\nYou consume MAGIC MEAT."); - if (0 < world.inventory_select) - { - world.inventory_select--; - } - } + update_log("\nYou consume MAGIC MEAT."); + world.inventory_sel = world.inventory_sel - (0 < world.inventory_sel); } @@ -183,12 +170,10 @@ static void playerbonus_use(uint8_t no_object, uint8_t wrong_object) extern void init_map_object_actions() { char * f_name = "init_map_object_actions()"; - char * path = "config/map_object_actions"; FILE * file = try_fopen(path, "r", f_name); - uint16_t linemax = get_linemax(file, f_name); + uint16_t linemax = textfile_sizes(file, NULL); char line[linemax + 1]; - struct MapObjAct ** moa_ptr_ptr = &world.map_obj_acts; char * delim = " "; while (fgets(line, linemax + 1, file)) @@ -351,9 +336,8 @@ extern void actor_use(struct MapObj * mo) if (0 < select) { select--; - for (i = 0, selected = mo->owns; - i != select; - i++, selected = selected->next); + selected = mo->owns; + for (i = 0; i != select; i++, selected = selected->next); selected->next = next; } else