- if (is_passable(world, world->player->x + 1, world->player->y)) {
- world->player->x++;
- success = 1; } }
- char * msg_content = "You fail to move";
- if (success)
- msg_content = "You move";
- sprintf(msg, "\n%s %s.", msg_content, dir);
- update_log (world, msg);
- free(msg); }
+ tx++; }
+ if (ty == world->monster->y && tx == world->monster->x)
+ success = 2;
+ else if (is_passable(world, tx, ty)) {
+ success = 1;
+ world->player->y = ty;
+ world->player->x = tx; }
+ if (success * d == prev)
+ update_log (world, ".");
+ else {
+ if (2 == success)
+ update_log (world, "\nYou hit the monster.");
+ else {
+ char * msg = calloc(25, sizeof(char));
+ char * msg_content = "You fail to move";
+ if (1 == success)
+ msg_content = "You move";
+ sprintf(msg, "\n%s %s.", msg_content, dir);
+ update_log (world, msg);
+ free(msg); } }
+ prev = success * d;
+ next_turn (world); }
+
+void player_wait(struct World * world) {
+// Make player wait one turn.
+ next_turn (world);
+ update_log (world, "\nYou wait."); }