mirror of
https://github.com/scummvm/scummvm.git
synced 2026-06-20 05:45:29 +00:00
CHEWY: Implement Room 75 + partial implementation of Room 70
This commit is contained in:
@@ -35,5 +35,50 @@ void Room70::entry(int16 eib_nr) {
|
||||
void Room70::xit(int16 eib_nr) {
|
||||
}
|
||||
|
||||
void Room70::setup_func() {
|
||||
calc_person_look();
|
||||
|
||||
const int posX = spieler_vector[P_CHEWY].Xypos[0];
|
||||
|
||||
int howDestX, nicDestX;
|
||||
if (posX > 40) {
|
||||
howDestX = 52;
|
||||
nicDestX = 100;
|
||||
} else if (posX < 230) {
|
||||
howDestX = 83;
|
||||
nicDestX = 163;
|
||||
} else if (posX < 445) {
|
||||
howDestX = 261;
|
||||
nicDestX = 329;
|
||||
} else {
|
||||
howDestX = 493;
|
||||
nicDestX = 543;
|
||||
}
|
||||
|
||||
go_auto_xy(howDestX, 111, P_HOWARD, P_RIGHT);
|
||||
go_auto_xy(nicDestX, 110, P_NICHELLE, P_RIGHT);
|
||||
}
|
||||
|
||||
void Room70::proc1() {
|
||||
_G(cur_hide_flag) = 0;
|
||||
hide_cur();
|
||||
set_person_pos(236, 110, P_CHEWY, P_RIGHT);
|
||||
set_person_pos(263, 85, P_NICHELLE, P_RIGHT);
|
||||
set_person_pos(285, 78, P_HOWARD, P_RIGHT);
|
||||
go_auto_xy(266, 113, P_HOWARD, ANI_VOR);
|
||||
show_cur();
|
||||
}
|
||||
|
||||
void Room70::proc2() {
|
||||
set_person_pos(31, 118, P_CHEWY, P_RIGHT);
|
||||
set_person_pos(71, 104, P_NICHELLE, P_RIGHT);
|
||||
set_person_pos(6, 111, P_HOWARD, P_RIGHT);
|
||||
}
|
||||
|
||||
void Room70::proc3() {
|
||||
set_person_pos(587, 114, P_CHEWY, P_LEFT);
|
||||
set_person_pos(613, 103, P_NICHELLE, P_LEFT);
|
||||
set_person_pos(561, 112, P_HOWARD, P_LEFT);
|
||||
}
|
||||
} // namespace Rooms
|
||||
} // namespace Chewy
|
||||
|
||||
@@ -29,6 +29,10 @@ class Room70 {
|
||||
public:
|
||||
static void entry(int16 eib_nr);
|
||||
static void xit(int16 eib_nr);
|
||||
static void setup_func();
|
||||
static void proc1();
|
||||
static void proc2();
|
||||
static void proc3();
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
|
||||
@@ -22,17 +22,75 @@
|
||||
#include "chewy/defines.h"
|
||||
#include "chewy/events.h"
|
||||
#include "chewy/global.h"
|
||||
#include "chewy/ani_dat.h"
|
||||
#include "chewy/room.h"
|
||||
#include "chewy/rooms/room75.h"
|
||||
#include "chewy/rooms/room70.h"
|
||||
|
||||
namespace Chewy {
|
||||
namespace Rooms {
|
||||
|
||||
void Room75::entry(int16 eib_nr) {
|
||||
det->enable_sound(0, 0);
|
||||
det->play_sound(0, 0);
|
||||
_G(spieler).ScrollxStep = 2;
|
||||
_G(spieler).ZoomXy[P_HOWARD][0] = 70;
|
||||
_G(spieler).ZoomXy[P_HOWARD][1] = 100;
|
||||
_G(spieler).ZoomXy[P_NICHELLE][0] = 70;
|
||||
_G(spieler).ZoomXy[P_NICHELLE][1] = 100;
|
||||
spieler_mi[P_HOWARD].Mode = true;
|
||||
spieler_mi[P_NICHELLE].Mode = true;
|
||||
_G(zoom_horizont) = 110;
|
||||
flags.ZoomMov = true;
|
||||
_G(zoom_mov_fak) = 3;
|
||||
SetUpScreenFunc = Room70::setup_func;
|
||||
|
||||
if (flags.LoadGame)
|
||||
return;
|
||||
|
||||
switch (eib_nr) {
|
||||
case 103:
|
||||
_G(spieler.scrollx = 188);
|
||||
proc1();
|
||||
break;
|
||||
case 104:
|
||||
Room70::proc3();
|
||||
break;
|
||||
case 111:
|
||||
Room70::proc2();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void Room75::xit(int16 eib_nr) {
|
||||
_G(spieler).ScrollxStep = 1;
|
||||
|
||||
if (_G(spieler).PersonRoomNr[P_HOWARD] != 75)
|
||||
return;
|
||||
|
||||
switch (eib_nr) {
|
||||
case 115:
|
||||
_G(spieler).PersonRoomNr[P_HOWARD] = 73;
|
||||
_G(spieler).PersonRoomNr[P_NICHELLE] = 73;
|
||||
break;
|
||||
case 116:
|
||||
case 117:
|
||||
_G(spieler).PersonRoomNr[P_HOWARD] = 70;
|
||||
_G(spieler).PersonRoomNr[P_NICHELLE] = 70;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void Room75::proc1() {
|
||||
_G(cur_hide_flag) = 0;
|
||||
hide_cur();
|
||||
set_person_pos(363, 110, P_CHEWY, P_LEFT);
|
||||
set_person_pos(322, 85, P_NICHELLE, P_RIGHT);
|
||||
set_person_pos(317, 96, P_HOWARD, P_RIGHT);
|
||||
go_auto_xy(318, 110, P_NICHELLE, ANI_VOR);
|
||||
show_cur();
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
|
||||
@@ -29,6 +29,7 @@ class Room75 {
|
||||
public:
|
||||
static void entry(int16 eib_nr);
|
||||
static void xit(int16 eib_nr);
|
||||
static void proc1();
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
|
||||
Reference in New Issue
Block a user