aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEinar Johan Trøan Sømåen2012-07-26 19:41:18 +0200
committerEinar Johan Trøan Sømåen2012-07-26 19:41:18 +0200
commit4eda234611bd77f053defe9e61d592b308270eaa (patch)
treecb0a437641b74b60b325ac9ccaa9b63dacab897d
parenteb22e36d5e12b64442ce23c656227483dd9cf61e (diff)
downloadscummvm-rg350-4eda234611bd77f053defe9e61d592b308270eaa.tar.gz
scummvm-rg350-4eda234611bd77f053defe9e61d592b308270eaa.tar.bz2
scummvm-rg350-4eda234611bd77f053defe9e61d592b308270eaa.zip
WINTERMUTE: Replace BaseArray with a templated subclass of Common::Array.
This needs additional cleanup, but compiles and runs at this point.
-rw-r--r--engines/wintermute/ad/ad_actor.cpp10
-rw-r--r--engines/wintermute/ad/ad_actor.h6
-rw-r--r--engines/wintermute/ad/ad_game.cpp46
-rw-r--r--engines/wintermute/ad/ad_game.h18
-rw-r--r--engines/wintermute/ad/ad_inventory.cpp10
-rw-r--r--engines/wintermute/ad/ad_inventory.h2
-rw-r--r--engines/wintermute/ad/ad_layer.cpp6
-rw-r--r--engines/wintermute/ad/ad_layer.h2
-rw-r--r--engines/wintermute/ad/ad_object.cpp12
-rw-r--r--engines/wintermute/ad/ad_object.h4
-rw-r--r--engines/wintermute/ad/ad_path.cpp2
-rw-r--r--engines/wintermute/ad/ad_path.h2
-rw-r--r--engines/wintermute/ad/ad_region.cpp2
-rw-r--r--engines/wintermute/ad/ad_response_box.cpp14
-rw-r--r--engines/wintermute/ad/ad_response_box.h6
-rw-r--r--engines/wintermute/ad/ad_scene.cpp36
-rw-r--r--engines/wintermute/ad/ad_scene.h16
-rw-r--r--engines/wintermute/ad/ad_scene_state.cpp2
-rw-r--r--engines/wintermute/ad/ad_scene_state.h2
-rw-r--r--engines/wintermute/ad/ad_talk_def.cpp2
-rw-r--r--engines/wintermute/ad/ad_talk_def.h2
-rw-r--r--engines/wintermute/ad/ad_talk_holder.cpp12
-rw-r--r--engines/wintermute/ad/ad_talk_holder.h4
-rw-r--r--engines/wintermute/ad/ad_waypoint_group.cpp2
-rw-r--r--engines/wintermute/ad/ad_waypoint_group.h2
-rw-r--r--engines/wintermute/base/base_frame.cpp12
-rw-r--r--engines/wintermute/base/base_frame.h4
-rw-r--r--engines/wintermute/base/base_game.cpp20
-rw-r--r--engines/wintermute/base/base_game.h8
-rw-r--r--engines/wintermute/base/base_region.cpp8
-rw-r--r--engines/wintermute/base/base_region.h2
-rw-r--r--engines/wintermute/base/base_script_holder.cpp4
-rw-r--r--engines/wintermute/base/base_script_holder.h2
-rw-r--r--engines/wintermute/base/base_sprite.cpp6
-rw-r--r--engines/wintermute/base/base_sprite.h2
-rw-r--r--engines/wintermute/base/font/base_font_storage.cpp4
-rw-r--r--engines/wintermute/base/font/base_font_storage.h2
-rw-r--r--engines/wintermute/base/font/base_font_truetype.cpp2
-rw-r--r--engines/wintermute/base/font/base_font_truetype.h2
-rw-r--r--engines/wintermute/base/particles/part_emitter.cpp12
-rw-r--r--engines/wintermute/base/particles/part_emitter.h6
-rw-r--r--engines/wintermute/base/scriptables/script.h2
-rw-r--r--engines/wintermute/base/scriptables/script_engine.cpp16
-rw-r--r--engines/wintermute/base/scriptables/script_engine.h8
-rw-r--r--engines/wintermute/base/scriptables/script_stack.cpp8
-rw-r--r--engines/wintermute/base/scriptables/script_stack.h2
-rw-r--r--engines/wintermute/coll_templ.h373
-rw-r--r--engines/wintermute/ui/ui_object.cpp10
-rw-r--r--engines/wintermute/ui/ui_window.cpp6
-rw-r--r--engines/wintermute/ui/ui_window.h4
-rw-r--r--engines/wintermute/video/video_player.cpp2
51 files changed, 234 insertions, 515 deletions
diff --git a/engines/wintermute/ad/ad_actor.cpp b/engines/wintermute/ad/ad_actor.cpp
index d1e03eac3a..fb46cef9cf 100644
--- a/engines/wintermute/ad/ad_actor.cpp
+++ b/engines/wintermute/ad/ad_actor.cpp
@@ -101,18 +101,18 @@ AdActor::~AdActor() {
for (int i = 0; i < _talkSprites.getSize(); i++) {
delete _talkSprites[i];
}
- _talkSprites.removeAll();
+ _talkSprites.clear();
for (int i = 0; i < _talkSpritesEx.getSize(); i++) {
delete _talkSpritesEx[i];
}
- _talkSpritesEx.removeAll();
+ _talkSpritesEx.clear();
for (int i = 0; i < _anims.getSize(); i++) {
delete _anims[i];
_anims[i] = NULL;
}
- _anims.removeAll();
+ _anims.clear();
}
@@ -1051,7 +1051,7 @@ bool AdActor::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
delete _anims[i];
_anims[i] = NULL;
- _anims.removeAt(i);
+ _anims.remove_at(i);
i--;
Found = true;
}
@@ -1254,7 +1254,7 @@ BaseSprite *AdActor::getTalkStance(const char *stance) {
// not - get a random talk
if (!ret) {
- BaseArray<AdSpriteSet *, AdSpriteSet *> talkAnims;
+ BaseArray<AdSpriteSet *> talkAnims;
for (int i = 0; i < _anims.getSize(); i++) {
if (_talkAnimName.compareToIgnoreCase(_anims[i]->getName()) == 0) {
talkAnims.add(_anims[i]);
diff --git a/engines/wintermute/ad/ad_actor.h b/engines/wintermute/ad/ad_actor.h
index 5da014bcda..0c6334ac9d 100644
--- a/engines/wintermute/ad/ad_actor.h
+++ b/engines/wintermute/ad/ad_actor.h
@@ -69,8 +69,8 @@ private:
AdSpriteSet *_standSprite;
AdSpriteSet *_turnLeftSprite;
AdSpriteSet *_turnRightSprite;
- BaseArray<AdSpriteSet *, AdSpriteSet *> _talkSprites;
- BaseArray<AdSpriteSet *, AdSpriteSet *> _talkSpritesEx;
+ BaseArray<AdSpriteSet *> _talkSprites;
+ BaseArray<AdSpriteSet *> _talkSpritesEx;
TDirection _dir;
// new anim system
Common::String _talkAnimName;
@@ -78,7 +78,7 @@ private:
Common::String _walkAnimName;
Common::String _turnLeftAnimName;
Common::String _turnRightAnimName;
- BaseArray<AdSpriteSet *, AdSpriteSet *> _anims;
+ BaseArray<AdSpriteSet *> _anims;
virtual bool playAnim(const char *filename);
AdSpriteSet *getAnimByName(const Common::String &animName);
diff --git a/engines/wintermute/ad/ad_game.cpp b/engines/wintermute/ad/ad_game.cpp
index a6452e8837..4533496199 100644
--- a/engines/wintermute/ad/ad_game.cpp
+++ b/engines/wintermute/ad/ad_game.cpp
@@ -124,18 +124,18 @@ bool AdGame::cleanup() {
unregisterObject(_objects[i]);
_objects[i] = NULL;
}
- _objects.removeAll();
+ _objects.clear();
for (i = 0; i < _dlgPendingBranches.getSize(); i++) {
delete[] _dlgPendingBranches[i];
}
- _dlgPendingBranches.removeAll();
+ _dlgPendingBranches.clear();
for (i = 0; i < _speechDirs.getSize(); i++) {
delete[] _speechDirs[i];
}
- _speechDirs.removeAll();
+ _speechDirs.clear();
unregisterObject(_scene);
@@ -145,7 +145,7 @@ bool AdGame::cleanup() {
for (i = 0; i < _items.getSize(); i++) {
_gameRef->unregisterObject(_items[i]);
}
- _items.removeAll();
+ _items.clear();
// clear remaining inventories
@@ -155,7 +155,7 @@ bool AdGame::cleanup() {
for (i = 0; i < _inventories.getSize(); i++) {
delete _inventories[i];
}
- _inventories.removeAll();
+ _inventories.clear();
if (_responseBox) {
@@ -186,17 +186,17 @@ bool AdGame::cleanup() {
for (i = 0; i < _sceneStates.getSize(); i++) {
delete _sceneStates[i];
}
- _sceneStates.removeAll();
+ _sceneStates.clear();
for (i = 0; i < _responsesBranch.getSize(); i++) {
delete _responsesBranch[i];
}
- _responsesBranch.removeAll();
+ _responsesBranch.clear();
for (i = 0; i < _responsesGame.getSize(); i++) {
delete _responsesGame[i];
}
- _responsesGame.removeAll();
+ _responsesGame.clear();
return BaseGame::cleanup();
}
@@ -223,7 +223,7 @@ bool AdGame::initLoop() {
res = _scene->initLoop();
}
- _sentences.removeAll();
+ _sentences.clear();
return res;
}
@@ -248,7 +248,7 @@ bool AdGame::removeObject(AdObject *object) {
for (int i = 0; i < _objects.getSize(); i++) {
if (_objects[i] == object) {
- _objects.removeAt(i);
+ _objects.remove_at(i);
break;
}
}
@@ -1744,7 +1744,7 @@ bool AdGame::endDlgBranch(const char *branchName, const char *scriptName, const
delete[] _dlgPendingBranches[i];
_dlgPendingBranches[i] = NULL;
}
- _dlgPendingBranches.removeAt(startIndex, _dlgPendingBranches.getSize() - startIndex);
+ _dlgPendingBranches.remove_at(startIndex, _dlgPendingBranches.getSize() - startIndex);
}
// dialogue is over, forget selected responses
@@ -1752,7 +1752,7 @@ bool AdGame::endDlgBranch(const char *branchName, const char *scriptName, const
for (int i = 0; i < _responsesBranch.getSize(); i++) {
delete _responsesBranch[i];
}
- _responsesBranch.removeAll();
+ _responsesBranch.clear();
}
if (deleteName) {
@@ -1768,7 +1768,7 @@ bool AdGame::clearBranchResponses(char *name) {
for (int i = 0; i < _responsesBranch.getSize(); i++) {
if (scumm_stricmp(name, _responsesBranch[i]->_context) == 0) {
delete _responsesBranch[i];
- _responsesBranch.removeAt(i);
+ _responsesBranch.remove_at(i);
i--;
}
}
@@ -1839,7 +1839,7 @@ bool AdGame::resetResponse(int id) {
if (_responsesGame[i]->_id == id) {
if ((context == NULL && _responsesGame[i]->_context == NULL) || scumm_stricmp(context, _responsesGame[i]->_context) == 0) {
delete _responsesGame[i];
- _responsesGame.removeAt(i);
+ _responsesGame.remove_at(i);
break;
}
}
@@ -1849,7 +1849,7 @@ bool AdGame::resetResponse(int id) {
if (_responsesBranch[i]->_id == id) {
if ((context == NULL && _responsesBranch[i]->_context == NULL) || scumm_stricmp(context, _responsesBranch[i]->_context) == 0) {
delete _responsesBranch[i];
- _responsesBranch.removeAt(i);
+ _responsesBranch.remove_at(i);
break;
}
}
@@ -1962,7 +1962,7 @@ bool AdGame::unregisterInventory(AdInventory *inv) {
for (int i = 0; i < _inventories.getSize(); i++) {
if (_inventories[i] == inv) {
unregisterObject(_inventories[i]);
- _inventories.removeAt(i);
+ _inventories.remove_at(i);
return STATUS_OK;
}
}
@@ -2007,31 +2007,31 @@ bool AdGame::resetContent() {
for (int i = 0; i < _dlgPendingBranches.getSize(); i++) {
delete[] _dlgPendingBranches[i];
}
- _dlgPendingBranches.removeAll();
+ _dlgPendingBranches.clear();
// clear inventories
for (int i = 0; i < _inventories.getSize(); i++) {
- _inventories[i]->_takenItems.removeAll();
+ _inventories[i]->_takenItems.clear();
}
// clear scene states
for (int i = 0; i < _sceneStates.getSize(); i++) {
delete _sceneStates[i];
}
- _sceneStates.removeAll();
+ _sceneStates.clear();
// clear once responses
for (int i = 0; i < _responsesBranch.getSize(); i++) {
delete _responsesBranch[i];
}
- _responsesBranch.removeAll();
+ _responsesBranch.clear();
// clear once game responses
for (int i = 0; i < _responsesGame.getSize(); i++) {
delete _responsesGame[i];
}
- _responsesGame.removeAll();
+ _responsesGame.clear();
// reload inventory items
if (_itemsFile) {
@@ -2064,7 +2064,7 @@ bool AdGame::deleteItem(AdItem *item) {
for (int i = 0; i < _items.getSize(); i++) {
if (_items[i] == item) {
unregisterObject(_items[i]);
- _items.removeAt(i);
+ _items.remove_at(i);
break;
}
}
@@ -2113,7 +2113,7 @@ bool AdGame::removeSpeechDir(const char *dir) {
for (int i = 0; i < _speechDirs.getSize(); i++) {
if (scumm_stricmp(_speechDirs[i], temp) == 0) {
delete[] _speechDirs[i];
- _speechDirs.removeAt(i);
+ _speechDirs.remove_at(i);
found = true;
break;
}
diff --git a/engines/wintermute/ad/ad_game.h b/engines/wintermute/ad/ad_game.h
index 49c48de0bb..e0179d3e94 100644
--- a/engines/wintermute/ad/ad_game.h
+++ b/engines/wintermute/ad/ad_game.h
@@ -121,7 +121,7 @@ public:
AdGame();
virtual ~AdGame();
- BaseArray<AdObject *, AdObject *> _objects;
+ BaseArray<AdObject *> _objects;
virtual bool loadFile(const char *filename);
virtual bool loadBuffer(byte *buffer, bool complete = true);
@@ -138,7 +138,7 @@ private:
virtual bool ExternalCall(ScScript *script, ScStack *stack, ScStack *thisStack, char *name);
AdObject *_invObject;
- BaseArray<AdInventory *, AdInventory *> _inventories;
+ BaseArray<AdInventory *> _inventories;
char *_scheduledScene;
bool _scheduledFadeIn;
char *_prevSceneName;
@@ -147,16 +147,16 @@ private:
char *_startupScene;
bool _initialScene;
bool _smartItemCursor;
- BaseArray<char *, char *> _speechDirs;
- BaseArray<AdItem *, AdItem *> _items;
+ BaseArray<char *> _speechDirs;
+ BaseArray<AdItem *> _items;
- BaseArray<AdSentence *, AdSentence *> _sentences;
+ BaseArray<AdSentence *> _sentences;
- BaseArray<AdSceneState *, AdSceneState *> _sceneStates;
- BaseArray<char *, char *> _dlgPendingBranches;
+ BaseArray<AdSceneState *> _sceneStates;
+ BaseArray<char *> _dlgPendingBranches;
- BaseArray<AdResponseContext *, AdResponseContext *> _responsesBranch;
- BaseArray<AdResponseContext *, AdResponseContext *> _responsesGame;
+ BaseArray<AdResponseContext *> _responsesBranch;
+ BaseArray<AdResponseContext *> _responsesGame;
AdResponseBox *_responseBox;
AdInventoryBox *_inventoryBox;
diff --git a/engines/wintermute/ad/ad_inventory.cpp b/engines/wintermute/ad/ad_inventory.cpp
index aa6e0b6f0b..6cc5ed879e 100644
--- a/engines/wintermute/ad/ad_inventory.cpp
+++ b/engines/wintermute/ad/ad_inventory.cpp
@@ -44,7 +44,7 @@ AdInventory::AdInventory(BaseGame *inGame): BaseObject(inGame) {
//////////////////////////////////////////////////////////////////////////
AdInventory::~AdInventory() {
- _takenItems.removeAll(); // ref only
+ _takenItems.clear(); // ref only
}
@@ -62,7 +62,7 @@ bool AdInventory::insertItem(const char *name, const char *insertAfter) {
int insertIndex = -1;
for (int i = 0; i < _takenItems.getSize(); i++) {
if (scumm_stricmp(_takenItems[i]->getName(), name) == 0) {
- _takenItems.removeAt(i);
+ _takenItems.remove_at(i);
i--;
continue;
}
@@ -75,7 +75,7 @@ bool AdInventory::insertItem(const char *name, const char *insertAfter) {
if (insertIndex == -1) {
_takenItems.add(item);
} else {
- _takenItems.insertAt(insertIndex, item);
+ _takenItems.insert_at(insertIndex, item);
}
return STATUS_OK;
@@ -93,7 +93,7 @@ bool AdInventory::removeItem(const char *name) {
if (((AdGame *)_gameRef)->_selectedItem == _takenItems[i]) {
((AdGame *)_gameRef)->_selectedItem = NULL;
}
- _takenItems.removeAt(i);
+ _takenItems.remove_at(i);
return STATUS_OK;
}
}
@@ -114,7 +114,7 @@ bool AdInventory::removeItem(AdItem *item) {
if (((AdGame *)_gameRef)->_selectedItem == _takenItems[i]) {
((AdGame *)_gameRef)->_selectedItem = NULL;
}
- _takenItems.removeAt(i);
+ _takenItems.remove_at(i);
return STATUS_OK;
}
}
diff --git a/engines/wintermute/ad/ad_inventory.h b/engines/wintermute/ad/ad_inventory.h
index 6f7537633d..9eff30454c 100644
--- a/engines/wintermute/ad/ad_inventory.h
+++ b/engines/wintermute/ad/ad_inventory.h
@@ -43,7 +43,7 @@ public:
bool insertItem(const char *name, const char *insertAfter = NULL);
AdInventory(BaseGame *inGame);
virtual ~AdInventory();
- BaseArray<AdItem *, AdItem *> _takenItems;
+ BaseArray<AdItem *> _takenItems;
int _scrollOffset;
};
diff --git a/engines/wintermute/ad/ad_layer.cpp b/engines/wintermute/ad/ad_layer.cpp
index 6c9e6381b2..a60cd76209 100644
--- a/engines/wintermute/ad/ad_layer.cpp
+++ b/engines/wintermute/ad/ad_layer.cpp
@@ -56,7 +56,7 @@ AdLayer::~AdLayer() {
for (int i = 0; i < _nodes.getSize(); i++) {
delete _nodes[i];
}
- _nodes.removeAll();
+ _nodes.clear();
}
@@ -324,7 +324,7 @@ bool AdLayer::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
index = 0;
}
if (index <= _nodes.getSize() - 1) {
- _nodes.insertAt(index, node);
+ _nodes.insert_at(index, node);
} else {
_nodes.add(node);
}
@@ -363,7 +363,7 @@ bool AdLayer::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
if (_nodes[i] == toDelete) {
delete _nodes[i];
_nodes[i] = NULL;
- _nodes.removeAt(i);
+ _nodes.remove_at(i);
break;
}
}
diff --git a/engines/wintermute/ad/ad_layer.h b/engines/wintermute/ad/ad_layer.h
index b76cbf1d99..6d1686e1a6 100644
--- a/engines/wintermute/ad/ad_layer.h
+++ b/engines/wintermute/ad/ad_layer.h
@@ -41,7 +41,7 @@ public:
bool _main;
AdLayer(BaseGame *inGame);
virtual ~AdLayer();
- BaseArray<AdSceneNode *, AdSceneNode *> _nodes;
+ BaseArray<AdSceneNode *> _nodes;
bool loadFile(const char *filename);
bool loadBuffer(byte *buffer, bool complete = true);
virtual bool saveAsText(BaseDynamicBuffer *buffer, int indent);
diff --git a/engines/wintermute/ad/ad_object.cpp b/engines/wintermute/ad/ad_object.cpp
index c6f0306cbb..cf60bedf2c 100644
--- a/engines/wintermute/ad/ad_object.cpp
+++ b/engines/wintermute/ad/ad_object.cpp
@@ -146,12 +146,12 @@ AdObject::~AdObject() {
for (int i = 0; i < _attachmentsPre.getSize(); i++) {
_gameRef->unregisterObject(_attachmentsPre[i]);
}
- _attachmentsPre.removeAll();
+ _attachmentsPre.clear();
for (int i = 0; i < _attachmentsPost.getSize(); i++) {
_gameRef->unregisterObject(_attachmentsPost[i]);
}
- _attachmentsPost.removeAll();
+ _attachmentsPost.clear();
}
@@ -567,7 +567,7 @@ bool AdObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
if (_attachmentsPre[i] == obj) {
found = true;
_gameRef->unregisterObject(_attachmentsPre[i]);
- _attachmentsPre.removeAt(i);
+ _attachmentsPre.remove_at(i);
i--;
}
}
@@ -575,7 +575,7 @@ bool AdObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
if (_attachmentsPost[i] == obj) {
found = true;
_gameRef->unregisterObject(_attachmentsPost[i]);
- _attachmentsPost.removeAt(i);
+ _attachmentsPost.remove_at(i);
i--;
}
}
@@ -585,7 +585,7 @@ bool AdObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
if (_attachmentsPre[i]->getName() && scumm_stricmp(_attachmentsPre[i]->getName(), attachmentName) == 0) {
found = true;
_gameRef->unregisterObject(_attachmentsPre[i]);
- _attachmentsPre.removeAt(i);
+ _attachmentsPre.remove_at(i);
i--;
}
}
@@ -593,7 +593,7 @@ bool AdObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
if (_attachmentsPost[i]->getName() && scumm_stricmp(_attachmentsPost[i]->getName(), attachmentName) == 0) {
found = true;
_gameRef->unregisterObject(_attachmentsPost[i]);
- _attachmentsPost.removeAt(i);
+ _attachmentsPost.remove_at(i);
i--;
}
}
diff --git a/engines/wintermute/ad/ad_object.h b/engines/wintermute/ad/ad_object.h
index 58cb15fde3..8e4cb80742 100644
--- a/engines/wintermute/ad/ad_object.h
+++ b/engines/wintermute/ad/ad_object.h
@@ -105,8 +105,8 @@ public:
virtual bool scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack, const char *name);
virtual const char *scToString();
- BaseArray<AdObject *, AdObject *> _attachmentsPre;
- BaseArray<AdObject *, AdObject *> _attachmentsPost;
+ BaseArray<AdObject *> _attachmentsPre;
+ BaseArray<AdObject *> _attachmentsPost;
bool updateSpriteAttachments();
bool displaySpriteAttachments(bool preDisplay);
diff --git a/engines/wintermute/ad/ad_path.cpp b/engines/wintermute/ad/ad_path.cpp
index 89be10f0fb..7734b4d9ba 100644
--- a/engines/wintermute/ad/ad_path.cpp
+++ b/engines/wintermute/ad/ad_path.cpp
@@ -52,7 +52,7 @@ void AdPath::reset() {
delete _points[i];
}
- _points.removeAll();
+ _points.clear();
_currIndex = -1;
_ready = false;
}
diff --git a/engines/wintermute/ad/ad_path.h b/engines/wintermute/ad/ad_path.h
index 958f52af03..8622e6757c 100644
--- a/engines/wintermute/ad/ad_path.h
+++ b/engines/wintermute/ad/ad_path.h
@@ -46,7 +46,7 @@ public:
void reset();
AdPath(BaseGame *inGame);
virtual ~AdPath();
- BaseArray <BasePoint *, BasePoint *> _points;
+ BaseArray <BasePoint *> _points;
int _currIndex;
bool _ready;
};
diff --git a/engines/wintermute/ad/ad_region.cpp b/engines/wintermute/ad/ad_region.cpp
index 6b104d51ad..18b5731830 100644
--- a/engines/wintermute/ad/ad_region.cpp
+++ b/engines/wintermute/ad/ad_region.cpp
@@ -131,7 +131,7 @@ bool AdRegion::loadBuffer(byte *buffer, bool complete) {
for (int i = 0; i < _points.getSize(); i++) {
delete _points[i];
}
- _points.removeAll();
+ _points.clear();
int ar = 255, ag = 255, ab = 255, alpha = 255;
diff --git a/engines/wintermute/ad/ad_response_box.cpp b/engines/wintermute/ad/ad_response_box.cpp
index fe37002abb..c566120405 100644
--- a/engines/wintermute/ad/ad_response_box.cpp
+++ b/engines/wintermute/ad/ad_response_box.cpp
@@ -100,7 +100,7 @@ void AdResponseBox::clearResponses() {
for (int i = 0; i < _responses.getSize(); i++) {
delete _responses[i];
}
- _responses.removeAll();
+ _responses.clear();
}
@@ -109,7 +109,7 @@ void AdResponseBox::clearButtons() {
for (int i = 0; i < _respButtons.getSize(); i++) {
delete _respButtons[i];
}
- _respButtons.removeAll();
+ _respButtons.clear();
}
@@ -597,7 +597,7 @@ bool AdResponseBox::weedResponses() {
case RESPONSE_ONCE:
if (adGame->branchResponseUsed(_responses[i]->_iD)) {
delete _responses[i];
- _responses.removeAt(i);
+ _responses.remove_at(i);
i--;
}
break;
@@ -605,7 +605,7 @@ bool AdResponseBox::weedResponses() {
case RESPONSE_ONCE_GAME:
if (adGame->gameResponseUsed(_responses[i]->_iD)) {
delete _responses[i];
- _responses.removeAt(i);
+ _responses.remove_at(i);
i--;
}
break;
@@ -649,7 +649,7 @@ bool AdResponseBox::handleResponse(AdResponse *response) {
//////////////////////////////////////////////////////////////////////////
BaseObject *AdResponseBox::getNextAccessObject(BaseObject *currObject) {
- BaseArray<UIObject *, UIObject *> objects;
+ BaseArray<UIObject *> objects;
getObjects(objects, true);
if (objects.getSize() == 0) {
@@ -673,7 +673,7 @@ BaseObject *AdResponseBox::getNextAccessObject(BaseObject *currObject) {
//////////////////////////////////////////////////////////////////////////
BaseObject *AdResponseBox::getPrevAccessObject(BaseObject *currObject) {
- BaseArray<UIObject *, UIObject *> objects;
+ BaseArray<UIObject *> objects;
getObjects(objects, true);
if (objects.getSize() == 0) {
@@ -696,7 +696,7 @@ BaseObject *AdResponseBox::getPrevAccessObject(BaseObject *currObject) {
}
//////////////////////////////////////////////////////////////////////////
-bool AdResponseBox::getObjects(BaseArray<UIObject *, UIObject *> &objects, bool interactiveOnly) {
+bool AdResponseBox::getObjects(BaseArray<UIObject *> &objects, bool interactiveOnly) {
for (int i = 0; i < _respButtons.getSize(); i++) {
objects.add(_respButtons[i]);
}
diff --git a/engines/wintermute/ad/ad_response_box.h b/engines/wintermute/ad/ad_response_box.h
index 5dc22cbebe..c1f60ba6ae 100644
--- a/engines/wintermute/ad/ad_response_box.h
+++ b/engines/wintermute/ad/ad_response_box.h
@@ -42,7 +42,7 @@ class AdResponseBox : public BaseObject {
public:
BaseObject *getNextAccessObject(BaseObject *CurrObject);
BaseObject *getPrevAccessObject(BaseObject *CurrObject);
- bool getObjects(BaseArray<UIObject *, UIObject *> &objects, bool interactiveOnly);
+ bool getObjects(BaseArray<UIObject *> &objects, bool interactiveOnly);
bool handleResponse(AdResponse *response);
void setLastResponseText(const char *text, const char *textOrig);
@@ -69,8 +69,8 @@ public:
void clearResponses();
AdResponseBox(BaseGame *inGame);
virtual ~AdResponseBox();
- BaseArray<AdResponse *, AdResponse *> _responses;
- BaseArray<UIButton *, UIButton *> _respButtons;
+ BaseArray<AdResponse *> _responses;
+ BaseArray<UIButton *> _respButtons;
UIWindow *_window;
UIWindow *_shieldWindow;
bool _horizontal;
diff --git a/engines/wintermute/ad/ad_scene.cpp b/engines/wintermute/ad/ad_scene.cpp
index 21f28b6247..d863d21140 100644
--- a/engines/wintermute/ad/ad_scene.cpp
+++ b/engines/wintermute/ad/ad_scene.cpp
@@ -151,35 +151,35 @@ void AdScene::cleanup() {
for (i = 0; i < _layers.getSize(); i++) {
_gameRef->unregisterObject(_layers[i]);
}
- _layers.removeAll();
+ _layers.clear();
for (i = 0; i < _waypointGroups.getSize(); i++) {
_gameRef->unregisterObject(_waypointGroups[i]);
}
- _waypointGroups.removeAll();
+ _waypointGroups.clear();
for (i = 0; i < _scaleLevels.getSize(); i++) {
_gameRef->unregisterObject(_scaleLevels[i]);
}
- _scaleLevels.removeAll();
+ _scaleLevels.clear();
for (i = 0; i < _rotLevels.getSize(); i++) {
_gameRef->unregisterObject(_rotLevels[i]);
}
- _rotLevels.removeAll();
+ _rotLevels.clear();
for (i = 0; i < _pfPath.getSize(); i++) {
delete _pfPath[i];
}
- _pfPath.removeAll();
+ _pfPath.clear();
_pfPointsNum = 0;
for (i = 0; i < _objects.getSize(); i++) {
_gameRef->unregisterObject(_objects[i]);
}
- _objects.removeAll();
+ _objects.clear();
delete _viewport;
_viewport = NULL;
@@ -494,7 +494,7 @@ void AdScene::pathFinderStep() {
// target point marked, generate path and terminate
if (lowestPt->x == _pfTarget->x && lowestPt->y == _pfTarget->y) {
while (lowestPt != NULL) {
- _pfTargetPath->_points.insertAt(0, new BasePoint(lowestPt->x, lowestPt->y));
+ _pfTargetPath->_points.insert_at(0, new BasePoint(lowestPt->x, lowestPt->y));
lowestPt = lowestPt->_origin;
}
@@ -1142,7 +1142,7 @@ bool AdScene::updateFreeObjects() {
//////////////////////////////////////////////////////////////////////////
bool AdScene::displayRegionContent(AdRegion *region, bool display3DOnly) {
AdGame *adGame = (AdGame *)_gameRef;
- BaseArray<AdObject *, AdObject *> objects;
+ BaseArray<AdObject *> objects;
AdObject *obj;
// global objects
@@ -1751,7 +1751,7 @@ bool AdScene::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
index = 0;
}
if (index <= _layers.getSize() - 1) {
- _layers.insertAt(index, layer);
+ _layers.insert_at(index, layer);
} else {
_layers.add(layer);
}
@@ -1797,7 +1797,7 @@ bool AdScene::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
for (int i = 0; i < _layers.getSize(); i++) {
if (_layers[i] == toDelete) {
- _layers.removeAt(i);
+ _layers.remove_at(i);
_gameRef->unregisterObject(toDelete);
break;
}
@@ -2101,7 +2101,7 @@ bool AdScene::addObject(AdObject *object) {
bool AdScene::removeObject(AdObject *object) {
for (int i = 0; i < _objects.getSize(); i++) {
if (_objects[i] == object) {
- _objects.removeAt(i);
+ _objects.remove_at(i);
return _gameRef->unregisterObject(object);
}
}
@@ -2849,7 +2849,7 @@ bool AdScene::restoreDeviceObjects() {
//////////////////////////////////////////////////////////////////////////
BaseObject *AdScene::getNextAccessObject(BaseObject *currObject) {
- BaseArray<AdObject *, AdObject *> objects;
+ BaseArray<AdObject *> objects;
getSceneObjects(objects, true);
if (objects.getSize() == 0) {
@@ -2873,7 +2873,7 @@ BaseObject *AdScene::getNextAccessObject(BaseObject *currObject) {
//////////////////////////////////////////////////////////////////////////
BaseObject *AdScene::getPrevAccessObject(BaseObject *currObject) {
- BaseArray<AdObject *, AdObject *> objects;
+ BaseArray<AdObject *> objects;
getSceneObjects(objects, true);
if (objects.getSize() == 0) {
@@ -2897,11 +2897,11 @@ BaseObject *AdScene::getPrevAccessObject(BaseObject *currObject) {
//////////////////////////////////////////////////////////////////////////
-bool AdScene::getSceneObjects(BaseArray<AdObject *, AdObject *> &objects, bool interactiveOnly) {
+bool AdScene::getSceneObjects(BaseArray<AdObject *> &objects, bool interactiveOnly) {
for (int i = 0; i < _layers.getSize(); i++) {
// close-up layer -> remove everything below it
if (interactiveOnly && _layers[i]->_closeUp) {
- objects.removeAll();
+ objects.clear();
}
@@ -2917,7 +2917,7 @@ bool AdScene::getSceneObjects(BaseArray<AdObject *, AdObject *> &objects, bool i
break;
case OBJECT_REGION: {
- BaseArray<AdObject *, AdObject *> regionObj;
+ BaseArray<AdObject *> regionObj;
getRegionObjects(node->_region, regionObj, interactiveOnly);
for (int newIndex = 0; newIndex < regionObj.getSize(); newIndex++) {
bool found = false;
@@ -2942,7 +2942,7 @@ bool AdScene::getSceneObjects(BaseArray<AdObject *, AdObject *> &objects, bool i
}
// objects outside any region
- BaseArray<AdObject *, AdObject *> regionObj;
+ BaseArray<AdObject *> regionObj;
getRegionObjects(NULL, regionObj, interactiveOnly);
for (int newIndex = 0; newIndex < regionObj.getSize(); newIndex++) {
bool found = false;
@@ -2963,7 +2963,7 @@ bool AdScene::getSceneObjects(BaseArray<AdObject *, AdObject *> &objects, bool i
//////////////////////////////////////////////////////////////////////////
-bool AdScene::getRegionObjects(AdRegion *region, BaseArray<AdObject *, AdObject *> &objects, bool interactiveOnly) {
+bool AdScene::getRegionObjects(AdRegion *region, BaseArray<AdObject *> &objects, bool interactiveOnly) {
AdGame *adGame = (AdGame *)_gameRef;
AdObject *obj;
diff --git a/engines/wintermute/ad/ad_scene.h b/engines/wintermute/ad/ad_scene.h
index b1420cc5c2..a4bf666aea 100644
--- a/engines/wintermute/ad/ad_scene.h
+++ b/engines/wintermute/ad/ad_scene.h
@@ -49,8 +49,8 @@ public:
BaseObject *getNextAccessObject(BaseObject *CurrObject);
BaseObject *getPrevAccessObject(BaseObject *CurrObject);
- bool getSceneObjects(BaseArray<AdObject *, AdObject *> &Objects, bool InteractiveOnly);
- bool getRegionObjects(AdRegion *Region, BaseArray<AdObject *, AdObject *> &Objects, bool InteractiveOnly);
+ bool getSceneObjects(BaseArray<AdObject *> &Objects, bool InteractiveOnly);
+ bool getRegionObjects(AdRegion *Region, BaseArray<AdObject *> &Objects, bool InteractiveOnly);
bool afterLoad();
@@ -120,9 +120,9 @@ public:
bool getPath(BasePoint source, BasePoint target, AdPath *path, BaseObject *requester = NULL);
AdScene(BaseGame *inGame);
virtual ~AdScene();
- BaseArray<AdLayer *, AdLayer *> _layers;
- BaseArray<AdObject *, AdObject *> _objects;
- BaseArray<AdWaypointGroup *, AdWaypointGroup *> _waypointGroups;
+ BaseArray<AdLayer *> _layers;
+ BaseArray<AdObject *> _objects;
+ BaseArray<AdWaypointGroup *> _waypointGroups;
bool loadFile(const char *filename);
bool loadBuffer(byte *buffer, bool complete = true);
int _width;
@@ -149,8 +149,8 @@ public:
bool _editorShowDecor;
bool _editorShowEntities;
bool _editorShowScale;
- BaseArray<AdScaleLevel *, AdScaleLevel *> _scaleLevels;
- BaseArray<AdRotLevel *, AdRotLevel *> _rotLevels;
+ BaseArray<AdScaleLevel *> _scaleLevels;
+ BaseArray<AdRotLevel *> _rotLevels;
virtual bool restoreDeviceObjects();
int getPointsDist(BasePoint p1, BasePoint p2, BaseObject *requester = NULL);
@@ -169,7 +169,7 @@ private:
BasePoint *_pfTarget;
AdPath *_pfTargetPath;
BaseObject *_pfRequester;
- BaseArray<AdPathPoint *, AdPathPoint *> _pfPath;
+ BaseArray<AdPathPoint *> _pfPath;
int _offsetTop;
int _offsetLeft;
diff --git a/engines/wintermute/ad/ad_scene_state.cpp b/engines/wintermute/ad/ad_scene_state.cpp
index 8a223150f2..673fb965e9 100644
--- a/engines/wintermute/ad/ad_scene_state.cpp
+++ b/engines/wintermute/ad/ad_scene_state.cpp
@@ -50,7 +50,7 @@ AdSceneState::~AdSceneState() {
for (int i = 0; i < _nodeStates.getSize(); i++) {
delete _nodeStates[i];
}
- _nodeStates.removeAll();
+ _nodeStates.clear();
}
diff --git a/engines/wintermute/ad/ad_scene_state.h b/engines/wintermute/ad/ad_scene_state.h
index 469f985639..8f1bdb8fd2 100644
--- a/engines/wintermute/ad/ad_scene_state.h
+++ b/engines/wintermute/ad/ad_scene_state.h
@@ -43,7 +43,7 @@ public:
AdSceneState(BaseGame *inGame);
virtual ~AdSceneState();
char *_filename;
- BaseArray<AdNodeState *, AdNodeState *> _nodeStates;
+ BaseArray<AdNodeState *> _nodeStates;
};
} // end of namespace WinterMute
diff --git a/engines/wintermute/ad/ad_talk_def.cpp b/engines/wintermute/ad/ad_talk_def.cpp
index fc057ba183..5b88887e0c 100644
--- a/engines/wintermute/ad/ad_talk_def.cpp
+++ b/engines/wintermute/ad/ad_talk_def.cpp
@@ -55,7 +55,7 @@ AdTalkDef::~AdTalkDef() {
for (int i = 0; i < _nodes.getSize(); i++) {
delete _nodes[i];
}
- _nodes.removeAll();
+ _nodes.clear();
delete[] _defaultSpriteFilename;
delete _defaultSprite;
diff --git a/engines/wintermute/ad/ad_talk_def.h b/engines/wintermute/ad/ad_talk_def.h
index fa32a81041..4d28881e97 100644
--- a/engines/wintermute/ad/ad_talk_def.h
+++ b/engines/wintermute/ad/ad_talk_def.h
@@ -47,7 +47,7 @@ public:
virtual ~AdTalkDef();
bool loadFile(const char *filename);
bool loadBuffer(byte *buffer, bool complete = true);
- BaseArray<AdTalkNode *, AdTalkNode *> _nodes;
+ BaseArray<AdTalkNode *> _nodes;
char *_defaultSpriteFilename;
BaseSprite *_defaultSprite;
virtual bool saveAsText(BaseDynamicBuffer *buffer, int indent = 0);
diff --git a/engines/wintermute/ad/ad_talk_holder.cpp b/engines/wintermute/ad/ad_talk_holder.cpp
index 90435d7977..6aca8e01a8 100644
--- a/engines/wintermute/ad/ad_talk_holder.cpp
+++ b/engines/wintermute/ad/ad_talk_holder.cpp
@@ -55,12 +55,12 @@ AdTalkHolder::~AdTalkHolder() {
for (int i = 0; i < _talkSprites.getSize(); i++) {
delete _talkSprites[i];
}
- _talkSprites.removeAll();
+ _talkSprites.clear();
for (int i = 0; i < _talkSpritesEx.getSize(); i++) {
delete _talkSpritesEx[i];
}
- _talkSpritesEx.removeAll();
+ _talkSpritesEx.clear();
}
//////////////////////////////////////////////////////////////////////////
@@ -237,7 +237,7 @@ bool AdTalkHolder::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisS
setTemp2 = true;
}
delete _talkSpritesEx[i];
- _talkSpritesEx.removeAt(i);
+ _talkSpritesEx.remove_at(i);
break;
}
}
@@ -251,7 +251,7 @@ bool AdTalkHolder::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisS
setTemp2 = true;
}
delete _talkSprites[i];
- _talkSprites.removeAt(i);
+ _talkSprites.remove_at(i);
break;
}
}
@@ -297,7 +297,7 @@ bool AdTalkHolder::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisS
}
delete _talkSpritesEx[i];
}
- _talkSpritesEx.removeAll();
+ _talkSpritesEx.clear();
} else {
for (int i = 0; i < _talkSprites.getSize(); i++) {
if (_talkSprites[i] == _currentSprite) {
@@ -308,7 +308,7 @@ bool AdTalkHolder::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisS
}
delete _talkSprites[i];
}
- _talkSprites.removeAll();
+ _talkSprites.clear();
}
// set new
diff --git a/engines/wintermute/ad/ad_talk_holder.h b/engines/wintermute/ad/ad_talk_holder.h
index 8ad8ae1e52..2607fdd9da 100644
--- a/engines/wintermute/ad/ad_talk_holder.h
+++ b/engines/wintermute/ad/ad_talk_holder.h
@@ -39,8 +39,8 @@ public:
virtual BaseSprite *getTalkStance(const char *stance);
virtual bool saveAsText(BaseDynamicBuffer *buffer, int indent);
BaseSprite *_sprite;
- BaseArray<BaseSprite *, BaseSprite *> _talkSprites;
- BaseArray<BaseSprite *, BaseSprite *> _talkSpritesEx;
+ BaseArray<BaseSprite *> _talkSprites;
+ BaseArray<BaseSprite *> _talkSpritesEx;
AdTalkHolder(BaseGame *inGame);
virtual ~AdTalkHolder();
diff --git a/engines/wintermute/ad/ad_waypoint_group.cpp b/engines/wintermute/ad/ad_waypoint_group.cpp
index bb1e9275f5..fac3bbe630 100644
--- a/engines/wintermute/ad/ad_waypoint_group.cpp
+++ b/engines/wintermute/ad/ad_waypoint_group.cpp
@@ -59,7 +59,7 @@ void AdWaypointGroup::cleanup() {
for (int i = 0; i < _points.getSize(); i++) {
delete _points[i];
}
- _points.removeAll();
+ _points.clear();
_editorSelectedPoint = -1;
}
diff --git a/engines/wintermute/ad/ad_waypoint_group.h b/engines/wintermute/ad/ad_waypoint_group.h
index f23f7be859..7d69ab8237 100644
--- a/engines/wintermute/ad/ad_waypoint_group.h
+++ b/engines/wintermute/ad/ad_waypoint_group.h
@@ -47,7 +47,7 @@ public:
bool loadFile(const char *filename);
bool loadBuffer(byte *buffer, bool complete = true);
virtual ~AdWaypointGroup();
- BaseArray<BasePoint *, BasePoint *> _points;
+ BaseArray<BasePoint *> _points;
int _editorSelectedPoint;
virtual ScValue *scGetProperty(const char *name);
virtual bool scSetProperty(const char *name, ScValue *value);
diff --git a/engines/wintermute/base/base_frame.cpp b/engines/wintermute/base/base_frame.cpp
index 68b866bbf5..208d6037d9 100644
--- a/engines/wintermute/base/base_frame.cpp
+++ b/engines/wintermute/base/base_frame.cpp
@@ -64,13 +64,13 @@ BaseFrame::~BaseFrame() {
for (int i = 0; i < _subframes.getSize(); i++) {
delete _subframes[i];
}
- _subframes.removeAll();
+ _subframes.clear();
for (int i = 0; i < _applyEvent.getSize(); i++) {
delete[] _applyEvent[i];
_applyEvent[i] = NULL;
}
- _applyEvent.removeAll();
+ _applyEvent.clear();
}
@@ -334,7 +334,7 @@ bool BaseFrame::loadBuffer(byte *buffer, int lifeTime, bool keepLoaded) {
sub->_editorSelected = editorSelected;
- _subframes.insertAt(0, sub);
+ _subframes.insert_at(0, sub);
return STATUS_OK;
}
@@ -495,7 +495,7 @@ bool BaseFrame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStac
for (int i = 0; i < _subframes.getSize(); i++) {
if (_subframes[i] == sub) {
delete _subframes[i];
- _subframes.removeAt(i);
+ _subframes.remove_at(i);
break;
}
}
@@ -550,7 +550,7 @@ bool BaseFrame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStac
if (index >= _subframes.getSize()) {
_subframes.add(sub);
} else {
- _subframes.insertAt(index, sub);
+ _subframes.insert_at(index, sub);
}
stack->pushNative(sub, true);
@@ -598,7 +598,7 @@ bool BaseFrame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStac
for (int i = 0; i < _applyEvent.getSize(); i++) {
if (scumm_stricmp(_applyEvent[i], event) == 0) {
delete[] _applyEvent[i];
- _applyEvent.removeAt(i);
+ _applyEvent.remove_at(i);
break;
}
}
diff --git a/engines/wintermute/base/base_frame.h b/engines/wintermute/base/base_frame.h
index dcbf74bc47..c8e9cbb400 100644
--- a/engines/wintermute/base/base_frame.h
+++ b/engines/wintermute/base/base_frame.h
@@ -51,14 +51,14 @@ public:
int _moveY;
int _moveX;
uint32 _delay;
- BaseArray<BaseSubFrame *, BaseSubFrame *> _subframes;
+ BaseArray<BaseSubFrame *> _subframes;
bool draw(int x, int y, BaseObject *registerOwner = NULL, float zoomX = 100, float zoomY = 100, bool precise = true, uint32 Alpha = 0xFFFFFFFF, bool allFrames = false, float rotate = 0.0f, TSpriteBlendMode blendMode = BLEND_NORMAL);
bool loadBuffer(byte *buffer, int lifeTime, bool keepLoaded);
BaseFrame(BaseGame *inGame);
virtual ~BaseFrame();
- BaseArray<const char *, const char *> _applyEvent;
+ BaseArray<const char *> _applyEvent;
// scripting interface
virtual ScValue *scGetProperty(const char *name);
diff --git a/engines/wintermute/base/base_game.cpp b/engines/wintermute/base/base_game.cpp
index 41ea01dffd..00f5731787 100644
--- a/engines/wintermute/base/base_game.cpp
+++ b/engines/wintermute/base/base_game.cpp
@@ -356,9 +356,9 @@ bool BaseGame::cleanup() {
delete _regObjects[i];
_regObjects[i] = NULL;
}
- _regObjects.removeAll();
+ _regObjects.clear();
- _windows.removeAll(); // refs only
+ _windows.clear(); // refs only
_focusedWindow = NULL; // ref only
delete[] _saveImageName;
@@ -382,7 +382,7 @@ bool BaseGame::cleanup() {
_scripts[i]->_owner = NULL;
_scripts[i]->finish();
}
- _scripts.removeAll();
+ _scripts.clear();
_fontStorage->removeFont(_systemFont);
_systemFont = NULL;
@@ -393,9 +393,9 @@ bool BaseGame::cleanup() {
for (int i = 0; i < _quickMessages.getSize(); i++) {
delete _quickMessages[i];
}
- _quickMessages.removeAll();
+ _quickMessages.clear();
- _viewportStack.removeAll();
+ _viewportStack.clear();
_viewportSP = -1;
setName(NULL);
@@ -2906,7 +2906,7 @@ bool BaseGame::displayQuickMsg() {
for (int i = 0; i < _quickMessages.getSize(); i++) {
if (_currentTime - _quickMessages[i]->_startTime >= QUICK_MSG_DURATION) {
delete _quickMessages[i];
- _quickMessages.removeAt(i);
+ _quickMessages.remove_at(i);
i--;
}
}
@@ -2927,7 +2927,7 @@ bool BaseGame::displayQuickMsg() {
void BaseGame::quickMessage(const char *text) {
if (_quickMessages.getSize() >= MAX_QUICK_MSG) {
delete _quickMessages[0];
- _quickMessages.removeAt(0);
+ _quickMessages.remove_at(0);
}
_quickMessages.add(new BaseQuickMsg(_gameRef, text));
}
@@ -2962,7 +2962,7 @@ bool BaseGame::unregisterObject(BaseObject *object) {
// is it a window?
for (int i = 0; i < _windows.getSize(); i++) {
if ((BaseObject *)_windows[i] == object) {
- _windows.removeAt(i);
+ _windows.remove_at(i);
// get new focused window
if (_focusedWindow == object) {
@@ -2986,7 +2986,7 @@ bool BaseGame::unregisterObject(BaseObject *object) {
// destroy object
for (int i = 0; i < _regObjects.getSize(); i++) {
if (_regObjects[i] == object) {
- _regObjects.removeAt(i);
+ _regObjects.remove_at(i);
if (!_loadInProgress) {
SystemClassRegistry::getInstance()->enumInstances(invalidateValues, "ScValue", (void *)object);
}
@@ -3864,7 +3864,7 @@ bool BaseGame::focusWindow(UIWindow *window) {
for (int i = 0; i < _windows.getSize(); i++) {
if (_windows[i] == window) {
if (i < _windows.getSize() - 1) {
- _windows.removeAt(i);
+ _windows.remove_at(i);
_windows.add(window);
_gameRef->_focusedWindow = window;
diff --git a/engines/wintermute/base/base_game.h b/engines/wintermute/base/base_game.h
index 08d1869452..ecb698b70a 100644
--- a/engines/wintermute/base/base_game.h
+++ b/engines/wintermute/base/base_game.h
@@ -358,10 +358,10 @@ private:
bool stopVideo();
BaseDebugger *_debugMgr;
- BaseArray<BaseQuickMsg *, BaseQuickMsg *> _quickMessages;
- BaseArray<UIWindow *, UIWindow *> _windows;
- BaseArray<BaseViewport *, BaseViewport *> _viewportStack;
- BaseArray<BaseObject *, BaseObject *> _regObjects;
+ BaseArray<BaseQuickMsg *> _quickMessages;
+ BaseArray<UIWindow *> _windows;
+ BaseArray<BaseViewport *> _viewportStack;
+ BaseArray<BaseObject *> _regObjects;
AnsiString getDeviceType() const;
diff --git a/engines/wintermute/base/base_region.cpp b/engines/wintermute/base/base_region.cpp
index 67cda44ece..13815a5958 100644
--- a/engines/wintermute/base/base_region.cpp
+++ b/engines/wintermute/base/base_region.cpp
@@ -63,7 +63,7 @@ void BaseRegion::cleanup() {
for (int i = 0; i < _points.getSize(); i++) {
delete _points[i];
}
- _points.removeAll();
+ _points.clear();
BasePlatform::setRectEmpty(&_rect);
_editorSelectedPoint = -1;
@@ -165,7 +165,7 @@ bool BaseRegion::loadBuffer(byte *buffer, bool complete) {
for (i = 0; i < _points.getSize(); i++) {
delete _points[i];
}
- _points.removeAll();
+ _points.clear();
while ((cmd = parser.getCommand((char **)&buffer, commands, (char **)&params)) > 0) {
switch (cmd) {
@@ -249,7 +249,7 @@ bool BaseRegion::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisSta
int y = stack->pop()->getInt();
if (Index >= 0 && Index < _points.getSize()) {
- _points.insertAt(Index, new BasePoint(x, y));
+ _points.insert_at(Index, new BasePoint(x, y));
createRegion();
stack->pushBool(true);
@@ -293,7 +293,7 @@ bool BaseRegion::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisSta
delete _points[index];
_points[index] = NULL;
- _points.removeAt(index);
+ _points.remove_at(index);
createRegion();
stack->pushBool(true);
diff --git a/engines/wintermute/base/base_region.h b/engines/wintermute/base/base_region.h
index a15e0cca2a..3b4b28030d 100644
--- a/engines/wintermute/base/base_region.h
+++ b/engines/wintermute/base/base_region.h
@@ -53,7 +53,7 @@ public:
bool loadFile(const char *filename);
bool loadBuffer(byte *buffer, bool complete = true);
Rect32 _rect;
- BaseArray<BasePoint *, BasePoint *> _points;
+ BaseArray<BasePoint *> _points;
virtual bool saveAsText(BaseDynamicBuffer *buffer, int indent, const char *nameOverride = NULL);
// scripting interface
diff --git a/engines/wintermute/base/base_script_holder.cpp b/engines/wintermute/base/base_script_holder.cpp
index b90b4dc60a..131acf326f 100644
--- a/engines/wintermute/base/base_script_holder.cpp
+++ b/engines/wintermute/base/base_script_holder.cpp
@@ -64,7 +64,7 @@ bool BaseScriptHolder::cleanup() {
_scripts[i]->finish(true);
_scripts[i]->_owner = NULL;
}
- _scripts.removeAll();
+ _scripts.clear();
return STATUS_OK;
}
@@ -336,7 +336,7 @@ bool BaseScriptHolder::addScript(const char *filename) {
bool BaseScriptHolder::removeScript(ScScript *script) {
for (int i = 0; i < _scripts.getSize(); i++) {
if (_scripts[i] == script) {
- _scripts.removeAt(i);
+ _scripts.remove_at(i);
break;
}
}
diff --git a/engines/wintermute/base/base_script_holder.h b/engines/wintermute/base/base_script_holder.h
index ef1c389dcb..4162936ded 100644
--- a/engines/wintermute/base/base_script_holder.h
+++ b/engines/wintermute/base/base_script_holder.h
@@ -57,7 +57,7 @@ public:
bool _freezable;
bool _ready;
- BaseArray<ScScript *, ScScript *> _scripts;
+ BaseArray<ScScript *> _scripts;
// scripting interface
virtual ScValue *scGetProperty(const char *name);
virtual bool scSetProperty(const char *name, ScValue *value);
diff --git a/engines/wintermute/base/base_sprite.cpp b/engines/wintermute/base/base_sprite.cpp
index 2fda638665..274c792263 100644
--- a/engines/wintermute/base/base_sprite.cpp
+++ b/engines/wintermute/base/base_sprite.cpp
@@ -92,7 +92,7 @@ void BaseSprite::cleanup() {
for (int i = 0; i < _frames.getSize(); i++) {
delete _frames[i];
}
- _frames.removeAll();
+ _frames.clear();
delete[] _editorBgFile;
_editorBgFile = NULL;
@@ -578,7 +578,7 @@ bool BaseSprite::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisSta
_lastFrameTime = 0;
}
delete _frames[i];
- _frames.removeAt(i);
+ _frames.remove_at(i);
break;
}
}
@@ -653,7 +653,7 @@ bool BaseSprite::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisSta
if (index >= _frames.getSize()) {
_frames.add(frame);
} else {
- _frames.insertAt(index, frame);
+ _frames.insert_at(index, frame);
}
stack->pushNative(frame, true);
diff --git a/engines/wintermute/base/base_sprite.h b/engines/wintermute/base/base_sprite.h
index 6ddec287d6..477ab70878 100644
--- a/engines/wintermute/base/base_sprite.h
+++ b/engines/wintermute/base/base_sprite.h
@@ -75,7 +75,7 @@ public:
bool addFrame(const char *filename, uint32 delay = 0, int hotspotX = 0, int hotspotY = 0, Rect32 *rect = NULL);
BaseSprite(BaseGame *inGame, BaseObject *owner = NULL);
virtual ~BaseSprite();
- BaseArray<BaseFrame *, BaseFrame *> _frames;
+ BaseArray<BaseFrame *> _frames;
bool saveAsText(BaseDynamicBuffer *buffer, int indent);
// scripting interface
diff --git a/engines/wintermute/base/font/base_font_storage.cpp b/engines/wintermute/base/font/base_font_storage.cpp
index 8b4fa74181..95f1ae601c 100644
--- a/engines/wintermute/base/font/base_font_storage.cpp
+++ b/engines/wintermute/base/font/base_font_storage.cpp
@@ -57,7 +57,7 @@ bool BaseFontStorage::cleanup(bool warn) {
}
delete _fonts[i];
}
- _fonts.removeAll();
+ _fonts.clear();
return STATUS_OK;
}
@@ -117,7 +117,7 @@ bool BaseFontStorage::removeFont(BaseFont *font) {
_fonts[i]->_refCount--;
if (_fonts[i]->_refCount <= 0) {
delete _fonts[i];
- _fonts.removeAt(i);
+ _fonts.remove_at(i);
}
break;
}
diff --git a/engines/wintermute/base/font/base_font_storage.h b/engines/wintermute/base/font/base_font_storage.h
index 2c9c6817c3..3af9244ffe 100644
--- a/engines/wintermute/base/font/base_font_storage.h
+++ b/engines/wintermute/base/font/base_font_storage.h
@@ -46,7 +46,7 @@ public:
BaseFont *addFont(const char *filename);
BaseFontStorage(BaseGame *inGame);
virtual ~BaseFontStorage();
- BaseArray<BaseFont *, BaseFont *> _fonts;
+ BaseArray<BaseFont *> _fonts;
bool initLoop();
};
diff --git a/engines/wintermute/base/font/base_font_truetype.cpp b/engines/wintermute/base/font/base_font_truetype.cpp
index e14d79cb42..ac6430d4c9 100644
--- a/engines/wintermute/base/font/base_font_truetype.cpp
+++ b/engines/wintermute/base/font/base_font_truetype.cpp
@@ -72,7 +72,7 @@ BaseFontTT::~BaseFontTT(void) {
for (int i = 0; i < _layers.getSize(); i++) {
delete _layers[i];
}
- _layers.removeAll();
+ _layers.clear();
delete[] _fontFile;
_fontFile = NULL;
diff --git a/engines/wintermute/base/font/base_font_truetype.h b/engines/wintermute/base/font/base_font_truetype.h
index 434fa7100c..20ef531a46 100644
--- a/engines/wintermute/base/font/base_font_truetype.h
+++ b/engines/wintermute/base/font/base_font_truetype.h
@@ -142,7 +142,7 @@ public:
int _fontHeight;
char *_fontFile;
- BaseArray<BaseTTFontLayer *, BaseTTFontLayer *> _layers;
+ BaseArray<BaseTTFontLayer *> _layers;
void clearCache();
};
diff --git a/engines/wintermute/base/particles/part_emitter.cpp b/engines/wintermute/base/particles/part_emitter.cpp
index b16fb83abf..8b86365196 100644
--- a/engines/wintermute/base/particles/part_emitter.cpp
+++ b/engines/wintermute/base/particles/part_emitter.cpp
@@ -97,18 +97,18 @@ PartEmitter::~PartEmitter(void) {
for (int i = 0; i < _particles.getSize(); i++) {
delete _particles[i];
}
- _particles.removeAll();
+ _particles.clear();
for (int i = 0; i < _forces.getSize(); i++) {
delete _forces[i];
}
- _forces.removeAll();
+ _forces.clear();
for (int i = 0; i < _sprites.getSize(); i++) {
delete[] _sprites[i];
}
- _sprites.removeAll();
+ _sprites.clear();
delete[] _emitEvent;
_emitEvent = NULL;
@@ -148,7 +148,7 @@ bool PartEmitter::removeSprite(const char *filename) {
for (int i = 0; i < _sprites.getSize(); i++) {
if (scumm_stricmp(filename, _sprites[i]) == 0) {
delete[] _sprites[i];
- _sprites.removeAt(i);
+ _sprites.remove_at(i);
return STATUS_OK;
}
}
@@ -446,7 +446,7 @@ bool PartEmitter::removeForce(const char *name) {
for (int i = 0; i < _forces.getSize(); i++) {
if (scumm_stricmp(name, _forces[i]->getName()) == 0) {
delete _forces[i];
- _forces.removeAt(i);
+ _forces.remove_at(i);
return STATUS_OK;
}
}
@@ -527,7 +527,7 @@ bool PartEmitter::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisSt
for (int i = 0; i < _particles.getSize(); i++) {
delete _particles[i];
}
- _particles.removeAll();
+ _particles.clear();
_running = false;
stack->pushBool(true);
diff --git a/engines/wintermute/base/particles/part_emitter.h b/engines/wintermute/base/particles/part_emitter.h
index fc557a9512..4e3b837a11 100644
--- a/engines/wintermute/base/particles/part_emitter.h
+++ b/engines/wintermute/base/particles/part_emitter.h
@@ -60,7 +60,7 @@ public:
bool addForce(const char *name, PartForce::TForceType type, int posX, int posY, float angle, float strength);
bool removeForce(const char *name);
- BaseArray<PartForce *, PartForce *> _forces;
+ BaseArray<PartForce *> _forces;
// scripting interface
virtual ScValue *scGetProperty(const char *name);
@@ -131,8 +131,8 @@ private:
bool initParticle(PartParticle *particle, uint32 currentTime, uint32 timerDelta);
bool updateInternal(uint32 currentTime, uint32 timerDelta);
uint32 _lastGenTime;
- BaseArray<PartParticle *, PartParticle *> _particles;
- BaseArray<char *, char *> _sprites;
+ BaseArray<PartParticle *> _particles;
+ BaseArray<char *> _sprites;
};
} // end of namespace WinterMute
diff --git a/engines/wintermute/base/scriptables/script.h b/engines/wintermute/base/scriptables/script.h
index ba73e1015f..c343ad24ad 100644
--- a/engines/wintermute/base/scriptables/script.h
+++ b/engines/wintermute/base/scriptables/script.h
@@ -46,7 +46,7 @@ public:
bool dbgSendScript(IWmeDebugClient *client);
bool dbgSendVariables(IWmeDebugClient *client);
- BaseArray<int, int> _breakpoints;
+ BaseArray<int> _breakpoints;
bool _tracingMode;
ScScript *_parentScript;
diff --git a/engines/wintermute/base/scriptables/script_engine.cpp b/engines/wintermute/base/scriptables/script_engine.cpp
index 356617094d..e1aed7ed82 100644
--- a/engines/wintermute/base/scriptables/script_engine.cpp
+++ b/engines/wintermute/base/scriptables/script_engine.cpp
@@ -97,7 +97,7 @@ ScEngine::~ScEngine() {
delete _breakpoints[i];
_breakpoints[i] = NULL;
}
- _breakpoints.removeAll();
+ _breakpoints.clear();
}
@@ -108,11 +108,11 @@ bool ScEngine::cleanup() {
_scripts[i]->_owner->removeScript(_scripts[i]);
}
delete _scripts[i];
- _scripts.removeAt(i);
+ _scripts.remove_at(i);
i--;
}
- _scripts.removeAll();
+ _scripts.clear();
delete _globals;
_globals = NULL;
@@ -404,7 +404,7 @@ bool ScEngine::removeFinishedScripts() {
}
_gameRef->getDebugMgr()->onScriptShutdown(_scripts[i]);
delete _scripts[i];
- _scripts.removeAt(i);
+ _scripts.remove_at(i);
i--;
}
}
@@ -511,7 +511,7 @@ void ScEngine::editorCleanup() {
for (int i = 0; i < _scripts.getSize(); i++) {
if (_scripts[i]->_owner == NULL && (_scripts[i]->_state == SCRIPT_FINISHED || _scripts[i]->_state == SCRIPT_ERROR)) {
delete _scripts[i];
- _scripts.removeAt(i);
+ _scripts.remove_at(i);
i--;
}
}
@@ -620,10 +620,10 @@ bool ScEngine::removeBreakpoint(const char *scriptFilename, int line) {
if (scumm_stricmp(_breakpoints[i]->_filename.c_str(), scriptFilename) == 0) {
for (int j = 0; j < _breakpoints[i]->_lines.getSize(); j++) {
if (_breakpoints[i]->_lines[j] == line) {
- _breakpoints[i]->_lines.removeAt(j);
+ _breakpoints[i]->_lines.remove_at(j);
if (_breakpoints[i]->_lines.getSize() == 0) {
delete _breakpoints[i];
- _breakpoints.removeAt(i);
+ _breakpoints.remove_at(i);
}
// refresh changes
refreshScriptBreakpoints();
@@ -666,7 +666,7 @@ bool ScEngine::refreshScriptBreakpoints(ScScript *script) {
}
}
if (script->_breakpoints.getSize() > 0) {
- script->_breakpoints.removeAll();
+ script->_breakpoints.clear();
}
return STATUS_OK;
diff --git a/engines/wintermute/base/scriptables/script_engine.h b/engines/wintermute/base/scriptables/script_engine.h
index fc441347df..fcfaa51971 100644
--- a/engines/wintermute/base/scriptables/script_engine.h
+++ b/engines/wintermute/base/scriptables/script_engine.h
@@ -74,11 +74,11 @@ public:
}
~CScBreakpoint() {
- _lines.removeAll();
+ _lines.clear();
}
Common::String _filename;
- BaseArray<int, int> _lines;
+ BaseArray<int> _lines;
};
@@ -87,7 +87,7 @@ public:
public:
bool dbgSendScripts(IWmeDebugClient *client);
- BaseArray<CScBreakpoint *, CScBreakpoint *> _breakpoints;
+ BaseArray<CScBreakpoint *> _breakpoints;
bool addBreakpoint(const char *scriptFilename, int line);
bool removeBreakpoint(const char *scriptFilename, int line);
bool refreshScriptBreakpoints();
@@ -122,7 +122,7 @@ public:
static void closeFile(void *data, byte *buffer);
static void parseElement(void *data, int line, int type, void *elementData);
- BaseArray<ScScript *, ScScript *> _scripts;
+ BaseArray<ScScript *> _scripts;
void enableProfiling();
void disableProfiling();
diff --git a/engines/wintermute/base/scriptables/script_stack.cpp b/engines/wintermute/base/scriptables/script_stack.cpp
index 0d4ea54b8c..8840a2c0f1 100644
--- a/engines/wintermute/base/scriptables/script_stack.cpp
+++ b/engines/wintermute/base/scriptables/script_stack.cpp
@@ -50,7 +50,7 @@ ScStack::~ScStack() {
for (int i = 0; i < _values.getSize(); i++) {
delete _values[i];
}
- _values.removeAll();
+ _values.clear();
}
@@ -123,7 +123,7 @@ void ScStack::correctParams(uint32 expectedParams) {
while (expectedParams < nuParams) {
//Pop();
delete _values[_sP - expectedParams];
- _values.removeAt(_sP - expectedParams);
+ _values.remove_at(_sP - expectedParams);
nuParams--;
_sP--;
}
@@ -132,13 +132,13 @@ void ScStack::correctParams(uint32 expectedParams) {
//Push(null_val);
ScValue *nullVal = new ScValue(_gameRef);
nullVal->setNULL();
- _values.insertAt(_sP - nuParams + 1, nullVal);
+ _values.insert_at(_sP - nuParams + 1, nullVal);
nuParams++;
_sP++;
if (_values.getSize() > _sP + 1) {
delete _values[_values.getSize() - 1];
- _values.removeAt(_values.getSize() - 1);
+ _values.remove_at(_values.getSize() - 1);
}
}
}
diff --git a/engines/wintermute/base/scriptables/script_stack.h b/engines/wintermute/base/scriptables/script_stack.h
index 3aacad0765..95839cc680 100644
--- a/engines/wintermute/base/scriptables/script_stack.h
+++ b/engines/wintermute/base/scriptables/script_stack.h
@@ -56,7 +56,7 @@ public:
ScValue *pop();
ScStack(BaseGame *inGame);
virtual ~ScStack();
- BaseArray<ScValue *, ScValue *> _values;
+ BaseArray<ScValue *> _values;
int _sP;
};
diff --git a/engines/wintermute/coll_templ.h b/engines/wintermute/coll_templ.h
index d7e1ae1748..51a4120c15 100644
--- a/engines/wintermute/coll_templ.h
+++ b/engines/wintermute/coll_templ.h
@@ -29,345 +29,64 @@
#ifndef WINTERMUTE_COLL_TEMPL_H
#define WINTERMUTE_COLL_TEMPL_H
-
-#include <new>
+#include "common/array.h"
#include "engines/wintermute/base/base_persistence_manager.h"
namespace WinterMute {
-// Quite the same as Common::Array, but with persistence-support.
-
-/////////////////////////////////////////////////////////////////////////////
-template<class TYPE>
-inline void DCConstructElements(TYPE *pElements, int nCount) {
- // first do bit-wise zero initialization
- memset((void *)pElements, 0, nCount * sizeof(TYPE));
-
- // then call the constructor(s)
- for (; nCount--; pElements++)
- ::new((void *)pElements) TYPE;
-}
-
-/////////////////////////////////////////////////////////////////////////////
-template<class TYPE>
-inline void DCDestructElements(TYPE *pElements, int nCount) {
- // call the destructor(s)
- for (; nCount--; pElements++)
- pElements->~TYPE();
-}
-
-/////////////////////////////////////////////////////////////////////////////
-template<class TYPE>
-inline void DCCopyElements(TYPE *pDest, const TYPE *pSrc, int nCount) {
- // default is element-copy using assignment
- while (nCount--)
- *pDest++ = *pSrc++;
-}
-
-/////////////////////////////////////////////////////////////////////////////
-template<class TYPE, class ARG_TYPE>
-bool DCCompareElements(const TYPE *pElement1, const ARG_TYPE *pElement2) {
- return *pElement1 == *pElement2;
-}
-
-//class BasePersistenceManager;
-
-/////////////////////////////////////////////////////////////////////////////
-// BaseArray<TYPE, ARG_TYPE>
-/////////////////////////////////////////////////////////////////////////////
-template<class TYPE, class ARG_TYPE>
-class BaseArray {
-public:
-// Construction
- BaseArray();
-
-// Attributes
- int getSize() const;
- int getUpperBound() const;
- void setSize(int nNewSize, int nGrowBy = -1);
-
-// Operations
- // Clean up
- void freeExtra();
- void removeAll();
- bool persist(BasePersistenceManager *persistMgr);
-
- // Accessing elements
- TYPE getAt(int nIndex) const;
- void setAt(int nIndex, ARG_TYPE newElement);
- TYPE &elementAt(int nIndex);
-
- // Direct Access to the element data (may return NULL)
- const TYPE *getData() const;
- TYPE *getData();
-
- // Potentially growing the array
- void setAtGrow(int nIndex, ARG_TYPE newElement);
- int add(ARG_TYPE newElement);
- int append(const BaseArray &src);
- void copy(const BaseArray &src);
-
- // overloaded operator helpers
- TYPE operator[](int nIndex) const;
- TYPE &operator[](int nIndex);
-
- // Operations that move elements around
- void insertAt(int nIndex, ARG_TYPE newElement, int nCount = 1);
- void removeAt(int nIndex, int nCount = 1);
- void insertAt(int nStartIndex, BaseArray *pNewArray);
-
-// Implementation
-protected:
- TYPE *_pData; // the actual array of data
- int _nSize; // # of elements (upperBound - 1)
- int _nMaxSize; // max allocated
- int _nGrowBy; // grow amount
-
+// Basically Common::Array with peristence-support.
+template<typename TYPE>
+class BaseArray : public Common::Array<TYPE> {
public:
- ~BaseArray();
-};
-
-/////////////////////////////////////////////////////////////////////////////
-// BaseArray<TYPE, ARG_TYPE> inline functions
-/////////////////////////////////////////////////////////////////////////////
-template<class TYPE, class ARG_TYPE>
-inline int BaseArray<TYPE, ARG_TYPE>::getSize() const {
- return _nSize;
-}
-template<class TYPE, class ARG_TYPE>
-inline int BaseArray<TYPE, ARG_TYPE>::getUpperBound() const {
- return _nSize - 1;
-}
-template<class TYPE, class ARG_TYPE>
-inline void BaseArray<TYPE, ARG_TYPE>::removeAll() {
- setSize(0, -1);
-}
-template<class TYPE, class ARG_TYPE>
-inline TYPE BaseArray<TYPE, ARG_TYPE>::getAt(int nIndex) const {
- return _pData[nIndex];
-}
-template<class TYPE, class ARG_TYPE>
-inline void BaseArray<TYPE, ARG_TYPE>::setAt(int nIndex, ARG_TYPE newElement) {
- _pData[nIndex] = newElement;
-}
-template<class TYPE, class ARG_TYPE>
-inline TYPE &BaseArray<TYPE, ARG_TYPE>::elementAt(int nIndex) {
- return _pData[nIndex];
-}
-template<class TYPE, class ARG_TYPE>
-inline const TYPE *BaseArray<TYPE, ARG_TYPE>::getData() const {
- return (const TYPE *)_pData;
-}
-template<class TYPE, class ARG_TYPE>
-inline TYPE *BaseArray<TYPE, ARG_TYPE>::getData() {
- return (TYPE *)_pData;
-}
-template<class TYPE, class ARG_TYPE>
-inline int BaseArray<TYPE, ARG_TYPE>::add(ARG_TYPE newElement) {
- int nIndex = _nSize;
- setAtGrow(nIndex, newElement);
- return nIndex;
-}
-template<class TYPE, class ARG_TYPE>
-inline TYPE BaseArray<TYPE, ARG_TYPE>::operator[](int nIndex) const {
- return getAt(nIndex);
-}
-template<class TYPE, class ARG_TYPE>
-inline TYPE &BaseArray<TYPE, ARG_TYPE>::operator[](int nIndex) {
- return elementAt(nIndex);
-}
-
-/////////////////////////////////////////////////////////////////////////////
-// BaseArray<TYPE, ARG_TYPE> out-of-line functions
-/////////////////////////////////////////////////////////////////////////////
-template<class TYPE, class ARG_TYPE>
-BaseArray<TYPE, ARG_TYPE>::BaseArray() {
- _pData = NULL;
- _nSize = _nMaxSize = _nGrowBy = 0;
-}
-
-/////////////////////////////////////////////////////////////////////////////
-template<class TYPE, class ARG_TYPE>
-BaseArray<TYPE, ARG_TYPE>::~BaseArray() {
- if (_pData != NULL) {
- DCDestructElements<TYPE>(_pData, _nSize);
- delete[](byte *)_pData;
- }
-}
-
-/////////////////////////////////////////////////////////////////////////////
-template<class TYPE, class ARG_TYPE>
-void BaseArray<TYPE, ARG_TYPE>::setSize(int nNewSize, int nGrowBy) {
- if (nGrowBy != -1)
- _nGrowBy = nGrowBy; // set new size
-
- if (nNewSize == 0) {
- // shrink to nothing
- if (_pData != NULL) {
- DCDestructElements<TYPE>(_pData, _nSize);
- delete[](byte *)_pData;
- _pData = NULL;
- }
- _nSize = _nMaxSize = 0;
- } else if (_pData == NULL) {
- // create one with exact size
- _pData = (TYPE *) new byte[nNewSize * sizeof(TYPE)];
- DCConstructElements<TYPE>(_pData, nNewSize);
- _nSize = _nMaxSize = nNewSize;
- } else if (nNewSize <= _nMaxSize) {
- // it fits
- if (nNewSize > _nSize) {
- // initialize the new elements
- DCConstructElements<TYPE>(&_pData[_nSize], nNewSize - _nSize);
- } else if (_nSize > nNewSize) {
- // destroy the old elements
- DCDestructElements<TYPE>(&_pData[nNewSize], _nSize - nNewSize);
- }
- _nSize = nNewSize;
- } else {
- // otherwise, grow array
- nGrowBy = _nGrowBy;
- if (nGrowBy == 0) {
- // heuristically determine growth when nGrowBy == 0
- // (this avoids heap fragmentation in many situations)
- nGrowBy = _nSize / 8;
- nGrowBy = (nGrowBy < 4) ? 4 : ((nGrowBy > 1024) ? 1024 : nGrowBy);
+// TODO: Might want to make sure that destructors are called when replacing/deleting/getting destructed
+ bool persist(BasePersistenceManager *persistMgr) {
+ int j;
+ if (persistMgr->getIsSaving()) {
+ j = Common::Array<TYPE>::size();
+ persistMgr->transfer("ArraySize", &j);
+ typename Common::Array<TYPE>::const_iterator it = Common::Array<TYPE>::begin();
+ for (; it != Common::Array<TYPE>::end(); it++) {
+ TYPE obj = *it;
+ persistMgr->transfer("", &obj);
+ }
+ } else {
+ Common::Array<TYPE>::clear();
+ persistMgr->transfer("ArraySize", &j);
+ for (int i = 0; i < j; i++) {
+ TYPE obj;
+ persistMgr->transfer("", &obj);
+ add(obj);
+ }
}
- int nNewMax;
- if (nNewSize < _nMaxSize + nGrowBy)
- nNewMax = _nMaxSize + nGrowBy; // granularity
- else
- nNewMax = nNewSize; // no slush
-
- TYPE *pNewData = (TYPE *) new byte[nNewMax * sizeof(TYPE)];
-
- // copy new data from old
- memcpy(pNewData, _pData, _nSize * sizeof(TYPE));
-
- // construct remaining elements
- DCConstructElements<TYPE>(&pNewData[_nSize], nNewSize - _nSize);
-
- // get rid of old stuff (note: no destructors called)
- delete[](byte *)_pData;
- _pData = pNewData;
- _nSize = nNewSize;
- _nMaxSize = nNewMax;
+ return true;
}
-}
-
-/////////////////////////////////////////////////////////////////////////////
-template<class TYPE, class ARG_TYPE>
-int BaseArray<TYPE, ARG_TYPE>::append(const BaseArray &src) {
- int nOldSize = _nSize;
- setSize(_nSize + src._nSize);
- DCCopyElements<TYPE>(_pData + nOldSize, src._pData, src._nSize);
- return nOldSize;
-}
-
-/////////////////////////////////////////////////////////////////////////////
-template<class TYPE, class ARG_TYPE>
-void BaseArray<TYPE, ARG_TYPE>::copy(const BaseArray &src) {
- setSize(src._nSize);
- DCCopyElements<TYPE>(_pData, src._pData, src._nSize);
-}
-
-/////////////////////////////////////////////////////////////////////////////
-template<class TYPE, class ARG_TYPE>
-void BaseArray<TYPE, ARG_TYPE>::freeExtra() {
- if (_nSize != _nMaxSize) {
- // shrink to desired size
- TYPE *pNewData = NULL;
- if (_nSize != 0) {
- pNewData = (TYPE *) new byte[_nSize * sizeof(TYPE)];
- // copy new data from old
- memcpy(pNewData, _pData, _nSize * sizeof(TYPE));
- }
-
- // get rid of old stuff (note: no destructors called)
- delete[](byte *)_pData;
- _pData = pNewData;
- _nMaxSize = _nSize;
+ // TODO: Just here for convenience while verifying that this works.
+ int getSize() const {
+ return Common::Array<TYPE>::size();
}
-}
-
-/////////////////////////////////////////////////////////////////////////////
-template<class TYPE, class ARG_TYPE>
-void BaseArray<TYPE, ARG_TYPE>::setAtGrow(int nIndex, ARG_TYPE newElement) {
- if (nIndex >= _nSize)
- setSize(nIndex + 1, -1);
- _pData[nIndex] = newElement;
-}
-
-/////////////////////////////////////////////////////////////////////////////
-template<class TYPE, class ARG_TYPE>
-void BaseArray<TYPE, ARG_TYPE>::insertAt(int nIndex, ARG_TYPE newElement, int nCount /*=1*/) {
- if (nIndex >= _nSize) {
- // adding after the end of the array
- setSize(nIndex + nCount, -1); // grow so nIndex is valid
- } else {
- // inserting in the middle of the array
- int nOldSize = _nSize;
- setSize(_nSize + nCount, -1); // grow it to new size
- // destroy intial data before copying over it
- DCDestructElements<TYPE>(&_pData[nOldSize], nCount);
- // shift old data up to fill gap
- memmove(&_pData[nIndex + nCount], &_pData[nIndex],
- (nOldSize - nIndex) * sizeof(TYPE));
-
- // re-init slots we copied from
- DCConstructElements<TYPE>(&_pData[nIndex], nCount);
+ int add(TYPE newElement) {
+ Common::Array<TYPE>::push_back(newElement);
+ return getSize() - 1;
}
-
- // insert new value in the gap
- while (nCount--)
- _pData[nIndex++] = newElement;
-}
-
-/////////////////////////////////////////////////////////////////////////////
-template<class TYPE, class ARG_TYPE>
-void BaseArray<TYPE, ARG_TYPE>::removeAt(int nIndex, int nCount) {
- // just remove a range
- int nMoveCount = _nSize - (nIndex + nCount);
- DCDestructElements<TYPE>(&_pData[nIndex], nCount);
- if (nMoveCount)
- memcpy(&_pData[nIndex], &_pData[nIndex + nCount],
- nMoveCount * sizeof(TYPE));
- _nSize -= nCount;
-}
-
-/////////////////////////////////////////////////////////////////////////////
-template<class TYPE, class ARG_TYPE>
-void BaseArray<TYPE, ARG_TYPE>::insertAt(int nStartIndex, BaseArray *pNewArray) {
- if (pNewArray->GetSize() > 0) {
- InsertAt(nStartIndex, pNewArray->GetAt(0), pNewArray->GetSize());
- for (int i = 0; i < pNewArray->GetSize(); i++)
- setAt(nStartIndex + i, pNewArray->GetAt(i));
+ void remove_at(uint32 idx) {
+ Common::Array<TYPE>::remove_at(idx);
}
-}
-
-
-/////////////////////////////////////////////////////////////////////////////
-template<class TYPE, class ARG_TYPE>
-bool BaseArray<TYPE, ARG_TYPE>::persist(BasePersistenceManager *persistMgr) {
- int i, j;
- if (persistMgr->getIsSaving()) {
- j = getSize();
- persistMgr->transfer("ArraySize", &j);
- for (i = 0; i < j; i++) {
- ARG_TYPE obj = getAt(i);
- persistMgr->transfer("", &obj);
- }
- } else {
- setSize(0, -1);
- persistMgr->transfer("ArraySize", &j);
- for (i = 0; i < j; i++) {
- ARG_TYPE obj;
- persistMgr->transfer("", &obj);
- add(obj);
+ void remove_at(uint32 idx, uint32 num) {
+ while (num) {
+ if (idx >= Common::Array<TYPE>::size()) {
+ break;
+ }
+ Common::Array<TYPE>::remove_at(idx);
}
}
- return true;
-}
+ template<typename T2>
+ void copy(const BaseArray<T2> &src) {
+ Common::Array<TYPE>::insert_at(0, src);
+ }
+ void *getData() { // Ugly, should perhaps add a sort-function instead.
+ return Common::Array<TYPE>::_storage;
+ }
+};
} // end of namespace WinterMute
diff --git a/engines/wintermute/ui/ui_object.cpp b/engines/wintermute/ui/ui_object.cpp
index e44bb0f741..9fe9cd18e4 100644
--- a/engines/wintermute/ui/ui_object.cpp
+++ b/engines/wintermute/ui/ui_object.cpp
@@ -286,8 +286,8 @@ bool UIObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
j++;
}
- win->_widgets.insertAt(i, this);
- win->_widgets.removeAt(j);
+ win->_widgets.insert_at(i, this);
+ win->_widgets.remove_at(j);
done = true;
stack->pushBool(true);
@@ -318,8 +318,8 @@ bool UIObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
UIWindow *win = (UIWindow *)_parent;
for (int i = 0; i < win->_widgets.getSize(); i++) {
if (win->_widgets[i] == this) {
- win->_widgets.removeAt(i);
- win->_widgets.insertAt(0, this);
+ win->_widgets.remove_at(i);
+ win->_widgets.insert_at(0, this);
break;
}
}
@@ -341,7 +341,7 @@ bool UIObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
UIWindow *win = (UIWindow *)_parent;
for (int i = 0; i < win->_widgets.getSize(); i++) {
if (win->_widgets[i] == this) {
- win->_widgets.removeAt(i);
+ win->_widgets.remove_at(i);
win->_widgets.add(this);
break;
}
diff --git a/engines/wintermute/ui/ui_window.cpp b/engines/wintermute/ui/ui_window.cpp
index f221405f15..b9e2ad056f 100644
--- a/engines/wintermute/ui/ui_window.cpp
+++ b/engines/wintermute/ui/ui_window.cpp
@@ -113,7 +113,7 @@ void UIWindow::cleanup() {
for (int i = 0; i < _widgets.getSize(); i++) {
delete _widgets[i];
}
- _widgets.removeAll();
+ _widgets.clear();
}
@@ -994,7 +994,7 @@ bool UIWindow::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
for (int i = 0; i < _widgets.getSize(); i++) {
if (_widgets[i] == obj) {
delete _widgets[i];
- _widgets.removeAt(i);
+ _widgets.remove_at(i);
if (val->getType() == VAL_VARIABLE_REF) {
val->setNULL();
}
@@ -1415,7 +1415,7 @@ void UIWindow::makeFreezable(bool freezable) {
//////////////////////////////////////////////////////////////////////////
-bool UIWindow::getWindowObjects(BaseArray<UIObject *, UIObject *> &objects, bool interactiveOnly) {
+bool UIWindow::getWindowObjects(BaseArray<UIObject *> &objects, bool interactiveOnly) {
for (int i = 0; i < _widgets.getSize(); i++) {
UIObject *control = _widgets[i];
if (control->_disable && interactiveOnly) {
diff --git a/engines/wintermute/ui/ui_window.h b/engines/wintermute/ui/ui_window.h
index c2baeb1ea1..556850f6fa 100644
--- a/engines/wintermute/ui/ui_window.h
+++ b/engines/wintermute/ui/ui_window.h
@@ -40,7 +40,7 @@ class BaseViewport;
class UIWindow : public UIObject {
uint32 _fadeColor;
public:
- bool getWindowObjects(BaseArray<UIObject *, UIObject *> &Objects, bool InteractiveOnly);
+ bool getWindowObjects(BaseArray<UIObject *> &Objects, bool InteractiveOnly);
bool _pauseMusic;
void cleanup();
@@ -72,7 +72,7 @@ public:
UIWindow(BaseGame *inGame);
virtual ~UIWindow();
virtual bool handleKeypress(Common::Event *event, bool printable = false);
- BaseArray<UIObject *, UIObject *> _widgets;
+ BaseArray<UIObject *> _widgets;
TTextAlign _titleAlign;
bool loadFile(const char *filename);
bool loadBuffer(byte *buffer, bool complete = true);
diff --git a/engines/wintermute/video/video_player.cpp b/engines/wintermute/video/video_player.cpp
index 7affd91013..66ec926582 100644
--- a/engines/wintermute/video/video_player.cpp
+++ b/engines/wintermute/video/video_player.cpp
@@ -132,7 +132,7 @@ bool VideoPlayer::cleanup() {
for (int i = 0; i < _subtitles.getSize(); i++) {
delete _subtitles[i];
}
- _subtitles.removeAll();
+ _subtitles.clear();
return SetDefaults();
#endif