Use visited_segment_bitarray_t for pick_connected_segment

This commit is contained in:
Kp 2013-12-18 23:55:14 +00:00
parent 0978fcdab4
commit edc1f9e471

View file

@ -437,11 +437,10 @@ int pick_connected_segment(object *objp, int max_depth)
int start_seg; int start_seg;
int head, tail; int head, tail;
int seg_queue[QUEUE_SIZE*2]; int seg_queue[QUEUE_SIZE*2];
sbyte visited[MAX_SEGMENTS];
sbyte depth[MAX_SEGMENTS]; sbyte depth[MAX_SEGMENTS];
sbyte side_rand[MAX_SIDES_PER_SEGMENT]; sbyte side_rand[MAX_SIDES_PER_SEGMENT];
memset(visited, 0, Highest_segment_index+1); visited_segment_bitarray_t visited;
memset(depth, 0, Highest_segment_index+1); memset(depth, 0, Highest_segment_index+1);
memset(seg_queue,0,QUEUE_SIZE*2); memset(seg_queue,0,QUEUE_SIZE*2);
@ -497,9 +496,9 @@ int pick_connected_segment(object *objp, int max_depth)
if ((wall_num == -1 || door_is_openable_by_player(segp, snrand)) && segp->children[snrand] > -1) if ((wall_num == -1 || door_is_openable_by_player(segp, snrand)) && segp->children[snrand] > -1)
{ {
if (visited[segp->children[snrand]] == 0) { if (!visited[segp->children[snrand]]) {
seg_queue[head++] = segp->children[snrand]; seg_queue[head++] = segp->children[snrand];
visited[segp->children[snrand]] = 1; visited[segp->children[snrand]] = true;
depth[segp->children[snrand]] = cur_depth+1; depth[segp->children[snrand]] = cur_depth+1;
head &= QUEUE_SIZE-1; head &= QUEUE_SIZE-1;
if (head > tail) { if (head > tail) {