X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=src%2Fserver%2Fmap_object_actions.c;h=978683292af5b76ab902e8cb5f3525b540bd9d1c;hb=a1b5e2eaa1136d6ee40d6ec2e262cfab368c5880;hp=cd233c93940f5f0a06220c914e512844df8385f1;hpb=784a54c9ef27aa2bf0754b2761aee06cbbde270e;p=plomrogue diff --git a/src/server/map_object_actions.c b/src/server/map_object_actions.c index cd233c9..9786832 100644 --- a/src/server/map_object_actions.c +++ b/src/server/map_object_actions.c @@ -3,14 +3,12 @@ #include "map_object_actions.h" #include /* NULL */ #include /* uint8_t, uint16_t */ -#include /* sprintf(), ungetc() */ -#include /* free(), atoi() */ +#include /* sprintf() */ +#include /* free() */ #include /* strlen(), strcmp(), memcpy(), strncmp() */ -#include "../common/err_try_fgets.h" /* err_try_fgets() */ #include "../common/rexit.h" /* exit_err() */ #include "../common/try_malloc.h" /* try_malloc() */ #include "../common/yx_uint8.h" /* struct yx_uint8 */ -#include "io.h" /* struct EntrySkeleton */ #include "map_objects.h" /* structs MapObj, MapObjDef, get_player(), * set_object_position(), own_map_object(), * get_map_object_def() @@ -24,10 +22,6 @@ /* Append "text" to game log, or a "." if "text" is the same as the last one. */ static void update_log(char * text); -/* If "name" fits "moa"->name, set "moa"->func to "func". */ -static uint8_t try_func_name(struct MapObjAct * moa, - char * name, void (* func) (struct MapObj *)); - /* One actor "wounds" another actor, decrementing his lifepoints and, if they * reach zero in the process, killing it. Generates appropriate log message. */ @@ -88,19 +82,6 @@ static void update_log(char * text) -static uint8_t try_func_name(struct MapObjAct * moa, - char * name, void (* func) (struct MapObj *)) -{ - if (0 == strcmp(moa->name, name)) - { - moa->func = func; - return 1; - } - return 0; -} - - - static void actor_hits_actor(struct MapObj * hitter, struct MapObj * hitted) { struct MapObjDef * mod_hitter = get_map_object_def(hitter->type); @@ -158,14 +139,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")) { ; } @@ -222,29 +201,6 @@ static void playerbonus_use(uint8_t no_object, uint8_t wrong_object) -extern void read_map_object_action(char * line, uint32_t linemax,char * context, - struct EntrySkeleton * entry, FILE * file) -{ - char * f_name = "init_map_object_actions()"; - struct MapObjAct * moa = (struct MapObjAct *) entry; - err_try_fgets(line, linemax, file, context, "0nfi8"); - moa->effort = atoi(line); - err_try_fgets(line, linemax, file, context, "0nf"); - line[strlen(line) - 1] = '\0'; - uint8_t len_name = strlen(line) + 1; - moa->name = try_malloc(len_name, f_name); - memcpy(moa->name, line, len_name); - if (!( try_func_name(moa, "move", actor_move) - || try_func_name(moa, "pick_up", actor_pick) - || try_func_name(moa, "drop", actor_drop) - || try_func_name(moa, "use", actor_use))) - { - moa->func = actor_wait; - } -} - - - extern void free_map_object_actions(struct MapObjAct * moa) { if (NULL == moa)