]> Shamusworld >> Repos - warehouse-man-deluxe/blobdiff - src/mainwin.cpp
Added level editor.
[warehouse-man-deluxe] / src / mainwin.cpp
index 8ba6ded2db6e07ebb5d185aa7d54f2927601d68c..a4aec01054e143afd19db13a563d66f235bbac5f 100644 (file)
@@ -15,6 +15,8 @@
 
 #include <stdlib.h>                    // For rand()
 #include <time.h>                      // For time()
+#include "gameboard.h"
+#include "editorwindow.h"      // Actual mouse/drawing window
 #include "gamewidget.h"                // Actual mouse/drawing window
 //#include "resource.h"
 //#include "optiondlg.h"               // Options dialog class
@@ -29,17 +31,23 @@ MainWin::MainWin()
        setWindowTitle("Warehouse Man Deluxe");
        setWindowIcon(QIcon(":/wmd-icon.png"));
 
+//     editor = new QWindow(this);
+       editorWindow = new EditorWindow(this);
+//     editor->setCentralWidget(editorWidget);
+//     editorWidget->setFocusPolicy(Qt::StrongFocus);  // Without this, it gets no keys
+       editorWindow->show();
+
        newGame = CreateAction(tr("&New"), tr("New Game"), tr("Start a new game of Warehouse Man Deluxe"), QIcon(), QKeySequence(tr("ctrl+n")));
 //     connect(newGame, SIGNAL(triggered()), this, SLOT(OnNewGame()));
 
-       gamePlay = CreateAction(tr("&Play"), tr(""), tr(""), QIcon(), QKeySequence(tr("ctrl+a")));
-//     connect(gamePlay, SIGNAL(triggered()), this, SLOT(OnGamePlay()));
-
-       helpUndo = CreateAction(tr("&Undo"), tr(""), tr(""), QIcon(), QKeySequence(tr("ctrl+z")));
-//     connect(helpUndo, SIGNAL(triggered()), this, SLOT(OnHelpUndo()));
+       undoAction = CreateAction(tr("&Undo"), tr(""), tr(""), QIcon(), QKeySequence(tr("ctrl+z")));
+       connect(undoAction, SIGNAL(triggered()), this, SLOT(HandleUndo()));
 
        resetLevel = CreateAction(tr("&Reset Level"), tr("Reset Level"), tr("Start the current level over"), QIcon(), QKeySequence(tr("ctrl+r")));
-       connect(resetLevel, SIGNAL(triggered()), this, SLOT(ResetCurrentLevel()));
+       connect(resetLevel, SIGNAL(triggered()), this, SLOT(HandleReset()));
+
+       skipLevel = CreateAction(tr("&Skip Level"), tr("Skip Level"), tr("Skip the current level"), QIcon(), QKeySequence(tr("ctrl+k")));
+       connect(skipLevel, SIGNAL(triggered()), this, SLOT(HandleSkipLevel()));
 
        gameOptions = CreateAction(tr("&Options..."), tr("Options"), tr("Configure Warehouse Man Deluxe's options"), QIcon(), QKeySequence(tr("ctrl+o")));
 //     connect(gameOptions, SIGNAL(triggered()), this, SLOT(OnGameOptions()));
@@ -60,9 +68,10 @@ MainWin::MainWin()
        QMenu * menu = menuBar()->addMenu(tr("&Game"));
        menu->addAction(newGame);
        menu->addSeparator();
-       menu->addAction(gamePlay);
-       menu->addAction(helpUndo);
+//     menu->addAction(gamePlay);
+       menu->addAction(undoAction);
        menu->addAction(resetLevel);
+       menu->addAction(skipLevel);
        menu->addSeparator();
        menu->addAction(gameOptions);
        menu->addAction(gameStats);
@@ -78,6 +87,8 @@ MainWin::MainWin()
        QSettings settings("Underground Software", "Warehouse Man Deluxe");
        QPoint mainWinPosition = settings.value("pos", QPoint(200, 100)).toPoint();
        move(mainWinPosition);
+       QSize mainWinSize = settings.value("size", QSize(500, 500)).toSize();
+       resize(mainWinSize);
 
 /*     nCardBack = settings.value("CardBack", BACK4).toInt();
        m_nBackground = settings.value("Background", 0).toInt();
@@ -118,6 +129,7 @@ MainWin::MainWin()
 MainWin::~MainWin()
 {
 //     ShutDownAudio();
+       delete editorWindow;
 }
 
 
@@ -167,6 +179,7 @@ void MainWin::closeEvent(QCloseEvent * event)
 
        QSettings settings("Underground Software", "Warehouse Man Deluxe");
        settings.setValue("pos", pos());
+       settings.setValue("size", size());
 
 /*
        settings.setValue("CardBack", nCardBack);
@@ -267,7 +280,7 @@ void MainWin::ResetGame(void)
 
 void MainWin::AboutGame(void)
 {
-       QMessageBox::about(this, tr("About Warehouse Man Deluxe"), tr("Warehouse Man Deluxe Version 1.0\n\nCopyright © 2014 Underground Software\n\nWritten by James L. Hammons"));
+       QMessageBox::about(this, tr("About Warehouse Man Deluxe"), tr("Warehouse Man Deluxe Version 1.0\n\nCopyright (C) 2014 Underground Software\n\nWritten by James L. Hammons"));
 }
 
 
@@ -278,12 +291,24 @@ void MainWin::WeHaveAWinner(void)
 }
 
 
-void MainWin::ResetCurrentLevel(void)
+void MainWin::HandleReset(void)
 {
        gameWidget->ResetLevel();
 }
 
 
+void MainWin::HandleSkipLevel(void)
+{
+       gameWidget->NextLevel();
+}
+
+
+void MainWin::HandleUndo(void)
+{
+       gameWidget->UndoLastMove();
+}
+
+
 #if 0
 void MainWin::OnNewGame(void) 
 {
@@ -377,7 +402,7 @@ void MainWin::OnGameStats(void)
 }
 
 
-void MainWin::OnHelpUndo(void)
+void MainWin::OnundoAction(void)
 {
        if (m_bCanUndo)
        {