[Scummvm-git-logs] scummvm master -> 5f901676ff0e9007f74a80327e787ae424cfd063

digitall dgturner at iee.org
Mon Aug 26 07:00:43 CEST 2019


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

Summary:
5f901676ff HOPKINS: Fix GCC Compiler Warnings


Commit: 5f901676ff0e9007f74a80327e787ae424cfd063
    https://github.com/scummvm/scummvm/commit/5f901676ff0e9007f74a80327e787ae424cfd063
Author: D G Turner (digitall at scummvm.org)
Date: 2019-08-26T05:58:02+01:00

Commit Message:
HOPKINS: Fix GCC Compiler Warnings

These were from using memset to clear non-trivial structures.

Changed paths:
    engines/hopkins/globals.cpp
    engines/hopkins/globals.h
    engines/hopkins/hopkins.cpp


diff --git a/engines/hopkins/globals.cpp b/engines/hopkins/globals.cpp
index 1f19274..d6f2c49 100644
--- a/engines/hopkins/globals.cpp
+++ b/engines/hopkins/globals.cpp
@@ -181,7 +181,7 @@ void Globals::clearAll() {
 	_vm->_objectsMan->clearAll();
 
 	_saveData = (Savegame *)malloc(sizeof(Savegame));
-	memset(_saveData, 0, sizeof(Savegame));
+	_saveData->reset();
 
 	_vm->_events->clearAll();
 }
diff --git a/engines/hopkins/globals.h b/engines/hopkins/globals.h
index 2e17389..ae69524 100644
--- a/engines/hopkins/globals.h
+++ b/engines/hopkins/globals.h
@@ -25,6 +25,7 @@
 
 #include "common/scummsys.h"
 #include "common/str.h"
+#include "common/util.h"
 #include "common/events.h"
 
 namespace Hopkins {
@@ -39,6 +40,16 @@ struct CharacterLocation {
 	int _startSpriteIndex;
 	int _location;
 	int _zoomFactor;
+
+	void reset() {
+		_pos.x = 0;
+		_pos.y = 0;
+		_startSpriteIndex = 0;
+		_location = 0;
+		_zoomFactor = 0;
+	}
+
+	CharacterLocation() { reset(); }
 };
 
 enum SauvegardeOffset {
@@ -115,6 +126,22 @@ struct Savegame {
 	int16 _inventory[35];	// Originally at offset 1300 of data array
 	int16 _mapCarPosX;
 	int16 _mapCarPosY;
+
+	void reset() {
+		for (uint16 i = 0; i < ARRAYSIZE(_data); i++) {
+			_data[i] = 0;
+		}
+		_cloneHopkins.reset();
+		_realHopkins.reset();
+		_samantha.reset();
+		for (uint16 i = 0; i < ARRAYSIZE(_inventory); i++) {
+			_inventory[i] = 0;
+		}
+		_mapCarPosX = 0;
+		_mapCarPosY = 0;
+	}
+
+	Savegame() { reset(); }
 };
 
 struct CreditItem {
diff --git a/engines/hopkins/hopkins.cpp b/engines/hopkins/hopkins.cpp
index 8f301fd..545af51 100644
--- a/engines/hopkins/hopkins.cpp
+++ b/engines/hopkins/hopkins.cpp
@@ -167,7 +167,7 @@ bool HopkinsEngine::runWin95Demo() {
 
 	_globals->_characterType = CHARACTER_HOPKINS;
 	_objectsMan->_mapCarPosX = _objectsMan->_mapCarPosY = 0;
-	memset(_globals->_saveData, 0, sizeof(Savegame));
+	_globals->_saveData->reset();
 	_globals->_exitId = 0;
 
 	if (getLanguage() != Common::PL_POL)
@@ -471,7 +471,7 @@ bool HopkinsEngine::runLinuxDemo() {
 	_globals->_characterSpriteBuf = _fileIO->loadFile("PERSO.SPR");
 	_globals->_characterType = CHARACTER_HOPKINS;
 	_objectsMan->_mapCarPosX = _objectsMan->_mapCarPosY = 0;
-	memset(_globals->_saveData, 0, sizeof(Savegame));
+	_globals->_saveData->reset();
 	_globals->_exitId = 0;
 
 	if (_startGameSlot != -1)
@@ -838,7 +838,7 @@ bool HopkinsEngine::runFull() {
 	_globals->_characterSpriteBuf = _fileIO->loadFile("PERSO.SPR");
 	_globals->_characterType = CHARACTER_HOPKINS;
 	_objectsMan->_mapCarPosX = _objectsMan->_mapCarPosY = 0;
-	memset(_globals->_saveData, 0, sizeof(Savegame));
+	_globals->_saveData->reset();
 
 	_globals->_exitId = 0;
 





More information about the Scummvm-git-logs mailing list