From 27ac18b503c2d8077e7317fa8aea5b116e46e292 Mon Sep 17 00:00:00 2001 From: NT_x86 Date: Wed, 5 Oct 2022 17:25:35 +0300 Subject: [PATCH] Separate each condition as separate functions --- src/include/DataModelV2/LevelInstance.h | 4 +++ src/source/DataModelV2/LevelInstance.cpp | 37 +++++++++++++++++++----- 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/src/include/DataModelV2/LevelInstance.h b/src/include/DataModelV2/LevelInstance.h index e83bcfe..b7c0251 100644 --- a/src/include/DataModelV2/LevelInstance.h +++ b/src/include/DataModelV2/LevelInstance.h @@ -17,5 +17,9 @@ public: std::string winMessage; std::string loseMessage; virtual void PropUpdate(LPPROPGRIDITEM &pItem); + void winCondition(); + void loseCondition(); + void pauseCondition(); + void drawCondition(); void Step(SimTime sdt); }; diff --git a/src/source/DataModelV2/LevelInstance.cpp b/src/source/DataModelV2/LevelInstance.cpp index 4867c5d..4b33578 100644 --- a/src/source/DataModelV2/LevelInstance.cpp +++ b/src/source/DataModelV2/LevelInstance.cpp @@ -177,6 +177,32 @@ void LevelInstance::PropUpdate(LPPROPGRIDITEM &pItem) Instance::PropUpdate(pItem); } +void LevelInstance::winCondition() +{ + DataModelInstance* DataModel = (DataModelInstance*)getParent(); //If level parent gets changed to something other than Datamodel it could cause nasty data corruption bugs + DataModel->setMessage(winMessage); + DataModel->toggleRun(); +} + +void LevelInstance::loseCondition() +{ + DataModelInstance* DataModel = (DataModelInstance*)getParent(); + DataModel->setMessage(loseMessage); + DataModel->toggleRun(); +} + +void LevelInstance::pauseCondition() +{ + DataModelInstance* DataModel = (DataModelInstance*)getParent(); + DataModel->toggleRun(); +} + +void LevelInstance::drawCondition() +{ + DataModelInstance* DataModel = (DataModelInstance*)getParent(); + DataModel->toggleRun(); +} + void LevelInstance::Step(SimTime sdt) { switch(TimerAffectsScore) @@ -196,24 +222,21 @@ void LevelInstance::Step(SimTime sdt) } else{ timer = 0.0f; - DataModelInstance* DataModel = (DataModelInstance*)getParent(); //If level parent gets changed to something other than Datamodel it could cause nasty data corruption bugs switch(TimerUpAction) { case Enum::ActionType::Nothing: break; case Enum::ActionType::Pause: - DataModel->toggleRun(); + pauseCondition(); break; case Enum::ActionType::Lose: - DataModel->setMessage(loseMessage); - DataModel->toggleRun(); + loseCondition(); break; case Enum::ActionType::Draw: - DataModel->toggleRun(); + drawCondition(); break; case Enum::ActionType::Win: - DataModel->setMessage(winMessage); - DataModel->toggleRun(); + winCondition(); break; } }