diff options
| author | Miroslav Remák | 2018-08-29 18:24:06 +0200 | 
|---|---|---|
| committer | Ľubomír Remák | 2018-08-29 19:13:55 +0200 | 
| commit | 81789162d3f76ef827eeff7e042ab79206b7b92f (patch) | |
| tree | 895b7f8e6b7b945c32bf6d60108c6bbbdbfd873a /engines/mutationofjb/gamedata.cpp | |
| parent | ad73f65a2023d6b4afd4ddb49e2893104e5e410d (diff) | |
| download | scummvm-rg350-81789162d3f76ef827eeff7e042ab79206b7b92f.tar.gz scummvm-rg350-81789162d3f76ef827eeff7e042ab79206b7b92f.tar.bz2 scummvm-rg350-81789162d3f76ef827eeff7e042ab79206b7b92f.zip  | |
MUTATIONOFJB: Disallow interaction with inactive doors.
Diffstat (limited to 'engines/mutationofjb/gamedata.cpp')
| -rw-r--r-- | engines/mutationofjb/gamedata.cpp | 8 | 
1 files changed, 6 insertions, 2 deletions
diff --git a/engines/mutationofjb/gamedata.cpp b/engines/mutationofjb/gamedata.cpp index 2c1ee5ab52..a669fcffbb 100644 --- a/engines/mutationofjb/gamedata.cpp +++ b/engines/mutationofjb/gamedata.cpp @@ -39,6 +39,10 @@ static bool readString(Common::ReadStream &stream, char *str) {  	return true;  } +bool Door::isActive() { +	return *_name != '\0'; +} +  bool Door::loadFromStream(Common::ReadStream &stream) {  	readString(stream, _name); @@ -183,10 +187,10 @@ uint8 Scene::getNoStatics(bool ignoreNo) const {  	return (!ignoreNo ? MIN(_noStatics, static_cast<uint8>(ARRAYSIZE(_statics))) : ARRAYSIZE(_statics));  } -Door *Scene::findDoor(int16 x, int16 y, int *index) { +Door *Scene::findDoor(int16 x, int16 y, bool activeOnly, int *index) {  	for (int i = 0; i < getNoDoors(); ++i) {  		Door &door = _doors[i]; -		if ((x >= door._x) && (x < door._x + door._width) && (y >= door._y) && (y < door._y + door._height)) { +		if ((!activeOnly || door.isActive()) && (x >= door._x) && (x < door._x + door._width) && (y >= door._y) && (y < door._y + door._height)) {  			if (index) {  				*index = i + 1;  			}  | 
