[Scummvm-git-logs] scummvm master -> e2d7bbe2797b1fd505d61b89d1ce52f5abbc155b
a-yyg
76591232+a-yyg at users.noreply.github.com
Thu Jul 15 11:06:57 UTC 2021
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
2625fafbc5 SAGA2: Make Timers/Alarms/Threads save size portable
2d20a99a33 SAGA2: Fix original PlayerActor save/loading
e2d7bbe279 SAGA2: Make ActiveItemStates save size portable
Commit: 2625fafbc543eca3fb5cd51b00c765547a02bad8
https://github.com/scummvm/scummvm/commit/2625fafbc543eca3fb5cd51b00c765547a02bad8
Author: a/ (yuri.kgpps at gmail.com)
Date: 2021-07-15T20:04:34+09:00
Commit Message:
SAGA2: Make Timers/Alarms/Threads save size portable
Changed paths:
engines/saga2/calender.cpp
engines/saga2/calender.h
engines/saga2/fta.h
engines/saga2/interp.cpp
engines/saga2/script.h
engines/saga2/timers.cpp
engines/saga2/timers.h
diff --git a/engines/saga2/calender.cpp b/engines/saga2/calender.cpp
index 0af6b40968..e88204a194 100644
--- a/engines/saga2/calender.cpp
+++ b/engines/saga2/calender.cpp
@@ -172,7 +172,7 @@ int CalenderTime::lightLevel(int maxLevel) {
FrameAlarm member functions
* ===================================================================== */
-void FrameAlarm::write(Common::OutSaveFile *out) {
+void FrameAlarm::write(Common::MemoryWriteStreamDynamic *out) {
out->writeUint16LE(baseFrame);
out->writeUint16LE(duration);
}
diff --git a/engines/saga2/calender.h b/engines/saga2/calender.h
index da0dd001af..a7f565e560 100644
--- a/engines/saga2/calender.h
+++ b/engines/saga2/calender.h
@@ -81,7 +81,7 @@ public:
bool check(void);
uint16 elapsed(void);
- void write(Common::OutSaveFile *out);
+ void write(Common::MemoryWriteStreamDynamic *out);
void read(Common::InSaveFile *in);
};
diff --git a/engines/saga2/fta.h b/engines/saga2/fta.h
index 473ab9a891..b2090ddecb 100644
--- a/engines/saga2/fta.h
+++ b/engines/saga2/fta.h
@@ -142,7 +142,7 @@ public:
bool check(void);
uint32 elapsed(void); // time elapsed since alarm set
- void write(Common::OutSaveFile *out);
+ void write(Common::MemoryWriteStreamDynamic *out);
void read(Common::InSaveFile *in);
};
diff --git a/engines/saga2/interp.cpp b/engines/saga2/interp.cpp
index 4db64539ff..37c144104e 100644
--- a/engines/saga2/interp.cpp
+++ b/engines/saga2/interp.cpp
@@ -33,6 +33,7 @@
#include "saga2/tile.h"
#include "saga2/mission.h"
#include "saga2/hresmgr.h"
+#include "saga2/saveload.h"
namespace Saga2 {
@@ -1159,7 +1160,7 @@ public:
// in an archive buffer
int32 archiveSize(void);
- void write(Common::OutSaveFile *out);
+ void write(Common::MemoryWriteStreamDynamic *out);
// Cleanup the active threads
void cleanup(void);
@@ -1221,7 +1222,7 @@ int32 ThreadList::archiveSize(void) {
return size;
}
-void ThreadList::write(Common::OutSaveFile *out) {
+void ThreadList::write(Common::MemoryWriteStreamDynamic *out) {
int16 threadCount = 0;
Thread *th;
@@ -1326,16 +1327,13 @@ void initSAGAThreads(void) {
// Simply call the Thread List default constructor
}
-void saveSAGAThreads(Common::OutSaveFile *out) {
+void saveSAGAThreads(Common::OutSaveFile *outS) {
debugC(2, kDebugSaveload, "Saving SAGA Threads");
- int32 archiveBufSize;
-
- archiveBufSize = threadList.archiveSize();
-
- out->write("SAGA", 4);
- out->writeUint32LE(archiveBufSize);
+ outS->write("SAGA", 4);
+ CHUNK_BEGIN;
threadList.write(out);
+ CHUNK_END;
}
void loadSAGAThreads(Common::InSaveFile *in, int32 chunkSize) {
@@ -1477,7 +1475,7 @@ int32 Thread::archiveSize(void) {
+ (stackBase + stackSize) - stackPtr;
}
-void Thread::write(Common::OutSaveFile *out) {
+void Thread::write(Common::MemoryWriteStreamDynamic *out) {
int16 stackOffset;
out->writeUint16LE(programCounter.segment);
diff --git a/engines/saga2/script.h b/engines/saga2/script.h
index 3eeb80e008..20adc9b64d 100644
--- a/engines/saga2/script.h
+++ b/engines/saga2/script.h
@@ -139,7 +139,7 @@ class Thread;
// Initialize the SAGA thread list
void initSAGAThreads(void);
-void saveSAGAThreads(Common::OutSaveFile *out);
+void saveSAGAThreads(Common::OutSaveFile *outS);
void loadSAGAThreads(Common::InSaveFile *in, int32 chunkSize);
// Dispose of the active SAGA threads
@@ -254,7 +254,7 @@ public:
// Create an archive of this thread in an archive buffer
void *archive(void *buf);
- void write(Common::OutSaveFile *out);
+ void write(Common::MemoryWriteStreamDynamic *out);
// Dispatch all asynchronous threads
static void dispatch(void);
diff --git a/engines/saga2/timers.cpp b/engines/saga2/timers.cpp
index 614f4442d3..a482a3e881 100644
--- a/engines/saga2/timers.cpp
+++ b/engines/saga2/timers.cpp
@@ -30,6 +30,7 @@
#include "saga2/fta.h"
#include "saga2/timers.h"
#include "saga2/objects.h"
+#include "saga2/saveload.h"
namespace Saga2 {
@@ -79,7 +80,7 @@ void loadTimer(Common::InSaveFile *in) {
Alarms
* ====================================================================== */
-void Alarm::write(Common::OutSaveFile *out) {
+void Alarm::write(Common::MemoryWriteStreamDynamic *out) {
out->writeUint32LE(basetime);
out->writeUint32LE(duration);
}
@@ -170,35 +171,23 @@ static int getTimerID(Timer *t) {
return -1;
}
-void saveTimers(Common::OutSaveFile *out) {
+void saveTimers(Common::OutSaveFile *outS) {
debugC(2, kDebugSaveload, "Saving Timers");
int16 timerListCount = 0,
timerCount = 0;
- int32 archiveBufSize = 0;
-
- // Add the sizes of the timer list count an timer count
- archiveBufSize += sizeof(timerListCount) + sizeof(timerCount);
-
// Tally the timer lists
timerListCount = g_vm->_timerLists.size();
- // Add the total archive size of all of the timer lists
- archiveBufSize += timerListCount * TimerList::archiveSize();
-
// Tally the timers
timerCount = g_vm->_timers.size();
debugC(3, kDebugSaveload, "... timerListCount = %d", timerListCount);
debugC(3, kDebugSaveload, "... timerCount = %d", timerCount);
- // Add the total archive size of all of the timers
- archiveBufSize += timerCount * Timer::archiveSize();
-
- out->write("TIMR", 4);
- out->writeUint32LE(archiveBufSize);
-
+ outS->write("TIMR", 4);
+ CHUNK_BEGIN;
// Store the timer list count and timer count
out->writeSint16LE(timerListCount);
out->writeSint16LE(timerCount);
@@ -216,6 +205,7 @@ void saveTimers(Common::OutSaveFile *out) {
(*it)->write(out);
}
+ CHUNK_END;
}
void loadTimers(Common::InSaveFile *in) {
@@ -299,7 +289,7 @@ TimerList::~TimerList() {
g_vm->_timerLists.remove(this);
}
-void TimerList::write(Common::OutSaveFile *out) {
+void TimerList::write(Common::MemoryWriteStreamDynamic *out) {
// Store the object's ID
out->writeUint16LE(_obj->thisID());
}
@@ -345,7 +335,7 @@ int32 Timer::archiveSize(void) {
+ sizeof(FrameAlarm);
}
-void Timer::write(Common::OutSaveFile *out) {
+void Timer::write(Common::MemoryWriteStreamDynamic *out) {
// Store the obj's ID
out->writeUint16LE(_obj->thisID());
diff --git a/engines/saga2/timers.h b/engines/saga2/timers.h
index 18d95cac97..dac3c747ea 100644
--- a/engines/saga2/timers.h
+++ b/engines/saga2/timers.h
@@ -46,7 +46,7 @@ void checkTimers(void);
// Initialize the Timers
void initTimers(void);
-void saveTimers(Common::OutSaveFile *out);
+void saveTimers(Common::OutSaveFile *outS);
void loadTimers(Common::InSaveFile *in);
// Cleanup the active Timers
void cleanupTimers(void);
@@ -72,7 +72,7 @@ public:
return sizeof(ObjectID);
}
- void write(Common::OutSaveFile *out);
+ void write(Common::MemoryWriteStreamDynamic *out);
GameObject *getObject(void) {
return _obj;
@@ -111,7 +111,7 @@ public:
// a buffer
static int32 archiveSize(void);
- void write(Common::OutSaveFile *out);
+ void write(Common::MemoryWriteStreamDynamic *out);
GameObject *getObject(void) {
return _obj;
Commit: 2d20a99a33a0c48b6d9962f3cd4cfb03bff39abd
https://github.com/scummvm/scummvm/commit/2d20a99a33a0c48b6d9962f3cd4cfb03bff39abd
Author: a/ (yuri.kgpps at gmail.com)
Date: 2021-07-15T20:04:34+09:00
Commit Message:
SAGA2: Fix original PlayerActor save/loading
Changed paths:
engines/saga2/player.cpp
diff --git a/engines/saga2/player.cpp b/engines/saga2/player.cpp
index 7e9798bd32..5acd226e8c 100644
--- a/engines/saga2/player.cpp
+++ b/engines/saga2/player.cpp
@@ -968,7 +968,7 @@ void savePlayerActors(Common::OutSaveFile *outS) {
out->writeByte(p->vitalityMemory);
// Store the attack notification flag
- out->writeByte(p->notifiedOfAttack);
+ out->writeUint16LE(p->notifiedOfAttack);
debugC(4, kDebugSaveload, "... playerList[%d].portraitType = %d", i, p->portraitType);
debugC(4, kDebugSaveload, "... playerList[%d].flags = %d", i, p->flags);
@@ -1009,7 +1009,7 @@ void loadPlayerActors(Common::InSaveFile *in) {
p->vitalityMemory = in->readByte();
// Restore the attack notification flag
- p->notifiedOfAttack = in->readByte();
+ p->notifiedOfAttack = in->readUint16LE();
debugC(4, kDebugSaveload, "... playerList[%d].portraitType = %d", i, p->portraitType);
debugC(4, kDebugSaveload, "... playerList[%d].flags = %d", i, p->flags);
Commit: e2d7bbe2797b1fd505d61b89d1ce52f5abbc155b
https://github.com/scummvm/scummvm/commit/e2d7bbe2797b1fd505d61b89d1ce52f5abbc155b
Author: a/ (yuri.kgpps at gmail.com)
Date: 2021-07-15T20:04:34+09:00
Commit Message:
SAGA2: Make ActiveItemStates save size portable
Changed paths:
engines/saga2/tile.cpp
engines/saga2/tile.h
diff --git a/engines/saga2/tile.cpp b/engines/saga2/tile.cpp
index f0cbfa146a..da455f0355 100644
--- a/engines/saga2/tile.cpp
+++ b/engines/saga2/tile.cpp
@@ -778,21 +778,11 @@ void initActiveItemStates(void) {
}
}
-void saveActiveItemStates(Common::OutSaveFile *out) {
+void saveActiveItemStates(Common::OutSaveFile *outS) {
debugC(2, kDebugSaveload, "Saving ActiveItemStates");
- int32 archiveBufSize = 0;
-
- for (int i = 0; i < worldCount; i++) {
- int32 size = tileRes->size(tagStateID + i);
- archiveBufSize += sizeof(int16);
- if (stateArray[i] != nullptr)
- archiveBufSize += size;
- }
-
- out->write("TAGS", 4);
- out->writeUint32LE(archiveBufSize);
-
+ outS->write("TAGS", 4);
+ CHUNK_BEGIN;
for (int i = 0; i < worldCount; i++) {
debugC(3, kDebugSaveload, "Saving ActiveItemState %d", i);
@@ -831,6 +821,7 @@ void saveActiveItemStates(Common::OutSaveFile *out) {
} else
out->writeSint16LE(0);
}
+ CHUNK_END;
}
void loadActiveItemStates(Common::InSaveFile *in) {
diff --git a/engines/saga2/tile.h b/engines/saga2/tile.h
index 4418de854d..63ede4d379 100644
--- a/engines/saga2/tile.h
+++ b/engines/saga2/tile.h
@@ -1011,7 +1011,7 @@ void cleanupTileTasks(void);
TilePoint getClosestPointOnTAI(ActiveItem *TAI, GameObject *obj);
void initActiveItemStates(void);
-void saveActiveItemStates(Common::OutSaveFile *out);
+void saveActiveItemStates(Common::OutSaveFile *outS);
void loadActiveItemStates(Common::InSaveFile *in);
void cleanupActiveItemStates(void);
More information about the Scummvm-git-logs
mailing list