CHEWY: Small modification in the logic of Room 46, review logic of rooms 47 to 49

This commit is contained in:
Strangerke
2022-03-03 18:36:00 -08:00
committed by Paul Gilbert
parent 04193434d9
commit 23f70c6c7f
4 changed files with 31 additions and 22 deletions
+2 -4
View File
@@ -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) {
+14 -2
View File
@@ -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;
+4 -6
View File
@@ -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);
}
+11 -10
View File
@@ -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);
}
}