/*! * @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(); }