[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 &section) const;




More information about the Scummvm-git-logs mailing list