home · contact · privacy
Simplified internal structure of move_player().
authorChristian Heller <c.heller@plomlompom.de>
Wed, 26 Jun 2013 23:00:42 +0000 (01:00 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Wed, 26 Jun 2013 23:00:42 +0000 (01:00 +0200)
src/roguelike.c

index dbbcc34ed107de62f317ab14ba204ca876490635..84290f1e5f032530608cea5904f973207a17fbd1 100644 (file)
@@ -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) {