From: Christian Heller <c.heller@plomlompom.de>
Date: Wed, 26 Jun 2013 23:00:42 +0000 (+0200)
Subject: Simplified internal structure of move_player().
X-Git-Tag: tce~1193
X-Git-Url: https://plomlompom.com/repos/%7B%7Bdb.prefix%7D%7D/%22https:/validator.w3.org/conditions?a=commitdiff_plain;h=3088d6e832b34a3cc2e73eaadcf5b8a1f2c7f258;p=plomrogue

Simplified internal structure of move_player().
---

diff --git a/src/roguelike.c b/src/roguelike.c
index dbbcc34..84290f1 100644
--- a/src/roguelike.c
+++ b/src/roguelike.c
@@ -135,31 +135,26 @@ void move_monster (struct World * world, struct Monster * monster) {
 
 void move_player (struct World * world, char d) {
 // Move player in direction d, increment turn counter and update log.
-  char success = 0;
   struct yx_uint16 t = mv_yx_in_dir (d, world->player->pos);
   struct Monster * monster;
   for (monster = world->monster; monster != 0; monster = monster->next)
     if (yx_uint16_cmp (t, monster->pos)) {
-      success = 2;
-      break; }
-  if (2 != success && is_passable(world->map, t.y, t.x)) {
-    success = 1;
+      update_log (world, "\nYou hit the monster.");
+      turn_over (world, d);
+      return; }
+  char * msg = calloc(25, sizeof(char));
+  char * msg_content = "You fail to move";
+  char * dir;
+  if      (NORTH == d) dir = "north";
+  else if (EAST  == d) dir = "east" ;
+  else if (SOUTH == d) dir = "south";
+  else if (WEST  == d) dir = "west" ;
+  if (is_passable(world->map, t.y, t.x)) {
+    msg_content = "You move";
     world->player->pos = t; }
-  if (2 == success)
-    update_log (world, "\nYou hit the monster.");
-  else {
-    char * dir;
-    if      (NORTH == d) dir = "north";
-    else if (EAST  == d) dir = "east" ;
-    else if (SOUTH == d) dir = "south";
-    else if (WEST  == d) dir = "west" ;
-    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); }
+  sprintf(msg, "\n%s %s.", msg_content, dir);
+  update_log (world, msg);
+  free(msg);
   turn_over (world, d); }
 
 void player_wait (struct World * world) {