void move_player (struct World * world, char d) {
// Move player in direction d, increment turn counter and update log.
- update_info (world);
+ static char prev = 0;
char success = 0;
char * dir;
- char * msg = calloc(25, sizeof(char));
if ('s' == d) {
dir = "south";
if (is_passable(world, world->player->x, world->player->y + 1)) {
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); }
+ if (prev == d)
+ update_log (world, ".");
+ else {
+ char * msg = calloc(25, sizeof(char));
+ 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); }
+ prev = success * d;
+ update_info (world); }
int main () {
struct World world;