diff options
| -rw-r--r-- | engines/mads/screen.cpp | 4 | ||||
| -rw-r--r-- | engines/mads/screen.h | 2 | ||||
| -rw-r--r-- | engines/mads/user_interface.cpp | 4 | 
3 files changed, 7 insertions, 3 deletions
| diff --git a/engines/mads/screen.cpp b/engines/mads/screen.cpp index 5076bbb099..c06ff2b7b7 100644 --- a/engines/mads/screen.cpp +++ b/engines/mads/screen.cpp @@ -265,7 +265,7 @@ ScreenObjects::ScreenObjects(MADSEngine *vm) : _vm(vm) {  	_baseTime = 0;  } -void ScreenObjects::add(const Common::Rect &bounds, ScreenMode mode, ScrCategory category, int descId) { +ScreenObject *ScreenObjects::add(const Common::Rect &bounds, ScreenMode mode, ScrCategory category, int descId) {  	ScreenObject so;  	so._bounds = bounds;  	so._category = category; @@ -274,6 +274,8 @@ void ScreenObjects::add(const Common::Rect &bounds, ScreenMode mode, ScrCategory  	so._active = true;  	push_back(so); + +	return &(*this)[size()];  }  void ScreenObjects::check(bool scanFlag) { diff --git a/engines/mads/screen.h b/engines/mads/screen.h index e2462aff18..85c55419ca 100644 --- a/engines/mads/screen.h +++ b/engines/mads/screen.h @@ -167,7 +167,7 @@ public:  	/**  	* Add a new item to the list  	*/ -	void add(const Common::Rect &bounds, ScreenMode mode, ScrCategory category, int descId); +	ScreenObject *add(const Common::Rect &bounds, ScreenMode mode, ScrCategory category, int descId);  	/**  	 * Check objects on the screen diff --git a/engines/mads/user_interface.cpp b/engines/mads/user_interface.cpp index bcd409889e..0363ae5ef9 100644 --- a/engines/mads/user_interface.cpp +++ b/engines/mads/user_interface.cpp @@ -732,7 +732,9 @@ void UserInterface::loadElements() {  		_categoryIndexes[CAT_HOTSPOT - 1] = _vm->_game->_screenObjects.size() + 1;  		for (int hotspotIdx = scene._hotspots.size() - 1; hotspotIdx >= 0; --hotspotIdx) {  			Hotspot &hs = scene._hotspots[hotspotIdx]; -			_vm->_game->_screenObjects.add(hs._bounds, SCREENMODE_VGA, CAT_HOTSPOT, hotspotIdx); +			ScreenObject *so = _vm->_game->_screenObjects.add(hs._bounds, SCREENMODE_VGA,  +				CAT_HOTSPOT, hotspotIdx); +			so->_active = hs._active;  		}  	} | 
