aboutsummaryrefslogtreecommitdiff
path: root/engines/igor/parts/part_05.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/igor/parts/part_05.cpp')
-rw-r--r--engines/igor/parts/part_05.cpp24
1 files changed, 6 insertions, 18 deletions
diff --git a/engines/igor/parts/part_05.cpp b/engines/igor/parts/part_05.cpp
index ae4ff11999..16258546b3 100644
--- a/engines/igor/parts/part_05.cpp
+++ b/engines/igor/parts/part_05.cpp
@@ -123,6 +123,9 @@ void IgorEngine::PART_05_ACTION_103() {
} while (i != 3);
addObjectToInventory(21, 56);
_objectsState[60] = 1;
+ if (_gameVersion == kIdEngDemo110) {
+ ++_demoActionsCounter;
+ }
PART_05_HELPER_4(255);
}
@@ -256,25 +259,11 @@ void IgorEngine::PART_05() {
if (_currentPart == 50) {
PART_05_HELPER_6();
}
- showCursor();
- _gameState.igorMoving = false;
+ enterPartLoop();
while (_currentPart >= 50 && _currentPart <= 52) {
- handleRoomInput();
- if (compareGameTick(1, 16)) {
- handleRoomIgorWalk();
- }
- if (compareGameTick(19, 32)) {
- handleRoomDialogue();
- }
- if (compareGameTick(4, 8)) {
- handleRoomInventoryScroll();
- }
- if (compareGameTick(1)) {
- handleRoomLight();
- }
- PART_05_UPDATE_ROOM_BACKGROUND();
- waitForTimer();
+ runPartLoop();
}
+ leavePartLoop();
stopSound();
if (_currentPart == 255) {
fadeOutPalette(768);
@@ -285,7 +274,6 @@ void IgorEngine::PART_05() {
memcpy(_currentPalette, _paletteBuffer, 624);
fadeOutPalette(624);
}
- _updateRoomBackground = 0;
}
} // namespace Igor