void PlayArea::MsgTimer(ALLEGRO_TIMER_EVENT *t) { Widget::MsgTimer(t); if (t->source == timer) { if (curPiece->MoveDown() == false) { DropCurrentPiece(); delete curPiece; curPiece = nextPiece; nextPiece = new Piece; nextPiece->map = this; nextPiece->CreateRandomPiece(); if (!curPiece->CanMoveDown()) { GameOver(); } else { parent->HandleEvent(*this, MyDialog::MSG_NEWPIECE); } } } }