X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=src%2Fmap_object_actions.h;h=6034611a7df36ddc4d0f8851f5278a72329f6b17;hb=550d22ec0c3f530f5d317746f3f7e75251a1de4b;hp=2202b27e60642cc70485332f8c84ccc607c09e2d;hpb=a037841b38d73f59839731eb3ffaf4edc43d9cf0;p=plomrogue diff --git a/src/map_object_actions.h b/src/map_object_actions.h index 2202b27..6034611 100644 --- a/src/map_object_actions.h +++ b/src/map_object_actions.h @@ -1,15 +1,51 @@ +/* map_object_actions.h + * + * Routines for the actions available to map objects. + */ + #ifndef MAP_OBJECT_ACTIONS_H #define MAP_OBJECT_ACTIONS_H -#include "yx_uint16.h" + +#include "yx_uint16.h" /* for yx_uint16 coordinates */ struct World; struct Map; struct Monster; -extern char is_passable (struct Map *, struct yx_uint16); -extern void move_monster (struct World *, struct Monster *); -extern void move_player (struct World *, enum dir); -extern void player_wait(struct World *); + + +/* Try to move "monster" in random direction. On contact with other monster, + * only bump. On contact with player, fight / reduce player's hitpoints, + * and thereby potentially trigger the player's death. Update the log for any + * contact action. + */ +extern void move_monster(struct World * world, struct Monster * monster); + + + +/* Try to move player in direction "d". On contact with monster, fight / reduce + * monster's hitpoints, and thereby potentially trigger the monster's death, + * create a corpse and increment the player's score by the amount of hitpoints + * the monster started with. Update the log on whatever the player did and turn + * control over to the enemy. + */ +extern void move_player (struct World * world, enum dir d); + + + +/* Make player wait one turn, i.e. only update_log with a "you wait" message + * and turn control over to the enemy. + */ +extern void player_wait(struct World * world); + + + +/* Check if coordinate pos on (or beyond) map is accessible to map object + * movement. + */ +extern char is_passable (struct Map * map, struct yx_uint16 pos); + + #endif