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)
{
{
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;