[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