diff options
| author | Peter Kohaut | 2019-03-09 21:03:43 +0100 | 
|---|---|---|
| committer | Peter Kohaut | 2019-03-09 22:16:38 +0100 | 
| commit | acb51d0e724a256e32959f805f0583d9000351f4 (patch) | |
| tree | 1c5b0e5a5b92731c0b6f758d70142e25e3ebcb55 /engines/bladerunner/ui | |
| parent | 09dbe7686b171a25106a0037abed608b886c9b71 (diff) | |
| download | scummvm-rg350-acb51d0e724a256e32959f805f0583d9000351f4.tar.gz scummvm-rg350-acb51d0e724a256e32959f805f0583d9000351f4.tar.bz2 scummvm-rg350-acb51d0e724a256e32959f805f0583d9000351f4.zip  | |
BLADERUNNER: Savagame names fixes
It was not possible to change the name of exisitng savegame
Saves were read too ofter just for over-drawing the thumbnail
Diffstat (limited to 'engines/bladerunner/ui')
| -rw-r--r-- | engines/bladerunner/ui/kia_section_load.cpp | 8 | ||||
| -rw-r--r-- | engines/bladerunner/ui/kia_section_load.h | 1 | ||||
| -rw-r--r-- | engines/bladerunner/ui/kia_section_save.cpp | 10 | ||||
| -rw-r--r-- | engines/bladerunner/ui/kia_section_save.h | 1 | 
4 files changed, 15 insertions, 5 deletions
diff --git a/engines/bladerunner/ui/kia_section_load.cpp b/engines/bladerunner/ui/kia_section_load.cpp index 4d91fb51b0..5f8b635320 100644 --- a/engines/bladerunner/ui/kia_section_load.cpp +++ b/engines/bladerunner/ui/kia_section_load.cpp @@ -47,6 +47,7 @@ KIASectionLoad::KIASectionLoad(BladeRunnerEngine *vm) : KIASectionBase(vm) {  	_timeLeft = 0;  	_hoveredLineId = -1; +	_displayingLineId = -1;  	_newGameEasyLineId = -1;  	_newGameMediumLineId = -1;  	_newGameHardLineId = -1; @@ -102,23 +103,25 @@ void KIASectionLoad::draw(Graphics::Surface &surface){  	int selectedLineId = _scrollBox->getSelectedLineData();  	if (_hoveredLineId != selectedLineId) { -		if (selectedLineId >= 0 && selectedLineId < (int)_saveList.size()) { +		if (selectedLineId >= 0 && selectedLineId < (int)_saveList.size() && _displayingLineId != selectedLineId) {  			if (_timeLeft == 0) {  				SaveStateDescriptor desc = SaveFileManager::queryMetaInfos(_vm->getTargetName(), selectedLineId);  				const Graphics::Surface *thumbnail = desc.getThumbnail();  				if (thumbnail != nullptr) {  					_vm->_kia->playImage(*thumbnail); +					_displayingLineId = selectedLineId;  				}  			}  		} else {  			_vm->_kia->playerReset();  			_timeLeft = 800; +			_displayingLineId = -1;  		}  		_hoveredLineId = selectedLineId;  	}  	uint32 now = _vm->_time->currentSystem(); -	if (selectedLineId >= 0 && selectedLineId < (int)_saveList.size()) { +	if (selectedLineId >= 0 && selectedLineId < (int)_saveList.size() && _displayingLineId != selectedLineId) {  		if (_timeLeft) {  			uint32 timeDiff = now - _timeLast;  			if (timeDiff >= _timeLeft) { @@ -126,6 +129,7 @@ void KIASectionLoad::draw(Graphics::Surface &surface){  				const Graphics::Surface *thumbnail = desc.getThumbnail();  				if (thumbnail != nullptr) {  					_vm->_kia->playImage(*thumbnail); +					_displayingLineId = selectedLineId;  				}  			} else {  				_timeLeft -= timeDiff; diff --git a/engines/bladerunner/ui/kia_section_load.h b/engines/bladerunner/ui/kia_section_load.h index 820b39f5e6..cd34d9946e 100644 --- a/engines/bladerunner/ui/kia_section_load.h +++ b/engines/bladerunner/ui/kia_section_load.h @@ -49,6 +49,7 @@ class KIASectionLoad : public KIASectionBase {  	SaveStateList _saveList;  	int           _hoveredLineId; +	int           _displayingLineId;  	int           _newGameEasyLineId;  	int           _newGameMediumLineId;  	int           _newGameHardLineId; diff --git a/engines/bladerunner/ui/kia_section_save.cpp b/engines/bladerunner/ui/kia_section_save.cpp index f72254bafd..f24d0e01ab 100644 --- a/engines/bladerunner/ui/kia_section_save.cpp +++ b/engines/bladerunner/ui/kia_section_save.cpp @@ -62,8 +62,9 @@ KIASectionSave::KIASectionSave(BladeRunnerEngine *vm) : KIASectionBase(vm) {  	_mouseX = 0;  	_mouseY = 0; -	_selectedLineId = -1;  	_hoveredLineId = -1; +	_displayingLineId = -1; +	_selectedLineId = -1;  	_newSaveLineId = -1;  } @@ -182,23 +183,25 @@ void KIASectionSave::draw(Graphics::Surface &surface){  	int selectedLineId = _scrollBox->getSelectedLineData();  	if (selectedLineId != _hoveredLineId) { -		if (selectedLineId >= 0 && selectedLineId < (int)_saveList.size()) { +		if (selectedLineId >= 0 && selectedLineId < (int)_saveList.size() && _displayingLineId != selectedLineId) {  			if (_timeLeft == 0) {  				SaveStateDescriptor desc = SaveFileManager::queryMetaInfos(_vm->getTargetName(), selectedLineId);  				const Graphics::Surface *thumbnail = desc.getThumbnail();  				if (thumbnail != nullptr) {  					_vm->_kia->playImage(*thumbnail); +					_displayingLineId = selectedLineId;  				}  			}  		} else {  			_vm->_kia->playerReset();  			_timeLeft = 800; +			_displayingLineId = -1;  		}  		_hoveredLineId = selectedLineId;  	}  	uint32 now = _vm->_time->currentSystem(); -	if (selectedLineId >= 0 && selectedLineId < (int)_saveList.size()) { +	if (selectedLineId >= 0 && selectedLineId < (int)_saveList.size() && _displayingLineId != selectedLineId) {  		if (_timeLeft) {  			uint32 timeDiff = now - _timeLast;  			if (timeDiff >= _timeLeft) { @@ -206,6 +209,7 @@ void KIASectionSave::draw(Graphics::Surface &surface){  				const Graphics::Surface *thumbnail = desc.getThumbnail();  				if (thumbnail != nullptr) {  					_vm->_kia->playImage(*thumbnail); +					_displayingLineId = selectedLineId;  				}  			} else {  				_timeLeft -= timeDiff; diff --git a/engines/bladerunner/ui/kia_section_save.h b/engines/bladerunner/ui/kia_section_save.h index d3af65288e..528771684d 100644 --- a/engines/bladerunner/ui/kia_section_save.h +++ b/engines/bladerunner/ui/kia_section_save.h @@ -64,6 +64,7 @@ class KIASectionSave : public KIASectionBase {  	int           _mouseY;  	int           _hoveredLineId; +	int           _displayingLineId;  	int           _selectedLineId;  	int           _newSaveLineId;  | 
