mirror of
https://github.com/scummvm/scummvm.git
synced 2026-06-20 05:45:29 +00:00
CHEWY: Small modification in the logic of Room 46, review logic of rooms 47 to 49
This commit is contained in:
@@ -112,9 +112,8 @@ void alloc_buffers() {
|
||||
}
|
||||
|
||||
void free_buffers() {
|
||||
int16 i;
|
||||
det->del_dptr();
|
||||
for (i = 0; i < MAX_PERSON; i++)
|
||||
for (int16 i = 0; i < MAX_PERSON; i++)
|
||||
free((char *)PersonTaf[i]);
|
||||
free((char *)spz_tinfo);
|
||||
free(font6x8);
|
||||
@@ -323,9 +322,8 @@ void menu_exit() {
|
||||
}
|
||||
|
||||
int16 main_loop(int16 mode) {
|
||||
int16 ende;
|
||||
int16 ret;
|
||||
ende = false;
|
||||
int16 ende = false;
|
||||
|
||||
maus_action();
|
||||
if (flags.MainInput) {
|
||||
|
||||
@@ -132,11 +132,14 @@ void Room46::bodo() {
|
||||
flic_cut(FCUT_065, CFO_MODE);
|
||||
out->setze_zeiger(nullptr);
|
||||
out->cls();
|
||||
test_intro(16);
|
||||
|
||||
_G(spieler).PersonHide[P_CHEWY] = false;
|
||||
|
||||
det->hide_static_spr(0);
|
||||
det->hide_static_spr(3);
|
||||
load_chewy_taf(CHEWY_ROCKER);
|
||||
_G(spieler).R28ChewyPump = false;
|
||||
|
||||
set_person_pos(213, 118, P_CHEWY, P_RIGHT);
|
||||
start_aad_wait(243, -1);
|
||||
invent_2_slot(UHR_INV);
|
||||
@@ -149,13 +152,22 @@ void Room46::kloppe() {
|
||||
for (int16 i = 0; i < 4; i++) {
|
||||
mem->file->select_pool_item(Ci.Handle, FCUT_065);
|
||||
|
||||
flc->play(Ci.Handle, Ci.VirtScreen, Ci.TempArea);
|
||||
flc->custom_play(&Ci);
|
||||
|
||||
out->setze_zeiger(nullptr);
|
||||
out->cls();
|
||||
start_aad(244 + i, -1);
|
||||
int16 delay = _G(spieler).DelaySpeed * 50;
|
||||
atds->print_aad(0, 0);
|
||||
|
||||
if (flags.InitSound && _G(spieler).SpeechSwitch) {
|
||||
while (ailsnd->isSpeechActive()) {
|
||||
ailsnd->serveDbSamples();
|
||||
SHOULD_QUIT_RETURN;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
while (in->get_switch_code() == 0 && delay) {
|
||||
out->skip_frame(1);
|
||||
--delay;
|
||||
|
||||
@@ -84,18 +84,16 @@ int16 Room47::use_knopf(int16 txt_nr) {
|
||||
}
|
||||
|
||||
void Room47::set_detail() {
|
||||
int16 i;
|
||||
|
||||
for (i = 0; i < 10; i++)
|
||||
for (int16 i = 0; i < 10; i++)
|
||||
det->hide_static_spr(i);
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
for (int16 i = 0; i < 3; i++) {
|
||||
det->show_static_spr(_G(spieler).R47Schloss[i]);
|
||||
det->set_static_pos(_G(spieler).R47Schloss[i], 124 + i * 30, 96 - i * 1, false, true);
|
||||
det->set_static_pos(_G(spieler).R47Schloss[i], 124 + i * 30, 96 - i, false, true);
|
||||
det->plot_static_details(0, 0, _G(spieler).R47Schloss[i], _G(spieler).R47Schloss[i]);
|
||||
}
|
||||
|
||||
for (i = 0; i < 10; i++)
|
||||
for (int16 i = 0; i < 10; i++)
|
||||
det->hide_static_spr(i);
|
||||
}
|
||||
|
||||
|
||||
@@ -106,8 +106,8 @@ void Room49::calc_boy_ani() {
|
||||
det->del_static_ani(1);
|
||||
}
|
||||
|
||||
det->set_static_ani(_G(spieler).R49BoyAni, -1);
|
||||
det->start_detail(_G(spieler).R49BoyAni, 1, ANI_VOR);
|
||||
det->set_static_ani(_G(spieler).R49BoyAni ? 1 : 0, -1);
|
||||
det->start_detail(_G(spieler).R49BoyAni ? 1 : 0, 1, ANI_VOR);
|
||||
uhr->reset_timer(_G(timer_nr)[0], 0);
|
||||
}
|
||||
|
||||
@@ -119,12 +119,13 @@ void Room49::calc_boy() {
|
||||
stop_person(P_CHEWY);
|
||||
stop_person(P_HOWARD);
|
||||
person_end_phase[P_CHEWY] = P_LEFT;
|
||||
det->stop_detail(_G(spieler).R49BoyAni);
|
||||
det->del_static_ani(_G(spieler).R49BoyAni);
|
||||
det->stop_detail(_G(spieler).R49BoyAni ? 1 : 0);
|
||||
det->del_static_ani(_G(spieler).R49BoyAni ? 1 : 0);
|
||||
det->set_static_ani(2, -1);
|
||||
|
||||
SetUpScreenFunc = nullptr;
|
||||
start_aad_wait(262, -1);
|
||||
SetUpScreenFunc = nullptr;
|
||||
auto_move(3, P_CHEWY);
|
||||
go_auto_xy(374, 79, P_HOWARD, ANI_WAIT);
|
||||
set_person_spr(P_LEFT, P_HOWARD);
|
||||
@@ -139,7 +140,7 @@ void Room49::calc_boy() {
|
||||
start_detail_wait(4, 1, ANI_GO);
|
||||
|
||||
SetUpScreenFunc = setup_func;
|
||||
det->set_static_ani(_G(spieler).R49BoyAni, -1);
|
||||
det->set_static_ani(_G(spieler).R49BoyAni ? 1 : 0, -1);
|
||||
room->set_timer_status(255, TIMER_START);
|
||||
show_cur();
|
||||
}
|
||||
@@ -182,7 +183,7 @@ void Room49::use_boy_cigar() {
|
||||
auto_scroll(164, 0);
|
||||
flic_cut(67, CFO_MODE);
|
||||
test_intro(17);
|
||||
|
||||
|
||||
room->set_timer_status(255, TIMER_STOP);
|
||||
uhr->reset_timer(_G(timer_nr)[0], 0);
|
||||
det->del_static_ani(_G(spieler).R49BoyAni ? 1 : 0);
|
||||
@@ -205,7 +206,7 @@ void Room49::use_boy_cigar() {
|
||||
void Room49::talk_boy() {
|
||||
if (!_G(spieler).R49BoyWeg) {
|
||||
auto_move(3, P_CHEWY);
|
||||
talk_boy(266 + _G(spieler).R49WegFrei);
|
||||
talk_boy(266 + (_G(spieler).R49WegFrei ? 1 : 0));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -213,16 +214,16 @@ void Room49::talk_boy(int16 aad_nr) {
|
||||
if (!_G(spieler).R49BoyWeg) {
|
||||
room->set_timer_status(255, TIMER_STOP);
|
||||
uhr->reset_timer(_G(timer_nr)[0], 0);
|
||||
det->stop_detail(_G(spieler).R49BoyAni);
|
||||
det->stop_detail(_G(spieler).R49BoyAni ? 1 : 0);
|
||||
|
||||
det->set_static_ani(_G(spieler).R49BoyAni, -1);
|
||||
det->set_static_ani(_G(spieler).R49BoyAni ? 1 : 0, -1);
|
||||
det->set_static_ani(2, -1);
|
||||
SetUpScreenFunc = nullptr;
|
||||
stop_person(P_HOWARD);
|
||||
start_aad_wait(aad_nr, -1);
|
||||
SetUpScreenFunc = setup_func;
|
||||
det->del_static_ani(2);
|
||||
det->set_static_ani(_G(spieler).R49BoyAni, -1);
|
||||
det->set_static_ani(_G(spieler).R49BoyAni ? 1 : 0, -1);
|
||||
room->set_timer_status(255, TIMER_START);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user