[Scummvm-git-logs] scummvm master -> f6b031b28396d1b6f1cd0554d3e0e0484de53afb
athrxx
noreply at scummvm.org
Tue Sep 20 18:33:07 UTC 2022
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:
236db2d658 KYRA: init non-initialized member vars
f6b031b283 KYRA: init non-initialized member vars
Commit: 236db2d65843c08fedf6def68bbdf5d649bca8f6
https://github.com/scummvm/scummvm/commit/236db2d65843c08fedf6def68bbdf5d649bca8f6
Author: athrxx (athrxx at scummvm.org)
Date: 2022-09-20T20:32:44+02:00
Commit Message:
KYRA: init non-initialized member vars
Changed paths:
engines/kyra/graphics/screen.cpp
engines/kyra/graphics/screen.h
diff --git a/engines/kyra/graphics/screen.cpp b/engines/kyra/graphics/screen.cpp
index d11dcc075ac..571d32c6c07 100644
--- a/engines/kyra/graphics/screen.cpp
+++ b/engines/kyra/graphics/screen.cpp
@@ -44,13 +44,21 @@ Screen::Screen(KyraEngine_v1 *vm, OSystem *system, const ScreenDim *dimTable, co
_cursorColorKey((vm->game() == GI_KYRA1 || vm->game() == GI_EOB1 || vm->game() == GI_EOB2) ? 0xFF : 0),
_screenHeight(vm->gameFlags().platform == Common::kPlatformSegaCD ? SCREEN_H_SEGA_NTSC : SCREEN_H) {
_debugEnabled = false;
+ _forceFullUpdate = false;
_maskMinY = _maskMaxY = -1;
+ _mouseLockCount = 0;
+
_drawShapeVar1 = 0;
_drawShapeVar3 = 1;
_drawShapeVar4 = 0;
_drawShapeVar5 = 0;
+ _dsShapeFadingTable = _dsColorTable = _dsTransparencyTable1 = _dsTransparencyTable2 = _dsBackgroundFadingTable = nullptr;
+ _dsDstPage = nullptr;
+ _dsShapeFadingLevel = _dsDrawLayer = _dsTmpWidth = _dsOffscreenLeft = _dsOffscreenRight = _dsScaleW = _dsScaleH = _dsOffscreenScaleVal1 = _dsOffscreenScaleVal2 = 0;
+
+ memset(_shapePages, 0, sizeof(_shapePages));
memset(_fonts, 0, sizeof(_fonts));
memset(_pagePtrs, 0, sizeof(_pagePtrs));
@@ -72,7 +80,7 @@ Screen::Screen(KyraEngine_v1 *vm, OSystem *system, const ScreenDim *dimTable, co
_16bitShadingLevel = 0;
_bytesPerPixel = 1;
_4bitPixelPacking = _useAmigaExtraColors = _isAmiga = _isSegaCD = _use16ColorMode = false;
- _useSJIS = _useOverlays = false;
+ _useSJIS = _useOverlays = _useHiResEGADithering = false;
_currentFont = FID_8_FNT;
_fontStyles = 0;
@@ -80,9 +88,12 @@ Screen::Screen(KyraEngine_v1 *vm, OSystem *system, const ScreenDim *dimTable, co
_textMarginRight = SCREEN_W;
_customDimTable = nullptr;
_curDim = nullptr;
+ _curDimIndex = 0;
+ _animBlockSize = 0;
_lineBreakChars = (_vm->gameFlags().platform == Common::kPlatformMacintosh) ? "\n\r" : "\r";
_yTransOffs = 0;
+ _dualPaletteModeSplitY = 0;
_idleUpdateTimer = 0;
}
@@ -152,6 +163,7 @@ bool Screen::init() {
_pageMapping[i] = i;
}
+ memset(_shapePages, 0, sizeof(_shapePages));
memset(_fonts, 0, sizeof(_fonts));
_useOverlays = (_vm->gameFlags().useHiRes && _renderMode != Common::kRenderEGA);
@@ -195,8 +207,6 @@ bool Screen::init() {
enableHiColorMode(false);
- memset(_shapePages, 0, sizeof(_shapePages));
-
const int paletteCount = _isAmiga ? 13 : 4;
// We allow 256 color palettes in EGA mode, since original EOB II code does the same and requires it
const int numColors = _use16ColorMode ? 16 : (_isAmiga ? 32 : (_renderMode == Common::kRenderCGA ? 4 : 256));
@@ -1729,17 +1739,17 @@ void Screen::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y, int
int scaleCounterV = 0;
const int drawFunc = flags & 0x0F;
- _dsProcessMargin = dsMarginFunc[drawFunc];
- _dsScaleSkip = dsSkipFunc[drawFunc];
- _dsProcessLine = dsLineFunc[drawFunc];
+ DsMarginSkipFunc dsProcessMargin = dsMarginFunc[drawFunc];
+ DsMarginSkipFunc dsScaleSkip = dsSkipFunc[drawFunc];
+ DsLineFunc dsProcessLine = dsLineFunc[drawFunc];
const int ppc = (flags >> 8) & 0x3F;
- _dsPlot = dsPlotFunc[ppc];
+ DsPlotFunc dsPlot = dsPlotFunc[ppc];
DsPlotFunc dsPlot2 = dsPlotFunc[ppc], dsPlot3 = dsPlotFunc[ppc];
if (_vm->gameFlags().gameID == GI_KYRA3 && (flags & kDRAWSHP_PRIORITY))
dsPlot3 = dsPlotFunc[ppc & ~8];
- if (!_dsPlot || !dsPlot2 || !dsPlot3) {
+ if (!dsPlot || !dsPlot2 || !dsPlot3) {
if (!dsPlot2)
warning("Missing drawShape plotting method type %d", ppc);
if (dsPlot3 != dsPlot2 && !dsPlot3)
@@ -1819,7 +1829,7 @@ void Screen::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y, int
_dsTmpWidth = shapeWidth;
int cnt = shapeWidth;
- (this->*_dsScaleSkip)(dst, src, cnt);
+ (this->*dsScaleSkip)(dst, src, cnt);
scaleCounterV += _dsScaleH;
@@ -1908,7 +1918,7 @@ void Screen::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y, int
if (!(scaleCounterV & 0xFF00)) {
_dsTmpWidth = shapeWidth;
int cnt = shapeWidth;
- (this->*_dsScaleSkip)(d, src, cnt);
+ (this->*dsScaleSkip)(d, src, cnt);
}
}
@@ -1918,19 +1928,19 @@ void Screen::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y, int
src = b_src;
_dsTmpWidth = shapeWidth;
int cnt = _dsOffscreenLeft;
- int scaleState = (this->*_dsProcessMargin)(d, src, cnt);
+ int scaleState = (this->*dsProcessMargin)(d, src, cnt);
if (_dsTmpWidth) {
cnt += shpWidthScaled1;
if (cnt > 0) {
if (flags & kDRAWSHP_PRIORITY)
normalPlot = (curY > _maskMinY && curY < _maskMaxY);
- _dsPlot = normalPlot ? dsPlot2 : dsPlot3;
- (this->*_dsProcessLine)(d, src, cnt, scaleState);
+ dsPlot = normalPlot ? dsPlot2 : dsPlot3;
+ (this->*dsProcessLine)(d, src, dsPlot, cnt, scaleState);
}
cnt += _dsOffscreenRight;
if (cnt)
- (this->*_dsScaleSkip)(d, src, cnt);
+ (this->*dsScaleSkip)(d, src, cnt);
}
dst += dsPitch;
d = dst;
@@ -2054,12 +2064,12 @@ int Screen::drawShapeSkipScaleDownwind(uint8 *&dst, const uint8 *&src, int &cnt)
return found ? 0 : _dsOffscreenScaleVal1;
}
-void Screen::drawShapeProcessLineNoScaleUpwind(uint8 *&dst, const uint8 *&src, int &cnt, int16) {
+void Screen::drawShapeProcessLineNoScaleUpwind(uint8 *&dst, const uint8 *&src, const DsPlotFunc plot, int &cnt, int16) {
do {
uint8 c = *src++;
if (c) {
uint8 *d = dst++;
- (this->*_dsPlot)(d, c);
+ (this->*plot)(d, c);
cnt--;
} else {
c = *src++;
@@ -2069,12 +2079,12 @@ void Screen::drawShapeProcessLineNoScaleUpwind(uint8 *&dst, const uint8 *&src, i
} while (cnt > 0);
}
-void Screen::drawShapeProcessLineNoScaleDownwind(uint8 *&dst, const uint8 *&src, int &cnt, int16) {
+void Screen::drawShapeProcessLineNoScaleDownwind(uint8 *&dst, const uint8 *&src, const DsPlotFunc plot, int &cnt, int16) {
do {
uint8 c = *src++;
if (c) {
uint8 *d = dst--;
- (this->*_dsPlot)(d, c);
+ (this->*plot)(d, c);
cnt--;
} else {
c = *src++;
@@ -2084,7 +2094,7 @@ void Screen::drawShapeProcessLineNoScaleDownwind(uint8 *&dst, const uint8 *&src,
} while (cnt > 0);
}
-void Screen::drawShapeProcessLineScaleUpwind(uint8 *&dst, const uint8 *&src, int &cnt, int16 scaleState) {
+void Screen::drawShapeProcessLineScaleUpwind(uint8 *&dst, const uint8 *&src, const DsPlotFunc plot, int &cnt, int16 scaleState) {
int c = 0;
do {
@@ -2103,7 +2113,7 @@ void Screen::drawShapeProcessLineScaleUpwind(uint8 *&dst, const uint8 *&src, int
scaleState = r & 0xFF;
}
} else if (scaleState) {
- (this->*_dsPlot)(dst++, c);
+ (this->*plot)(dst++, c);
scaleState -= 0x100;
cnt--;
}
@@ -2112,7 +2122,7 @@ void Screen::drawShapeProcessLineScaleUpwind(uint8 *&dst, const uint8 *&src, int
cnt = -1;
}
-void Screen::drawShapeProcessLineScaleDownwind(uint8 *&dst, const uint8 *&src, int &cnt, int16 scaleState) {
+void Screen::drawShapeProcessLineScaleDownwind(uint8 *&dst, const uint8 *&src, const DsPlotFunc plot, int &cnt, int16 scaleState) {
int c = 0;
do {
@@ -2131,7 +2141,7 @@ void Screen::drawShapeProcessLineScaleDownwind(uint8 *&dst, const uint8 *&src, i
scaleState = r & 0xFF;
}
} else {
- (this->*_dsPlot)(dst--, c);
+ (this->*plot)(dst--, c);
scaleState -= 0x100;
cnt--;
}
diff --git a/engines/kyra/graphics/screen.h b/engines/kyra/graphics/screen.h
index e8f35ac824f..03c2c1a6765 100644
--- a/engines/kyra/graphics/screen.h
+++ b/engines/kyra/graphics/screen.h
@@ -870,16 +870,20 @@ protected:
KyraEngine_v1 *_vm;
// shape
+ typedef void (Screen::*DsPlotFunc)(uint8*, uint8);
+ typedef int (Screen::*DsMarginSkipFunc)(uint8*&, const uint8*&, int&);
+ typedef void (Screen::*DsLineFunc)(uint8*&, const uint8*&, const DsPlotFunc, int&, int16);
+
int drawShapeMarginNoScaleUpwind(uint8 *&dst, const uint8 *&src, int &cnt);
int drawShapeMarginNoScaleDownwind(uint8 *&dst, const uint8 *&src, int &cnt);
int drawShapeMarginScaleUpwind(uint8 *&dst, const uint8 *&src, int &cnt);
int drawShapeMarginScaleDownwind(uint8 *&dst, const uint8 *&src, int &cnt);
int drawShapeSkipScaleUpwind(uint8 *&dst, const uint8 *&src, int &cnt);
int drawShapeSkipScaleDownwind(uint8 *&dst, const uint8 *&src, int &cnt);
- void drawShapeProcessLineNoScaleUpwind(uint8 *&dst, const uint8 *&src, int &cnt, int16 scaleState);
- void drawShapeProcessLineNoScaleDownwind(uint8 *&dst, const uint8 *&src, int &cnt, int16 scaleState);
- void drawShapeProcessLineScaleUpwind(uint8 *&dst, const uint8 *&src, int &cnt, int16 scaleState);
- void drawShapeProcessLineScaleDownwind(uint8 *&dst, const uint8 *&src, int &cnt, int16 scaleState);
+ void drawShapeProcessLineNoScaleUpwind(uint8 *&dst, const uint8 *&src, const DsPlotFunc plot, int &cnt, int16);
+ void drawShapeProcessLineNoScaleDownwind(uint8 *&dst, const uint8 *&src, const DsPlotFunc plot, int &cnt, int16);
+ void drawShapeProcessLineScaleUpwind(uint8 *&dst, const uint8 *&src, const DsPlotFunc plot, int &cnt, int16 scaleState);
+ void drawShapeProcessLineScaleDownwind(uint8 *&dst, const uint8 *&src, const DsPlotFunc plot, int &cnt, int16 scaleState);
void drawShapePlotType0(uint8 *dst, uint8 cmd);
void drawShapePlotType1(uint8 *dst, uint8 cmd);
@@ -901,15 +905,6 @@ protected:
void drawShapePlotType48(uint8 *dst, uint8 cmd);
void drawShapePlotType52(uint8 *dst, uint8 cmd);
- typedef int (Screen::*DsMarginSkipFunc)(uint8 *&dst, const uint8 *&src, int &cnt);
- typedef void (Screen::*DsLineFunc)(uint8 *&dst, const uint8 *&src, int &cnt, int16 scaleState);
- typedef void (Screen::*DsPlotFunc)(uint8 *dst, uint8 cmd);
-
- DsMarginSkipFunc _dsProcessMargin;
- DsMarginSkipFunc _dsScaleSkip;
- DsLineFunc _dsProcessLine;
- DsPlotFunc _dsPlot;
-
const uint8 *_dsShapeFadingTable;
int _dsShapeFadingLevel;
const uint8 *_dsColorTable;
Commit: f6b031b28396d1b6f1cd0554d3e0e0484de53afb
https://github.com/scummvm/scummvm/commit/f6b031b28396d1b6f1cd0554d3e0e0484de53afb
Author: athrxx (athrxx at scummvm.org)
Date: 2022-09-20T20:32:44+02:00
Commit Message:
KYRA: init non-initialized member vars
Changed paths:
engines/kyra/engine/kyra_hof.cpp
engines/kyra/engine/kyra_lok.cpp
engines/kyra/engine/kyra_mr.cpp
engines/kyra/engine/kyra_rpg.cpp
engines/kyra/engine/kyra_v1.cpp
engines/kyra/engine/kyra_v2.cpp
engines/kyra/engine/lol.cpp
diff --git a/engines/kyra/engine/kyra_hof.cpp b/engines/kyra/engine/kyra_hof.cpp
index cc8de453861..8b8728b0dc3 100644
--- a/engines/kyra/engine/kyra_hof.cpp
+++ b/engines/kyra/engine/kyra_hof.cpp
@@ -132,6 +132,14 @@ KyraEngine_HoF::KyraEngine_HoF(OSystem *system, const GameFlags &flags) : KyraEn
_setCharPalFinal = false;
_useCharPal = false;
+ _gui = nullptr;
+ _bookShown = _fadeMessagePalette = false;
+ _ingamePakList = _musicFileListIntro = _musicFileListFinale = _musicFileListIngame = _ingameSoundList = _ingameTimJpStr = nullptr;
+ _ingamePakListSize = _musicFileListIntroSize = _musicFileListFinaleSize = _musicFileListIngameSize = _cdaTrackTableIntroSize = _cdaTrackTableIngameSize = _cdaTrackTableFinaleSize = 0;
+ _cdaTrackTableIntro = _cdaTrackTableIngame = _cdaTrackTableFinale = nullptr;
+ _ingameSoundListSize = _ingameSoundIndexSize = _ingameTalkObjIndexSize = _ingameTimJpStrSize = _itemAnimDefinitionSize = 0;
+ _ingameSoundIndex = nullptr;
+ _ingameTalkObjIndex = nullptr;
memset(_characterFacingCountTable, 0, sizeof(_characterFacingCountTable));
_defaultFont = (_flags.lang == Common::ZH_TWN) ? Screen::FID_CHINESE_FNT : ((_flags.lang == Common::JA_JPN) ? Screen::FID_SJIS_FNT : Screen::FID_8_FNT);
diff --git a/engines/kyra/engine/kyra_lok.cpp b/engines/kyra/engine/kyra_lok.cpp
index fba84545859..9e9106e2129 100644
--- a/engines/kyra/engine/kyra_lok.cpp
+++ b/engines/kyra/engine/kyra_lok.cpp
@@ -63,6 +63,14 @@ KyraEngine_LoK::KyraEngine_LoK(OSystem *system, const GameFlags &flags)
_winterScrollTableSize = _winterScroll1TableSize = _winterScroll2TableSize = 0;
_drinkAnimationTable = _brandonToWispTable = _magicAnimationTable = _brandonStoneTable = nullptr;
_drinkAnimationTableSize = _brandonToWispTableSize = _magicAnimationTableSize = _brandonStoneTableSize = 0;
+ _seq_Reunion = _amuleteAnim = nullptr;
+ _storyStrings = _homeString = _newGameString = _veryClever = _guiStrings = _configStrings = nullptr;
+ _storyStringsSize = _veryClever_Size = _homeString_Size = _newGameString_Size = _guiStringsSize = _configStringsSize = _roomTableSize = 0;
+
+ _currentCharacter = nullptr;
+ _buttonList = nullptr;
+ _gui = nullptr;
+
_specialPalettes = nullptr;
_sprites = nullptr;
_animator = nullptr;
@@ -83,6 +91,9 @@ KyraEngine_LoK::KyraEngine_LoK(OSystem *system, const GameFlags &flags)
_speechPlayTime = 0;
_seqPlayerFlag = false;
+ memset(&_scriptClickData, 0, sizeof(_scriptClickData));
+ memset(&_kyragemFadingState, 0, sizeof(_kyragemFadingState));
+
memset(&_characterFacingZeroCount, 0, sizeof(_characterFacingZeroCount));
memset(&_characterFacingFourCount, 0, sizeof(_characterFacingFourCount));
diff --git a/engines/kyra/engine/kyra_mr.cpp b/engines/kyra/engine/kyra_mr.cpp
index 4d7633337a6..866b90d1177 100644
--- a/engines/kyra/engine/kyra_mr.cpp
+++ b/engines/kyra/engine/kyra_mr.cpp
@@ -151,6 +151,15 @@ KyraEngine_MR::KyraEngine_MR(OSystem *system, const GameFlags &flags) : KyraEngi
_configHelium = false;
_fadeOutMusicChannel = -1;
memset(_scaleTable, 0, sizeof(_scaleTable));
+ _gui = nullptr;
+ _soundListSize = _sfxFileMapSize = _sfxFileListSize = _mainMenuStringsSize = _itemStringMapSize = _malcolmShapeXOffset = _malcolmShapeYOffset = _currentTalkFile = 0;
+ _sceneMinX = _sceneMaxX = _badConscienceAnim = _scoreMax = _scoreTableSize = 0;
+ _sfxFileMap = _itemMagicTable = _itemStringMap = _scoreTable = nullptr;
+ _sfxFileList = _mainMenuStrings = nullptr;
+ _shownMessage = nullptr;
+ _itemAnimDefinition = nullptr;
+ _restoreCommandLine = _badConsciencePosition = _useFrameTable = false;
+ _actorFileSize = 0;
}
KyraEngine_MR::~KyraEngine_MR() {
diff --git a/engines/kyra/engine/kyra_rpg.cpp b/engines/kyra/engine/kyra_rpg.cpp
index c667f4c4233..7cfc33aa7d9 100644
--- a/engines/kyra/engine/kyra_rpg.cpp
+++ b/engines/kyra/engine/kyra_rpg.cpp
@@ -38,10 +38,8 @@ KyraRpgEngine::KyraRpgEngine(OSystem *system, const GameFlags &flags) : KyraEngi
_txt = 0;
_mouseClick = 0;
_preserveEvents = _buttonListChanged = false;
-
_sceneXoffset = 0;
_sceneShpDim = 5;
-
_activeButtons = 0;
_currentLevel = 0;
@@ -110,7 +108,13 @@ KyraRpgEngine::KyraRpgEngine(OSystem *system, const GameFlags &flags) : KyraEngi
_dscDoorFrameIndex2 = 0;
_shpDmX1 = _shpDmX2 = 0;
+ _itemIconShapes = nullptr;
+ _itemInHand = _sceneDrawPage1 = _sceneDrawPage2 = _dscDoorShpIndexSize = 0;
+ _levelDecorationDataSize = _dialogueButtonWidth = 0;
+ _dialogueButtonLabelColor1 = _dialogueButtonLabelColor2 = 0;
+ _moreStrings = nullptr;
+ memset(_visibleBlocks, 0, sizeof(_visibleBlocks));
memset(_openDoorState, 0, sizeof(_openDoorState));
memset(_dialogueButtonString, 0, 3 * sizeof(const char *));
_dialogueButtonPosX = 0;
diff --git a/engines/kyra/engine/kyra_v1.cpp b/engines/kyra/engine/kyra_v1.cpp
index 764f14e1621..f027738331d 100644
--- a/engines/kyra/engine/kyra_v1.cpp
+++ b/engines/kyra/engine/kyra_v1.cpp
@@ -68,6 +68,10 @@ KyraEngine_v1::KyraEngine_v1(OSystem *system, const GameFlags &flags)
_mouseX = _mouseY = 0;
_transOffsY = 0;
_asciiCodeEvents = _kbEventSkip = false;
+
+ _configMusic = 0;
+ _configSounds = false;
+ _configVoice = _configWalkspeed = 0;
}
void KyraEngine_v1::pauseEngineIntern(bool pause) {
diff --git a/engines/kyra/engine/kyra_v2.cpp b/engines/kyra/engine/kyra_v2.cpp
index 1b0c1d3a81c..2192cdc29b1 100644
--- a/engines/kyra/engine/kyra_v2.cpp
+++ b/engines/kyra/engine/kyra_v2.cpp
@@ -114,6 +114,12 @@ KyraEngine_v2::KyraEngine_v2(OSystem *system, const GameFlags &flags, const Engi
warning("unsupported language, switching back to English");
_lang = 0;
}
+
+ _animResetFrame = _animShapeWidth = _animShapeHeight = _animShapeXAdd = _animShapeYAdd = _itemInHand = _savedMouseState = _mainCharX = _mainCharY = _charScale = _unk4 = _unk5 = 0;
+ _unkSceneScreenFlag1 = _unkHandleSceneChangeFlag = false;
+ _chatEndTime = 0;
+
+ memset(&_chatScriptData, 0, sizeof(_chatScriptData));
}
KyraEngine_v2::~KyraEngine_v2() {
diff --git a/engines/kyra/engine/lol.cpp b/engines/kyra/engine/lol.cpp
index d2a1145ff1f..880c665ffb3 100644
--- a/engines/kyra/engine/lol.cpp
+++ b/engines/kyra/engine/lol.cpp
@@ -207,6 +207,16 @@ LoLEngine::LoLEngine(OSystem *system, const GameFlags &flags) : KyraRpgEngine(sy
_lightningFirstSfx = 0;
_lightningSfxFrame = 0;
+ _stashSetupData = _monsterDirFlags = _monsterScaleX = _monsterScaleY = _updateSpellBookCoords = _updateSpellBookAnimData = _healShapeFrames = nullptr;
+ _sceneItemOffs = _monsterShiftOffs = nullptr;
+ _flyingItemShapes = nullptr;
+ _monsterDecorationShapes = nullptr;
+ _monsterModifiers1 = _monsterModifiers2 = _monsterModifiers3 = _monsterModifiers4 = _monsterScaleWH = _autoMapStrings = nullptr;
+ _fireBallCoords = nullptr;
+ _subMenuIndex = _numFireballShapes = _numHealShapes = _numHealiShapes = 0;
+ _currentMapLevel = _automapTopLeftX = _automapTopLeftY = 0;
+ _mapUpdateNeeded = false;
+
_compassTimer = 0;
_scriptCharacterCycle = 0;
_partyDamageFlags = -1;
More information about the Scummvm-git-logs
mailing list