Exemple #1
0
/*!
 * @brief ブロックを落下させる
 *
 * ブロックの重なりも検出する。
 * @see check_overlap()
 */
static void drop_block(void) {
  if (!check_overlap(x, y + 1)) {  /* 重なりがなければ移動 */
    move_block(x, y + 1);
  } else {                         /* 重なりがあれば壁にする */
    lock_block();
    create_block();
    show_field(field, MY_FIELD_X);
  }
}
void syn_param::lock_scope()
{

	stk.push_back(m_refData);
	m_refData.reset(new syn_scope_function(cgen));
	cgen.pCode=m_refData->pCode;
	m_refData->aConst.swap(cgen.aConst);
	m_refData->aInsts.swap(cgen.aInsts);

	lock_block();

}