commit 89c44c9c
Can now "Escape" out of an puzzle
Changed files
| M | src/ImageSelectState.cpp before |
| M | src/PuzzleSingleImageState.cpp before |
diff --git a/src/ImageSelectState.cpp b/src/ImageSelectState.cpp
index 7bce616..f207e5a 100644
--- a/src/ImageSelectState.cpp
+++ b/src/ImageSelectState.cpp
@@ -132,6 +132,8 @@ void ImageSelectState::Update() {
PuzzleSingleImageState psi;
psi.LoadPictureFromFile(imageList[i], globalData.screen);
RunGameState(psi);
+ globalData.mouseUp=true;
+ return;
}
}
}
diff --git a/src/PuzzleSingleImageState.cpp b/src/PuzzleSingleImageState.cpp
index 378038f..0079d82 100644
--- a/src/PuzzleSingleImageState.cpp
+++ b/src/PuzzleSingleImageState.cpp
@@ -37,11 +37,28 @@ PuzzleSingleImageState::~PuzzleSingleImageState() {
}
bool PuzzleSingleImageState::IsActive() {
- return true;
+ return isActive;
}
-void PuzzleSingleImageState::ProcessInput(const SDL_Event& event, bool &processed) {
+bool isEscapeEvent(const SDL_Event& event) {
+ if ( event.type == SDL_KEYDOWN ) {
+ if ( event.key.keysym.sym == SDLK_ESCAPE ) {
+ return true;
+ }
+ }
+ if (event.type == SDL_CONTROLLERBUTTONDOWN) {
+ if (event.cbutton.button == SDL_CONTROLLER_BUTTON_B || event.cbutton.button == SDL_CONTROLLER_BUTTON_BACK ) {
+ return true;
+ }
+ }
+ return false;
+}
+void PuzzleSingleImageState::ProcessInput(const SDL_Event& event, bool &processed) {
+ if (isEscapeEvent(event)) {
+ isActive = false;
+ processed = true;
+ }
}
void PuzzleSingleImageState::Draw(SDL_Renderer* target) {