void field_load(SCM src) { field_smob *fs = assert_field_smob(src); CHECK(mdata, "init-params must be called before field-load"); update_curfield_smob(); CHECK(fields_conform(fs, &curfield_smob), "argument for field-load must conform to current size"); curfield_smob.type = fs->type; field_set(&curfield_smob, fs); }
void freeze_block(Block * block, Field field) { if (NULL_BLOCK(*block)) return; int i, j; for (i = 0; i < SHAPE_HEIGHT; i++) { for (j = 0; j < SHAPE_WIDTH; j++) { if (shapes[block->shape][block->rot][i][j]) { field_set(field, block->x + j, block->y + i, block->shape); } } } *block = BLOCK_NULL; }
void field_setB(SCM dest, SCM src) { field_smob *fd = assert_field_smob(dest); field_smob *fs = assert_field_smob(src); field_set(fd, fs); }