diff options
| author | Paul Gilbert | 2015-06-28 20:10:02 -0400 | 
|---|---|---|
| committer | Paul Gilbert | 2015-06-28 20:10:02 -0400 | 
| commit | a041aec839911793bc34a74f6e88fd37fe8adf3c (patch) | |
| tree | 7b0cf988c7fb495ac66eaa57d0e9c657c9618922 /engines/sherlock/scalpel/scalpel_inventory.cpp | |
| parent | 144aa6483b23e422d458af3a12bed1af6e5e0b33 (diff) | |
| download | scummvm-rg350-a041aec839911793bc34a74f6e88fd37fe8adf3c.tar.gz scummvm-rg350-a041aec839911793bc34a74f6e88fd37fe8adf3c.tar.bz2 scummvm-rg350-a041aec839911793bc34a74f6e88fd37fe8adf3c.zip | |
SHERLOCK: RT: Inventory window now partially showing
Diffstat (limited to 'engines/sherlock/scalpel/scalpel_inventory.cpp')
| -rw-r--r-- | engines/sherlock/scalpel/scalpel_inventory.cpp | 30 | 
1 files changed, 27 insertions, 3 deletions
| diff --git a/engines/sherlock/scalpel/scalpel_inventory.cpp b/engines/sherlock/scalpel/scalpel_inventory.cpp index 95ca67336a..11f2b33eac 100644 --- a/engines/sherlock/scalpel/scalpel_inventory.cpp +++ b/engines/sherlock/scalpel/scalpel_inventory.cpp @@ -30,7 +30,8 @@ namespace Sherlock {  namespace Scalpel { -ScalpelInventory::ScalpelInventory(SherlockEngine *vm) : Inventory(vm), _invIndex(0) { +ScalpelInventory::ScalpelInventory(SherlockEngine *vm) : Inventory(vm) { +	_invShapes.resize(6);  }  ScalpelInventory::~ScalpelInventory() { @@ -216,7 +217,7 @@ void ScalpelInventory::putInv(InvSlamMode slamIt) {  	// If an inventory item has disappeared (due to using it or giving it),  	// a blank space slot may have appeared. If so, adjust the inventory -	if (_invIndex > 0 && _invIndex > (_holdings - 6)) { +	if (_invIndex > 0 && _invIndex > (_holdings - (int)_invShapes.size())) {  		--_invIndex;  		freeGraphics();  		loadGraphics(); @@ -232,7 +233,7 @@ void ScalpelInventory::putInv(InvSlamMode slamIt) {  	}  	// Iterate through displaying up to 6 objects at a time -	for (int idx = _invIndex; idx < _holdings && (idx - _invIndex) < MAX_VISIBLE_INVENTORY; ++idx) { +	for (int idx = _invIndex; idx < _holdings && (idx - _invIndex) < (int)_invShapes.size(); ++idx) {  		int itemNum = idx - _invIndex;  		Surface &bb = slamIt == SLAM_SECONDARY_BUFFER ? screen._backBuffer2 : screen._backBuffer1;  		Common::Rect r(8 + itemNum * 52, 165, 51 + itemNum * 52, 194); @@ -267,6 +268,29 @@ void ScalpelInventory::putInv(InvSlamMode slamIt) {  	}  } +void ScalpelInventory::loadInv() { +	// Exit if the inventory names are already loaded +	if (_names.size() > 0) +		return; + +	// Load the inventory names +	Common::SeekableReadStream *stream = _vm->_res->load("invent.txt"); + +	int streamSize = stream->size(); +	while (stream->pos() < streamSize) { +		Common::String name; +		char c; +		while ((c = stream->readByte()) != 0) +			name += c; + +		_names.push_back(name); +	} + +	delete stream; + +	loadGraphics(); +} +  } // End of namespace Scalpel  } // End of namespace Sherlock | 
