CHEWY: Revert Move ged_user_func room code into their Room classes

This reverts commit 7727b6ed38a10073698ac1edc8194ccc2e7f3532.

I mistakenly equated index numbers with room numbers
This commit is contained in:
Paul Gilbert 2022-01-28 21:37:13 -08:00
parent a65bfeb8d3
commit d3f734a00c
7 changed files with 121 additions and 138 deletions

View File

@ -172,16 +172,132 @@ 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) {
GED_FUNC(40);
GED_FUNC(41);
GED_FUNC(42);
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;
default:
break;
}
#undef GED_FUNC
return idx_nr;
}

View File

@ -155,87 +155,6 @@ 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();

View File

@ -36,7 +36,6 @@ 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();

View File

@ -79,44 +79,6 @@ 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();

View File

@ -35,8 +35,6 @@ 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();

View File

@ -71,15 +71,6 @@ void Room42::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();

View File

@ -33,13 +33,11 @@ private:
public:
static void entry();
static void xit();
static int16 gedUserFunc(int16 idx_nr);
static void talk_beamter();
static int16 use_psack();
static int16 use_beamter();
static void dia_beamter(int16 str_end_nr);
static void calc_xit();
};
} // namespace Rooms