[Scummvm-git-logs] scummvm master -> 30a7e3a7dfffc566e2dd2697bd9ed844936ff7a0
mduggan
noreply at scummvm.org
Mon Jul 8 10:14:26 UTC 2024
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:
9b31f56be7 DGDS: Flesh out HoC game globals a bit more
30a7e3a7df DGDS: Fix uninitialized values identified by Coverity
Commit: 9b31f56be740eb431fd8b29b1f2b7a51187588f3
https://github.com/scummvm/scummvm/commit/9b31f56be740eb431fd8b29b1f2b7a51187588f3
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2024-07-08T19:42:43+10:00
Commit Message:
DGDS: Flesh out HoC game globals a bit more
Changed paths:
engines/dgds/globals.cpp
engines/dgds/globals.h
diff --git a/engines/dgds/globals.cpp b/engines/dgds/globals.cpp
index eaeb2b737b3..29d7d2e2acc 100644
--- a/engines/dgds/globals.cpp
+++ b/engines/dgds/globals.cpp
@@ -204,31 +204,52 @@ Common::Error DragonGlobals::syncState(Common::Serializer &s) {
return Common::kNoError;
}
-HocGlobals::HocGlobals(Clock &clock) : Globals(clock),
- _unk39(0), _unk40(0), _unk45(0), _unk46(0), _unk48(0),
- _unk51(0), _characterCount(0), _currentCharacter(0), _unk54(0) {
- _globals.push_back(new RWI16Global(0x36, &_unk54));
- _globals.push_back(new RWI16Global(0x35, &_currentCharacter));
- _globals.push_back(new RWI16Global(0x34, &_characterCount));
- _globals.push_back(new RWI16Global(0x33, &_unk51));
+HocGlobals::HocGlobals(Clock &clock) : Globals(clock), _unk82(1), _unk55(0),
+ _unkDlgFileNum(0), _unkDlgDlgNum(0), _currentCharacter2(0), _currentCharacter(0),
+ _unk50(0), _unk49(0), _unk48(0), _unk47(0), _unk46(0), _unk45(0x3f), _unk44(0),
+ _unk43(0), _unk42(0), _unk41(0), _unk40(3), _unk39(0) {
+ _globals.push_back(new DetailLevelROGlobal(0x53));
+ _globals.push_back(new RWI16Global(0x52, &_unk82));
+ _globals.push_back(new RWI16Global(0x37, &_unk55)); // TODO: Special update function FUN_1407_080d, sound init related
+ _globals.push_back(new RWI16Global(0x36, &_unkDlgFileNum));
+ _globals.push_back(new RWI16Global(0x35, &_unkDlgDlgNum));
+ _globals.push_back(new RWI16Global(0x34, &_currentCharacter)); // TODO: Special update function FUN_174e_8f31
+ _globals.push_back(new RWI16Global(0x33, &_currentCharacter2)); // TODO: Special update function FUN_174e_8ee0
+ _globals.push_back(new RWI16Global(0x32, &_unk50));
+ _globals.push_back(new RWI16Global(0x31, &_unk49));
_globals.push_back(new RWI16Global(0x30, &_unk48));
+ _globals.push_back(new RWI16Global(0x2F, &_unk47));
_globals.push_back(new RWI16Global(0x2E, &_unk46));
- _globals.push_back(new RWI16Global(0x2D, &_unk45));
+ _globals.push_back(new RWI16Global(0x2D, &_unk45)); // TODO: Special update function FUN_1407_0784, palette related?
+ _globals.push_back(new RWI16Global(0x2C, &_unk44)); // dialog related..
+ _globals.push_back(new RWI16Global(0x2B, &_unk43));
+ _globals.push_back(new RWI16Global(0x2A, &_unk42));
+ _globals.push_back(new RWI16Global(0x29, &_unk41));
_globals.push_back(new RWI16Global(0x28, &_unk40));
- _globals.push_back(new RWI16Global(0x27, &_unk39));
+ _globals.push_back(new ROI16Global(0x27, &_unk39));
}
Common::Error HocGlobals::syncState(Common::Serializer &s) {
Globals::syncState(s);
+
s.syncAsSint16LE(_unk39);
s.syncAsSint16LE(_unk40);
+ s.syncAsSint16LE(_unk41);
+ s.syncAsSint16LE(_unk42);
+ s.syncAsSint16LE(_unk43);
+ s.syncAsSint16LE(_unk44);
s.syncAsSint16LE(_unk45);
s.syncAsSint16LE(_unk46);
+ s.syncAsSint16LE(_unk47);
s.syncAsSint16LE(_unk48);
- s.syncAsSint16LE(_unk51);
- s.syncAsSint16LE(_characterCount);
+ s.syncAsSint16LE(_unk49);
+ s.syncAsSint16LE(_unk50);
s.syncAsSint16LE(_currentCharacter);
- s.syncAsSint16LE(_unk54);
+ s.syncAsSint16LE(_currentCharacter2);
+ s.syncAsSint16LE(_unkDlgDlgNum);
+ s.syncAsSint16LE(_unkDlgFileNum);
+ s.syncAsSint16LE(_unk55);
+ s.syncAsSint16LE(_unk82);
return Common::kNoError;
}
diff --git a/engines/dgds/globals.h b/engines/dgds/globals.h
index c6e95f82dbe..eba7aa16107 100644
--- a/engines/dgds/globals.h
+++ b/engines/dgds/globals.h
@@ -153,13 +153,22 @@ private:
// HoC-specific globals
int16 _unk39;
int16 _unk40;
+ int16 _unk41;
+ int16 _unk42;
+ int16 _unk43;
+ int16 _unk44;
int16 _unk45;
int16 _unk46;
+ int16 _unk47;
int16 _unk48;
- int16 _unk51;
- int16 _characterCount;
+ int16 _unk49;
+ int16 _unk50;
int16 _currentCharacter;
- int16 _unk54;
+ int16 _currentCharacter2;
+ int16 _unkDlgDlgNum;
+ int16 _unkDlgFileNum;
+ int16 _unk55;
+ int16 _unk82;
Common::Error syncState(Common::Serializer &s) override;
};
Commit: 30a7e3a7dfffc566e2dd2697bd9ed844936ff7a0
https://github.com/scummvm/scummvm/commit/30a7e3a7dfffc566e2dd2697bd9ed844936ff7a0
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2024-07-08T19:42:49+10:00
Commit Message:
DGDS: Fix uninitialized values identified by Coverity
Changed paths:
engines/dgds/decompress.cpp
engines/dgds/dialog.cpp
engines/dgds/resource.h
diff --git a/engines/dgds/decompress.cpp b/engines/dgds/decompress.cpp
index 642ed49b375..e7aec5d5ccf 100644
--- a/engines/dgds/decompress.cpp
+++ b/engines/dgds/decompress.cpp
@@ -77,6 +77,8 @@ void LzwDecompressor::reset() {
_codeLen = 0;
_cacheBits = 0;
+ _bitsData = 0;
+ _bitsSize = 0;
}
uint32 LzwDecompressor::decompress(byte *dest, uint32 sz, Common::SeekableReadStream &input) {
diff --git a/engines/dgds/dialog.cpp b/engines/dgds/dialog.cpp
index 251fc46ec65..a040ef38bda 100644
--- a/engines/dgds/dialog.cpp
+++ b/engines/dgds/dialog.cpp
@@ -59,7 +59,7 @@ Dialog *Dialog::_lastDialogSelectionChangedFor = nullptr;
Dialog::Dialog() : _num(0), _bgColor(0), _fontColor(0), _selectionBgCol(0), _selectonFontCol(0),
_fontSize(0), _flags(kDlgFlagNone), _frameType(kDlgFramePlain), _time(0), _nextDialogDlgNum(0),
- _nextDialogFileNum(0)
+ _nextDialogFileNum(0), _fileNum(0)
{}
diff --git a/engines/dgds/resource.h b/engines/dgds/resource.h
index 6c8fb78bd96..c8e55a60641 100644
--- a/engines/dgds/resource.h
+++ b/engines/dgds/resource.h
@@ -64,7 +64,7 @@ private:
class DgdsChunkReader {
public:
- DgdsChunkReader(Common::SeekableReadStream *stream) : _sourceStream(stream), _contentStream(nullptr), _size(0), _container(false), _startPos(0), _id(0) {}
+ DgdsChunkReader(Common::SeekableReadStream *stream) : _sourceStream(stream), _contentStream(nullptr), _size(0), _container(false), _startPos(0), _id(0), _ex(0) {}
~DgdsChunkReader();
bool isSection(const Common::String §ion) const;
More information about the Scummvm-git-logs
mailing list