-/* Try to move "actor" one step in direction "d" and handle the consequences:
- * either the move succeeds, or another actor is encountered and hit (which
- * leads to its lifepoint decreasing by one and potentially its death), or the
- * target square is not passable and the move fails.
- */
-extern uint8_t move_actor(struct MapObj * actor, enum dir d);
-
+struct MapObjAct
+{
+ struct MapObjAct * next;
+ uint8_t id; /* unique id of map object action */
+ char * name; /* human-readable identifier */
+ uint8_t effort; /* how many turn the action takes */
+ void (* func) (struct MapObj *); /* function called after .effort turns */
+};