Commit 29a473b4ecacdfc1b80a267e757542c88b4d1300
1 parent
d66410abd6
Exists in
master
and in
2 other branches
청결/관리 상태 기능 뼈대 추가
Showing
2 changed files
with
59 additions
and
4 deletions
Show diff stats
app/gui/oven_control/dirtylevel.cpp
| @@ -6,6 +6,33 @@ namespace { | @@ -6,6 +6,33 @@ namespace { | ||
| 6 | QDateTime cookStartTime; | 6 | QDateTime cookStartTime; |
| 7 | qint64 cookingTime; | 7 | qint64 cookingTime; |
| 8 | int cookingCount; | 8 | int cookingCount; |
| 9 | + | ||
| 10 | +void decountState(int level) | ||
| 11 | +{ | ||
| 12 | + int current = DirtyLevel::state(); | ||
| 13 | + int target = qMax(current - level, 0); | ||
| 14 | + switch (target) | ||
| 15 | + { | ||
| 16 | + case 0: | ||
| 17 | + cookingCount = 0; | ||
| 18 | + break; | ||
| 19 | + case 1: | ||
| 20 | + cookingCount = 1; | ||
| 21 | + break; | ||
| 22 | + case 2: | ||
| 23 | + cookingCount = 6; | ||
| 24 | + break; | ||
| 25 | + case 3: | ||
| 26 | + cookingCount = 11; | ||
| 27 | + break; | ||
| 28 | + case 4: | ||
| 29 | + cookingCount = 16; | ||
| 30 | + break; | ||
| 31 | + case 5: | ||
| 32 | + cookingCount = 21; | ||
| 33 | + break; | ||
| 34 | + } | ||
| 35 | +} | ||
| 9 | } | 36 | } |
| 10 | 37 | ||
| 11 | 38 | ||
| @@ -20,6 +47,33 @@ void DirtyLevel::cookEnd() | @@ -20,6 +47,33 @@ void DirtyLevel::cookEnd() | ||
| 20 | cookingTime += cookStartTime.secsTo(QDateTime::currentDateTime()); | 47 | cookingTime += cookStartTime.secsTo(QDateTime::currentDateTime()); |
| 21 | } | 48 | } |
| 22 | 49 | ||
| 50 | +void DirtyLevel::wash(int type) | ||
| 51 | +{ | ||
| 52 | + switch (type) | ||
| 53 | + { | ||
| 54 | + case 1: | ||
| 55 | + cookingTime = qMax(cookingTime - 2 * 3600, 0); | ||
| 56 | + decountState(1); | ||
| 57 | + break; | ||
| 58 | + case 2: | ||
| 59 | + cookingTime = qMax(cookingTime - 3 * 3600, 0); | ||
| 60 | + decountState(1); | ||
| 61 | + break; | ||
| 62 | + case 3: | ||
| 63 | + cookingTime = qMax(cookingTime - 4 * 3600, 0); | ||
| 64 | + decountState(2); | ||
| 65 | + break; | ||
| 66 | + case 4: | ||
| 67 | + cookingTime = qMax(cookingTime - 10 * 3600, 0); | ||
| 68 | + decountState(2); | ||
| 69 | + break; | ||
| 70 | + case 5: | ||
| 71 | + cookingTime = qMax(cookingTime - 2 * 3600, 0); | ||
| 72 | + decountState(1); | ||
| 73 | + break; | ||
| 74 | + } | ||
| 75 | +} | ||
| 76 | + | ||
| 23 | int DirtyLevel::dirty() | 77 | int DirtyLevel::dirty() |
| 24 | { | 78 | { |
| 25 | if (cookingCount < 1) | 79 | if (cookingCount < 1) |
| @@ -39,13 +93,13 @@ int DirtyLevel::state() | @@ -39,13 +93,13 @@ int DirtyLevel::state() | ||
| 39 | { | 93 | { |
| 40 | if (cookingCount < 1) | 94 | if (cookingCount < 1) |
| 41 | return 0; | 95 | return 0; |
| 42 | - if (cookingCount < 4) | 96 | + if (cookingCount <= 5) |
| 43 | return 1; | 97 | return 1; |
| 44 | - if (cookingCount < 7) | 98 | + if (cookingCount <= 10) |
| 45 | return 2; | 99 | return 2; |
| 46 | - if (cookingCount < 10) | 100 | + if (cookingCount <= 15) |
| 47 | return 3; | 101 | return 3; |
| 48 | - if (cookingCount < 13) | 102 | + if (cookingCount <= 20) |
| 49 | return 4; | 103 | return 4; |
| 50 | return 5; | 104 | return 5; |
| 51 | } | 105 | } |
app/gui/oven_control/dirtylevel.h