[Scummvm-git-logs] scummvm master -> ee576b18ce931ae65711ec25b64e6ef111e0897e

aquadran noreply at scummvm.org
Mon Aug 11 10:27:21 UTC 2025


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .

Summary:
ee576b18ce WINTERMUTE: Synced with original code


Commit: ee576b18ce931ae65711ec25b64e6ef111e0897e
    https://github.com/scummvm/scummvm/commit/ee576b18ce931ae65711ec25b64e6ef111e0897e
Author: Paweł Kołodziejski (aquadran at gmail.com)
Date: 2025-08-11T12:27:15+02:00

Commit Message:
WINTERMUTE: Synced with original code

Changed paths:
    engines/wintermute/ad/ad_actor.cpp
    engines/wintermute/ad/ad_actor_3dx.cpp
    engines/wintermute/ad/ad_entity.cpp
    engines/wintermute/ad/ad_game.cpp
    engines/wintermute/ad/ad_geom_ext.cpp
    engines/wintermute/ad/ad_inventory.cpp
    engines/wintermute/ad/ad_inventory_box.cpp
    engines/wintermute/ad/ad_layer.cpp
    engines/wintermute/ad/ad_object.cpp
    engines/wintermute/ad/ad_object_3d.cpp
    engines/wintermute/ad/ad_path.cpp
    engines/wintermute/ad/ad_path3d.cpp
    engines/wintermute/ad/ad_region.cpp
    engines/wintermute/ad/ad_response_box.cpp
    engines/wintermute/ad/ad_response_box.h
    engines/wintermute/ad/ad_scene.cpp
    engines/wintermute/ad/ad_scene_geometry.cpp
    engines/wintermute/ad/ad_scene_geometry.h
    engines/wintermute/ad/ad_scene_state.cpp
    engines/wintermute/ad/ad_sentence.cpp
    engines/wintermute/ad/ad_talk_def.cpp
    engines/wintermute/ad/ad_talk_holder.cpp
    engines/wintermute/ad/ad_waypoint_group.cpp
    engines/wintermute/ad/ad_waypoint_group3d.cpp
    engines/wintermute/base/base_frame.cpp
    engines/wintermute/base/base_game.cpp
    engines/wintermute/base/base_region.cpp
    engines/wintermute/base/base_script_holder.cpp
    engines/wintermute/base/base_sprite.cpp
    engines/wintermute/base/base_surface_storage.cpp
    engines/wintermute/base/font/base_font_bitmap.cpp
    engines/wintermute/base/font/base_font_storage.cpp
    engines/wintermute/base/font/base_font_truetype.cpp
    engines/wintermute/base/gfx/3deffect_params.cpp
    engines/wintermute/base/gfx/3dloader_3ds.cpp
    engines/wintermute/base/gfx/3dloader_3ds.h
    engines/wintermute/base/gfx/base_renderer.cpp
    engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp
    engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp
    engines/wintermute/base/gfx/xanimation.cpp
    engines/wintermute/base/gfx/xanimation_set.cpp
    engines/wintermute/base/gfx/xframe_node.cpp
    engines/wintermute/base/gfx/xmesh.cpp
    engines/wintermute/base/gfx/xmodel.cpp
    engines/wintermute/base/particles/part_emitter.cpp
    engines/wintermute/base/particles/part_particle.cpp
    engines/wintermute/base/scriptables/debuggable/debuggable_script.cpp
    engines/wintermute/base/scriptables/script.cpp
    engines/wintermute/base/scriptables/script_engine.cpp
    engines/wintermute/base/scriptables/script_stack.cpp
    engines/wintermute/base/sound/base_sound_manager.cpp
    engines/wintermute/coll_templ.h
    engines/wintermute/debugger/debugger_controller.cpp
    engines/wintermute/ext/wme_shadowmanager.cpp
    engines/wintermute/ui/ui_button.cpp
    engines/wintermute/ui/ui_edit.cpp
    engines/wintermute/ui/ui_entity.cpp
    engines/wintermute/ui/ui_object.cpp
    engines/wintermute/ui/ui_text.cpp
    engines/wintermute/ui/ui_window.cpp


diff --git a/engines/wintermute/ad/ad_actor.cpp b/engines/wintermute/ad/ad_actor.cpp
index 4f57d544ba6..3ae17e9c113 100644
--- a/engines/wintermute/ad/ad_actor.cpp
+++ b/engines/wintermute/ad/ad_actor.cpp
@@ -98,17 +98,17 @@ AdActor::~AdActor() {
 
 	_animSprite2 = nullptr; // ref only
 
-	for (uint32 i = 0; i < _talkSprites.getSize(); i++) {
+	for (int32 i = 0; i < _talkSprites.getSize(); i++) {
 		delete _talkSprites[i];
 	}
 	_talkSprites.removeAll();
 
-	for (uint32 i = 0; i < _talkSpritesEx.getSize(); i++) {
+	for (int32 i = 0; i < _talkSpritesEx.getSize(); i++) {
 		delete _talkSpritesEx[i];
 	}
 	_talkSpritesEx.removeAll();
 
-	for (uint32 i = 0; i < _anims.getSize(); i++) {
+	for (int32 i = 0; i < _anims.getSize(); i++) {
 		delete _anims[i];
 		_anims[i] = nullptr;
 	}
@@ -1088,7 +1088,7 @@ bool AdActor::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
 			if (anim != nullptr) {
 				BaseSprite *item = anim->getSprite((TDirection)dir);
 				if (item != nullptr) {
-					for (uint32 i = 0; i < item->_frames.getSize(); i++) {
+					for (int32 i = 0; i < item->_frames.getSize(); i++) {
 						BaseFrame *frame = item->_frames[i];
 						if (frame != nullptr) {
 							frame->_delay = speedWalk;
@@ -1120,7 +1120,7 @@ bool AdActor::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
 		const char *animName = stack->pop()->getString();
 
 		bool found = false;
-		for (uint32 i = 0; i < _anims.getSize(); i++) {
+		for (int32 i = 0; i < _anims.getSize(); i++) {
 			if (scumm_stricmp(_anims[i]->getName(), animName) == 0) {
 				// invalidate sprites in use
 				if (_anims[i]->containsSprite(_tempSprite2)) {
@@ -1339,7 +1339,7 @@ BaseSprite *AdActor::getTalkStance(const char *stance) {
 	// not - get a random talk
 	if (!ret) {
 		BaseArray<AdSpriteSet *> talkAnims;
-		for (uint32 i = 0; i < _anims.getSize(); i++) {
+		for (int32 i = 0; i < _anims.getSize(); i++) {
 			if (_talkAnimName.compareToIgnoreCase(_anims[i]->getName()) == 0) {
 				talkAnims.add(_anims[i]);
 			}
@@ -1368,7 +1368,7 @@ BaseSprite *AdActor::getTalkStanceOld(const char *stance) {
 
 	if (stance != nullptr) {
 		// search special stances
-		for (uint32 i = 0; i < _talkSpritesEx.getSize(); i++) {
+		for (int32 i = 0; i < _talkSpritesEx.getSize(); i++) {
 			if (scumm_stricmp(_talkSpritesEx[i]->getName(), stance) == 0) {
 				ret = _talkSpritesEx[i]->getSprite(_dir);
 				break;
@@ -1376,7 +1376,7 @@ BaseSprite *AdActor::getTalkStanceOld(const char *stance) {
 		}
 		if (ret == nullptr) {
 			// search generic stances
-			for (uint32 i = 0; i < _talkSprites.getSize(); i++) {
+			for (int32 i = 0; i < _talkSprites.getSize(); i++) {
 				if (scumm_stricmp(_talkSprites[i]->getName(), stance) == 0) {
 					ret = _talkSprites[i]->getSprite(_dir);
 					break;
@@ -1482,7 +1482,7 @@ AdSpriteSet *AdActor::getAnimByName(const Common::String &animName) {
 	if (animName.empty())
 		return nullptr;
 
-	for (uint32 i = 0; i < _anims.getSize(); i++) {
+	for (int32 i = 0; i < _anims.getSize(); i++) {
 		if (animName.compareToIgnoreCase(_anims[i]->getName()) == 0) {
 			return _anims[i];
 		}
diff --git a/engines/wintermute/ad/ad_actor_3dx.cpp b/engines/wintermute/ad/ad_actor_3dx.cpp
index a7e4738958d..fb5ccb31464 100644
--- a/engines/wintermute/ad/ad_actor_3dx.cpp
+++ b/engines/wintermute/ad/ad_actor_3dx.cpp
@@ -104,13 +104,13 @@ AdActor3DX::AdActor3DX(BaseGame *inGame) : AdObject3D(inGame) {
 //////////////////////////////////////////////////////////////////////////
 AdActor3DX::~AdActor3DX() {
 	// delete attachments
-	for (uint32 i = 0; i < _attachments.getSize(); i++) {
+	for (int32 i = 0; i < _attachments.getSize(); i++) {
 		delete _attachments[i];
 	}
 	_attachments.removeAll();
 
 	// delete transition times
-	for (uint32 i = 0; i < _transitionTimes.getSize(); i++) {
+	for (int32 i = 0; i < _transitionTimes.getSize(); i++) {
 		delete _transitionTimes[i];
 	}
 	_transitionTimes.removeAll();
@@ -499,7 +499,7 @@ bool AdActor3DX::displayShadowVolume() {
 	_gameRef->_renderer3D->getWorldTransform(&origWorld);
 
 	// handle the attachments
-	for (uint32 i = 0; i < _attachments.getSize(); i++) {
+	for (int32 i = 0; i < _attachments.getSize(); i++) {
 		AdAttach3DX *at = _attachments[i];
 
 		if (!at->_active) {
@@ -557,7 +557,7 @@ bool AdActor3DX::displayFlatShadow() {
 
 //////////////////////////////////////////////////////////////////////////
 bool AdActor3DX::updateAttachments() {
-	for (uint32 i = 0; i < _attachments.getSize(); i++) {
+	for (int32 i = 0; i < _attachments.getSize(); i++) {
 		if (_attachments[i]->_active) {
 			_attachments[i]->update();
 		}
@@ -578,7 +578,7 @@ bool AdActor3DX::displayAttachments(bool registerObjects) {
 	DXMatrix origView;
 	_gameRef->_renderer3D->getWorldTransform(&origView);
 
-	for (uint32 i = 0; i < _attachments.getSize(); i++) {
+	for (int32 i = 0; i < _attachments.getSize(); i++) {
 		AdAttach3DX *at = _attachments[i];
 		if (!at->_active) {
 			continue;
@@ -1454,7 +1454,7 @@ bool AdActor3DX::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisSta
 					stack->pushBool(false);
 				} else {
 					bool isSet = false;
-					for (uint32 i = 0; i < _attachments.getSize(); i++) {
+					for (int32 i = 0; i < _attachments.getSize(); i++) {
 						if (scumm_stricmp(_attachments[i]->getName(), attachName) == 0) {
 							delete _attachments[i];
 							_attachments[i] = at;
@@ -1488,7 +1488,7 @@ bool AdActor3DX::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisSta
 			stack->pushBool(false);
 		} else {
 			bool isFound = false;
-			for (uint32 i = 0; i < _attachments.getSize(); i++) {
+			for (int32 i = 0; i < _attachments.getSize(); i++) {
 				if (scumm_stricmp(_attachments[i]->getName(), attachmentName) == 0) {
 					delete _attachments[i];
 					_attachments.removeAt(i);
@@ -1512,7 +1512,7 @@ bool AdActor3DX::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisSta
 			stack->pushNULL();
 		} else {
 			bool isFound = false;
-			for (uint32 i = 0; i < _attachments.getSize(); i++) {
+			for (int32 i = 0; i < _attachments.getSize(); i++) {
 				if (scumm_stricmp(_attachments[i]->getName(), attachmentName) == 0) {
 					stack->pushNative(_attachments[i], true);
 					isFound = true;
@@ -1981,7 +1981,7 @@ bool AdActor3DX::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisSta
 		int time = stack->pop()->getInt();
 
 		bool found = false;
-		for (uint32 i = 0; i < _transitionTimes.getSize(); i++) {
+		for (int32 i = 0; i < _transitionTimes.getSize(); i++) {
 			BaseAnimationTransitionTime *trans = _transitionTimes[i];
 			if (!trans->_animFrom.empty() && !trans->_animTo.empty() && trans->_animFrom.compareToIgnoreCase(animFrom) == 0 && trans->_animTo.compareToIgnoreCase(animTo) == 0) {
 				found = true;
@@ -2012,7 +2012,7 @@ bool AdActor3DX::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisSta
 		const char *animTo = stack->pop()->getString();
 
 		int time = -1;
-		for (uint32 i = 0; i < _transitionTimes.getSize(); i++) {
+		for (int32 i = 0; i < _transitionTimes.getSize(); i++) {
 			BaseAnimationTransitionTime *trans = _transitionTimes[i];
 
 			if (!trans->_animFrom.empty() && !trans->_animTo.empty() && trans->_animFrom.compareToIgnoreCase(animFrom) == 0 && trans->_animTo.compareToIgnoreCase(animTo) == 0) {
@@ -2313,13 +2313,13 @@ bool AdActor3DX::persist(BasePersistenceManager *persistMgr) {
 	if (persistMgr->getIsSaving()) {
 		int32 numItems = _transitionTimes.getSize();
 		persistMgr->transferSint32(TMEMBER(numItems));
-		for (uint32 i = 0; i < _transitionTimes.getSize(); i++) {
+		for (int32 i = 0; i < _transitionTimes.getSize(); i++) {
 			_transitionTimes[i]->persist(persistMgr);
 		}
 	} else {
 		int32 numItems = _transitionTimes.getSize();
 		persistMgr->transferSint32(TMEMBER(numItems));
-		for (int i = 0; i < numItems; i++) {
+		for (int32 i = 0; i < numItems; i++) {
 			BaseAnimationTransitionTime *trans = new BaseAnimationTransitionTime();
 			trans->persist(persistMgr);
 			_transitionTimes.add(trans);
@@ -2341,7 +2341,7 @@ bool AdActor3DX::invalidateDeviceObjects() {
 	if (_shadowModel)
 		_shadowModel->invalidateDeviceObjects();
 
-	for (uint32 i = 0; i < _attachments.getSize(); i++) {
+	for (int32 i = 0; i < _attachments.getSize(); i++) {
 		_attachments[i]->invalidateDeviceObjects();
 	}
 
@@ -2358,7 +2358,7 @@ bool AdActor3DX::restoreDeviceObjects() {
 		_shadowModel->restoreDeviceObjects();
 	}
 
-	for (uint32 i = 0; i < _attachments.getSize(); i++) {
+	for (int32 i = 0; i < _attachments.getSize(); i++) {
 		_attachments[i]->restoreDeviceObjects();
 	}
 
@@ -2447,7 +2447,7 @@ bool AdActor3DX::isGoToNeeded(int x, int y) {
 
 //////////////////////////////////////////////////////////////////////////
 uint32 AdActor3DX::getAnimTransitionTime(char *from, char *to) {
-	for (uint32 i = 0; i < _transitionTimes.getSize(); i++) {
+	for (int32 i = 0; i < _transitionTimes.getSize(); i++) {
 		BaseAnimationTransitionTime *trans = _transitionTimes[i];
 		if (!trans->_animFrom.empty() && !trans->_animTo.empty() && trans->_animFrom.compareToIgnoreCase(from) == 0 && trans->_animTo.compareToIgnoreCase(to) == 0) {
 			return trans->_time;
diff --git a/engines/wintermute/ad/ad_entity.cpp b/engines/wintermute/ad/ad_entity.cpp
index 06678f31ddb..6aedec564d5 100644
--- a/engines/wintermute/ad/ad_entity.cpp
+++ b/engines/wintermute/ad/ad_entity.cpp
@@ -860,12 +860,12 @@ bool AdEntity::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
 			return STATUS_OK;
 		}
 
-		for (uint32 i = 0; i < ((AdGame *)_gameRef)->_scene->_layers.getSize(); i++) {
+		for (int32 i = 0; i < ((AdGame *)_gameRef)->_scene->_layers.getSize(); i++) {
 			AdLayer *layer = ((AdGame *)_gameRef)->_scene->_layers[i];
-			for (uint32 j = 0; j < layer->_nodes.getSize(); j++) {
+			for (int32 j = 0; j < layer->_nodes.getSize(); j++) {
 				if (layer->_nodes[j]->_type == OBJECT_ENTITY && this == layer->_nodes[j]->_entity) {
 					// found source layer and index, looking for target node
-					for (uint32 k = 0; k < layer->_nodes.getSize(); k++) {
+					for (int32 k = 0; k < layer->_nodes.getSize(); k++) {
 						if (layer->_nodes[k]->_type == OBJECT_ENTITY && strcmp(layer->_nodes[k]->_entity->getName(), nodeName) == 0) {
 							// update target index, depending on method name and comparison of index values
 							if (j < k && strcmp(name, "SetBeforeEntity") == 0) {
@@ -877,7 +877,7 @@ bool AdEntity::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
 							// shift layer nodes array between source and target
 							int32 delta = j <= k ? 1 : -1;
 							AdSceneNode *tmp = layer->_nodes[j];
-							for (int32 x = j; x != (int32)k; x += delta) {
+							for (int32 x = j; x != k; x += delta) {
 								layer->_nodes[x] = layer->_nodes[x + delta];
 							}
 							layer->_nodes[k] = tmp;
@@ -903,9 +903,9 @@ bool AdEntity::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
 	else if (strcmp(name, "GetLayer") == 0 || strcmp(name, "GetIndex") == 0) {
 		stack->correctParams(0);
 
-		for (uint32 i = 0; i < ((AdGame *)_gameRef)->_scene->_layers.getSize(); i++) {
+		for (int32 i = 0; i < ((AdGame *)_gameRef)->_scene->_layers.getSize(); i++) {
 			AdLayer *layer = ((AdGame *)_gameRef)->_scene->_layers[i];
-			for (uint32 j = 0; j < layer->_nodes.getSize(); j++) {
+			for (int32 j = 0; j < layer->_nodes.getSize(); j++) {
 				if (layer->_nodes[j]->_type == OBJECT_ENTITY && this == layer->_nodes[j]->_entity) {
 					if (strcmp(name, "GetLayer") == 0) {
 						stack->pushNative(layer, true);
@@ -1168,7 +1168,7 @@ bool AdEntity::saveAsText(BaseDynamicBuffer *buffer, int indent) {
 	buffer->putTextIndent(indent + 2, "HINT_Y=%d\n", _hintY);
 #endif
 
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		buffer->putTextIndent(indent + 2, "SCRIPT=\"%s\"\n", _scripts[i]->_filename);
 	}
 
diff --git a/engines/wintermute/ad/ad_game.cpp b/engines/wintermute/ad/ad_game.cpp
index f6c311ec6d8..6aaf1c2f1fb 100644
--- a/engines/wintermute/ad/ad_game.cpp
+++ b/engines/wintermute/ad/ad_game.cpp
@@ -129,19 +129,19 @@ AdGame::~AdGame() {
 
 //////////////////////////////////////////////////////////////////////////
 bool AdGame::cleanup() {
-	for (uint32 i = 0; i < _objects.getSize(); i++) {
+	for (int32 i = 0; i < _objects.getSize(); i++) {
 		unregisterObject(_objects[i]);
 		_objects[i] = nullptr;
 	}
 	_objects.removeAll();
 
 
-	for (uint32 i = 0; i < _dlgPendingBranches.getSize(); i++) {
+	for (int32 i = 0; i < _dlgPendingBranches.getSize(); i++) {
 		delete[] _dlgPendingBranches[i];
 	}
 	_dlgPendingBranches.removeAll();
 
-	for (uint32 i = 0; i < _speechDirs.getSize(); i++) {
+	for (int32 i = 0; i < _speechDirs.getSize(); i++) {
 		delete[] _speechDirs[i];
 	}
 	_speechDirs.removeAll();
@@ -151,7 +151,7 @@ bool AdGame::cleanup() {
 	_scene = nullptr;
 
 	// remove items
-	for (uint32 i = 0; i < _items.getSize(); i++) {
+	for (int32 i = 0; i < _items.getSize(); i++) {
 		_gameRef->unregisterObject(_items[i]);
 	}
 	_items.removeAll();
@@ -161,7 +161,7 @@ bool AdGame::cleanup() {
 	delete _invObject;
 	_invObject = nullptr;
 
-	for (uint32 i = 0; i < _inventories.getSize(); i++) {
+	for (int32 i = 0; i < _inventories.getSize(); i++) {
 		delete _inventories[i];
 	}
 	_inventories.removeAll();
@@ -192,17 +192,17 @@ bool AdGame::cleanup() {
 	delete _sceneViewport;
 	_sceneViewport = nullptr;
 
-	for (uint32 i = 0; i < _sceneStates.getSize(); i++) {
+	for (int32 i = 0; i < _sceneStates.getSize(); i++) {
 		delete _sceneStates[i];
 	}
 	_sceneStates.removeAll();
 
-	for (uint32 i = 0; i < _responsesBranch.getSize(); i++) {
+	for (int32 i = 0; i < _responsesBranch.getSize(); i++) {
 		delete _responsesBranch[i];
 	}
 	_responsesBranch.removeAll();
 
-	for (uint32 i = 0; i < _responsesGame.getSize(); i++) {
+	for (int32 i = 0; i < _responsesGame.getSize(); i++) {
 		delete _responsesGame[i];
 	}
 	_responsesGame.removeAll();
@@ -265,7 +265,7 @@ bool AdGame::removeObject(AdObject *object) {
 		}
 	}
 
-	for (uint32 i = 0; i < _objects.getSize(); i++) {
+	for (int32 i = 0; i < _objects.getSize(); i++) {
 		if (_objects[i] == object) {
 			_objects.removeAt(i);
 			break;
@@ -295,7 +295,7 @@ bool AdGame::changeScene(const char *filename, bool fadeIn) {
 
 	if (_scene) {
 		// reset objects
-		for (uint32 i = 0; i < _objects.getSize(); i++) {
+		for (int32 i = 0; i < _objects.getSize(); i++) {
 			_objects[i]->reset();
 		}
 
@@ -315,7 +315,7 @@ bool AdGame::changeScene(const char *filename, bool fadeIn) {
 
 		if (DID_SUCCEED(ret)) {
 			// invalidate references to the original scene
-			for (uint32 i = 0; i < _objects.getSize(); i++) {
+			for (int32 i = 0; i < _objects.getSize(); i++) {
 				_objects[i]->invalidateCurrRegions();
 				_objects[i]->_stickRegion = nullptr;
 			}
@@ -341,7 +341,7 @@ void AdGame::addSentence(AdSentence *sentence) {
 
 //////////////////////////////////////////////////////////////////////////
 bool AdGame::displaySentences(bool frozen) {
-	for (uint32 i = 0; i < _sentences.getSize(); i++) {
+	for (int32 i = 0; i < _sentences.getSize(); i++) {
 		if (frozen && _sentences[i]->_freezable) {
 			continue;
 		} else {
@@ -354,7 +354,7 @@ bool AdGame::displaySentences(bool frozen) {
 
 //////////////////////////////////////////////////////////////////////////
 void AdGame::finishSentences() {
-	for (uint32 i = 0; i < _sentences.getSize(); i++) {
+	for (int32 i = 0; i < _sentences.getSize(); i++) {
 		if (_sentences[i]->canSkip()) {
 			_sentences[i]->_duration = 0;
 			if (_sentences[i]->_sound) {
@@ -545,7 +545,7 @@ bool AdGame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
 		AdItem *item = nullptr;
 		if (val->isInt()) {
 			int32 index = val->getInt();
-			if (index >= 0 && index < (int32)_items.getSize()) {
+			if (index >= 0 && index < _items.getSize()) {
 				item = _items[index];
 			}
 		} else {
@@ -776,10 +776,10 @@ bool AdGame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
 
 		ScValue *val = stack->pop();
 		if (!val->isNULL()) {
-			for (uint32 i = 0; i < _inventories.getSize(); i++) {
+			for (int32 i = 0; i < _inventories.getSize(); i++) {
 				AdInventory *inv = _inventories[i];
 
-				for (uint32 j = 0; j < inv->_takenItems.getSize(); j++) {
+				for (int32 j = 0; j < inv->_takenItems.getSize(); j++) {
 					if (val->getNative() == inv->_takenItems[j]) {
 						stack->pushBool(true);
 						return STATUS_OK;
@@ -1153,7 +1153,7 @@ bool AdGame::scSetProperty(const char *name, ScValue *value) {
 		} else {
 			if (value->isNative()) {
 				_selectedItem = nullptr;
-				for (uint32 i = 0; i < _items.getSize(); i++) {
+				for (int32 i = 0; i < _items.getSize(); i++) {
 					if (_items[i] == value->getNative()) {
 						_selectedItem = (AdItem *)value->getNative();
 						break;
@@ -1666,7 +1666,7 @@ bool AdGame::handleCustomActionStart(BaseGameCustomAction action) {
 		p.y = yCenter;
 		// Looking through all objects for entities near to the center
 		if (_scene && _scene->getSceneObjects(objects, true)) {
-			for (uint32 i = 0; i < objects.getSize(); i++) {
+			for (int32 i = 0; i < objects.getSize(); i++) {
 				BaseRegion *region;
 				if (objects[i]->getType() != OBJECT_ENTITY ||
 					!objects[i]->_active ||
@@ -1829,7 +1829,7 @@ AdSceneState *AdGame::getSceneState(const char *filename, bool saving) {
 		}
 	}
 
-	for (uint32 i = 0; i < _sceneStates.getSize(); i++) {
+	for (int32 i = 0; i < _sceneStates.getSize(); i++) {
 		if (scumm_stricmp(_sceneStates[i]->getFilename(), filenameCor) == 0) {
 			delete[] filenameCor;
 			return _sceneStates[i];
@@ -1941,14 +1941,14 @@ bool AdGame::endDlgBranch(const char *branchName, const char *scriptName, const
 
 
 	int startIndex = -1;
-	for (int32 i = (int32)_dlgPendingBranches.getSize() - 1; i >= 0; i--) {
+	for (int32 i = _dlgPendingBranches.getSize() - 1; i >= 0; i--) {
 		if (scumm_stricmp(name, _dlgPendingBranches[i]) == 0) {
 			startIndex = i;
 			break;
 		}
 	}
 	if (startIndex >= 0) {
-		for (uint32 i = startIndex; i < _dlgPendingBranches.getSize(); i++) {
+		for (int32 i = startIndex; i < _dlgPendingBranches.getSize(); i++) {
 			//ClearBranchResponses(_dlgPendingBranches[i]);
 			delete[] _dlgPendingBranches[i];
 			_dlgPendingBranches[i] = nullptr;
@@ -1958,7 +1958,7 @@ bool AdGame::endDlgBranch(const char *branchName, const char *scriptName, const
 
 	// dialogue is over, forget selected responses
 	if (_dlgPendingBranches.getSize() == 0) {
-		for (uint32 i = 0; i < _responsesBranch.getSize(); i++) {
+		for (int32 i = 0; i < _responsesBranch.getSize(); i++) {
 			delete _responsesBranch[i];
 		}
 		_responsesBranch.removeAll();
@@ -1974,7 +1974,7 @@ bool AdGame::endDlgBranch(const char *branchName, const char *scriptName, const
 
 //////////////////////////////////////////////////////////////////////////
 bool AdGame::clearBranchResponses(char *name) {
-	for (int32 i = 0; i < (int32)_responsesBranch.getSize(); i++) {
+	for (int32 i = 0; i < _responsesBranch.getSize(); i++) {
 		if (scumm_stricmp(name, _responsesBranch[i]->getContext()) == 0) {
 			delete _responsesBranch[i];
 			_responsesBranch.removeAt(i);
@@ -2001,7 +2001,7 @@ bool AdGame::addBranchResponse(int id) {
 //////////////////////////////////////////////////////////////////////////
 bool AdGame::branchResponseUsed(int id) const {
 	char *context = _dlgPendingBranches.getSize() > 0 ? _dlgPendingBranches[_dlgPendingBranches.getSize() - 1] : nullptr;
-	for (uint32 i = 0; i < _responsesBranch.getSize(); i++) {
+	for (int32 i = 0; i < _responsesBranch.getSize(); i++) {
 		if (_responsesBranch[i]->_id == id) {
 			if ((context == nullptr && _responsesBranch[i]->getContext() == nullptr) || (context != nullptr && scumm_stricmp(context, _responsesBranch[i]->getContext()) == 0)) {
 				return true;
@@ -2028,7 +2028,7 @@ bool AdGame::addGameResponse(int id) {
 //////////////////////////////////////////////////////////////////////////
 bool AdGame::gameResponseUsed(int id) const {
 	char *context = _dlgPendingBranches.getSize() > 0 ? _dlgPendingBranches[_dlgPendingBranches.getSize() - 1] : nullptr;
-	for (uint32 i = 0; i < _responsesGame.getSize(); i++) {
+	for (int32 i = 0; i < _responsesGame.getSize(); i++) {
 		const AdResponseContext *respContext = _responsesGame[i];
 		if (respContext->_id == id) {
 			if ((context == nullptr && respContext->getContext() == nullptr) || ((context != nullptr && respContext->getContext() != nullptr) && (context != nullptr && scumm_stricmp(context, respContext->getContext()) == 0))) {
@@ -2044,7 +2044,7 @@ bool AdGame::gameResponseUsed(int id) const {
 bool AdGame::resetResponse(int id) {
 	char *context = _dlgPendingBranches.getSize() > 0 ? _dlgPendingBranches[_dlgPendingBranches.getSize() - 1] : nullptr;
 
-	for (uint32 i = 0; i < _responsesGame.getSize(); i++) {
+	for (int32 i = 0; i < _responsesGame.getSize(); i++) {
 		if (_responsesGame[i]->_id == id) {
 			if ((context == nullptr && _responsesGame[i]->getContext() == nullptr) || (context != nullptr && scumm_stricmp(context, _responsesGame[i]->getContext()) == 0)) {
 				delete _responsesGame[i];
@@ -2054,7 +2054,7 @@ bool AdGame::resetResponse(int id) {
 		}
 	}
 
-	for (uint32 i = 0; i < _responsesBranch.getSize(); i++) {
+	for (int32 i = 0; i < _responsesBranch.getSize(); i++) {
 		if (_responsesBranch[i]->_id == id) {
 			if ((context == nullptr && _responsesBranch[i]->getContext() == nullptr) || (context != nullptr && scumm_stricmp(context, _responsesBranch[i]->getContext()) == 0)) {
 				delete _responsesBranch[i];
@@ -2159,7 +2159,7 @@ bool AdGame::displayContent(bool doUpdate, bool displayAll) {
 
 //////////////////////////////////////////////////////////////////////////
 bool AdGame::registerInventory(AdInventory *inv) {
-	for (uint32 i = 0; i < _inventories.getSize(); i++) {
+	for (int32 i = 0; i < _inventories.getSize(); i++) {
 		if (_inventories[i] == inv) {
 			return STATUS_OK;
 		}
@@ -2172,7 +2172,7 @@ bool AdGame::registerInventory(AdInventory *inv) {
 
 //////////////////////////////////////////////////////////////////////////
 bool AdGame::unregisterInventory(AdInventory *inv) {
-	for (uint32 i = 0; i < _inventories.getSize(); i++) {
+	for (int32 i = 0; i < _inventories.getSize(); i++) {
 		if (_inventories[i] == inv) {
 			unregisterObject(_inventories[i]);
 			_inventories.removeAt(i);
@@ -2184,10 +2184,10 @@ bool AdGame::unregisterInventory(AdInventory *inv) {
 
 //////////////////////////////////////////////////////////////////////////
 bool AdGame::isItemTaken(char *itemName) {
-	for (uint32 i = 0; i < _inventories.getSize(); i++) {
+	for (int32 i = 0; i < _inventories.getSize(); i++) {
 		AdInventory *inv = _inventories[i];
 
-		for (uint32 j = 0; j < inv->_takenItems.getSize(); j++) {
+		for (int32 j = 0; j < inv->_takenItems.getSize(); j++) {
 			if (scumm_stricmp(itemName, inv->_takenItems[j]->getName()) == 0) {
 				return true;
 			}
@@ -2198,7 +2198,7 @@ bool AdGame::isItemTaken(char *itemName) {
 
 //////////////////////////////////////////////////////////////////////////
 AdItem *AdGame::getItemByName(const char *name) const {
-	for (uint32 i = 0; i < _items.getSize(); i++) {
+	for (int32 i = 0; i < _items.getSize(); i++) {
 		if (scumm_stricmp(_items[i]->getName(), name) == 0) {
 			return _items[i];
 		}
@@ -2217,31 +2217,31 @@ bool AdGame::addItem(AdItem *item) {
 //////////////////////////////////////////////////////////////////////////
 bool AdGame::resetContent() {
 	// clear pending dialogs
-	for (uint32 i = 0; i < _dlgPendingBranches.getSize(); i++) {
+	for (int32 i = 0; i < _dlgPendingBranches.getSize(); i++) {
 		delete[] _dlgPendingBranches[i];
 	}
 	_dlgPendingBranches.removeAll();
 
 
 	// clear inventories
-	for (uint32 i = 0; i < _inventories.getSize(); i++) {
+	for (int32 i = 0; i < _inventories.getSize(); i++) {
 		_inventories[i]->_takenItems.removeAll();
 	}
 
 	// clear scene states
-	for (uint32 i = 0; i < _sceneStates.getSize(); i++) {
+	for (int32 i = 0; i < _sceneStates.getSize(); i++) {
 		delete _sceneStates[i];
 	}
 	_sceneStates.removeAll();
 
 	// clear once responses
-	for (uint32 i = 0; i < _responsesBranch.getSize(); i++) {
+	for (int32 i = 0; i < _responsesBranch.getSize(); i++) {
 		delete _responsesBranch[i];
 	}
 	_responsesBranch.removeAll();
 
 	// clear once game responses
-	for (uint32 i = 0; i < _responsesGame.getSize(); i++) {
+	for (int32 i = 0; i < _responsesGame.getSize(); i++) {
 		delete _responsesGame[i];
 	}
 	_responsesGame.removeAll();
@@ -2269,12 +2269,12 @@ bool AdGame::deleteItem(AdItem *item) {
 	_scene->handleItemAssociations(item->getName(), false);
 
 	// remove from all inventories
-	for (uint32 i = 0; i < _inventories.getSize(); i++) {
+	for (int32 i = 0; i < _inventories.getSize(); i++) {
 		_inventories[i]->removeItem(item);
 	}
 
 	// remove object
-	for (uint32 i = 0; i < _items.getSize(); i++) {
+	for (int32 i = 0; i < _items.getSize(); i++) {
 		if (_items[i] == item) {
 			unregisterObject(_items[i]);
 			_items.removeAt(i);
@@ -2299,7 +2299,7 @@ bool AdGame::addSpeechDir(const char *dir) {
 		Common::strcat_s(temp, dirSize, "\\");
 	}
 
-	for (uint32 i = 0; i < _speechDirs.getSize(); i++) {
+	for (int32 i = 0; i < _speechDirs.getSize(); i++) {
 		if (scumm_stricmp(_speechDirs[i], temp) == 0) {
 			delete[] temp;
 			return STATUS_OK;
@@ -2325,7 +2325,7 @@ bool AdGame::removeSpeechDir(const char *dir) {
 	}
 
 	bool found = false;
-	for (uint32 i = 0; i < _speechDirs.getSize(); i++) {
+	for (int32 i = 0; i < _speechDirs.getSize(); i++) {
 		if (scumm_stricmp(_speechDirs[i], temp) == 0) {
 			delete[] _speechDirs[i];
 			_speechDirs.removeAt(i);
@@ -2343,7 +2343,7 @@ bool AdGame::removeSpeechDir(const char *dir) {
 char *AdGame::findSpeechFile(char *stringID) {
 	char *ret = new char[MAX_PATH_LENGTH];
 
-	for (uint32 i = 0; i < _speechDirs.getSize(); i++) {
+	for (int32 i = 0; i < _speechDirs.getSize(); i++) {
 		Common::sprintf_s(ret, MAX_PATH_LENGTH, "%s%s.ogg", _speechDirs[i], stringID);
 		if (BaseFileManager::getEngineInstance()->hasFile(ret)) {
 			return ret;
diff --git a/engines/wintermute/ad/ad_geom_ext.cpp b/engines/wintermute/ad/ad_geom_ext.cpp
index 7cb20f7c075..793401198dd 100644
--- a/engines/wintermute/ad/ad_geom_ext.cpp
+++ b/engines/wintermute/ad/ad_geom_ext.cpp
@@ -41,7 +41,7 @@ AdGeomExt::AdGeomExt(BaseGame *in_gameRef) : BaseClass(in_gameRef) {
 
 //////////////////////////////////////////////////////////////////////////
 AdGeomExt::~AdGeomExt() {
-	for (uint32 i = 0; i < _nodes.getSize(); i++) {
+	for (int32 i = 0; i < _nodes.getSize(); i++) {
 		delete _nodes[i];
 		_nodes[i] = nullptr;
 	}
@@ -145,7 +145,7 @@ AdGeomExtNode *AdGeomExt::matchName(const char *name) {
 		return nullptr;
 	}
 
-	for (uint32 i = 0; i < _nodes.getSize(); i++) {
+	for (int32 i = 0; i < _nodes.getSize(); i++) {
 		if (_nodes[i]->matchesName(name)) {
 			return _nodes[i];
 		}
diff --git a/engines/wintermute/ad/ad_inventory.cpp b/engines/wintermute/ad/ad_inventory.cpp
index 9dc0c9df1f7..ab6d77353a9 100644
--- a/engines/wintermute/ad/ad_inventory.cpp
+++ b/engines/wintermute/ad/ad_inventory.cpp
@@ -59,7 +59,7 @@ bool AdInventory::insertItem(const char *name, const char *insertAfter) {
 	}
 
 	int32 insertIndex = -1;
-	for (int32 i = 0; i < (int32)_takenItems.getSize(); i++) {
+	for (int32 i = 0; i < _takenItems.getSize(); i++) {
 		if (scumm_stricmp(_takenItems[i]->getName(), name) == 0) {
 			_takenItems.removeAt(i);
 			i--;
@@ -87,7 +87,7 @@ bool AdInventory::removeItem(const char *name) {
 		return STATUS_FAILED;
 	}
 
-	for (uint32 i = 0; i < _takenItems.getSize(); i++) {
+	for (int32 i = 0; i < _takenItems.getSize(); i++) {
 		if (scumm_stricmp(_takenItems[i]->getName(), name) == 0) {
 			if (((AdGame *)_gameRef)->_selectedItem == _takenItems[i]) {
 				((AdGame *)_gameRef)->_selectedItem = nullptr;
@@ -108,7 +108,7 @@ bool AdInventory::removeItem(AdItem *item) {
 		return STATUS_FAILED;
 	}
 
-	for (uint32 i = 0; i < _takenItems.getSize(); i++) {
+	for (int32 i = 0; i < _takenItems.getSize(); i++) {
 		if (_takenItems[i] == item) {
 			if (((AdGame *)_gameRef)->_selectedItem == _takenItems[i]) {
 				((AdGame *)_gameRef)->_selectedItem = nullptr;
diff --git a/engines/wintermute/ad/ad_inventory_box.cpp b/engines/wintermute/ad/ad_inventory_box.cpp
index 235ecd091f7..1eb8353f90a 100644
--- a/engines/wintermute/ad/ad_inventory_box.cpp
+++ b/engines/wintermute/ad/ad_inventory_box.cpp
@@ -113,7 +113,7 @@ bool AdInventoryBox::display() {
 
 	if (_window) {
 		_window->enableWidget("prev", _scrollOffset > 0);
-		_window->enableWidget("next", _scrollOffset + itemsX * itemsY < (int32)adGame->_inventoryOwner->getInventory()->_takenItems.getSize());
+		_window->enableWidget("next", _scrollOffset + itemsX * itemsY < adGame->_inventoryOwner->getInventory()->_takenItems.getSize());
 	}
 
 
@@ -142,7 +142,7 @@ bool AdInventoryBox::display() {
 		int xxx = rect.left;
 		for (int i = 0; i < itemsX; i++) {
 			int itemIndex = _scrollOffset + j * itemsX + i;
-			if (itemIndex >= 0 && itemIndex < (int32)adGame->_inventoryOwner->getInventory()->_takenItems.getSize()) {
+			if (itemIndex >= 0 && itemIndex < adGame->_inventoryOwner->getInventory()->_takenItems.getSize()) {
 				AdItem *item = adGame->_inventoryOwner->getInventory()->_takenItems[itemIndex];
 				if (item != ((AdGame *)_gameRef)->_selectedItem || !_hideSelected) {
 					item->update();
@@ -324,7 +324,7 @@ bool AdInventoryBox::loadBuffer(char *buffer, bool complete) {
 	_visible = alwaysVisible;
 
 	if (_window) {
-		for (uint32 i = 0; i < _window->_widgets.getSize(); i++) {
+		for (int32 i = 0; i < _window->_widgets.getSize(); i++) {
 			if (!_window->_widgets[i]->getListener()) {
 				_window->_widgets[i]->setListener(this, _window->_widgets[i], 0);
 			}
diff --git a/engines/wintermute/ad/ad_layer.cpp b/engines/wintermute/ad/ad_layer.cpp
index c8e8042d6cb..42cd9e4ee47 100644
--- a/engines/wintermute/ad/ad_layer.cpp
+++ b/engines/wintermute/ad/ad_layer.cpp
@@ -52,7 +52,7 @@ AdLayer::AdLayer(BaseGame *inGame) : BaseObject(inGame) {
 
 //////////////////////////////////////////////////////////////////////////
 AdLayer::~AdLayer() {
-	for (uint32 i = 0; i < _nodes.getSize(); i++) {
+	for (int32 i = 0; i < _nodes.getSize(); i++) {
 		delete _nodes[i];
 	}
 	_nodes.removeAll();
@@ -241,7 +241,7 @@ bool AdLayer::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
 		if (val->_type == VAL_INT) {
 			node = val->getInt();
 		} else { // get by name
-			for (uint32 i = 0; i < _nodes.getSize(); i++) {
+			for (int32 i = 0; i < _nodes.getSize(); i++) {
 				if ((_nodes[i]->_type == OBJECT_ENTITY && scumm_stricmp(_nodes[i]->_entity->getName(), val->getString()) == 0) ||
 				        (_nodes[i]->_type == OBJECT_REGION && scumm_stricmp(_nodes[i]->_region->getName(), val->getString()) == 0)) {
 					node = i;
@@ -250,7 +250,7 @@ bool AdLayer::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
 			}
 		}
 
-		if (node < 0 || node >= (int32)_nodes.getSize()) {
+		if (node < 0 || node >= _nodes.getSize()) {
 			stack->pushNULL();
 		} else {
 			switch (_nodes[node]->_type) {
@@ -321,7 +321,7 @@ bool AdLayer::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
 		if (index < 0) {
 			index = 0;
 		}
-		if (index <= (int32)_nodes.getSize() - 1) {
+		if (index <= _nodes.getSize() - 1) {
 			_nodes.insertAt(index, node);
 		} else {
 			_nodes.add(node);
@@ -340,7 +340,7 @@ bool AdLayer::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
 		AdSceneNode *toDelete = nullptr;
 		if (val->isNative()) {
 			BaseScriptable *temp = val->getNative();
-			for (uint32 i = 0; i < _nodes.getSize(); i++) {
+			for (int32 i = 0; i < _nodes.getSize(); i++) {
 				if (_nodes[i]->_region == temp || _nodes[i]->_entity == temp) {
 					toDelete = _nodes[i];
 					break;
@@ -348,7 +348,7 @@ bool AdLayer::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
 			}
 		} else {
 			int32 index = val->getInt();
-			if (index >= 0 && index < (int32)_nodes.getSize()) {
+			if (index >= 0 && index < _nodes.getSize()) {
 				toDelete = _nodes[index];
 			}
 		}
@@ -357,7 +357,7 @@ bool AdLayer::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
 			return STATUS_OK;
 		}
 
-		for (uint32 i = 0; i < _nodes.getSize(); i++) {
+		for (int32 i = 0; i < _nodes.getSize(); i++) {
 			if (_nodes[i] == toDelete) {
 				delete _nodes[i];
 				_nodes[i] = nullptr;
@@ -514,7 +514,7 @@ bool AdLayer::saveAsText(BaseDynamicBuffer *buffer, int indent) {
 		buffer->putTextIndent(indent + 2, "CLOSE_UP=%s\n", _closeUp ? "TRUE" : "FALSE");
 	}
 
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		buffer->putTextIndent(indent + 2, "SCRIPT=\"%s\"\n", _scripts[i]->_filename);
 	}
 
@@ -522,7 +522,7 @@ bool AdLayer::saveAsText(BaseDynamicBuffer *buffer, int indent) {
 		_scProp->saveAsText(buffer, indent + 2);
 	}
 
-	for (uint32 i = 0; i < _nodes.getSize(); i++) {
+	for (int32 i = 0; i < _nodes.getSize(); i++) {
 		switch (_nodes[i]->_type) {
 		case OBJECT_ENTITY:
 			_nodes[i]->_entity->saveAsText(buffer, indent + 2);
diff --git a/engines/wintermute/ad/ad_object.cpp b/engines/wintermute/ad/ad_object.cpp
index 6e76a60869c..b4f27e2a09f 100644
--- a/engines/wintermute/ad/ad_object.cpp
+++ b/engines/wintermute/ad/ad_object.cpp
@@ -143,12 +143,12 @@ AdObject::~AdObject() {
 	}
 
 
-	for (uint32 i = 0; i < _attachmentsPre.getSize(); i++) {
+	for (int32 i = 0; i < _attachmentsPre.getSize(); i++) {
 		_gameRef->unregisterObject(_attachmentsPre[i]);
 	}
 	_attachmentsPre.removeAll();
 
-	for (uint32 i = 0; i < _attachmentsPost.getSize(); i++) {
+	for (int32 i = 0; i < _attachmentsPost.getSize(); i++) {
 		_gameRef->unregisterObject(_attachmentsPost[i]);
 	}
 	_attachmentsPost.removeAll();
@@ -305,7 +305,7 @@ bool AdObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
 		AdLayer *main = ((AdGame *)_gameRef)->_scene->_mainLayer;
 		bool regFound = false;
 
-		uint32 i;
+		int32 i;
 		ScValue *val = stack->pop();
 		if (val->isNULL() || !main) {
 			_stickRegion = nullptr;
@@ -446,7 +446,7 @@ bool AdObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
 			} else {
 				stack->pushNULL();
 			}
-		} else if (val->isNULL() || val->getInt() < 0 || val->getInt() >= (int32)_inventory->_takenItems.getSize()) {
+		} else if (val->isNULL() || val->getInt() < 0 || val->getInt() >= _inventory->_takenItems.getSize()) {
 			stack->pushNULL();
 		} else {
 			stack->pushNative(_inventory->_takenItems[val->getInt()], true);
@@ -468,7 +468,7 @@ bool AdObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
 
 		ScValue *val = stack->pop();
 		if (!val->isNULL()) {
-			for (uint32 i = 0; i < _inventory->_takenItems.getSize(); i++) {
+			for (int32 i = 0; i < _inventory->_takenItems.getSize(); i++) {
 				if (val->getNative() == _inventory->_takenItems[i]) {
 					stack->pushBool(true);
 					return STATUS_OK;
@@ -562,7 +562,7 @@ bool AdObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
 		bool found = false;
 		if (val->isNative()) {
 			BaseScriptable *obj = val->getNative();
-			for (uint32 i = 0; i < _attachmentsPre.getSize(); i++) {
+			for (int32 i = 0; i < _attachmentsPre.getSize(); i++) {
 				if (_attachmentsPre[i] == obj) {
 					found = true;
 					_gameRef->unregisterObject(_attachmentsPre[i]);
@@ -570,7 +570,7 @@ bool AdObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
 					i--;
 				}
 			}
-			for (uint32 i = 0; i < _attachmentsPost.getSize(); i++) {
+			for (int32 i = 0; i < _attachmentsPost.getSize(); i++) {
 				if (_attachmentsPost[i] == obj) {
 					found = true;
 					_gameRef->unregisterObject(_attachmentsPost[i]);
@@ -580,7 +580,7 @@ bool AdObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
 			}
 		} else {
 			const char *attachmentName = val->getString();
-			for (int32 i = 0; i < (int32)_attachmentsPre.getSize(); i++) {
+			for (int32 i = 0; i < _attachmentsPre.getSize(); i++) {
 				if (_attachmentsPre[i]->getName() && scumm_stricmp(_attachmentsPre[i]->getName(), attachmentName) == 0) {
 					found = true;
 					_gameRef->unregisterObject(_attachmentsPre[i]);
@@ -588,7 +588,7 @@ bool AdObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
 					i--;
 				}
 			}
-			for (int32 i = 0; i < (int32)_attachmentsPost.getSize(); i++) {
+			for (int32 i = 0; i < _attachmentsPost.getSize(); i++) {
 				if (_attachmentsPost[i]->getName() && scumm_stricmp(_attachmentsPost[i]->getName(), attachmentName) == 0) {
 					found = true;
 					_gameRef->unregisterObject(_attachmentsPost[i]);
@@ -613,13 +613,13 @@ bool AdObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
 		if (val->isInt()) {
 			int index = val->getInt();
 			int currIndex = 0;
-			for (uint32 i = 0; i < _attachmentsPre.getSize(); i++) {
+			for (int32 i = 0; i < _attachmentsPre.getSize(); i++) {
 				if (currIndex == index) {
 					ret = _attachmentsPre[i];
 				}
 				currIndex++;
 			}
-			for (uint32 i = 0; i < _attachmentsPost.getSize(); i++) {
+			for (int32 i = 0; i < _attachmentsPost.getSize(); i++) {
 				if (currIndex == index) {
 					ret = _attachmentsPost[i];
 				}
@@ -627,14 +627,14 @@ bool AdObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
 			}
 		} else {
 			const char *attachmentName = val->getString();
-			for (uint32 i = 0; i < _attachmentsPre.getSize(); i++) {
+			for (int32 i = 0; i < _attachmentsPre.getSize(); i++) {
 				if (_attachmentsPre[i]->getName() && scumm_stricmp(_attachmentsPre[i]->getName(), attachmentName) == 0) {
 					ret = _attachmentsPre[i];
 					break;
 				}
 			}
 			if (!ret) {
-				for (uint32 i = 0; i < _attachmentsPost.getSize(); i++) {
+				for (int32 i = 0; i < _attachmentsPost.getSize(); i++) {
 					if (_attachmentsPost[i]->getName() && scumm_stricmp(_attachmentsPost[i]->getName(), attachmentName) == 0) {
 						ret = _attachmentsPre[i];
 						break;
@@ -864,7 +864,7 @@ int32 AdObject::getHeight() {
 	} else {
 		BaseFrame *frame = _currentSprite->_frames[_currentSprite->_currentFrame];
 		int32 ret = 0;
-		for (uint32 i = 0; i < frame->_subframes.getSize(); i++) {
+		for (int32 i = 0; i < frame->_subframes.getSize(); i++) {
 			ret = MAX(ret, frame->_subframes[i]->_hotspotY);
 		}
 
@@ -1203,10 +1203,10 @@ bool AdObject::getScale(float *scaleX, float *scaleY) {
 
 //////////////////////////////////////////////////////////////////////////
 bool AdObject::updateSpriteAttachments() {
-	for (uint32 i = 0; i < _attachmentsPre.getSize(); i++) {
+	for (int32 i = 0; i < _attachmentsPre.getSize(); i++) {
 		_attachmentsPre[i]->update();
 	}
-	for (uint32 i = 0; i < _attachmentsPost.getSize(); i++) {
+	for (int32 i = 0; i < _attachmentsPost.getSize(); i++) {
 		_attachmentsPost[i]->update();
 	}
 	return STATUS_OK;
@@ -1215,11 +1215,11 @@ bool AdObject::updateSpriteAttachments() {
 //////////////////////////////////////////////////////////////////////////
 bool AdObject::displaySpriteAttachments(bool preDisplay) {
 	if (preDisplay) {
-		for (uint32 i = 0; i < _attachmentsPre.getSize(); i++) {
+		for (int32 i = 0; i < _attachmentsPre.getSize(); i++) {
 			displaySpriteAttachment(_attachmentsPre[i]);
 		}
 	} else {
-		for (uint32 i = 0; i < _attachmentsPost.getSize(); i++) {
+		for (int32 i = 0; i < _attachmentsPost.getSize(); i++) {
 			displaySpriteAttachment(_attachmentsPost[i]);
 		}
 	}
diff --git a/engines/wintermute/ad/ad_object_3d.cpp b/engines/wintermute/ad/ad_object_3d.cpp
index eb2e4f26fc8..509d05e58e1 100644
--- a/engines/wintermute/ad/ad_object_3d.cpp
+++ b/engines/wintermute/ad/ad_object_3d.cpp
@@ -73,7 +73,7 @@ AdObject3D::~AdObject3D() {
 
 //////////////////////////////////////////////////////////////////////////
 void AdObject3D::clearIgnoredLights() {
-	for (uint32 i = 0; i < _ignoredLights.getSize(); ++i) {
+	for (int32 i = 0; i < _ignoredLights.getSize(); ++i) {
 		delete _ignoredLights[i];
 	}
 
@@ -82,7 +82,7 @@ void AdObject3D::clearIgnoredLights() {
 
 //////////////////////////////////////////////////////////////////////////
 bool AdObject3D::addIgnoredLight(char *lightName) {
-	for (uint32 i = 0; i < _ignoredLights.getSize(); i++) {
+	for (int32 i = 0; i < _ignoredLights.getSize(); i++) {
 		if (scumm_stricmp(_ignoredLights[i], lightName) == 0) {
 			return true;
 		}
@@ -94,7 +94,7 @@ bool AdObject3D::addIgnoredLight(char *lightName) {
 
 //////////////////////////////////////////////////////////////////////////
 bool AdObject3D::removeIgnoredLight(char *lightName) {
-	for (uint32 i = 0; i < _ignoredLights.getSize(); i++) {
+	for (int32 i = 0; i < _ignoredLights.getSize(); i++) {
 		if (scumm_stricmp(_ignoredLights[i], lightName) == 0) {
 			delete[] _ignoredLights[i];
 			_ignoredLights.removeAt(i);
diff --git a/engines/wintermute/ad/ad_path.cpp b/engines/wintermute/ad/ad_path.cpp
index 534b192a9e5..e686a99ca13 100644
--- a/engines/wintermute/ad/ad_path.cpp
+++ b/engines/wintermute/ad/ad_path.cpp
@@ -47,7 +47,7 @@ AdPath::~AdPath() {
 
 //////////////////////////////////////////////////////////////////////////
 void AdPath::reset() {
-	for (uint32 i = 0; i < _points.getSize(); i++) {
+	for (int32 i = 0; i < _points.getSize(); i++) {
 		delete _points[i];
 	}
 
@@ -71,7 +71,7 @@ BasePoint *AdPath::getFirst() {
 //////////////////////////////////////////////////////////////////////////
 BasePoint *AdPath::getNext() {
 	_currIndex++;
-	if (_currIndex < (int32)_points.getSize()) {
+	if (_currIndex < _points.getSize()) {
 		return _points[_currIndex];
 	} else {
 		return nullptr;
@@ -81,7 +81,7 @@ BasePoint *AdPath::getNext() {
 
 //////////////////////////////////////////////////////////////////////////
 BasePoint *AdPath::getCurrent() {
-	if (_currIndex >= 0 && _currIndex < (int32)_points.getSize()) {
+	if (_currIndex >= 0 && _currIndex < _points.getSize()) {
 		return _points[_currIndex];
 	} else {
 		return nullptr;
diff --git a/engines/wintermute/ad/ad_path3d.cpp b/engines/wintermute/ad/ad_path3d.cpp
index 939e212e7a0..af0cf82d740 100644
--- a/engines/wintermute/ad/ad_path3d.cpp
+++ b/engines/wintermute/ad/ad_path3d.cpp
@@ -45,7 +45,7 @@ AdPath3D::~AdPath3D() {
 
 //////////////////////////////////////////////////////////////////////////
 void AdPath3D::reset() {
-	for (uint32 i = 0; i < _points.getSize(); i++) {
+	for (int32 i = 0; i < _points.getSize(); i++) {
 		delete _points[i];
 	}
 
@@ -85,7 +85,7 @@ DXVector3 *AdPath3D::getFirst() {
 //////////////////////////////////////////////////////////////////////////
 DXVector3 *AdPath3D::getNext() {
 	_currIndex++;
-	if (_currIndex < (int32)_points.getSize()) {
+	if (_currIndex < _points.getSize()) {
 		return _points[_currIndex];
 	} else {
 		return nullptr;
@@ -94,7 +94,7 @@ DXVector3 *AdPath3D::getNext() {
 
 //////////////////////////////////////////////////////////////////////////
 DXVector3 *AdPath3D::getCurrent() {
-	if (_currIndex >= 0 && _currIndex < (int32)_points.getSize()) {
+	if (_currIndex >= 0 && _currIndex < _points.getSize()) {
 		return _points[_currIndex];
 	} else {
 		return nullptr;
@@ -109,7 +109,7 @@ bool AdPath3D::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferBool(TMEMBER(_ready));
 
 	if (persistMgr->getIsSaving()) {
-		int32 j = (int32)_points.getSize();
+		int32 j = _points.getSize();
 		persistMgr->transferSint32("ArraySize", &j);
 		for (int32 i = 0; i < j; i++) {
 			persistMgr->transferFloat("x", &_points[i]->_x);
diff --git a/engines/wintermute/ad/ad_region.cpp b/engines/wintermute/ad/ad_region.cpp
index 054def279aa..dd9144cd030 100644
--- a/engines/wintermute/ad/ad_region.cpp
+++ b/engines/wintermute/ad/ad_region.cpp
@@ -142,7 +142,7 @@ bool AdRegion::loadBuffer(char *buffer, bool complete) {
 		buffer = params;
 	}
 
-	for (uint32 i = 0; i < _points.getSize(); i++) {
+	for (int32 i = 0; i < _points.getSize(); i++) {
 		delete _points[i];
 	}
 	_points.removeAll();
@@ -379,7 +379,7 @@ bool AdRegion::saveAsText(BaseDynamicBuffer *buffer, int indent) {
 	buffer->putTextIndent(indent + 2, "ALPHA = %d\n", RGBCOLGetA(_alpha));
 	buffer->putTextIndent(indent + 2, "EDITOR_SELECTED=%s\n", _editorSelected ? "TRUE" : "FALSE");
 
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		buffer->putTextIndent(indent + 2, "SCRIPT=\"%s\"\n", _scripts[i]->_filename);
 	}
 
@@ -387,7 +387,7 @@ bool AdRegion::saveAsText(BaseDynamicBuffer *buffer, int indent) {
 		_scProp->saveAsText(buffer, indent + 2);
 	}
 
-	for (uint32 i = 0; i < _points.getSize(); i++) {
+	for (int32 i = 0; i < _points.getSize(); i++) {
 		buffer->putTextIndent(indent + 2, "POINT {%d,%d}\n", _points[i]->x, _points[i]->y);
 	}
 
diff --git a/engines/wintermute/ad/ad_response_box.cpp b/engines/wintermute/ad/ad_response_box.cpp
index b1de0f094f4..b5239eecf6f 100644
--- a/engines/wintermute/ad/ad_response_box.cpp
+++ b/engines/wintermute/ad/ad_response_box.cpp
@@ -96,13 +96,13 @@ AdResponseBox::~AdResponseBox() {
 	_waitingScript = nullptr;
 }
 
-uint32 AdResponseBox::getNumResponses() const {
+int32 AdResponseBox::getNumResponses() const {
 	return _responses.getSize();
 }
 
 //////////////////////////////////////////////////////////////////////////
 void AdResponseBox::clearResponses() {
-	for (uint32 i = 0; i < _responses.getSize(); i++) {
+	for (int32 i = 0; i < _responses.getSize(); i++) {
 		delete _responses[i];
 	}
 	_responses.removeAll();
@@ -111,7 +111,7 @@ void AdResponseBox::clearResponses() {
 
 //////////////////////////////////////////////////////////////////////////
 void AdResponseBox::clearButtons() {
-	for (uint32 i = 0; i < _respButtons.getSize(); i++) {
+	for (int32 i = 0; i < _respButtons.getSize(); i++) {
 		delete _respButtons[i];
 	}
 	_respButtons.removeAll();
@@ -120,7 +120,7 @@ void AdResponseBox::clearButtons() {
 
 //////////////////////////////////////////////////////////////////////////
 bool AdResponseBox::invalidateButtons() {
-	for (uint32 i = 0; i < _respButtons.getSize(); i++) {
+	for (int32 i = 0; i < _respButtons.getSize(); i++) {
 		_respButtons[i]->setImage(nullptr);
 		_respButtons[i]->_cursor = nullptr;
 		_respButtons[i]->setFont(nullptr);
@@ -137,7 +137,7 @@ bool AdResponseBox::createButtons() {
 	clearButtons();
 
 	_scrollOffset = 0;
-	for (uint32 i = 0; i < _responses.getSize(); i++) {
+	for (int32 i = 0; i < _responses.getSize(); i++) {
 		UIButton *btn = new UIButton(_gameRef);
 		if (btn) {
 			btn->_parent = _window;
@@ -379,7 +379,7 @@ bool AdResponseBox::loadBuffer(char *buffer, bool complete) {
 	}
 
 	if (_window) {
-		for (uint32 i = 0; i < _window->_widgets.getSize(); i++) {
+		for (int32 i = 0; i < _window->_widgets.getSize(); i++) {
 			if (!_window->_widgets[i]->getListener()) {
 				_window->_widgets[i]->setListener(this, _window->_widgets[i], 0);
 			}
@@ -473,7 +473,7 @@ bool AdResponseBox::display() {
 	// shift down if needed
 	if (!_horizontal) {
 		int32 totalHeight = 0;
-		for (i = 0; i < (int32) _respButtons.getSize(); i++) {
+		for (i = 0; i < _respButtons.getSize(); i++) {
 			totalHeight += (_respButtons[i]->getHeight() + _spacing);
 		}
 		totalHeight -= _spacing;
@@ -500,7 +500,7 @@ bool AdResponseBox::display() {
 
 	// prepare response buttons
 	bool scrollNeeded = false;
-	for (i = _scrollOffset; i < (int32)_respButtons.getSize(); i++) {
+	for (i = _scrollOffset; i < _respButtons.getSize(); i++) {
 
 #ifdef ENABLE_FOXTAIL
 		// FoxTail's "HORIZONTAL=TRUE" display boxes are actual 2x3 display boxes
@@ -558,7 +558,7 @@ bool AdResponseBox::display() {
 
 
 	// display response buttons
-	for (i = _scrollOffset; i < (int32)_respButtons.getSize(); i++) {
+	for (i = _scrollOffset; i < _respButtons.getSize(); i++) {
 		_respButtons[i]->display();
 	}
 
@@ -628,7 +628,7 @@ bool AdResponseBox::persist(BasePersistenceManager *persistMgr) {
 bool AdResponseBox::weedResponses() {
 	AdGame *adGame = (AdGame *)_gameRef;
 
-	for (int32 i = 0; i < (int32)_responses.getSize(); i++) {
+	for (int32 i = 0; i < _responses.getSize(); i++) {
 		switch (_responses[i]->_responseType) {
 		case RESPONSE_ONCE:
 			if (adGame->branchResponseUsed(_responses[i]->getID())) {
@@ -676,12 +676,12 @@ void AdResponseBox::addResponse(const AdResponse *response) {
 	_responses.add(response);
 }
 
-int32 AdResponseBox::getIdForResponseNum(uint32 num) const {
+int32 AdResponseBox::getIdForResponseNum(int32 num) const {
 	assert(num < _responses.getSize());
 	return _responses[num]->getID();
 }
 
-bool AdResponseBox::handleResponseNum(uint32 num) {
+bool AdResponseBox::handleResponseNum(int32 num) {
 	return handleResponse(_responses[num]);
 }
 
@@ -716,7 +716,7 @@ BaseObject *AdResponseBox::getNextAccessObject(BaseObject *currObject) {
 		return nullptr;
 	} else {
 		if (currObject != nullptr) {
-			for (uint32 i = 0; i < objects.getSize(); i++) {
+			for (int32 i = 0; i < objects.getSize(); i++) {
 				if (objects[i] == currObject) {
 					if (i < objects.getSize() - 1) {
 						return objects[i + 1];
@@ -740,7 +740,7 @@ BaseObject *AdResponseBox::getPrevAccessObject(BaseObject *currObject) {
 		return nullptr;
 	} else {
 		if (currObject != nullptr) {
-			for (int i = objects.getSize() - 1; i >= 0; i--) {
+			for (int32 i = objects.getSize() - 1; i >= 0; i--) {
 				if (objects[i] == currObject) {
 					if (i > 0) {
 						return objects[i - 1];
@@ -757,7 +757,7 @@ BaseObject *AdResponseBox::getPrevAccessObject(BaseObject *currObject) {
 
 //////////////////////////////////////////////////////////////////////////
 bool AdResponseBox::getObjects(BaseArray<UIObject *> &objects, bool interactiveOnly) {
-	for (uint32 i = 0; i < _respButtons.getSize(); i++) {
+	for (int32 i = 0; i < _respButtons.getSize(); i++) {
 		objects.add(_respButtons[i]);
 	}
 	if (_window) {
diff --git a/engines/wintermute/ad/ad_response_box.h b/engines/wintermute/ad/ad_response_box.h
index 2c5b8e24e4b..d9eebfdbcc7 100644
--- a/engines/wintermute/ad/ad_response_box.h
+++ b/engines/wintermute/ad/ad_response_box.h
@@ -45,8 +45,8 @@ public:
 
 	void addResponse(const AdResponse* response);
 	bool handleResponse(const AdResponse *response);
-	bool handleResponseNum(uint32 num);
-	int32 getIdForResponseNum(uint32 num) const;
+	bool handleResponseNum(int32 num);
+	int32 getIdForResponseNum(int32 num) const;
 	void setLastResponseText(const char *text, const char *textOrig);
 	const char *getLastResponseText() const;
 	const char *getLastResponseTextOrig() const;
@@ -75,7 +75,7 @@ public:
 	bool saveAsText(BaseDynamicBuffer *buffer, int indent) override;
 
 	UIWindow *getResponseWindow();
-	uint32 getNumResponses() const;
+	int32 getNumResponses() const;
 private:
 	int32 _spacing;
 	int32 _scrollOffset;
diff --git a/engines/wintermute/ad/ad_scene.cpp b/engines/wintermute/ad/ad_scene.cpp
index 03f34875923..3400bc80ce8 100644
--- a/engines/wintermute/ad/ad_scene.cpp
+++ b/engines/wintermute/ad/ad_scene.cpp
@@ -185,35 +185,35 @@ void AdScene::cleanup() {
 	_gameRef->unregisterObject(_fader);
 	_fader = nullptr;
 
-	for (uint32 i = 0; i < _layers.getSize(); i++) {
+	for (int32 i = 0; i < _layers.getSize(); i++) {
 		_gameRef->unregisterObject(_layers[i]);
 	}
 	_layers.removeAll();
 
 
-	for (uint32 i = 0; i < _waypointGroups.getSize(); i++) {
+	for (int32 i = 0; i < _waypointGroups.getSize(); i++) {
 		_gameRef->unregisterObject(_waypointGroups[i]);
 	}
 	_waypointGroups.removeAll();
 
-	for (uint32 i = 0; i < _scaleLevels.getSize(); i++) {
+	for (int32 i = 0; i < _scaleLevels.getSize(); i++) {
 		_gameRef->unregisterObject(_scaleLevels[i]);
 	}
 	_scaleLevels.removeAll();
 
-	for (uint32 i = 0; i < _rotLevels.getSize(); i++) {
+	for (int32 i = 0; i < _rotLevels.getSize(); i++) {
 		_gameRef->unregisterObject(_rotLevels[i]);
 	}
 	_rotLevels.removeAll();
 
 
-	for (uint32 i = 0; i < _pfPath.getSize(); i++) {
+	for (int32 i = 0; i < _pfPath.getSize(); i++) {
 		delete _pfPath[i];
 	}
 	_pfPath.removeAll();
 	_pfPointsNum = 0;
 
-	for (uint32 i = 0; i < _objects.getSize(); i++) {
+	for (int32 i = 0; i < _objects.getSize(); i++) {
 		_gameRef->unregisterObject(_objects[i]);
 	}
 	_objects.removeAll();
@@ -278,7 +278,7 @@ bool AdScene::getPath(const BasePoint &source, const BasePoint &target, AdPath *
 		pfPointsAdd(target.x, target.y, INT_MAX_VALUE);
 
 		// active waypoints
-		for (uint32 i = 0; i < _waypointGroups.getSize(); i++) {
+		for (int32 i = 0; i < _waypointGroups.getSize(); i++) {
 			if (_waypointGroups[i]->_active) {
 				pfAddWaypointGroup(_waypointGroups[i], requester);
 			}
@@ -286,13 +286,13 @@ bool AdScene::getPath(const BasePoint &source, const BasePoint &target, AdPath *
 
 
 		// free waypoints
-		for (uint32 i = 0; i < _objects.getSize(); i++) {
+		for (int32 i = 0; i < _objects.getSize(); i++) {
 			if (_objects[i]->_active && _objects[i] != requester && _objects[i]->_currentWptGroup) {
 				pfAddWaypointGroup(_objects[i]->_currentWptGroup, requester);
 			}
 		}
 		AdGame *adGame = (AdGame *)_gameRef;
-		for (uint32 i = 0; i < adGame->_objects.getSize(); i++) {
+		for (int32 i = 0; i < adGame->_objects.getSize(); i++) {
 			if (adGame->_objects[i]->_active && adGame->_objects[i] != requester && adGame->_objects[i]->_currentWptGroup) {
 				pfAddWaypointGroup(adGame->_objects[i]->_currentWptGroup, requester);
 			}
@@ -309,7 +309,7 @@ void AdScene::pfAddWaypointGroup(AdWaypointGroup *wpt, BaseObject *requester) {
 		return;
 	}
 
-	for (uint32 i = 0; i < wpt->_points.getSize(); i++) {
+	for (int32 i = 0; i < wpt->_points.getSize(); i++) {
 		if (isBlockedAt(wpt->_points[i]->x, wpt->_points[i]->y, true, requester)) {
 			continue;
 		}
@@ -326,7 +326,7 @@ float AdScene::getZoomAt(int x, int y) {
 
 	bool found = false;
 	if (_mainLayer) {
-		for (int i = _mainLayer->_nodes.getSize() - 1; i >= 0; i--) {
+		for (int32 i = _mainLayer->_nodes.getSize() - 1; i >= 0; i--) {
 			AdSceneNode *node = _mainLayer->_nodes[i];
 			if (node->_type == OBJECT_REGION && node->_region->_active && !node->_region->isBlocked() && node->_region->pointInRegion(x, y)) {
 				if (node->_region->getZoom() != 0) {
@@ -378,7 +378,7 @@ bool AdScene::isBlockedAt(int x, int y, bool checkFreeObjects, BaseObject *reque
 	bool ret = true;
 
 	if (checkFreeObjects) {
-		for (uint32 i = 0; i < _objects.getSize(); i++) {
+		for (int32 i = 0; i < _objects.getSize(); i++) {
 			if (_objects[i]->_active && _objects[i] != requester && _objects[i]->_currentBlockRegion) {
 				if (_objects[i]->_currentBlockRegion->pointInRegion(x, y)) {
 					return true;
@@ -386,7 +386,7 @@ bool AdScene::isBlockedAt(int x, int y, bool checkFreeObjects, BaseObject *reque
 			}
 		}
 		AdGame *adGame = (AdGame *)_gameRef;
-		for (uint32 i = 0; i < adGame->_objects.getSize(); i++) {
+		for (int32 i = 0; i < adGame->_objects.getSize(); i++) {
 			if (adGame->_objects[i]->_active && adGame->_objects[i] != requester && adGame->_objects[i]->_currentBlockRegion) {
 				if (adGame->_objects[i]->_currentBlockRegion->pointInRegion(x, y)) {
 					return true;
@@ -397,7 +397,7 @@ bool AdScene::isBlockedAt(int x, int y, bool checkFreeObjects, BaseObject *reque
 
 
 	if (_mainLayer) {
-		for (uint32 i = 0; i < _mainLayer->_nodes.getSize(); i++) {
+		for (int32 i = 0; i < _mainLayer->_nodes.getSize(); i++) {
 			AdSceneNode *node = _mainLayer->_nodes[i];
 			/*
 			if (Node->_type == OBJECT_REGION && Node->_region->_active && Node->_region->_blocked && Node->_region->PointInRegion(X, Y))
@@ -425,7 +425,7 @@ bool AdScene::isWalkableAt(int x, int y, bool checkFreeObjects, BaseObject *requ
 	bool ret = false;
 
 	if (checkFreeObjects) {
-		for (uint32 i = 0; i < _objects.getSize(); i++) {
+		for (int32 i = 0; i < _objects.getSize(); i++) {
 			if (_objects[i]->_active && _objects[i] != requester && _objects[i]->_currentBlockRegion) {
 				if (_objects[i]->_currentBlockRegion->pointInRegion(x, y)) {
 					return false;
@@ -433,7 +433,7 @@ bool AdScene::isWalkableAt(int x, int y, bool checkFreeObjects, BaseObject *requ
 			}
 		}
 		AdGame *adGame = (AdGame *)_gameRef;
-		for (uint32 i = 0; i < adGame->_objects.getSize(); i++) {
+		for (int32 i = 0; i < adGame->_objects.getSize(); i++) {
 			if (adGame->_objects[i]->_active && adGame->_objects[i] != requester && adGame->_objects[i]->_currentBlockRegion) {
 				if (adGame->_objects[i]->_currentBlockRegion->pointInRegion(x, y)) {
 					return false;
@@ -444,7 +444,7 @@ bool AdScene::isWalkableAt(int x, int y, bool checkFreeObjects, BaseObject *requ
 
 
 	if (_mainLayer) {
-		for (uint32 i = 0; i < _mainLayer->_nodes.getSize(); i++) {
+		for (int32 i = 0; i < _mainLayer->_nodes.getSize(); i++) {
 			AdSceneNode *node = _mainLayer->_nodes[i];
 			if (node->_type == OBJECT_REGION && node->_region->_active && !node->_region->hasDecoration() && node->_region->pointInRegion(x, y)) {
 				if (node->_region->isBlocked()) {
@@ -1169,7 +1169,7 @@ bool AdScene::traverseNodes(bool doUpdate) {
 	int mainOffsetY = 0;
 #endif
 
-	for (uint32 j = 0; j < _layers.getSize(); j++) {
+	for (int32 j = 0; j < _layers.getSize(); j++) {
 		if (!_layers[j]->_active) {
 			continue;
 		}
@@ -1218,7 +1218,7 @@ bool AdScene::traverseNodes(bool doUpdate) {
 #endif
 
 		// for each node
-		for (uint32 k = 0; k < _layers[j]->_nodes.getSize(); k++) {
+		for (int32 k = 0; k < _layers[j]->_nodes.getSize(); k++) {
 			AdSceneNode *node = _layers[j]->_nodes[k];
 			switch (node->_type) {
 			case OBJECT_ENTITY:
@@ -1316,7 +1316,7 @@ bool AdScene::display3DContent(DXMatrix &viewMat, DXMatrix &projMat) {
 	_gameRef->_renderer3D->setup3DCustom(viewMat, projMat);
 
 	// for each layer
-	for (uint32 j = 0; j < _layers.getSize(); j++) {
+	for (int32 j = 0; j < _layers.getSize(); j++) {
 		if (!_layers[j]->_active)
 			continue;
 
@@ -1328,7 +1328,7 @@ bool AdScene::display3DContent(DXMatrix &viewMat, DXMatrix &projMat) {
 
 
 		// for each node
-		for (uint32 k = 0; k < _layers[j]->_nodes.getSize(); k++) {
+		for (int32 k = 0; k < _layers[j]->_nodes.getSize(); k++) {
 			AdSceneNode *node = _layers[j]->_nodes[k];
 			if (node->_type == OBJECT_REGION) {
 				if (node->_region->isBlocked())
@@ -1363,7 +1363,7 @@ bool AdScene::updateFreeObjects() {
 #endif
 
 	// *** update all active objects
-	for (uint32 i = 0; i < adGame->_objects.getSize(); i++) {
+	for (int32 i = 0; i < adGame->_objects.getSize(); i++) {
 		if (!adGame->_objects[i]->_active) {
 			continue;
 		}
@@ -1382,7 +1382,7 @@ bool AdScene::updateFreeObjects() {
 	}
 
 
-	for (uint32 i = 0; i < _objects.getSize(); i++) {
+	for (int32 i = 0; i < _objects.getSize(); i++) {
 		if (!_objects[i]->_active) {
 			continue;
 		}
@@ -1417,7 +1417,7 @@ bool AdScene::displayRegionContent(AdRegion *region, bool display3DOnly) {
 	AdObject *obj;
 
 	// global objects
-	for (uint32 i = 0; i < adGame->_objects.getSize(); i++) {
+	for (int32 i = 0; i < adGame->_objects.getSize(); i++) {
 		obj = adGame->_objects[i];
 		if (obj->_active && !obj->_drawn && (obj->_stickRegion == region || region == nullptr || (obj->_stickRegion == nullptr && region->pointInRegion(obj->_posX, obj->_posY)))) {
 			objects.add(obj);
@@ -1425,7 +1425,7 @@ bool AdScene::displayRegionContent(AdRegion *region, bool display3DOnly) {
 	}
 
 	// scene objects
-	for (uint32 i = 0; i < _objects.getSize(); i++) {
+	for (int32 i = 0; i < _objects.getSize(); i++) {
 		obj = _objects[i];
 		if (obj->_active && !obj->_editorOnly && !obj->_drawn && (obj->_stickRegion == region || region == nullptr || (obj->_stickRegion == nullptr && region->pointInRegion(obj->_posX, obj->_posY)))) {
 			objects.add(obj);
@@ -1436,7 +1436,7 @@ bool AdScene::displayRegionContent(AdRegion *region, bool display3DOnly) {
 	qsort(objects.getData(), objects.getSize(), sizeof(AdObject *), AdScene::compareObjs);
 
 	// display them
-	for (uint32 i = 0; i < objects.getSize(); i++) {
+	for (int32 i = 0; i < objects.getSize(); i++) {
 		obj = objects[i];
 
 		if (display3DOnly && !obj->_is3D) {
@@ -1466,7 +1466,7 @@ bool AdScene::displayRegionContent(AdRegion *region, bool display3DOnly) {
 	// display design only objects
 	if (!display3DOnly) {
 		if (_gameRef->_editorMode && region == nullptr) {
-			for (uint32 i = 0; i < _objects.getSize(); i++) {
+			for (int32 i = 0; i < _objects.getSize(); i++) {
 				if (_objects[i]->_active && _objects[i]->_editorOnly) {
 					_objects[i]->display();
 					_objects[i]->_drawn = true;
@@ -1504,7 +1504,7 @@ bool AdScene::displayRegionContentOld(AdRegion *region) {
 		int minY = INT_MAX_VALUE;
 
 		// global objects
-		for (uint32 i = 0; i < adGame->_objects.getSize(); i++) {
+		for (int32 i = 0; i < adGame->_objects.getSize(); i++) {
 			if (adGame->_objects[i]->_active && !adGame->_objects[i]->_drawn && adGame->_objects[i]->_posY < minY && (adGame->_objects[i]->_stickRegion == region || region == nullptr || (adGame->_objects[i]->_stickRegion == nullptr && region->pointInRegion(adGame->_objects[i]->_posX, adGame->_objects[i]->_posY)))) {
 				obj = adGame->_objects[i];
 				minY = adGame->_objects[i]->_posY;
@@ -1512,7 +1512,7 @@ bool AdScene::displayRegionContentOld(AdRegion *region) {
 		}
 
 		// scene objects
-		for (uint32 i = 0; i < _objects.getSize(); i++) {
+		for (int32 i = 0; i < _objects.getSize(); i++) {
 			if (_objects[i]->_active && !_objects[i]->_editorOnly && !_objects[i]->_drawn && _objects[i]->_posY < minY && (_objects[i]->_stickRegion == region || region == nullptr || (_objects[i]->_stickRegion == nullptr && region->pointInRegion(_objects[i]->_posX, _objects[i]->_posY)))) {
 				obj = _objects[i];
 				minY = _objects[i]->_posY;
@@ -1543,7 +1543,7 @@ bool AdScene::displayRegionContentOld(AdRegion *region) {
 
 	// design only objects
 	if (_gameRef->_editorMode && region == nullptr) {
-		for (uint32 i = 0; i < _objects.getSize(); i++) {
+		for (int32 i = 0; i < _objects.getSize(); i++) {
 			if (_objects[i]->_active && _objects[i]->_editorOnly) {
 				_objects[i]->display();
 				_objects[i]->_drawn = true;
@@ -1749,7 +1749,7 @@ bool AdScene::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
 		ScValue *val = stack->pop();
 		if (val->isInt()) {
 			int layer = val->getInt();
-			if (layer < 0 || layer >= (int32)_layers.getSize()) {
+			if (layer < 0 || layer >= _layers.getSize()) {
 				stack->pushNULL();
 			} else {
 				stack->pushNative(_layers[layer], true);
@@ -1757,7 +1757,7 @@ bool AdScene::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
 		} else {
 			const char *layerName = val->getString();
 			bool layerFound = false;
-			for (uint32 i = 0; i < _layers.getSize(); i++) {
+			for (int32 i = 0; i < _layers.getSize(); i++) {
 				if (scumm_stricmp(layerName, _layers[i]->getName()) == 0) {
 					stack->pushNative(_layers[i], true);
 					layerFound = true;
@@ -1777,7 +1777,7 @@ bool AdScene::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
 	else if (strcmp(name, "GetWaypointGroup") == 0) {
 		stack->correctParams(1);
 		int group = stack->pop()->getInt();
-		if (group < 0 || group >= (int32)_waypointGroups.getSize()) {
+		if (group < 0 || group >= _waypointGroups.getSize()) {
 			stack->pushNULL();
 		} else {
 			stack->pushNative(_waypointGroups[group], true);
@@ -1824,12 +1824,12 @@ bool AdScene::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
 		AdObject *ret = nullptr;
 		if (val->isInt()) {
 			int index = val->getInt();
-			if (index >= 0 && index < (int32)_objects.getSize()) {
+			if (index >= 0 && index < _objects.getSize()) {
 				ret = _objects[index];
 			}
 		} else {
 			const char *nodeName = val->getString();
-			for (uint32 i = 0; i < _objects.getSize(); i++) {
+			for (int32 i = 0; i < _objects.getSize(); i++) {
 				if (_objects[i] && _objects[i]->getName() && scumm_stricmp(_objects[i]->getName(), nodeName) == 0) {
 					ret = _objects[i];
 					break;
@@ -1860,7 +1860,7 @@ bool AdScene::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
 		}
 
 		if (_mainLayer) {
-			for (int i = _mainLayer->_nodes.getSize() - 1; i >= 0; i--) {
+			for (int32 i = _mainLayer->_nodes.getSize() - 1; i >= 0; i--) {
 				AdSceneNode *node = _mainLayer->_nodes[i];
 				if (node->_type == OBJECT_REGION && node->_region->_active && node->_region->pointInRegion(x, y)) {
 					if (node->_region->hasDecoration() && !includeDecors) {
@@ -2116,7 +2116,7 @@ bool AdScene::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
 
 		int32 index = stack->pop()->getInt();
 
-		if (_geom && index >= 0 && static_cast<uint32>(index) < _geom->_lights.getSize()) {
+		if (_geom && index >= 0 && index < _geom->_lights.getSize()) {
 			stack->pushString(_geom->_lights[index]->getName());
 		} else {
 			stack->pushNULL();
@@ -2279,7 +2279,7 @@ bool AdScene::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
 		if (index < 0) {
 			index = 0;
 		}
-		if (index <= (int32)_layers.getSize() - 1) {
+		if (index <= _layers.getSize() - 1) {
 			_layers.insertAt(index, layer);
 		} else {
 			_layers.add(layer);
@@ -2301,7 +2301,7 @@ bool AdScene::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
 		AdLayer *toDelete = nullptr;
 		if (val->isNative()) {
 			BaseScriptable *temp = val->getNative();
-			for (uint32 i = 0; i < _layers.getSize(); i++) {
+			for (int32 i = 0; i < _layers.getSize(); i++) {
 				if (_layers[i] == temp) {
 					toDelete = _layers[i];
 					break;
@@ -2309,7 +2309,7 @@ bool AdScene::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
 			}
 		} else {
 			int32 index = val->getInt();
-			if (index >= 0 && index < (int32)_layers.getSize()) {
+			if (index >= 0 && index < _layers.getSize()) {
 				toDelete = _layers[index];
 			}
 		}
@@ -2324,7 +2324,7 @@ bool AdScene::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
 			return STATUS_OK;
 		}
 
-		for (uint32 i = 0; i < _layers.getSize(); i++) {
+		for (int32 i = 0; i < _layers.getSize(); i++) {
 			if (_layers[i] == toDelete) {
 				_layers.removeAt(i);
 				_gameRef->unregisterObject(toDelete);
@@ -2778,7 +2778,7 @@ bool AdScene::addObject(AdObject *object) {
 
 //////////////////////////////////////////////////////////////////////////
 bool AdScene::removeObject(AdObject *object) {
-	for (uint32 i = 0; i < _objects.getSize(); i++) {
+	for (int32 i = 0; i < _objects.getSize(); i++) {
 		if (_objects[i] == object) {
 			_objects.removeAt(i);
 			return _gameRef->unregisterObject(object);
@@ -2845,7 +2845,7 @@ bool AdScene::saveAsText(BaseDynamicBuffer *buffer, int indent) {
 #endif
 
 	// scripts
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		buffer->putTextIndent(indent + 2, "SCRIPT=\"%s\"\n", _scripts[i]->_filename);
 	}
 
@@ -2893,7 +2893,7 @@ bool AdScene::saveAsText(BaseDynamicBuffer *buffer, int indent) {
 
 	// waypoints
 	buffer->putTextIndent(indent + 2, "; ----- waypoints\n");
-	for (uint32 i = 0; i < _waypointGroups.getSize(); i++) {
+	for (int32 i = 0; i < _waypointGroups.getSize(); i++) {
 		_waypointGroups[i]->saveAsText(buffer, indent + 2);
 	}
 
@@ -2901,19 +2901,19 @@ bool AdScene::saveAsText(BaseDynamicBuffer *buffer, int indent) {
 
 	// layers
 	buffer->putTextIndent(indent + 2, "; ----- layers\n");
-	for (uint32 i = 0; i < _layers.getSize(); i++) {
+	for (int32 i = 0; i < _layers.getSize(); i++) {
 		_layers[i]->saveAsText(buffer, indent + 2);
 	}
 
 	// scale levels
 	buffer->putTextIndent(indent + 2, "; ----- scale levels\n");
-	for (uint32 i = 0; i < _scaleLevels.getSize(); i++) {
+	for (int32 i = 0; i < _scaleLevels.getSize(); i++) {
 		_scaleLevels[i]->saveAsText(buffer, indent + 2);
 	}
 
 	// rotation levels
 	buffer->putTextIndent(indent + 2, "; ----- rotation levels\n");
-	for (uint32 i = 0; i < _rotLevels.getSize(); i++) {
+	for (int32 i = 0; i < _rotLevels.getSize(); i++) {
 		_rotLevels[i]->saveAsText(buffer, indent + 2);
 	}
 
@@ -2922,7 +2922,7 @@ bool AdScene::saveAsText(BaseDynamicBuffer *buffer, int indent) {
 
 	// free entities
 	buffer->putTextIndent(indent + 2, "; ----- free entities\n");
-	for (uint32 i = 0; i < _objects.getSize(); i++) {
+	for (int32 i = 0; i < _objects.getSize(); i++) {
 		if (_objects[i]->getType() == OBJECT_ENTITY) {
 			_objects[i]->saveAsText(buffer, indent + 2);
 
@@ -2942,7 +2942,7 @@ bool AdScene::sortScaleLevels() {
 	bool changed;
 	do {
 		changed = false;
-		for (uint32 i = 0; i < _scaleLevels.getSize() - 1; i++) {
+		for (int32 i = 0; i < _scaleLevels.getSize() - 1; i++) {
 			if (_scaleLevels[i]->_posY > _scaleLevels[i + 1]->_posY) {
 				AdScaleLevel *sl = _scaleLevels[i];
 				_scaleLevels[i] = _scaleLevels[i + 1];
@@ -2966,7 +2966,7 @@ bool AdScene::sortRotLevels() {
 	bool changed;
 	do {
 		changed = false;
-		for (int32 i = 0; i < (int32)_rotLevels.getSize() - 1; i++) {
+		for (int32 i = 0; i < _rotLevels.getSize() - 1; i++) {
 			if (_rotLevels[i]->_posX > _rotLevels[i + 1]->_posX) {
 				AdRotLevel *rl = _rotLevels[i];
 				_rotLevels[i] = _rotLevels[i + 1];
@@ -2987,7 +2987,7 @@ float AdScene::getScaleAt(int y) {
 	AdScaleLevel *prev = nullptr;
 	AdScaleLevel *next = nullptr;
 
-	for (uint32 i = 0; i < _scaleLevels.getSize(); i++) {
+	for (int32 i = 0; i < _scaleLevels.getSize(); i++) {
 		/* AdScaleLevel *xxx = _scaleLevels[i];*/
 		/* int j = _scaleLevels.size(); */
 		if (_scaleLevels[i]->_posY < y) {
@@ -3118,8 +3118,8 @@ bool AdScene::persist(BasePersistenceManager *persistMgr) {
 bool AdScene::afterLoad() {
 #ifdef ENABLE_WME3D
 	if (_geom) {
-		int activeCamera = _geom->_activeCamera;
-		if (activeCamera >= 0 && static_cast<uint>(activeCamera) < _geom->_cameras.getSize()) {
+		int32 activeCamera = _geom->_activeCamera;
+		if (activeCamera >= 0 && activeCamera < _geom->_cameras.getSize()) {
 			_geom->setActiveCamera(activeCamera, _fov, _nearClipPlane, _farClipPlane);
 		}
 	}
@@ -3274,7 +3274,7 @@ void AdScene::pfPointsStart() {
 
 //////////////////////////////////////////////////////////////////////////
 void AdScene::pfPointsAdd(int x, int y, int distance) {
-	if (_pfPointsNum >= (int32)_pfPath.getSize()) {
+	if (_pfPointsNum >= _pfPath.getSize()) {
 		_pfPath.add(new AdPathPoint(x, y, distance));
 	} else {
 		_pfPath[_pfPointsNum]->x = x;
@@ -3387,9 +3387,9 @@ BaseObject *AdScene::getNodeByName(const char *name) {
 	BaseObject *ret = nullptr;
 
 	// dependent objects
-	for (uint32 i = 0; i < _layers.getSize(); i++) {
+	for (int32 i = 0; i < _layers.getSize(); i++) {
 		AdLayer *layer = _layers[i];
-		for (uint32 j = 0; j < layer->_nodes.getSize(); j++) {
+		for (int32 j = 0; j < layer->_nodes.getSize(); j++) {
 			AdSceneNode *node = layer->_nodes[j];
 			if ((node->_type == OBJECT_ENTITY && !scumm_stricmp(name, node->_entity->getName())) ||
 			    (node->_type == OBJECT_REGION && !scumm_stricmp(name, node->_region->getName()))) {
@@ -3409,14 +3409,14 @@ BaseObject *AdScene::getNodeByName(const char *name) {
 	}
 
 	// free entities
-	for (uint32 i = 0; i < _objects.getSize(); i++) {
+	for (int32 i = 0; i < _objects.getSize(); i++) {
 		if (_objects[i]->getType() == OBJECT_ENTITY && !scumm_stricmp(name, _objects[i]->getName())) {
 			return _objects[i];
 		}
 	}
 
 	// waypoint groups
-	for (uint32 i = 0; i < _waypointGroups.getSize(); i++) {
+	for (int32 i = 0; i < _waypointGroups.getSize(); i++) {
 		if (!scumm_stricmp(name, _waypointGroups[i]->getName())) {
 			return _waypointGroups[i];
 		}
@@ -3453,9 +3453,9 @@ bool AdScene::persistState(bool saving) {
 	AdNodeState *nodeState;
 
 	// dependent objects
-	for (uint32 i = 0; i < _layers.getSize(); i++) {
+	for (int32 i = 0; i < _layers.getSize(); i++) {
 		AdLayer *layer = _layers[i];
-		for (uint32 j = 0; j < layer->_nodes.getSize(); j++) {
+		for (int32 j = 0; j < layer->_nodes.getSize(); j++) {
 			AdSceneNode *node = layer->_nodes[j];
 			switch (node->_type) {
 			case OBJECT_ENTITY:
@@ -3490,7 +3490,7 @@ bool AdScene::persistState(bool saving) {
 	}
 
 	// free entities
-	for (uint32 i = 0; i < _objects.getSize(); i++) {
+	for (int32 i = 0; i < _objects.getSize(); i++) {
 		if (!_objects[i]->_saveState) {
 			continue;
 		}
@@ -3505,7 +3505,7 @@ bool AdScene::persistState(bool saving) {
 	}
 
 	// waypoint groups
-	for (uint32 i = 0; i < _waypointGroups.getSize(); i++) {
+	for (int32 i = 0; i < _waypointGroups.getSize(); i++) {
 		nodeState = state->getNodeState(_waypointGroups[i]->getName(), saving);
 		if (nodeState) {
 			if (saving) {
@@ -3525,7 +3525,7 @@ float AdScene::getRotationAt(int x, int y) {
 	AdRotLevel *prev = nullptr;
 	AdRotLevel *next = nullptr;
 
-	for (uint32 i = 0; i < _rotLevels.getSize(); i++) {
+	for (int32 i = 0; i < _rotLevels.getSize(); i++) {
 		/*  AdRotLevel *xxx = _rotLevels[i];
 		    int j = _rotLevels.size();*/
 		if (_rotLevels[i]->_posX < x) {
@@ -3551,9 +3551,9 @@ float AdScene::getRotationAt(int x, int y) {
 
 //////////////////////////////////////////////////////////////////////////
 bool AdScene::handleItemAssociations(const char *itemName, bool show) {
-	for (uint32 i = 0; i < _layers.getSize(); i++) {
+	for (int32 i = 0; i < _layers.getSize(); i++) {
 		AdLayer *layer = _layers[i];
-		for (uint32 j = 0; j < layer->_nodes.getSize(); j++) {
+		for (int32 j = 0; j < layer->_nodes.getSize(); j++) {
 			if (layer->_nodes[j]->_type == OBJECT_ENTITY) {
 				AdEntity *ent = layer->_nodes[j]->_entity;
 
@@ -3564,7 +3564,7 @@ bool AdScene::handleItemAssociations(const char *itemName, bool show) {
 		}
 	}
 
-	for (uint32 i = 0; i < _objects.getSize(); i++) {
+	for (int32 i = 0; i < _objects.getSize(); i++) {
 		if (_objects[i]->getType() == OBJECT_ENTITY) {
 			AdEntity *ent = (AdEntity *)_objects[i];
 			if (ent->getItemName() && strcmp(ent->getItemName(), itemName) == 0) {
@@ -3581,7 +3581,7 @@ bool AdScene::handleItemAssociations(const char *itemName, bool show) {
 bool AdScene::getRegionsAt(int x, int y, AdRegion **regionList, int numRegions) {
 	int numUsed = 0;
 	if (_mainLayer) {
-		for (int i = _mainLayer->_nodes.getSize() - 1; i >= 0; i--) {
+		for (int32 i = _mainLayer->_nodes.getSize() - 1; i >= 0; i--) {
 			AdSceneNode *node = _mainLayer->_nodes[i];
 			if (node->_type == OBJECT_REGION && node->_region->_active && node->_region->pointInRegion(x, y)) {
 				if (numUsed < numRegions - 1) {
@@ -3615,7 +3615,7 @@ BaseObject *AdScene::getNextAccessObject(BaseObject *currObject) {
 		return nullptr;
 	} else {
 		if (currObject != nullptr) {
-			for (uint32 i = 0; i < objects.getSize(); i++) {
+			for (int32 i = 0; i < objects.getSize(); i++) {
 				if (objects[i] == currObject) {
 					if (i < (int32)objects.getSize() - 1) {
 						return objects[i + 1];
@@ -3639,7 +3639,7 @@ BaseObject *AdScene::getPrevAccessObject(BaseObject *currObject) {
 		return nullptr;
 	} else {
 		if (currObject != nullptr) {
-			for (int32 i = (int32)objects.getSize() - 1; i >= 0; i--) {
+			for (int32 i = objects.getSize() - 1; i >= 0; i--) {
 				if (objects[i] == currObject) {
 					if (i > 0) {
 						return objects[i - 1];
@@ -3657,14 +3657,14 @@ BaseObject *AdScene::getPrevAccessObject(BaseObject *currObject) {
 
 //////////////////////////////////////////////////////////////////////////
 bool AdScene::getSceneObjects(BaseArray<AdObject *> &objects, bool interactiveOnly) {
-	for (uint32 i = 0; i < _layers.getSize(); i++) {
+	for (int32 i = 0; i < _layers.getSize(); i++) {
 		// close-up layer -> remove everything below it
 		if (interactiveOnly && _layers[i]->_closeUp) {
 			objects.removeAll();
 		}
 
 
-		for (uint32 j = 0; j < _layers[i]->_nodes.getSize(); j++) {
+		for (int32 j = 0; j < _layers[i]->_nodes.getSize(); j++) {
 			AdSceneNode *node = _layers[i]->_nodes[j];
 			switch (node->_type) {
 			case OBJECT_ENTITY: {
@@ -3678,9 +3678,9 @@ bool AdScene::getSceneObjects(BaseArray<AdObject *> &objects, bool interactiveOn
 			case OBJECT_REGION: {
 				BaseArray<AdObject *> regionObj;
 				getRegionObjects(node->_region, regionObj, interactiveOnly);
-				for (uint32 newIndex = 0; newIndex < regionObj.getSize(); newIndex++) {
+				for (int32 newIndex = 0; newIndex < regionObj.getSize(); newIndex++) {
 					bool found = false;
-					for (uint32 old = 0; old < objects.getSize(); old++) {
+					for (int32 old = 0; old < objects.getSize(); old++) {
 						if (objects[old] == regionObj[newIndex]) {
 							found = true;
 							break;
@@ -3704,9 +3704,9 @@ bool AdScene::getSceneObjects(BaseArray<AdObject *> &objects, bool interactiveOn
 	// objects outside any region
 	BaseArray<AdObject *> regionObj;
 	getRegionObjects(NULL, regionObj, interactiveOnly);
-	for (uint32 newIndex = 0; newIndex < regionObj.getSize(); newIndex++) {
+	for (int32 newIndex = 0; newIndex < regionObj.getSize(); newIndex++) {
 		bool found = false;
-		for (uint32 old = 0; old < objects.getSize(); old++) {
+		for (int32 old = 0; old < objects.getSize(); old++) {
 			if (objects[old] == regionObj[newIndex]) {
 				found = true;
 				break;
@@ -3728,7 +3728,7 @@ bool AdScene::getRegionObjects(AdRegion *region, BaseArray<AdObject *> &objects,
 	AdObject *obj;
 
 	// global objects
-	for (uint32 i = 0; i < adGame->_objects.getSize(); i++) {
+	for (int32 i = 0; i < adGame->_objects.getSize(); i++) {
 		obj = adGame->_objects[i];
 		if (obj->_active && (obj->_stickRegion == region || region == nullptr || (obj->_stickRegion == nullptr && region->pointInRegion(obj->_posX, obj->_posY)))) {
 			if (interactiveOnly && !obj->_registrable) {
@@ -3740,7 +3740,7 @@ bool AdScene::getRegionObjects(AdRegion *region, BaseArray<AdObject *> &objects,
 	}
 
 	// scene objects
-	for (uint32 i = 0; i < _objects.getSize(); i++) {
+	for (int32 i = 0; i < _objects.getSize(); i++) {
 		obj = _objects[i];
 		if (obj->_active && !obj->_editorOnly && (obj->_stickRegion == region || region == nullptr || (obj->_stickRegion == nullptr && region->pointInRegion(obj->_posX, obj->_posY)))) {
 			if (interactiveOnly && !obj->_registrable) {
diff --git a/engines/wintermute/ad/ad_scene_geometry.cpp b/engines/wintermute/ad/ad_scene_geometry.cpp
index 1ad2c5f16dd..a411e6f8d6d 100644
--- a/engines/wintermute/ad/ad_scene_geometry.cpp
+++ b/engines/wintermute/ad/ad_scene_geometry.cpp
@@ -94,7 +94,7 @@ AdSceneGeometry::~AdSceneGeometry() {
 
 //////////////////////////////////////////////////////////////////////////
 void AdSceneGeometry::cleanup() {
-	uint i;
+	int32 i;
 
 	for (i = 0; i < _planes.getSize(); i++) {
 		delete _planes[i];
@@ -191,7 +191,7 @@ bool AdSceneGeometry::loadFile(const char *filename) {
 		return false;
 	}
 
-	uint i;
+	int32 i;
 
 	SystemClassRegistry::getInstance()->_disabled = true;
 
@@ -329,8 +329,8 @@ bool AdSceneGeometry::loadFile(const char *filename) {
 
 //////////////////////////////////////////////////////////////////////////
 bool AdSceneGeometry::dropWaypoints() {
-	for (uint32 i = 0; i < _waypointGroups.getSize(); i++) {
-		for (uint32 j = 0; j < _waypointGroups[i]->_points.getSize(); j++) {
+	for (int32 i = 0; i < _waypointGroups.getSize(); i++) {
+		for (int32 j = 0; j < _waypointGroups[i]->_points.getSize(); j++) {
 			DXVector3 *point = _waypointGroups[i]->_points[j];
 			point->_y = getHeightAt(*point) + _waypointHeight;
 		}
@@ -340,7 +340,7 @@ bool AdSceneGeometry::dropWaypoints() {
 
 //////////////////////////////////////////////////////////////////////////
 bool AdSceneGeometry::setActiveCamera(int camera, float fov, float nearClipPlane, float farClipPlane) {
-	if (camera < 0 || static_cast<uint32>(camera) >= _cameras.getSize()) {
+	if (camera < 0 || camera >= _cameras.getSize()) {
 		_gameRef->LOG(0, "Warning: Camera %d is out of bounds.", camera);
 		return false;
 	} else {
@@ -362,7 +362,7 @@ bool AdSceneGeometry::setActiveCamera(int camera, float fov, float nearClipPlane
 
 //////////////////////////////////////////////////////////////////////////
 bool AdSceneGeometry::setActiveCamera(const char *camera, float fov, float nearClipPlane, float farClipPlane) {
-	for (uint32 i = 0; i < _cameras.getSize(); i++) {
+	for (int32 i = 0; i < _cameras.getSize(); i++) {
 		if (scumm_stricmp(_cameras[i]->getName(), camera) == 0)
 			return setActiveCamera(i, fov, nearClipPlane, farClipPlane);
 	}
@@ -373,7 +373,7 @@ bool AdSceneGeometry::setActiveCamera(const char *camera, float fov, float nearC
 
 //////////////////////////////////////////////////////////////////////////
 Camera3D *AdSceneGeometry::getActiveCamera() {
-	if (_activeCamera >= 0 && static_cast<uint32>(_activeCamera) < _cameras.getSize()) {
+	if (_activeCamera >= 0 && _activeCamera < _cameras.getSize()) {
 		return _cameras[_activeCamera];
 	} else {
 		return nullptr;
@@ -381,8 +381,8 @@ Camera3D *AdSceneGeometry::getActiveCamera() {
 }
 
 //////////////////////////////////////////////////////////////////////////
-bool AdSceneGeometry::setActiveLight(int light) {
-	if (light < 0 || static_cast<uint32>(light) >= _lights.getSize()) {
+bool AdSceneGeometry::setActiveLight(int32 light) {
+	if (light < 0 || light >= _lights.getSize()) {
 		_gameRef->LOG(0, "Warning: Light %d is out of bounds.", light);
 		return false;
 	} else {
@@ -393,7 +393,7 @@ bool AdSceneGeometry::setActiveLight(int light) {
 
 //////////////////////////////////////////////////////////////////////////
 bool AdSceneGeometry::setActiveLight(char *light) {
-	for (uint i = 0; i < _lights.getSize(); i++) {
+	for (int32 i = 0; i < _lights.getSize(); i++) {
 		if (scumm_stricmp(_lights[i]->getName(), light) == 0) {
 			return setActiveLight(i);
 		}
@@ -475,7 +475,7 @@ float AdSceneGeometry::getHeightAt(DXVector3 pos, float tolerance, bool *intFoun
 
 	bool intFoundTmp = false;
 
-	for (uint32 i = 0; i < _planes.getSize(); i++) {
+	for (int32 i = 0; i < _planes.getSize(); i++) {
 		for (uint32 j = 0; j < _planes[i]->_mesh->_numFaces; j++) {
 			if (C3DUtils::intersectTriangle(pos, dir,
 				                        _planes[i]->_mesh->_vertices[_planes[i]->_mesh->_faces[j]._vertices[0]]._pos,
@@ -507,7 +507,7 @@ bool AdSceneGeometry::directPathExists(DXVector3 *p1, DXVector3 *p2) {
 	DXVector3 v0, v1, v2;
 
 	// test walkplanes
-	for (uint32 i = 0; i < _planes.getSize(); i++) {
+	for (int32 i = 0; i < _planes.getSize(); i++) {
 		for (int32 j = 0; j < _planes[i]->_mesh->_numFaces; j++) {
 			v0 = _planes[i]->_mesh->_vertices[_planes[i]->_mesh->_faces[j]._vertices[0]]._pos;
 			v1 = _planes[i]->_mesh->_vertices[_planes[i]->_mesh->_faces[j]._vertices[1]]._pos;
@@ -529,7 +529,7 @@ bool AdSceneGeometry::directPathExists(DXVector3 *p1, DXVector3 *p2) {
 	}
 
 	// test blocks
-	for (uint32 i = 0; i < _blocks.getSize(); i++) {
+	for (int32 i = 0; i < _blocks.getSize(); i++) {
 		if (!_blocks[i]->_active) {
 			continue;
 		}
@@ -564,7 +564,7 @@ DXVector3 AdSceneGeometry::getBlockIntersection(DXVector3 *p1, DXVector3 *p2) {
 	DXVector3 v0, v1, v2;
 
 	// test blocks
-	for (uint32 i = 0; i < _blocks.getSize(); i++) {
+	for (int32 i = 0; i < _blocks.getSize(); i++) {
 		if (!_blocks[i]->_active) {
 			continue;
 		}
@@ -724,8 +724,8 @@ bool AdSceneGeometry::convert2Dto3D(int x, int y, DXVector3 *pos) {
 	bool intFound = false;
 	float minDist = FLT_MAX;
 	DXVector3 intersection, ray;
-	for (uint32 i = 0; i < _planes.getSize(); i++) {
-		for (uint32 j = 0; j < _planes[i]->_mesh->_numFaces; j++) {
+	for (int32 i = 0; i < _planes.getSize(); i++) {
+		for (int32 j = 0; j < _planes[i]->_mesh->_numFaces; j++) {
 			if (C3DUtils::intersectTriangle(vPickRayOrig, vPickRayDir,
 								  _planes[i]->_mesh->_vertices[_planes[i]->_mesh->_faces[j]._vertices[0]]._pos,
 								  _planes[i]->_mesh->_vertices[_planes[i]->_mesh->_faces[j]._vertices[1]]._pos,
@@ -765,7 +765,7 @@ bool AdSceneGeometry::getPath(DXVector3 source, DXVector3 target, AdPath3D *path
 		_PFRerun = rerun;
 
 		// prepare working path
-		uint32 i, j;
+		int32 i, j;
 		for (i = 0; i < _PFPath.getSize(); i++) {
 			delete _PFPath[i];
 		}
@@ -792,7 +792,7 @@ bool AdSceneGeometry::getPath(DXVector3 source, DXVector3 target, AdPath3D *path
 
 //////////////////////////////////////////////////////////////////////////
 void AdSceneGeometry::pathFinderStep() {
-	uint32 i;
+	int32 i;
 
 	// get lowest unmarked
 	float lowestDist = FLT_MAX;
@@ -888,14 +888,14 @@ bool AdSceneGeometry::initLoop() {
 //////////////////////////////////////////////////////////////////////////
 bool AdSceneGeometry::createLights() {
 	// disable all lights
-	int maxLights = _gameRef->_renderer3D->getMaxActiveLights();
-	for (int i = 0; i < maxLights; i++) {
+	int32 maxLights = _gameRef->_renderer3D->getMaxActiveLights();
+	for (int32 i = 0; i < maxLights; i++) {
 		_gameRef->_renderer3D->lightEnable(i, false);
 	}
 
-	int lightCount = MIN(static_cast<int>(_lights.getSize()), maxLights);
+	int32 lightCount = MIN(_lights.getSize(), maxLights);
 
-	for (int i = 0; i < lightCount; i++) {
+	for (int32 i = 0; i < lightCount; i++) {
 		_lights[i]->setLight(i);
 	}
 
@@ -907,8 +907,8 @@ bool AdSceneGeometry::enableLights(DXVector3 point, BaseArray<char *> &ignoreLig
 	const int maxLightCount = 100;
 	int maxLights = _gameRef->_renderer3D->getMaxActiveLights();
 
-	int numActiveLights = 0;
-	for (uint i = 0; i < _lights.getSize(); i++) {
+	int32 numActiveLights = 0;
+	for (int32 i = 0; i < _lights.getSize(); i++) {
 		_lights[i]->_isAvailable = false;
 		if (_lights[i]->_active) {
 			numActiveLights++;
@@ -916,7 +916,7 @@ bool AdSceneGeometry::enableLights(DXVector3 point, BaseArray<char *> &ignoreLig
 	}
 
 	if (numActiveLights <= maxLights) {
-		for (uint i = 0; i < _lights.getSize(); i++) {
+		for (int32 i = 0; i < _lights.getSize(); i++) {
 			_lights[i]->_isAvailable = true;
 		}
 	} else {
@@ -928,7 +928,7 @@ bool AdSceneGeometry::enableLights(DXVector3 point, BaseArray<char *> &ignoreLig
 		BaseArray<Light3D *> activeLights;
 
 		// compute distance to point
-		for (uint i = 0; i < _lights.getSize(); i++) {
+		for (int32 i = 0; i < _lights.getSize(); i++) {
 			if (!_lights[i]->_active) {
 				continue;
 			}
@@ -951,7 +951,7 @@ bool AdSceneGeometry::enableLights(DXVector3 point, BaseArray<char *> &ignoreLig
 		if (activeLights.getSize() > 0) {
 			qsort(activeLights.getData(), activeLights.getSize(), sizeof(Light3D *), AdSceneGeometry::compareLights);
 
-			for (uint32 i = 0; i < activeLights.getSize(); i++) {
+			for (int32 i = 0; i < activeLights.getSize(); i++) {
 				activeLights[i]->_isAvailable = static_cast<int32>(i) < maxLights;
 			}
 		}
@@ -963,14 +963,14 @@ bool AdSceneGeometry::enableLights(DXVector3 point, BaseArray<char *> &ignoreLig
 	}
 
 	numActiveLights = 0;
-	for (uint32 i = 0; i < _lights.getSize(); i++) {
+	for (int32 i = 0; i < _lights.getSize(); i++) {
 		if (numActiveLights >= maxLights) {
 			break;
 		}
 
 		if (ignoreLights.getSize()) {
 			bool ignore = false;
-			for (uint32 j = 0; j < ignoreLights.getSize(); j++) {
+			for (int32 j = 0; j < ignoreLights.getSize(); j++) {
 				if (scumm_stricmp(_lights[i]->getName(), ignoreLights[j]) == 0) {
 					ignore = true;
 					break;
@@ -1105,7 +1105,7 @@ bool AdSceneGeometry::correctTargetPoint(const DXVector3 &source, DXVector3 *tar
 bool AdSceneGeometry::enableNode(const char *nodeName, bool enable) {
 	bool ret = false;
 
-	uint32 i;
+	int32 i;
 	for (i = 0; i < _blocks.getSize(); i++) {
 		if (scumm_stricmp(nodeName, _blocks[i]->getName()) == 0) {
 			_blocks[i]->_active = enable;
@@ -1132,18 +1132,18 @@ bool AdSceneGeometry::enableNode(const char *nodeName, bool enable) {
 
 //////////////////////////////////////////////////////////////////////////
 bool AdSceneGeometry::isNodeEnabled(const char *nodeName) {
-	for (uint32 i = 0; i < _blocks.getSize(); i++) {
+	for (int32 i = 0; i < _blocks.getSize(); i++) {
 		if (scumm_stricmp(nodeName, _blocks[i]->getName()) == 0) {
 			return _blocks[i]->_active;
 		}
 	}
-	for (uint32 i = 0; i < _planes.getSize(); i++) {
+	for (int32 i = 0; i < _planes.getSize(); i++) {
 		if (scumm_stricmp(nodeName, _planes[i]->getName()) == 0) {
 			return _planes[i]->_active;
 		}
 	}
 
-	for (uint32 i = 0; i < _generics.getSize(); i++) {
+	for (int32 i = 0; i < _generics.getSize(); i++) {
 		if (scumm_stricmp(nodeName, _generics[i]->getName()) == 0) {
 			return _generics[i]->_active;
 		}
@@ -1156,7 +1156,7 @@ bool AdSceneGeometry::isNodeEnabled(const char *nodeName) {
 bool AdSceneGeometry::enableLight(const char *lightName, bool enable) {
 	bool ret = false;
 
-	uint32 i;
+	int32 i;
 	for (i = 0; i < _lights.getSize(); i++) {
 		if (scumm_stricmp(lightName, _lights[i]->getName()) == 0) {
 			_lights[i]->_active = enable;
@@ -1170,7 +1170,7 @@ bool AdSceneGeometry::enableLight(const char *lightName, bool enable) {
 
 //////////////////////////////////////////////////////////////////////////
 bool AdSceneGeometry::isLightEnabled(const char *lightName) {
-	for (uint32 i = 0; i < _lights.getSize(); i++) {
+	for (int32 i = 0; i < _lights.getSize(); i++) {
 		if (scumm_stricmp(lightName, _lights[i]->getName()) == 0) {
 			return _lights[i]->_active;
 		}
@@ -1182,7 +1182,7 @@ bool AdSceneGeometry::isLightEnabled(const char *lightName) {
 bool AdSceneGeometry::setLightColor(const char *lightName, uint32 color) {
 	bool ret = false;
 
-	uint32 i;
+	int32 i;
 	for (i = 0; i < _lights.getSize(); i++) {
 		if (scumm_stricmp(lightName, _lights[i]->getName()) == 0) {
 			_lights[i]->_diffuseColor = color;
@@ -1196,7 +1196,7 @@ bool AdSceneGeometry::setLightColor(const char *lightName, uint32 color) {
 
 //////////////////////////////////////////////////////////////////////////
 uint32 AdSceneGeometry::getLightColor(const char *lightName) {
-	for (uint32 i = 0; i < _lights.getSize(); i++) {
+	for (int32 i = 0; i < _lights.getSize(); i++) {
 		if (scumm_stricmp(lightName, _lights[i]->getName()) == 0) {
 			return _lights[i]->_diffuseColor;
 		}
@@ -1206,7 +1206,7 @@ uint32 AdSceneGeometry::getLightColor(const char *lightName) {
 
 //////////////////////////////////////////////////////////////////////////
 DXVector3 AdSceneGeometry::getLightPos(const char *lightName) {
-	for (uint32 i = 0; i < _lights.getSize(); i++) {
+	for (int32 i = 0; i < _lights.getSize(); i++) {
 		if (scumm_stricmp(lightName, _lights[i]->getName()) == 0) {
 			return _lights[i]->_pos;
 		}
@@ -1255,7 +1255,7 @@ bool AdSceneGeometry::persist(BasePersistenceManager *persistMgr) {
 			persistMgr->transferCharPtr(TMEMBER(name));
 			bool found = false;
 
-			for (uint32 j = 0; j < _lights.getSize(); j++) {
+			for (int32 j = 0; j < _lights.getSize(); j++) {
 				if (scumm_stricmp(name, _lights[j]->getName()) == 0) {
 					_lights[j]->persist(persistMgr);
 					found = true;
@@ -1278,7 +1278,7 @@ bool AdSceneGeometry::persist(BasePersistenceManager *persistMgr) {
 	createLights();
 
 	//////////////////////////////////////////////////////////////////////////
-	int32 numBlocks = (int32)_blocks.getSize();
+	int32 numBlocks = _blocks.getSize();
 	persistMgr->transferSint32(TMEMBER(numBlocks));
 	for (i = 0; i < numBlocks; i++) {
 		if (persistMgr->getIsSaving()) {
@@ -1288,7 +1288,7 @@ bool AdSceneGeometry::persist(BasePersistenceManager *persistMgr) {
 			char *name = nullptr;
 			persistMgr->transferCharPtr(TMEMBER(name));
 			bool found = false;
-			for (uint j = 0; j < _blocks.getSize(); j++) {
+			for (int32 j = 0; j < _blocks.getSize(); j++) {
 				if (scumm_stricmp(name, _blocks[j]->getName()) == 0) {
 					_blocks[j]->persist(persistMgr);
 					found = true;
@@ -1309,7 +1309,7 @@ bool AdSceneGeometry::persist(BasePersistenceManager *persistMgr) {
 	}
 
 	//////////////////////////////////////////////////////////////////////////
-	int32 numPlanes = (int32)_planes.getSize();
+	int32 numPlanes = _planes.getSize();
 	persistMgr->transferSint32(TMEMBER(numPlanes));
 	for (i = 0; i < numPlanes; i++) {
 		if (persistMgr->getIsSaving()) {
@@ -1319,7 +1319,7 @@ bool AdSceneGeometry::persist(BasePersistenceManager *persistMgr) {
 			char *name = nullptr;
 			persistMgr->transferCharPtr(TMEMBER(name));
 			bool found = false;
-			for (uint j = 0; j < _planes.getSize(); j++) {
+			for (int32 j = 0; j < _planes.getSize(); j++) {
 				if (scumm_stricmp(name, _planes[j]->getName()) == 0) {
 					_planes[j]->persist(persistMgr);
 					found = true;
@@ -1340,7 +1340,7 @@ bool AdSceneGeometry::persist(BasePersistenceManager *persistMgr) {
 	}
 
 	//////////////////////////////////////////////////////////////////////////
-	int32 numGenerics = (int32)_generics.getSize();
+	int32 numGenerics = _generics.getSize();
 	persistMgr->transferSint32(TMEMBER(numGenerics));
 	for (i = 0; i < numGenerics; i++) {
 		if (persistMgr->getIsSaving()) {
@@ -1350,7 +1350,7 @@ bool AdSceneGeometry::persist(BasePersistenceManager *persistMgr) {
 			char *name = nullptr;
 			persistMgr->transferCharPtr(TMEMBER(name));
 			bool found = false;
-			for (uint j = 0; j < _generics.getSize(); j++) {
+			for (int32 j = 0; j < _generics.getSize(); j++) {
 				if (scumm_stricmp(name, _generics[j]->getName()) == 0) {
 					_generics[j]->persist(persistMgr);
 					found = true;
diff --git a/engines/wintermute/ad/ad_scene_geometry.h b/engines/wintermute/ad/ad_scene_geometry.h
index a7a1491eda5..4c2e4786ccc 100644
--- a/engines/wintermute/ad/ad_scene_geometry.h
+++ b/engines/wintermute/ad/ad_scene_geometry.h
@@ -99,7 +99,7 @@ public:
 	int32 _activeCamera;
 
 	bool setActiveLight(char *light);
-	bool setActiveLight(int light);
+	bool setActiveLight(int32 light);
 	int32 _activeLight;
 
 	void cleanup();
diff --git a/engines/wintermute/ad/ad_scene_state.cpp b/engines/wintermute/ad/ad_scene_state.cpp
index 153f951e7af..85623cd994b 100644
--- a/engines/wintermute/ad/ad_scene_state.cpp
+++ b/engines/wintermute/ad/ad_scene_state.cpp
@@ -46,7 +46,7 @@ AdSceneState::~AdSceneState() {
 	delete[] _filename;
 	_filename = nullptr;
 
-	for (uint32 i = 0; i < _nodeStates.getSize(); i++) {
+	for (int32 i = 0; i < _nodeStates.getSize(); i++) {
 		delete _nodeStates[i];
 	}
 	_nodeStates.removeAll();
@@ -76,7 +76,7 @@ const char *AdSceneState::getFilename() const {
 
 //////////////////////////////////////////////////////////////////////////
 AdNodeState *AdSceneState::getNodeState(const char *name, bool saving) {
-	for (uint32 i = 0; i < _nodeStates.getSize(); i++) {
+	for (int32 i = 0; i < _nodeStates.getSize(); i++) {
 		if (scumm_stricmp(_nodeStates[i]->getName(), name) == 0) {
 			return _nodeStates[i];
 		}
diff --git a/engines/wintermute/ad/ad_sentence.cpp b/engines/wintermute/ad/ad_sentence.cpp
index c94def6cd58..cc7cc42ad59 100644
--- a/engines/wintermute/ad/ad_sentence.cpp
+++ b/engines/wintermute/ad/ad_sentence.cpp
@@ -313,7 +313,7 @@ bool AdSentence::update(TDirection dir) {
 	currentTime = _gameRef->getTimer()->getTime() - _startTime;
 
 	bool talkNodeFound = false;
-	for (uint32 i = 0; i < _talkDef->_nodes.getSize(); i++) {
+	for (int32 i = 0; i < _talkDef->_nodes.getSize(); i++) {
 		if (_talkDef->_nodes[i]->isInTimeInterval(currentTime, dir)) {
 			talkNodeFound = true;
 
diff --git a/engines/wintermute/ad/ad_talk_def.cpp b/engines/wintermute/ad/ad_talk_def.cpp
index dd1aa6d7dd1..1521863dfe8 100644
--- a/engines/wintermute/ad/ad_talk_def.cpp
+++ b/engines/wintermute/ad/ad_talk_def.cpp
@@ -51,7 +51,7 @@ AdTalkDef::AdTalkDef(BaseGame *inGame) : BaseObject(inGame) {
 
 //////////////////////////////////////////////////////////////////////////
 AdTalkDef::~AdTalkDef() {
-	for (uint32 i = 0; i < _nodes.getSize(); i++) {
+	for (int32 i = 0; i < _nodes.getSize(); i++) {
 		delete _nodes[i];
 	}
 	_nodes.removeAll();
@@ -233,7 +233,7 @@ bool AdTalkDef::saveAsText(BaseDynamicBuffer *buffer, int indent) {
 		_defaultSpriteSet->saveAsText(buffer, indent + 2);
 	}
 
-	for (uint32 i = 0; i < _nodes.getSize(); i++) {
+	for (int32 i = 0; i < _nodes.getSize(); i++) {
 		_nodes[i]->saveAsText(buffer, indent + 2);
 		buffer->putTextIndent(indent, "\n");
 	}
diff --git a/engines/wintermute/ad/ad_talk_holder.cpp b/engines/wintermute/ad/ad_talk_holder.cpp
index 4009da3f1eb..5f4535e4ab7 100644
--- a/engines/wintermute/ad/ad_talk_holder.cpp
+++ b/engines/wintermute/ad/ad_talk_holder.cpp
@@ -52,12 +52,12 @@ AdTalkHolder::~AdTalkHolder() {
 	delete _sprite;
 	_sprite = nullptr;
 
-	for (uint32 i = 0; i < _talkSprites.getSize(); i++) {
+	for (int32 i = 0; i < _talkSprites.getSize(); i++) {
 		delete _talkSprites[i];
 	}
 	_talkSprites.removeAll();
 
-	for (uint32 i = 0; i < _talkSpritesEx.getSize(); i++) {
+	for (int32 i = 0; i < _talkSpritesEx.getSize(); i++) {
 		delete _talkSpritesEx[i];
 	}
 	_talkSpritesEx.removeAll();
@@ -88,7 +88,7 @@ BaseSprite *AdTalkHolder::getTalkStance(const char *stance) {
 
 	if (stance != nullptr) {
 		// search special talk stances
-		for (uint32 i = 0; i < _talkSpritesEx.getSize(); i++) {
+		for (int32 i = 0; i < _talkSpritesEx.getSize(); i++) {
 			if (scumm_stricmp(_talkSpritesEx[i]->getName(), stance) == 0) {
 				ret = _talkSpritesEx[i];
 				break;
@@ -96,7 +96,7 @@ BaseSprite *AdTalkHolder::getTalkStance(const char *stance) {
 		}
 		if (ret == nullptr) {
 			// serach generic talk stances
-			for (uint32 i = 0; i < _talkSprites.getSize(); i++) {
+			for (int32 i = 0; i < _talkSprites.getSize(); i++) {
 				if (scumm_stricmp(_talkSprites[i]->getName(), stance) == 0) {
 					ret = _talkSprites[i];
 					break;
@@ -228,7 +228,7 @@ bool AdTalkHolder::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisS
 		bool setTemp2 = false;
 
 		if (ex) {
-			for (uint32 i = 0; i < _talkSpritesEx.getSize(); i++) {
+			for (int32 i = 0; i < _talkSpritesEx.getSize(); i++) {
 				if (scumm_stricmp(_talkSpritesEx[i]->getFilename(), filename) == 0) {
 					if (_currentSprite == _talkSpritesEx[i]) {
 						setCurrent = true;
@@ -242,7 +242,7 @@ bool AdTalkHolder::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisS
 				}
 			}
 		} else {
-			for (uint32 i = 0; i < _talkSprites.getSize(); i++) {
+			for (int32 i = 0; i < _talkSprites.getSize(); i++) {
 				if (scumm_stricmp(_talkSprites[i]->getFilename(), filename) == 0) {
 					if (_currentSprite == _talkSprites[i]) {
 						setCurrent = true;
@@ -283,7 +283,7 @@ bool AdTalkHolder::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisS
 		BaseScriptable *arr;
 		stack->pushInt(0);
 		arr = makeSXArray(_gameRef, stack);
-		for (uint32 i = 0; i < sprites.getSize(); i++) {
+		for (int32 i = 0; i < sprites.getSize(); i++) {
 			stack->pushString(sprites[i]->getFilename());
 			((SXArray *)arr)->push(stack->pop());
 		}
@@ -311,7 +311,7 @@ bool AdTalkHolder::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisS
 
 			// delete current
 			if (ex) {
-				for (uint32 i = 0; i < _talkSpritesEx.getSize(); i++) {
+				for (int32 i = 0; i < _talkSpritesEx.getSize(); i++) {
 					if (_talkSpritesEx[i] == _currentSprite) {
 						setCurrent = true;
 					}
@@ -322,7 +322,7 @@ bool AdTalkHolder::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisS
 				}
 				_talkSpritesEx.removeAll();
 			} else {
-				for (uint32 i = 0; i < _talkSprites.getSize(); i++) {
+				for (int32 i = 0; i < _talkSprites.getSize(); i++) {
 					if (_talkSprites[i] == _currentSprite) {
 						setCurrent = true;
 					}
@@ -395,13 +395,13 @@ const char *AdTalkHolder::scToString() {
 
 //////////////////////////////////////////////////////////////////////////
 bool AdTalkHolder::saveAsText(BaseDynamicBuffer *buffer, int indent) {
-	for (uint32 i = 0; i < _talkSprites.getSize(); i++) {
+	for (int32 i = 0; i < _talkSprites.getSize(); i++) {
 		if (_talkSprites[i]->getFilename()) {
 			buffer->putTextIndent(indent + 2, "TALK=\"%s\"\n", _talkSprites[i]->getFilename());
 		}
 	}
 
-	for (uint32 i = 0; i < _talkSpritesEx.getSize(); i++) {
+	for (int32 i = 0; i < _talkSpritesEx.getSize(); i++) {
 		if (_talkSpritesEx[i]->getFilename()) {
 			buffer->putTextIndent(indent + 2, "TALK_SPECIAL=\"%s\"\n", _talkSpritesEx[i]->getFilename());
 		}
diff --git a/engines/wintermute/ad/ad_waypoint_group.cpp b/engines/wintermute/ad/ad_waypoint_group.cpp
index e8cad57f218..80ee14cfe0c 100644
--- a/engines/wintermute/ad/ad_waypoint_group.cpp
+++ b/engines/wintermute/ad/ad_waypoint_group.cpp
@@ -55,7 +55,7 @@ AdWaypointGroup::~AdWaypointGroup() {
 
 //////////////////////////////////////////////////////////////////////////
 void AdWaypointGroup::cleanup() {
-	for (uint32 i = 0; i < _points.getSize(); i++) {
+	for (int32 i = 0; i < _points.getSize(); i++) {
 		delete _points[i];
 	}
 	_points.removeAll();
@@ -181,7 +181,7 @@ bool AdWaypointGroup::saveAsText(BaseDynamicBuffer *buffer, int indent) {
 	}
 	BaseClass::saveAsText(buffer, indent + 2);
 
-	for (uint32 i = 0; i < _points.getSize(); i++) {
+	for (int32 i = 0; i < _points.getSize(); i++) {
 		buffer->putTextIndent(indent + 2, "POINT {%d,%d}\n", _points[i]->x, _points[i]->y);
 	}
 
@@ -255,7 +255,7 @@ bool AdWaypointGroup::mimic(AdWaypointGroup *wpt, float scale, int argX, int arg
 
 	cleanup();
 
-	for (uint32 i = 0; i < wpt->_points.getSize(); i++) {
+	for (int32 i = 0; i < wpt->_points.getSize(); i++) {
 		int x = (int)((float)wpt->_points[i]->x * scale / 100.0f);
 		int y = (int)((float)wpt->_points[i]->y * scale / 100.0f);
 
diff --git a/engines/wintermute/ad/ad_waypoint_group3d.cpp b/engines/wintermute/ad/ad_waypoint_group3d.cpp
index fc3e022f4e6..36edf0780d4 100644
--- a/engines/wintermute/ad/ad_waypoint_group3d.cpp
+++ b/engines/wintermute/ad/ad_waypoint_group3d.cpp
@@ -39,7 +39,7 @@ AdWaypointGroup3D::AdWaypointGroup3D(BaseGame *inGame) : BaseClass(inGame) {
 
 //////////////////////////////////////////////////////////////////////////
 AdWaypointGroup3D::~AdWaypointGroup3D() {
-	for (uint i = 0; i < _points.getSize(); i++) {
+	for (int32 i = 0; i < _points.getSize(); i++) {
 		delete _points[i];
 	}
 	_points.removeAll();
diff --git a/engines/wintermute/base/base_frame.cpp b/engines/wintermute/base/base_frame.cpp
index ed1b7d1ae48..3d42a38ca85 100644
--- a/engines/wintermute/base/base_frame.cpp
+++ b/engines/wintermute/base/base_frame.cpp
@@ -62,12 +62,12 @@ BaseFrame::~BaseFrame() {
 	delete _sound;
 	_sound = nullptr;
 
-	for (uint32 i = 0; i < _subframes.getSize(); i++) {
+	for (int32 i = 0; i < _subframes.getSize(); i++) {
 		delete _subframes[i];
 	}
 	_subframes.removeAll();
 
-	for (uint32 i = 0; i < _applyEvent.getSize(); i++) {
+	for (int32 i = 0; i < _applyEvent.getSize(); i++) {
 		delete[] _applyEvent[i];
 		_applyEvent[i] = nullptr;
 	}
@@ -79,7 +79,7 @@ BaseFrame::~BaseFrame() {
 bool BaseFrame::draw(int x, int y, BaseObject *registerOwner, float zoomX, float zoomY, bool precise, uint32 alpha, bool allFrames, float rotate, Graphics::TSpriteBlendMode blendMode) {
 	bool res;
 
-	for (uint32 i = 0; i < _subframes.getSize(); i++) {
+	for (int32 i = 0; i < _subframes.getSize(); i++) {
 		// filter out subframes unsupported by current renderer
 		if (!allFrames) {
 			if ((_subframes[i]->_2DOnly && _gameRef->_useD3D) || (_subframes[i]->_3DOnly && !_gameRef->_useD3D))
@@ -114,7 +114,7 @@ bool BaseFrame::oneTimeDisplay(BaseObject *owner, bool muted) {
 		*/
 	}
 	if (owner) {
-		for (uint32 i = 0; i < _applyEvent.getSize(); i++) {
+		for (int32 i = 0; i < _applyEvent.getSize(); i++) {
 			owner->applyEvent(_applyEvent[i]);
 		}
 	}
@@ -365,7 +365,7 @@ bool BaseFrame::getBoundingRect(Rect32 *rect, int x, int y, float scaleX, float
 
 	Rect32 subRect;
 
-	for (uint32 i = 0; i < _subframes.getSize(); i++) {
+	for (int32 i = 0; i < _subframes.getSize(); i++) {
 		_subframes[i]->getBoundingRect(&subRect, x, y, scaleX, scaleY);
 		BasePlatform::unionRect(rect, rect, &subRect);
 	}
@@ -401,11 +401,11 @@ bool BaseFrame::saveAsText(BaseDynamicBuffer *buffer, int indent) {
 		_subframes[0]->saveAsText(buffer, indent, false);
 	}
 
-	for (uint32 i = 1; i < _subframes.getSize(); i++) {
+	for (int32 i = 1; i < _subframes.getSize(); i++) {
 		_subframes[i]->saveAsText(buffer, indent + 2);
 	}
 
-	for (uint32 i = 0; i < _applyEvent.getSize(); i++) {
+	for (int32 i = 0; i < _applyEvent.getSize(); i++) {
 		buffer->putTextIndent(indent + 2, "APPLY_EVENT=\"%s\"\n", _applyEvent[i]);
 	}
 
@@ -485,7 +485,7 @@ bool BaseFrame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStac
 	if (strcmp(name, "GetSubframe") == 0) {
 		stack->correctParams(1);
 		int index = stack->pop()->getInt(-1);
-		if (index < 0 || index >= (int32)_subframes.getSize()) {
+		if (index < 0 || index >= _subframes.getSize()) {
 			script->runtimeError("Frame.GetSubframe: Subframe index %d is out of range.", index);
 			stack->pushNULL();
 		} else {
@@ -503,12 +503,12 @@ bool BaseFrame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStac
 		ScValue *val = stack->pop();
 		if (val->isInt()) {
 			int index = val->getInt(-1);
-			if (index < 0 || index >= (int32)_subframes.getSize()) {
+			if (index < 0 || index >= _subframes.getSize()) {
 				script->runtimeError("Frame.DeleteSubframe: Subframe index %d is out of range.", index);
 			}
 		} else {
 			BaseSubFrame *sub = (BaseSubFrame *)val->getNative();
-			for (uint32 i = 0; i < _subframes.getSize(); i++) {
+			for (int32 i = 0; i < _subframes.getSize(); i++) {
 				if (_subframes[i] == sub) {
 					delete _subframes[i];
 					_subframes.removeAt(i);
@@ -563,7 +563,7 @@ bool BaseFrame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStac
 			sub->setSurface(filename);
 		}
 
-		if (index >= (int32)_subframes.getSize()) {
+		if (index >= _subframes.getSize()) {
 			_subframes.add(sub);
 		} else {
 			_subframes.insertAt(index, sub);
@@ -579,7 +579,7 @@ bool BaseFrame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStac
 	else if (strcmp(name, "GetSubframe") == 0) {
 		stack->correctParams(1);
 		int index = stack->pop()->getInt(-1);
-		if (index < 0 || index >= (int32)_applyEvent.getSize()) {
+		if (index < 0 || index >= _applyEvent.getSize()) {
 			script->runtimeError("Frame.GetEvent: Event index %d is out of range.", index);
 			stack->pushNULL();
 		} else {
@@ -594,7 +594,7 @@ bool BaseFrame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStac
 	else if (strcmp(name, "AddEvent") == 0) {
 		stack->correctParams(1);
 		const char *event = stack->pop()->getString();
-		for (uint32 i = 0; i < _applyEvent.getSize(); i++) {
+		for (int32 i = 0; i < _applyEvent.getSize(); i++) {
 			if (scumm_stricmp(_applyEvent[i], event) == 0) {
 				stack->pushNULL();
 				return STATUS_OK;
@@ -611,7 +611,7 @@ bool BaseFrame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStac
 	else if (strcmp(name, "DeleteEvent") == 0) {
 		stack->correctParams(1);
 		const char *event = stack->pop()->getString();
-		for (uint32 i = 0; i < _applyEvent.getSize(); i++) {
+		for (int32 i = 0; i < _applyEvent.getSize(); i++) {
 			if (scumm_stricmp(_applyEvent[i], event) == 0) {
 				delete[] _applyEvent[i];
 				_applyEvent.removeAt(i);
diff --git a/engines/wintermute/base/base_game.cpp b/engines/wintermute/base/base_game.cpp
index 593a198892b..b5f579074e7 100644
--- a/engines/wintermute/base/base_game.cpp
+++ b/engines/wintermute/base/base_game.cpp
@@ -322,7 +322,7 @@ bool BaseGame::cleanup() {
 	unregisterObject(_fader);
 	_fader = nullptr;
 
-	for (uint32 i = 0; i < _regObjects.getSize(); i++) {
+	for (int32 i = 0; i < _regObjects.getSize(); i++) {
 		delete _regObjects[i];
 		_regObjects[i] = nullptr;
 	}
@@ -343,7 +343,7 @@ bool BaseGame::cleanup() {
 	_scValue = nullptr;
 	_sFX = nullptr;
 
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		_scripts[i]->_owner = nullptr;
 		_scripts[i]->finish();
 	}
@@ -362,7 +362,7 @@ bool BaseGame::cleanup() {
 	}
 #endif
 
-	for (uint32 i = 0; i < _quickMessages.getSize(); i++) {
+	for (int32 i = 0; i < _quickMessages.getSize(); i++) {
 		delete _quickMessages[i];
 	}
 	_quickMessages.removeAll();
@@ -699,7 +699,7 @@ bool BaseGame::initLoop() {
 	getMousePos(&_mousePos);
 
 	_focusedWindow = nullptr;
-	for (int i = _windows.getSize() - 1; i >= 0; i--) {
+	for (int32 i = _windows.getSize() - 1; i >= 0; i--) {
 		if (_windows[i]->isVisible()) {
 			_focusedWindow = _windows[i];
 			break;
@@ -1866,7 +1866,7 @@ bool BaseGame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
 	else if (strcmp(name, "DeleteWindow") == 0) {
 		stack->correctParams(1);
 		BaseObject *obj = (BaseObject *)stack->pop()->getNative();
-		for (uint32 i = 0; i < _windows.getSize(); i++) {
+		for (int32 i = 0; i < _windows.getSize(); i++) {
 			if (_windows[i] == obj) {
 				unregisterObject(_windows[i]);
 				stack->pushBool(true);
@@ -3273,7 +3273,7 @@ bool BaseGame::displayQuickMsg() {
 	int posY = 20;
 
 	// display
-	for (uint32 i = 0; i < _quickMessages.getSize(); i++) {
+	for (int32 i = 0; i < _quickMessages.getSize(); i++) {
 		_systemFont->drawText((const byte *)_quickMessages[i]->getText(), 0, posY, _renderer->getWidth());
 		posY += _systemFont->getTextHeight((const byte *)_quickMessages[i]->getText(), _renderer->getWidth());
 	}
@@ -3319,7 +3319,7 @@ bool BaseGame::unregisterObject(BaseObject *object) {
 	}
 
 	// is it a window?
-	for (uint32 i = 0; i < _windows.getSize(); i++) {
+	for (int32 i = 0; i < _windows.getSize(); i++) {
 		if ((BaseObject *)_windows[i] == object) {
 			_windows.removeAt(i);
 
@@ -3343,7 +3343,7 @@ bool BaseGame::unregisterObject(BaseObject *object) {
 	}
 
 	// destroy object
-	for (uint32 i = 0; i < _regObjects.getSize(); i++) {
+	for (int32 i = 0; i < _regObjects.getSize(); i++) {
 		if (_regObjects[i] == object) {
 			_regObjects.removeAt(i);
 			if (!_loadInProgress) {
@@ -3381,7 +3381,7 @@ bool BaseGame::validObject(BaseObject *object) {
 		return true;
 	}
 
-	for (uint32 i = 0; i < _regObjects.getSize(); i++) {
+	for (int32 i = 0; i < _regObjects.getSize(); i++) {
 		if (_regObjects[i] == object) {
 			return true;
 		}
@@ -3837,7 +3837,7 @@ bool BaseGame::displayWindows(bool inGame) {
 	// did we lose focus? focus topmost window
 	if (_focusedWindow == nullptr || !_focusedWindow->isVisible() || _focusedWindow->isDisabled()) {
 		_focusedWindow = nullptr;
-		for (int i = _windows.getSize() - 1; i >= 0; i--) {
+		for (int32 i = _windows.getSize() - 1; i >= 0; i--) {
 			if (_windows[i]->isVisible() && !_windows[i]->isDisabled()) {
 				_focusedWindow = _windows[i];
 				break;
@@ -3846,7 +3846,7 @@ bool BaseGame::displayWindows(bool inGame) {
 	}
 
 	// display all windows
-	for (uint32 i = 0; i < _windows.getSize(); i++) {
+	for (int32 i = 0; i < _windows.getSize(); i++) {
 		if (_windows[i]->isVisible() && _windows[i]->getInGame() == inGame) {
 
 			res = _windows[i]->display();
@@ -3952,7 +3952,7 @@ bool BaseGame::persist(BasePersistenceManager *persistMgr) {
 bool BaseGame::focusWindow(UIWindow *window) {
 	UIWindow *prev = _focusedWindow;
 
-	for (uint32 i = 0; i < _windows.getSize(); i++) {
+	for (int32 i = 0; i < _windows.getSize(); i++) {
 		if (_windows[i] == window) {
 			if (i < _windows.getSize() - 1) {
 				_windows.removeAt(i);
@@ -4159,7 +4159,7 @@ bool BaseGame::setActiveObject(BaseObject *obj) {
 //////////////////////////////////////////////////////////////////////////
 bool BaseGame::pushViewport(BaseViewport *viewport) {
 	_viewportSP++;
-	if (_viewportSP >= (int32)_viewportStack.getSize()) {
+	if (_viewportSP >= _viewportStack.getSize()) {
 		_viewportStack.add(viewport);
 	} else {
 		_viewportStack[_viewportSP] = viewport;
@@ -4178,7 +4178,7 @@ bool BaseGame::popViewport() {
 		_gameRef->LOG(0, "Fatal: Viewport stack underflow!");
 	}
 
-	if (_viewportSP >= 0 && _viewportSP < (int32)_viewportStack.getSize()) {
+	if (_viewportSP >= 0 && _viewportSP < _viewportStack.getSize()) {
 		_renderer->setViewport(_viewportStack[_viewportSP]->getRect());
 	} else _renderer->setViewport(_renderer->_drawOffsetX,
 		                              _renderer->_drawOffsetY,
@@ -4307,7 +4307,7 @@ void BaseGame::DEBUG_DumpClassRegistry() {
 
 //////////////////////////////////////////////////////////////////////////
 bool BaseGame::invalidateDeviceObjects() {
-	for (uint32 i = 0; i < _regObjects.getSize(); i++) {
+	for (int32 i = 0; i < _regObjects.getSize(); i++) {
 		_regObjects[i]->invalidateDeviceObjects();
 	}
 	return STATUS_OK;
@@ -4316,7 +4316,7 @@ bool BaseGame::invalidateDeviceObjects() {
 
 //////////////////////////////////////////////////////////////////////////
 bool BaseGame::restoreDeviceObjects() {
-	for (uint32 i = 0; i < _regObjects.getSize(); i++) {
+	for (int32 i = 0; i < _regObjects.getSize(); i++) {
 		_regObjects[i]->restoreDeviceObjects();
 	}
 	return STATUS_OK;
diff --git a/engines/wintermute/base/base_region.cpp b/engines/wintermute/base/base_region.cpp
index a29a36ae96f..19f2d6e143a 100644
--- a/engines/wintermute/base/base_region.cpp
+++ b/engines/wintermute/base/base_region.cpp
@@ -59,7 +59,7 @@ BaseRegion::~BaseRegion() {
 
 //////////////////////////////////////////////////////////////////////////
 void BaseRegion::cleanup() {
-	for (uint32 i = 0; i < _points.getSize(); i++) {
+	for (int32 i = 0; i < _points.getSize(); i++) {
 		delete _points[i];
 	}
 	_points.removeAll();
@@ -159,7 +159,7 @@ bool BaseRegion::loadBuffer(char *buffer, bool complete) {
 		buffer = params;
 	}
 
-	for (uint32 i = 0; i < _points.getSize(); i++) {
+	for (int32 i = 0; i < _points.getSize(); i++) {
 		delete _points[i];
 	}
 	_points.removeAll();
@@ -248,7 +248,7 @@ bool BaseRegion::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisSta
 		int x = stack->pop()->getInt();
 		int y = stack->pop()->getInt();
 
-		if (index >= 0 && index < (int32)_points.getSize()) {
+		if (index >= 0 && index < _points.getSize()) {
 			_points.insertAt(index, new BasePoint(x, y));
 			createRegion();
 
@@ -269,7 +269,7 @@ bool BaseRegion::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisSta
 		int x = stack->pop()->getInt();
 		int y = stack->pop()->getInt();
 
-		if (index >= 0 && index < (int32)_points.getSize()) {
+		if (index >= 0 && index < _points.getSize()) {
 			_points[index]->x = x;
 			_points[index]->y = y;
 			createRegion();
@@ -289,7 +289,7 @@ bool BaseRegion::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisSta
 		stack->correctParams(1);
 		int index = stack->pop()->getInt();
 
-		if (index >= 0 && index < (int32)_points.getSize()) {
+		if (index >= 0 && index < _points.getSize()) {
 			delete _points[index];
 			_points[index] = nullptr;
 
@@ -311,7 +311,7 @@ bool BaseRegion::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisSta
 		stack->correctParams(1);
 		int index = stack->pop()->getInt();
 
-		if (index >= 0 && index < (int32)_points.getSize()) {
+		if (index >= 0 && index < _points.getSize()) {
 			ScValue *val = stack->getPushValue();
 			if (val) {
 				val->setProperty("X", _points[index]->x);
@@ -409,11 +409,11 @@ bool BaseRegion::saveAsText(BaseDynamicBuffer *buffer, int indent, const char *n
 	buffer->putTextIndent(indent + 2, "ACTIVE=%s\n", _active ? "TRUE" : "FALSE");
 	buffer->putTextIndent(indent + 2, "EDITOR_SELECTED_POINT=%d\n", _editorSelectedPoint);
 
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		buffer->putTextIndent(indent + 2, "SCRIPT=\"%s\"\n", _scripts[i]->_filename);
 	}
 
-	for (uint32 i = 0; i < _points.getSize(); i++) {
+	for (int32 i = 0; i < _points.getSize(); i++) {
 		buffer->putTextIndent(indent + 2, "POINT {%d,%d}\n", _points[i]->x, _points[i]->y);
 	}
 
@@ -463,7 +463,7 @@ bool BaseRegion::ptInPolygon(int32 x, int32 y) {
 	p1.x = (double)_points[0]->x;
 	p1.y = (double)_points[0]->y;
 
-	for (uint32 i = 1; i <= _points.getSize(); i++) {
+	for (int32 i = 1; i <= _points.getSize(); i++) {
 		p2.x = (double)_points[i % _points.getSize()]->x;
 		p2.y = (double)_points[i % _points.getSize()]->y;
 
@@ -497,7 +497,7 @@ bool BaseRegion::getBoundingRect(Rect32 *rect) {
 	} else {
 		int32 minX = INT_MAX_VALUE, minY = INT_MAX_VALUE, maxX = INT_MIN_VALUE, maxY = INT_MIN_VALUE;
 
-		for (uint32 i = 0; i < _points.getSize(); i++) {
+		for (int32 i = 0; i < _points.getSize(); i++) {
 			minX = MIN(minX, _points[i]->x);
 			minY = MIN(minY, _points[i]->y);
 
@@ -518,7 +518,7 @@ bool BaseRegion::mimic(BaseRegion *region, float scale, int x, int y) {
 
 	cleanup();
 
-	for (uint32 i = 0; i < region->_points.getSize(); i++) {
+	for (int32 i = 0; i < region->_points.getSize(); i++) {
 		int xVal, yVal;
 
 		xVal = (int)((float)region->_points[i]->x * scale / 100.0f);
diff --git a/engines/wintermute/base/base_script_holder.cpp b/engines/wintermute/base/base_script_holder.cpp
index d8e5d41e25f..1790e5bd26c 100644
--- a/engines/wintermute/base/base_script_holder.cpp
+++ b/engines/wintermute/base/base_script_holder.cpp
@@ -58,7 +58,7 @@ bool BaseScriptHolder::cleanup() {
 	delete[] _filename;
 	_filename = nullptr;
 
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		_scripts[i]->finish(true);
 		_scripts[i]->_owner = nullptr;
 	}
@@ -87,7 +87,7 @@ bool BaseScriptHolder::applyEvent(const char *eventName, bool unbreakable) {
 	int numHandlers = 0;
 
 	bool ret = STATUS_FAILED;
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		if (!_scripts[i]->_thread) {
 			ScScript *handler = _scripts[i]->invokeEventHandler(eventName, unbreakable);
 			if (handler) {
@@ -183,7 +183,7 @@ bool BaseScriptHolder::scCallMethod(ScScript *script, ScStack *stack, ScStack *t
 		const char *filename = stack->pop()->getString();
 		bool killThreads = stack->pop()->getBool(false);
 		bool ret = false;
-		for (uint32 i = 0; i < _scripts.getSize(); i++) {
+		for (int32 i = 0; i < _scripts.getSize(); i++) {
 			if (scumm_stricmp(_scripts[i]->_filename, filename) == 0) {
 				_scripts[i]->finish(killThreads);
 				ret = true;
@@ -202,7 +202,7 @@ bool BaseScriptHolder::scCallMethod(ScScript *script, ScStack *stack, ScStack *t
 		stack->correctParams(1);
 		const char *filename = stack->pop()->getString();
 		bool ret = false;
-		for (uint32 i = 0; i < _scripts.getSize(); i++) {
+		for (int32 i = 0; i < _scripts.getSize(); i++) {
 			if (scumm_stricmp(_scripts[i]->_filename, filename) == 0 && _scripts[i]->_state != SCRIPT_FINISHED && _scripts[i]->_state != SCRIPT_ERROR) {
 				ret = true;
 				break;
@@ -297,7 +297,7 @@ bool BaseScriptHolder::persist(BasePersistenceManager *persistMgr) {
 
 //////////////////////////////////////////////////////////////////////////
 bool BaseScriptHolder::addScript(const char *filename) {
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		if (scumm_stricmp(_scripts[i]->_filename, filename) == 0) {
 			if (_scripts[i]->_state != SCRIPT_FINISHED) {
 				BaseEngine::LOG(0, "BaseScriptHolder::AddScript - trying to add script '%s' multiple times (obj: '%s')", filename, getName());
@@ -336,7 +336,7 @@ bool BaseScriptHolder::addScript(const char *filename) {
 
 //////////////////////////////////////////////////////////////////////////
 bool BaseScriptHolder::removeScript(ScScript *script) {
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		if (_scripts[i] == script) {
 			_scripts.removeAt(i);
 			break;
@@ -347,7 +347,7 @@ bool BaseScriptHolder::removeScript(ScScript *script) {
 
 //////////////////////////////////////////////////////////////////////////
 bool BaseScriptHolder::canHandleEvent(const char *EventName) const {
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		if (!_scripts[i]->_thread && _scripts[i]->canHandleEvent(EventName)) {
 			return true;
 		}
@@ -358,7 +358,7 @@ bool BaseScriptHolder::canHandleEvent(const char *EventName) const {
 
 //////////////////////////////////////////////////////////////////////////
 bool BaseScriptHolder::canHandleMethod(const char *MethodName) const {
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		if (!_scripts[i]->_thread && _scripts[i]->canHandleMethod(MethodName)) {
 			return true;
 		}
@@ -445,7 +445,7 @@ bool BaseScriptHolder::parseProperty(char *buffer, bool complete) {
 //////////////////////////////////////////////////////////////////////////
 void BaseScriptHolder::makeFreezable(bool freezable) {
 	_freezable = freezable;
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		_scripts[i]->_freezable = freezable;
 	}
 
@@ -454,7 +454,7 @@ void BaseScriptHolder::makeFreezable(bool freezable) {
 
 //////////////////////////////////////////////////////////////////////////
 ScScript *BaseScriptHolder::invokeMethodThread(const char *methodName) {
-	for (int i = _scripts.getSize() - 1; i >= 0; i--) {
+	for (int32 i = _scripts.getSize() - 1; i >= 0; i--) {
 		if (_scripts[i]->canHandleMethod(methodName)) {
 #if EXTENDED_DEBUGGER_ENABLED
 			DebuggableScEngine* debuggableEngine;
diff --git a/engines/wintermute/base/base_sprite.cpp b/engines/wintermute/base/base_sprite.cpp
index 5c3e1fa3a95..bdc060b20cc 100644
--- a/engines/wintermute/base/base_sprite.cpp
+++ b/engines/wintermute/base/base_sprite.cpp
@@ -89,7 +89,7 @@ void BaseSprite::setDefaults() {
 void BaseSprite::cleanup() {
 	BaseScriptHolder::cleanup();
 
-	for (uint32 i = 0; i < _frames.getSize(); i++) {
+	for (int32 i = 0; i < _frames.getSize(); i++) {
 		delete _frames[i];
 	}
 	_frames.removeAll();
@@ -104,7 +104,7 @@ void BaseSprite::cleanup() {
 //////////////////////////////////////////////////////////////////////////
 bool BaseSprite::draw(int x, int y, BaseObject *registerOwner, float zoomX, float zoomY, uint32 alpha) {
 	getCurrentFrame(zoomX, zoomY);
-	if (_currentFrame < 0 || _currentFrame >= (int32)_frames.getSize()) {
+	if (_currentFrame < 0 || _currentFrame >= _frames.getSize()) {
 		return STATUS_OK;
 	}
 
@@ -381,10 +381,10 @@ bool BaseSprite::getCurrentFrame(float zoomX, float zoomY) {
 
 	// get current frame
 	if (!_paused && !_finished && timer >= _lastFrameTime + _frames[_currentFrame]->_delay && _lastFrameTime != 0) {
-		if (_currentFrame < (int32)_frames.getSize() - 1) {
+		if (_currentFrame < _frames.getSize() - 1) {
 			_currentFrame++;
 			if (_continuous) {
-				_canBreak = (_currentFrame == (int32)_frames.getSize() - 1);
+				_canBreak = (_currentFrame == _frames.getSize() - 1);
 			}
 		} else {
 			if (_looping) {
@@ -399,13 +399,13 @@ bool BaseSprite::getCurrentFrame(float zoomX, float zoomY) {
 		_lastFrameTime = timer;
 	}
 
-	_changed = (lastFrame != _currentFrame || (_looping && (int32)_frames.getSize() == 1));
+	_changed = (lastFrame != _currentFrame || (_looping && _frames.getSize() == 1));
 
 	if (_lastFrameTime == 0) {
 		_lastFrameTime = timer;
 		_changed = true;
 		if (_continuous) {
-			_canBreak = (_currentFrame == (int32)_frames.getSize() - 1);
+			_canBreak = (_currentFrame == _frames.getSize() - 1);
 		}
 	}
 
@@ -425,7 +425,7 @@ bool BaseSprite::getCurrentFrame(float zoomX, float zoomY) {
 
 //////////////////////////////////////////////////////////////////////
 bool BaseSprite::display(int x, int y, BaseObject *registerVal, float zoomX, float zoomY, uint32 alpha, float rotate, Graphics::TSpriteBlendMode blendMode) {
-	if (_currentFrame < 0 || _currentFrame >= (int32)_frames.getSize()) {
+	if (_currentFrame < 0 || _currentFrame >= _frames.getSize()) {
 		return STATUS_OK;
 	}
 
@@ -446,7 +446,7 @@ bool BaseSprite::display(int x, int y, BaseObject *registerVal, float zoomX, flo
 //////////////////////////////////////////////////////////////////////////
 BaseSurface *BaseSprite::getSurface() {
 	// only used for animated textures for 3D models
-	if (_currentFrame < 0 || _currentFrame >= (int32)_frames.getSize()) {
+	if (_currentFrame < 0 || _currentFrame >= _frames.getSize()) {
 		return nullptr;
 	}
 	BaseFrame *frame = _frames[_currentFrame];
@@ -469,7 +469,7 @@ bool BaseSprite::getBoundingRect(Rect32 *rect, int x, int y, float scaleX, float
 	}
 
 	rect->setEmpty();
-	for (uint32 i = 0; i < _frames.getSize(); i++) {
+	for (int32 i = 0; i < _frames.getSize(); i++) {
 		Rect32 frame;
 		Rect32 temp;
 		BasePlatform::copyRect(&temp, rect);
@@ -508,11 +508,11 @@ bool BaseSprite::saveAsText(BaseDynamicBuffer *buffer, int indent) {
 	BaseScriptHolder::saveAsText(buffer, indent + 2);
 
 	// scripts
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		buffer->putTextIndent(indent + 2, "SCRIPT=\"%s\"\n", _scripts[i]->_filename);
 	}
 
-	for (uint32 i = 0; i < _frames.getSize(); i++) {
+	for (int32 i = 0; i < _frames.getSize(); i++) {
 		_frames[i]->saveAsText(buffer, indent + 2);
 	}
 
@@ -565,7 +565,7 @@ bool BaseSprite::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisSta
 	if (strcmp(name, "GetFrame") == 0) {
 		stack->correctParams(1);
 		int index = stack->pop()->getInt(-1);
-		if (index < 0 || index >= (int32)_frames.getSize()) {
+		if (index < 0 || index >= _frames.getSize()) {
 			script->runtimeError("Sprite.GetFrame: Frame index %d is out of range.", index);
 			stack->pushNULL();
 		} else {
@@ -582,14 +582,14 @@ bool BaseSprite::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisSta
 		ScValue *val = stack->pop();
 		if (val->isInt()) {
 			int index = val->getInt(-1);
-			if (index < 0 || index >= (int32)_frames.getSize()) {
+			if (index < 0 || index >= _frames.getSize()) {
 				script->runtimeError("Sprite.DeleteFrame: Frame index %d is out of range.", index);
 			}
 		} else {
 			BaseFrame *frame = (BaseFrame *)val->getNative();
-			for (uint32 i = 0; i < _frames.getSize(); i++) {
+			for (int32 i = 0; i < _frames.getSize(); i++) {
 				if (_frames[i] == frame) {
-					if (i == (uint32)_currentFrame) {
+					if (i == _currentFrame) {
 						_lastFrameTime = 0;
 					}
 					delete _frames[i];
@@ -665,7 +665,7 @@ bool BaseSprite::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisSta
 			}
 		}
 
-		if (index >= (int32)_frames.getSize()) {
+		if (index >= _frames.getSize()) {
 			_frames.add(frame);
 		} else {
 			_frames.insertAt(index, frame);
@@ -782,7 +782,7 @@ bool BaseSprite::scSetProperty(const char *name, ScValue *value) {
 	//////////////////////////////////////////////////////////////////////////
 	if (strcmp(name, "CurrentFrame") == 0) {
 		_currentFrame = value->getInt(0);
-		if (_currentFrame >= (int32)_frames.getSize() || _currentFrame < 0) {
+		if (_currentFrame >= _frames.getSize() || _currentFrame < 0) {
 			_currentFrame = -1;
 		}
 		_lastFrameTime = 0;
@@ -817,7 +817,7 @@ const char *BaseSprite::scToString() {
 
 //////////////////////////////////////////////////////////////////////////
 bool BaseSprite::killAllSounds() {
-	for (uint32 i = 0; i < _frames.getSize(); i++) {
+	for (int32 i = 0; i < _frames.getSize(); i++) {
 		_frames[i]->stopSound();
 	}
 	return STATUS_OK;
diff --git a/engines/wintermute/base/base_surface_storage.cpp b/engines/wintermute/base/base_surface_storage.cpp
index 0057a4e8e8e..9ed354c6063 100644
--- a/engines/wintermute/base/base_surface_storage.cpp
+++ b/engines/wintermute/base/base_surface_storage.cpp
@@ -52,7 +52,7 @@ BaseSurfaceStorage::~BaseSurfaceStorage() {
 
 //////////////////////////////////////////////////////////////////////////
 bool BaseSurfaceStorage::cleanup(bool warn) {
-	for (uint32 i = 0; i < _surfaces.getSize(); i++) {
+	for (int32 i = 0; i < _surfaces.getSize(); i++) {
 		if (warn) {
 			BaseEngine::LOG(0, "BaseSurfaceStorage warning: purging surface '%s', usage:%d", _surfaces[i]->getFileName(), _surfaces[i]->_referenceCount);
 		}
@@ -69,7 +69,7 @@ bool BaseSurfaceStorage::initLoop() {
 	if (_gameRef->_smartCache && _gameRef->getLiveTimer()->getTime() - _lastCleanupTime >= _gameRef->_surfaceGCCycleTime) {
 		_lastCleanupTime = _gameRef->getLiveTimer()->getTime();
 		sortSurfaces();
-		for (uint32 i = 0; i < _surfaces.getSize(); i++) {
+		for (int32 i = 0; i < _surfaces.getSize(); i++) {
 			if (_surfaces[i]->_lifeTime <= 0) {
 				break;
 			}
@@ -86,7 +86,7 @@ bool BaseSurfaceStorage::initLoop() {
 
 //////////////////////////////////////////////////////////////////////
 bool BaseSurfaceStorage::removeSurface(BaseSurface *surface) {
-	for (uint32 i = 0; i < _surfaces.getSize(); i++) {
+	for (int32 i = 0; i < _surfaces.getSize(); i++) {
 		if (_surfaces[i] == surface) {
 			_surfaces[i]->_referenceCount--;
 			if (_surfaces[i]->_referenceCount <= 0) {
@@ -102,7 +102,7 @@ bool BaseSurfaceStorage::removeSurface(BaseSurface *surface) {
 
 //////////////////////////////////////////////////////////////////////
 BaseSurface *BaseSurfaceStorage::addSurface(const Common::String &filename, bool defaultCK, byte ckRed, byte ckGreen, byte ckBlue, int lifeTime, bool keepLoaded) {
-	for (uint32 i = 0; i < _surfaces.getSize(); i++) {
+	for (int32 i = 0; i < _surfaces.getSize(); i++) {
 		if (scumm_stricmp(_surfaces[i]->getFileName(), filename.c_str()) == 0) {
 			_surfaces[i]->_referenceCount++;
 			return _surfaces[i];
@@ -141,7 +141,7 @@ BaseSurface *BaseSurfaceStorage::addSurface(const Common::String &filename, bool
 //////////////////////////////////////////////////////////////////////
 bool BaseSurfaceStorage::restoreAll() {
 	bool ret;
-	for (uint32 i = 0; i < _surfaces.getSize(); i++) {
+	for (int32 i = 0; i < _surfaces.getSize(); i++) {
 		ret = _surfaces[i]->restore();
 		if (ret != STATUS_OK) {
 			BaseEngine::LOG(0, "BaseSurfaceStorage::RestoreAll failed");
diff --git a/engines/wintermute/base/font/base_font_bitmap.cpp b/engines/wintermute/base/font/base_font_bitmap.cpp
index 498cfbbdf47..e2fab8b621b 100644
--- a/engines/wintermute/base/font/base_font_bitmap.cpp
+++ b/engines/wintermute/base/font/base_font_bitmap.cpp
@@ -573,8 +573,8 @@ bool BaseFontBitmap::getWidths() {
 	BaseSurface *surf = nullptr;
 
 	if (_sprite) {
-		if (_widthsFrame >= 0 && _widthsFrame < (int32)_sprite->_frames.getSize()) {
-			if (_sprite->_frames[_widthsFrame] && (int32)_sprite->_frames[_widthsFrame]->_subframes.getSize() > 0) {
+		if (_widthsFrame >= 0 && _widthsFrame < _sprite->_frames.getSize()) {
+			if (_sprite->_frames[_widthsFrame] && _sprite->_frames[_widthsFrame]->_subframes.getSize() > 0) {
 				surf = _sprite->_frames[_widthsFrame]->_subframes[0]->_surface;
 			}
 		}
diff --git a/engines/wintermute/base/font/base_font_storage.cpp b/engines/wintermute/base/font/base_font_storage.cpp
index 310d57c0f91..daf3272d8a9 100644
--- a/engines/wintermute/base/font/base_font_storage.cpp
+++ b/engines/wintermute/base/font/base_font_storage.cpp
@@ -49,7 +49,7 @@ BaseFontStorage::~BaseFontStorage() {
 
 //////////////////////////////////////////////////////////////////////////
 bool BaseFontStorage::cleanup(bool warn) {
-	for (uint32 i = 0; i < _fonts.getSize(); i++) {
+	for (int32 i = 0; i < _fonts.getSize(); i++) {
 		if (warn) {
 			_gameRef->LOG(0, "Removing orphan font '%s'", _fonts[i]->getFilename());
 		}
@@ -62,7 +62,7 @@ bool BaseFontStorage::cleanup(bool warn) {
 
 //////////////////////////////////////////////////////////////////////////
 bool BaseFontStorage::initLoop() {
-	for (uint32 i = 0; i < _fonts.getSize(); i++) {
+	for (int32 i = 0; i < _fonts.getSize(); i++) {
 		_fonts[i]->initLoop();
 	}
 	return STATUS_OK;
@@ -74,7 +74,7 @@ BaseFont *BaseFontStorage::addFont(const Common::String &filename) {
 		return nullptr;
 	}
 
-	for (uint32 i = 0; i < _fonts.getSize(); i++) {
+	for (int32 i = 0; i < _fonts.getSize(); i++) {
 		if (scumm_stricmp(_fonts[i]->getFilename(), filename.c_str()) == 0) {
 			_fonts[i]->_refCount++;
 			return _fonts[i];
@@ -110,7 +110,7 @@ bool BaseFontStorage::removeFont(BaseFont *font) {
 		return STATUS_FAILED;
 	}
 
-	for (uint32 i = 0; i < _fonts.getSize(); i++) {
+	for (int32 i = 0; i < _fonts.getSize(); i++) {
 		if (_fonts[i] == font) {
 			_fonts[i]->_refCount--;
 			if (_fonts[i]->_refCount <= 0) {
diff --git a/engines/wintermute/base/font/base_font_truetype.cpp b/engines/wintermute/base/font/base_font_truetype.cpp
index c7165fb7352..be8075ba8dd 100644
--- a/engines/wintermute/base/font/base_font_truetype.cpp
+++ b/engines/wintermute/base/font/base_font_truetype.cpp
@@ -67,7 +67,7 @@ BaseFontTT::BaseFontTT(BaseGame *inGame) : BaseFont(inGame) {
 BaseFontTT::~BaseFontTT() {
 	clearCache();
 
-	for (uint32 i = 0; i < _layers.getSize(); i++) {
+	for (int32 i = 0; i < _layers.getSize(); i++) {
 		delete _layers[i];
 	}
 	_layers.removeAll();
@@ -211,7 +211,7 @@ void BaseFontTT::drawText(const byte *text, int x, int y, int width, TTextAlign
 	if (surface) {
 		Rect32 rc;
 		rc.setRect(0, 0, surface->getWidth(), surface->getHeight());
-		for (uint32 i = 0; i < _layers.getSize(); i++) {
+		for (int32 i = 0; i < _layers.getSize(); i++) {
 			uint32 color = _layers[i]->_color;
 			uint32 origForceAlpha = renderer->_forceAlphaColor;
 			if (renderer->_forceAlphaColor != 0) {
diff --git a/engines/wintermute/base/gfx/3deffect_params.cpp b/engines/wintermute/base/gfx/3deffect_params.cpp
index a5c3fc69414..eadeb51419f 100644
--- a/engines/wintermute/base/gfx/3deffect_params.cpp
+++ b/engines/wintermute/base/gfx/3deffect_params.cpp
@@ -121,7 +121,7 @@ Effect3DParams::~Effect3DParams() {
 
 //////////////////////////////////////////////////////////////////////////
 void Effect3DParams::clear() {
-	for (size_t i = 0; i < _params.getSize(); i++) {
+	for (int32 i = 0; i < _params.getSize(); i++) {
 		delete _params[i];
 		_params[i] = nullptr;
 	}
@@ -132,10 +132,10 @@ void Effect3DParams::clear() {
 //////////////////////////////////////////////////////////////////////////
 bool Effect3DParams::persist(BasePersistenceManager *persistMgr) {
 	if (persistMgr->getIsSaving()) {
-		uint32 numItems = _params.getSize();
-		persistMgr->transferUint32(TMEMBER(numItems));
+		int32 numItems = _params.getSize();
+		persistMgr->transferSint32(TMEMBER(numItems));
 
-		for (uint32 i = 0; i < numItems; i++) {
+		for (int32 i = 0; i < numItems; i++) {
 			_params[i]->persist(persistMgr);
 		}
 	} else {
@@ -182,7 +182,7 @@ void Effect3DParams::setParam(const char *paramName, DXVector4 val) {
 Effect3DParams::Effect3DParam *Effect3DParams::getParamByName(const char *paramName) {
 	Effect3DParam *param = nullptr;
 
-	for (uint32 i = 0; i < _params.getSize(); i++) {
+	for (int32 i = 0; i < _params.getSize(); i++) {
 		if (_params[i]->getParamName() && strcmp(paramName, _params[i]->getParamName()) == 0) {
 			param = _params[i];
 			break;
diff --git a/engines/wintermute/base/gfx/3dloader_3ds.cpp b/engines/wintermute/base/gfx/3dloader_3ds.cpp
index 8c75382454e..fe72215c75c 100644
--- a/engines/wintermute/base/gfx/3dloader_3ds.cpp
+++ b/engines/wintermute/base/gfx/3dloader_3ds.cpp
@@ -60,7 +60,7 @@ Loader3DS::Loader3DS(BaseGame *inGame) : BaseNamedObject(inGame) {
 
 //////////////////////////////////////////////////////////////////////////
 Loader3DS::~Loader3DS() {
-	for (size_t i = 0; i < _objects.getSize(); i++)
+	for (int32 i = 0; i < _objects.getSize(); i++)
 		delete _objects[i];
 	_objects.removeAll();
 }
@@ -313,7 +313,7 @@ bool Loader3DS::parseFile(const Common::String &filename) {
 
 						// inject this roll value to the camera
 						if (key == 0) {
-							for (uint32 index = 0; index < _objects.getSize(); index++) {
+							for (int32 index = 0; index < _objects.getSize(); index++) {
 								if (_objects[index]->_type == OBJ_3DS_CAMERA && _objects[index]->_name.compareToIgnoreCase(keyframerObject) == 0) {
 									_objects[index]->_cameraBank = cameraRoll;
 									break;
@@ -341,10 +341,10 @@ bool Loader3DS::parseFile(const Common::String &filename) {
 
 //////////////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////////////
-uint Loader3DS::getNumMeshes() {
-	int ret = 0;
+int32 Loader3DS::getNumMeshes() {
+	int32 ret = 0;
 
-	for (uint32 i = 0; i < _objects.getSize(); i++)
+	for (int32 i = 0; i < _objects.getSize(); i++)
 		if (_objects[i]->_type == OBJ_3DS_MESH)
 			ret++;
 
@@ -354,9 +354,9 @@ uint Loader3DS::getNumMeshes() {
 
 //////////////////////////////////////////////////////////////////////////
 Common::String Loader3DS::getMeshName(int index) {
-	int pos = -1;
+	int32 pos = -1;
 
-	for (uint32 i = 0; i < _objects.getSize(); i++) {
+	for (int32 i = 0; i < _objects.getSize(); i++) {
 		if (_objects[i]->_type == OBJ_3DS_MESH)
 			pos++;
 		if (pos == index)
@@ -372,7 +372,7 @@ bool Loader3DS::loadMesh(int index, Mesh3DS *mesh) {
 		return false;
 
 	int pos = -1;
-	for (uint32 i = 0; i < _objects.getSize(); i++) {
+	for (int32 i = 0; i < _objects.getSize(); i++) {
 		if (_objects[i]->_type == OBJ_3DS_MESH)
 			pos++;
 		if (pos == index){
@@ -409,10 +409,10 @@ bool Loader3DS::loadMesh(int index, Mesh3DS *mesh) {
 
 //////////////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////////////
-uint Loader3DS::getNumLights() {
+int32 Loader3DS::getNumLights() {
 	int ret = 0;
 
-	for (uint32 i = 0; i < _objects.getSize(); i++)
+	for (int32 i = 0; i < _objects.getSize(); i++)
 		if (_objects[i]->_type == OBJ_3DS_LIGHT)
 			ret++;
 
@@ -424,7 +424,7 @@ uint Loader3DS::getNumLights() {
 Common::String Loader3DS::getLightName(int index) {
 	int pos = -1;
 
-	for (uint32 i = 0; i < _objects.getSize(); i++) {
+	for (int32 i = 0; i < _objects.getSize(); i++) {
 		if (_objects[i]->_type == OBJ_3DS_LIGHT)
 			pos++;
 		if (pos == index)
@@ -440,7 +440,7 @@ bool Loader3DS::loadLight(int index, Light3D *light) {
 		return false;
 
 	int pos = -1;
-	for (uint32 i = 0; i < _objects.getSize(); i++) {
+	for (int32 i = 0; i < _objects.getSize(); i++) {
 		if (_objects[i]->_type == OBJ_3DS_LIGHT) {
 			pos++;
 			if (pos == index) {
@@ -461,10 +461,10 @@ bool Loader3DS::loadLight(int index, Light3D *light) {
 
 //////////////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////////////
-uint Loader3DS::getNumCameras() {
-	int ret = 0;
+int32 Loader3DS::getNumCameras() {
+	int32 ret = 0;
 
-	for (uint32 i = 0; i < _objects.getSize(); i++)
+	for (int32 i = 0; i < _objects.getSize(); i++)
 		if (_objects[i]->_type == OBJ_3DS_CAMERA)
 			ret++;
 
@@ -474,8 +474,8 @@ uint Loader3DS::getNumCameras() {
 
 //////////////////////////////////////////////////////////////////////////
 Common::String Loader3DS::getCameraName(int index) {
-	int pos = -1;
-	for (uint32 i = 0; i < _objects.getSize(); i++) {
+	int32 pos = -1;
+	for (int32 i = 0; i < _objects.getSize(); i++) {
 		if (_objects[i]->_type == OBJ_3DS_CAMERA)
 			pos++;
 		if (pos == index)
@@ -491,7 +491,7 @@ bool Loader3DS::loadCamera(int index, Camera3D *camera) {
 		false;
 
 	int pos = -1;
-	for (uint32 i = 0; i < _objects.getSize(); i++) {
+	for (int32 i = 0; i < _objects.getSize(); i++) {
 		if (_objects[i]->_type == OBJ_3DS_CAMERA)
 			pos++;
 		if (pos == index) {
diff --git a/engines/wintermute/base/gfx/3dloader_3ds.h b/engines/wintermute/base/gfx/3dloader_3ds.h
index fbdeee9fd06..3cb2d745f8e 100644
--- a/engines/wintermute/base/gfx/3dloader_3ds.h
+++ b/engines/wintermute/base/gfx/3dloader_3ds.h
@@ -74,11 +74,11 @@ public:
 	Common::String getLightName(int index);
 	Common::String getMeshName(int index);
 	bool loadCamera(int index, Camera3D *camera);
-	uint getNumCameras();
+	int32 getNumCameras();
 	bool loadLight(int index, Light3D *light);
-	uint getNumLights();
+	int32 getNumLights();
 	bool loadMesh(int index, Mesh3DS *mesh);
-	uint getNumMeshes();
+	int32 getNumMeshes();
 	bool parseFile(const Common::String &filename);
 	Common::String _filename;
 	Loader3DS(BaseGame *inGame);
diff --git a/engines/wintermute/base/gfx/base_renderer.cpp b/engines/wintermute/base/gfx/base_renderer.cpp
index 91e4150ebfa..cf436e2cec4 100644
--- a/engines/wintermute/base/gfx/base_renderer.cpp
+++ b/engines/wintermute/base/gfx/base_renderer.cpp
@@ -140,7 +140,7 @@ BaseObject *BaseRenderer::getObjectAt(int x, int y) {
 
 //////////////////////////////////////////////////////////////////////////
 void BaseRenderer::deleteRectList() {
-	for (uint32 i = 0; i < _rectList.getSize(); i++) {
+	for (int32 i = 0; i < _rectList.getSize(); i++) {
 		delete _rectList[i];
 	}
 	_rectList.removeAll();
diff --git a/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp b/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp
index d905f734d65..19be328dd6c 100644
--- a/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp
+++ b/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp
@@ -818,21 +818,21 @@ void BaseRenderOpenGL3D::renderSceneGeometry(const BaseArray<AdWalkplane *> &pla
 
 
 	// render walk planes
-	for (uint i = 0; i < planes.getSize(); i++) {
+	for (int32 i = 0; i < planes.getSize(); i++) {
 		if (planes[i]->_active) {
 			planes[i]->_mesh->render(true);
 		}
 	}
 
 	// render blocks
-	for (uint i = 0; i < blocks.getSize(); i++) {
+	for (int32 i = 0; i < blocks.getSize(); i++) {
 		if (blocks[i]->_active) {
 			blocks[i]->_mesh->render(true);
 		}
 	}
 
 	// render generic objects
-	for (uint i = 0; i < generics.getSize(); i++) {
+	for (int32 i = 0; i < generics.getSize(); i++) {
 		if (generics[i]->_active) {
 			generics[i]->_mesh->render(true);
 		}
@@ -853,8 +853,8 @@ void BaseRenderOpenGL3D::renderSceneGeometry(const BaseArray<AdWalkplane *> &pla
 
 		setup2D();
 
-		for (uint i = 0; i < geom->_waypointGroups.getSize(); i++) {
-			for (uint j = 0; j < geom->_waypointGroups[i]->_points.getSize(); j++) {
+		for (int32 i = 0; i < geom->_waypointGroups.getSize(); i++) {
+			for (int32 j = 0; j < geom->_waypointGroups[i]->_points.getSize(); j++) {
 				DXVec3Project(&vec2d, geom->_waypointGroups[i]->_points[j], &vport, &projMat, &viewMat, &worldMat);
 				geom->_wptMarker->display(vec2d._x + scene->getOffsetLeft() - _drawOffsetX, vec2d._y + scene->getOffsetTop() - _drawOffsetY);
 			}
@@ -889,21 +889,21 @@ void BaseRenderOpenGL3D::renderShadowGeometry(const BaseArray<AdWalkplane *> &pl
 	glFrontFace(GL_CW); // WME DX have CCW
 
 	// render blocks
-	for (uint i = 0; i < blocks.getSize(); i++) {
+	for (int32 i = 0; i < blocks.getSize(); i++) {
 		if (blocks[i]->_active && blocks[i]->_receiveShadows) {
 			blocks[i]->_mesh->render();
 		}
 	}
 
 	// render walk planes
-	for (uint i = 0; i < planes.getSize(); i++) {
+	for (int32 i = 0; i < planes.getSize(); i++) {
 		if (planes[i]->_active && planes[i]->_receiveShadows) {
 			planes[i]->_mesh->render();
 		}
 	}
 
 	// render generic objects
-	for (uint i = 0; i < generics.getSize(); i++) {
+	for (int32 i = 0; i < generics.getSize(); i++) {
 		if (generics[i]->_active && generics[i]->_receiveShadows) {
 			generics[i]->_mesh->render();
 		}
diff --git a/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp b/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp
index 28767b14403..a567dfad1fb 100644
--- a/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp
+++ b/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp
@@ -906,21 +906,21 @@ void BaseRenderOpenGL3DShader::renderSceneGeometry(const BaseArray<AdWalkplane *
 	glBindTexture(GL_TEXTURE_2D, 0);
 	glDisable(GL_TEXTURE_2D);
 
-	for (uint i = 0; i < planes.getSize(); i++) {
+	for (int32 i = 0; i < planes.getSize(); i++) {
 		if (planes[i]->_active) {
 			planes[i]->_mesh->render(true);
 		}
 	}
 
 	// render blocks
-	for (uint i = 0; i < blocks.getSize(); i++) {
+	for (int32 i = 0; i < blocks.getSize(); i++) {
 		if (blocks[i]->_active) {
 			blocks[i]->_mesh->render(true);
 		}
 	}
 
 	// render generic objects
-	for (uint i = 0; i < generics.getSize(); i++) {
+	for (int32 i = 0; i < generics.getSize(); i++) {
 		if (generics[i]->_active) {
 			generics[i]->_mesh->render(true);
 		}
@@ -941,8 +941,8 @@ void BaseRenderOpenGL3DShader::renderSceneGeometry(const BaseArray<AdWalkplane *
 
 		setup2D();
 
-		for (uint i = 0; i < geom->_waypointGroups.getSize(); i++) {
-			for (uint j = 0; j < geom->_waypointGroups[i]->_points.getSize(); j++) {
+		for (int32 i = 0; i < geom->_waypointGroups.getSize(); i++) {
+			for (int32 j = 0; j < geom->_waypointGroups[i]->_points.getSize(); j++) {
 				DXVec3Project(&vec2d, geom->_waypointGroups[i]->_points[j], &vport, &projMat, &viewMat, &worldMat);
 				geom->_wptMarker->display(vec2d._x + scene->getOffsetLeft() - _drawOffsetX, vec2d._y + scene->getOffsetTop() - _drawOffsetY);
 			}
@@ -974,21 +974,21 @@ void BaseRenderOpenGL3DShader::renderShadowGeometry(const BaseArray<AdWalkplane
 	glFrontFace(GL_CW); // WME DX have CCW
 
 	// render blocks
-	for (uint i = 0; i < blocks.getSize(); i++) {
+	for (int32 i = 0; i < blocks.getSize(); i++) {
 		if (blocks[i]->_active && blocks[i]->_receiveShadows) {
 			blocks[i]->_mesh->render();
 		}
 	}
 
 	// render walk planes
-	for (uint i = 0; i < planes.getSize(); i++) {
+	for (int32 i = 0; i < planes.getSize(); i++) {
 		if (planes[i]->_active && planes[i]->_receiveShadows) {
 			planes[i]->_mesh->render();
 		}
 	}
 
 	// render generic objects
-	for (uint i = 0; i < generics.getSize(); i++) {
+	for (int32 i = 0; i < generics.getSize(); i++) {
 		if (generics[i]->_active && generics[i]->_receiveShadows) {
 			generics[i]->_mesh->render();
 		}
diff --git a/engines/wintermute/base/gfx/xanimation.cpp b/engines/wintermute/base/gfx/xanimation.cpp
index d541ae8ff87..15dc8f7d246 100644
--- a/engines/wintermute/base/gfx/xanimation.cpp
+++ b/engines/wintermute/base/gfx/xanimation.cpp
@@ -44,17 +44,17 @@ Animation::Animation(BaseGame *inGame) : BaseClass(inGame) {
 
 //////////////////////////////////////////////////////////////////////////
 Animation::~Animation() {
-	for (uint32 i = 0; i < _posKeys.getSize(); i++) {
+	for (int32 i = 0; i < _posKeys.getSize(); i++) {
 		delete _posKeys[i];
 	}
 	_posKeys.removeAll();
 
-	for (uint32 i = 0; i < _rotKeys.getSize(); i++) {
+	for (int32 i = 0; i < _rotKeys.getSize(); i++) {
 		delete _rotKeys[i];
 	}
 	_rotKeys.removeAll();
 
-	for (uint32 i = 0; i < _scaleKeys.getSize(); i++) {
+	for (int32 i = 0; i < _scaleKeys.getSize(); i++) {
 		delete _scaleKeys[i];
 	}
 	_scaleKeys.removeAll();
@@ -268,7 +268,7 @@ bool Animation::update(int slot, uint32 localTime, float animLerpValue) {
 		keyIndex1 = keyIndex2 = 0;
 
 		// get the two keys between which the time is currently in
-		for (uint32 key = 0; key < _scaleKeys.getSize(); key++) {
+		for (int32 key = 0; key < _scaleKeys.getSize(); key++) {
 			if (_scaleKeys[key]->_time > localTime) {
 				keyIndex2 = key;
 
@@ -303,7 +303,7 @@ bool Animation::update(int slot, uint32 localTime, float animLerpValue) {
 		keyIndex1 = keyIndex2 = 0;
 
 		// get the two keys surrounding the current time value
-		for (uint32 key = 0; key < _rotKeys.getSize(); key++) {
+		for (int32 key = 0; key < _rotKeys.getSize(); key++) {
 			if (_rotKeys[key]->_time > localTime) {
 				keyIndex2 = key;
 				if (key > 0) {
@@ -348,7 +348,7 @@ bool Animation::update(int slot, uint32 localTime, float animLerpValue) {
 		keyIndex1 = keyIndex2 = 0;
 
 		// get the two keys surrounding the time value
-		for (uint32 key = 0; key < _posKeys.getSize(); key++) {
+		for (int32 key = 0; key < _posKeys.getSize(); key++) {
 			if (_posKeys[key]->_time > localTime) {
 				keyIndex2 = key;
 				if (key > 0) {
@@ -389,7 +389,7 @@ int Animation::getFrameTime() {
 
 	// get the shortest frame time
 	prevTime = 0;
-	for (uint32 i = 0; i < _rotKeys.getSize(); i++) {
+	for (int32 i = 0; i < _rotKeys.getSize(); i++) {
 		if (frameTime == 0 || _rotKeys[i]->_time - prevTime < frameTime)
 			frameTime = _rotKeys[i]->_time - prevTime;
 
@@ -397,7 +397,7 @@ int Animation::getFrameTime() {
 	}
 
 	prevTime = 0;
-	for (uint32 i = 0; i < _posKeys.getSize(); i++) {
+	for (int32 i = 0; i < _posKeys.getSize(); i++) {
 		if (frameTime == 0 || _posKeys[i]->_time - prevTime < frameTime)
 			frameTime = _posKeys[i]->_time - prevTime;
 
@@ -405,7 +405,7 @@ int Animation::getFrameTime() {
 	}
 
 	prevTime = 0;
-	for (uint32 i = 0; i < _scaleKeys.getSize(); i++) {
+	for (int32 i = 0; i < _scaleKeys.getSize(); i++) {
 		if (frameTime == 0 || _scaleKeys[i]->_time - prevTime < frameTime)
 			frameTime = _scaleKeys[i]->_time - prevTime;
 
diff --git a/engines/wintermute/base/gfx/xanimation_set.cpp b/engines/wintermute/base/gfx/xanimation_set.cpp
index 286384e4304..892ed30a6e0 100644
--- a/engines/wintermute/base/gfx/xanimation_set.cpp
+++ b/engines/wintermute/base/gfx/xanimation_set.cpp
@@ -43,13 +43,13 @@ AnimationSet::AnimationSet(BaseGame *inGame, XModel *model) : BaseNamedObject(in
 //////////////////////////////////////////////////////////////////////////
 AnimationSet::~AnimationSet() {
 	// remove child animations
-	for (uint32 i = 0; i < _animations.getSize(); i++) {
+	for (int32 i = 0; i < _animations.getSize(); i++) {
 		delete _animations[i];
 	}
 	_animations.removeAll();
 
 	// remove events
-	for (uint32 i = 0; i < _events.getSize(); i++) {
+	for (int32 i = 0; i < _events.getSize(); i++) {
 		delete _events[i];
 	}
 	_events.removeAll();
@@ -57,7 +57,7 @@ AnimationSet::~AnimationSet() {
 
 //////////////////////////////////////////////////////////////////////////
 bool AnimationSet::findBones(FrameNode *rootFrame) {
-	for (uint32 i = 0; i < _animations.getSize(); i++) {
+	for (int32 i = 0; i < _animations.getSize(); i++) {
 		_animations[i]->findBone(rootFrame);
 	}
 	return true;
@@ -102,7 +102,7 @@ bool AnimationSet::addEvent(AnimationEvent *event) {
 //////////////////////////////////////////////////////////////////////////
 bool AnimationSet::update(int slot, uint32 localTime, float lerpValue) {
 	bool res;
-	for (uint32 i = 0; i < _animations.getSize(); i++) {
+	for (int32 i = 0; i < _animations.getSize(); i++) {
 		res = _animations[i]->update(slot, localTime * ((float)_model->_ticksPerSecond / 1000.0f), lerpValue);
 		if (!res) {
 			return res;
@@ -118,7 +118,7 @@ int AnimationSet::getFrameTime() {
 	}
 
 	_frameTime = 0;
-	for (uint32 i = 0; i < _animations.getSize(); i++) {
+	for (int32 i = 0; i < _animations.getSize(); i++) {
 		int frameTime = _animations[i]->getFrameTime();
 		if (_frameTime == 0) {
 			_frameTime = frameTime / ((float)_model->_ticksPerSecond / 1000.0f);
@@ -136,7 +136,7 @@ uint32 AnimationSet::getTotalTime() {
 	}
 
 	_totalTime = 0;
-	for (uint32 i = 0; i < _animations.getSize(); i++) {
+	for (int32 i = 0; i < _animations.getSize(); i++) {
 		_totalTime = MAX((float)_totalTime, _animations[i]->getTotalTime() / ((float)_model->_ticksPerSecond / 1000.0f));
 	}
 	return _totalTime;
@@ -149,7 +149,7 @@ bool AnimationSet::onFrameChanged(int currentFrame, int prevFrame) {
 	}
 
 	if (prevFrame > currentFrame) {
-		for (uint32 i = 0; i < _events.getSize(); i++) {
+		for (int32 i = 0; i < _events.getSize(); i++) {
 			if (_events[i]->_frame > prevFrame) {
 				_model->_owner->applyEvent(_events[i]->_eventName);
 			}
@@ -157,7 +157,7 @@ bool AnimationSet::onFrameChanged(int currentFrame, int prevFrame) {
 		prevFrame = -1;
 	}
 
-	for (uint32 i = 0; i < _events.getSize(); i++) {
+	for (int32 i = 0; i < _events.getSize(); i++) {
 		if (_events[i]->_frame > prevFrame && _events[i]->_frame <= currentFrame) {
 			_model->_owner->applyEvent(_events[i]->_eventName);
 		}
diff --git a/engines/wintermute/base/gfx/xframe_node.cpp b/engines/wintermute/base/gfx/xframe_node.cpp
index ff334799f16..c32fbaf0630 100644
--- a/engines/wintermute/base/gfx/xframe_node.cpp
+++ b/engines/wintermute/base/gfx/xframe_node.cpp
@@ -56,13 +56,13 @@ FrameNode::FrameNode(BaseGame *inGame) : BaseNamedObject(inGame) {
 //////////////////////////////////////////////////////////////////////////
 FrameNode::~FrameNode() {
 	// remove child frames
-	for (uint32 i = 0; i < _frames.getSize(); i++) {
+	for (int32 i = 0; i < _frames.getSize(); i++) {
 		delete _frames[i];
 	}
 	_frames.removeAll();
 
 	// remove meshes
-	for (uint32 i = 0; i < _meshes.getSize(); i++) {
+	for (int32 i = 0; i < _meshes.getSize(); i++) {
 		delete _meshes[i];
 	}
 	_meshes.removeAll();
@@ -208,12 +208,12 @@ bool FrameNode::mergeFromXData(const Common::String &filename, XModel *model, XF
 //////////////////////////////////////////////////////////////////////////
 bool FrameNode::findBones(FrameNode *rootFrame) {
 	// find the bones of the meshes
-	for (uint32 i = 0; i < _meshes.getSize(); i++) {
+	for (int32 i = 0; i < _meshes.getSize(); i++) {
 		_meshes[i]->findBones(rootFrame);
 	}
 
 	// find the bones for the child frames
-	for (uint32 i = 0; i < _frames.getSize(); i++) {
+	for (int32 i = 0; i < _frames.getSize(); i++) {
 		_frames[i]->findBones(rootFrame);
 	}
 
@@ -225,7 +225,7 @@ FrameNode *FrameNode::findFrame(const char *frameName) {
 	if (getName() && strcmp(getName(), frameName) == 0) {
 		return this;
 	} else {
-		for (uint32 i = 0; i < _frames.getSize(); i++) {
+		for (int32 i = 0; i < _frames.getSize(); i++) {
 			FrameNode *foundFrame = _frames[i]->findFrame(frameName);
 			if (foundFrame) {
 				return foundFrame;
@@ -271,7 +271,7 @@ bool FrameNode::updateMatrices(DXMatrix *parentMat) {
 	DXMatrixMultiply(&_combinedMatrix, &_transformationMatrix, parentMat);
 
 	// update child frames
-	for (uint32 i = 0; i < _frames.getSize(); i++) {
+	for (int32 i = 0; i < _frames.getSize(); i++) {
 		_frames[i]->updateMatrices(&_combinedMatrix);
 	}
 
@@ -283,7 +283,7 @@ bool FrameNode::updateMeshes() {
 	bool res = true;
 
 	// update meshes
-	for (uint32 i = 0; i < _meshes.getSize(); i++) {
+	for (int32 i = 0; i < _meshes.getSize(); i++) {
 		res = _meshes[i]->update(this);
 		if (!res) {
 			return res;
@@ -291,7 +291,7 @@ bool FrameNode::updateMeshes() {
 	}
 
 	// render child frames
-	for (uint32 i = 0; i < _frames.getSize(); i++) {
+	for (int32 i = 0; i < _frames.getSize(); i++) {
 		res = _frames[i]->updateMeshes();
 		if (!res) {
 			return res;
@@ -305,7 +305,7 @@ bool FrameNode::resetMatrices() {
 	_transformationMatrix = _originalMatrix;
 
 	// update child frames
-	for (uint32 i = 0; i < _frames.getSize(); i++) {
+	for (int32 i = 0; i < _frames.getSize(); i++) {
 		_frames[i]->resetMatrices();
 	}
 
@@ -317,7 +317,7 @@ bool FrameNode::updateShadowVol(ShadowVolume *shadow, DXMatrix *modelMat, DXVect
 	bool res = true;
 
 	// meshes
-	for (uint32 i = 0; i < _meshes.getSize(); i++) {
+	for (int32 i = 0; i < _meshes.getSize(); i++) {
 		res = _meshes[i]->updateShadowVol(shadow, modelMat, light, extrusionDepth);
 		if (!res) {
 			return res;
@@ -325,7 +325,7 @@ bool FrameNode::updateShadowVol(ShadowVolume *shadow, DXMatrix *modelMat, DXVect
 	}
 
 	// child frames
-	for (uint32 i = 0; i < _frames.getSize(); i++) {
+	for (int32 i = 0; i < _frames.getSize(); i++) {
 		res = _frames[i]->updateShadowVol(shadow, modelMat, light, extrusionDepth);
 		if (!res) {
 			return res;
@@ -339,7 +339,7 @@ bool FrameNode::render(XModel *model) {
 	bool res = true;
 
 	// render meshes
-	for (uint32 i = 0; i < _meshes.getSize(); i++) {
+	for (int32 i = 0; i < _meshes.getSize(); i++) {
 		res = _meshes[i]->render(model);
 		if (!res) {
 			return res;
@@ -347,7 +347,7 @@ bool FrameNode::render(XModel *model) {
 	}
 
 	// render child frames
-	for (uint32 i = 0; i < _frames.getSize(); i++) {
+	for (int32 i = 0; i < _frames.getSize(); i++) {
 		res = _frames[i]->render(model);
 		if (!res) {
 			return res;
@@ -359,14 +359,14 @@ bool FrameNode::render(XModel *model) {
 bool FrameNode::renderFlatShadowModel(uint32 shadowColor) {
 	bool res = true;
 
-	for (uint32 i = 0; i < _meshes.getSize(); i++) {
+	for (int32 i = 0; i < _meshes.getSize(); i++) {
 		res = _meshes[i]->renderFlatShadowModel(shadowColor);
 		if (!res) {
 			return res;
 		}
 	}
 
-	for (uint32 i = 0; i < _frames.getSize(); i++) {
+	for (int32 i = 0; i < _frames.getSize(); i++) {
 		res = _frames[i]->renderFlatShadowModel(shadowColor);
 		if (!res) {
 			return res;
@@ -379,14 +379,14 @@ bool FrameNode::renderFlatShadowModel(uint32 shadowColor) {
 //////////////////////////////////////////////////////////////////////////
 bool FrameNode::pickPoly(DXVector3 *pickRayOrig, DXVector3 *pickRayDir) {
 	bool found = false;
-	for (uint32 i = 0; i < _meshes.getSize(); i++) {
+	for (int32 i = 0; i < _meshes.getSize(); i++) {
 		found = _meshes[i]->pickPoly(pickRayOrig, pickRayDir);
 		if (found) {
 			return true;
 		}
 	}
 
-	for (uint32 i = 0; i < _frames.getSize(); i++) {
+	for (int32 i = 0; i < _frames.getSize(); i++) {
 		found = _frames[i]->pickPoly(pickRayOrig, pickRayDir);
 		if (found) {
 			return true;
@@ -397,7 +397,7 @@ bool FrameNode::pickPoly(DXVector3 *pickRayOrig, DXVector3 *pickRayDir) {
 
 //////////////////////////////////////////////////////////////////////////
 bool FrameNode::getBoundingBox(DXVector3 *boxStart, DXVector3 *boxEnd) {
-	for (uint32 i = 0; i < _meshes.getSize(); i++) {
+	for (int32 i = 0; i < _meshes.getSize(); i++) {
 		boxStart->_x = MIN(boxStart->_x, _meshes[i]->_BBoxStart._x);
 		boxStart->_y = MIN(boxStart->_y, _meshes[i]->_BBoxStart._y);
 		boxStart->_z = MIN(boxStart->_z, _meshes[i]->_BBoxStart._z);
@@ -407,7 +407,7 @@ bool FrameNode::getBoundingBox(DXVector3 *boxStart, DXVector3 *boxEnd) {
 		boxEnd->_z = MAX(boxEnd->_z, _meshes[i]->_BBoxEnd._z);
 	}
 
-	for (uint32 i = 0; i < _frames.getSize(); i++) {
+	for (int32 i = 0; i < _frames.getSize(); i++) {
 		_frames[i]->getBoundingBox(boxStart, boxEnd);
 	}
 	return true;
@@ -420,11 +420,11 @@ bool FrameNode::hasChildren() {
 
 //////////////////////////////////////////////////////////////////////////
 bool FrameNode::setMaterialSprite(char *matName, BaseSprite *sprite) {
-	for (uint32 i = 0; i < _meshes.getSize(); i++) {
+	for (int32 i = 0; i < _meshes.getSize(); i++) {
 		_meshes[i]->setMaterialSprite(matName, sprite);
 	}
 
-	for (uint32 i = 0; i < _frames.getSize(); i++) {
+	for (int32 i = 0; i < _frames.getSize(); i++) {
 		_frames[i]->setMaterialSprite(matName, sprite);
 	}
 
@@ -433,11 +433,11 @@ bool FrameNode::setMaterialSprite(char *matName, BaseSprite *sprite) {
 
 //////////////////////////////////////////////////////////////////////////
 bool FrameNode::setMaterialTheora(char *matName, VideoTheoraPlayer *theora) {
-	for (uint32 i = 0; i < _meshes.getSize(); i++) {
+	for (int32 i = 0; i < _meshes.getSize(); i++) {
 		_meshes[i]->setMaterialTheora(matName, theora);
 	}
 
-	for (uint32 i = 0; i < _frames.getSize(); i++) {
+	for (int32 i = 0; i < _frames.getSize(); i++) {
 		_frames[i]->setMaterialTheora(matName, theora);
 	}
 
@@ -446,11 +446,11 @@ bool FrameNode::setMaterialTheora(char *matName, VideoTheoraPlayer *theora) {
 
 //////////////////////////////////////////////////////////////////////////
 bool FrameNode::setMaterialEffect(char *matName, Effect3D *effect, Effect3DParams *params) {
-	for (uint32 i = 0; i < _meshes.getSize(); i++) {
+	for (int32 i = 0; i < _meshes.getSize(); i++) {
 		_meshes[i]->setMaterialEffect(matName, effect, params);
 	}
 
-	for (uint32 i = 0; i < _frames.getSize(); i++) {
+	for (int32 i = 0; i < _frames.getSize(); i++) {
 		_frames[i]->setMaterialEffect(matName, effect, params);
 	}
 
@@ -459,11 +459,11 @@ bool FrameNode::setMaterialEffect(char *matName, Effect3D *effect, Effect3DParam
 
 //////////////////////////////////////////////////////////////////////////
 bool FrameNode::removeMaterialEffect(const char *matName) {
-	for (uint32 i = 0; i < _meshes.getSize(); i++) {
+	for (int32 i = 0; i < _meshes.getSize(); i++) {
 		_meshes[i]->removeMaterialEffect(matName);
 	}
 
-	for (uint32 i = 0; i < _frames.getSize(); i++) {
+	for (int32 i = 0; i < _frames.getSize(); i++) {
 		_frames[i]->removeMaterialEffect(matName);
 	}
 
@@ -472,11 +472,11 @@ bool FrameNode::removeMaterialEffect(const char *matName) {
 
 //////////////////////////////////////////////////////////////////////////
 bool FrameNode::invalidateDeviceObjects() {
-	for (uint32 i = 0; i < _meshes.getSize(); i++) {
+	for (int32 i = 0; i < _meshes.getSize(); i++) {
 		_meshes[i]->invalidateDeviceObjects();
 	}
 
-	for (uint32 i = 0; i < _frames.getSize(); i++) {
+	for (int32 i = 0; i < _frames.getSize(); i++) {
 		_frames[i]->invalidateDeviceObjects();
 	}
 
@@ -485,11 +485,11 @@ bool FrameNode::invalidateDeviceObjects() {
 
 //////////////////////////////////////////////////////////////////////////
 bool FrameNode::restoreDeviceObjects() {
-	for (uint32 i = 0; i < _meshes.getSize(); i++) {
+	for (int32 i = 0; i < _meshes.getSize(); i++) {
 		_meshes[i]->restoreDeviceObjects();
 	}
 
-	for (uint32 i = 0; i < _frames.getSize(); i++) {
+	for (int32 i = 0; i < _frames.getSize(); i++) {
 		_frames[i]->restoreDeviceObjects();
 	}
 
diff --git a/engines/wintermute/base/gfx/xmesh.cpp b/engines/wintermute/base/gfx/xmesh.cpp
index 52c9bef9e8c..cf08069fd4b 100644
--- a/engines/wintermute/base/gfx/xmesh.cpp
+++ b/engines/wintermute/base/gfx/xmesh.cpp
@@ -309,7 +309,7 @@ bool XMesh::pickPoly(DXVector3 *pickRayOrig, DXVector3 *pickRayDir) {
 
 ////////////////////////////////////////////////////////////////////////////
 bool XMesh::setMaterialSprite(const Common::String &matName, BaseSprite *sprite) {
-	for (uint32 i = 0; i < _materials.getSize(); i++) {
+	for (int32 i = 0; i < _materials.getSize(); i++) {
 		if (_materials[i]->getName() && scumm_stricmp(_materials[i]->getName(),  matName.c_str()) == 0) {
 			_materials[i]->setSprite(sprite);
 		}
@@ -319,7 +319,7 @@ bool XMesh::setMaterialSprite(const Common::String &matName, BaseSprite *sprite)
 
 //////////////////////////////////////////////////////////////////////////
 bool XMesh::setMaterialTheora(const Common::String &matName, VideoTheoraPlayer *theora) {
-	for (uint32 i = 0; i < _materials.getSize(); i++) {
+	for (int32 i = 0; i < _materials.getSize(); i++) {
 		if (_materials[i]->getName() && scumm_stricmp(_materials[i]->getName(), matName.c_str()) == 0) {
 			_materials[i]->setTheora(theora);
 		}
@@ -329,7 +329,7 @@ bool XMesh::setMaterialTheora(const Common::String &matName, VideoTheoraPlayer *
 
 //////////////////////////////////////////////////////////////////////////
 bool XMesh::setMaterialEffect(const Common::String &matName, Effect3D *effect, Effect3DParams *params) {
-	for (uint32 i = 0; i < _materials.getSize(); i++) {
+	for (int32 i = 0; i < _materials.getSize(); i++) {
 		if (_materials[i]->getName() && scumm_stricmp(_materials[i]->getName(), matName.c_str()) == 0) {
 			_materials[i]->setEffect(effect, params);
 		}
@@ -339,7 +339,7 @@ bool XMesh::setMaterialEffect(const Common::String &matName, Effect3D *effect, E
 
 //////////////////////////////////////////////////////////////////////////
 bool XMesh::removeMaterialEffect(const Common::String &matName) {
-	for (uint32 i = 0; i < _materials.getSize(); i++) {
+	for (int32 i = 0; i < _materials.getSize(); i++) {
 		if (_materials[i]->getName() && scumm_stricmp(_materials[i]->getName(), matName.c_str()) == 0) {
 			_materials[i]->setEffect(nullptr, nullptr);
 		}
@@ -354,7 +354,7 @@ bool XMesh::invalidateDeviceObjects() {
 		_blendedMesh = nullptr;
 	}
 
-	for (uint32 i = 0; i < _materials.getSize(); i++) {
+	for (int32 i = 0; i < _materials.getSize(); i++) {
 		_materials[i]->invalidateDeviceObjects();
 	}
 
@@ -363,7 +363,7 @@ bool XMesh::invalidateDeviceObjects() {
 
 //////////////////////////////////////////////////////////////////////////
 bool XMesh::restoreDeviceObjects() {
-	for (uint32 i = 0; i < _materials.getSize(); i++) {
+	for (int32 i = 0; i < _materials.getSize(); i++) {
 		_materials[i]->restoreDeviceObjects();
 	}
 
diff --git a/engines/wintermute/base/gfx/xmodel.cpp b/engines/wintermute/base/gfx/xmodel.cpp
index f6c0c30c3fd..db6c115e844 100644
--- a/engines/wintermute/base/gfx/xmodel.cpp
+++ b/engines/wintermute/base/gfx/xmodel.cpp
@@ -87,19 +87,19 @@ void XModel::cleanup(bool complete) {
 	}
 
 	// remove animation sets
-	for (uint32 i = 0; i < _animationSets.getSize(); i++) {
+	for (int32 i = 0; i < _animationSets.getSize(); i++) {
 		delete _animationSets[i];
 	}
 	_animationSets.removeAll();
 
 	if (complete) {
-		for (uint i = 0; i < _mergedModels.getSize(); ++i) {
+		for (int32 i = 0; i < _mergedModels.getSize(); ++i) {
 			delete[] _mergedModels[i];
 		}
 		_mergedModels.removeAll();
 	}
 
-	for (uint32 i = 0; i < _matSprites.getSize(); i++) {
+	for (int32 i = 0; i < _matSprites.getSize(); i++) {
 		delete _matSprites[i];
 		_matSprites[i] = nullptr;
 	}
@@ -212,7 +212,7 @@ bool XModel::mergeFromFile(const Common::String &filename) {
 
 	// remember path for save/load purposes
 	bool found = false;
-	for (uint i = 0; i < _mergedModels.getSize(); ++i) {
+	for (int32 i = 0; i < _mergedModels.getSize(); ++i) {
 		if (scumm_stricmp(_mergedModels[i], filename.c_str()) == 0) {
 			found = true;
 			break;
@@ -334,7 +334,7 @@ bool XModel::findBones(bool animOnly, XModel *parentModel) {
 		_rootFrame->findBones(rootFrame);
 	}
 
-	for (uint32 i = 0; i < _animationSets.getSize(); i++) {
+	for (int32 i = 0; i < _animationSets.getSize(); i++) {
 		_animationSets[i]->findBones(rootFrame);
 	}
 
@@ -666,7 +666,7 @@ void XModel::updateRect(Rect32 *rc, DXVector3 *vec) {
 
 //////////////////////////////////////////////////////////////////////////
 AnimationSet *XModel::getAnimationSetByName(const Common::String &name) {
-	for (uint32 i = 0; i < _animationSets.getSize(); i++) {
+	for (int32 i = 0; i < _animationSets.getSize(); i++) {
 		if (name.equalsIgnoreCase(_animationSets[i]->_name)) {
 			return _animationSets[i];
 		}
@@ -804,7 +804,7 @@ bool XModel::setMaterialSprite(const char *materialName, const char *spriteFilen
 	}
 
 	XModelMatSprite *matSprite = nullptr;
-	for (uint32 i = 0; i < _matSprites.getSize(); i++) {
+	for (int32 i = 0; i < _matSprites.getSize(); i++) {
 		if (scumm_stricmp(_matSprites[i]->_matName, materialName) == 0) {
 			matSprite = _matSprites[i];
 			break;
@@ -841,7 +841,7 @@ bool XModel::setMaterialTheora(const char *materialName, const char *theoraFilen
 	theora->play(VID_PLAY_POS, 0, 0, false, false, true);
 
 	XModelMatSprite *matSprite = nullptr;
-	for (uint32 i = 0; i < _matSprites.getSize(); i++) {
+	for (int32 i = 0; i < _matSprites.getSize(); i++) {
 		if (scumm_stricmp(_matSprites[i]->_matName, materialName) == 0) {
 			matSprite = _matSprites[i];
 			break;
@@ -874,7 +874,7 @@ bool XModel::setMaterialEffect(const char *materialName, const char *effectFilen
 	}
 
 	XModelMatSprite *matSprite = nullptr;
-	for (uint32 i = 0 ; i < _matSprites.getSize(); i++) {
+	for (int32 i = 0 ; i < _matSprites.getSize(); i++) {
 		if (scumm_stricmp(_matSprites[i]->_matName, materialName) == 0) {
 			matSprite = _matSprites[i];
 			break;
@@ -898,7 +898,7 @@ bool XModel::removeMaterialEffect(const char *materialName) {
 	if (!_rootFrame)
 		return false;
 
-	for (uint32 i = 0; i < _matSprites.getSize(); i++) {
+	for (int32 i = 0; i < _matSprites.getSize(); i++) {
 		if (scumm_stricmp(_matSprites[i]->_matName, materialName) == 0) {
 			delete _matSprites[i];
 			_matSprites[i] = nullptr;
@@ -918,7 +918,7 @@ bool XModel::setMaterialEffectParam(const char *materialName, const char *paramN
 		return false;
 
 
-	for (uint32 i = 0 ; i < _matSprites.getSize(); i++) {
+	for (int32 i = 0 ; i < _matSprites.getSize(); i++) {
 		if (scumm_stricmp(_matSprites[i]->_matName, materialName) == 0) {
 			if (_matSprites[i]->_effectParams) {
 				_matSprites[i]->_effectParams->setParam(paramName, val);
@@ -938,7 +938,7 @@ bool XModel::setMaterialEffectParam(const char *materialName, const char *paramN
 		return false;
 
 
-	for (uint32 i = 0; i < _matSprites.getSize(); i++) {
+	for (int32 i = 0; i < _matSprites.getSize(); i++) {
 		if (scumm_stricmp(_matSprites[i]->_matName, materialName) == 0) {
 			if (_matSprites[i]->_effectParams) {
 				_matSprites[i]->_effectParams->setParam(paramName, val);
@@ -957,7 +957,7 @@ bool XModel::initializeSimple() {
 	}
 
 	// init after load
-	for (uint32 i = 0; i < _matSprites.getSize(); i++) {
+	for (int32 i = 0; i < _matSprites.getSize(); i++) {
 		if (_matSprites[i]->_theora) {
 			_rootFrame->setMaterialTheora(_matSprites[i]->_matName, _matSprites[i]->_theora);
 		} else if (_matSprites[i]->_sprite) {
@@ -1016,7 +1016,7 @@ bool XModel::persist(BasePersistenceManager *persistMgr) {
 			loadFromFile(getFilename());
 		}
 
-		for (uint i = 0; i < _mergedModels.getSize(); ++i) {
+		for (int32 i = 0; i < _mergedModels.getSize(); ++i) {
 			mergeFromFile(_mergedModels[i]);
 		}
 	}
@@ -1032,7 +1032,7 @@ bool XModel::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferSint32(TMEMBER(numAnims));
 
 	if (persistMgr->getIsSaving()) {
-		for (uint32 i = 0; i < _animationSets.getSize(); i++) {
+		for (int32 i = 0; i < _animationSets.getSize(); i++) {
 			persistMgr->transferCharPtr(TMEMBER(_animationSets[i]->_name));
 			_animationSets[i]->persist(persistMgr);
 		}
@@ -1103,7 +1103,7 @@ bool XModel::restoreDeviceObjects() {
 //////////////////////////////////////////////////////////////////////////
 bool XModel::unloadAnimation(const char *animName) {
 	bool found = false;
-	for (uint32 i = 0; i < _animationSets.getSize(); i++) {
+	for (int32 i = 0; i < _animationSets.getSize(); i++) {
 		if (scumm_stricmp(animName, _animationSets[i]->_name) == 0) {
 			for (int j = 0; j < X_NUM_ANIMATION_CHANNELS; j++) {
 				if (_channels[j])
diff --git a/engines/wintermute/base/particles/part_emitter.cpp b/engines/wintermute/base/particles/part_emitter.cpp
index 9558735917a..7c92767221a 100644
--- a/engines/wintermute/base/particles/part_emitter.cpp
+++ b/engines/wintermute/base/particles/part_emitter.cpp
@@ -94,18 +94,18 @@ PartEmitter::PartEmitter(BaseGame *inGame, BaseScriptHolder *owner) : BaseObject
 
 //////////////////////////////////////////////////////////////////////////
 PartEmitter::~PartEmitter() {
-	for (uint32 i = 0; i < _particles.getSize(); i++) {
+	for (int32 i = 0; i < _particles.getSize(); i++) {
 		delete _particles[i];
 	}
 	_particles.removeAll();
 
-	for (uint32 i = 0; i < _forces.getSize(); i++) {
+	for (int32 i = 0; i < _forces.getSize(); i++) {
 		delete _forces[i];
 	}
 	_forces.removeAll();
 
 
-	for (uint32 i = 0; i < _sprites.getSize(); i++) {
+	for (int32 i = 0; i < _sprites.getSize(); i++) {
 		delete[] _sprites[i];
 	}
 	_sprites.removeAll();
@@ -121,7 +121,7 @@ bool PartEmitter::addSprite(const char *filename) {
 	}
 
 	// do we already have the file?
-	for (uint32 i = 0; i < _sprites.getSize(); i++) {
+	for (int32 i = 0; i < _sprites.getSize(); i++) {
 		if (scumm_stricmp(filename, _sprites[i]) == 0) {
 			return STATUS_OK;
 		}
@@ -143,7 +143,7 @@ bool PartEmitter::addSprite(const char *filename) {
 
 //////////////////////////////////////////////////////////////////////////
 bool PartEmitter::removeSprite(const char *filename) {
-	for (uint32 i = 0; i < _sprites.getSize(); i++) {
+	for (int32 i = 0; i < _sprites.getSize(); i++) {
 		if (scumm_stricmp(filename, _sprites[i]) == 0) {
 			delete[] _sprites[i];
 			_sprites.removeAt(i);
@@ -188,7 +188,7 @@ bool PartEmitter::initParticle(PartParticle *particle, uint32 currentTime, uint3
 	}
 
 	float angle = BaseUtils::randomAngle(_angle1, _angle2);
-	int spriteIndex = BaseUtils::randomInt(0, _sprites.getSize() - 1);
+	int32 spriteIndex = BaseUtils::randomInt(0, _sprites.getSize() - 1);
 
 	float rotation = BaseUtils::randomAngle(_rotation1, _rotation2);
 	float angVelocity = BaseUtils::randomFloat(_angVelocity1, _angVelocity2);
@@ -258,7 +258,7 @@ bool PartEmitter::update() {
 bool PartEmitter::updateInternal(uint32 currentTime, uint32 timerDelta) {
 	int numLive = 0;
 
-	for (uint32 i = 0; i < _particles.getSize(); i++) {
+	for (int32 i = 0; i < _particles.getSize(); i++) {
 		_particles[i]->update(this, currentTime, timerDelta);
 
 		if (!_particles[i]->_isDead) {
@@ -280,8 +280,8 @@ bool PartEmitter::updateInternal(uint32 currentTime, uint32 timerDelta) {
 
 			int toGen = MIN(_genAmount, _maxParticles - numLive);
 			while (toGen > 0) {
-				int firstDeadIndex = -1;
-				for (uint32 i = 0; i < _particles.getSize(); i++) {
+				int32 firstDeadIndex = -1;
+				for (int32 i = 0; i < _particles.getSize(); i++) {
 					if (_particles[i]->_isDead) {
 						firstDeadIndex = i;
 						break;
@@ -322,7 +322,7 @@ bool PartEmitter::display(BaseRegion *region) {
 		BaseEngine::getRenderer()->startSpriteBatch();
 	}
 
-	for (uint32 i = 0; i < _particles.getSize(); i++) {
+	for (int32 i = 0; i < _particles.getSize(); i++) {
 		if (region != nullptr && _useRegion) {
 			if (!region->pointInRegion((int)_particles[i]->_pos.x, (int)_particles[i]->_pos.y)) {
 				continue;
@@ -341,7 +341,7 @@ bool PartEmitter::display(BaseRegion *region) {
 
 //////////////////////////////////////////////////////////////////////////
 bool PartEmitter::start() {
-	for (uint32 i = 0; i < _particles.getSize(); i++) {
+	for (int32 i = 0; i < _particles.getSize(); i++) {
 		_particles[i]->_isDead = true;
 	}
 	_running = true;
@@ -406,7 +406,7 @@ bool PartEmitter::setBorderThickness(int thicknessLeft, int thicknessRight, int
 PartForce *PartEmitter::addForceByName(const Common::String &name) {
 	PartForce *force = nullptr;
 
-	for (uint32 i = 0; i < _forces.getSize(); i++) {
+	for (int32 i = 0; i < _forces.getSize(); i++) {
 		if (scumm_stricmp(name.c_str(), _forces[i]->getName()) == 0) {
 			force = _forces[i];
 			break;
@@ -444,7 +444,7 @@ bool PartEmitter::addForce(const Common::String &name, PartForce::TForceType typ
 
 //////////////////////////////////////////////////////////////////////////
 bool PartEmitter::removeForce(const Common::String &name) {
-	for (uint32 i = 0; i < _forces.getSize(); i++) {
+	for (int32 i = 0; i < _forces.getSize(); i++) {
 		if (scumm_stricmp(name.c_str(), _forces[i]->getName()) == 0) {
 			delete _forces[i];
 			_forces.removeAt(i);
@@ -525,7 +525,7 @@ bool PartEmitter::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisSt
 	else if (strcmp(name, "Stop") == 0) {
 		stack->correctParams(0);
 
-		for (uint32 i = 0; i < _particles.getSize(); i++) {
+		for (int32 i = 0; i < _particles.getSize(); i++) {
 			delete _particles[i];
 		}
 		_particles.removeAll();
@@ -788,7 +788,7 @@ ScValue *PartEmitter::scGetProperty(const Common::String &name) {
 	//////////////////////////////////////////////////////////////////////////
 	else if (name == "NumLiveParticles") {
 		int numAlive = 0;
-		for (uint32 i = 0; i < _particles.getSize(); i++) {
+		for (int32 i = 0; i < _particles.getSize(); i++) {
 			if (_particles[i] && !_particles[i]->_isDead) {
 				numAlive++;
 			}
@@ -1223,7 +1223,7 @@ bool PartEmitter::persist(BasePersistenceManager *persistMgr) {
 	if (persistMgr->getIsSaving()) {
 		numForces = _forces.getSize();
 		persistMgr->transferUint32(TMEMBER(numForces));
-		for (uint32 i = 0; i < _forces.getSize(); i++) {
+		for (int32 i = 0; i < _forces.getSize(); i++) {
 			_forces[i]->persist(persistMgr);
 		}
 	} else {
@@ -1239,7 +1239,7 @@ bool PartEmitter::persist(BasePersistenceManager *persistMgr) {
 	if (persistMgr->getIsSaving()) {
 		numParticles = _particles.getSize();
 		persistMgr->transferUint32(TMEMBER(numParticles));
-		for (uint32 i = 0; i < _particles.getSize(); i++) {
+		for (int32 i = 0; i < _particles.getSize(); i++) {
 			_particles[i]->persist(persistMgr);
 		}
 	} else {
diff --git a/engines/wintermute/base/particles/part_particle.cpp b/engines/wintermute/base/particles/part_particle.cpp
index 57b31ed8f0e..0e8333325a4 100644
--- a/engines/wintermute/base/particles/part_particle.cpp
+++ b/engines/wintermute/base/particles/part_particle.cpp
@@ -147,7 +147,7 @@ bool PartParticle::update(PartEmitter *emitter, uint32 currentTime, uint32 timer
 		// update position
 		float elapsedTime = (float)timerDelta / 1000.f;
 
-		for (uint32 i = 0; i < emitter->_forces.getSize(); i++) {
+		for (int32 i = 0; i < emitter->_forces.getSize(); i++) {
 			PartForce *force = emitter->_forces[i];
 			switch (force->_type) {
 			case PartForce::FORCE_GLOBAL:
diff --git a/engines/wintermute/base/scriptables/debuggable/debuggable_script.cpp b/engines/wintermute/base/scriptables/debuggable/debuggable_script.cpp
index 8d32b45e880..bfe59209688 100644
--- a/engines/wintermute/base/scriptables/debuggable/debuggable_script.cpp
+++ b/engines/wintermute/base/scriptables/debuggable/debuggable_script.cpp
@@ -38,7 +38,7 @@ DebuggableScript::DebuggableScript(BaseGame *inGame, DebuggableScEngine *engine)
 }
 
 DebuggableScript::~DebuggableScript() {
-	for (uint i = 0; i < _watchInstances.getSize(); i++) {
+	for (int32 i = 0; i < _watchInstances.getSize(); i++) {
 		delete _watchInstances[i];
 	}
 	_engine->_watches.unsubscribe(this);
@@ -56,7 +56,7 @@ void DebuggableScript::postInstHook(uint32 inst) {
 		}
 	}
 
-	for (uint i = 0; i < _watchInstances.getSize(); i++) {
+	for (int32 i = 0; i < _watchInstances.getSize(); i++) {
 		this->_watchInstances[i]->evaluate();
 	}
 
@@ -125,7 +125,7 @@ Common::String DebuggableScript::dbgGetFilename() const {
 
 void DebuggableScript::updateWatches() {
 	// We drop obsolete watches
-	for (uint i = 0; i < _watchInstances.getSize(); i++) {
+	for (int32 i = 0; i < _watchInstances.getSize(); i++) {
 		Watch *findMe = _watchInstances[i]->_watch;
 		if (Common::find(_engine->_watches.begin(), _engine->_watches.end(), findMe) == _engine->_watches.end()) {
 			// Not found on engine-wide list, must have been removed from watches. Must remove it from local list.
diff --git a/engines/wintermute/base/scriptables/script.cpp b/engines/wintermute/base/scriptables/script.cpp
index 765861cb43a..8815d8797fe 100644
--- a/engines/wintermute/base/scriptables/script.cpp
+++ b/engines/wintermute/base/scriptables/script.cpp
@@ -1515,7 +1515,7 @@ bool ScScript::copyParameters(ScStack *stack) {
 
 //////////////////////////////////////////////////////////////////////////
 bool ScScript::finishThreads() {
-	for (uint32 i = 0; i < _engine->_scripts.getSize(); i++) {
+	for (int32 i = 0; i < _engine->_scripts.getSize(); i++) {
 		ScScript *scr = _engine->_scripts[i];
 		if (scr->_thread && scr->_state != SCRIPT_FINISHED && scr->_owner == _owner && scumm_stricmp(scr->_filename, _filename) == 0) {
 			scr->finish(true);
diff --git a/engines/wintermute/base/scriptables/script_engine.cpp b/engines/wintermute/base/scriptables/script_engine.cpp
index 688ee7d788b..59950c28e0c 100644
--- a/engines/wintermute/base/scriptables/script_engine.cpp
+++ b/engines/wintermute/base/scriptables/script_engine.cpp
@@ -99,7 +99,7 @@ ScEngine::~ScEngine() {
 
 //////////////////////////////////////////////////////////////////////////
 bool ScEngine::cleanup() {
-	for (int32 i = 0; i < (int32)_scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		if (!_scripts[i]->_thread && _scripts[i]->_owner) {
 			_scripts[i]->_owner->removeScript(_scripts[i]);
 		}
@@ -185,7 +185,7 @@ ScScript *ScEngine::runScript(const char *filename, BaseScriptHolder *owner) {
 
 //////////////////////////////////////////////////////////////////////////
 bool ScEngine::isRunningScript(const char *filename) {
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		if (strcmp(_scripts[i]->_filename, filename) == 0) {
 			return true;
 		}
@@ -277,7 +277,7 @@ bool ScEngine::tick() {
 
 
 	// resolve waiting scripts
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 
 		switch (_scripts[i]->_state) {
 		case SCRIPT_WAITING: {
@@ -341,7 +341,7 @@ bool ScEngine::tick() {
 
 
 	// execute scripts
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 
 		// skip paused scripts
 		if (_scripts[i]->_state == SCRIPT_PAUSED) {
@@ -390,7 +390,7 @@ bool ScEngine::tickUnbreakable() {
 	ScScript *oldScript = _currentScript;
 
 	// execute unbreakable scripts
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		if (!_scripts[i]->_unbreakable) {
 			continue;
 		}
@@ -414,7 +414,7 @@ bool ScEngine::tickUnbreakable() {
 //////////////////////////////////////////////////////////////////////////
 bool ScEngine::removeFinishedScripts() {
 	// remove finished scripts
-	for (int32 i = 0; i < (int32)_scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		if (_scripts[i]->_state == SCRIPT_FINISHED || _scripts[i]->_state == SCRIPT_ERROR) {
 			if (!_scripts[i]->_thread && _scripts[i]->_owner) {
 				_scripts[i]->_owner->removeScript(_scripts[i]);
@@ -433,7 +433,7 @@ bool ScEngine::removeFinishedScripts() {
 int ScEngine::getNumScripts(int *running, int *waiting, int *persistent) {
 	int numRunning = 0, numWaiting = 0, numPersistent = 0, numTotal = 0;
 
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		if (_scripts[i]->_state == SCRIPT_FINISHED) {
 			continue;
 		}
@@ -492,7 +492,7 @@ bool ScEngine::emptyScriptCache() {
 //////////////////////////////////////////////////////////////////////////
 bool ScEngine::resetObject(BaseObject *Object) {
 	// terminate all scripts waiting for this object
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		if (_scripts[i]->_state == SCRIPT_WAITING && _scripts[i]->_waitObject == Object) {
 			if (!_gameRef->_compatKillMethodThreads) {
 				resetScript(_scripts[i]);
@@ -508,7 +508,7 @@ bool ScEngine::resetObject(BaseObject *Object) {
 //////////////////////////////////////////////////////////////////////////
 bool ScEngine::resetScript(ScScript *script) {
 	// terminate all scripts waiting for this script
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		if (_scripts[i]->_state == SCRIPT_WAITING_SCRIPT && _scripts[i]->_waitScript == script) {
 			_scripts[i]->finish();
 		}
@@ -533,7 +533,7 @@ bool ScEngine::persist(BasePersistenceManager *persistMgr) {
 
 //////////////////////////////////////////////////////////////////////////
 void ScEngine::editorCleanup() {
-	for (int32 i = 0; i < (int32)_scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		if (_scripts[i]->_owner == nullptr && (_scripts[i]->_state == SCRIPT_FINISHED || _scripts[i]->_state == SCRIPT_ERROR)) {
 			delete _scripts[i];
 			_scripts.removeAt(i);
@@ -545,7 +545,7 @@ void ScEngine::editorCleanup() {
 
 //////////////////////////////////////////////////////////////////////////
 bool ScEngine::pauseAll() {
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		if (_scripts[i] != _currentScript) {
 			_scripts[i]->pause();
 		}
@@ -557,7 +557,7 @@ bool ScEngine::pauseAll() {
 
 //////////////////////////////////////////////////////////////////////////
 bool ScEngine::resumeAll() {
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		_scripts[i]->resume();
 	}
 
@@ -567,7 +567,7 @@ bool ScEngine::resumeAll() {
 
 //////////////////////////////////////////////////////////////////////////
 bool ScEngine::isValidScript(ScScript *script) {
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		if (_scripts[i] == script) {
 			return true;
 		}
diff --git a/engines/wintermute/base/scriptables/script_stack.cpp b/engines/wintermute/base/scriptables/script_stack.cpp
index 42ed986c913..65bf3055779 100644
--- a/engines/wintermute/base/scriptables/script_stack.cpp
+++ b/engines/wintermute/base/scriptables/script_stack.cpp
@@ -43,7 +43,7 @@ ScStack::ScStack(BaseGame *inGame) : BaseClass(inGame) {
 ScStack::~ScStack() {
 	//_gameRef->LOG(0, "STAT: Stack size: %d, SP=%d", _values.size(), _sP);
 
-	for (uint32 i = 0; i < _values.getSize(); i++) {
+	for (int32 i = 0; i < _values.getSize(); i++) {
 		delete _values[i];
 	}
 	_values.removeAll();
@@ -65,7 +65,7 @@ ScValue *ScStack::pop() {
 void ScStack::push(ScValue *val) {
 	_sP++;
 
-	if (_sP < (int32)_values.getSize()) {
+	if (_sP < _values.getSize()) {
 		_values[_sP]->cleanup();
 		_values[_sP]->copy(val);
 	} else {
@@ -80,7 +80,7 @@ void ScStack::push(ScValue *val) {
 ScValue *ScStack::getPushValue() {
 	_sP++;
 
-	if (_sP >= (int32)_values.getSize()) {
+	if (_sP >= _values.getSize()) {
 		ScValue *val = new ScValue(_gameRef);
 		_values.add(val);
 	}
@@ -92,7 +92,7 @@ ScValue *ScStack::getPushValue() {
 
 //////////////////////////////////////////////////////////////////////////
 ScValue *ScStack::getTop() {
-	if (_sP < 0 || _sP >= (int32)_values.getSize()) {
+	if (_sP < 0 || _sP >= _values.getSize()) {
 		return nullptr;
 	} else {
 		return _values[_sP];
@@ -132,7 +132,7 @@ void ScStack::correctParams(uint32 expectedParams) {
 			nuParams++;
 			_sP++;
 
-			if ((int32)_values.getSize() > _sP + 1) {
+			if (_values.getSize() > _sP + 1) {
 				delete _values[_values.getSize() - 1];
 				_values.removeAt(_values.getSize() - 1);
 			}
diff --git a/engines/wintermute/base/sound/base_sound_manager.cpp b/engines/wintermute/base/sound/base_sound_manager.cpp
index 36a7e874cdf..07f27d0c567 100644
--- a/engines/wintermute/base/sound/base_sound_manager.cpp
+++ b/engines/wintermute/base/sound/base_sound_manager.cpp
@@ -61,7 +61,7 @@ BaseSoundMgr::~BaseSoundMgr() {
 
 //////////////////////////////////////////////////////////////////////////
 bool BaseSoundMgr::cleanup() {
-	for (uint32 i = 0; i < _sounds.getSize(); i++) {
+	for (int32 i = 0; i < _sounds.getSize(); i++) {
 		delete _sounds[i];
 	}
 	_sounds.removeAll();
@@ -159,7 +159,7 @@ bool BaseSoundMgr::addSound(BaseSoundBuffer *sound, Audio::Mixer::SoundType type
 
 //////////////////////////////////////////////////////////////////////////
 bool BaseSoundMgr::removeSound(BaseSoundBuffer *sound) {
-	for (uint32 i = 0; i < _sounds.getSize(); i++) {
+	for (int32 i = 0; i < _sounds.getSize(); i++) {
 		if (_sounds[i] == sound) {
 			delete _sounds[i];
 			_sounds.removeAt(i);
@@ -231,7 +231,7 @@ bool BaseSoundMgr::setMasterVolume(byte value) {
 	// be none the wiser about round-off-errors. This function should thus
 	// ONLY be called by setMasterVolumePercent.
 	_volumeMaster = value;
-	for (uint32 i = 0; i < _sounds.getSize(); i++) {
+	for (int32 i = 0; i < _sounds.getSize(); i++) {
 		_sounds[i]->updateVolume();
 	}
 	return STATUS_OK;
@@ -259,7 +259,7 @@ byte BaseSoundMgr::getMasterVolume() {
 //////////////////////////////////////////////////////////////////////////
 bool BaseSoundMgr::pauseAll(bool includingMusic) {
 
-	for (uint32 i = 0; i < _sounds.getSize(); i++) {
+	for (int32 i = 0; i < _sounds.getSize(); i++) {
 		if (_sounds[i]->isPlaying() && (_sounds[i]->getType() != Audio::Mixer::kMusicSoundType || includingMusic)) {
 			_sounds[i]->pause();
 			_sounds[i]->setFreezePaused(true);
@@ -273,7 +273,7 @@ bool BaseSoundMgr::pauseAll(bool includingMusic) {
 //////////////////////////////////////////////////////////////////////////
 bool BaseSoundMgr::resumeAll() {
 
-	for (uint32 i = 0; i < _sounds.getSize(); i++) {
+	for (int32 i = 0; i < _sounds.getSize(); i++) {
 		if (_sounds[i]->isFreezePaused()) {
 			_sounds[i]->resume();
 			_sounds[i]->setFreezePaused(false);
diff --git a/engines/wintermute/coll_templ.h b/engines/wintermute/coll_templ.h
index 7b8744d4255..27dbeb2e69b 100644
--- a/engines/wintermute/coll_templ.h
+++ b/engines/wintermute/coll_templ.h
@@ -36,7 +36,7 @@ namespace Wintermute {
 
 /////////////////////////////////////////////////////////////////////////////
 template<class TYPE>
-inline void dcConstructElements(TYPE *pElements, uint32 nCount) {
+inline void dcConstructElements(TYPE *pElements, int32 nCount) {
 	// first do bit-wise zero initialization
 	memset((void *)pElements, 0, nCount * sizeof(TYPE));
 
@@ -47,7 +47,7 @@ inline void dcConstructElements(TYPE *pElements, uint32 nCount) {
 
 /////////////////////////////////////////////////////////////////////////////
 template<class TYPE>
-inline void dcDestructElements(TYPE *pElements, uint32 nCount) {
+inline void dcDestructElements(TYPE *pElements, int32 nCount) {
 	// call the destructor(s)
 	for (; nCount--; pElements++)
 		pElements->~TYPE();
@@ -55,7 +55,7 @@ inline void dcDestructElements(TYPE *pElements, uint32 nCount) {
 
 /////////////////////////////////////////////////////////////////////////////
 template<class TYPE>
-inline void dcCopyElements(TYPE *pDest, const TYPE *pSrc, uint32 nCount) {
+inline void dcCopyElements(TYPE *pDest, const TYPE *pSrc, int32 nCount) {
 	// default is element-copy using assignment
 	while (nCount--)
 		*pDest++ = *pSrc++;
@@ -71,9 +71,9 @@ public:
 	BaseArrayBase();
 
 	// Attributes
-	uint32 getSize() const;
-	uint32 getUpperBound() const;
-	void setSize(uint32 nNewSize, uint32 nGrowBy = (uint32)-1);
+	int32 getSize() const;
+	int32 getUpperBound() const;
+	void setSize(int32 nNewSize, int32 nGrowBy = -1);
 
 	// Operations
 	// Clean up
@@ -81,35 +81,35 @@ public:
 	void removeAll();
 
 	// Accessing elements
-	TYPE getAt(uint32 nIndex) const;
-	void setAt(uint32 nIndex, TYPE newElement);
-	TYPE& elementAt(uint32 nIndex);
+	TYPE getAt(int32 nIndex) const;
+	void setAt(int32 nIndex, TYPE newElement);
+	TYPE& elementAt(int32 nIndex);
 
 	// Direct Access to the element data (may return NULL)
 	const TYPE *getData() const;
 	TYPE *getData();
 
 	// Potentially growing the array
-	void setAtGrow(uint32 nIndex, TYPE newElement);
-	uint32 add(TYPE newElement);
-	uint32 append(const BaseArrayBase &src);
+	void setAtGrow(int32 nIndex, TYPE newElement);
+	int32 add(TYPE newElement);
+	int32 append(const BaseArrayBase &src);
 	void copy(const BaseArrayBase &src);
 
 	// overloaded operator helpers
-	TYPE operator[](uint32 nIndex) const;
-	TYPE &operator[](uint32 nIndex);
+	TYPE operator[](int32 nIndex) const;
+	TYPE &operator[](int32 nIndex);
 
 	// Operations that move elements around
-	void insertAt(uint32 nIndex, TYPE newElement, uint32 nCount = 1);
-	void removeAt(uint32 nIndex, uint32 nCount = 1);
-	void insertAt(uint32 nStartIndex, BaseArrayBase *pNewArray);
+	void insertAt(int32 nIndex, TYPE newElement, int32 nCount = 1);
+	void removeAt(int32 nIndex, int32 nCount = 1);
+	void insertAt(int32 nStartIndex, BaseArrayBase *pNewArray);
 
 	// Implementation
 protected:
 	TYPE *_pData;   // the actual array of data
-	uint32 _nSize;     // # of elements (upperBound - 1)
-	uint32 _nMaxSize;  // max allocated
-	uint32 _nGrowBy;   // grow amount
+	int32 _nSize;     // # of elements (upperBound - 1)
+	int32 _nMaxSize;  // max allocated
+	int32 _nGrowBy;   // grow amount
 
 public:
 	~BaseArrayBase();
@@ -119,32 +119,32 @@ public:
 // CBArray<TYPE> inline functions
 /////////////////////////////////////////////////////////////////////////////
 template<class TYPE>
-inline uint32 BaseArrayBase<TYPE>::getSize() const {
+inline int32 BaseArrayBase<TYPE>::getSize() const {
 	return _nSize;
 }
 
 template<class TYPE>
-inline uint32 BaseArrayBase<TYPE>::getUpperBound() const {
+inline int32 BaseArrayBase<TYPE>::getUpperBound() const {
 	return _nSize - 1;
 }
 
 template<class TYPE>
 inline void BaseArrayBase<TYPE>::removeAll() {
-	setSize(0, (uint32)-1);
+	setSize(0, -1);
 }
 
 template<class TYPE>
-inline TYPE BaseArrayBase<TYPE>::getAt(uint32 nIndex) const {
+inline TYPE BaseArrayBase<TYPE>::getAt(int32 nIndex) const {
 	return _pData[nIndex];
 }
 
 template<class TYPE>
-inline void BaseArrayBase<TYPE>::setAt(uint32 nIndex, TYPE newElement) {
+inline void BaseArrayBase<TYPE>::setAt(int32 nIndex, TYPE newElement) {
 	_pData[nIndex] = newElement;
 }
 
 template<class TYPE>
-inline TYPE &BaseArrayBase<TYPE>::elementAt(uint32 nIndex) {
+inline TYPE &BaseArrayBase<TYPE>::elementAt(int32 nIndex) {
 	return _pData[nIndex];
 }
 
@@ -159,19 +159,19 @@ inline TYPE *BaseArrayBase<TYPE>::getData() {
 }
 
 template<class TYPE>
-inline uint32 BaseArrayBase<TYPE>::add(TYPE newElement) {
-	uint32 nIndex = _nSize;
+inline int32 BaseArrayBase<TYPE>::add(TYPE newElement) {
+	int32 nIndex = _nSize;
 	setAtGrow(nIndex, newElement);
 	return nIndex;
 }
 
 template<class TYPE>
-inline TYPE BaseArrayBase<TYPE>::operator[](uint32 nIndex) const {
+inline TYPE BaseArrayBase<TYPE>::operator[](int32 nIndex) const {
 	return getAt(nIndex);
 }
 
 template<class TYPE>
-inline TYPE &BaseArrayBase<TYPE>::operator[](uint32 nIndex) {
+inline TYPE &BaseArrayBase<TYPE>::operator[](int32 nIndex) {
 	return elementAt(nIndex);
 }
 
@@ -195,8 +195,8 @@ BaseArrayBase<TYPE>::~BaseArrayBase() {
 
 /////////////////////////////////////////////////////////////////////////////
 template<class TYPE>
-void BaseArrayBase<TYPE>::setSize(uint32 nNewSize, uint32 nGrowBy) {
-	if (nGrowBy != (uint32)-1)
+void BaseArrayBase<TYPE>::setSize(int32 nNewSize, int32 nGrowBy) {
+	if (nGrowBy != -1)
 		_nGrowBy = nGrowBy;  // set new size
 
 	if (nNewSize == 0) {
@@ -224,7 +224,7 @@ void BaseArrayBase<TYPE>::setSize(uint32 nNewSize, uint32 nGrowBy) {
 		_nSize = nNewSize;
 	} else {
 		// otherwise, grow array
-		uint32 numGrowBy = _nGrowBy;
+		int32 numGrowBy = _nGrowBy;
 		if (numGrowBy == 0) {
 			// heuristically determine growth when nGrowBy == 0
 			//  (this avoids heap fragmentation in many situations)
@@ -255,8 +255,8 @@ void BaseArrayBase<TYPE>::setSize(uint32 nNewSize, uint32 nGrowBy) {
 
 /////////////////////////////////////////////////////////////////////////////
 template<class TYPE>
-uint32 BaseArrayBase<TYPE>::append(const BaseArrayBase &src) {
-	uint32 nOldSize = _nSize;
+int32 BaseArrayBase<TYPE>::append(const BaseArrayBase &src) {
+	int32 nOldSize = _nSize;
 	setSize(_nSize + src._nSize);
 	dcCopyElements<TYPE>(_pData + nOldSize, src._pData, src._nSize);
 	return nOldSize;
@@ -280,7 +280,7 @@ void BaseArrayBase<TYPE>::freeExtra() {
 			// 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;
@@ -290,7 +290,7 @@ void BaseArrayBase<TYPE>::freeExtra() {
 
 /////////////////////////////////////////////////////////////////////////////
 template<class TYPE>
-void BaseArrayBase<TYPE>::setAtGrow(uint32 nIndex, TYPE newElement) {
+void BaseArrayBase<TYPE>::setAtGrow(int32 nIndex, TYPE newElement) {
 	if (nIndex >= _nSize)
 		setSize(nIndex + 1, -1);
 	_pData[nIndex] = newElement;
@@ -298,20 +298,20 @@ void BaseArrayBase<TYPE>::setAtGrow(uint32 nIndex, TYPE newElement) {
 
 /////////////////////////////////////////////////////////////////////////////
 template<class TYPE>
-void BaseArrayBase<TYPE>::insertAt(uint32 nIndex, TYPE newElement, uint32 nCount /*=1*/) {
+void BaseArrayBase<TYPE>::insertAt(int32 nIndex, TYPE newElement, int32 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
-		uint32 nOldSize = _nSize;
+		int32 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);
 	}
@@ -323,9 +323,9 @@ void BaseArrayBase<TYPE>::insertAt(uint32 nIndex, TYPE newElement, uint32 nCount
 
 /////////////////////////////////////////////////////////////////////////////
 template<class TYPE>
-void BaseArrayBase<TYPE>::removeAt(uint32 nIndex, uint32 nCount) {
+void BaseArrayBase<TYPE>::removeAt(int32 nIndex, int32 nCount) {
 	// just remove a range
-	uint32 nMoveCount = _nSize - (nIndex + nCount);
+	int32 nMoveCount = _nSize - (nIndex + nCount);
 	dcDestructElements<TYPE>(&_pData[nIndex], nCount);
 	if (nMoveCount)
 		memmove(&_pData[nIndex], &_pData[nIndex + nCount], nMoveCount * sizeof(TYPE));
@@ -334,10 +334,10 @@ void BaseArrayBase<TYPE>::removeAt(uint32 nIndex, uint32 nCount) {
 
 /////////////////////////////////////////////////////////////////////////////
 template<class TYPE>
-void BaseArrayBase<TYPE>::insertAt(uint32 nStartIndex, BaseArrayBase *pNewArray) {
+void BaseArrayBase<TYPE>::insertAt(int32 nStartIndex, BaseArrayBase *pNewArray) {
 	if (pNewArray->getSize() > 0) {
 		InsertAt(nStartIndex, pNewArray->getAt(0), pNewArray->getSize());
-		for (uint32 i = 0; i < pNewArray->getSize(); i++)
+		for (int32 i = 0; i < pNewArray->getSize(); i++)
 			setAt(nStartIndex + i, pNewArray->getAt(i));
 	}
 }
@@ -347,17 +347,17 @@ template<class TYPE>
 class BaseArray : public BaseArrayBase<TYPE> {
 public:
 	bool persist(BasePersistenceManager *persistMgr) {
-		uint32 i, j;
+		int32 i, j;
 		if (persistMgr->getIsSaving()) {
 			j = BaseArray::getSize();
-			persistMgr->transferUint32("ArraySize", &j);
+			persistMgr->transferSint32("ArraySize", &j);
 			for (i = 0; i < j; i++) {
 				TYPE obj = BaseArray::getAt(i);
 				persistMgr->transferPtr("", &obj);
 			}
 		} else {
 			BaseArray::setSize(0, -1);
-			persistMgr->transferUint32("ArraySize", &j);
+			persistMgr->transferSint32("ArraySize", &j);
 			for (i = 0; i < j; i++) {
 				TYPE obj = nullptr;
 				persistMgr->transferPtr("", &obj);
@@ -373,17 +373,17 @@ template <>
 class BaseArray<char *> : public BaseArrayBase<char *> {
 public:
 	bool persist(BasePersistenceManager *persistMgr) {
-		uint32 i, j;
+		int32 i, j;
 		if (persistMgr->getIsSaving()) {
 			j = getSize();
-			persistMgr->transferUint32("ArraySize", &j);
+			persistMgr->transferSint32("ArraySize", &j);
 			for (i = 0; i < j; i++) {
 				char *obj = getAt(i);
 				persistMgr->transferCharPtr("", &obj);
 			}
 		} else {
 			setSize(0, -1);
-			persistMgr->transferUint32("ArraySize", &j);
+			persistMgr->transferSint32("ArraySize", &j);
 			for (i = 0; i < j; i++) {
 				char *obj = nullptr;
 				persistMgr->transferCharPtr("", &obj);
@@ -399,17 +399,17 @@ template <>
 class BaseArray<const char *> : public BaseArrayBase<const char *> {
 public:
 	bool persist(BasePersistenceManager *persistMgr) {
-		uint32 i, j;
+		int32 i, j;
 		if (persistMgr->getIsSaving()) {
 			j = getSize();
-			persistMgr->transferUint32("ArraySize", &j);
+			persistMgr->transferSint32("ArraySize", &j);
 			for (i = 0; i < j; i++) {
 				const char * obj = getAt(i);
 				persistMgr->transferConstChar("", &obj);
 			}
 		} else {
 			setSize(0, -1);
-			persistMgr->transferUint32("ArraySize", &j);
+			persistMgr->transferSint32("ArraySize", &j);
 			for (i = 0; i < j; i++) {
 				const char * obj;
 				persistMgr->transferConstChar("", &obj);
diff --git a/engines/wintermute/debugger/debugger_controller.cpp b/engines/wintermute/debugger/debugger_controller.cpp
index bdc9730f634..29d737f7d9b 100644
--- a/engines/wintermute/debugger/debugger_controller.cpp
+++ b/engines/wintermute/debugger/debugger_controller.cpp
@@ -311,7 +311,7 @@ Listing* DebuggerController::getListing(Error* &error) {
 Common::Array<TopEntry> DebuggerController::getTop() const {
 	Common::Array<TopEntry> res;
 	assert(SCENGINE);
-	for (uint i = 0; i < SCENGINE->_scripts.getSize(); i++) {
+	for (int32 i = 0; i < SCENGINE->_scripts.getSize(); i++) {
 		TopEntry entry;
 		entry.filename = SCENGINE->_scripts[i]->_filename;
 		entry.current = (SCENGINE->_scripts[i] == SCENGINE->_currentScript);
diff --git a/engines/wintermute/ext/wme_shadowmanager.cpp b/engines/wintermute/ext/wme_shadowmanager.cpp
index 75614e099f5..d31ce9bd940 100644
--- a/engines/wintermute/ext/wme_shadowmanager.cpp
+++ b/engines/wintermute/ext/wme_shadowmanager.cpp
@@ -419,7 +419,7 @@ void SXShadowManager::run() {
 	AdGame *adGame = (AdGame *)_gameRef;
 	if (!adGame->_scene || !adGame->_scene->_geom)
 		return;
-	for (uint32 l = 0; l < adGame->_scene->_geom->_lights.getSize(); l++) {
+	for (int32 l = 0; l < adGame->_scene->_geom->_lights.getSize(); l++) {
 		auto light = adGame->_scene->_geom->_lights[l];
 		_lights.push_back(Common::Pair<Light3D *, bool>(light, true));
 	}
diff --git a/engines/wintermute/ui/ui_button.cpp b/engines/wintermute/ui/ui_button.cpp
index b76da114d4f..5c895f8b5e3 100644
--- a/engines/wintermute/ui/ui_button.cpp
+++ b/engines/wintermute/ui/ui_button.cpp
@@ -577,7 +577,7 @@ bool UIButton::saveAsText(BaseDynamicBuffer *buffer, int indent) {
 	buffer->putTextIndent(indent + 2, "\n");
 
 	// scripts
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		buffer->putTextIndent(indent + 2, "SCRIPT=\"%s\"\n", _scripts[i]->_filename);
 	}
 
diff --git a/engines/wintermute/ui/ui_edit.cpp b/engines/wintermute/ui/ui_edit.cpp
index 76f27bd7c2b..a9647aa3a8a 100644
--- a/engines/wintermute/ui/ui_edit.cpp
+++ b/engines/wintermute/ui/ui_edit.cpp
@@ -363,7 +363,7 @@ bool UIEdit::saveAsText(BaseDynamicBuffer *buffer, int indent) {
 	buffer->putTextIndent(indent + 2, "PARENT_NOTIFY=%s\n", _parentNotify ? "TRUE" : "FALSE");
 
 	// scripts
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		buffer->putTextIndent(indent + 2, "SCRIPT=\"%s\"\n", _scripts[i]->_filename);
 	}
 
diff --git a/engines/wintermute/ui/ui_entity.cpp b/engines/wintermute/ui/ui_entity.cpp
index 5a8767ae2e8..a4eadf797dc 100644
--- a/engines/wintermute/ui/ui_entity.cpp
+++ b/engines/wintermute/ui/ui_entity.cpp
@@ -204,7 +204,7 @@ bool UIEntity::saveAsText(BaseDynamicBuffer *buffer, int indent) {
 	buffer->putTextIndent(indent + 2, "\n");
 
 	// scripts
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		buffer->putTextIndent(indent + 2, "SCRIPT=\"%s\"\n", _scripts[i]->_filename);
 	}
 
diff --git a/engines/wintermute/ui/ui_object.cpp b/engines/wintermute/ui/ui_object.cpp
index d288fa30afd..586f309e613 100644
--- a/engines/wintermute/ui/ui_object.cpp
+++ b/engines/wintermute/ui/ui_object.cpp
@@ -250,7 +250,7 @@ bool UIObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
 		if (_parent && _parent->_type == UI_WINDOW) {
 			UIWindow *win = (UIWindow *)_parent;
 
-			uint32 i;
+			int32 i;
 			bool found = false;
 			ScValue *val = stack->pop();
 			// find directly
@@ -276,7 +276,7 @@ bool UIObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
 
 			if (found) {
 				bool done = false;
-				for (uint32 j = 0; j < win->_widgets.getSize(); j++) {
+				for (int32 j = 0; j < win->_widgets.getSize(); j++) {
 					if (win->_widgets[j] == this) {
 						if (strcmp(name, "MoveAfter") == 0) {
 							i++;
@@ -315,7 +315,7 @@ bool UIObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
 
 		if (_parent && _parent->_type == UI_WINDOW) {
 			UIWindow *win = (UIWindow *)_parent;
-			for (uint32 i = 0; i < win->_widgets.getSize(); i++) {
+			for (int32 i = 0; i < win->_widgets.getSize(); i++) {
 				if (win->_widgets[i] == this) {
 					win->_widgets.removeAt(i);
 					win->_widgets.insertAt(0, this);
@@ -338,7 +338,7 @@ bool UIObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
 
 		if (_parent && _parent->_type == UI_WINDOW) {
 			UIWindow *win = (UIWindow *)_parent;
-			for (uint32 i = 0; i < win->_widgets.getSize(); i++) {
+			for (int32 i = 0; i < win->_widgets.getSize(); i++) {
 				if (win->_widgets[i] == this) {
 					win->_widgets.removeAt(i);
 					win->_widgets.add(this);
@@ -440,7 +440,7 @@ ScValue *UIObject::scGetProperty(const Common::String &name) {
 		_scValue->setNULL();
 		if (_parent && _parent->_type == UI_WINDOW) {
 			UIWindow *win = (UIWindow *)_parent;
-			for (uint32 i = 0; i < win->_widgets.getSize(); i++) {
+			for (int32 i = 0; i < win->_widgets.getSize(); i++) {
 				if (win->_widgets[i] == this) {
 					if (name == "NextSibling") {
 						if (i < win->_widgets.getSize() - 1) {
diff --git a/engines/wintermute/ui/ui_text.cpp b/engines/wintermute/ui/ui_text.cpp
index 581b84cb074..361c6d0b0fc 100644
--- a/engines/wintermute/ui/ui_text.cpp
+++ b/engines/wintermute/ui/ui_text.cpp
@@ -389,7 +389,7 @@ bool UIText::saveAsText(BaseDynamicBuffer *buffer, int indent) {
 	buffer->putTextIndent(indent + 2, "\n");
 
 	// scripts
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		buffer->putTextIndent(indent + 2, "SCRIPT=\"%s\"\n", _scripts[i]->_filename);
 	}
 
diff --git a/engines/wintermute/ui/ui_window.cpp b/engines/wintermute/ui/ui_window.cpp
index 4097c97b051..51d873d99d2 100644
--- a/engines/wintermute/ui/ui_window.cpp
+++ b/engines/wintermute/ui/ui_window.cpp
@@ -111,7 +111,7 @@ void UIWindow::cleanup() {
 		delete _imageInactive;
 	}
 
-	for (uint32 i = 0; i < _widgets.getSize(); i++) {
+	for (int32 i = 0; i < _widgets.getSize(); i++) {
 		delete _widgets[i];
 	}
 	_widgets.removeAll();
@@ -218,7 +218,7 @@ bool UIWindow::display(int offsetX, int offsetY) {
 		_gameRef->_renderer->addRectToList(new BaseActiveRect(_gameRef,  this, nullptr, _posX + offsetX, _posY + offsetY, _width, _height, 100, 100, false));
 	}
 
-	for (uint32 i = 0; i < _widgets.getSize(); i++) {
+	for (int32 i = 0; i < _widgets.getSize(); i++) {
 		_widgets[i]->display(_posX + offsetX, _posY + offsetY);
 	}
 
@@ -718,7 +718,7 @@ bool UIWindow::saveAsText(BaseDynamicBuffer *buffer, int indent) {
 	buffer->putTextIndent(indent + 2, "\n");
 
 	// scripts
-	for (uint32 i = 0; i < _scripts.getSize(); i++) {
+	for (int32 i = 0; i < _scripts.getSize(); i++) {
 		buffer->putTextIndent(indent + 2, "SCRIPT=\"%s\"\n", _scripts[i]->_filename);
 	}
 
@@ -728,7 +728,7 @@ bool UIWindow::saveAsText(BaseDynamicBuffer *buffer, int indent) {
 	BaseClass::saveAsText(buffer, indent + 2);
 
 	// controls
-	for (uint32 i = 0; i < _widgets.getSize(); i++) {
+	for (int32 i = 0; i < _widgets.getSize(); i++) {
 		_widgets[i]->saveAsText(buffer, indent + 2);
 	}
 
@@ -739,7 +739,7 @@ bool UIWindow::saveAsText(BaseDynamicBuffer *buffer, int indent) {
 
 //////////////////////////////////////////////////////////////////////////
 bool UIWindow::enableWidget(const char *name, bool enable) {
-	for (uint32 i = 0; i < _widgets.getSize(); i++) {
+	for (int32 i = 0; i < _widgets.getSize(); i++) {
 		if (scumm_stricmp(_widgets[i]->getName(), name) == 0) {
 			_widgets[i]->setDisabled(!enable);
 		}
@@ -750,7 +750,7 @@ bool UIWindow::enableWidget(const char *name, bool enable) {
 
 //////////////////////////////////////////////////////////////////////////
 bool UIWindow::showWidget(const char *name, bool visible) {
-	for (uint32 i = 0; i < _widgets.getSize(); i++) {
+	for (int32 i = 0; i < _widgets.getSize(); i++) {
 		if (scumm_stricmp(_widgets[i]->getName(), name) == 0) {
 			_widgets[i]->setVisible(visible);
 		}
@@ -771,13 +771,13 @@ bool UIWindow::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
 		ScValue *val = stack->pop();
 		if (val->getType() == VAL_INT) {
 			int widget = val->getInt();
-			if (widget < 0 || widget >= (int32)_widgets.getSize()) {
+			if (widget < 0 || widget >= _widgets.getSize()) {
 				stack->pushNULL();
 			} else {
 				stack->pushNative(_widgets[widget], true);
 			}
 		} else {
-			for (uint32 i = 0; i < _widgets.getSize(); i++) {
+			for (int32 i = 0; i < _widgets.getSize(); i++) {
 				if (scumm_stricmp(_widgets[i]->getName(), val->getString()) == 0) {
 					stack->pushNative(_widgets[i], true);
 					return STATUS_OK;
@@ -996,7 +996,7 @@ bool UIWindow::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
 		ScValue *val = stack->pop();
 		UIObject *obj = (UIObject *)val->getNative();
 
-		for (uint32 i = 0; i < _widgets.getSize(); i++) {
+		for (int32 i = 0; i < _widgets.getSize(); i++) {
 			if (_widgets[i] == obj) {
 				delete _widgets[i];
 				_widgets.removeAt(i);
@@ -1291,7 +1291,7 @@ bool UIWindow::persist(BasePersistenceManager *persistMgr) {
 bool UIWindow::moveFocus(bool forward) {
 	int i;
 	bool found = false;
-	for (i = 0; i < (int32)_widgets.getSize(); i++) {
+	for (i = 0; i < _widgets.getSize(); i++) {
 		if (_widgets[i] == _focusedWidget) {
 			found = true;
 			break;
@@ -1312,7 +1312,7 @@ bool UIWindow::moveFocus(bool forward) {
 	int numTries = 0;
 	bool done = false;
 
-	while (numTries <= (int32)_widgets.getSize()) {
+	while (numTries <= _widgets.getSize()) {
 		if (_widgets[i] != _focusedWidget && _widgets[i]->canFocus() && _widgets[i]->isVisible() && !_widgets[i]->isDisabled()) {
 			_focusedWidget = _widgets[i];
 			done = true;
@@ -1321,7 +1321,7 @@ bool UIWindow::moveFocus(bool forward) {
 
 		if (forward) {
 			i++;
-			if (i >= (int32)_widgets.getSize()) {
+			if (i >= _widgets.getSize()) {
 				i = 0;
 			}
 		} else {
@@ -1411,7 +1411,7 @@ bool UIWindow::listen(BaseScriptHolder *param1, uint32 param2) {
 
 //////////////////////////////////////////////////////////////////////////
 void UIWindow::makeFreezable(bool freezable) {
-	for (uint32 i = 0; i < _widgets.getSize(); i++) {
+	for (int32 i = 0; i < _widgets.getSize(); i++) {
 		_widgets[i]->makeFreezable(freezable);
 	}
 
@@ -1421,7 +1421,7 @@ void UIWindow::makeFreezable(bool freezable) {
 
 //////////////////////////////////////////////////////////////////////////
 bool UIWindow::getWindowObjects(BaseArray<UIObject *> &objects, bool interactiveOnly) {
-	for (uint32 i = 0; i < _widgets.getSize(); i++) {
+	for (int32 i = 0; i < _widgets.getSize(); i++) {
 		UIObject *control = _widgets[i];
 		if (control->isDisabled() && interactiveOnly) {
 			continue;




More information about the Scummvm-git-logs mailing list