… | |
… | |
56 | |
56 | |
57 | nx = op->x + freearr_x[dir]; |
57 | nx = op->x + freearr_x[dir]; |
58 | ny = op->y + freearr_y[dir]; |
58 | ny = op->y + freearr_y[dir]; |
59 | m = op->map; |
59 | m = op->map; |
60 | |
60 | |
61 | if (get_map_flags (m, &m, nx, ny, &nx, &ny)) |
61 | if (get_map_flags (m, &m, nx, ny, &nx, &ny) && (P_OUT_OF_MAP | P_SAFE | P_NO_MAGIC | P_NO_CLERIC)) |
62 | { |
62 | { |
63 | new_draw_info (NDI_UNIQUE, 0, op, "Can't make a rune there!"); |
63 | new_draw_info (NDI_UNIQUE, 0, op, "Can't make a rune there!"); |
64 | return 0; |
64 | return 0; |
65 | } |
65 | } |
66 | |
66 | |
67 | for (tmp = GET_MAP_OB (m, nx, ny); tmp != NULL; tmp = tmp->above) |
67 | for (tmp = m->at (nx, ny).bot; tmp; tmp = tmp->above) |
68 | if (tmp->type == RUNE) |
68 | if (tmp->type == RUNE) |
69 | break; |
69 | break; |
70 | |
70 | |
71 | if (tmp) |
71 | if (tmp) |
72 | { |
72 | { |