… | |
… | |
59 | wall_blocked (maptile *m, int x, int y) |
59 | wall_blocked (maptile *m, int x, int y) |
60 | { |
60 | { |
61 | if (OUT_OF_REAL_MAP (m, x, y)) |
61 | if (OUT_OF_REAL_MAP (m, x, y)) |
62 | return 1; |
62 | return 1; |
63 | |
63 | |
|
|
64 | m->at (x, y).update (); |
64 | int r = GET_MAP_MOVE_BLOCK (m, x, y) & ~MOVE_BLOCK_DEFAULT; |
65 | return GET_MAP_MOVE_BLOCK (m, x, y) & MOVE_WALK; |
65 | return r; |
|
|
66 | } |
66 | } |
67 | |
67 | |
68 | /* place treasures in the map, given the |
68 | /* place treasures in the map, given the |
69 | map, (required) |
69 | map, (required) |
70 | layout, (required) |
70 | layout, (required) |
… | |
… | |
250 | the_chest->randomitems = tlist; |
250 | the_chest->randomitems = tlist; |
251 | the_chest->stats.hp = n_treasures; |
251 | the_chest->stats.hp = n_treasures; |
252 | } |
252 | } |
253 | #endif |
253 | #endif |
254 | { /* neither style_map no treasure list given */ |
254 | { /* neither style_map no treasure list given */ |
255 | treasurelist *tlist = find_treasurelist ("chest"); |
255 | treasurelist *tlist = treasurelist::find ("chest"); |
256 | |
256 | |
257 | the_chest->randomitems = tlist; |
257 | the_chest->randomitems = tlist; |
258 | the_chest->stats.hp = n_treasures; |
258 | the_chest->stats.hp = n_treasures; |
259 | } |
259 | } |
260 | |
260 | |
… | |
… | |
658 | *cy = ly; |
658 | *cy = ly; |
659 | return; |
659 | return; |
660 | } |
660 | } |
661 | } |
661 | } |
662 | /* give up and return the closest free spot. */ |
662 | /* give up and return the closest free spot. */ |
663 | i = find_free_spot (&archetype::find ("chest")->clone, map, x, y, 1, SIZEOFFREE1 + 1); |
663 | i = find_free_spot (archetype::find ("chest"), map, x, y, 1, SIZEOFFREE1 + 1); |
664 | |
664 | |
665 | if (i != -1) |
665 | if (i != -1) |
666 | { |
666 | { |
667 | *cx = x + freearr_x[i]; |
667 | *cx = x + freearr_x[i]; |
668 | *cy = y + freearr_y[i]; |
668 | *cy = y + freearr_y[i]; |