mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-01 08:23:15 +00:00
CHEWY: Move ged_user_func room code into their Room classes
This commit is contained in:
parent
3e6c3b31f7
commit
8d9060b9c9
@ -173,132 +173,16 @@ void check_ged_action(int16 index) {
|
||||
}
|
||||
|
||||
int16 ged_user_func(int16 idx_nr) {
|
||||
#define GED_FUNC(NUM) case NUM: idx_nr = Room##NUM::gedUserFunc(idx_nr)
|
||||
switch (idx_nr) {
|
||||
case 40:
|
||||
switch (_G(spieler).PersonRoomNr[P_CHEWY]) {
|
||||
case 8:
|
||||
if (_G(spieler).R8GTuer)
|
||||
idx_nr = 0;
|
||||
break;
|
||||
|
||||
case 9:
|
||||
if (!_G(spieler).R9Gitter)
|
||||
idx_nr = 0;
|
||||
break;
|
||||
|
||||
case 16:
|
||||
if (!_G(spieler).R16F5Exit)
|
||||
idx_nr = 0;
|
||||
break;
|
||||
|
||||
case 17:
|
||||
if (_G(spieler).R17Location != 1)
|
||||
idx_nr = 0;
|
||||
break;
|
||||
|
||||
case 21:
|
||||
if (!_G(spieler).R21Laser2Weg)
|
||||
idx_nr = 0;
|
||||
break;
|
||||
|
||||
case 31:
|
||||
if (!_G(spieler).R31KlappeZu)
|
||||
idx_nr = 0;
|
||||
break;
|
||||
|
||||
case 41:
|
||||
if (!_G(spieler).R41LolaOk)
|
||||
idx_nr = 0;
|
||||
break;
|
||||
|
||||
case 52:
|
||||
if (!_G(spieler).R52LichtAn)
|
||||
idx_nr = 2;
|
||||
else
|
||||
idx_nr = 4;
|
||||
break;
|
||||
|
||||
case 71:
|
||||
if (!_G(spieler).flags28_2 || !_G(spieler).flags29_4)
|
||||
idx_nr = 0;
|
||||
else
|
||||
idx_nr = 4;
|
||||
break;
|
||||
|
||||
case 76:
|
||||
return idx_nr;
|
||||
|
||||
case 84:
|
||||
if (!_G(spieler).flags31_1)
|
||||
_G(spieler).flags31_4 = true;
|
||||
break;
|
||||
|
||||
case 86:
|
||||
if (!_G(spieler).flags32_2)
|
||||
idx_nr = 0;
|
||||
break;
|
||||
|
||||
case 94:
|
||||
if (!_G(spieler).flags35_10)
|
||||
idx_nr = 0;
|
||||
break;
|
||||
|
||||
case 97:
|
||||
if (!_G(spieler).flags35_80)
|
||||
idx_nr = 0;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 41:
|
||||
switch (_G(spieler).PersonRoomNr[P_CHEWY]) {
|
||||
case 17:
|
||||
if (_G(spieler).R17Location != 2)
|
||||
idx_nr = 0;
|
||||
break;
|
||||
|
||||
case 21:
|
||||
if (!_G(spieler).R21Laser1Weg) {
|
||||
idx_nr = 0;
|
||||
} else
|
||||
idx_nr = 3;
|
||||
break;
|
||||
|
||||
case 37:
|
||||
if (!_G(spieler).R37Kloppe)
|
||||
idx_nr = 0;
|
||||
break;
|
||||
|
||||
case 52:
|
||||
if (!_G(spieler).R52TuerAuf)
|
||||
idx_nr = 2;
|
||||
else
|
||||
idx_nr = 4;
|
||||
break;
|
||||
|
||||
case 97:
|
||||
if (!_G(spieler).flags36_20)
|
||||
idx_nr = 0;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 42:
|
||||
if (_G(spieler).PersonRoomNr[P_CHEWY] == 97) {
|
||||
if (!_G(spieler).flags37_1)
|
||||
idx_nr = 0;
|
||||
}
|
||||
break;
|
||||
GED_FUNC(40);
|
||||
GED_FUNC(41);
|
||||
GED_FUNC(42);
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
#undef GED_FUNC
|
||||
|
||||
return idx_nr;
|
||||
}
|
||||
|
@ -155,6 +155,87 @@ bool Room40::timer(int16 t_nr, int16 ani_nr) {
|
||||
return false;
|
||||
}
|
||||
|
||||
int16 Room40::gedUserFunc(int16 idx_nr) {
|
||||
switch (_G(spieler).PersonRoomNr[P_CHEWY]) {
|
||||
case 8:
|
||||
if (_G(spieler).R8GTuer)
|
||||
idx_nr = 0;
|
||||
break;
|
||||
|
||||
case 9:
|
||||
if (!_G(spieler).R9Gitter)
|
||||
idx_nr = 0;
|
||||
break;
|
||||
|
||||
case 16:
|
||||
if (!_G(spieler).R16F5Exit)
|
||||
idx_nr = 0;
|
||||
break;
|
||||
|
||||
case 17:
|
||||
if (_G(spieler).R17Location != 1)
|
||||
idx_nr = 0;
|
||||
break;
|
||||
|
||||
case 21:
|
||||
if (!_G(spieler).R21Laser2Weg)
|
||||
idx_nr = 0;
|
||||
break;
|
||||
|
||||
case 31:
|
||||
if (!_G(spieler).R31KlappeZu)
|
||||
idx_nr = 0;
|
||||
break;
|
||||
|
||||
case 41:
|
||||
if (!_G(spieler).R41LolaOk)
|
||||
idx_nr = 0;
|
||||
break;
|
||||
|
||||
case 52:
|
||||
if (!_G(spieler).R52LichtAn)
|
||||
idx_nr = 2;
|
||||
else
|
||||
idx_nr = 4;
|
||||
break;
|
||||
|
||||
case 71:
|
||||
if (!_G(spieler).flags28_2 || !_G(spieler).flags29_4)
|
||||
idx_nr = 0;
|
||||
else
|
||||
idx_nr = 4;
|
||||
break;
|
||||
|
||||
case 76:
|
||||
return idx_nr;
|
||||
|
||||
case 84:
|
||||
if (!_G(spieler).flags31_1)
|
||||
_G(spieler).flags31_4 = true;
|
||||
break;
|
||||
|
||||
case 86:
|
||||
if (!_G(spieler).flags32_2)
|
||||
idx_nr = 0;
|
||||
break;
|
||||
|
||||
case 94:
|
||||
if (!_G(spieler).flags35_10)
|
||||
idx_nr = 0;
|
||||
break;
|
||||
|
||||
case 97:
|
||||
if (!_G(spieler).flags35_80)
|
||||
idx_nr = 0;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return idx_nr;
|
||||
}
|
||||
|
||||
void Room40::move_train(int16 mode) {
|
||||
_G(spieler).R40TrainMove = false;
|
||||
hide_cur();
|
||||
|
@ -36,6 +36,7 @@ public:
|
||||
static void entry(int16 eib_nr);
|
||||
static void xit(int16 eib_nr);
|
||||
static bool timer(int16 t_nr, int16 ani_nr);
|
||||
static int16 gedUserFunc(int16 idx_nr);
|
||||
|
||||
static int16 use_mr_pumpkin();
|
||||
static void talk_police();
|
||||
|
@ -79,6 +79,44 @@ void Room41::xit() {
|
||||
_G(spieler).R41TrainCount--;
|
||||
}
|
||||
|
||||
int16 Room41::gedUserFunc(int16 idx_nr) {
|
||||
switch (_G(spieler).PersonRoomNr[P_CHEWY]) {
|
||||
case 17:
|
||||
if (_G(spieler).R17Location != 2)
|
||||
idx_nr = 0;
|
||||
break;
|
||||
|
||||
case 21:
|
||||
if (!_G(spieler).R21Laser1Weg) {
|
||||
idx_nr = 0;
|
||||
} else
|
||||
idx_nr = 3;
|
||||
break;
|
||||
|
||||
case 37:
|
||||
if (!_G(spieler).R37Kloppe)
|
||||
idx_nr = 0;
|
||||
break;
|
||||
|
||||
case 52:
|
||||
if (!_G(spieler).R52TuerAuf)
|
||||
idx_nr = 2;
|
||||
else
|
||||
idx_nr = 4;
|
||||
break;
|
||||
|
||||
case 97:
|
||||
if (!_G(spieler).flags36_20)
|
||||
idx_nr = 0;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return idx_nr;
|
||||
}
|
||||
|
||||
void Room41::setup_func() {
|
||||
if (_G(spieler).PersonRoomNr[P_HOWARD] == 41) {
|
||||
calc_person_look();
|
||||
|
@ -35,6 +35,8 @@ private:
|
||||
public:
|
||||
static void entry();
|
||||
static void xit();
|
||||
static int16 gedUserFunc(int16 idx_nr);
|
||||
|
||||
static int16 use_brief();
|
||||
static int16 use_lola();
|
||||
static int16 use_kasse();
|
||||
|
@ -67,6 +67,15 @@ void Room42::gedAction(int index) {
|
||||
calc_xit();
|
||||
}
|
||||
|
||||
int16 Room42::gedUserFunc(int16 idx_nr) {
|
||||
if (_G(spieler).PersonRoomNr[P_CHEWY] == 97) {
|
||||
if (!_G(spieler).flags37_1)
|
||||
idx_nr = 0;
|
||||
}
|
||||
|
||||
return idx_nr;
|
||||
}
|
||||
|
||||
void Room42::setup_func() {
|
||||
if (!_G(spieler).R42HoToBeamter)
|
||||
calc_person_look();
|
||||
|
@ -33,6 +33,7 @@ private:
|
||||
public:
|
||||
static void entry();
|
||||
static void gedAction(int index);
|
||||
static int16 gedUserFunc(int16 idx_nr);
|
||||
|
||||
static void talk_beamter();
|
||||
static int16 use_psack();
|
||||
|
Loading…
x
Reference in New Issue
Block a user