-int neighbor55(int hex, int dir) {
- int neighbor;
-
- do {
- neighbor = HL_adjacent_hex(hex, dir++);
- } while (neighbor == HL_cantor_xy(5,5));
-
- return neighbor;
+int neighbor55(struct HL_hex hex, int dir, struct HL_hex *n) {
+ int valid;
+ struct HL_hex nh;
+
+ valid = HL_adjhexp(hex, dir, &nh);
+ if (valid && nh.x == 5 && nh.y == 5) {
+ valid = 0;
+ }
+ if (valid && n) {
+ *n = nh;
+ }
+
+ return valid;
+
+ return 1;