From 62b75b99908f9cf1ea60bd4dfa415395e80d5c78 Mon Sep 17 00:00:00 2001 From: Peter Kohaut Date: Sun, 25 Feb 2018 19:31:52 +0100 Subject: 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 --- engines/bladerunner/items.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'engines/bladerunner/items.cpp') 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; } -- cgit v1.2.3