2013-05-11 22:16:45 -04:00
|
|
|
namespace factor {
|
2009-10-07 15:05:09 -04:00
|
|
|
|
2009-10-09 04:20:50 -04:00
|
|
|
static const cell card_starts_inside_object = 0xff;
|
2009-10-09 03:05:31 -04:00
|
|
|
|
2009-10-20 14:47:04 -04:00
|
|
|
struct object_start_map {
|
2013-05-11 22:16:45 -04:00
|
|
|
cell size, start;
|
|
|
|
card* object_start_offsets;
|
|
|
|
card* object_start_offsets_end;
|
2009-10-07 15:05:09 -04:00
|
|
|
|
2013-05-12 23:20:43 -04:00
|
|
|
object_start_map(cell size, cell start);
|
2013-05-11 22:16:45 -04:00
|
|
|
~object_start_map();
|
2009-10-07 15:05:09 -04:00
|
|
|
|
2013-05-11 22:16:45 -04:00
|
|
|
cell find_object_containing_card(cell card_index);
|
|
|
|
void record_object_start_offset(object* obj);
|
|
|
|
void clear_object_start_offsets();
|
2013-05-13 00:28:25 -04:00
|
|
|
void update_card_for_sweep(cell index, uint16_t mask);
|
2015-01-06 11:58:24 -05:00
|
|
|
void update_for_sweep(mark_bits* state);
|
2009-10-07 15:05:09 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
}
|