m_frame = new BombsFrame(&m_game);
- m_frame->NewGame(bombsID_EASY);
+ m_frame->NewGame(bombsID_EASY, false);
return true;
}
Close();
}
-void BombsFrame::NewGame(int level)
+void BombsFrame::NewGame(int level, bool query)
{
+ if(query)
+ {
+ int ok = wxMessageBox(
+ wxT("Start new game regardless previous board?"),
+ wxT("Confirm"),
+ wxYES_NO | wxICON_QUESTION,
+ this
+ );
+ if(ok!=wxYES)return;
+ }
int numHorzCells = 20, numVertCells = 20;
void BombsFrame::OnNewEasyGame(wxCommandEvent& WXUNUSED(event))
{
- NewGame(bombsID_EASY);
+ NewGame(bombsID_EASY, true);
}
void BombsFrame::OnNewMediumGame(wxCommandEvent& WXUNUSED(event))
{
- NewGame(bombsID_MEDIUM);
+ NewGame(bombsID_MEDIUM, true);
}
void BombsFrame::OnNewHardGame(wxCommandEvent& WXUNUSED(event))
{
- NewGame(bombsID_HARD);
+ NewGame(bombsID_HARD, true);
}
BEGIN_EVENT_TABLE(BombsCanvas, wxPanel)
if ((prevGridFocusX != m_game->m_gridFocusX)
|| (prevGridFocusY != m_game->m_gridFocusY))
{
+ // cause focused field to be visible after first key hit after launching new game
+ if( m_game->m_gridFocusX < 0 ) m_game->m_gridFocusX = 0;
+ if( m_game->m_gridFocusY < 0 ) m_game->m_gridFocusY = 0;
+
// refresh previous field and focused field
RefreshField(prevGridFocusX, prevGridFocusY,
prevGridFocusX, prevGridFocusY);