diff options
author | Peter Kohaut | 2018-02-25 19:31:52 +0100 |
---|---|---|
committer | Peter Kohaut | 2018-02-25 22:38:52 +0100 |
commit | 62b75b99908f9cf1ea60bd4dfa415395e80d5c78 (patch) | |
tree | 91f2b2b058252ea4c7d7fe8e8e4a7d71850d7099 /engines/bladerunner/items.cpp | |
parent | 842c67fc34fdc1ff932c8cf70c768e6ad8157038 (diff) | |
download | scummvm-rg350-62b75b99908f9cf1ea60bd4dfa415395e80d5c78.tar.gz scummvm-rg350-62b75b99908f9cf1ea60bd4dfa415395e80d5c78.tar.bz2 scummvm-rg350-62b75b99908f9cf1ea60bd4dfa415395e80d5c78.zip |
BLADERUNNER: Added Generic Walker actors
Fixed isseue of duplicating items in world
Fixed fog issue with incorrect rendering in special occasions
Added basic debugger console
Refactored looping code for better readability
Diffstat (limited to 'engines/bladerunner/items.cpp')
-rw-r--r-- | engines/bladerunner/items.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/engines/bladerunner/items.cpp b/engines/bladerunner/items.cpp index 6360d4a3e8..9d9efd6a38 100644 --- a/engines/bladerunner/items.cpp +++ b/engines/bladerunner/items.cpp @@ -74,11 +74,11 @@ bool Items::addToWorld(int itemId, int animationId, int setId, Vector3 position, int itemIndex = findItem(itemId); if (itemIndex == -1) { itemIndex = _items.size(); + _items.push_back(new Item(_vm)); } - Item *item = new Item(_vm); + Item *item = _items[itemIndex]; item->setup(itemId, setId, animationId, position, facing, height, width, isTargetFlag, isVisible, isPoliceMazeEnemy); - _items.push_back(item); if (addToSetFlag && setId == _vm->_scene->getSetId()) { return _vm->_sceneObjects->addItem(itemId + kSceneObjectOffsetItems, &item->_boundingBox, &item->_screenRectangle, isTargetFlag, isVisible); @@ -87,12 +87,12 @@ bool Items::addToWorld(int itemId, int animationId, int setId, Vector3 position, } bool Items::addToSet(int setId) { - int itemCount = _vm->_items->_items.size(); + int itemCount = _items.size(); if (itemCount == 0) { return true; } for (int i = 0; i < itemCount; i++) { - Item *item = _vm->_items->_items[i]; + Item *item = _items[i]; if (item->_setId == setId) { _vm->_sceneObjects->addItem(item->_itemId + kSceneObjectOffsetItems, &item->_boundingBox, &item->_screenRectangle, item->isTarget(), item->_isVisible); } @@ -112,7 +112,9 @@ bool Items::remove(int itemId) { if (_items[itemIndex]->_setId == _vm->_scene->getSetId()) { _vm->_sceneObjects->remove(itemId + kSceneObjectOffsetItems); } - _items.remove_at(itemIndex); + + delete _items.remove_at(itemIndex); + return true; } |