mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-06 09:48:39 +00:00
CHEWY: Split episode4.cpp into separate room classes
This commit is contained in:
parent
367e8ae795
commit
19f2d98f6f
@ -26,591 +26,4 @@
|
||||
|
||||
namespace Chewy {
|
||||
|
||||
int16 r68HohesC;
|
||||
|
||||
void r66_entry(int16 eib_nr) {
|
||||
_G(spieler).ScrollxStep = 2;
|
||||
spieler_mi[P_HOWARD].Mode = true;
|
||||
spieler_mi[P_NICHELLE].Mode = true;
|
||||
}
|
||||
|
||||
void r66_exit(int16 eib_nr) {
|
||||
_G(spieler).ScrollxStep = 1;
|
||||
switch (eib_nr) {
|
||||
case 98:
|
||||
_G(spieler).PersonRoomNr[P_HOWARD] = 69;
|
||||
_G(spieler).PersonRoomNr[P_NICHELLE] = 69;
|
||||
break;
|
||||
|
||||
case 99:
|
||||
_G(spieler).PersonRoomNr[P_HOWARD] = 68;
|
||||
_G(spieler).PersonRoomNr[P_NICHELLE] = 68;
|
||||
break;
|
||||
|
||||
case 100:
|
||||
_G(spieler).PersonRoomNr[P_HOWARD] = 67;
|
||||
_G(spieler).PersonRoomNr[P_NICHELLE] = 67;
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void r66_talk1() {
|
||||
}
|
||||
|
||||
void r66_talk2() {
|
||||
}
|
||||
|
||||
void r66_talk3() {
|
||||
}
|
||||
|
||||
void r66_talk4() {
|
||||
}
|
||||
|
||||
int r66_proc2() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int r66_proc7() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
void r67_entry() {
|
||||
_G(spieler).ScrollxStep = 2;
|
||||
SetUpScreenFunc = r67_setup_func;
|
||||
spieler_mi[P_HOWARD].Mode = true;
|
||||
_G(spieler).DiaAMov = 7;
|
||||
if (_G(spieler).R67KommodeAuf)
|
||||
det->show_static_spr(9);
|
||||
if (!_G(spieler).R67PapageiWeg) {
|
||||
_G(timer_nr)[0] = room->set_timer(1, 10);
|
||||
det->set_static_ani(1, -1);
|
||||
} else
|
||||
det->show_static_spr(0);
|
||||
if (!flags.LoadGame) {
|
||||
hide_cur();
|
||||
set_person_pos(102, 132, P_CHEWY, P_RIGHT);
|
||||
set_person_pos(12, 100, P_HOWARD, P_RIGHT);
|
||||
set_person_pos(47, 106, P_NICHELLE, P_RIGHT);
|
||||
go_auto_xy(214, 112, P_NICHELLE, ANI_GO);
|
||||
auto_move(7, P_CHEWY);
|
||||
show_cur();
|
||||
}
|
||||
}
|
||||
|
||||
void r67_exit() {
|
||||
_G(spieler).ScrollxStep = 1;
|
||||
_G(spieler).PersonRoomNr[P_HOWARD] = 66;
|
||||
_G(spieler).PersonRoomNr[P_NICHELLE] = 66;
|
||||
}
|
||||
|
||||
void r67_setup_func() {
|
||||
int16 x, y;
|
||||
calc_person_look();
|
||||
y = 117;
|
||||
if (spieler_vector[P_CHEWY].Xypos[0] > 320) {
|
||||
x = 178;
|
||||
} else {
|
||||
x = 137;
|
||||
}
|
||||
go_auto_xy(x, y, P_HOWARD, ANI_GO);
|
||||
go_auto_xy(214, 112, P_NICHELLE, ANI_GO);
|
||||
}
|
||||
|
||||
int16 r67_use_grammo() {
|
||||
int16 action_flag = false;
|
||||
if (is_cur_inventar(SCHALL_INV)) {
|
||||
hide_cur();
|
||||
action_flag = true;
|
||||
auto_move(6, P_CHEWY);
|
||||
start_spz_wait(CH_LGET_O, 1, ANI_VOR, P_CHEWY);
|
||||
det->start_detail(0, 255, ANI_VOR);
|
||||
start_aad_wait(376, -1);
|
||||
start_spz_wait(CH_LGET_O, 1, ANI_VOR, P_CHEWY);
|
||||
det->stop_detail(0);
|
||||
show_cur();
|
||||
}
|
||||
return action_flag;
|
||||
}
|
||||
|
||||
void r67_look_brief() {
|
||||
hide_cur();
|
||||
auto_move(3, P_CHEWY);
|
||||
start_aad_wait(379, -1);
|
||||
show_cur();
|
||||
}
|
||||
|
||||
int16 r67_use_kommode() {
|
||||
int16 action_flag = false;
|
||||
if (!_G(spieler).inv_cur) {
|
||||
hide_cur();
|
||||
if (!_G(spieler).R67KommodeAuf) {
|
||||
action_flag = true;
|
||||
_G(spieler).R67KommodeAuf = true;
|
||||
auto_move(6, P_CHEWY);
|
||||
start_spz_wait(CH_LGET_O, 1, ANI_VOR, P_CHEWY);
|
||||
det->show_static_spr(9);
|
||||
atds->set_ats_str(400, 1, ATS_DATEI);
|
||||
} else if (!_G(spieler).R67KostuemWeg) {
|
||||
action_flag = true;
|
||||
_G(spieler).R67KostuemWeg = true;
|
||||
auto_move(6, P_CHEWY);
|
||||
start_spz_wait(CH_LGET_O, 1, ANI_VOR, P_CHEWY);
|
||||
atds->set_ats_str(400, 2, ATS_DATEI);
|
||||
new_invent_2_cur(GALA_INV);
|
||||
}
|
||||
show_cur();
|
||||
}
|
||||
return action_flag;
|
||||
}
|
||||
|
||||
void r67_kostuem_aad(int16 aad_nr) {
|
||||
hide_cur();
|
||||
if (_G(spieler).DiaAMov != -1) {
|
||||
auto_move(_G(spieler).DiaAMov, P_CHEWY);
|
||||
}
|
||||
start_aad_wait(aad_nr, -1);
|
||||
show_cur();
|
||||
}
|
||||
|
||||
int16 r67_talk_papagei() {
|
||||
int16 action_flag = false;
|
||||
if (!_G(spieler).R67PapageiWeg) {
|
||||
if (!_G(spieler).inv_cur) {
|
||||
action_flag = true;
|
||||
hide_cur();
|
||||
room->set_timer_status(1, TIMER_STOP);
|
||||
if (menu_item == CUR_HOWARD) {
|
||||
show_cur();
|
||||
|
||||
ssi[2].X = 270 - _G(spieler).scrollx;
|
||||
ssi[2].Y = 10;
|
||||
atds->set_split_win(2, &ssi[2]);
|
||||
start_ads_wait(19);
|
||||
room->set_timer_status(1, TIMER_START);
|
||||
} else if (menu_item == CUR_NICHELLE) {
|
||||
start_aad_wait(380, -1);
|
||||
room->set_timer_status(1, TIMER_START);
|
||||
} else if (menu_item == CUR_TALK) {
|
||||
auto_move(5, P_CHEWY);
|
||||
show_cur();
|
||||
|
||||
ssi[2].X = 270 - _G(spieler).scrollx;
|
||||
ssi[2].Y = 10;
|
||||
atds->set_split_win(2, &ssi[2]);
|
||||
start_ads_wait(18);
|
||||
room->set_timer_status(1, TIMER_START);
|
||||
} else if (menu_item == CUR_USE) {
|
||||
hide_cur();
|
||||
action_flag = true;
|
||||
auto_move(4, P_CHEWY);
|
||||
start_spz_wait(CH_LGET_O, 1, ANI_VOR, P_CHEWY);
|
||||
_G(spieler).R67PapageiWeg = true;
|
||||
det->stop_detail(1);
|
||||
det->del_static_ani(1);
|
||||
det->show_static_spr(0);
|
||||
invent_2_slot(PAPAGEI_INV);
|
||||
show_cur();
|
||||
atds->set_steuer_bit(394, ATS_AKTIV_BIT, ATS_DATEI);
|
||||
}
|
||||
show_cur();
|
||||
}
|
||||
}
|
||||
return action_flag;
|
||||
}
|
||||
|
||||
void r68_entry() {
|
||||
_G(spieler).ScrollxStep = 2;
|
||||
_G(spieler).DiaAMov = 1;
|
||||
SetUpScreenFunc = r68_setup_func;
|
||||
r68HohesC = -1;
|
||||
if (_G(spieler).R68Papagei) {
|
||||
det->show_static_spr(12);
|
||||
det->start_detail(21, 255, ANI_VOR);
|
||||
}
|
||||
if (!_G(spieler).R68DivaWeg) {
|
||||
_G(timer_nr)[0] = room->set_timer(255, 10);
|
||||
det->set_static_ani(18, -1);
|
||||
} else
|
||||
det->hide_static_spr(3);
|
||||
if (!flags.LoadGame) {
|
||||
hide_cur();
|
||||
set_person_pos(524, 51, P_HOWARD, P_LEFT);
|
||||
set_person_pos(550, 54, P_NICHELLE, P_LEFT);
|
||||
auto_move(7, P_CHEWY);
|
||||
show_cur();
|
||||
}
|
||||
}
|
||||
|
||||
void r68_exit() {
|
||||
_G(spieler).ScrollxStep = 1;
|
||||
_G(spieler).PersonRoomNr[P_HOWARD] = 66;
|
||||
_G(spieler).PersonRoomNr[P_NICHELLE] = 66;
|
||||
}
|
||||
|
||||
void r68_setup_func() {
|
||||
int16 ho_x, ho_y;
|
||||
int16 ni_x, ni_y;
|
||||
int16 ch_x;
|
||||
|
||||
switch (r68HohesC) {
|
||||
case 0:
|
||||
if (det->get_ani_status(r68HohesC) == false) {
|
||||
r68HohesC = 1;
|
||||
det->start_detail(r68HohesC, 1, ANI_VOR);
|
||||
}
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if (det->get_ani_status(r68HohesC) == false) {
|
||||
r68HohesC = 2;
|
||||
det->start_detail(r68HohesC, 3, ANI_VOR);
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if (det->get_ani_status(r68HohesC) == false) {
|
||||
r68HohesC = -1;
|
||||
det->stop_detail(18);
|
||||
det->show_static_spr(3);
|
||||
uhr->reset_timer(_G(timer_nr)[0], 0);
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
calc_person_look();
|
||||
ho_x = spieler_vector[P_HOWARD].Xypos[0];
|
||||
ni_x = spieler_vector[P_NICHELLE].Xypos[0];
|
||||
ho_y = 75;
|
||||
ni_y = 75;
|
||||
ch_x = spieler_vector[P_CHEWY].Xypos[0];
|
||||
if (ch_x < 130) {
|
||||
ho_x = 223;
|
||||
ni_x = 260;
|
||||
} else {
|
||||
ho_x = 320;
|
||||
ni_x = 350;
|
||||
}
|
||||
go_auto_xy(ho_x, ho_y, P_HOWARD, ANI_GO);
|
||||
go_auto_xy(ni_x, ni_y, P_NICHELLE, ANI_GO);
|
||||
}
|
||||
|
||||
void r68_look_kaktus() {
|
||||
hide_cur();
|
||||
auto_move(6, P_CHEWY);
|
||||
start_aad_wait(383, -1);
|
||||
show_cur();
|
||||
}
|
||||
|
||||
void r68_talk_indigo() {
|
||||
r68_talk_indigo(-1);
|
||||
}
|
||||
|
||||
void r68_talk_indigo(int16 aad_nr) {
|
||||
hide_cur();
|
||||
auto_move(3, P_CHEWY);
|
||||
room->set_timer_status(8, TIMER_STOP);
|
||||
det->del_static_ani(8);
|
||||
if (aad_nr == -1) {
|
||||
det->set_static_ani(9, -1);
|
||||
start_aad_wait(384 + (int16)_G(spieler).R68IndigoDia, -1);
|
||||
_G(spieler).R68IndigoDia ^= 1;
|
||||
det->del_static_ani(9);
|
||||
} else {
|
||||
det->set_static_ani(12, -1);
|
||||
start_aad_wait(aad_nr, -1);
|
||||
det->del_static_ani(12);
|
||||
}
|
||||
room->set_timer_status(8, TIMER_START);
|
||||
det->set_static_ani(8, -1);
|
||||
show_cur();
|
||||
}
|
||||
|
||||
int16 r68_use_indigo() {
|
||||
int16 action_flag = false;
|
||||
hide_cur();
|
||||
if (is_cur_inventar(CLINT_500_INV)) {
|
||||
action_flag = true;
|
||||
if (_G(spieler).R68Lied) {
|
||||
hide_cur();
|
||||
auto_move(3, P_CHEWY);
|
||||
auto_scroll(78, 0);
|
||||
del_inventar(_G(spieler).AkInvent);
|
||||
r68_talk_indigo(394);
|
||||
_G(cur_hide_flag) = false;
|
||||
hide_cur();
|
||||
room->set_timer_status(8, TIMER_STOP);
|
||||
det->del_static_ani(8);
|
||||
det->stop_detail(8);
|
||||
start_detail_wait(13, 3, ANI_VOR);
|
||||
start_detail_wait(25, 1, ANI_VOR);
|
||||
det->set_static_ani(12, -1);
|
||||
r68_talk_indigo(398);
|
||||
room->set_timer_status(8, TIMER_STOP);
|
||||
det->del_static_ani(8);
|
||||
det->stop_detail(8);
|
||||
start_detail_wait(26, 1, ANI_VOR);
|
||||
room->set_timer_status(8, TIMER_START);
|
||||
det->set_static_ani(8, -1);
|
||||
new_invent_2_cur(KARTE_INV);
|
||||
_G(spieler).R68KarteDa = true;
|
||||
} else {
|
||||
r68_talk_indigo(397);
|
||||
}
|
||||
} else if (is_cur_inventar(CLINT_1500_INV) || is_cur_inventar(CLINT_3000_INV)) {
|
||||
action_flag = true;
|
||||
start_aad_wait(393, -1);
|
||||
}
|
||||
show_cur();
|
||||
return action_flag;
|
||||
}
|
||||
|
||||
void r68_talk_keeper() {
|
||||
hide_cur();
|
||||
auto_move(2, P_CHEWY);
|
||||
room->set_timer_status(20, TIMER_STOP);
|
||||
det->del_static_ani(20);
|
||||
start_detail_wait(15, 1, ANI_VOR);
|
||||
det->set_static_ani(16, -1);
|
||||
show_cur();
|
||||
ssi[3].X = spieler_vector[P_CHEWY].Xypos[0] - _G(spieler).scrollx + spieler_mi[P_CHEWY].HotX;;
|
||||
ssi[3].Y = spieler_vector[P_CHEWY].Xypos[1] - _G(spieler).scrolly;
|
||||
atds->set_split_win(3, &ssi[3]);
|
||||
start_ads_wait(20);
|
||||
_G(cur_hide_flag) = false;
|
||||
hide_cur();
|
||||
det->del_static_ani(16);
|
||||
start_detail_wait(15, 1, ANI_RUECK);
|
||||
room->set_timer_status(20, TIMER_START);
|
||||
det->set_static_ani(20, -1);
|
||||
show_cur();
|
||||
}
|
||||
|
||||
int16 r68_use_papagei() {
|
||||
int16 action_flag = false;
|
||||
if (is_cur_inventar(PAPAGEI_INV)) {
|
||||
hide_cur();
|
||||
action_flag = true;
|
||||
_G(spieler).R68Papagei = true;
|
||||
del_inventar(_G(spieler).AkInvent);
|
||||
auto_move(5, P_CHEWY);
|
||||
start_spz_wait(CH_LGET_O, 1, ANI_VOR, P_CHEWY);
|
||||
det->show_static_spr(12);
|
||||
det->start_detail(21, 255, ANI_VOR);
|
||||
atds->del_steuer_bit(408, ATS_AKTIV_BIT, ATS_DATEI);
|
||||
atds->set_ats_str(407, 1, ATS_DATEI);
|
||||
show_cur();
|
||||
}
|
||||
return action_flag;
|
||||
}
|
||||
|
||||
void r68_calc_diva() {
|
||||
if (!_G(spieler).R68DivaWeg) {
|
||||
if (!_G(spieler).R68Papagei) {
|
||||
if (r68HohesC == -1) {
|
||||
r68HohesC = 0;
|
||||
det->hide_static_spr(3);
|
||||
det->start_detail(r68HohesC, 1, ANI_RUECK);
|
||||
det->start_detail(18, 255, ANI_VOR);
|
||||
}
|
||||
} else {
|
||||
if (!_G(spieler).R68Gutschein) {
|
||||
|
||||
if (!is_chewy_busy()) {
|
||||
hide_cur();
|
||||
_G(spieler).R68Gutschein = true;
|
||||
auto_move(4, P_CHEWY);
|
||||
start_aad_wait(386, -1);
|
||||
start_spz_wait(CH_LGET_O, 1, ANI_VOR, P_CHEWY);
|
||||
new_invent_2_cur(BAR_GUT_INV);
|
||||
uhr->reset_timer(_G(timer_nr)[0], 0);
|
||||
show_cur();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int16 r68_use_keeper() {
|
||||
int16 action_flag = false;
|
||||
if (is_cur_inventar(BAR_GUT_INV)) {
|
||||
hide_cur();
|
||||
del_inventar(_G(spieler).AkInvent);
|
||||
action_flag = true;
|
||||
auto_move(2, P_CHEWY);
|
||||
start_spz_wait(CH_LGET_O, 1, ANI_VOR, P_CHEWY);
|
||||
room->set_timer_status(20, TIMER_STOP);
|
||||
det->del_static_ani(20);
|
||||
start_ani_block(3, ablock39);
|
||||
room->set_timer_status(20, TIMER_START);
|
||||
det->set_static_ani(20, -1);
|
||||
new_invent_2_cur(B_MARY_INV);
|
||||
show_cur();
|
||||
}
|
||||
return action_flag;
|
||||
}
|
||||
|
||||
int16 r68_use_diva() {
|
||||
short action_flag = false;
|
||||
hide_cur();
|
||||
if (is_cur_inventar(B_MARY_INV)) {
|
||||
del_inventar(_G(spieler).AkInvent);
|
||||
action_flag = true;
|
||||
auto_move(4, P_CHEWY);
|
||||
start_detail_wait(4, 1, ANI_VOR);
|
||||
_G(spieler).R68Gutschein = false;
|
||||
} else if (is_cur_inventar(B_MARY2_INV)) {
|
||||
del_inventar(_G(spieler).AkInvent);
|
||||
action_flag = true;
|
||||
auto_move(4, P_CHEWY);
|
||||
det->hide_static_spr(3);
|
||||
_G(spieler).R68DivaWeg = true;
|
||||
start_ani_block(2, ablock38);
|
||||
flic_cut(FCUT_083, FLC_MODE);
|
||||
flic_cut(FCUT_083, FLC_MODE);
|
||||
det->del_static_ani(18);
|
||||
start_detail_wait(7, 1, ANI_VOR);
|
||||
atds->set_steuer_bit(407, ATS_AKTIV_BIT, ATS_DATEI);
|
||||
atds->set_steuer_bit(412, ATS_AKTIV_BIT, ATS_DATEI);
|
||||
set_person_spr(P_RIGHT, P_CHEWY);
|
||||
start_aad_wait(402, -1);
|
||||
} else
|
||||
action_flag = r68_use_papagei();
|
||||
show_cur();
|
||||
return action_flag;
|
||||
}
|
||||
|
||||
void r68_kostuem_aad(int16 aad_nr) {
|
||||
hide_cur();
|
||||
if (_G(spieler).DiaAMov != -1) {
|
||||
auto_move(_G(spieler).DiaAMov, P_CHEWY);
|
||||
}
|
||||
start_aad_wait(aad_nr, -1);
|
||||
if (!_G(spieler).R68DivaWeg)
|
||||
start_aad_wait(388, -1);
|
||||
else if (!_G(spieler).R67LiedOk)
|
||||
start_aad_wait(389, -1);
|
||||
else {
|
||||
SetUpScreenFunc = 0;
|
||||
del_inventar(_G(spieler).AkInvent);
|
||||
go_auto_xy(150, -13, P_NICHELLE, ANI_WAIT);
|
||||
_G(spieler).PersonHide[P_NICHELLE] = true;
|
||||
go_auto_xy(161, 59, P_HOWARD, ANI_GO);
|
||||
auto_move(4, P_CHEWY);
|
||||
start_aad_wait(390, -1);
|
||||
start_detail_wait(22, 1, ANI_VOR);
|
||||
_G(spieler).PersonHide[P_HOWARD] = true;
|
||||
det->start_detail(27, 255, ANI_VOR);
|
||||
start_detail_wait(23, 3, ANI_VOR);
|
||||
det->start_detail(24, 255, ANI_VOR);
|
||||
set_person_pos(26, 40, P_NICHELLE, P_RIGHT);
|
||||
start_aad_wait(391, -1);
|
||||
room->set_timer_status(8, TIMER_STOP);
|
||||
det->del_static_ani(8);
|
||||
start_detail_wait(10, 1, ANI_VOR);
|
||||
det->start_detail(11, 255, ANI_VOR);
|
||||
start_aad_wait(396, -1);
|
||||
det->stop_detail(11);
|
||||
det->start_detail(14, 255, ANI_VOR);
|
||||
start_aad_wait(395, -1);
|
||||
det->stop_detail(14);
|
||||
room->set_timer_status(8, TIMER_START);
|
||||
_G(spieler).PersonHide[P_HOWARD] = false;
|
||||
det->stop_detail(27);
|
||||
det->set_static_ani(8, -1);
|
||||
start_aad_wait(392, -1);
|
||||
_G(spieler).R68Lied = true;
|
||||
det->stop_detail(24);
|
||||
SetUpScreenFunc = r68_setup_func;
|
||||
auto_move(1, P_CHEWY);
|
||||
_G(spieler).PersonHide[P_NICHELLE] = false;
|
||||
set_person_pos(150, -13, P_NICHELLE, P_RIGHT);
|
||||
}
|
||||
show_cur();
|
||||
}
|
||||
|
||||
void r68_talk_papagei() {
|
||||
hide_cur();
|
||||
auto_move(5, P_CHEWY);
|
||||
show_cur();
|
||||
|
||||
ssi[2].X = 60;
|
||||
ssi[2].Y = 80;
|
||||
atds->set_split_win(2, &ssi[2]);
|
||||
start_ads_wait(18);
|
||||
}
|
||||
|
||||
void r69_entry(int16 eib_nr) {
|
||||
_G(spieler).ScrollxStep = 2;
|
||||
_G(spieler).ZoomXy[P_HOWARD][0] = 46;
|
||||
_G(spieler).ZoomXy[P_HOWARD][1] = 90;
|
||||
_G(spieler).ZoomXy[P_NICHELLE][0] = 46;
|
||||
_G(spieler).ZoomXy[P_NICHELLE][1] = 90;
|
||||
_G(zoom_horizont) = 110;
|
||||
flags.ZoomMov = true;
|
||||
_G(zoom_mov_fak) = 3;
|
||||
SetUpScreenFunc = r69_setup_func;
|
||||
_G(spieler).DiaAMov = 2;
|
||||
if (!flags.LoadGame) {
|
||||
hide_cur();
|
||||
set_person_pos(295, 118, P_CHEWY, P_RIGHT);
|
||||
set_person_pos(237, 101, P_NICHELLE, P_RIGHT);
|
||||
set_person_pos(347, 119, P_HOWARD, P_RIGHT);
|
||||
go_auto_xy(351, 97, P_HOWARD, ANI_WAIT);
|
||||
show_cur();
|
||||
}
|
||||
}
|
||||
|
||||
void r69_exit(int16 eib_nr) {
|
||||
_G(spieler).ScrollxStep = 1;
|
||||
switch (eib_nr) {
|
||||
case 97:
|
||||
_G(spieler).PersonRoomNr[P_HOWARD] = 66;
|
||||
_G(spieler).PersonRoomNr[P_NICHELLE] = 66;
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void r69_setup_func() {
|
||||
calc_person_look();
|
||||
}
|
||||
|
||||
void r69_look_schild() {
|
||||
hide_cur();
|
||||
auto_move(1, P_CHEWY);
|
||||
start_aad_wait(382, -1);
|
||||
show_cur();
|
||||
}
|
||||
|
||||
int16 r69_use_bruecke() {
|
||||
int16 action_flag = false;
|
||||
if (!_G(spieler).inv_cur) {
|
||||
hide_cur();
|
||||
action_flag = true;
|
||||
|
||||
if (!_G(spieler).R68KarteDa) {
|
||||
calc_person_dia(P_HOWARD);
|
||||
} else {
|
||||
auto_move(3, P_CHEWY);
|
||||
spieler_mi[P_CHEWY].Mode = true;
|
||||
go_auto_xy(253, 103, P_CHEWY, ANI_WAIT);
|
||||
go_auto_xy(141, 103, P_CHEWY, ANI_WAIT);
|
||||
go_auto_xy(82, 95, P_CHEWY, ANI_WAIT);
|
||||
go_auto_xy(46, 83, P_CHEWY, ANI_WAIT);
|
||||
go_auto_xy(255, 84, P_NICHELLE, ANI_WAIT);
|
||||
go_auto_xy(258, 86, P_HOWARD, ANI_GO);
|
||||
go_auto_xy(147, 84, P_NICHELLE, ANI_WAIT);
|
||||
go_auto_xy(140, 86, P_HOWARD, ANI_GO);
|
||||
go_auto_xy(94, 77, P_NICHELLE, ANI_WAIT);
|
||||
go_auto_xy(94, 82, P_HOWARD, ANI_GO);
|
||||
go_auto_xy(59, 68, P_NICHELLE, ANI_WAIT);
|
||||
spieler_mi[P_CHEWY].Mode = false;
|
||||
switch_room(66);
|
||||
}
|
||||
show_cur();
|
||||
}
|
||||
return action_flag;
|
||||
}
|
||||
|
||||
} // namespace Chewy
|
||||
|
@ -24,69 +24,6 @@
|
||||
|
||||
namespace Chewy {
|
||||
|
||||
void switch_room(int16 nr);
|
||||
|
||||
void r66_entry(int16 eib_nr);
|
||||
void r66_exit(int16 eib_nr);
|
||||
void r66_talk1();
|
||||
void r66_talk2();
|
||||
void r66_talk3();
|
||||
void r66_talk4();
|
||||
int r66_proc2();
|
||||
int r66_proc7();
|
||||
|
||||
void r67_entry();
|
||||
|
||||
void r67_exit();
|
||||
|
||||
void r67_setup_func();
|
||||
|
||||
int16 r67_use_grammo();
|
||||
|
||||
void r67_look_brief();
|
||||
|
||||
int16 r67_use_kommode();
|
||||
|
||||
void r67_kostuem_aad(int16 aad_nr);
|
||||
|
||||
int16 r67_talk_papagei();
|
||||
|
||||
void r68_entry();
|
||||
|
||||
void r68_exit();
|
||||
void r68_setup_func();
|
||||
|
||||
void r68_look_kaktus();
|
||||
|
||||
void r68_talk_indigo();
|
||||
|
||||
void r68_talk_indigo(int16 aad_nr);
|
||||
|
||||
int16 r68_use_indigo();
|
||||
|
||||
void r68_talk_keeper();
|
||||
|
||||
int16 r68_use_papagei();
|
||||
|
||||
void r68_calc_diva();
|
||||
|
||||
int16 r68_use_keeper();
|
||||
|
||||
int16 r68_use_diva();
|
||||
|
||||
void r68_kostuem_aad(int16 aad_nr);
|
||||
|
||||
void r68_talk_papagei();
|
||||
|
||||
void r69_entry(int16 eib_nr);
|
||||
|
||||
void r69_exit(int16 eib_nr);
|
||||
void r69_setup_func();
|
||||
|
||||
void r69_look_schild();
|
||||
|
||||
int16 r69_use_bruecke();
|
||||
|
||||
} // namespace Chewy
|
||||
|
||||
#endif
|
||||
|
@ -109,6 +109,7 @@ public:
|
||||
int16 _r65tmp_ch_y = 0;
|
||||
int16 _r65tmp_ho_x = 0;
|
||||
int16 _r65tmp_ho_y = 0;
|
||||
int16 _r68HohesC = 0;
|
||||
};
|
||||
|
||||
extern Globals *g_globals;
|
||||
|
@ -29,22 +29,14 @@
|
||||
namespace Chewy {
|
||||
|
||||
static const int16 INVENTORY_HOTSPOTS[INVENTORY_HOTSPOTS_COUNT][4] = {
|
||||
|
||||
{WIN_INF_X + 6, WIN_INF_Y + 10, WIN_INF_X + 6 + 30, WIN_INF_Y + 10 + 14},
|
||||
|
||||
{WIN_INF_X + 6 + 32, WIN_INF_Y + 10, WIN_INF_X + 6 + 62, WIN_INF_Y + 10 + 14},
|
||||
|
||||
{ -1, -1, -1, -1},
|
||||
|
||||
{WIN_INF_X + 198, WIN_INF_Y + 10, WIN_INF_X + 198 + 30, WIN_INF_Y + 10 + 14},
|
||||
|
||||
{WIN_INF_X + 198 + 40, WIN_INF_Y + 10, WIN_INF_X + 198 + 70, WIN_INF_Y + 10 + 14},
|
||||
|
||||
{WIN_INF_X + 6, WIN_INF_Y + 4 + 26, WIN_INF_X + 268, WIN_INF_Y + 4 + 26 + 90},
|
||||
|
||||
{WIN_INF_X + 242, WIN_INF_Y + 136, WIN_INF_X + 292, WIN_INF_Y + 136 + 14},
|
||||
|
||||
{WIN_INF_X + 242, WIN_INF_Y + 156, WIN_INF_X + 292, WIN_INF_Y + 156 + 14},
|
||||
{WIN_INF_X + 242, WIN_INF_Y + 156, WIN_INF_X + 292, WIN_INF_Y + 156 + 14}
|
||||
};
|
||||
|
||||
char m_flip = 0;
|
||||
|
@ -110,7 +110,11 @@ MODULE_OBJS = \
|
||||
rooms/room62.o \
|
||||
rooms/room63.o \
|
||||
rooms/room64.o \
|
||||
rooms/room65.o
|
||||
rooms/room65.o \
|
||||
rooms/room66.o \
|
||||
rooms/room67.o \
|
||||
rooms/room68.o \
|
||||
rooms/room69.o
|
||||
|
||||
# This module can be built as a plugin
|
||||
ifeq ($(ENABLE_CHEWY), DYNAMIC_PLUGIN)
|
||||
|
@ -200,7 +200,7 @@ void timer_action(int16 t_nr) {
|
||||
|
||||
case 68:
|
||||
if (t_nr == _G(timer_nr)[0])
|
||||
r68_calc_diva();
|
||||
Room68::calc_diva();
|
||||
else
|
||||
default_flag = true;
|
||||
break;
|
||||
@ -693,11 +693,11 @@ void enter_room(int16 eib_nr) {
|
||||
ENTRY(63);
|
||||
ENTRY(64);
|
||||
ENTRY(65);
|
||||
ENTRY_NR(66);
|
||||
ENTRY(67);
|
||||
ENTRY(68);
|
||||
ENTRY_NR(69);
|
||||
|
||||
case 66: r66_entry(eib_nr); break;
|
||||
case 67: r67_entry(); break;
|
||||
case 68: r68_entry(); break;
|
||||
case 69: r69_entry(eib_nr); break;
|
||||
case 70: r70_entry(); break;
|
||||
case 71: r71_entry(); break;
|
||||
case 72: r72_entry(); break;
|
||||
@ -1024,10 +1024,10 @@ void exit_room(int16 eib_nr) {
|
||||
case 50: Room50::xit(eib_nr); break;
|
||||
case 51: Room51::xit(eib_nr); break;
|
||||
case 55: Room55::xit(eib_nr); break;
|
||||
case 66: r66_exit(eib_nr); break;
|
||||
case 67: r67_exit(); break;
|
||||
case 68: r68_exit(); break;
|
||||
case 69: r69_exit(eib_nr); break;
|
||||
case 66: Room66::xit(eib_nr); break;
|
||||
case 67: Room67::xit(); break;
|
||||
case 68: Room68::xit(); break;
|
||||
case 69: Room69::xit(eib_nr); break;
|
||||
case 70: r70_exit(eib_nr); break;
|
||||
case 71: r71_exit(eib_nr); break;
|
||||
case 72: r72_exit(eib_nr); break;
|
||||
|
@ -81,6 +81,10 @@
|
||||
#include "chewy/rooms/room63.h"
|
||||
#include "chewy/rooms/room64.h"
|
||||
#include "chewy/rooms/room65.h"
|
||||
#include "chewy/rooms/room66.h"
|
||||
#include "chewy/rooms/room67.h"
|
||||
#include "chewy/rooms/room68.h"
|
||||
#include "chewy/rooms/room69.h"
|
||||
|
||||
// TODO: Remove one room classes implemented and split up
|
||||
#include "chewy/episode1.h"
|
||||
@ -150,6 +154,10 @@ using Chewy::Rooms::Room62;
|
||||
using Chewy::Rooms::Room63;
|
||||
using Chewy::Rooms::Room64;
|
||||
using Chewy::Rooms::Room65;
|
||||
using Chewy::Rooms::Room66;
|
||||
using Chewy::Rooms::Room67;
|
||||
using Chewy::Rooms::Room68;
|
||||
using Chewy::Rooms::Room69;
|
||||
|
||||
} // namespace Chewy
|
||||
|
||||
|
@ -111,11 +111,11 @@ int16 ats_action(int16 txt_nr, int16 txt_mode, int16 mode) {
|
||||
break;
|
||||
|
||||
case 402:
|
||||
r69_look_schild();
|
||||
Room69::look_schild();
|
||||
break;
|
||||
|
||||
case 416:
|
||||
r68_look_kaktus();
|
||||
Room68::look_kaktus();
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -567,40 +567,40 @@ int16 ats_action(int16 txt_nr, int16 txt_mode, int16 mode) {
|
||||
break;
|
||||
|
||||
case 394:
|
||||
action_ret = r67_talk_papagei();
|
||||
action_ret = Room67::talk_papagei();
|
||||
break;
|
||||
|
||||
case 399:
|
||||
action_ret = r67_use_grammo();
|
||||
action_ret = Room67::use_grammo();
|
||||
break;
|
||||
|
||||
case 400:
|
||||
action_ret = r67_use_kommode();
|
||||
action_ret = Room67::use_kommode();
|
||||
break;
|
||||
|
||||
case 403:
|
||||
case 405:
|
||||
action_ret = r69_use_bruecke();
|
||||
action_ret = Room69::use_bruecke();
|
||||
break;
|
||||
|
||||
case 406:
|
||||
action_ret = r68_use_papagei();
|
||||
action_ret = Room68::use_papagei();
|
||||
break;
|
||||
|
||||
case 407:
|
||||
action_ret = r68_use_diva();
|
||||
action_ret = Room68::use_diva();
|
||||
break;
|
||||
|
||||
case 410:
|
||||
action_ret = r68_use_keeper();
|
||||
action_ret = Room68::use_keeper();
|
||||
break;
|
||||
|
||||
case 414:
|
||||
action_ret = r68_use_indigo();
|
||||
action_ret = Room68::use_indigo();
|
||||
break;
|
||||
|
||||
case 425:
|
||||
action_ret = r66_proc7();
|
||||
action_ret = Room66::proc7();
|
||||
break;
|
||||
|
||||
case 430:
|
||||
@ -803,7 +803,7 @@ int16 ats_action(int16 txt_nr, int16 txt_mode, int16 mode) {
|
||||
|
||||
case 403:
|
||||
case 405:
|
||||
action_ret = r69_use_bruecke();
|
||||
action_ret = Room69::use_bruecke();
|
||||
break;
|
||||
|
||||
case 487:
|
||||
@ -932,35 +932,35 @@ int16 ats_action(int16 txt_nr, int16 txt_mode, int16 mode) {
|
||||
break;
|
||||
|
||||
case 394:
|
||||
action_ret = r67_talk_papagei();
|
||||
action_ret = Room67::talk_papagei();
|
||||
break;
|
||||
|
||||
case 408:
|
||||
r68_talk_papagei();
|
||||
Room68::talk_papagei();
|
||||
break;
|
||||
|
||||
case 410:
|
||||
r68_talk_keeper();
|
||||
Room68::talk_keeper();
|
||||
break;
|
||||
|
||||
case 414:
|
||||
r68_talk_indigo();
|
||||
Room68::talk_indigo();
|
||||
break;
|
||||
|
||||
case 419:
|
||||
r66_talk1();
|
||||
Room66::talk1();
|
||||
break;
|
||||
|
||||
case 420:
|
||||
r66_talk2();
|
||||
Room66::talk2();
|
||||
break;
|
||||
|
||||
case 421:
|
||||
r66_talk3();
|
||||
Room66::talk3();
|
||||
break;
|
||||
|
||||
case 425:
|
||||
r66_talk4();
|
||||
Room66::talk4();
|
||||
break;
|
||||
|
||||
case 447:
|
||||
@ -1027,7 +1027,7 @@ int16 ats_action(int16 txt_nr, int16 txt_mode, int16 mode) {
|
||||
break;
|
||||
|
||||
case 389:
|
||||
r67_look_brief();
|
||||
Room67::look_brief();
|
||||
break;
|
||||
|
||||
case 391:
|
||||
@ -1077,7 +1077,7 @@ int16 ats_action(int16 txt_nr, int16 txt_mode, int16 mode) {
|
||||
break;
|
||||
|
||||
case 423:
|
||||
action_ret = r66_proc2();
|
||||
action_ret = Room66::proc2();
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -1699,7 +1699,6 @@ void atds_string_start(int16 dia_nr, int16 str_nr, int16 person_nr, int16 mode)
|
||||
case R63_GIRL_DIA:
|
||||
case R67_PAPA1_DIA:
|
||||
case R67_PAPA2_DIA:
|
||||
|
||||
switch (person_nr) {
|
||||
case 2:
|
||||
switch (_G(spieler).PersonRoomNr[P_CHEWY]) {
|
||||
@ -2409,7 +2408,7 @@ int16 calc_person_click(int16 p_nr) {
|
||||
switch (_G(spieler).AkInvent) {
|
||||
case GALA_INV:
|
||||
if (_G(spieler).PersonRoomNr[P_CHEWY] == 67) {
|
||||
r67_kostuem_aad(378);
|
||||
Room67::kostuem_aad(378);
|
||||
action_ret = true;
|
||||
}
|
||||
break;
|
||||
@ -2424,10 +2423,10 @@ int16 calc_person_click(int16 p_nr) {
|
||||
switch (_G(spieler).AkInvent) {
|
||||
case GALA_INV:
|
||||
if (_G(spieler).PersonRoomNr[P_CHEWY] == 67) {
|
||||
r67_kostuem_aad(377);
|
||||
Room67::kostuem_aad(377);
|
||||
action_ret = true;
|
||||
} else if (_G(spieler).PersonRoomNr[P_CHEWY] == 68) {
|
||||
r68_kostuem_aad(387);
|
||||
Room68::kostuem_aad(387);
|
||||
action_ret = true;
|
||||
}
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user