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

a-yyg 76591232+a-yyg at users.noreply.github.com
Sun Jul 18 07:48:38 UTC 2021


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

Summary:
a5bcf36816 SAGA2: Fix global constructor warnings in task.cpp
5e17d043ed SAGA2: Fix global constructor warnings


Commit: a5bcf36816f73be1e3991f1cab379711f5aabae2
    https://github.com/scummvm/scummvm/commit/a5bcf36816f73be1e3991f1cab379711f5aabae2
Author: a/ (yuri.kgpps at gmail.com)
Date: 2021-07-18T16:43:03+09:00

Commit Message:
SAGA2: Fix global constructor warnings in task.cpp

Changed paths:
    engines/saga2/saga2.cpp
    engines/saga2/saga2.h
    engines/saga2/task.cpp


diff --git a/engines/saga2/saga2.cpp b/engines/saga2/saga2.cpp
index 73b6331c8a..3b2a40b4a5 100644
--- a/engines/saga2/saga2.cpp
+++ b/engines/saga2/saga2.cpp
@@ -92,6 +92,8 @@ Saga2Engine::Saga2Engine(OSystem *syst)
 	_sdpList = nullptr;
 	_containerList = nullptr;
 	_tileImageBanks = nullptr;
+	_stackList = nullptr;
+	_taskList = nullptr;
 }
 
 Saga2Engine::~Saga2Engine() {
diff --git a/engines/saga2/saga2.h b/engines/saga2/saga2.h
index b766d1a314..635579b4a4 100644
--- a/engines/saga2/saga2.h
+++ b/engines/saga2/saga2.h
@@ -70,6 +70,8 @@ class ProtoObj;
 class ActorProto;
 class HandleArray;
 class TileActivityTaskList;
+class TaskStackList;
+class TaskList;
 
 enum {
 	kDebugResources = 1 << 0,
@@ -154,6 +156,8 @@ public:
 	Properties *_properties;
 	HandleArray *_tileImageBanks;
 	TileActivityTaskList *_aTaskList;
+	TaskStackList *_stackList;
+	TaskList *_taskList;
 
 
 	gDisplayPort _mainPort;
diff --git a/engines/saga2/task.cpp b/engines/saga2/task.cpp
index 93d8a25492..2f95a3855c 100644
--- a/engines/saga2/task.cpp
+++ b/engines/saga2/task.cpp
@@ -285,20 +285,6 @@ void TaskStackList::updateTaskStacks(void) {
 	}
 }
 
-/* ===================================================================== *
-   Global TaskStackList instantiation
- * ===================================================================== */
-
-//	This is a statically allocated buffer large enough to hold a
-//	TaskStackList.  The stackList is a TaskStackList reference to this
-//	area of memory.  The reason that I did this in this manner is to
-//	prevent the TaskStackList constructor from being called until it is
-//	expicitly called using an overloaded new call.  The overloaded new
-//	call will simply return a pointer to the stackListBuffer in order
-//	to construct the TaskStackList in place.
-
-static TaskStackList stackList;
-
 /* ===================================================================== *
    Misc. task stack management functions
  * ===================================================================== */
@@ -309,7 +295,7 @@ static TaskStackList stackList;
 
 void updateActorTasks(void) {
 	if (!actorTasksPaused)
-		stackList.updateTaskStacks();
+		g_vm->_stackList->updateTaskStacks();
 }
 
 void pauseActorTasks(void) {
@@ -324,7 +310,7 @@ void resumeActorTasks(void) {
 //	to a new TaskStack
 
 void newTaskStack(TaskStack *p) {
-	return stackList.newTaskStack(p);
+	return g_vm->_stackList->newTaskStack(p);
 }
 
 //----------------------------------------------------------------------
@@ -332,27 +318,28 @@ void newTaskStack(TaskStack *p) {
 //	a previously allocated TaskStack
 
 void deleteTaskStack(TaskStack *p) {
-	stackList.deleteTaskStack(p);
+	g_vm->_stackList->deleteTaskStack(p);
 }
 
 //----------------------------------------------------------------------
 //	Return the specified TaskStack's ID
 
 TaskStackID getTaskStackID(TaskStack *ts) {
-	return stackList.getTaskStackID(ts);
+	return g_vm->_stackList->getTaskStackID(ts);
 }
 
 //----------------------------------------------------------------------
 //	Return a pointer to a TaskStack given a TaskStackID
 
 TaskStack *getTaskStackAddress(TaskStackID id) {
-	return stackList.getTaskStackAddress(id);
+	return g_vm->_stackList->getTaskStackAddress(id);
 }
 
 //----------------------------------------------------------------------
 //	Initialize the stackList
 
 void initTaskStacks(void) {
+	g_vm->_stackList = new TaskStackList;
 }
 
 void saveTaskStacks(Common::OutSaveFile *outS) {
@@ -360,7 +347,7 @@ void saveTaskStacks(Common::OutSaveFile *outS) {
 
 	outS->write("TSTK", 4);
 	CHUNK_BEGIN;
-	stackList.write(out);
+	g_vm->_stackList->write(out);
 	CHUNK_END;
 }
 
@@ -369,13 +356,13 @@ void loadTaskStacks(Common::InSaveFile *in, int32 chunkSize) {
 
 	//  If there is no saved data, simply call the default constructor
 	if (chunkSize == 0) {
-		new (&stackList) TaskStackList;
+		g_vm->_stackList = new TaskStackList;
 		return;
 	}
 
 	//  Reconstruct stackList from archived data
-	new (&stackList) TaskStackList;
-	stackList.read(in);
+	g_vm->_stackList = new TaskStackList;
+	g_vm->_stackList->read(in);
 }
 
 //----------------------------------------------------------------------
@@ -383,7 +370,7 @@ void loadTaskStacks(Common::InSaveFile *in, int32 chunkSize) {
 
 void cleanupTaskStacks(void) {
 	//  Simply call stackList's destructor
-	stackList.~TaskStackList();
+	delete g_vm->_stackList;
 }
 
 /* ===================================================================== *
@@ -559,22 +546,16 @@ void TaskList::deleteTask(Task *p) {
 		}
 }
 
-/* ===================================================================== *
-   Global TaskList instantiation
- * ===================================================================== */
-
-static TaskList taskList;
-
 /* ===================================================================== *
    Misc. task management functions
  * ===================================================================== */
 
 void newTask(Task *t) {
-	return taskList.newTask(t);
+	return g_vm->_taskList->newTask(t);
 }
 
 void newTask(Task *t, TaskID id) {
-	return taskList.newTask(t, id);
+	return g_vm->_taskList->newTask(t, id);
 }
 
 //----------------------------------------------------------------------
@@ -582,21 +563,21 @@ void newTask(Task *t, TaskID id) {
 //	previously allocated TaskStack
 
 void deleteTask(Task *p) {
-	taskList.deleteTask(p);
+	g_vm->_taskList->deleteTask(p);
 }
 
 //----------------------------------------------------------------------
 //	Return the specified Task's ID
 
 TaskID getTaskID(Task *t) {
-	return taskList.getTaskID(t);
+	return g_vm->_taskList->getTaskID(t);
 }
 
 //----------------------------------------------------------------------
 //	Return a pointer to a Task given a TaskID
 
 Task *getTaskAddress(TaskID id) {
-	return taskList.getTaskAddress(id);
+	return g_vm->_taskList->getTaskAddress(id);
 }
 
 //----------------------------------------------------------------------
@@ -604,7 +585,7 @@ Task *getTaskAddress(TaskID id) {
 
 void initTasks(void) {
 	//  Simply call the default constructor for the task list
-	new (&taskList) TaskList;
+	g_vm->_taskList = new TaskList;
 }
 
 void saveTasks(Common::OutSaveFile *outS) {
@@ -612,7 +593,7 @@ void saveTasks(Common::OutSaveFile *outS) {
 
 	outS->write("TASK", 4);
 	CHUNK_BEGIN;
-	taskList.write(out);
+	g_vm->_taskList->write(out);
 	CHUNK_END;
 }
 
@@ -621,11 +602,13 @@ void loadTasks(Common::InSaveFile *in, int32 chunkSize) {
 
 	//  If there is no saved data, simply call the default constructor
 	if (chunkSize == 0) {
+		g_vm->_taskList = new TaskList;
 		return;
 	}
 
 	//  Reconstruct taskList from archived data
-	taskList.read(in);
+	g_vm->_taskList = new TaskList;
+	g_vm->_taskList->read(in);
 }
 
 //----------------------------------------------------------------------
@@ -633,7 +616,7 @@ void loadTasks(Common::InSaveFile *in, int32 chunkSize) {
 
 void cleanupTasks(void) {
 	//  Simply call the taskList's destructor
-	taskList.~TaskList();
+	delete g_vm->_taskList;
 }
 
 void readTask(TaskID id, Common::InSaveFile *in) {


Commit: 5e17d043ed0af922061d0ec1bac11bef68436a30
    https://github.com/scummvm/scummvm/commit/5e17d043ed0af922061d0ec1bac11bef68436a30
Author: a/ (yuri.kgpps at gmail.com)
Date: 2021-07-18T16:43:03+09:00

Commit Message:
SAGA2: Fix global constructor warnings

Changed paths:
    engines/saga2/spelcast.cpp
    engines/saga2/terrain.cpp


diff --git a/engines/saga2/spelcast.cpp b/engines/saga2/spelcast.cpp
index aeb5039628..caac3cc4e2 100644
--- a/engines/saga2/spelcast.cpp
+++ b/engines/saga2/spelcast.cpp
@@ -44,7 +44,7 @@ extern PlatformHandle   platformList;       // platform resource hunk
  * ===================================================================== */
 
 static int16        prevMapNum;
-static StaticTilePoint prevCoords = Nowhere;
+static StaticTilePoint prevCoords = {(int16)minint16, (int16)minint16, (int16)minint16};
 static MetaTilePtr  prevMeta;
 
 /* ===================================================================== *
diff --git a/engines/saga2/terrain.cpp b/engines/saga2/terrain.cpp
index 5354b836b1..fbff213b5a 100644
--- a/engines/saga2/terrain.cpp
+++ b/engines/saga2/terrain.cpp
@@ -36,7 +36,7 @@ namespace Saga2 {
 extern WorldMapData     *mapList;
 
 static int16        prevMapNum;
-static TilePoint    prevCoords = Nowhere;
+static StaticTilePoint prevCoords = {(int16)minint16, (int16)minint16, (int16)minint16};
 static MetaTilePtr  prevMeta = NULL;
 
 /* ===================================================================== *
@@ -130,7 +130,7 @@ uint32 tileTerrain(
 		//  Look up the metatile on the map.
 		metaPtr = prevMeta = map->lookupMeta(metaCoords);
 		prevMapNum = mapNum;
-		prevCoords = metaCoords;
+		prevCoords.set(metaCoords.u, metaCoords.v, metaCoords.z);
 	}
 
 	if (metaPtr == NULL) return 0L;
@@ -609,7 +609,7 @@ int16 tileSlopeHeight(
 	//  Look up the metatile on the map.
 	metaPtr = prevMeta = mapList[mapNum].lookupMeta(metaCoords);
 	prevMapNum = mapNum;
-	prevCoords = metaCoords;
+	prevCoords.set(metaCoords.u, metaCoords.v, metaCoords.z);
 
 	if (metaPtr != NULL) {
 		highestTile.surfaceTile = lowestTile.surfaceTile = NULL;




More information about the Scummvm-git-logs mailing list