aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/timer_lok.cpp
diff options
context:
space:
mode:
authorJohannes Schickel2010-07-23 00:13:21 +0000
committerJohannes Schickel2010-07-23 00:13:21 +0000
commitba8ec806ba2746210217950b12c6dce9a5bb1696 (patch)
tree4ab098af8debaf6f7eafb59bb986ec1420afc3f1 /engines/kyra/timer_lok.cpp
parent6cf1b59742fda8dbed4df8750eba1569dd2e6315 (diff)
downloadscummvm-rg350-ba8ec806ba2746210217950b12c6dce9a5bb1696.tar.gz
scummvm-rg350-ba8ec806ba2746210217950b12c6dce9a5bb1696.tar.bz2
scummvm-rg350-ba8ec806ba2746210217950b12c6dce9a5bb1696.zip
KYRA: Cleanup.
svn-id: r51183
Diffstat (limited to 'engines/kyra/timer_lok.cpp')
-rw-r--r--engines/kyra/timer_lok.cpp66
1 files changed, 13 insertions, 53 deletions
diff --git a/engines/kyra/timer_lok.cpp b/engines/kyra/timer_lok.cpp
index 9c73314fba..0fba739ed0 100644
--- a/engines/kyra/timer_lok.cpp
+++ b/engines/kyra/timer_lok.cpp
@@ -96,87 +96,47 @@ void KyraEngine_LoK::timerTulipCreator(int timerNum) {
if (_currentCharacter->sceneId == 0x1C)
return;
- int rndNr = _rnd.getRandomNumberRng(0, 3);
-
- for (int i = 0; i < 4; i++) {
- if (!queryGameFlag(rndNr + 17)) {
- setGameFlag(rndNr + 17);
- break;
- } else {
- rndNr++;
- if (rndNr > 3)
- rndNr = 0;
- }
- }
+ setItemCreationFlags(17, 3);
}
void KyraEngine_LoK::timerRubyCreator(int timerNum) {
if (_currentCharacter->sceneId == 0x23)
return;
- int rndNr = _rnd.getRandomNumberRng(0, 3);
-
- for (int i = 0; i < 4; i++) {
- if (!queryGameFlag(rndNr + 22)) {
- setGameFlag(rndNr + 22);
- break;
- } else {
- rndNr++;
- if (rndNr > 3)
- rndNr = 0;
- }
- }
+ setItemCreationFlags(22, 4);
}
void KyraEngine_LoK::timerLavenderRoseCreator(int timerNum) {
if (_currentCharacter->sceneId == 0x06)
return;
- int rndNr = _rnd.getRandomNumberRng(0, 4);
-
- for (int i = 0; i < 5; i++) {
- if (!queryGameFlag(rndNr)) {
- setGameFlag(rndNr);
- break;
- } else {
- rndNr++;
- if (rndNr > 4)
- rndNr = 0;
- }
- }
+ setItemCreationFlags(0, 4);
}
void KyraEngine_LoK::timerAcornCreator(int timerNum) {
if (_currentCharacter->sceneId == 0x1F)
return;
- int rndNr = _rnd.getRandomNumberRng(0, 5);
-
- for (int i = 0; i < 6; i++) {
- if (!queryGameFlag(rndNr + 72)) {
- setGameFlag(rndNr + 72);
- break;
- } else {
- rndNr++;
- if (rndNr > 5)
- rndNr = 0;
- }
- }
+ setItemCreationFlags(72, 5);
}
void KyraEngine_LoK::timerBlueberryCreator(int timerNum) {
if (_currentCharacter->sceneId == 0x28)
return;
- int rndNr = _rnd.getRandomNumberRng(0, 7);
+ setItemCreationFlags(26, 7);
+}
+
+void KyraEngine_LoK::setItemCreationFlags(int offset, int count) {
+ int rndNr = _rnd.getRandomNumberRng(0, count);
- for (int i = 0; i < 8; i++) {
- if (!queryGameFlag(rndNr + 26)) {
- setGameFlag(rndNr + 26);
+ for (int i = 0; i <= count; i++) {
+ if (!queryGameFlag(rndNr + offset)) {
+ setGameFlag(rndNr + offset);
break;
} else {
rndNr++;
- if (rndNr > 7)
+ if (rndNr > count)
rndNr = 0;
}
}