[Scummvm-cvs-logs] scummvm master -> c0f9455b281d62e8089c47ddbed04135c6ed5f20

somaen einarjohants at gmail.com
Tue Nov 5 14:03:38 CET 2013


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

Summary:
7892188bcf WINTERMUTE: Transfer Uint32s explicitly when saving/loading.
d07409def7 WINTERMUTE: Transfer Sint32s explicitly when saving/loading.
237d3d86ec WINTERMUTE: Transfer Char* explicitly when saving/loading.
4e2bec5311 WINTERMUTE: Transfer Const Char* explicitly when saving/loading.
cc33cf74ae WINTERMUTE: Transfer Common::Strings explicitly when saving/loading.
c0f9455b28 WINTERMUTE: Remove unused transfer-function. (AnsiStringArray).


Commit: 7892188bcf45ec7eaeee9eed1c92b84839c1224b
    https://github.com/scummvm/scummvm/commit/7892188bcf45ec7eaeee9eed1c92b84839c1224b
Author: Einar Johan Trøan Sømåen (einarjohants at gmail.com)
Date: 2013-11-05T04:31:13-08:00

Commit Message:
WINTERMUTE: Transfer Uint32s explicitly when saving/loading.

Changed paths:
    engines/wintermute/ad/ad_node_state.cpp
    engines/wintermute/ad/ad_region.cpp
    engines/wintermute/ad/ad_scene.cpp
    engines/wintermute/ad/ad_sentence.cpp
    engines/wintermute/ad/ad_talk_node.cpp
    engines/wintermute/base/base_fader.cpp
    engines/wintermute/base/base_frame.cpp
    engines/wintermute/base/base_game.cpp
    engines/wintermute/base/base_game_music.cpp
    engines/wintermute/base/base_keyboard_state.cpp
    engines/wintermute/base/base_object.cpp
    engines/wintermute/base/base_persistence_manager.cpp
    engines/wintermute/base/base_persistence_manager.h
    engines/wintermute/base/base_sprite.cpp
    engines/wintermute/base/base_sub_frame.cpp
    engines/wintermute/base/font/base_font_truetype.h
    engines/wintermute/base/particles/part_emitter.cpp
    engines/wintermute/base/particles/part_particle.cpp
    engines/wintermute/base/scriptables/script.cpp
    engines/wintermute/base/scriptables/script_ext_file.cpp
    engines/wintermute/base/sound/base_sound.cpp
    engines/wintermute/base/timer.cpp
    engines/wintermute/ui/ui_edit.cpp
    engines/wintermute/ui/ui_object.cpp
    engines/wintermute/ui/ui_window.cpp
    engines/wintermute/video/video_theora_player.cpp



diff --git a/engines/wintermute/ad/ad_node_state.cpp b/engines/wintermute/ad/ad_node_state.cpp
index 193aa75..8793c40 100644
--- a/engines/wintermute/ad/ad_node_state.cpp
+++ b/engines/wintermute/ad/ad_node_state.cpp
@@ -99,7 +99,7 @@ bool AdNodeState::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transfer(TMEMBER(_name));
 	persistMgr->transfer(TMEMBER(_filename));
 	persistMgr->transfer(TMEMBER(_cursor));
-	persistMgr->transfer(TMEMBER(_alphaColor));
+	persistMgr->transferUint32(TMEMBER(_alphaColor));
 	for (int i = 0; i < 7; i++) {
 		persistMgr->transfer(TMEMBER(_caption[i]));
 	}
diff --git a/engines/wintermute/ad/ad_region.cpp b/engines/wintermute/ad/ad_region.cpp
index 215ec49..2e8e73a 100644
--- a/engines/wintermute/ad/ad_region.cpp
+++ b/engines/wintermute/ad/ad_region.cpp
@@ -401,7 +401,7 @@ bool AdRegion::saveAsText(BaseDynamicBuffer *buffer, int indent) {
 bool AdRegion::persist(BasePersistenceManager *persistMgr) {
 	BaseRegion::persist(persistMgr);
 
-	persistMgr->transfer(TMEMBER(_alpha));
+	persistMgr->transferUint32(TMEMBER(_alpha));
 	persistMgr->transferBool(TMEMBER(_blocked));
 	persistMgr->transferBool(TMEMBER(_decoration));
 	persistMgr->transferFloat(TMEMBER(_zoom));
diff --git a/engines/wintermute/ad/ad_scene.cpp b/engines/wintermute/ad/ad_scene.cpp
index 296ef43..fddd7f8 100644
--- a/engines/wintermute/ad/ad_scene.cpp
+++ b/engines/wintermute/ad/ad_scene.cpp
@@ -2301,18 +2301,18 @@ bool AdScene::persist(BasePersistenceManager *persistMgr) {
 	BaseObject::persist(persistMgr);
 
 	persistMgr->transferBool(TMEMBER(_autoScroll));
-	persistMgr->transfer(TMEMBER(_editorColBlocked));
-	persistMgr->transfer(TMEMBER(_editorColBlockedSel));
-	persistMgr->transfer(TMEMBER(_editorColDecor));
-	persistMgr->transfer(TMEMBER(_editorColDecorSel));
-	persistMgr->transfer(TMEMBER(_editorColEntity));
-	persistMgr->transfer(TMEMBER(_editorColEntitySel));
-	persistMgr->transfer(TMEMBER(_editorColFrame));
-	persistMgr->transfer(TMEMBER(_editorColRegion));
-	persistMgr->transfer(TMEMBER(_editorColRegionSel));
-	persistMgr->transfer(TMEMBER(_editorColScale));
-	persistMgr->transfer(TMEMBER(_editorColWaypoints));
-	persistMgr->transfer(TMEMBER(_editorColWaypointsSel));
+	persistMgr->transferUint32(TMEMBER(_editorColBlocked));
+	persistMgr->transferUint32(TMEMBER(_editorColBlockedSel));
+	persistMgr->transferUint32(TMEMBER(_editorColDecor));
+	persistMgr->transferUint32(TMEMBER(_editorColDecorSel));
+	persistMgr->transferUint32(TMEMBER(_editorColEntity));
+	persistMgr->transferUint32(TMEMBER(_editorColEntitySel));
+	persistMgr->transferUint32(TMEMBER(_editorColFrame));
+	persistMgr->transferUint32(TMEMBER(_editorColRegion));
+	persistMgr->transferUint32(TMEMBER(_editorColRegionSel));
+	persistMgr->transferUint32(TMEMBER(_editorColScale));
+	persistMgr->transferUint32(TMEMBER(_editorColWaypoints));
+	persistMgr->transferUint32(TMEMBER(_editorColWaypointsSel));
 	persistMgr->transfer(TMEMBER(_editorMarginH));
 	persistMgr->transfer(TMEMBER(_editorMarginV));
 	persistMgr->transferBool(TMEMBER(_editorShowBlocked));
@@ -2323,8 +2323,8 @@ bool AdScene::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferPtr(TMEMBER_PTR(_fader));
 	persistMgr->transfer(TMEMBER(_height));
 	persistMgr->transferBool(TMEMBER(_initialized));
-	persistMgr->transfer(TMEMBER(_lastTimeH));
-	persistMgr->transfer(TMEMBER(_lastTimeV));
+	persistMgr->transferUint32(TMEMBER(_lastTimeH));
+	persistMgr->transferUint32(TMEMBER(_lastTimeV));
 	_layers.persist(persistMgr);
 	persistMgr->transferPtr(TMEMBER_PTR(_mainLayer));
 	_objects.persist(persistMgr);
@@ -2333,7 +2333,7 @@ bool AdScene::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferBool(TMEMBER(_paralaxScrolling));
 	persistMgr->transferBool(TMEMBER(_persistentState));
 	persistMgr->transferBool(TMEMBER(_persistentStateSprites));
-	persistMgr->transfer(TMEMBER(_pfMaxTime));
+	persistMgr->transferUint32(TMEMBER(_pfMaxTime));
 	_pfPath.persist(persistMgr);
 	persistMgr->transfer(TMEMBER(_pfPointsNum));
 	persistMgr->transferBool(TMEMBER(_pfReady));
@@ -2344,8 +2344,8 @@ bool AdScene::persist(BasePersistenceManager *persistMgr) {
 	_scaleLevels.persist(persistMgr);
 	persistMgr->transfer(TMEMBER(_scrollPixelsH));
 	persistMgr->transfer(TMEMBER(_scrollPixelsV));
-	persistMgr->transfer(TMEMBER(_scrollTimeH));
-	persistMgr->transfer(TMEMBER(_scrollTimeV));
+	persistMgr->transferUint32(TMEMBER(_scrollTimeH));
+	persistMgr->transferUint32(TMEMBER(_scrollTimeV));
 	persistMgr->transferPtr(TMEMBER_PTR(_shieldWindow));
 	persistMgr->transfer(TMEMBER(_targetOffsetLeft));
 	persistMgr->transfer(TMEMBER(_targetOffsetTop));
diff --git a/engines/wintermute/ad/ad_sentence.cpp b/engines/wintermute/ad/ad_sentence.cpp
index 773181b..a43cac6 100644
--- a/engines/wintermute/ad/ad_sentence.cpp
+++ b/engines/wintermute/ad/ad_sentence.cpp
@@ -253,13 +253,13 @@ bool AdSentence::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transfer(TMEMBER(_currentStance));
 	persistMgr->transferPtr(TMEMBER_PTR(_currentSprite));
 	persistMgr->transfer(TMEMBER(_currentSkelAnim));
-	persistMgr->transfer(TMEMBER(_duration));
+	persistMgr->transferUint32(TMEMBER(_duration));
 	persistMgr->transferPtr(TMEMBER_PTR(_font));
 	persistMgr->transferPoint32(TMEMBER(_pos));
 	persistMgr->transferPtr(TMEMBER_PTR(_sound));
 	persistMgr->transferBool(TMEMBER(_soundStarted));
 	persistMgr->transfer(TMEMBER(_stances));
-	persistMgr->transfer(TMEMBER(_startTime));
+	persistMgr->transferUint32(TMEMBER(_startTime));
 	persistMgr->transferPtr(TMEMBER_PTR(_talkDef));
 	persistMgr->transfer(TMEMBER(_tempStance));
 	persistMgr->transfer(TMEMBER(_text));
diff --git a/engines/wintermute/ad/ad_talk_node.cpp b/engines/wintermute/ad/ad_talk_node.cpp
index b9be62e..2afaaec 100644
--- a/engines/wintermute/ad/ad_talk_node.cpp
+++ b/engines/wintermute/ad/ad_talk_node.cpp
@@ -192,8 +192,8 @@ bool AdTalkNode::loadBuffer(char *buffer, bool complete) {
 //////////////////////////////////////////////////////////////////////////
 bool AdTalkNode::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transfer(TMEMBER(_comment));
-	persistMgr->transfer(TMEMBER(_startTime));
-	persistMgr->transfer(TMEMBER(_endTime));
+	persistMgr->transferUint32(TMEMBER(_startTime));
+	persistMgr->transferUint32(TMEMBER(_endTime));
 	persistMgr->transferBool(TMEMBER(_playToEnd));
 	persistMgr->transferPtr(TMEMBER_PTR(_sprite));
 	persistMgr->transfer(TMEMBER(_spriteFilename));
diff --git a/engines/wintermute/base/base_fader.cpp b/engines/wintermute/base/base_fader.cpp
index b5590ab..c7dac8b 100644
--- a/engines/wintermute/base/base_fader.cpp
+++ b/engines/wintermute/base/base_fader.cpp
@@ -178,11 +178,11 @@ bool BaseFader::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferBool(TMEMBER(_active));
 	persistMgr->transferByte(TMEMBER(_blue));
 	persistMgr->transferByte(TMEMBER(_currentAlpha));
-	persistMgr->transfer(TMEMBER(_duration));
+	persistMgr->transferUint32(TMEMBER(_duration));
 	persistMgr->transferByte(TMEMBER(_green));
 	persistMgr->transferByte(TMEMBER(_red));
 	persistMgr->transferByte(TMEMBER(_sourceAlpha));
-	persistMgr->transfer(TMEMBER(_startTime));
+	persistMgr->transferUint32(TMEMBER(_startTime));
 	persistMgr->transferByte(TMEMBER(_targetAlpha));
 	persistMgr->transferBool(TMEMBER(_system));
 
diff --git a/engines/wintermute/base/base_frame.cpp b/engines/wintermute/base/base_frame.cpp
index 2e37122..8c87cfb 100644
--- a/engines/wintermute/base/base_frame.cpp
+++ b/engines/wintermute/base/base_frame.cpp
@@ -414,7 +414,7 @@ bool BaseFrame::persist(BasePersistenceManager *persistMgr) {
 	BaseScriptable::persist(persistMgr);
 
 	_applyEvent.persist(persistMgr);
-	persistMgr->transfer(TMEMBER(_delay));
+	persistMgr->transferUint32(TMEMBER(_delay));
 	persistMgr->transferBool(TMEMBER(_editorExpanded));
 	persistMgr->transferBool(TMEMBER(_keyframe));
 	persistMgr->transferBool(TMEMBER(_killSound));
diff --git a/engines/wintermute/base/base_game.cpp b/engines/wintermute/base/base_game.cpp
index 033f019..d4ecca0 100644
--- a/engines/wintermute/base/base_game.cpp
+++ b/engines/wintermute/base/base_game.cpp
@@ -3061,7 +3061,7 @@ bool BaseGame::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferPtr(TMEMBER_PTR(_fontStorage));
 	persistMgr->transferBool(TMEMBER(_interactive));
 	persistMgr->transferPtr(TMEMBER_PTR(_keyboardState));
-	persistMgr->transfer(TMEMBER(_lastTime));
+	persistMgr->transferUint32(TMEMBER(_lastTime));
 	persistMgr->transferPtr(TMEMBER_PTR(_mainObject));
 	_musicSystem->persistChannels(persistMgr);
 	_musicSystem->persistCrossfadeSettings(persistMgr);
@@ -3107,7 +3107,7 @@ bool BaseGame::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferBool(TMEMBER(_autorunDisabled));
 
 	persistMgr->transferBool(TMEMBER(_autoSaveOnExit));
-	persistMgr->transfer(TMEMBER(_autoSaveSlot));
+	persistMgr->transferUint32(TMEMBER(_autoSaveSlot));
 	persistMgr->transferBool(TMEMBER(_cursorHidden));
 
 	if (!persistMgr->getIsSaving()) {
diff --git a/engines/wintermute/base/base_game_music.cpp b/engines/wintermute/base/base_game_music.cpp
index 9462757..a401da2 100644
--- a/engines/wintermute/base/base_game_music.cpp
+++ b/engines/wintermute/base/base_game_music.cpp
@@ -215,15 +215,15 @@ bool BaseGameMusic::updateMusicCrossfade() {
 bool BaseGameMusic::persistChannels(BasePersistenceManager *persistMgr) {
 	for (int i = 0; i < NUM_MUSIC_CHANNELS; i++) {
 		persistMgr->transferPtr(TMEMBER_PTR(_music[i]));
-		persistMgr->transfer(TMEMBER(_musicStartTime[i]));
+		persistMgr->transferUint32(TMEMBER(_musicStartTime[i]));
 	}
 	return true;
 }
 
 bool BaseGameMusic::persistCrossfadeSettings(BasePersistenceManager *persistMgr) {
 	persistMgr->transferBool(TMEMBER(_musicCrossfadeRunning));
-	persistMgr->transfer(TMEMBER(_musicCrossfadeStartTime));
-	persistMgr->transfer(TMEMBER(_musicCrossfadeLength));
+	persistMgr->transferUint32(TMEMBER(_musicCrossfadeStartTime));
+	persistMgr->transferUint32(TMEMBER(_musicCrossfadeLength));
 	persistMgr->transfer(TMEMBER(_musicCrossfadeChannel1));
 	persistMgr->transfer(TMEMBER(_musicCrossfadeChannel2));
 	persistMgr->transferBool(TMEMBER(_musicCrossfadeSwap));
diff --git a/engines/wintermute/base/base_keyboard_state.cpp b/engines/wintermute/base/base_keyboard_state.cpp
index 014802d..785af64 100644
--- a/engines/wintermute/base/base_keyboard_state.cpp
+++ b/engines/wintermute/base/base_keyboard_state.cpp
@@ -222,9 +222,9 @@ bool BaseKeyboardState::persist(BasePersistenceManager *persistMgr) {
 	BaseScriptable::persist(persistMgr);
 
 	persistMgr->transferBool(TMEMBER(_currentAlt));
-	persistMgr->transfer(TMEMBER(_currentCharCode));
+	persistMgr->transferUint32(TMEMBER(_currentCharCode));
 	persistMgr->transferBool(TMEMBER(_currentControl));
-	persistMgr->transfer(TMEMBER(_currentKeyData));
+	persistMgr->transferUint32(TMEMBER(_currentKeyData));
 	persistMgr->transferBool(TMEMBER(_currentPrintable));
 	persistMgr->transferBool(TMEMBER(_currentShift));
 
diff --git a/engines/wintermute/base/base_object.cpp b/engines/wintermute/base/base_object.cpp
index 14e15b7..802edfc 100644
--- a/engines/wintermute/base/base_object.cpp
+++ b/engines/wintermute/base/base_object.cpp
@@ -956,7 +956,7 @@ bool BaseObject::persist(BasePersistenceManager *persistMgr) {
 		persistMgr->transfer(TMEMBER(_caption[i]));
 	}
 	persistMgr->transferPtr(TMEMBER_PTR(_activeCursor));
-	persistMgr->transfer(TMEMBER(_alphaColor));
+	persistMgr->transferUint32(TMEMBER(_alphaColor));
 	persistMgr->transferBool(TMEMBER(_autoSoundPanning));
 	persistMgr->transferPtr(TMEMBER_PTR(_cursor));
 	persistMgr->transferBool(TMEMBER(_sharedCursors));
@@ -972,7 +972,7 @@ bool BaseObject::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferBool(TMEMBER(_rotatable));
 	persistMgr->transferFloat(TMEMBER(_scale));
 	persistMgr->transferPtr(TMEMBER_PTR(_sFX));
-	persistMgr->transfer(TMEMBER(_sFXStart));
+	persistMgr->transferUint32(TMEMBER(_sFXStart));
 	persistMgr->transfer(TMEMBER(_sFXVolume));
 	persistMgr->transferBool(TMEMBER(_ready));
 	persistMgr->transferRect32(TMEMBER(_rect));
diff --git a/engines/wintermute/base/base_persistence_manager.cpp b/engines/wintermute/base/base_persistence_manager.cpp
index 1caa0ad..1ee4b24 100644
--- a/engines/wintermute/base/base_persistence_manager.cpp
+++ b/engines/wintermute/base/base_persistence_manager.cpp
@@ -625,7 +625,7 @@ bool BasePersistenceManager::transfer(const char *name, int32 *val) {
 
 //////////////////////////////////////////////////////////////////////////
 // DWORD
-bool BasePersistenceManager::transfer(const char *name, uint32 *val) {
+bool BasePersistenceManager::transferUint32(const char *name, uint32 *val) {
 	if (_saving) {
 		_saveStream->writeUint32LE(*val);
 		if (_saveStream->err()) {
diff --git a/engines/wintermute/base/base_persistence_manager.h b/engines/wintermute/base/base_persistence_manager.h
index 03316d9..9d39670 100644
--- a/engines/wintermute/base/base_persistence_manager.h
+++ b/engines/wintermute/base/base_persistence_manager.h
@@ -75,7 +75,7 @@ public:
 
 	bool transferPtr(const char *name, void *val);
 	bool transfer(const char *name, int32 *val);
-	bool transfer(const char *name, uint32 *val);
+	bool transferUint32(const char *name, uint32 *val);
 	bool transferFloat(const char *name, float *val);
 	bool transferDouble(const char *name, double *val);
 	bool transferBool(const char *name, bool *val);
diff --git a/engines/wintermute/base/base_sprite.cpp b/engines/wintermute/base/base_sprite.cpp
index df696f2..afc3312 100644
--- a/engines/wintermute/base/base_sprite.cpp
+++ b/engines/wintermute/base/base_sprite.cpp
@@ -535,7 +535,7 @@ bool BaseSprite::persist(BasePersistenceManager *persistMgr) {
 
 	_frames.persist(persistMgr);
 
-	persistMgr->transfer(TMEMBER(_lastFrameTime));
+	persistMgr->transferUint32(TMEMBER(_lastFrameTime));
 	persistMgr->transferBool(TMEMBER(_looping));
 	persistMgr->transfer(TMEMBER(_moveX));
 	persistMgr->transfer(TMEMBER(_moveY));
diff --git a/engines/wintermute/base/base_sub_frame.cpp b/engines/wintermute/base/base_sub_frame.cpp
index 490a994..e214ef9 100644
--- a/engines/wintermute/base/base_sub_frame.cpp
+++ b/engines/wintermute/base/base_sub_frame.cpp
@@ -386,7 +386,7 @@ bool BaseSubFrame::persist(BasePersistenceManager *persistMgr) {
 
 	persistMgr->transferBool(TMEMBER(_2DOnly));
 	persistMgr->transferBool(TMEMBER(_3DOnly));
-	persistMgr->transfer(TMEMBER(_alpha));
+	persistMgr->transferUint32(TMEMBER(_alpha));
 	persistMgr->transferBool(TMEMBER(_decoration));
 	persistMgr->transferBool(TMEMBER(_editorSelected));
 	persistMgr->transfer(TMEMBER(_hotspotX));
@@ -404,7 +404,7 @@ bool BaseSubFrame::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferBool(TMEMBER(_keepLoaded));
 	persistMgr->transferBool(TMEMBER(_mirrorX));
 	persistMgr->transferBool(TMEMBER(_mirrorY));
-	persistMgr->transfer(TMEMBER(_transparent));
+	persistMgr->transferUint32(TMEMBER(_transparent));
 
 	return STATUS_OK;
 }
diff --git a/engines/wintermute/base/font/base_font_truetype.h b/engines/wintermute/base/font/base_font_truetype.h
index 9e0a082..47b9edd 100644
--- a/engines/wintermute/base/font/base_font_truetype.h
+++ b/engines/wintermute/base/font/base_font_truetype.h
@@ -86,7 +86,7 @@ public:
 		bool persist(BasePersistenceManager *persistMgr) {
 			persistMgr->transfer(TMEMBER(_offsetX));
 			persistMgr->transfer(TMEMBER(_offsetY));
-			persistMgr->transfer(TMEMBER(_color));
+			persistMgr->transferUint32(TMEMBER(_color));
 			return STATUS_OK;
 		}
 
diff --git a/engines/wintermute/base/particles/part_emitter.cpp b/engines/wintermute/base/particles/part_emitter.cpp
index c5c049a..bd59a7a 100644
--- a/engines/wintermute/base/particles/part_emitter.cpp
+++ b/engines/wintermute/base/particles/part_emitter.cpp
@@ -1219,12 +1219,12 @@ bool PartEmitter::persist(BasePersistenceManager *persistMgr) {
 	uint32 numForces;
 	if (persistMgr->getIsSaving()) {
 		numForces = _forces.size();
-		persistMgr->transfer(TMEMBER(numForces));
+		persistMgr->transferUint32(TMEMBER(numForces));
 		for (uint32 i = 0; i < _forces.size(); i++) {
 			_forces[i]->persist(persistMgr);
 		}
 	} else {
-		persistMgr->transfer(TMEMBER(numForces));
+		persistMgr->transferUint32(TMEMBER(numForces));
 		for (uint32 i = 0; i < numForces; i++) {
 			PartForce *force = new PartForce(_gameRef);
 			force->persist(persistMgr);
@@ -1235,12 +1235,12 @@ bool PartEmitter::persist(BasePersistenceManager *persistMgr) {
 	uint32 numParticles;
 	if (persistMgr->getIsSaving()) {
 		numParticles = _particles.size();
-		persistMgr->transfer(TMEMBER(numParticles));
+		persistMgr->transferUint32(TMEMBER(numParticles));
 		for (uint32 i = 0; i < _particles.size(); i++) {
 			_particles[i]->persist(persistMgr);
 		}
 	} else {
-		persistMgr->transfer(TMEMBER(numParticles));
+		persistMgr->transferUint32(TMEMBER(numParticles));
 		for (uint32 i = 0; i < numParticles; i++) {
 			PartParticle *particle = new PartParticle(_gameRef);
 			particle->persist(persistMgr);
diff --git a/engines/wintermute/base/particles/part_particle.cpp b/engines/wintermute/base/particles/part_particle.cpp
index c5bf0f8..62faf73 100644
--- a/engines/wintermute/base/particles/part_particle.cpp
+++ b/engines/wintermute/base/particles/part_particle.cpp
@@ -237,11 +237,11 @@ bool PartParticle::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferFloat(TMEMBER(_posZ));
 	persistMgr->transferVector2(TMEMBER(_velocity));
 	persistMgr->transferFloat(TMEMBER(_scale));
-	persistMgr->transfer(TMEMBER(_creationTime));
+	persistMgr->transferUint32(TMEMBER(_creationTime));
 	persistMgr->transfer(TMEMBER(_lifeTime));
 	persistMgr->transferBool(TMEMBER(_isDead));
 	persistMgr->transfer(TMEMBER_INT(_state));
-	persistMgr->transfer(TMEMBER(_fadeStart));
+	persistMgr->transferUint32(TMEMBER(_fadeStart));
 	persistMgr->transfer(TMEMBER(_fadeTime));
 	persistMgr->transfer(TMEMBER(_currentAlpha));
 	persistMgr->transferFloat(TMEMBER(_angVelocity));
diff --git a/engines/wintermute/base/scriptables/script.cpp b/engines/wintermute/base/scriptables/script.cpp
index 49152ec..e3f8219 100644
--- a/engines/wintermute/base/scriptables/script.cpp
+++ b/engines/wintermute/base/scriptables/script.cpp
@@ -1249,7 +1249,7 @@ bool ScScript::persist(BasePersistenceManager *persistMgr) {
 	// buffer
 	if (persistMgr->getIsSaving()) {
 		if (_state != SCRIPT_PERSISTENT && _state != SCRIPT_FINISHED && _state != SCRIPT_THREAD_FINISHED) {
-			persistMgr->transfer(TMEMBER(_bufferSize));
+			persistMgr->transferUint32(TMEMBER(_bufferSize));
 			persistMgr->putBytes(_buffer, _bufferSize);
 		} else {
 			// don't save idle/finished scripts
@@ -1257,7 +1257,7 @@ bool ScScript::persist(BasePersistenceManager *persistMgr) {
 			persistMgr->transfer(TMEMBER(bufferSize));
 		}
 	} else {
-		persistMgr->transfer(TMEMBER(_bufferSize));
+		persistMgr->transferUint32(TMEMBER(_bufferSize));
 		if (_bufferSize > 0) {
 			_buffer = new byte[_bufferSize];
 			persistMgr->getBytes(_buffer, _bufferSize);
@@ -1275,7 +1275,7 @@ bool ScScript::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transfer(TMEMBER(_filename));
 	persistMgr->transferBool(TMEMBER(_freezable));
 	persistMgr->transferPtr(TMEMBER_PTR(_globals));
-	persistMgr->transfer(TMEMBER(_iP));
+	persistMgr->transferUint32(TMEMBER(_iP));
 	persistMgr->transferPtr(TMEMBER_PTR(_scopeStack));
 	persistMgr->transferPtr(TMEMBER_PTR(_stack));
 	persistMgr->transfer(TMEMBER_INT(_state));
@@ -1286,10 +1286,10 @@ bool ScScript::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferBool(TMEMBER(_thread));
 	persistMgr->transfer(TMEMBER(_threadEvent));
 	persistMgr->transferPtr(TMEMBER_PTR(_thisStack));
-	persistMgr->transfer(TMEMBER(_timeSlice));
+	persistMgr->transferUint32(TMEMBER(_timeSlice));
 	persistMgr->transferPtr(TMEMBER_PTR(_waitObject));
 	persistMgr->transferPtr(TMEMBER_PTR(_waitScript));
-	persistMgr->transfer(TMEMBER(_waitTime));
+	persistMgr->transferUint32(TMEMBER(_waitTime));
 	persistMgr->transferBool(TMEMBER(_waitFrozen));
 
 	persistMgr->transferBool(TMEMBER(_methodThread));
diff --git a/engines/wintermute/base/scriptables/script_ext_file.cpp b/engines/wintermute/base/scriptables/script_ext_file.cpp
index 5e6f057..fad2f92 100644
--- a/engines/wintermute/base/scriptables/script_ext_file.cpp
+++ b/engines/wintermute/base/scriptables/script_ext_file.cpp
@@ -773,9 +773,9 @@ bool SXFile::persist(BasePersistenceManager *persistMgr) {
 	uint32 pos = 0;
 	if (persistMgr->getIsSaving()) {
 		pos = getPos();
-		persistMgr->transfer(TMEMBER(pos));
+		persistMgr->transferUint32(TMEMBER(pos));
 	} else {
-		persistMgr->transfer(TMEMBER(pos));
+		persistMgr->transferUint32(TMEMBER(pos));
 
 		// try to re-open file if needed
 		_writeFile = nullptr;
diff --git a/engines/wintermute/base/sound/base_sound.cpp b/engines/wintermute/base/sound/base_sound.cpp
index c3f2ff0..9fc5871 100644
--- a/engines/wintermute/base/sound/base_sound.cpp
+++ b/engines/wintermute/base/sound/base_sound.cpp
@@ -171,11 +171,11 @@ bool BaseSound::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferBool(TMEMBER(_soundPaused));
 	persistMgr->transferBool(TMEMBER(_soundFreezePaused));
 	persistMgr->transferBool(TMEMBER(_soundPlaying));
-	persistMgr->transfer(TMEMBER(_soundPosition));
+	persistMgr->transferUint32(TMEMBER(_soundPosition));
 	persistMgr->transfer(TMEMBER(_soundPrivateVolume));
 	persistMgr->transferBool(TMEMBER(_soundStreamed));
 	persistMgr->transfer(TMEMBER_INT(_soundType));
-	persistMgr->transfer(TMEMBER(_soundLoopStart));
+	persistMgr->transferUint32(TMEMBER(_soundLoopStart));
 
 	return STATUS_OK;
 }
diff --git a/engines/wintermute/base/timer.cpp b/engines/wintermute/base/timer.cpp
index 96097c1..f1f79af 100644
--- a/engines/wintermute/base/timer.cpp
+++ b/engines/wintermute/base/timer.cpp
@@ -66,9 +66,9 @@ uint32 Timer::getTimeLast() const {
 }
 
 void Timer::persist(BasePersistenceManager *persistMgr) {
-	persistMgr->transfer(TMEMBER(_timer));
-	persistMgr->transfer(TMEMBER(_timerDelta));
-	persistMgr->transfer(TMEMBER(_timerLast));
+	persistMgr->transferUint32(TMEMBER(_timer));
+	persistMgr->transferUint32(TMEMBER(_timerDelta));
+	persistMgr->transferUint32(TMEMBER(_timerLast));
 }
 
 } // End of namespace Wintermute
diff --git a/engines/wintermute/ui/ui_edit.cpp b/engines/wintermute/ui/ui_edit.cpp
index 4de1965..5608bcc 100644
--- a/engines/wintermute/ui/ui_edit.cpp
+++ b/engines/wintermute/ui/ui_edit.cpp
@@ -932,7 +932,7 @@ bool UIEdit::persist(BasePersistenceManager *persistMgr) {
 
 	UIObject::persist(persistMgr);
 
-	persistMgr->transfer(TMEMBER(_cursorBlinkRate));
+	persistMgr->transferUint32(TMEMBER(_cursorBlinkRate));
 	persistMgr->transfer(TMEMBER(_cursorChar));
 	persistMgr->transferPtr(TMEMBER_PTR(_fontSelected));
 	persistMgr->transfer(TMEMBER(_frameWidth));
diff --git a/engines/wintermute/ui/ui_object.cpp b/engines/wintermute/ui/ui_object.cpp
index a1a89b7..8dfd95f 100644
--- a/engines/wintermute/ui/ui_object.cpp
+++ b/engines/wintermute/ui/ui_object.cpp
@@ -630,7 +630,7 @@ bool UIObject::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferPtr(TMEMBER_PTR(_image));
 	persistMgr->transferPtr(TMEMBER_PTR(_listenerObject));
 	persistMgr->transferPtr(TMEMBER_PTR(_listenerParamObject));
-	persistMgr->transfer(TMEMBER(_listenerParamDWORD));
+	persistMgr->transferUint32(TMEMBER(_listenerParamDWORD));
 	persistMgr->transferPtr(TMEMBER_PTR(_parent));
 	persistMgr->transferBool(TMEMBER(_parentNotify));
 	persistMgr->transferBool(TMEMBER(_sharedFonts));
diff --git a/engines/wintermute/ui/ui_window.cpp b/engines/wintermute/ui/ui_window.cpp
index c926219..2aaa3fd 100644
--- a/engines/wintermute/ui/ui_window.cpp
+++ b/engines/wintermute/ui/ui_window.cpp
@@ -1263,7 +1263,7 @@ bool UIWindow::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferBool(TMEMBER(_dragging));
 	persistMgr->transferRect32(TMEMBER(_dragRect));
 	persistMgr->transferBool(TMEMBER(_fadeBackground));
-	persistMgr->transfer(TMEMBER(_fadeColor));
+	persistMgr->transferUint32(TMEMBER(_fadeColor));
 	persistMgr->transferPtr(TMEMBER_PTR(_fontInactive));
 	persistMgr->transferPtr(TMEMBER_PTR(_imageInactive));
 	persistMgr->transferBool(TMEMBER(_inGame));
diff --git a/engines/wintermute/video/video_theora_player.cpp b/engines/wintermute/video/video_theora_player.cpp
index 5dbb301..33d1010 100644
--- a/engines/wintermute/video/video_theora_player.cpp
+++ b/engines/wintermute/video/video_theora_player.cpp
@@ -491,7 +491,7 @@ bool VideoTheoraPlayer::persist(BasePersistenceManager *persistMgr) {
 	}
 
 	persistMgr->transferPtr(TMEMBER_PTR(_gameRef));
-	persistMgr->transfer(TMEMBER(_savedPos));
+	persistMgr->transferUint32(TMEMBER(_savedPos));
 	persistMgr->transfer(TMEMBER(_savedState));
 	persistMgr->transfer(TMEMBER(_filename));
 	persistMgr->transfer(TMEMBER(_alphaFilename));


Commit: d07409def7cf63296a11f0cdea3bf5b7e1c3427a
    https://github.com/scummvm/scummvm/commit/d07409def7cf63296a11f0cdea3bf5b7e1c3427a
Author: Einar Johan Trøan Sømåen (einarjohants at gmail.com)
Date: 2013-11-05T04:48:11-08:00

Commit Message:
WINTERMUTE: Transfer Sint32s explicitly when saving/loading.

Changed paths:
    engines/wintermute/ad/ad_actor.cpp
    engines/wintermute/ad/ad_entity.cpp
    engines/wintermute/ad/ad_game.cpp
    engines/wintermute/ad/ad_inventory.cpp
    engines/wintermute/ad/ad_inventory_box.cpp
    engines/wintermute/ad/ad_item.cpp
    engines/wintermute/ad/ad_layer.cpp
    engines/wintermute/ad/ad_object.cpp
    engines/wintermute/ad/ad_path.cpp
    engines/wintermute/ad/ad_path_point.cpp
    engines/wintermute/ad/ad_response.cpp
    engines/wintermute/ad/ad_response_box.cpp
    engines/wintermute/ad/ad_response_context.cpp
    engines/wintermute/ad/ad_scene.cpp
    engines/wintermute/ad/ad_scene_node.cpp
    engines/wintermute/ad/ad_sentence.cpp
    engines/wintermute/ad/ad_waypoint_group.cpp
    engines/wintermute/base/base_frame.cpp
    engines/wintermute/base/base_game.cpp
    engines/wintermute/base/base_game_music.cpp
    engines/wintermute/base/base_object.cpp
    engines/wintermute/base/base_persistence_manager.cpp
    engines/wintermute/base/base_persistence_manager.h
    engines/wintermute/base/base_point.cpp
    engines/wintermute/base/base_region.cpp
    engines/wintermute/base/base_scriptable.cpp
    engines/wintermute/base/base_sprite.cpp
    engines/wintermute/base/base_sub_frame.cpp
    engines/wintermute/base/base_viewport.cpp
    engines/wintermute/base/font/base_font_bitmap.cpp
    engines/wintermute/base/font/base_font_truetype.cpp
    engines/wintermute/base/font/base_font_truetype.h
    engines/wintermute/base/gfx/base_renderer.cpp
    engines/wintermute/base/particles/part_emitter.cpp
    engines/wintermute/base/particles/part_force.cpp
    engines/wintermute/base/particles/part_particle.cpp
    engines/wintermute/base/scriptables/script.cpp
    engines/wintermute/base/scriptables/script_ext_array.cpp
    engines/wintermute/base/scriptables/script_ext_date.cpp
    engines/wintermute/base/scriptables/script_ext_file.cpp
    engines/wintermute/base/scriptables/script_ext_mem_buffer.cpp
    engines/wintermute/base/scriptables/script_ext_string.cpp
    engines/wintermute/base/scriptables/script_stack.cpp
    engines/wintermute/base/scriptables/script_value.cpp
    engines/wintermute/base/sound/base_sound.cpp
    engines/wintermute/coll_templ.h
    engines/wintermute/ui/ui_button.cpp
    engines/wintermute/ui/ui_edit.cpp
    engines/wintermute/ui/ui_object.cpp
    engines/wintermute/ui/ui_text.cpp
    engines/wintermute/ui/ui_window.cpp
    engines/wintermute/video/video_theora_player.cpp



diff --git a/engines/wintermute/ad/ad_actor.cpp b/engines/wintermute/ad/ad_actor.cpp
index 590d7c4..e440a13 100644
--- a/engines/wintermute/ad/ad_actor.cpp
+++ b/engines/wintermute/ad/ad_actor.cpp
@@ -1319,9 +1319,9 @@ BaseSprite *AdActor::getTalkStanceOld(const char *stance) {
 bool AdActor::persist(BasePersistenceManager *persistMgr) {
 	AdTalkHolder::persist(persistMgr);
 
-	persistMgr->transfer(TMEMBER_INT(_dir));
+	persistMgr->transferSint32(TMEMBER_INT(_dir));
 	persistMgr->transferPtr(TMEMBER_PTR(_path));
-	persistMgr->transfer(TMEMBER(_pFCount));
+	persistMgr->transferSint32(TMEMBER(_pFCount));
 	persistMgr->transferDouble(TMEMBER(_pFStepX));
 	persistMgr->transferDouble(TMEMBER(_pFStepY));
 	persistMgr->transferDouble(TMEMBER(_pFX));
@@ -1329,8 +1329,8 @@ bool AdActor::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferPtr(TMEMBER_PTR(_standSprite));
 	_talkSprites.persist(persistMgr);
 	_talkSpritesEx.persist(persistMgr);
-	persistMgr->transfer(TMEMBER_INT(_targetDir));
-	persistMgr->transfer(TMEMBER_INT(_afterWalkDir));
+	persistMgr->transferSint32(TMEMBER_INT(_targetDir));
+	persistMgr->transferSint32(TMEMBER_INT(_afterWalkDir));
 	persistMgr->transferPtr(TMEMBER_PTR(_targetPoint));
 	persistMgr->transferPtr(TMEMBER_PTR(_turnLeftSprite));
 	persistMgr->transferPtr(TMEMBER_PTR(_turnRightSprite));
diff --git a/engines/wintermute/ad/ad_entity.cpp b/engines/wintermute/ad/ad_entity.cpp
index e7471a4..a927c17 100644
--- a/engines/wintermute/ad/ad_entity.cpp
+++ b/engines/wintermute/ad/ad_entity.cpp
@@ -1095,13 +1095,13 @@ bool AdEntity::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transfer(TMEMBER(_item));
 	persistMgr->transferPtr(TMEMBER_PTR(_region));
 	//persistMgr->transfer(TMEMBER(_sprite));
-	persistMgr->transfer(TMEMBER_INT(_subtype));
+	persistMgr->transferSint32(TMEMBER_INT(_subtype));
 	_talkSprites.persist(persistMgr);
 	_talkSpritesEx.persist(persistMgr);
 
-	persistMgr->transfer(TMEMBER(_walkToX));
-	persistMgr->transfer(TMEMBER(_walkToY));
-	persistMgr->transfer(TMEMBER_INT(_walkToDir));
+	persistMgr->transferSint32(TMEMBER(_walkToX));
+	persistMgr->transferSint32(TMEMBER(_walkToY));
+	persistMgr->transferSint32(TMEMBER_INT(_walkToDir));
 
 	persistMgr->transferPtr(TMEMBER_PTR(_theora));
 
diff --git a/engines/wintermute/ad/ad_game.cpp b/engines/wintermute/ad/ad_game.cpp
index fc5f201..e06d6cd 100644
--- a/engines/wintermute/ad/ad_game.cpp
+++ b/engines/wintermute/ad/ad_game.cpp
@@ -1428,12 +1428,12 @@ bool AdGame::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferBool(TMEMBER(_scheduledFadeIn));
 	persistMgr->transfer(TMEMBER(_scheduledScene));
 	persistMgr->transferPtr(TMEMBER_PTR(_selectedItem));
-	persistMgr->transfer(TMEMBER_INT(_talkSkipButton));
+	persistMgr->transferSint32(TMEMBER_INT(_talkSkipButton));
 
 	_sentences.persist(persistMgr);
 
 	persistMgr->transferPtr(TMEMBER_PTR(_sceneViewport));
-	persistMgr->transfer(TMEMBER_INT(_stateEx));
+	persistMgr->transferSint32(TMEMBER_INT(_stateEx));
 	persistMgr->transferBool(TMEMBER(_initialScene));
 	persistMgr->transfer(TMEMBER(_debugStartupScene));
 
diff --git a/engines/wintermute/ad/ad_inventory.cpp b/engines/wintermute/ad/ad_inventory.cpp
index 544d831..f9352c7 100644
--- a/engines/wintermute/ad/ad_inventory.cpp
+++ b/engines/wintermute/ad/ad_inventory.cpp
@@ -128,7 +128,7 @@ bool AdInventory::persist(BasePersistenceManager *persistMgr) {
 	BaseObject::persist(persistMgr);
 
 	_takenItems.persist(persistMgr);
-	persistMgr->transfer(TMEMBER(_scrollOffset));
+	persistMgr->transferSint32(TMEMBER(_scrollOffset));
 
 	return STATUS_OK;
 }
diff --git a/engines/wintermute/ad/ad_inventory_box.cpp b/engines/wintermute/ad/ad_inventory_box.cpp
index a6e10fe..5d7f053 100644
--- a/engines/wintermute/ad/ad_inventory_box.cpp
+++ b/engines/wintermute/ad/ad_inventory_box.cpp
@@ -373,12 +373,12 @@ bool AdInventoryBox::persist(BasePersistenceManager *persistMgr) {
 
 	persistMgr->transferPtr(TMEMBER_PTR(_closeButton));
 	persistMgr->transferBool(TMEMBER(_hideSelected));
-	persistMgr->transfer(TMEMBER(_itemHeight));
+	persistMgr->transferSint32(TMEMBER(_itemHeight));
 	persistMgr->transferRect32(TMEMBER(_itemsArea));
-	persistMgr->transfer(TMEMBER(_itemWidth));
-	persistMgr->transfer(TMEMBER(_scrollBy));
-	persistMgr->transfer(TMEMBER(_scrollOffset));
-	persistMgr->transfer(TMEMBER(_spacing));
+	persistMgr->transferSint32(TMEMBER(_itemWidth));
+	persistMgr->transferSint32(TMEMBER(_scrollBy));
+	persistMgr->transferSint32(TMEMBER(_scrollOffset));
+	persistMgr->transferSint32(TMEMBER(_spacing));
 	persistMgr->transferBool(TMEMBER(_visible));
 	persistMgr->transferPtr(TMEMBER_PTR(_window));
 	persistMgr->transferBool(TMEMBER(_exclusive));
diff --git a/engines/wintermute/ad/ad_item.cpp b/engines/wintermute/ad/ad_item.cpp
index ae249de..c8359add 100644
--- a/engines/wintermute/ad/ad_item.cpp
+++ b/engines/wintermute/ad/ad_item.cpp
@@ -789,10 +789,10 @@ bool AdItem::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferPtr(TMEMBER_PTR(_spriteHover));
 	persistMgr->transferBool(TMEMBER(_inInventory));
 	persistMgr->transferBool(TMEMBER(_displayAmount));
-	persistMgr->transfer(TMEMBER(_amount));
-	persistMgr->transfer(TMEMBER(_amountOffsetX));
-	persistMgr->transfer(TMEMBER(_amountOffsetY));
-	persistMgr->transfer(TMEMBER_INT(_amountAlign));
+	persistMgr->transferSint32(TMEMBER(_amount));
+	persistMgr->transferSint32(TMEMBER(_amountOffsetX));
+	persistMgr->transferSint32(TMEMBER(_amountOffsetY));
+	persistMgr->transferSint32(TMEMBER_INT(_amountAlign));
 	persistMgr->transfer(TMEMBER(_amountString));
 
 	return STATUS_OK;
diff --git a/engines/wintermute/ad/ad_layer.cpp b/engines/wintermute/ad/ad_layer.cpp
index 7bbdf27..17dd83a8 100644
--- a/engines/wintermute/ad/ad_layer.cpp
+++ b/engines/wintermute/ad/ad_layer.cpp
@@ -553,10 +553,10 @@ bool AdLayer::persist(BasePersistenceManager *persistMgr) {
 
 	persistMgr->transferBool(TMEMBER(_active));
 	persistMgr->transferBool(TMEMBER(_closeUp));
-	persistMgr->transfer(TMEMBER(_height));
+	persistMgr->transferSint32(TMEMBER(_height));
 	persistMgr->transferBool(TMEMBER(_main));
 	_nodes.persist(persistMgr);
-	persistMgr->transfer(TMEMBER(_width));
+	persistMgr->transferSint32(TMEMBER(_width));
 
 	return STATUS_OK;
 }
diff --git a/engines/wintermute/ad/ad_object.cpp b/engines/wintermute/ad/ad_object.cpp
index 6ab2e9b..fbeacee 100644
--- a/engines/wintermute/ad/ad_object.cpp
+++ b/engines/wintermute/ad/ad_object.cpp
@@ -1038,22 +1038,22 @@ bool AdObject::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferBool(TMEMBER(_drawn));
 	persistMgr->transferPtr(TMEMBER_PTR(_font));
 	persistMgr->transferBool(TMEMBER(_ignoreItems));
-	persistMgr->transfer(TMEMBER_INT(_nextState));
+	persistMgr->transferSint32(TMEMBER_INT(_nextState));
 	persistMgr->transferPtr(TMEMBER_PTR(_sentence));
-	persistMgr->transfer(TMEMBER_INT(_state));
+	persistMgr->transferSint32(TMEMBER_INT(_state));
 	persistMgr->transferPtr(TMEMBER_PTR(_animSprite));
 	persistMgr->transferBool(TMEMBER(_sceneIndependent));
 	persistMgr->transfer(TMEMBER(_forcedTalkAnimName));
 	persistMgr->transferBool(TMEMBER(_forcedTalkAnimUsed));
 	persistMgr->transferPtr(TMEMBER_PTR(_tempSprite2));
-	persistMgr->transfer(TMEMBER_INT(_type));
+	persistMgr->transferSint32(TMEMBER_INT(_type));
 	persistMgr->transferPtr(TMEMBER_PTR(_wptGroup));
 	persistMgr->transferPtr(TMEMBER_PTR(_stickRegion));
 	persistMgr->transferBool(TMEMBER(_subtitlesModRelative));
-	persistMgr->transfer(TMEMBER(_subtitlesModX));
-	persistMgr->transfer(TMEMBER(_subtitlesModY));
+	persistMgr->transferSint32(TMEMBER(_subtitlesModX));
+	persistMgr->transferSint32(TMEMBER(_subtitlesModY));
 	persistMgr->transferBool(TMEMBER(_subtitlesModXCenter));
-	persistMgr->transfer(TMEMBER(_subtitlesWidth));
+	persistMgr->transferSint32(TMEMBER(_subtitlesWidth));
 	persistMgr->transferPtr(TMEMBER_PTR(_inventory));
 	persistMgr->transferPtr(TMEMBER_PTR(_partEmitter));
 
@@ -1066,8 +1066,8 @@ bool AdObject::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferPtr(TMEMBER_PTR(_registerAlias));
 
 	persistMgr->transferBool(TMEMBER(_partFollowParent));
-	persistMgr->transfer(TMEMBER(_partOffsetX));
-	persistMgr->transfer(TMEMBER(_partOffsetY));
+	persistMgr->transferSint32(TMEMBER(_partOffsetX));
+	persistMgr->transferSint32(TMEMBER(_partOffsetY));
 
 	return STATUS_OK;
 }
diff --git a/engines/wintermute/ad/ad_path.cpp b/engines/wintermute/ad/ad_path.cpp
index bdb7eba..156fc80 100644
--- a/engines/wintermute/ad/ad_path.cpp
+++ b/engines/wintermute/ad/ad_path.cpp
@@ -110,7 +110,7 @@ bool AdPath::persist(BasePersistenceManager *persistMgr) {
 
 	persistMgr->transferPtr(TMEMBER_PTR(_gameRef));
 
-	persistMgr->transfer(TMEMBER(_currIndex));
+	persistMgr->transferSint32(TMEMBER(_currIndex));
 	_points.persist(persistMgr);
 	persistMgr->transferBool(TMEMBER(_ready));
 
diff --git a/engines/wintermute/ad/ad_path_point.cpp b/engines/wintermute/ad/ad_path_point.cpp
index 3e99d12..5ee9568 100644
--- a/engines/wintermute/ad/ad_path_point.cpp
+++ b/engines/wintermute/ad/ad_path_point.cpp
@@ -65,7 +65,7 @@ bool AdPathPoint::persist(BasePersistenceManager *persistMgr) {
 
 	BasePoint::persist(persistMgr);
 
-	persistMgr->transfer(TMEMBER(_distance));
+	persistMgr->transferSint32(TMEMBER(_distance));
 	persistMgr->transferBool(TMEMBER(_marked));
 	persistMgr->transferPtr(TMEMBER_PTR(_origin));
 
diff --git a/engines/wintermute/ad/ad_response.cpp b/engines/wintermute/ad/ad_response.cpp
index fa05224..8d8f9a1 100644
--- a/engines/wintermute/ad/ad_response.cpp
+++ b/engines/wintermute/ad/ad_response.cpp
@@ -134,10 +134,10 @@ bool AdResponse::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferPtr(TMEMBER_PTR(_icon));
 	persistMgr->transferPtr(TMEMBER_PTR(_iconHover));
 	persistMgr->transferPtr(TMEMBER_PTR(_iconPressed));
-	persistMgr->transfer(TMEMBER(_iD));
+	persistMgr->transferSint32(TMEMBER(_iD));
 	persistMgr->transfer(TMEMBER(_text));
 	persistMgr->transfer(TMEMBER(_textOrig));
-	persistMgr->transfer(TMEMBER_INT(_responseType));
+	persistMgr->transferSint32(TMEMBER_INT(_responseType));
 	persistMgr->transferPtr(TMEMBER_PTR(_font));
 
 	return STATUS_OK;
diff --git a/engines/wintermute/ad/ad_response_box.cpp b/engines/wintermute/ad/ad_response_box.cpp
index 5c0efb5..ea2e223 100644
--- a/engines/wintermute/ad/ad_response_box.cpp
+++ b/engines/wintermute/ad/ad_response_box.cpp
@@ -589,14 +589,14 @@ bool AdResponseBox::persist(BasePersistenceManager *persistMgr) {
 	_respButtons.persist(persistMgr);
 	persistMgr->transferRect32(TMEMBER(_responseArea));
 	_responses.persist(persistMgr);
-	persistMgr->transfer(TMEMBER(_scrollOffset));
+	persistMgr->transferSint32(TMEMBER(_scrollOffset));
 	persistMgr->transferPtr(TMEMBER_PTR(_shieldWindow));
-	persistMgr->transfer(TMEMBER(_spacing));
+	persistMgr->transferSint32(TMEMBER(_spacing));
 	persistMgr->transferPtr(TMEMBER_PTR(_waitingScript));
 	persistMgr->transferPtr(TMEMBER_PTR(_window));
 
-	persistMgr->transfer(TMEMBER_INT(_verticalAlign));
-	persistMgr->transfer(TMEMBER_INT(_align));
+	persistMgr->transferSint32(TMEMBER_INT(_verticalAlign));
+	persistMgr->transferSint32(TMEMBER_INT(_align));
 
 	return STATUS_OK;
 }
diff --git a/engines/wintermute/ad/ad_response_context.cpp b/engines/wintermute/ad/ad_response_context.cpp
index 0b58f5b..dcafc55 100644
--- a/engines/wintermute/ad/ad_response_context.cpp
+++ b/engines/wintermute/ad/ad_response_context.cpp
@@ -51,7 +51,7 @@ AdResponseContext::~AdResponseContext() {
 bool AdResponseContext::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferPtr(TMEMBER_PTR(_gameRef));
 	persistMgr->transfer(TMEMBER(_context));
-	persistMgr->transfer(TMEMBER(_id));
+	persistMgr->transferSint32(TMEMBER(_id));
 
 	return STATUS_OK;
 }
diff --git a/engines/wintermute/ad/ad_scene.cpp b/engines/wintermute/ad/ad_scene.cpp
index fddd7f8..ab7ab51 100644
--- a/engines/wintermute/ad/ad_scene.cpp
+++ b/engines/wintermute/ad/ad_scene.cpp
@@ -2313,45 +2313,45 @@ bool AdScene::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferUint32(TMEMBER(_editorColScale));
 	persistMgr->transferUint32(TMEMBER(_editorColWaypoints));
 	persistMgr->transferUint32(TMEMBER(_editorColWaypointsSel));
-	persistMgr->transfer(TMEMBER(_editorMarginH));
-	persistMgr->transfer(TMEMBER(_editorMarginV));
+	persistMgr->transferSint32(TMEMBER(_editorMarginH));
+	persistMgr->transferSint32(TMEMBER(_editorMarginV));
 	persistMgr->transferBool(TMEMBER(_editorShowBlocked));
 	persistMgr->transferBool(TMEMBER(_editorShowDecor));
 	persistMgr->transferBool(TMEMBER(_editorShowEntities));
 	persistMgr->transferBool(TMEMBER(_editorShowRegions));
 	persistMgr->transferBool(TMEMBER(_editorShowScale));
 	persistMgr->transferPtr(TMEMBER_PTR(_fader));
-	persistMgr->transfer(TMEMBER(_height));
+	persistMgr->transferSint32(TMEMBER(_height));
 	persistMgr->transferBool(TMEMBER(_initialized));
 	persistMgr->transferUint32(TMEMBER(_lastTimeH));
 	persistMgr->transferUint32(TMEMBER(_lastTimeV));
 	_layers.persist(persistMgr);
 	persistMgr->transferPtr(TMEMBER_PTR(_mainLayer));
 	_objects.persist(persistMgr);
-	persistMgr->transfer(TMEMBER(_offsetLeft));
-	persistMgr->transfer(TMEMBER(_offsetTop));
+	persistMgr->transferSint32(TMEMBER(_offsetLeft));
+	persistMgr->transferSint32(TMEMBER(_offsetTop));
 	persistMgr->transferBool(TMEMBER(_paralaxScrolling));
 	persistMgr->transferBool(TMEMBER(_persistentState));
 	persistMgr->transferBool(TMEMBER(_persistentStateSprites));
 	persistMgr->transferUint32(TMEMBER(_pfMaxTime));
 	_pfPath.persist(persistMgr);
-	persistMgr->transfer(TMEMBER(_pfPointsNum));
+	persistMgr->transferSint32(TMEMBER(_pfPointsNum));
 	persistMgr->transferBool(TMEMBER(_pfReady));
 	persistMgr->transferPtr(TMEMBER_PTR(_pfRequester));
 	persistMgr->transferPtr(TMEMBER_PTR(_pfTarget));
 	persistMgr->transferPtr(TMEMBER_PTR(_pfTargetPath));
 	_rotLevels.persist(persistMgr);
 	_scaleLevels.persist(persistMgr);
-	persistMgr->transfer(TMEMBER(_scrollPixelsH));
-	persistMgr->transfer(TMEMBER(_scrollPixelsV));
+	persistMgr->transferSint32(TMEMBER(_scrollPixelsH));
+	persistMgr->transferSint32(TMEMBER(_scrollPixelsV));
 	persistMgr->transferUint32(TMEMBER(_scrollTimeH));
 	persistMgr->transferUint32(TMEMBER(_scrollTimeV));
 	persistMgr->transferPtr(TMEMBER_PTR(_shieldWindow));
-	persistMgr->transfer(TMEMBER(_targetOffsetLeft));
-	persistMgr->transfer(TMEMBER(_targetOffsetTop));
+	persistMgr->transferSint32(TMEMBER(_targetOffsetLeft));
+	persistMgr->transferSint32(TMEMBER(_targetOffsetTop));
 	_waypointGroups.persist(persistMgr);
 	persistMgr->transferPtr(TMEMBER_PTR(_viewport));
-	persistMgr->transfer(TMEMBER(_width));
+	persistMgr->transferSint32(TMEMBER(_width));
 
 	return STATUS_OK;
 }
diff --git a/engines/wintermute/ad/ad_scene_node.cpp b/engines/wintermute/ad/ad_scene_node.cpp
index 8548da9..5f6207c 100644
--- a/engines/wintermute/ad/ad_scene_node.cpp
+++ b/engines/wintermute/ad/ad_scene_node.cpp
@@ -74,7 +74,7 @@ bool AdSceneNode::persist(BasePersistenceManager *persistMgr) {
 
 	persistMgr->transferPtr(TMEMBER_PTR(_entity));
 	persistMgr->transferPtr(TMEMBER_PTR(_region));
-	persistMgr->transfer(TMEMBER_INT(_type));
+	persistMgr->transferSint32(TMEMBER_INT(_type));
 
 	return STATUS_OK;
 }
diff --git a/engines/wintermute/ad/ad_sentence.cpp b/engines/wintermute/ad/ad_sentence.cpp
index a43cac6..514a6b8 100644
--- a/engines/wintermute/ad/ad_sentence.cpp
+++ b/engines/wintermute/ad/ad_sentence.cpp
@@ -249,8 +249,8 @@ bool AdSentence::persist(BasePersistenceManager *persistMgr) {
 
 	persistMgr->transferPtr(TMEMBER_PTR(_gameRef));
 
-	persistMgr->transfer(TMEMBER_INT(_align));
-	persistMgr->transfer(TMEMBER(_currentStance));
+	persistMgr->transferSint32(TMEMBER_INT(_align));
+	persistMgr->transferSint32(TMEMBER(_currentStance));
 	persistMgr->transferPtr(TMEMBER_PTR(_currentSprite));
 	persistMgr->transfer(TMEMBER(_currentSkelAnim));
 	persistMgr->transferUint32(TMEMBER(_duration));
@@ -263,7 +263,7 @@ bool AdSentence::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferPtr(TMEMBER_PTR(_talkDef));
 	persistMgr->transfer(TMEMBER(_tempStance));
 	persistMgr->transfer(TMEMBER(_text));
-	persistMgr->transfer(TMEMBER(_width));
+	persistMgr->transferSint32(TMEMBER(_width));
 	persistMgr->transferBool(TMEMBER(_fixedPos));
 	persistMgr->transferBool(TMEMBER(_freezable));
 
diff --git a/engines/wintermute/ad/ad_waypoint_group.cpp b/engines/wintermute/ad/ad_waypoint_group.cpp
index a8d474b..ae6b18e 100644
--- a/engines/wintermute/ad/ad_waypoint_group.cpp
+++ b/engines/wintermute/ad/ad_waypoint_group.cpp
@@ -195,10 +195,10 @@ bool AdWaypointGroup::persist(BasePersistenceManager *persistMgr) {
 	BaseObject::persist(persistMgr);
 
 	persistMgr->transferBool(TMEMBER(_active));
-	persistMgr->transfer(TMEMBER(_editorSelectedPoint));
+	persistMgr->transferSint32(TMEMBER(_editorSelectedPoint));
 	persistMgr->transferFloat(TMEMBER(_lastMimicScale));
-	persistMgr->transfer(TMEMBER(_lastMimicX));
-	persistMgr->transfer(TMEMBER(_lastMimicY));
+	persistMgr->transferSint32(TMEMBER(_lastMimicX));
+	persistMgr->transferSint32(TMEMBER(_lastMimicY));
 	_points.persist(persistMgr);
 
 	return STATUS_OK;
diff --git a/engines/wintermute/base/base_frame.cpp b/engines/wintermute/base/base_frame.cpp
index 8c87cfb..1455733 100644
--- a/engines/wintermute/base/base_frame.cpp
+++ b/engines/wintermute/base/base_frame.cpp
@@ -418,8 +418,8 @@ bool BaseFrame::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferBool(TMEMBER(_editorExpanded));
 	persistMgr->transferBool(TMEMBER(_keyframe));
 	persistMgr->transferBool(TMEMBER(_killSound));
-	persistMgr->transfer(TMEMBER(_moveX));
-	persistMgr->transfer(TMEMBER(_moveY));
+	persistMgr->transferSint32(TMEMBER(_moveX));
+	persistMgr->transferSint32(TMEMBER(_moveY));
 	persistMgr->transferPtr(TMEMBER_PTR(_sound));
 	_subframes.persist(persistMgr);
 
diff --git a/engines/wintermute/base/base_game.cpp b/engines/wintermute/base/base_game.cpp
index d4ecca0..6b7e1cf 100644
--- a/engines/wintermute/base/base_game.cpp
+++ b/engines/wintermute/base/base_game.cpp
@@ -3056,7 +3056,7 @@ bool BaseGame::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferPtr(TMEMBER_PTR(_cursorNoninteractive));
 	persistMgr->transferBool(TMEMBER(_editorMode));
 	persistMgr->transferPtr(TMEMBER_PTR(_fader));
-	persistMgr->transfer(TMEMBER(_freezeLevel));
+	persistMgr->transferSint32(TMEMBER(_freezeLevel));
 	persistMgr->transferPtr(TMEMBER_PTR(_focusedWindow));
 	persistMgr->transferPtr(TMEMBER_PTR(_fontStorage));
 	persistMgr->transferBool(TMEMBER(_interactive));
@@ -3066,13 +3066,13 @@ bool BaseGame::persist(BasePersistenceManager *persistMgr) {
 	_musicSystem->persistChannels(persistMgr);
 	_musicSystem->persistCrossfadeSettings(persistMgr);
 
-	persistMgr->transfer(TMEMBER(_offsetX));
-	persistMgr->transfer(TMEMBER(_offsetY));
+	persistMgr->transferSint32(TMEMBER(_offsetX));
+	persistMgr->transferSint32(TMEMBER(_offsetY));
 	persistMgr->transferFloat(TMEMBER(_offsetPercentX));
 	persistMgr->transferFloat(TMEMBER(_offsetPercentY));
 
 	persistMgr->transferBool(TMEMBER(_origInteractive));
-	persistMgr->transfer(TMEMBER_INT(_origState));
+	persistMgr->transferSint32(TMEMBER_INT(_origState));
 	persistMgr->transferBool(TMEMBER(_personalizedSave));
 	persistMgr->transferBool(TMEMBER(_quitting));
 
@@ -3080,10 +3080,10 @@ bool BaseGame::persist(BasePersistenceManager *persistMgr) {
 
 	persistMgr->transferPtr(TMEMBER_PTR(_scEngine));
 	//persistMgr->transfer(TMEMBER(_soundMgr));
-	persistMgr->transfer(TMEMBER_INT(_state));
+	persistMgr->transferSint32(TMEMBER_INT(_state));
 	//persistMgr->transfer(TMEMBER(_surfaceStorage));
 	persistMgr->transferBool(TMEMBER(_subtitles));
-	persistMgr->transfer(TMEMBER(_subtitlesSpeed));
+	persistMgr->transferSint32(TMEMBER(_subtitlesSpeed));
 	persistMgr->transferPtr(TMEMBER_PTR(_systemFont));
 	persistMgr->transferPtr(TMEMBER_PTR(_videoFont));
 	persistMgr->transferBool(TMEMBER(_videoSubtitles));
@@ -3093,10 +3093,10 @@ bool BaseGame::persist(BasePersistenceManager *persistMgr) {
 
 	_renderer->persistSaveLoadImages(persistMgr);
 
-	persistMgr->transfer(TMEMBER_INT(_textEncoding));
+	persistMgr->transferSint32(TMEMBER_INT(_textEncoding));
 	persistMgr->transferBool(TMEMBER(_textRTL));
 
-	persistMgr->transfer(TMEMBER(_soundBufferSizeSec));
+	persistMgr->transferSint32(TMEMBER(_soundBufferSizeSec));
 	persistMgr->transferBool(TMEMBER(_suspendedRendering));
 
 	persistMgr->transferRect32(TMEMBER(_mouseLockRect));
diff --git a/engines/wintermute/base/base_game_music.cpp b/engines/wintermute/base/base_game_music.cpp
index a401da2..8894fb8 100644
--- a/engines/wintermute/base/base_game_music.cpp
+++ b/engines/wintermute/base/base_game_music.cpp
@@ -224,8 +224,8 @@ bool BaseGameMusic::persistCrossfadeSettings(BasePersistenceManager *persistMgr)
 	persistMgr->transferBool(TMEMBER(_musicCrossfadeRunning));
 	persistMgr->transferUint32(TMEMBER(_musicCrossfadeStartTime));
 	persistMgr->transferUint32(TMEMBER(_musicCrossfadeLength));
-	persistMgr->transfer(TMEMBER(_musicCrossfadeChannel1));
-	persistMgr->transfer(TMEMBER(_musicCrossfadeChannel2));
+	persistMgr->transferSint32(TMEMBER(_musicCrossfadeChannel1));
+	persistMgr->transferSint32(TMEMBER(_musicCrossfadeChannel2));
 	persistMgr->transferBool(TMEMBER(_musicCrossfadeSwap));
 	return true;
 }
diff --git a/engines/wintermute/base/base_object.cpp b/engines/wintermute/base/base_object.cpp
index 802edfc..2e0c612 100644
--- a/engines/wintermute/base/base_object.cpp
+++ b/engines/wintermute/base/base_object.cpp
@@ -963,17 +963,17 @@ bool BaseObject::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferBool(TMEMBER(_editorAlwaysRegister));
 	persistMgr->transferBool(TMEMBER(_editorOnly));
 	persistMgr->transferBool(TMEMBER(_editorSelected));
-	persistMgr->transfer(TMEMBER(_iD));
+	persistMgr->transferSint32(TMEMBER(_iD));
 	persistMgr->transferBool(TMEMBER(_is3D));
 	persistMgr->transferBool(TMEMBER(_movable));
-	persistMgr->transfer(TMEMBER(_posX));
-	persistMgr->transfer(TMEMBER(_posY));
+	persistMgr->transferSint32(TMEMBER(_posX));
+	persistMgr->transferSint32(TMEMBER(_posY));
 	persistMgr->transferFloat(TMEMBER(_relativeScale));
 	persistMgr->transferBool(TMEMBER(_rotatable));
 	persistMgr->transferFloat(TMEMBER(_scale));
 	persistMgr->transferPtr(TMEMBER_PTR(_sFX));
 	persistMgr->transferUint32(TMEMBER(_sFXStart));
-	persistMgr->transfer(TMEMBER(_sFXVolume));
+	persistMgr->transferSint32(TMEMBER(_sFXVolume));
 	persistMgr->transferBool(TMEMBER(_ready));
 	persistMgr->transferRect32(TMEMBER(_rect));
 	persistMgr->transferBool(TMEMBER(_rectSet));
@@ -992,14 +992,14 @@ bool BaseObject::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferBool(TMEMBER(_saveState));
 	persistMgr->transferBool(TMEMBER(_nonIntMouseEvents));
 
-	persistMgr->transfer(TMEMBER_INT(_sFXType));
+	persistMgr->transferSint32(TMEMBER_INT(_sFXType));
 	persistMgr->transferFloat(TMEMBER(_sFXParam1));
 	persistMgr->transferFloat(TMEMBER(_sFXParam2));
 	persistMgr->transferFloat(TMEMBER(_sFXParam3));
 	persistMgr->transferFloat(TMEMBER(_sFXParam4));
 
 
-	persistMgr->transfer(TMEMBER_INT(_blendMode));
+	persistMgr->transferSint32(TMEMBER_INT(_blendMode));
 
 	return STATUS_OK;
 }
diff --git a/engines/wintermute/base/base_persistence_manager.cpp b/engines/wintermute/base/base_persistence_manager.cpp
index 1ee4b24..eb2bffe 100644
--- a/engines/wintermute/base/base_persistence_manager.cpp
+++ b/engines/wintermute/base/base_persistence_manager.cpp
@@ -606,7 +606,7 @@ bool BasePersistenceManager::transferBool(const char *name, bool *val) {
 
 //////////////////////////////////////////////////////////////////////////
 // int
-bool BasePersistenceManager::transfer(const char *name, int32 *val) {
+bool BasePersistenceManager::transferSint32(const char *name, int32 *val) {
 	if (_saving) {
 		_saveStream->writeSint32LE(*val);
 		if (_saveStream->err()) {
diff --git a/engines/wintermute/base/base_persistence_manager.h b/engines/wintermute/base/base_persistence_manager.h
index 9d39670..aba4776 100644
--- a/engines/wintermute/base/base_persistence_manager.h
+++ b/engines/wintermute/base/base_persistence_manager.h
@@ -74,7 +74,7 @@ public:
 	byte *_richBuffer;
 
 	bool transferPtr(const char *name, void *val);
-	bool transfer(const char *name, int32 *val);
+	bool transferSint32(const char *name, int32 *val);
 	bool transferUint32(const char *name, uint32 *val);
 	bool transferFloat(const char *name, float *val);
 	bool transferDouble(const char *name, double *val);
diff --git a/engines/wintermute/base/base_point.cpp b/engines/wintermute/base/base_point.cpp
index fe6ca94..84b6a62 100644
--- a/engines/wintermute/base/base_point.cpp
+++ b/engines/wintermute/base/base_point.cpp
@@ -54,8 +54,8 @@ BasePoint::BasePoint(int initX, int initY) {
 //////////////////////////////////////////////////////////////////////////
 bool BasePoint::persist(BasePersistenceManager *persistMgr) {
 
-	persistMgr->transfer(TMEMBER(x));
-	persistMgr->transfer(TMEMBER(y));
+	persistMgr->transferSint32(TMEMBER(x));
+	persistMgr->transferSint32(TMEMBER(y));
 
 	return STATUS_OK;
 }
diff --git a/engines/wintermute/base/base_region.cpp b/engines/wintermute/base/base_region.cpp
index 2953adc..dc17b18 100644
--- a/engines/wintermute/base/base_region.cpp
+++ b/engines/wintermute/base/base_region.cpp
@@ -431,10 +431,10 @@ bool BaseRegion::persist(BasePersistenceManager *persistMgr) {
 	BaseObject::persist(persistMgr);
 
 	persistMgr->transferBool(TMEMBER(_active));
-	persistMgr->transfer(TMEMBER(_editorSelectedPoint));
+	persistMgr->transferSint32(TMEMBER(_editorSelectedPoint));
 	persistMgr->transferFloat(TMEMBER(_lastMimicScale));
-	persistMgr->transfer(TMEMBER(_lastMimicX));
-	persistMgr->transfer(TMEMBER(_lastMimicY));
+	persistMgr->transferSint32(TMEMBER(_lastMimicX));
+	persistMgr->transferSint32(TMEMBER(_lastMimicY));
 	_points.persist(persistMgr);
 
 	return STATUS_OK;
diff --git a/engines/wintermute/base/base_scriptable.cpp b/engines/wintermute/base/base_scriptable.cpp
index be1e18c..d2ff627 100644
--- a/engines/wintermute/base/base_scriptable.cpp
+++ b/engines/wintermute/base/base_scriptable.cpp
@@ -153,7 +153,7 @@ void BaseScriptable::scSetBool(bool val) {
 //////////////////////////////////////////////////////////////////////////
 bool BaseScriptable::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferPtr(TMEMBER_PTR(_gameRef));
-	persistMgr->transfer(TMEMBER(_refCount));
+	persistMgr->transferSint32(TMEMBER(_refCount));
 	persistMgr->transferPtr(TMEMBER_PTR(_scProp));
 	persistMgr->transferPtr(TMEMBER_PTR(_scValue));
 
diff --git a/engines/wintermute/base/base_sprite.cpp b/engines/wintermute/base/base_sprite.cpp
index afc3312..c8e0d87 100644
--- a/engines/wintermute/base/base_sprite.cpp
+++ b/engines/wintermute/base/base_sprite.cpp
@@ -524,12 +524,12 @@ bool BaseSprite::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferBool(TMEMBER(_changed));
 	persistMgr->transferBool(TMEMBER(_paused));
 	persistMgr->transferBool(TMEMBER(_continuous));
-	persistMgr->transfer(TMEMBER(_currentFrame));
+	persistMgr->transferSint32(TMEMBER(_currentFrame));
 	persistMgr->transferBool(TMEMBER(_editorAllFrames));
-	persistMgr->transfer(TMEMBER(_editorBgAlpha));
+	persistMgr->transferSint32(TMEMBER(_editorBgAlpha));
 	persistMgr->transfer(TMEMBER(_editorBgFile));
-	persistMgr->transfer(TMEMBER(_editorBgOffsetX));
-	persistMgr->transfer(TMEMBER(_editorBgOffsetY));
+	persistMgr->transferSint32(TMEMBER(_editorBgOffsetX));
+	persistMgr->transferSint32(TMEMBER(_editorBgOffsetY));
 	persistMgr->transferBool(TMEMBER(_editorMuted));
 	persistMgr->transferBool(TMEMBER(_finished));
 
@@ -537,8 +537,8 @@ bool BaseSprite::persist(BasePersistenceManager *persistMgr) {
 
 	persistMgr->transferUint32(TMEMBER(_lastFrameTime));
 	persistMgr->transferBool(TMEMBER(_looping));
-	persistMgr->transfer(TMEMBER(_moveX));
-	persistMgr->transfer(TMEMBER(_moveY));
+	persistMgr->transferSint32(TMEMBER(_moveX));
+	persistMgr->transferSint32(TMEMBER(_moveY));
 	persistMgr->transferPtr(TMEMBER_PTR(_owner));
 	persistMgr->transferBool(TMEMBER(_precise));
 	persistMgr->transferBool(TMEMBER(_streamed));
diff --git a/engines/wintermute/base/base_sub_frame.cpp b/engines/wintermute/base/base_sub_frame.cpp
index e214ef9..5d78dfa 100644
--- a/engines/wintermute/base/base_sub_frame.cpp
+++ b/engines/wintermute/base/base_sub_frame.cpp
@@ -389,8 +389,8 @@ bool BaseSubFrame::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferUint32(TMEMBER(_alpha));
 	persistMgr->transferBool(TMEMBER(_decoration));
 	persistMgr->transferBool(TMEMBER(_editorSelected));
-	persistMgr->transfer(TMEMBER(_hotspotX));
-	persistMgr->transfer(TMEMBER(_hotspotY));
+	persistMgr->transferSint32(TMEMBER(_hotspotX));
+	persistMgr->transferSint32(TMEMBER(_hotspotY));
 	persistMgr->transferRect32(TMEMBER(_rect));
 	persistMgr->transferBool(TMEMBER(_wantsDefaultRect));
 
@@ -399,7 +399,7 @@ bool BaseSubFrame::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferByte(TMEMBER(_cKRed));
 	persistMgr->transferByte(TMEMBER(_cKGreen));
 	persistMgr->transferByte(TMEMBER(_cKBlue));
-	persistMgr->transfer(TMEMBER(_lifeTime));
+	persistMgr->transferSint32(TMEMBER(_lifeTime));
 
 	persistMgr->transferBool(TMEMBER(_keepLoaded));
 	persistMgr->transferBool(TMEMBER(_mirrorX));
diff --git a/engines/wintermute/base/base_viewport.cpp b/engines/wintermute/base/base_viewport.cpp
index acc0ee7..a6e8b17 100644
--- a/engines/wintermute/base/base_viewport.cpp
+++ b/engines/wintermute/base/base_viewport.cpp
@@ -55,8 +55,8 @@ bool BaseViewport::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferPtr(TMEMBER_PTR(_gameRef));
 
 	persistMgr->transferPtr(TMEMBER_PTR(_mainObject));
-	persistMgr->transfer(TMEMBER(_offsetX));
-	persistMgr->transfer(TMEMBER(_offsetY));
+	persistMgr->transferSint32(TMEMBER(_offsetX));
+	persistMgr->transferSint32(TMEMBER(_offsetY));
 	persistMgr->transferRect32(TMEMBER(_rect));
 
 	return STATUS_OK;
diff --git a/engines/wintermute/base/font/base_font_bitmap.cpp b/engines/wintermute/base/font/base_font_bitmap.cpp
index dd54e5e..95f9a83 100644
--- a/engines/wintermute/base/font/base_font_bitmap.cpp
+++ b/engines/wintermute/base/font/base_font_bitmap.cpp
@@ -495,13 +495,13 @@ bool BaseFontBitmap::loadBuffer(char *buffer) {
 bool BaseFontBitmap::persist(BasePersistenceManager *persistMgr) {
 
 	BaseFont::persist(persistMgr);
-	persistMgr->transfer(TMEMBER(_numColumns));
+	persistMgr->transferSint32(TMEMBER(_numColumns));
 
 	persistMgr->transferPtr(TMEMBER_PTR(_subframe));
-	persistMgr->transfer(TMEMBER(_tileHeight));
-	persistMgr->transfer(TMEMBER(_tileWidth));
+	persistMgr->transferSint32(TMEMBER(_tileHeight));
+	persistMgr->transferSint32(TMEMBER(_tileWidth));
 	persistMgr->transferPtr(TMEMBER_PTR(_sprite));
-	persistMgr->transfer(TMEMBER(_widthsFrame));
+	persistMgr->transferSint32(TMEMBER(_widthsFrame));
 
 	if (persistMgr->getIsSaving()) {
 		persistMgr->putBytes(_widths, sizeof(_widths));
diff --git a/engines/wintermute/base/font/base_font_truetype.cpp b/engines/wintermute/base/font/base_font_truetype.cpp
index 13e88f5..ac97588 100644
--- a/engines/wintermute/base/font/base_font_truetype.cpp
+++ b/engines/wintermute/base/font/base_font_truetype.cpp
@@ -524,7 +524,7 @@ bool BaseFontTT::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferBool(TMEMBER(_isItalic));
 	persistMgr->transferBool(TMEMBER(_isUnderline));
 	persistMgr->transferBool(TMEMBER(_isStriked));
-	persistMgr->transfer(TMEMBER(_fontHeight));
+	persistMgr->transferSint32(TMEMBER(_fontHeight));
 	persistMgr->transfer(TMEMBER(_fontFile));
 
 
@@ -532,13 +532,13 @@ bool BaseFontTT::persist(BasePersistenceManager *persistMgr) {
 	int32 numLayers;
 	if (persistMgr->getIsSaving()) {
 		numLayers = _layers.size();
-		persistMgr->transfer(TMEMBER(numLayers));
+		persistMgr->transferSint32(TMEMBER(numLayers));
 		for (int i = 0; i < numLayers; i++) {
 			_layers[i]->persist(persistMgr);
 		}
 	} else {
 		numLayers = _layers.size();
-		persistMgr->transfer(TMEMBER(numLayers));
+		persistMgr->transferSint32(TMEMBER(numLayers));
 		for (int i = 0; i < numLayers; i++) {
 			BaseTTFontLayer *layer = new BaseTTFontLayer;
 			layer->persist(persistMgr);
diff --git a/engines/wintermute/base/font/base_font_truetype.h b/engines/wintermute/base/font/base_font_truetype.h
index 47b9edd..2d7ebba 100644
--- a/engines/wintermute/base/font/base_font_truetype.h
+++ b/engines/wintermute/base/font/base_font_truetype.h
@@ -84,8 +84,8 @@ public:
 		}
 
 		bool persist(BasePersistenceManager *persistMgr) {
-			persistMgr->transfer(TMEMBER(_offsetX));
-			persistMgr->transfer(TMEMBER(_offsetY));
+			persistMgr->transferSint32(TMEMBER(_offsetX));
+			persistMgr->transferSint32(TMEMBER(_offsetY));
 			persistMgr->transferUint32(TMEMBER(_color));
 			return STATUS_OK;
 		}
diff --git a/engines/wintermute/base/gfx/base_renderer.cpp b/engines/wintermute/base/gfx/base_renderer.cpp
index 818010e..6bc27f0 100644
--- a/engines/wintermute/base/gfx/base_renderer.cpp
+++ b/engines/wintermute/base/gfx/base_renderer.cpp
@@ -175,10 +175,10 @@ void BaseRenderer::endSaveLoad() {
 void BaseRenderer::persistSaveLoadImages(BasePersistenceManager *persistMgr) {
 	persistMgr->transfer(TMEMBER(_loadImageName));
 	persistMgr->transfer(TMEMBER(_saveImageName));
-	persistMgr->transfer(TMEMBER(_saveImageX));
-	persistMgr->transfer(TMEMBER(_saveImageY));
-	persistMgr->transfer(TMEMBER(_loadImageX));
-	persistMgr->transfer(TMEMBER(_loadImageY));
+	persistMgr->transferSint32(TMEMBER(_saveImageX));
+	persistMgr->transferSint32(TMEMBER(_saveImageY));
+	persistMgr->transferSint32(TMEMBER(_loadImageX));
+	persistMgr->transferSint32(TMEMBER(_loadImageY));
 }
 
 //////////////////////////////////////////////////////////////////////
diff --git a/engines/wintermute/base/particles/part_emitter.cpp b/engines/wintermute/base/particles/part_emitter.cpp
index bd59a7a..73f98d1 100644
--- a/engines/wintermute/base/particles/part_emitter.cpp
+++ b/engines/wintermute/base/particles/part_emitter.cpp
@@ -1156,11 +1156,11 @@ const char *PartEmitter::scToString() {
 bool PartEmitter::persist(BasePersistenceManager *persistMgr) {
 	BaseObject::persist(persistMgr);
 
-	persistMgr->transfer(TMEMBER(_width));
-	persistMgr->transfer(TMEMBER(_height));
+	persistMgr->transferSint32(TMEMBER(_width));
+	persistMgr->transferSint32(TMEMBER(_height));
 
-	persistMgr->transfer(TMEMBER(_angle1));
-	persistMgr->transfer(TMEMBER(_angle2));
+	persistMgr->transferSint32(TMEMBER(_angle1));
+	persistMgr->transferSint32(TMEMBER(_angle2));
 
 	persistMgr->transferFloat(TMEMBER(_velocity1));
 	persistMgr->transferFloat(TMEMBER(_velocity2));
@@ -1170,29 +1170,29 @@ bool PartEmitter::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferFloat(TMEMBER(_scale2));
 	persistMgr->transferBool(TMEMBER(_scaleZBased));
 
-	persistMgr->transfer(TMEMBER(_maxParticles));
+	persistMgr->transferSint32(TMEMBER(_maxParticles));
 
-	persistMgr->transfer(TMEMBER(_lifeTime1));
-	persistMgr->transfer(TMEMBER(_lifeTime2));
+	persistMgr->transferSint32(TMEMBER(_lifeTime1));
+	persistMgr->transferSint32(TMEMBER(_lifeTime2));
 	persistMgr->transferBool(TMEMBER(_lifeTimeZBased));
 
-	persistMgr->transfer(TMEMBER(_genInterval));
-	persistMgr->transfer(TMEMBER(_genAmount));
+	persistMgr->transferSint32(TMEMBER(_genInterval));
+	persistMgr->transferSint32(TMEMBER(_genAmount));
 
 	persistMgr->transferBool(TMEMBER(_running));
-	persistMgr->transfer(TMEMBER(_overheadTime));
+	persistMgr->transferSint32(TMEMBER(_overheadTime));
 
 	persistMgr->transferRect32(TMEMBER(_border));
-	persistMgr->transfer(TMEMBER(_borderThicknessLeft));
-	persistMgr->transfer(TMEMBER(_borderThicknessRight));
-	persistMgr->transfer(TMEMBER(_borderThicknessTop));
-	persistMgr->transfer(TMEMBER(_borderThicknessBottom));
+	persistMgr->transferSint32(TMEMBER(_borderThicknessLeft));
+	persistMgr->transferSint32(TMEMBER(_borderThicknessRight));
+	persistMgr->transferSint32(TMEMBER(_borderThicknessTop));
+	persistMgr->transferSint32(TMEMBER(_borderThicknessBottom));
 
-	persistMgr->transfer(TMEMBER(_fadeInTime));
-	persistMgr->transfer(TMEMBER(_fadeOutTime));
+	persistMgr->transferSint32(TMEMBER(_fadeInTime));
+	persistMgr->transferSint32(TMEMBER(_fadeOutTime));
 
-	persistMgr->transfer(TMEMBER(_alpha1));
-	persistMgr->transfer(TMEMBER(_alpha2));
+	persistMgr->transferSint32(TMEMBER(_alpha1));
+	persistMgr->transferSint32(TMEMBER(_alpha2));
 	persistMgr->transferBool(TMEMBER(_alphaTimeBased));
 
 	persistMgr->transferFloat(TMEMBER(_angVelocity1));
@@ -1207,8 +1207,8 @@ bool PartEmitter::persist(BasePersistenceManager *persistMgr) {
 
 	persistMgr->transferBool(TMEMBER(_useRegion));
 
-	persistMgr->transfer(TMEMBER_INT(_maxBatches));
-	persistMgr->transfer(TMEMBER_INT(_batchesGenerated));
+	persistMgr->transferSint32(TMEMBER_INT(_maxBatches));
+	persistMgr->transferSint32(TMEMBER_INT(_batchesGenerated));
 
 	persistMgr->transfer(TMEMBER(_emitEvent));
 	persistMgr->transferPtr(TMEMBER_PTR(_owner));
diff --git a/engines/wintermute/base/particles/part_force.cpp b/engines/wintermute/base/particles/part_force.cpp
index e7583e5..4355e65 100644
--- a/engines/wintermute/base/particles/part_force.cpp
+++ b/engines/wintermute/base/particles/part_force.cpp
@@ -57,7 +57,7 @@ bool PartForce::persist(BasePersistenceManager *persistMgr) {
 	}
 	persistMgr->transferVector2(TMEMBER(_pos));
 	persistMgr->transferVector2(TMEMBER(_direction));
-	persistMgr->transfer(TMEMBER_INT(_type));
+	persistMgr->transferSint32(TMEMBER_INT(_type));
 
 	return STATUS_OK;
 }
diff --git a/engines/wintermute/base/particles/part_particle.cpp b/engines/wintermute/base/particles/part_particle.cpp
index 62faf73..7c38f54 100644
--- a/engines/wintermute/base/particles/part_particle.cpp
+++ b/engines/wintermute/base/particles/part_particle.cpp
@@ -230,25 +230,25 @@ bool PartParticle::fadeOut(uint32 currentTime, int fadeTime) {
 
 //////////////////////////////////////////////////////////////////////////
 bool PartParticle::persist(BasePersistenceManager *persistMgr) {
-	persistMgr->transfer(TMEMBER(_alpha1));
-	persistMgr->transfer(TMEMBER(_alpha2));
+	persistMgr->transferSint32(TMEMBER(_alpha1));
+	persistMgr->transferSint32(TMEMBER(_alpha2));
 	persistMgr->transferRect32(TMEMBER(_border));
 	persistMgr->transferVector2(TMEMBER(_pos));
 	persistMgr->transferFloat(TMEMBER(_posZ));
 	persistMgr->transferVector2(TMEMBER(_velocity));
 	persistMgr->transferFloat(TMEMBER(_scale));
 	persistMgr->transferUint32(TMEMBER(_creationTime));
-	persistMgr->transfer(TMEMBER(_lifeTime));
+	persistMgr->transferSint32(TMEMBER(_lifeTime));
 	persistMgr->transferBool(TMEMBER(_isDead));
-	persistMgr->transfer(TMEMBER_INT(_state));
+	persistMgr->transferSint32(TMEMBER_INT(_state));
 	persistMgr->transferUint32(TMEMBER(_fadeStart));
-	persistMgr->transfer(TMEMBER(_fadeTime));
-	persistMgr->transfer(TMEMBER(_currentAlpha));
+	persistMgr->transferSint32(TMEMBER(_fadeTime));
+	persistMgr->transferSint32(TMEMBER(_currentAlpha));
 	persistMgr->transferFloat(TMEMBER(_angVelocity));
 	persistMgr->transferFloat(TMEMBER(_rotation));
 	persistMgr->transferFloat(TMEMBER(_growthRate));
 	persistMgr->transferBool(TMEMBER(_exponentialGrowth));
-	persistMgr->transfer(TMEMBER(_fadeStartAlpha));
+	persistMgr->transferSint32(TMEMBER(_fadeStartAlpha));
 
 	if (persistMgr->getIsSaving()) {
 		const char *filename = _sprite->getFilename();
diff --git a/engines/wintermute/base/scriptables/script.cpp b/engines/wintermute/base/scriptables/script.cpp
index e3f8219..ebe9758 100644
--- a/engines/wintermute/base/scriptables/script.cpp
+++ b/engines/wintermute/base/scriptables/script.cpp
@@ -1254,7 +1254,7 @@ bool ScScript::persist(BasePersistenceManager *persistMgr) {
 		} else {
 			// don't save idle/finished scripts
 			int32 bufferSize = 0;
-			persistMgr->transfer(TMEMBER(bufferSize));
+			persistMgr->transferSint32(TMEMBER(bufferSize));
 		}
 	} else {
 		persistMgr->transferUint32(TMEMBER(_bufferSize));
@@ -1270,7 +1270,7 @@ bool ScScript::persist(BasePersistenceManager *persistMgr) {
 	}
 
 	persistMgr->transferPtr(TMEMBER_PTR(_callStack));
-	persistMgr->transfer(TMEMBER(_currentLine));
+	persistMgr->transferSint32(TMEMBER(_currentLine));
 	persistMgr->transferPtr(TMEMBER_PTR(_engine));
 	persistMgr->transfer(TMEMBER(_filename));
 	persistMgr->transferBool(TMEMBER(_freezable));
@@ -1278,9 +1278,9 @@ bool ScScript::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferUint32(TMEMBER(_iP));
 	persistMgr->transferPtr(TMEMBER_PTR(_scopeStack));
 	persistMgr->transferPtr(TMEMBER_PTR(_stack));
-	persistMgr->transfer(TMEMBER_INT(_state));
+	persistMgr->transferSint32(TMEMBER_INT(_state));
 	persistMgr->transferPtr(TMEMBER_PTR(_operand));
-	persistMgr->transfer(TMEMBER_INT(_origState));
+	persistMgr->transferSint32(TMEMBER_INT(_origState));
 	persistMgr->transferPtr(TMEMBER_PTR(_owner));
 	persistMgr->transferPtr(TMEMBER_PTR(_reg1));
 	persistMgr->transferBool(TMEMBER(_thread));
diff --git a/engines/wintermute/base/scriptables/script_ext_array.cpp b/engines/wintermute/base/scriptables/script_ext_array.cpp
index 7f1c769..c4ad045 100644
--- a/engines/wintermute/base/scriptables/script_ext_array.cpp
+++ b/engines/wintermute/base/scriptables/script_ext_array.cpp
@@ -214,7 +214,7 @@ bool SXArray::scSetProperty(const char *name, ScValue *value) {
 bool SXArray::persist(BasePersistenceManager *persistMgr) {
 	BaseScriptable::persist(persistMgr);
 
-	persistMgr->transfer(TMEMBER(_length));
+	persistMgr->transferSint32(TMEMBER(_length));
 	persistMgr->transferPtr(TMEMBER_PTR(_values));
 
 	return STATUS_OK;
diff --git a/engines/wintermute/base/scriptables/script_ext_date.cpp b/engines/wintermute/base/scriptables/script_ext_date.cpp
index d88bfc5..6b9c5ff 100644
--- a/engines/wintermute/base/scriptables/script_ext_date.cpp
+++ b/engines/wintermute/base/scriptables/script_ext_date.cpp
@@ -243,15 +243,15 @@ bool SXDate::persist(BasePersistenceManager *persistMgr) {
 	int32 hour = _tm.tm_hour;
 	int32 min = _tm.tm_min;
 	int32 sec = _tm.tm_sec;
-	persistMgr->transfer(TMEMBER(year));
-	persistMgr->transfer(TMEMBER(mon));
-	persistMgr->transfer(TMEMBER(mday));
-	persistMgr->transfer(TMEMBER(hour));
-	persistMgr->transfer(TMEMBER(min));
-	persistMgr->transfer(TMEMBER(sec));
+	persistMgr->transferSint32(TMEMBER(year));
+	persistMgr->transferSint32(TMEMBER(mon));
+	persistMgr->transferSint32(TMEMBER(mday));
+	persistMgr->transferSint32(TMEMBER(hour));
+	persistMgr->transferSint32(TMEMBER(min));
+	persistMgr->transferSint32(TMEMBER(sec));
 	if (persistMgr->checkVersion(1, 2, 1)) {
 		int32 wday = _tm.tm_wday;
-		persistMgr->transfer(TMEMBER(wday));
+		persistMgr->transferSint32(TMEMBER(wday));
 		_tm.tm_wday = wday;
 	}
 	_tm.tm_year = year;
diff --git a/engines/wintermute/base/scriptables/script_ext_file.cpp b/engines/wintermute/base/scriptables/script_ext_file.cpp
index fad2f92..cb16486 100644
--- a/engines/wintermute/base/scriptables/script_ext_file.cpp
+++ b/engines/wintermute/base/scriptables/script_ext_file.cpp
@@ -767,7 +767,7 @@ bool SXFile::persist(BasePersistenceManager *persistMgr) {
 	BaseScriptable::persist(persistMgr);
 
 	persistMgr->transfer(TMEMBER(_filename));
-	persistMgr->transfer(TMEMBER(_mode));
+	persistMgr->transferSint32(TMEMBER(_mode));
 	persistMgr->transferBool(TMEMBER(_textMode));
 
 	uint32 pos = 0;
diff --git a/engines/wintermute/base/scriptables/script_ext_mem_buffer.cpp b/engines/wintermute/base/scriptables/script_ext_mem_buffer.cpp
index 6a47c09..39f8b58 100644
--- a/engines/wintermute/base/scriptables/script_ext_mem_buffer.cpp
+++ b/engines/wintermute/base/scriptables/script_ext_mem_buffer.cpp
@@ -498,7 +498,7 @@ bool SXMemBuffer::persist(BasePersistenceManager *persistMgr) {
 
 	BaseScriptable::persist(persistMgr);
 
-	persistMgr->transfer(TMEMBER(_size));
+	persistMgr->transferSint32(TMEMBER(_size));
 
 	if (persistMgr->getIsSaving()) {
 		if (_size > 0) {
diff --git a/engines/wintermute/base/scriptables/script_ext_string.cpp b/engines/wintermute/base/scriptables/script_ext_string.cpp
index 2f2422c..b6d2844 100644
--- a/engines/wintermute/base/scriptables/script_ext_string.cpp
+++ b/engines/wintermute/base/scriptables/script_ext_string.cpp
@@ -406,7 +406,7 @@ bool SXString::persist(BasePersistenceManager *persistMgr) {
 
 	BaseScriptable::persist(persistMgr);
 
-	persistMgr->transfer(TMEMBER(_capacity));
+	persistMgr->transferSint32(TMEMBER(_capacity));
 
 	if (persistMgr->getIsSaving()) {
 		if (_capacity > 0) {
diff --git a/engines/wintermute/base/scriptables/script_stack.cpp b/engines/wintermute/base/scriptables/script_stack.cpp
index 801ac6a..c828b39 100644
--- a/engines/wintermute/base/scriptables/script_stack.cpp
+++ b/engines/wintermute/base/scriptables/script_stack.cpp
@@ -186,7 +186,7 @@ bool ScStack::persist(BasePersistenceManager *persistMgr) {
 
 	persistMgr->transferPtr(TMEMBER_PTR(_gameRef));
 
-	persistMgr->transfer(TMEMBER(_sP));
+	persistMgr->transferSint32(TMEMBER(_sP));
 	_values.persist(persistMgr);
 
 	return STATUS_OK;
diff --git a/engines/wintermute/base/scriptables/script_value.cpp b/engines/wintermute/base/scriptables/script_value.cpp
index 5b27574..94e66fc 100644
--- a/engines/wintermute/base/scriptables/script_value.cpp
+++ b/engines/wintermute/base/scriptables/script_value.cpp
@@ -793,17 +793,17 @@ bool ScValue::persist(BasePersistenceManager *persistMgr) {
 
 	persistMgr->transferBool(TMEMBER(_persistent));
 	persistMgr->transferBool(TMEMBER(_isConstVar));
-	persistMgr->transfer(TMEMBER_INT(_type));
+	persistMgr->transferSint32(TMEMBER_INT(_type));
 	persistMgr->transferBool(TMEMBER(_valBool));
 	persistMgr->transferDouble(TMEMBER(_valFloat));
-	persistMgr->transfer(TMEMBER(_valInt));
+	persistMgr->transferSint32(TMEMBER(_valInt));
 	persistMgr->transferPtr(TMEMBER_PTR(_valNative));
 
 	int32 size;
 	const char *str;
 	if (persistMgr->getIsSaving()) {
 		size = _valObject.size();
-		persistMgr->transfer("", &size);
+		persistMgr->transferSint32("", &size);
 		_valIter = _valObject.begin();
 		while (_valIter != _valObject.end()) {
 			str = _valIter->_key.c_str();
@@ -814,7 +814,7 @@ bool ScValue::persist(BasePersistenceManager *persistMgr) {
 		}
 	} else {
 		ScValue *val = nullptr;
-		persistMgr->transfer("", &size);
+		persistMgr->transferSint32("", &size);
 		for (int i = 0; i < size; i++) {
 			persistMgr->transfer("", &str);
 			persistMgr->transferPtr("", &val);
diff --git a/engines/wintermute/base/sound/base_sound.cpp b/engines/wintermute/base/sound/base_sound.cpp
index 9fc5871..11408c2 100644
--- a/engines/wintermute/base/sound/base_sound.cpp
+++ b/engines/wintermute/base/sound/base_sound.cpp
@@ -172,9 +172,9 @@ bool BaseSound::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferBool(TMEMBER(_soundFreezePaused));
 	persistMgr->transferBool(TMEMBER(_soundPlaying));
 	persistMgr->transferUint32(TMEMBER(_soundPosition));
-	persistMgr->transfer(TMEMBER(_soundPrivateVolume));
+	persistMgr->transferSint32(TMEMBER(_soundPrivateVolume));
 	persistMgr->transferBool(TMEMBER(_soundStreamed));
-	persistMgr->transfer(TMEMBER_INT(_soundType));
+	persistMgr->transferSint32(TMEMBER_INT(_soundType));
 	persistMgr->transferUint32(TMEMBER(_soundLoopStart));
 
 	return STATUS_OK;
diff --git a/engines/wintermute/coll_templ.h b/engines/wintermute/coll_templ.h
index a3df92d6..d688fa0 100644
--- a/engines/wintermute/coll_templ.h
+++ b/engines/wintermute/coll_templ.h
@@ -67,7 +67,7 @@ class BaseArray : public BaseArrayBase<TYPE> {
 		int32 j;
 		if (persistMgr->getIsSaving()) {
 			j = Common::Array<TYPE>::size();
-			persistMgr->transfer("ArraySize", &j);
+			persistMgr->transferSint32("ArraySize", &j);
 			typename Common::Array<TYPE>::const_iterator it = Common::Array<TYPE>::begin();
 			for (; it != Common::Array<TYPE>::end(); ++it) {
 				TYPE obj = *it;
@@ -75,7 +75,7 @@ class BaseArray : public BaseArrayBase<TYPE> {
 			}
 		} else {
 			Common::Array<TYPE>::clear();
-			persistMgr->transfer("ArraySize", &j);
+			persistMgr->transferSint32("ArraySize", &j);
 			for (int i = 0; i < j; i++) {
 				TYPE obj = nullptr;
 				persistMgr->transferPtr("", &obj);
@@ -93,7 +93,7 @@ class BaseArray<char *> : public BaseArrayBase<char *> {
 		int32 j;
 		if (persistMgr->getIsSaving()) {
 			j = Common::Array<char *>::size();
-			persistMgr->transfer("ArraySize", &j);
+			persistMgr->transferSint32("ArraySize", &j);
 			Common::Array<char *>::const_iterator it = Common::Array<char *>::begin();
 			for (; it != Common::Array<char *>::end(); ++it) {
 				char * obj = *it;
@@ -101,7 +101,7 @@ class BaseArray<char *> : public BaseArrayBase<char *> {
 			}
 		} else {
 			Common::Array<char *>::clear();
-			persistMgr->transfer("ArraySize", &j);
+			persistMgr->transferSint32("ArraySize", &j);
 			for (int i = 0; i < j; i++) {
 				char * obj = nullptr;
 				persistMgr->transfer("", &obj);
@@ -119,7 +119,7 @@ public:
 		int32 j;
 		if (persistMgr->getIsSaving()) {
 			j = Common::Array<const char *>::size();
-			persistMgr->transfer("ArraySize", &j);
+			persistMgr->transferSint32("ArraySize", &j);
 			Common::Array<const char *>::const_iterator it = Common::Array<const char *>::begin();
 			for (; it != Common::Array<const char *>::end(); ++it) {
 				const char * obj = *it;
@@ -127,7 +127,7 @@ public:
 			}
 		} else {
 			Common::Array<const char *>::clear();
-			persistMgr->transfer("ArraySize", &j);
+			persistMgr->transferSint32("ArraySize", &j);
 			for (int i = 0; i < j; i++) {
 				const char * obj = nullptr;
 				persistMgr->transfer("", &obj);
diff --git a/engines/wintermute/ui/ui_button.cpp b/engines/wintermute/ui/ui_button.cpp
index 3cc33f2..7526174 100644
--- a/engines/wintermute/ui/ui_button.cpp
+++ b/engines/wintermute/ui/ui_button.cpp
@@ -1178,7 +1178,7 @@ bool UIButton::persist(BasePersistenceManager *persistMgr) {
 
 	UIObject::persist(persistMgr);
 
-	persistMgr->transfer(TMEMBER_INT(_align));
+	persistMgr->transferSint32(TMEMBER_INT(_align));
 	persistMgr->transferPtr(TMEMBER_PTR(_backDisable));
 	persistMgr->transferPtr(TMEMBER_PTR(_backFocus));
 	persistMgr->transferPtr(TMEMBER_PTR(_backHover));
diff --git a/engines/wintermute/ui/ui_edit.cpp b/engines/wintermute/ui/ui_edit.cpp
index 5608bcc..8df33f1 100644
--- a/engines/wintermute/ui/ui_edit.cpp
+++ b/engines/wintermute/ui/ui_edit.cpp
@@ -935,11 +935,11 @@ bool UIEdit::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferUint32(TMEMBER(_cursorBlinkRate));
 	persistMgr->transfer(TMEMBER(_cursorChar));
 	persistMgr->transferPtr(TMEMBER_PTR(_fontSelected));
-	persistMgr->transfer(TMEMBER(_frameWidth));
-	persistMgr->transfer(TMEMBER(_maxLength));
-	persistMgr->transfer(TMEMBER(_scrollOffset));
-	persistMgr->transfer(TMEMBER(_selEnd));
-	persistMgr->transfer(TMEMBER(_selStart));
+	persistMgr->transferSint32(TMEMBER(_frameWidth));
+	persistMgr->transferSint32(TMEMBER(_maxLength));
+	persistMgr->transferSint32(TMEMBER(_scrollOffset));
+	persistMgr->transferSint32(TMEMBER(_selEnd));
+	persistMgr->transferSint32(TMEMBER(_selStart));
 
 	if (!persistMgr->getIsSaving()) {
 		_cursorVisible = false;
diff --git a/engines/wintermute/ui/ui_object.cpp b/engines/wintermute/ui/ui_object.cpp
index 8dfd95f..27fc91c 100644
--- a/engines/wintermute/ui/ui_object.cpp
+++ b/engines/wintermute/ui/ui_object.cpp
@@ -626,7 +626,7 @@ bool UIObject::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferBool(TMEMBER(_disable));
 	persistMgr->transferPtr(TMEMBER_PTR(_focusedWidget));
 	persistMgr->transferPtr(TMEMBER_PTR(_font));
-	persistMgr->transfer(TMEMBER(_height));
+	persistMgr->transferSint32(TMEMBER(_height));
 	persistMgr->transferPtr(TMEMBER_PTR(_image));
 	persistMgr->transferPtr(TMEMBER_PTR(_listenerObject));
 	persistMgr->transferPtr(TMEMBER_PTR(_listenerParamObject));
@@ -636,9 +636,9 @@ bool UIObject::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferBool(TMEMBER(_sharedFonts));
 	persistMgr->transferBool(TMEMBER(_sharedImages));
 	persistMgr->transfer(TMEMBER(_text));
-	persistMgr->transfer(TMEMBER_INT(_type));
+	persistMgr->transferSint32(TMEMBER_INT(_type));
 	persistMgr->transferBool(TMEMBER(_visible));
-	persistMgr->transfer(TMEMBER(_width));
+	persistMgr->transferSint32(TMEMBER(_width));
 
 	return STATUS_OK;
 }
diff --git a/engines/wintermute/ui/ui_text.cpp b/engines/wintermute/ui/ui_text.cpp
index 117b1ff..b255e6e 100644
--- a/engines/wintermute/ui/ui_text.cpp
+++ b/engines/wintermute/ui/ui_text.cpp
@@ -503,8 +503,8 @@ const char *UIText::scToString() {
 bool UIText::persist(BasePersistenceManager *persistMgr) {
 
 	UIObject::persist(persistMgr);
-	persistMgr->transfer(TMEMBER_INT(_textAlign));
-	persistMgr->transfer(TMEMBER_INT(_verticalAlign));
+	persistMgr->transferSint32(TMEMBER_INT(_textAlign));
+	persistMgr->transferSint32(TMEMBER_INT(_verticalAlign));
 
 	return STATUS_OK;
 }
diff --git a/engines/wintermute/ui/ui_window.cpp b/engines/wintermute/ui/ui_window.cpp
index 2aaa3fd..842bf70 100644
--- a/engines/wintermute/ui/ui_window.cpp
+++ b/engines/wintermute/ui/ui_window.cpp
@@ -1268,10 +1268,10 @@ bool UIWindow::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferPtr(TMEMBER_PTR(_imageInactive));
 	persistMgr->transferBool(TMEMBER(_inGame));
 	persistMgr->transferBool(TMEMBER(_isMenu));
-	persistMgr->transfer(TMEMBER_INT(_mode));
+	persistMgr->transferSint32(TMEMBER_INT(_mode));
 	persistMgr->transferPtr(TMEMBER_PTR(_shieldButton));
 	persistMgr->transferPtr(TMEMBER_PTR(_shieldWindow));
-	persistMgr->transfer(TMEMBER_INT(_titleAlign));
+	persistMgr->transferSint32(TMEMBER_INT(_titleAlign));
 	persistMgr->transferRect32(TMEMBER(_titleRect));
 	persistMgr->transferBool(TMEMBER(_transparent));
 	persistMgr->transferPtr(TMEMBER_PTR(_viewport));
diff --git a/engines/wintermute/video/video_theora_player.cpp b/engines/wintermute/video/video_theora_player.cpp
index 33d1010..d27ca5a 100644
--- a/engines/wintermute/video/video_theora_player.cpp
+++ b/engines/wintermute/video/video_theora_player.cpp
@@ -492,15 +492,15 @@ bool VideoTheoraPlayer::persist(BasePersistenceManager *persistMgr) {
 
 	persistMgr->transferPtr(TMEMBER_PTR(_gameRef));
 	persistMgr->transferUint32(TMEMBER(_savedPos));
-	persistMgr->transfer(TMEMBER(_savedState));
+	persistMgr->transferSint32(TMEMBER(_savedState));
 	persistMgr->transfer(TMEMBER(_filename));
 	persistMgr->transfer(TMEMBER(_alphaFilename));
-	persistMgr->transfer(TMEMBER(_posX));
-	persistMgr->transfer(TMEMBER(_posY));
+	persistMgr->transferSint32(TMEMBER(_posX));
+	persistMgr->transferSint32(TMEMBER(_posY));
 	persistMgr->transferFloat(TMEMBER(_playZoom));
-	persistMgr->transfer(TMEMBER_INT(_playbackType));
+	persistMgr->transferSint32(TMEMBER_INT(_playbackType));
 	persistMgr->transferBool(TMEMBER(_looping));
-	persistMgr->transfer(TMEMBER(_volume));
+	persistMgr->transferSint32(TMEMBER(_volume));
 
 	if (!persistMgr->getIsSaving() && (_savedState != THEORA_STATE_NONE)) {
 		initializeSimple();


Commit: 237d3d86ecd84fc2084c7739a6ff054e3b0c829b
    https://github.com/scummvm/scummvm/commit/237d3d86ecd84fc2084c7739a6ff054e3b0c829b
Author: Einar Johan Trøan Sømåen (einarjohants at gmail.com)
Date: 2013-11-05T04:54:25-08:00

Commit Message:
WINTERMUTE: Transfer Char* explicitly when saving/loading.

Changed paths:
    engines/wintermute/ad/ad_entity.cpp
    engines/wintermute/ad/ad_game.cpp
    engines/wintermute/ad/ad_item.cpp
    engines/wintermute/ad/ad_node_state.cpp
    engines/wintermute/ad/ad_object.cpp
    engines/wintermute/ad/ad_response.cpp
    engines/wintermute/ad/ad_response_box.cpp
    engines/wintermute/ad/ad_response_context.cpp
    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_node.cpp
    engines/wintermute/base/base_object.cpp
    engines/wintermute/base/base_persistence_manager.cpp
    engines/wintermute/base/base_persistence_manager.h
    engines/wintermute/base/base_script_holder.cpp
    engines/wintermute/base/base_sprite.cpp
    engines/wintermute/base/base_sub_frame.cpp
    engines/wintermute/base/font/base_font_truetype.cpp
    engines/wintermute/base/particles/part_emitter.cpp
    engines/wintermute/base/particles/part_particle.cpp
    engines/wintermute/base/scriptables/script.cpp
    engines/wintermute/base/scriptables/script_ext_file.cpp
    engines/wintermute/base/scriptables/script_value.cpp
    engines/wintermute/coll_templ.h
    engines/wintermute/ui/ui_edit.cpp
    engines/wintermute/ui/ui_object.cpp



diff --git a/engines/wintermute/ad/ad_entity.cpp b/engines/wintermute/ad/ad_entity.cpp
index a927c17..098da49 100644
--- a/engines/wintermute/ad/ad_entity.cpp
+++ b/engines/wintermute/ad/ad_entity.cpp
@@ -1092,7 +1092,7 @@ void AdEntity::updatePosition() {
 bool AdEntity::persist(BasePersistenceManager *persistMgr) {
 	AdTalkHolder::persist(persistMgr);
 
-	persistMgr->transfer(TMEMBER(_item));
+	persistMgr->transferCharPtr(TMEMBER(_item));
 	persistMgr->transferPtr(TMEMBER_PTR(_region));
 	//persistMgr->transfer(TMEMBER(_sprite));
 	persistMgr->transferSint32(TMEMBER_INT(_subtype));
diff --git a/engines/wintermute/ad/ad_game.cpp b/engines/wintermute/ad/ad_game.cpp
index e06d6cd..904b8a5 100644
--- a/engines/wintermute/ad/ad_game.cpp
+++ b/engines/wintermute/ad/ad_game.cpp
@@ -1417,8 +1417,8 @@ bool AdGame::persist(BasePersistenceManager *persistMgr) {
 
 	_objects.persist(persistMgr);
 
-	persistMgr->transfer(TMEMBER(_prevSceneName));
-	persistMgr->transfer(TMEMBER(_prevSceneFilename));
+	persistMgr->transferCharPtr(TMEMBER(_prevSceneName));
+	persistMgr->transferCharPtr(TMEMBER(_prevSceneFilename));
 
 	persistMgr->transferPtr(TMEMBER_PTR(_responseBox));
 	_responsesBranch.persist(persistMgr);
@@ -1426,7 +1426,7 @@ bool AdGame::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferPtr(TMEMBER_PTR(_scene));
 	_sceneStates.persist(persistMgr);
 	persistMgr->transferBool(TMEMBER(_scheduledFadeIn));
-	persistMgr->transfer(TMEMBER(_scheduledScene));
+	persistMgr->transferCharPtr(TMEMBER(_scheduledScene));
 	persistMgr->transferPtr(TMEMBER_PTR(_selectedItem));
 	persistMgr->transferSint32(TMEMBER_INT(_talkSkipButton));
 
@@ -1435,14 +1435,14 @@ bool AdGame::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferPtr(TMEMBER_PTR(_sceneViewport));
 	persistMgr->transferSint32(TMEMBER_INT(_stateEx));
 	persistMgr->transferBool(TMEMBER(_initialScene));
-	persistMgr->transfer(TMEMBER(_debugStartupScene));
+	persistMgr->transferCharPtr(TMEMBER(_debugStartupScene));
 
 	persistMgr->transferPtr(TMEMBER_PTR(_invObject));
 	persistMgr->transferPtr(TMEMBER_PTR(_inventoryOwner));
 	persistMgr->transferBool(TMEMBER(_tempDisableSaveState));
 	_items.persist(persistMgr);
 
-	persistMgr->transfer(TMEMBER(_itemsFile));
+	persistMgr->transferCharPtr(TMEMBER(_itemsFile));
 
 	_speechDirs.persist(persistMgr);
 	persistMgr->transferBool(TMEMBER(_smartItemCursor));
@@ -1451,7 +1451,7 @@ bool AdGame::persist(BasePersistenceManager *persistMgr) {
 		_initialScene = false;
 	}
 
-	persistMgr->transfer(TMEMBER(_startupScene));
+	persistMgr->transferCharPtr(TMEMBER(_startupScene));
 
 
 	return STATUS_OK;
diff --git a/engines/wintermute/ad/ad_item.cpp b/engines/wintermute/ad/ad_item.cpp
index c8359add..1f19a3e 100644
--- a/engines/wintermute/ad/ad_item.cpp
+++ b/engines/wintermute/ad/ad_item.cpp
@@ -793,7 +793,7 @@ bool AdItem::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferSint32(TMEMBER(_amountOffsetX));
 	persistMgr->transferSint32(TMEMBER(_amountOffsetY));
 	persistMgr->transferSint32(TMEMBER_INT(_amountAlign));
-	persistMgr->transfer(TMEMBER(_amountString));
+	persistMgr->transferCharPtr(TMEMBER(_amountString));
 
 	return STATUS_OK;
 }
diff --git a/engines/wintermute/ad/ad_node_state.cpp b/engines/wintermute/ad/ad_node_state.cpp
index 8793c40..dd07f23 100644
--- a/engines/wintermute/ad/ad_node_state.cpp
+++ b/engines/wintermute/ad/ad_node_state.cpp
@@ -96,12 +96,12 @@ bool AdNodeState::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferPtr(TMEMBER_PTR(_gameRef));
 
 	persistMgr->transferBool(TMEMBER(_active));
-	persistMgr->transfer(TMEMBER(_name));
-	persistMgr->transfer(TMEMBER(_filename));
-	persistMgr->transfer(TMEMBER(_cursor));
+	persistMgr->transferCharPtr(TMEMBER(_name));
+	persistMgr->transferCharPtr(TMEMBER(_filename));
+	persistMgr->transferCharPtr(TMEMBER(_cursor));
 	persistMgr->transferUint32(TMEMBER(_alphaColor));
 	for (int i = 0; i < 7; i++) {
-		persistMgr->transfer(TMEMBER(_caption[i]));
+		persistMgr->transferCharPtr(TMEMBER(_caption[i]));
 	}
 
 	return STATUS_OK;
diff --git a/engines/wintermute/ad/ad_object.cpp b/engines/wintermute/ad/ad_object.cpp
index fbeacee..3664e0f 100644
--- a/engines/wintermute/ad/ad_object.cpp
+++ b/engines/wintermute/ad/ad_object.cpp
@@ -1043,7 +1043,7 @@ bool AdObject::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferSint32(TMEMBER_INT(_state));
 	persistMgr->transferPtr(TMEMBER_PTR(_animSprite));
 	persistMgr->transferBool(TMEMBER(_sceneIndependent));
-	persistMgr->transfer(TMEMBER(_forcedTalkAnimName));
+	persistMgr->transferCharPtr(TMEMBER(_forcedTalkAnimName));
 	persistMgr->transferBool(TMEMBER(_forcedTalkAnimUsed));
 	persistMgr->transferPtr(TMEMBER_PTR(_tempSprite2));
 	persistMgr->transferSint32(TMEMBER_INT(_type));
diff --git a/engines/wintermute/ad/ad_response.cpp b/engines/wintermute/ad/ad_response.cpp
index 8d8f9a1..e7b4188 100644
--- a/engines/wintermute/ad/ad_response.cpp
+++ b/engines/wintermute/ad/ad_response.cpp
@@ -135,8 +135,8 @@ bool AdResponse::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferPtr(TMEMBER_PTR(_iconHover));
 	persistMgr->transferPtr(TMEMBER_PTR(_iconPressed));
 	persistMgr->transferSint32(TMEMBER(_iD));
-	persistMgr->transfer(TMEMBER(_text));
-	persistMgr->transfer(TMEMBER(_textOrig));
+	persistMgr->transferCharPtr(TMEMBER(_text));
+	persistMgr->transferCharPtr(TMEMBER(_textOrig));
 	persistMgr->transferSint32(TMEMBER_INT(_responseType));
 	persistMgr->transferPtr(TMEMBER_PTR(_font));
 
diff --git a/engines/wintermute/ad/ad_response_box.cpp b/engines/wintermute/ad/ad_response_box.cpp
index ea2e223..f2e986c 100644
--- a/engines/wintermute/ad/ad_response_box.cpp
+++ b/engines/wintermute/ad/ad_response_box.cpp
@@ -584,8 +584,8 @@ bool AdResponseBox::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferPtr(TMEMBER_PTR(_font));
 	persistMgr->transferPtr(TMEMBER_PTR(_fontHover));
 	persistMgr->transferBool(TMEMBER(_horizontal));
-	persistMgr->transfer(TMEMBER(_lastResponseText));
-	persistMgr->transfer(TMEMBER(_lastResponseTextOrig));
+	persistMgr->transferCharPtr(TMEMBER(_lastResponseText));
+	persistMgr->transferCharPtr(TMEMBER(_lastResponseTextOrig));
 	_respButtons.persist(persistMgr);
 	persistMgr->transferRect32(TMEMBER(_responseArea));
 	_responses.persist(persistMgr);
diff --git a/engines/wintermute/ad/ad_response_context.cpp b/engines/wintermute/ad/ad_response_context.cpp
index dcafc55..44b43a6 100644
--- a/engines/wintermute/ad/ad_response_context.cpp
+++ b/engines/wintermute/ad/ad_response_context.cpp
@@ -50,7 +50,7 @@ AdResponseContext::~AdResponseContext() {
 //////////////////////////////////////////////////////////////////////////
 bool AdResponseContext::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferPtr(TMEMBER_PTR(_gameRef));
-	persistMgr->transfer(TMEMBER(_context));
+	persistMgr->transferCharPtr(TMEMBER(_context));
 	persistMgr->transferSint32(TMEMBER(_id));
 
 	return STATUS_OK;
diff --git a/engines/wintermute/ad/ad_scene_state.cpp b/engines/wintermute/ad/ad_scene_state.cpp
index 58cb5f5..a421875 100644
--- a/engines/wintermute/ad/ad_scene_state.cpp
+++ b/engines/wintermute/ad/ad_scene_state.cpp
@@ -56,7 +56,7 @@ AdSceneState::~AdSceneState() {
 
 //////////////////////////////////////////////////////////////////////////
 bool AdSceneState::persist(BasePersistenceManager *persistMgr) {
-	persistMgr->transfer(TMEMBER(_filename));
+	persistMgr->transferCharPtr(TMEMBER(_filename));
 	_nodeStates.persist(persistMgr);
 
 	return STATUS_OK;
diff --git a/engines/wintermute/ad/ad_sentence.cpp b/engines/wintermute/ad/ad_sentence.cpp
index 514a6b8..21ffac5 100644
--- a/engines/wintermute/ad/ad_sentence.cpp
+++ b/engines/wintermute/ad/ad_sentence.cpp
@@ -252,17 +252,17 @@ bool AdSentence::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferSint32(TMEMBER_INT(_align));
 	persistMgr->transferSint32(TMEMBER(_currentStance));
 	persistMgr->transferPtr(TMEMBER_PTR(_currentSprite));
-	persistMgr->transfer(TMEMBER(_currentSkelAnim));
+	persistMgr->transferCharPtr(TMEMBER(_currentSkelAnim));
 	persistMgr->transferUint32(TMEMBER(_duration));
 	persistMgr->transferPtr(TMEMBER_PTR(_font));
 	persistMgr->transferPoint32(TMEMBER(_pos));
 	persistMgr->transferPtr(TMEMBER_PTR(_sound));
 	persistMgr->transferBool(TMEMBER(_soundStarted));
-	persistMgr->transfer(TMEMBER(_stances));
+	persistMgr->transferCharPtr(TMEMBER(_stances));
 	persistMgr->transferUint32(TMEMBER(_startTime));
 	persistMgr->transferPtr(TMEMBER_PTR(_talkDef));
-	persistMgr->transfer(TMEMBER(_tempStance));
-	persistMgr->transfer(TMEMBER(_text));
+	persistMgr->transferCharPtr(TMEMBER(_tempStance));
+	persistMgr->transferCharPtr(TMEMBER(_text));
 	persistMgr->transferSint32(TMEMBER(_width));
 	persistMgr->transferBool(TMEMBER(_fixedPos));
 	persistMgr->transferBool(TMEMBER(_freezable));
diff --git a/engines/wintermute/ad/ad_talk_def.cpp b/engines/wintermute/ad/ad_talk_def.cpp
index 1fdeed4..22e3d7b 100644
--- a/engines/wintermute/ad/ad_talk_def.cpp
+++ b/engines/wintermute/ad/ad_talk_def.cpp
@@ -209,9 +209,9 @@ bool AdTalkDef::persist(BasePersistenceManager *persistMgr) {
 	BaseObject::persist(persistMgr);
 
 	persistMgr->transferPtr(TMEMBER_PTR(_defaultSprite));
-	persistMgr->transfer(TMEMBER(_defaultSpriteFilename));
+	persistMgr->transferCharPtr(TMEMBER(_defaultSpriteFilename));
 	persistMgr->transferPtr(TMEMBER_PTR(_defaultSpriteSet));
-	persistMgr->transfer(TMEMBER(_defaultSpriteSetFilename));
+	persistMgr->transferCharPtr(TMEMBER(_defaultSpriteSetFilename));
 
 	_nodes.persist(persistMgr);
 
diff --git a/engines/wintermute/ad/ad_talk_node.cpp b/engines/wintermute/ad/ad_talk_node.cpp
index 2afaaec..6c0d2e1 100644
--- a/engines/wintermute/ad/ad_talk_node.cpp
+++ b/engines/wintermute/ad/ad_talk_node.cpp
@@ -191,14 +191,14 @@ bool AdTalkNode::loadBuffer(char *buffer, bool complete) {
 
 //////////////////////////////////////////////////////////////////////////
 bool AdTalkNode::persist(BasePersistenceManager *persistMgr) {
-	persistMgr->transfer(TMEMBER(_comment));
+	persistMgr->transferCharPtr(TMEMBER(_comment));
 	persistMgr->transferUint32(TMEMBER(_startTime));
 	persistMgr->transferUint32(TMEMBER(_endTime));
 	persistMgr->transferBool(TMEMBER(_playToEnd));
 	persistMgr->transferPtr(TMEMBER_PTR(_sprite));
-	persistMgr->transfer(TMEMBER(_spriteFilename));
+	persistMgr->transferCharPtr(TMEMBER(_spriteFilename));
 	persistMgr->transferPtr(TMEMBER_PTR(_spriteSet));
-	persistMgr->transfer(TMEMBER(_spriteSetFilename));
+	persistMgr->transferCharPtr(TMEMBER(_spriteSetFilename));
 
 	return STATUS_OK;
 }
diff --git a/engines/wintermute/base/base_object.cpp b/engines/wintermute/base/base_object.cpp
index 2e0c612..540c7dd 100644
--- a/engines/wintermute/base/base_object.cpp
+++ b/engines/wintermute/base/base_object.cpp
@@ -953,7 +953,7 @@ bool BaseObject::persist(BasePersistenceManager *persistMgr) {
 	BaseScriptHolder::persist(persistMgr);
 
 	for (int i = 0; i < 7; i++) {
-		persistMgr->transfer(TMEMBER(_caption[i]));
+		persistMgr->transferCharPtr(TMEMBER(_caption[i]));
 	}
 	persistMgr->transferPtr(TMEMBER_PTR(_activeCursor));
 	persistMgr->transferUint32(TMEMBER(_alphaColor));
@@ -979,7 +979,7 @@ bool BaseObject::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferBool(TMEMBER(_rectSet));
 	persistMgr->transferBool(TMEMBER(_registrable));
 	persistMgr->transferBool(TMEMBER(_shadowable));
-	persistMgr->transfer(TMEMBER(_soundEvent));
+	persistMgr->transferCharPtr(TMEMBER(_soundEvent));
 	persistMgr->transferBool(TMEMBER(_zoomable));
 
 	persistMgr->transferFloat(TMEMBER(_scaleX));
diff --git a/engines/wintermute/base/base_persistence_manager.cpp b/engines/wintermute/base/base_persistence_manager.cpp
index eb2bffe..b9f52b2 100644
--- a/engines/wintermute/base/base_persistence_manager.cpp
+++ b/engines/wintermute/base/base_persistence_manager.cpp
@@ -682,7 +682,7 @@ bool BasePersistenceManager::transferDouble(const char *name, double *val) {
 
 //////////////////////////////////////////////////////////////////////////
 // char*
-bool BasePersistenceManager::transfer(const char *name, char **val) {
+bool BasePersistenceManager::transferCharPtr(const char *name, char **val) {
 	if (_saving) {
 		putString(*val);
 		return STATUS_OK;
diff --git a/engines/wintermute/base/base_persistence_manager.h b/engines/wintermute/base/base_persistence_manager.h
index aba4776..2735e2b 100644
--- a/engines/wintermute/base/base_persistence_manager.h
+++ b/engines/wintermute/base/base_persistence_manager.h
@@ -83,7 +83,7 @@ public:
 	bool transferRect32(const char *name, Rect32 *val);
 	bool transferPoint32(const char *name, Point32 *val);
 	bool transfer(const char *name, const char **val);
-	bool transfer(const char *name, char **val);
+	bool transferCharPtr(const char *name, char **val);
 	bool transfer(const char *name, Common::String *val);
 	bool transferVector2(const char *name, Vector2 *val);
 	bool transfer(const char *name, AnsiStringArray &Val);
diff --git a/engines/wintermute/base/base_script_holder.cpp b/engines/wintermute/base/base_script_holder.cpp
index 2e21b3e..d59aac4 100644
--- a/engines/wintermute/base/base_script_holder.cpp
+++ b/engines/wintermute/base/base_script_holder.cpp
@@ -280,14 +280,14 @@ bool BaseScriptHolder::saveAsText(BaseDynamicBuffer *buffer, int indent) {
 bool BaseScriptHolder::persist(BasePersistenceManager *persistMgr) {
 	BaseScriptable::persist(persistMgr);
 
-	persistMgr->transfer(TMEMBER(_filename));
+	persistMgr->transferCharPtr(TMEMBER(_filename));
 	persistMgr->transferBool(TMEMBER(_freezable));
 	if (persistMgr->getIsSaving()) {
 		const char *name = getName();
 		persistMgr->transfer(TMEMBER(name));
 	} else {
 		char *name;
-		persistMgr->transfer(TMEMBER(name));
+		persistMgr->transferCharPtr(TMEMBER(name));
 		setName(name);
 		delete[] name;
 	}
diff --git a/engines/wintermute/base/base_sprite.cpp b/engines/wintermute/base/base_sprite.cpp
index c8e0d87..b1fcb42 100644
--- a/engines/wintermute/base/base_sprite.cpp
+++ b/engines/wintermute/base/base_sprite.cpp
@@ -527,7 +527,7 @@ bool BaseSprite::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferSint32(TMEMBER(_currentFrame));
 	persistMgr->transferBool(TMEMBER(_editorAllFrames));
 	persistMgr->transferSint32(TMEMBER(_editorBgAlpha));
-	persistMgr->transfer(TMEMBER(_editorBgFile));
+	persistMgr->transferCharPtr(TMEMBER(_editorBgFile));
 	persistMgr->transferSint32(TMEMBER(_editorBgOffsetX));
 	persistMgr->transferSint32(TMEMBER(_editorBgOffsetY));
 	persistMgr->transferBool(TMEMBER(_editorMuted));
diff --git a/engines/wintermute/base/base_sub_frame.cpp b/engines/wintermute/base/base_sub_frame.cpp
index 5d78dfa..38eebb0 100644
--- a/engines/wintermute/base/base_sub_frame.cpp
+++ b/engines/wintermute/base/base_sub_frame.cpp
@@ -394,7 +394,7 @@ bool BaseSubFrame::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferRect32(TMEMBER(_rect));
 	persistMgr->transferBool(TMEMBER(_wantsDefaultRect));
 
-	persistMgr->transfer(TMEMBER(_surfaceFilename));
+	persistMgr->transferCharPtr(TMEMBER(_surfaceFilename));
 	persistMgr->transferBool(TMEMBER(_cKDefault));
 	persistMgr->transferByte(TMEMBER(_cKRed));
 	persistMgr->transferByte(TMEMBER(_cKGreen));
diff --git a/engines/wintermute/base/font/base_font_truetype.cpp b/engines/wintermute/base/font/base_font_truetype.cpp
index ac97588..55481c7 100644
--- a/engines/wintermute/base/font/base_font_truetype.cpp
+++ b/engines/wintermute/base/font/base_font_truetype.cpp
@@ -525,7 +525,7 @@ bool BaseFontTT::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferBool(TMEMBER(_isUnderline));
 	persistMgr->transferBool(TMEMBER(_isStriked));
 	persistMgr->transferSint32(TMEMBER(_fontHeight));
-	persistMgr->transfer(TMEMBER(_fontFile));
+	persistMgr->transferCharPtr(TMEMBER(_fontFile));
 
 
 	// persist layers
diff --git a/engines/wintermute/base/particles/part_emitter.cpp b/engines/wintermute/base/particles/part_emitter.cpp
index 73f98d1..061352b 100644
--- a/engines/wintermute/base/particles/part_emitter.cpp
+++ b/engines/wintermute/base/particles/part_emitter.cpp
@@ -1210,7 +1210,7 @@ bool PartEmitter::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferSint32(TMEMBER_INT(_maxBatches));
 	persistMgr->transferSint32(TMEMBER_INT(_batchesGenerated));
 
-	persistMgr->transfer(TMEMBER(_emitEvent));
+	persistMgr->transferCharPtr(TMEMBER(_emitEvent));
 	persistMgr->transferPtr(TMEMBER_PTR(_owner));
 
 
diff --git a/engines/wintermute/base/particles/part_particle.cpp b/engines/wintermute/base/particles/part_particle.cpp
index 7c38f54..5ba1a70 100644
--- a/engines/wintermute/base/particles/part_particle.cpp
+++ b/engines/wintermute/base/particles/part_particle.cpp
@@ -255,7 +255,7 @@ bool PartParticle::persist(BasePersistenceManager *persistMgr) {
 		persistMgr->transfer(TMEMBER(filename));
 	} else {
 		char *filename;
-		persistMgr->transfer(TMEMBER(filename));
+		persistMgr->transferCharPtr(TMEMBER(filename));
 		SystemClassRegistry::getInstance()->_disabled = true;
 		setSprite(filename);
 		SystemClassRegistry::getInstance()->_disabled = false;
diff --git a/engines/wintermute/base/scriptables/script.cpp b/engines/wintermute/base/scriptables/script.cpp
index ebe9758..5e4ae3e 100644
--- a/engines/wintermute/base/scriptables/script.cpp
+++ b/engines/wintermute/base/scriptables/script.cpp
@@ -1272,7 +1272,7 @@ bool ScScript::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferPtr(TMEMBER_PTR(_callStack));
 	persistMgr->transferSint32(TMEMBER(_currentLine));
 	persistMgr->transferPtr(TMEMBER_PTR(_engine));
-	persistMgr->transfer(TMEMBER(_filename));
+	persistMgr->transferCharPtr(TMEMBER(_filename));
 	persistMgr->transferBool(TMEMBER(_freezable));
 	persistMgr->transferPtr(TMEMBER_PTR(_globals));
 	persistMgr->transferUint32(TMEMBER(_iP));
@@ -1284,7 +1284,7 @@ bool ScScript::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferPtr(TMEMBER_PTR(_owner));
 	persistMgr->transferPtr(TMEMBER_PTR(_reg1));
 	persistMgr->transferBool(TMEMBER(_thread));
-	persistMgr->transfer(TMEMBER(_threadEvent));
+	persistMgr->transferCharPtr(TMEMBER(_threadEvent));
 	persistMgr->transferPtr(TMEMBER_PTR(_thisStack));
 	persistMgr->transferUint32(TMEMBER(_timeSlice));
 	persistMgr->transferPtr(TMEMBER_PTR(_waitObject));
diff --git a/engines/wintermute/base/scriptables/script_ext_file.cpp b/engines/wintermute/base/scriptables/script_ext_file.cpp
index cb16486..dcd4f01 100644
--- a/engines/wintermute/base/scriptables/script_ext_file.cpp
+++ b/engines/wintermute/base/scriptables/script_ext_file.cpp
@@ -766,7 +766,7 @@ bool SXFile::persist(BasePersistenceManager *persistMgr) {
 
 	BaseScriptable::persist(persistMgr);
 
-	persistMgr->transfer(TMEMBER(_filename));
+	persistMgr->transferCharPtr(TMEMBER(_filename));
 	persistMgr->transferSint32(TMEMBER(_mode));
 	persistMgr->transferBool(TMEMBER(_textMode));
 
diff --git a/engines/wintermute/base/scriptables/script_value.cpp b/engines/wintermute/base/scriptables/script_value.cpp
index 94e66fc..e0c8609 100644
--- a/engines/wintermute/base/scriptables/script_value.cpp
+++ b/engines/wintermute/base/scriptables/script_value.cpp
@@ -825,7 +825,7 @@ bool ScValue::persist(BasePersistenceManager *persistMgr) {
 	}
 
 	persistMgr->transferPtr(TMEMBER_PTR(_valRef));
-	persistMgr->transfer(TMEMBER(_valString));
+	persistMgr->transferCharPtr(TMEMBER(_valString));
 
 	if (!persistMgr->getIsSaving() && !persistMgr->checkVersion(1,2,2)) {
 		// Savegames prior to 1.2.2 stored empty strings as NULL.
diff --git a/engines/wintermute/coll_templ.h b/engines/wintermute/coll_templ.h
index d688fa0..552cd4a 100644
--- a/engines/wintermute/coll_templ.h
+++ b/engines/wintermute/coll_templ.h
@@ -97,14 +97,14 @@ class BaseArray<char *> : public BaseArrayBase<char *> {
 			Common::Array<char *>::const_iterator it = Common::Array<char *>::begin();
 			for (; it != Common::Array<char *>::end(); ++it) {
 				char * obj = *it;
-				persistMgr->transfer("", &obj);
+				persistMgr->transferCharPtr("", &obj);
 			}
 		} else {
 			Common::Array<char *>::clear();
 			persistMgr->transferSint32("ArraySize", &j);
 			for (int i = 0; i < j; i++) {
 				char * obj = nullptr;
-				persistMgr->transfer("", &obj);
+				persistMgr->transferCharPtr("", &obj);
 				add(obj);
 			}
 		}
diff --git a/engines/wintermute/ui/ui_edit.cpp b/engines/wintermute/ui/ui_edit.cpp
index 8df33f1..1f224c7 100644
--- a/engines/wintermute/ui/ui_edit.cpp
+++ b/engines/wintermute/ui/ui_edit.cpp
@@ -933,7 +933,7 @@ bool UIEdit::persist(BasePersistenceManager *persistMgr) {
 	UIObject::persist(persistMgr);
 
 	persistMgr->transferUint32(TMEMBER(_cursorBlinkRate));
-	persistMgr->transfer(TMEMBER(_cursorChar));
+	persistMgr->transferCharPtr(TMEMBER(_cursorChar));
 	persistMgr->transferPtr(TMEMBER_PTR(_fontSelected));
 	persistMgr->transferSint32(TMEMBER(_frameWidth));
 	persistMgr->transferSint32(TMEMBER(_maxLength));
diff --git a/engines/wintermute/ui/ui_object.cpp b/engines/wintermute/ui/ui_object.cpp
index 27fc91c..c04c7cb 100644
--- a/engines/wintermute/ui/ui_object.cpp
+++ b/engines/wintermute/ui/ui_object.cpp
@@ -635,7 +635,7 @@ bool UIObject::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferBool(TMEMBER(_parentNotify));
 	persistMgr->transferBool(TMEMBER(_sharedFonts));
 	persistMgr->transferBool(TMEMBER(_sharedImages));
-	persistMgr->transfer(TMEMBER(_text));
+	persistMgr->transferCharPtr(TMEMBER(_text));
 	persistMgr->transferSint32(TMEMBER_INT(_type));
 	persistMgr->transferBool(TMEMBER(_visible));
 	persistMgr->transferSint32(TMEMBER(_width));


Commit: 4e2bec5311c3f1cad1beb21d5c46539fdc8a7747
    https://github.com/scummvm/scummvm/commit/4e2bec5311c3f1cad1beb21d5c46539fdc8a7747
Author: Einar Johan Trøan Sømåen (einarjohants at gmail.com)
Date: 2013-11-05T04:58:02-08:00

Commit Message:
WINTERMUTE: Transfer Const Char* explicitly when saving/loading.

Changed paths:
    engines/wintermute/base/base_persistence_manager.cpp
    engines/wintermute/base/base_persistence_manager.h
    engines/wintermute/base/base_script_holder.cpp
    engines/wintermute/base/particles/part_force.cpp
    engines/wintermute/base/particles/part_particle.cpp
    engines/wintermute/base/scriptables/script_value.cpp
    engines/wintermute/coll_templ.h



diff --git a/engines/wintermute/base/base_persistence_manager.cpp b/engines/wintermute/base/base_persistence_manager.cpp
index b9f52b2..97907de 100644
--- a/engines/wintermute/base/base_persistence_manager.cpp
+++ b/engines/wintermute/base/base_persistence_manager.cpp
@@ -699,7 +699,7 @@ bool BasePersistenceManager::transferCharPtr(const char *name, char **val) {
 
 //////////////////////////////////////////////////////////////////////////
 // const char*
-bool BasePersistenceManager::transfer(const char *name, const char **val) {
+bool BasePersistenceManager::transferConstChar(const char *name, const char **val) {
 	if (_saving) {
 		putString(*val);
 		return STATUS_OK;
diff --git a/engines/wintermute/base/base_persistence_manager.h b/engines/wintermute/base/base_persistence_manager.h
index 2735e2b..2cb360e 100644
--- a/engines/wintermute/base/base_persistence_manager.h
+++ b/engines/wintermute/base/base_persistence_manager.h
@@ -82,7 +82,7 @@ public:
 	bool transferByte(const char *name, byte *val);
 	bool transferRect32(const char *name, Rect32 *val);
 	bool transferPoint32(const char *name, Point32 *val);
-	bool transfer(const char *name, const char **val);
+	bool transferConstChar(const char *name, const char **val);
 	bool transferCharPtr(const char *name, char **val);
 	bool transfer(const char *name, Common::String *val);
 	bool transferVector2(const char *name, Vector2 *val);
diff --git a/engines/wintermute/base/base_script_holder.cpp b/engines/wintermute/base/base_script_holder.cpp
index d59aac4..5fb0b62 100644
--- a/engines/wintermute/base/base_script_holder.cpp
+++ b/engines/wintermute/base/base_script_holder.cpp
@@ -284,7 +284,7 @@ bool BaseScriptHolder::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferBool(TMEMBER(_freezable));
 	if (persistMgr->getIsSaving()) {
 		const char *name = getName();
-		persistMgr->transfer(TMEMBER(name));
+		persistMgr->transferConstChar(TMEMBER(name));
 	} else {
 		char *name;
 		persistMgr->transferCharPtr(TMEMBER(name));
diff --git a/engines/wintermute/base/particles/part_force.cpp b/engines/wintermute/base/particles/part_force.cpp
index 4355e65..39d98c1 100644
--- a/engines/wintermute/base/particles/part_force.cpp
+++ b/engines/wintermute/base/particles/part_force.cpp
@@ -49,10 +49,10 @@ PartForce::~PartForce(void) {
 bool PartForce::persist(BasePersistenceManager *persistMgr) {
 	if (persistMgr->getIsSaving()) {
 		const char *name = getName();
-		persistMgr->transfer(TMEMBER(name));
+		persistMgr->transferConstChar(TMEMBER(name));
 	} else {
 		const char *name;
-		persistMgr->transfer(TMEMBER(name));
+		persistMgr->transferConstChar(TMEMBER(name));
 		setName(name);
 	}
 	persistMgr->transferVector2(TMEMBER(_pos));
diff --git a/engines/wintermute/base/particles/part_particle.cpp b/engines/wintermute/base/particles/part_particle.cpp
index 5ba1a70..11470561 100644
--- a/engines/wintermute/base/particles/part_particle.cpp
+++ b/engines/wintermute/base/particles/part_particle.cpp
@@ -252,7 +252,7 @@ bool PartParticle::persist(BasePersistenceManager *persistMgr) {
 
 	if (persistMgr->getIsSaving()) {
 		const char *filename = _sprite->getFilename();
-		persistMgr->transfer(TMEMBER(filename));
+		persistMgr->transferConstChar(TMEMBER(filename));
 	} else {
 		char *filename;
 		persistMgr->transferCharPtr(TMEMBER(filename));
diff --git a/engines/wintermute/base/scriptables/script_value.cpp b/engines/wintermute/base/scriptables/script_value.cpp
index e0c8609..5236764 100644
--- a/engines/wintermute/base/scriptables/script_value.cpp
+++ b/engines/wintermute/base/scriptables/script_value.cpp
@@ -807,7 +807,7 @@ bool ScValue::persist(BasePersistenceManager *persistMgr) {
 		_valIter = _valObject.begin();
 		while (_valIter != _valObject.end()) {
 			str = _valIter->_key.c_str();
-			persistMgr->transfer("", &str);
+			persistMgr->transferConstChar("", &str);
 			persistMgr->transferPtr("", &_valIter->_value);
 
 			_valIter++;
@@ -816,7 +816,7 @@ bool ScValue::persist(BasePersistenceManager *persistMgr) {
 		ScValue *val = nullptr;
 		persistMgr->transferSint32("", &size);
 		for (int i = 0; i < size; i++) {
-			persistMgr->transfer("", &str);
+			persistMgr->transferConstChar("", &str);
 			persistMgr->transferPtr("", &val);
 
 			_valObject[str] = val;
diff --git a/engines/wintermute/coll_templ.h b/engines/wintermute/coll_templ.h
index 552cd4a..307989e 100644
--- a/engines/wintermute/coll_templ.h
+++ b/engines/wintermute/coll_templ.h
@@ -123,14 +123,14 @@ public:
 			Common::Array<const char *>::const_iterator it = Common::Array<const char *>::begin();
 			for (; it != Common::Array<const char *>::end(); ++it) {
 				const char * obj = *it;
-				persistMgr->transfer("", &obj);
+				persistMgr->transferConstChar("", &obj);
 			}
 		} else {
 			Common::Array<const char *>::clear();
 			persistMgr->transferSint32("ArraySize", &j);
 			for (int i = 0; i < j; i++) {
 				const char * obj = nullptr;
-				persistMgr->transfer("", &obj);
+				persistMgr->transferConstChar("", &obj);
 				add(obj);
 			}
 		}


Commit: cc33cf74aee6f024c4f1f4dec95dea4c72b3139d
    https://github.com/scummvm/scummvm/commit/cc33cf74aee6f024c4f1f4dec95dea4c72b3139d
Author: Einar Johan Trøan Sømåen (einarjohants at gmail.com)
Date: 2013-11-05T04:59:55-08:00

Commit Message:
WINTERMUTE: Transfer Common::Strings explicitly when saving/loading.

Changed paths:
    engines/wintermute/ad/ad_actor.cpp
    engines/wintermute/base/base_persistence_manager.cpp
    engines/wintermute/base/base_persistence_manager.h
    engines/wintermute/base/gfx/base_renderer.cpp
    engines/wintermute/base/sound/base_sound.cpp
    engines/wintermute/video/video_theora_player.cpp



diff --git a/engines/wintermute/ad/ad_actor.cpp b/engines/wintermute/ad/ad_actor.cpp
index e440a13..33ad39b 100644
--- a/engines/wintermute/ad/ad_actor.cpp
+++ b/engines/wintermute/ad/ad_actor.cpp
@@ -1337,11 +1337,11 @@ bool AdActor::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferPtr(TMEMBER_PTR(_walkSprite));
 
 	persistMgr->transferPtr(TMEMBER_PTR(_animSprite2));
-	persistMgr->transfer(TMEMBER(_talkAnimName));
-	persistMgr->transfer(TMEMBER(_idleAnimName));
-	persistMgr->transfer(TMEMBER(_walkAnimName));
-	persistMgr->transfer(TMEMBER(_turnLeftAnimName));
-	persistMgr->transfer(TMEMBER(_turnRightAnimName));
+	persistMgr->transferString(TMEMBER(_talkAnimName));
+	persistMgr->transferString(TMEMBER(_idleAnimName));
+	persistMgr->transferString(TMEMBER(_walkAnimName));
+	persistMgr->transferString(TMEMBER(_turnLeftAnimName));
+	persistMgr->transferString(TMEMBER(_turnRightAnimName));
 
 	_anims.persist(persistMgr);
 
diff --git a/engines/wintermute/base/base_persistence_manager.cpp b/engines/wintermute/base/base_persistence_manager.cpp
index 97907de..12ac1ff 100644
--- a/engines/wintermute/base/base_persistence_manager.cpp
+++ b/engines/wintermute/base/base_persistence_manager.cpp
@@ -716,7 +716,7 @@ bool BasePersistenceManager::transferConstChar(const char *name, const char **va
 
 //////////////////////////////////////////////////////////////////////////
 // Common::String
-bool BasePersistenceManager::transfer(const char *name, Common::String *val) {
+bool BasePersistenceManager::transferString(const char *name, Common::String *val) {
 	if (_saving) {
 		putString(val->c_str());
 		return STATUS_OK;
diff --git a/engines/wintermute/base/base_persistence_manager.h b/engines/wintermute/base/base_persistence_manager.h
index 2cb360e..3d27fde 100644
--- a/engines/wintermute/base/base_persistence_manager.h
+++ b/engines/wintermute/base/base_persistence_manager.h
@@ -84,7 +84,7 @@ public:
 	bool transferPoint32(const char *name, Point32 *val);
 	bool transferConstChar(const char *name, const char **val);
 	bool transferCharPtr(const char *name, char **val);
-	bool transfer(const char *name, Common::String *val);
+	bool transferString(const char *name, Common::String *val);
 	bool transferVector2(const char *name, Vector2 *val);
 	bool transfer(const char *name, AnsiStringArray &Val);
 	BasePersistenceManager(const char *savePrefix = nullptr, bool deleteSingleton = false);
diff --git a/engines/wintermute/base/gfx/base_renderer.cpp b/engines/wintermute/base/gfx/base_renderer.cpp
index 6bc27f0..858a7fc 100644
--- a/engines/wintermute/base/gfx/base_renderer.cpp
+++ b/engines/wintermute/base/gfx/base_renderer.cpp
@@ -173,8 +173,8 @@ void BaseRenderer::endSaveLoad() {
 }
 
 void BaseRenderer::persistSaveLoadImages(BasePersistenceManager *persistMgr) {
-	persistMgr->transfer(TMEMBER(_loadImageName));
-	persistMgr->transfer(TMEMBER(_saveImageName));
+	persistMgr->transferString(TMEMBER(_loadImageName));
+	persistMgr->transferString(TMEMBER(_saveImageName));
 	persistMgr->transferSint32(TMEMBER(_saveImageX));
 	persistMgr->transferSint32(TMEMBER(_saveImageY));
 	persistMgr->transferSint32(TMEMBER(_loadImageX));
diff --git a/engines/wintermute/base/sound/base_sound.cpp b/engines/wintermute/base/sound/base_sound.cpp
index 11408c2..f9cd59e 100644
--- a/engines/wintermute/base/sound/base_sound.cpp
+++ b/engines/wintermute/base/sound/base_sound.cpp
@@ -166,7 +166,7 @@ bool BaseSound::persist(BasePersistenceManager *persistMgr) {
 
 	persistMgr->transferPtr(TMEMBER_PTR(_gameRef));
 
-	persistMgr->transfer(TMEMBER(_soundFilename));
+	persistMgr->transferString(TMEMBER(_soundFilename));
 	persistMgr->transferBool(TMEMBER(_soundLooping));
 	persistMgr->transferBool(TMEMBER(_soundPaused));
 	persistMgr->transferBool(TMEMBER(_soundFreezePaused));
diff --git a/engines/wintermute/video/video_theora_player.cpp b/engines/wintermute/video/video_theora_player.cpp
index d27ca5a..44eecf9 100644
--- a/engines/wintermute/video/video_theora_player.cpp
+++ b/engines/wintermute/video/video_theora_player.cpp
@@ -493,8 +493,8 @@ bool VideoTheoraPlayer::persist(BasePersistenceManager *persistMgr) {
 	persistMgr->transferPtr(TMEMBER_PTR(_gameRef));
 	persistMgr->transferUint32(TMEMBER(_savedPos));
 	persistMgr->transferSint32(TMEMBER(_savedState));
-	persistMgr->transfer(TMEMBER(_filename));
-	persistMgr->transfer(TMEMBER(_alphaFilename));
+	persistMgr->transferString(TMEMBER(_filename));
+	persistMgr->transferString(TMEMBER(_alphaFilename));
 	persistMgr->transferSint32(TMEMBER(_posX));
 	persistMgr->transferSint32(TMEMBER(_posY));
 	persistMgr->transferFloat(TMEMBER(_playZoom));


Commit: c0f9455b281d62e8089c47ddbed04135c6ed5f20
    https://github.com/scummvm/scummvm/commit/c0f9455b281d62e8089c47ddbed04135c6ed5f20
Author: Einar Johan Trøan Sømåen (einarjohants at gmail.com)
Date: 2013-11-05T05:02:54-08:00

Commit Message:
WINTERMUTE: Remove unused transfer-function. (AnsiStringArray).

Changed paths:
    engines/wintermute/base/base_persistence_manager.cpp
    engines/wintermute/base/base_persistence_manager.h



diff --git a/engines/wintermute/base/base_persistence_manager.cpp b/engines/wintermute/base/base_persistence_manager.cpp
index 12ac1ff..3d0fc0e 100644
--- a/engines/wintermute/base/base_persistence_manager.cpp
+++ b/engines/wintermute/base/base_persistence_manager.cpp
@@ -737,37 +737,6 @@ bool BasePersistenceManager::transferString(const char *name, Common::String *va
 }
 
 //////////////////////////////////////////////////////////////////////////
-bool BasePersistenceManager::transfer(const char *name, AnsiStringArray &val) {
-	size_t size;
-
-	if (_saving) {
-		size = val.size();
-		_saveStream->writeUint32LE(size);
-
-		for (AnsiStringArray::iterator it = val.begin(); it != val.end(); ++it) {
-			putString((*it).c_str());
-		}
-	} else {
-		val.clear();
-		size = _loadStream->readUint32LE();
-
-		for (size_t i = 0; i < size; i++) {
-			char *str = getString();
-			if (_loadStream->err()) {
-				delete[] str;
-				return STATUS_FAILED;
-			}
-			if (str) {
-				val.push_back(str);
-			}
-			delete[] str;
-		}
-	}
-
-	return STATUS_OK;
-}
-
-//////////////////////////////////////////////////////////////////////////
 // BYTE
 bool BasePersistenceManager::transferByte(const char *name, byte *val) {
 	if (_saving) {
diff --git a/engines/wintermute/base/base_persistence_manager.h b/engines/wintermute/base/base_persistence_manager.h
index 3d27fde..43259b2 100644
--- a/engines/wintermute/base/base_persistence_manager.h
+++ b/engines/wintermute/base/base_persistence_manager.h
@@ -86,7 +86,6 @@ public:
 	bool transferCharPtr(const char *name, char **val);
 	bool transferString(const char *name, Common::String *val);
 	bool transferVector2(const char *name, Vector2 *val);
-	bool transfer(const char *name, AnsiStringArray &Val);
 	BasePersistenceManager(const char *savePrefix = nullptr, bool deleteSingleton = false);
 	virtual ~BasePersistenceManager();
 	bool checkVersion(byte  verMajor, byte verMinor, byte verBuild);






More information about the Scummvm-git-logs mailing list