-/* Try to move "actor" one step in direction "d" (where east is 'E', north 'N'
- * etc.) 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, the move fails.
- */
-extern uint8_t move_actor(struct MapObj * actor, char 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 */
+};