aboutsummaryrefslogtreecommitdiff
path: root/engines/igor/parts/part_27.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/igor/parts/part_27.cpp')
-rw-r--r--engines/igor/parts/part_27.cpp25
1 files changed, 9 insertions, 16 deletions
diff --git a/engines/igor/parts/part_27.cpp b/engines/igor/parts/part_27.cpp
index 5d06e946a8..59e0eb0411 100644
--- a/engines/igor/parts/part_27.cpp
+++ b/engines/igor/parts/part_27.cpp
@@ -173,6 +173,9 @@ void IgorEngine::PART_27_ACTION_108() {
}
addObjectToInventory(23, 58);
PART_27_HELPER_1(1);
+ if (_gameVersion == kIdEngDemo110) {
+ ++_demoActionsCounter;
+ }
}
void IgorEngine::PART_27_ACTION_110() {
@@ -193,6 +196,9 @@ void IgorEngine::PART_27_ACTION_110() {
removeObjectFromInventory(55);
PART_27_HELPER_1(255);
_objectsState[107] = 1;
+ if (_gameVersion == kIdEngDemo110) {
+ ++_demoActionsCounter;
+ }
}
void IgorEngine::PART_27_HELPER_1(int num) {
@@ -272,24 +278,11 @@ void IgorEngine::PART_27() {
} else {
PART_27_HELPER_5();
}
- showCursor();
- _gameState.igorMoving = false;
+ enterPartLoop();
while (_currentPart == 270 || _currentPart == 271) {
- handleRoomInput();
- if (compareGameTick(1, 16)) {
- handleRoomIgorWalk();
- }
- if (compareGameTick(19, 32)) {
- handleRoomDialogue();
- }
- if (compareGameTick(4, 8)) {
- handleRoomInventoryScroll();
- }
- if (compareGameTick(1)) {
- handleRoomLight();
- }
- waitForTimer();
+ runPartLoop();
}
+ leavePartLoop();
fadeOutPalette(624);
}