home · contact · privacy
Server: Minor simplifcation of mv_yx_in_dir_legal().
[plomrogue] / src / server / map.c
index 807083d708faf5dabff5d857d4270bc2d4c2b001..c58ff2135e535f7e2ae00ddf0ecd141def5f19a1 100644 (file)
@@ -200,9 +200,7 @@ extern uint8_t mv_yx_in_dir_legal(char dir, struct yx_uint8 * yx)
     char * err = "Too much wrapping in mv_yx_in_dir_legal().";
     exit_err(   INT8_MIN == wrap_west_east || INT8_MIN == wrap_north_south
              || INT8_MAX == wrap_west_east || INT8_MAX == wrap_north_south, err);
-    struct yx_uint8 original;
-    original.y = yx->y;
-    original.x = yx->x;
+    struct yx_uint8 original = *yx;
     mv_yx_in_dir(dir, yx);
     if      (('e' == dir || 'd' == dir || 'c' == dir) && yx->x < original.x)
     {
@@ -220,7 +218,7 @@ extern uint8_t mv_yx_in_dir_legal(char dir, struct yx_uint8 * yx)
     {
         wrap_north_south++;
     }
-    if (   !((wrap_west_east != 0) + (wrap_north_south != 0))
+    if (   !wrap_west_east && !wrap_north_south
         && yx->x < world.map.length && yx->y < world.map.length)
     {
         return 1;