X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=src%2Fserver%2Fmap_object_actions.h;h=7b5283fc9cff33f4254626ca79c3b686cb9c2dab;hb=16695e78f4aa52f845c3113010927ca821f21933;hp=ae015e62f957abfff614d9b571b2d3356b04773a;hpb=dd9d65ee727ac7e95801da0f8b5bae7009811802;p=plomrogue diff --git a/src/server/map_object_actions.h b/src/server/map_object_actions.h index ae015e6..7b5283f 100644 --- a/src/server/map_object_actions.h +++ b/src/server/map_object_actions.h @@ -8,24 +8,29 @@ #ifndef MAP_OBJECT_ACTIONS_H #define MAP_OBJECT_ACTIONS_H -#include /* uint8_t */ +#include /* uint8_t, uint23_t */ +#include /* FILE */ struct MapObj; +struct EntrySkeleton; struct MapObjAct { + uint8_t id; /* unique id of map object action; must be >0 */ struct MapObjAct * next; void (* func) (struct MapObj *); /* function called after .effort turns */ - char * name; /* human-readable identifier */ - uint8_t id; /* unique id of map object action */ - uint8_t effort; /* how many turns the action takes */ + char * name; /* human-readable identifier */ + uint8_t effort; /* how many turns the action takes */ }; -/* Init MapObjAct chain at world.map_obj_acts from file at "path". */ -extern void init_map_object_actions(char * path); +/* Read-in to "entry" multi-line entry from MapObjAct config "file", using + * pre-allocated "line", "linemax" and "context" as input for err_try_fgets(). + */ +extern void read_map_object_action(char * line, uint32_t linemax,char * context, + struct EntrySkeleton * entry, FILE * file); /* Free MapObjAct * chain starting at "moa". */ extern void free_map_object_actions(struct MapObjAct * moa); @@ -37,7 +42,7 @@ extern uint8_t get_moa_id_by_name(char * name); extern void actor_wait(struct MapObj * mo); /* Actor "mo" tries to move one step in direction described by char mo->arg - * (where east is 'E', north 'N') etc. Move either succeeds, or another actor is + * (where east is '6', north '8') etc. Move either succeeds, or another actor is * encountered and hit (which leads ot its lifepoint decreasing by one and * eventually death), or the move fails due to an impassable target square. */ @@ -46,12 +51,11 @@ extern void actor_move(struct MapObj * mo); /* Actor "mo" tries to drop from inventory object indexed by number mo->args. */ extern void actor_drop(struct MapObj * mo); -/* Actor "mo" tries to pick up object from ground into its inventory. */ +/* Actor "mo" tries to pick up topmost object from ground into its inventory. */ extern void actor_pick(struct MapObj * mo); /* Actor "mo" tries to use inventory object indexed by number mo->args. - * (Currently the only valid use is consuming an item named "MAGIC MEAT", - * which increments the actors lifepoints.) + * (Currently the only valid use is consuming items defined as consumable.) */ extern void actor_use(struct MapObj * mo);