diff --git a/engines/chewy/rooms/room13.cpp b/engines/chewy/rooms/room13.cpp index 66d80cf798d..5dc0a8047a8 100644 --- a/engines/chewy/rooms/room13.cpp +++ b/engines/chewy/rooms/room13.cpp @@ -68,9 +68,15 @@ void Room13::entry() { atds->set_ats_str(93, TXT_MARK_LOOK, _G(spieler).R13Bandlauf, ATS_DATEI); } - if (_G(spieler).R13Band) { + if (_G(spieler).R13Bandlauf) { + for (int i = 0; i < 5; ++i) + det->start_detail(i, 255, false); + } + + if (!flags.LoadGame && _G(spieler).R13Band) { _G(spieler).room_e_obj[25].Attribut = AUSGANG_OBEN; - atds->set_steuer_bit(100, 1, 1); + atds->set_steuer_bit(100, ATS_AKTIV_BIT, ATS_DATEI); + _G(spieler).R13Band = false; } if (_G(spieler).R21GitterMuell) @@ -80,21 +86,14 @@ void Room13::entry() { void Room13::xit() { _G(spieler).room_e_obj[25].Attribut = AUSGANG_OBEN; - atds->set_steuer_bit(100, 1, 1); + atds->set_steuer_bit(100, ATS_AKTIV_BIT, ATS_DATEI); _G(spieler).R13Band = false; } void Room13::gedAction(int index) { - switch (index) { - case 2: - if (_G(spieler).R12ChewyBork) { - stop_person(P_CHEWY); - talk_bork(); - } - break; - - default: - break; + if (index == 2 && _G(spieler).R12ChewyBork) { + stop_person(P_CHEWY); + talk_bork(); } } @@ -108,7 +107,7 @@ void Room13::talk_bork() { _G(spieler).PersonHide[P_CHEWY] = true; start_aad_wait(33, -1); det->stop_detail(9); - det->load_taf_seq(86, (97 - 86) + 1, nullptr); + det->load_taf_seq(86, 12, nullptr); _G(spieler).PersonHide[P_CHEWY] = false; det->hide_static_spr(12); _G(auto_obj) = 1; @@ -120,7 +119,7 @@ void Room13::talk_bork() { auto_mov_obj[R13_BORK_OBJ].Id = AUTO_OBJ0; auto_mov_vector[R13_BORK_OBJ].Delay = _G(spieler).DelaySpeed; auto_mov_obj[R13_BORK_OBJ].Mode = true; - init_auto_obj(R13_BORK_OBJ, &R13_BORK_PHASEN[0][0], mov_phasen[R13_BORK_OBJ].Lines, (const MovLine *)R13_BORK_MPKT); + init_auto_obj(R13_BORK_OBJ, &R13_BORK_PHASEN[0][0], 3, (const MovLine *)R13_BORK_MPKT); auto_move(9, P_CHEWY); wait_auto_obj(R13_BORK_OBJ); auto_move(11, P_CHEWY); @@ -177,7 +176,7 @@ void Room13::jmp_band() { flags.NoScroll = false; set_person_pos(195, 226, P_CHEWY, P_LEFT); - _G(spieler).R13Bandlauf = 0; + _G(spieler).R13Bandlauf = false; atds->set_ats_str(94, TXT_MARK_LOOK, _G(spieler).R13Bandlauf, ATS_DATEI); atds->set_ats_str(97, TXT_MARK_LOOK, _G(spieler).R13Bandlauf, ATS_DATEI); atds->set_ats_str(93, TXT_MARK_LOOK, _G(spieler).R13Bandlauf, ATS_DATEI); @@ -190,11 +189,10 @@ void Room13::jmp_band() { _G(spieler).scrollx = 92; _G(spieler).scrolly = 120; _G(spieler).PersonHide[P_CHEWY] = true; - wait_show_screen(40); + wait_show_screen(20); _G(spieler).PersonHide[P_CHEWY] = false; } - } else - start_aad_wait(118, -1); + } } void Room13::jmp_boden() { @@ -215,14 +213,14 @@ void Room13::jmp_boden() { int16 Room13::monitor_knopf() { int16 action_flag = false; - + if (!_G(spieler).inv_cur) { - action_flag = true; - if (_G(spieler).R13Band) { + action_flag = true; start_aad_wait(620, -1); } else if (!_G(spieler).R12ChewyBork) { + action_flag = true; auto_move(8, P_CHEWY); _G(spieler).PersonHide[P_CHEWY] = true; start_detail_wait(6, 1, ANI_VOR); diff --git a/engines/chewy/rooms/room22.cpp b/engines/chewy/rooms/room22.cpp index b944d0c4a0b..65c171490fa 100644 --- a/engines/chewy/rooms/room22.cpp +++ b/engines/chewy/rooms/room22.cpp @@ -121,7 +121,7 @@ void Room22::bork(int16 t_nr) { bork_walk1(); } else { if (!_G(spieler).R22ChewyPlatt) { - atds->set_steuer_bit(79, 1, 1); + atds->set_steuer_bit(79, ATS_AKTIV_BIT, ATS_DATEI); _G(spieler).R22ChewyPlatt = true; } @@ -196,7 +196,7 @@ int16 Room22::malen() { if (!_G(spieler).R22ChewyPlatt) { _G(spieler).R22ChewyPlatt = true; - atds->set_steuer_bit(79, 1, 1); + atds->set_steuer_bit(79, ATS_AKTIV_BIT, ATS_DATEI); } } diff --git a/engines/chewy/rooms/room29.cpp b/engines/chewy/rooms/room29.cpp index fddbae94bcb..6f61c06a848 100644 --- a/engines/chewy/rooms/room29.cpp +++ b/engines/chewy/rooms/room29.cpp @@ -52,7 +52,7 @@ void Room29::entry() { if (_G(spieler).R29AutoSitz) { if (_G(spieler).ChewyAni == CHEWY_ROCKER) - atds->set_steuer_bit(212, 1, 1); + atds->set_steuer_bit(212, ATS_AKTIV_BIT, ATS_DATEI); else det->show_static_spr(9); } diff --git a/engines/chewy/rooms/room41.cpp b/engines/chewy/rooms/room41.cpp index 1f5e7cf69bd..1dd321e3c9f 100644 --- a/engines/chewy/rooms/room41.cpp +++ b/engines/chewy/rooms/room41.cpp @@ -60,7 +60,7 @@ void Room41::entry() { } if (_G(spieler).ChewyAni == CHEWY_ROCKER) { - atds->set_steuer_bit(269, 1, 1); + atds->set_steuer_bit(269, ATS_AKTIV_BIT, ATS_DATEI); } if (!flags.LoadGame) diff --git a/engines/chewy/rooms/room55.cpp b/engines/chewy/rooms/room55.cpp index 133b73ac9e5..68e1cba86f7 100644 --- a/engines/chewy/rooms/room55.cpp +++ b/engines/chewy/rooms/room55.cpp @@ -381,8 +381,8 @@ int16 Room55::use_kammeraus() { _G(spieler).R55SekWeg = true; atds->set_steuer_bit(352, ATS_AKTIV_BIT, ATS_DATEI); del_inventar(_G(spieler).AkInvent); - atds->set_steuer_bit(345, 1, 1); - atds->set_steuer_bit(346, 1, 1); + atds->set_steuer_bit(345, ATS_AKTIV_BIT, ATS_DATEI); + atds->set_steuer_bit(346, ATS_AKTIV_BIT, ATS_DATEI); strasse(1); show_cur(); }