home · contact · privacy
Differentiated try_fgetc() (fgetc() wrapper proper) and try_fgetc_noeof() (catches...
[plomrogue] / src / yx_uint16.c
index e14d16de8b51fd5d57c8cfe1ec52a4f72f7bf173..c980693b998bf3156ea70e1f3f5a8df8fc36402b 100644 (file)
@@ -18,19 +18,19 @@ extern uint8_t yx_uint16_cmp(struct yx_uint16 * a, struct yx_uint16 * b)
 
 extern struct yx_uint16 mv_yx_in_dir(char d, struct yx_uint16 yx)
 {
-    if      (d == 'N')
+    if      (d == 'N' && yx.y > 0)
     {
         yx.y--;
     }
-    else if (d == 'E')
+    else if (d == 'E' && yx.x < UINT16_MAX)
     {
         yx.x++;
     }
-    else if (d == 'S')
+    else if (d == 'S' && yx.y < UINT16_MAX)
     {
         yx.y++;
     }
-    else if (d == 'W')
+    else if (d == 'W' && yx.x > 0)
     {
         yx.x--;
     }