[Scummvm-git-logs] scummvm master -> 012949a04f006fe80902e096a48636863b26f6a4
athrxx
noreply at scummvm.org
Mon Oct 10 20:45:20 UTC 2022
This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
3947df46f8 KYRA: code style fixes
cc6f904269 SCUMM: (IMS) - code style fixes
e67737a749 SCUMM: (IMS) - use short version strings for MT-32 display
012949a04f SCUMM: (FM-Towns) - code style fixes
Commit: 3947df46f85c6fd1e587ecd978917a4827db1e99
https://github.com/scummvm/scummvm/commit/3947df46f85c6fd1e587ecd978917a4827db1e99
Author: athrxx (athrxx at scummvm.org)
Date: 2022-10-10T22:44:02+02:00
Commit Message:
KYRA: code style fixes
Changed paths:
engines/kyra/engine/items_hof.cpp
engines/kyra/engine/lol.cpp
engines/kyra/graphics/animator_tim.cpp
engines/kyra/graphics/screen_lol.cpp
engines/kyra/gui/gui_v2.cpp
engines/kyra/sound/drivers/halestorm.cpp
diff --git a/engines/kyra/engine/items_hof.cpp b/engines/kyra/engine/items_hof.cpp
index 230d6c0e6e4..e5a4d1e6061 100644
--- a/engines/kyra/engine/items_hof.cpp
+++ b/engines/kyra/engine/items_hof.cpp
@@ -175,11 +175,14 @@ bool KyraEngine_HoF::processItemDrop(uint16 sceneId, Item item, int x, int y, in
if (itemX == -1 || itemY == -1)
return false;
- if (unk1 == 3) {
+ // Comment out dead code (verified in disasm that it is really like that in the
+ // original code: unk1 == 3 will automatically lead to freeItemSlot == -1, thus
+ // returning from this function early, never to arrive here.
+ /*if (unk1 == 3) {
_itemList[freeItemSlot].x = itemX;
_itemList[freeItemSlot].y = itemY;
return true;
- } else if (unk1 == 2) {
+ } else */if (unk1 == 2) {
itemDropDown(x, y, itemX, itemY, freeItemSlot, item);
}
diff --git a/engines/kyra/engine/lol.cpp b/engines/kyra/engine/lol.cpp
index 35f3bde11b1..0d6bfb789bf 100644
--- a/engines/kyra/engine/lol.cpp
+++ b/engines/kyra/engine/lol.cpp
@@ -1730,8 +1730,7 @@ void LoLEngine::generateBrightnessPalette(const Palette &src, Palette &dst, int
modifier >>= 1;
if (modifier)
modifier--;
- if (modifier > 3)
- modifier = 3;
+
_blockBrightness = modifier << 4;
_sceneUpdateRequired = true;
@@ -3295,7 +3294,7 @@ void LoLEngine::playSpellAnimation(WSAMovie_v2 *mov, int firstFrame, int lastFra
fin = true;
}
- if (restoreScreen && (mov || callback)) {
+ if (restoreScreen && mov) {
_screen->copyPage(12, 2);
_screen->copyRegion(x, y, x, y, w2, h2, 2, 0, Screen::CR_NO_P_CHECK);
_screen->updateScreen();
@@ -3572,14 +3571,7 @@ int LoLEngine::calcInflictableDamagePerItem(int16 attacker, int16 target, uint16
if (hitType == 2 || !dmg)
return (dmg == 1) ? 2 : dmg;
-
- int p = (calculateProtection(target) << 7) / dmg;
- if (p > 217)
- p = 217;
-
- d = 256 - p;
- r = (dmg * ABS(d)) >> 8;
- dmg = d < 0 ? -r : r;
+ dmg = (dmg * (256 - MIN<int>((calculateProtection(target) << 7) / dmg, 217))) >> 8;
return (dmg < 2) ? 2 : dmg;
}
diff --git a/engines/kyra/graphics/animator_tim.cpp b/engines/kyra/graphics/animator_tim.cpp
index 3bc02352d80..7044e73af4a 100644
--- a/engines/kyra/graphics/animator_tim.cpp
+++ b/engines/kyra/graphics/animator_tim.cpp
@@ -39,10 +39,12 @@ TimAnimator::TimAnimator(LoLEngine *engine, Screen_v2 *screen_v2, OSystem *syste
TimAnimator::TimAnimator(KyraEngine_v1 *engine, Screen_v2 *screen_v2, OSystem *system, bool useParts) : _vm(engine), _screen(screen_v2), _system(system), _useParts(useParts) {
#endif
_animations = new Animation[TIM::kWSASlots]();
+ assert(_animations);
if (_useParts) {
for (int i = 0; i < TIM::kWSASlots; i++) {
_animations[i].parts = new AnimPart[TIM::kAnimParts]();
+ assert(_animations[i].parts);
}
}
}
@@ -70,8 +72,6 @@ void TimAnimator::init(int animIndex, Movie *wsa, int x, int y, int wsaCopyParam
void TimAnimator::reset(int animIndex, bool clearStruct) {
Animation *anim = &_animations[animIndex];
- if (!anim)
- return;
anim->field_D = 0;
anim->enable = 0;
delete anim->wsa;
@@ -86,6 +86,7 @@ void TimAnimator::reset(int animIndex, bool clearStruct) {
if (_useParts) {
anim->parts = new AnimPart[TIM::kAnimParts];
memset(anim->parts, 0, TIM::kAnimParts * sizeof(AnimPart));
+ assert(anim->parts);
}
}
}
diff --git a/engines/kyra/graphics/screen_lol.cpp b/engines/kyra/graphics/screen_lol.cpp
index a2b4f32e75c..f4f5cb05544 100644
--- a/engines/kyra/graphics/screen_lol.cpp
+++ b/engines/kyra/graphics/screen_lol.cpp
@@ -218,7 +218,7 @@ void Screen_LoL::drawGridBox(int x, int y, int w, int h, int col) {
tmp = (y + x) & 1;
uint8 *p = getPagePtr(_curPage) + y * 320 + x;
- uint8 s = (tmp >> 8) & 1;
+ bool oddWidth = w & 1;
w >>= 1;
int w2 = w;
@@ -231,7 +231,7 @@ void Screen_LoL::drawGridBox(int x, int y, int w, int h, int col) {
}
}
- if (s == 1) {
+ if (oddWidth) {
if (tmp == 0)
*p = col;
p++;
diff --git a/engines/kyra/gui/gui_v2.cpp b/engines/kyra/gui/gui_v2.cpp
index a04931c34d2..2ea706002f9 100644
--- a/engines/kyra/gui/gui_v2.cpp
+++ b/engines/kyra/gui/gui_v2.cpp
@@ -846,10 +846,8 @@ bool GUI_v2::checkSavegameDescription(const char *buffer, int size) {
if (buffer[0] == 0)
return false;
for (int i = 0; i < size; ++i) {
- if (buffer[i] != 0x20)
+ if (buffer[i] != ' ')
return true;
- else if (buffer[i] == 0x00)
- return false;
}
return false;
}
diff --git a/engines/kyra/sound/drivers/halestorm.cpp b/engines/kyra/sound/drivers/halestorm.cpp
index d78324aa19d..192d3798bbd 100644
--- a/engines/kyra/sound/drivers/halestorm.cpp
+++ b/engines/kyra/sound/drivers/halestorm.cpp
@@ -88,7 +88,7 @@ public:
ShStBuffer(ShStBuffer &&buff) noexcept : ptr(buff.ptr), len(buff.len), lifes(buff.lifes) { buff.lifes = nullptr; }
ShStBuffer(const void *p, uint32 cb, bool allocate = false) : ptr((const uint8*)p), len(cb), lifes(nullptr) { if (allocate) memcpy(crtbuf(), p, cb); }
ShStBuffer() : ShStBuffer(nullptr, 0) {}
- ShStBuffer(Common::SeekableReadStream *s) : len(s ? s->size() : 0), lifes(nullptr) { if (s) s->read(crtbuf(), len); }
+ ShStBuffer(Common::SeekableReadStream *s) : len(s ? s->size() : 0), lifes(nullptr), ptr(nullptr) { if (s) s->read(crtbuf(), len); }
~ShStBuffer() { dcrlif(); }
ShStBuffer &operator=(Common::SeekableReadStream *s) { return operator=(ShStBuffer(s)); }
ShStBuffer &operator=(ShStBuffer &&buff) noexcept {
Commit: cc6f9042697968906663f5cd48398fc611263fd4
https://github.com/scummvm/scummvm/commit/cc6f9042697968906663f5cd48398fc611263fd4
Author: athrxx (athrxx at scummvm.org)
Date: 2022-10-10T22:44:08+02:00
Commit Message:
SCUMM: (IMS) - code style fixes
Changed paths:
engines/scumm/imuse/drivers/mac_m68k.cpp
engines/scumm/imuse/drivers/mac_m68k.h
engines/scumm/imuse/drivers/midi.cpp
engines/scumm/imuse/imuse.cpp
engines/scumm/imuse/imuse_internal.h
diff --git a/engines/scumm/imuse/drivers/mac_m68k.cpp b/engines/scumm/imuse/drivers/mac_m68k.cpp
index 3cfbd059061..9f657cbe6ad 100644
--- a/engines/scumm/imuse/drivers/mac_m68k.cpp
+++ b/engines/scumm/imuse/drivers/mac_m68k.cpp
@@ -28,7 +28,7 @@
namespace Scumm {
IMuseDriver_MacM68k::IMuseDriver_MacM68k(Audio::Mixer *mixer)
- : MidiDriver_Emulated(mixer), _mixBuffer(nullptr), _mixBufferLength(0), _volumeTable(nullptr), _lastUsedVoiceChannel(0) {
+ : MidiDriver_Emulated(mixer), _mixBuffer(nullptr), _mixBufferLength(0), _volumeTable(nullptr), _lastUsedVoiceChannel(0), _defaultInstrument() {
memset(_channels, 0, sizeof(_channels));
memset(_pitchTable, 0, sizeof(_pitchTable));
memset(_voiceChannels, 0, sizeof(_voiceChannels));
diff --git a/engines/scumm/imuse/drivers/mac_m68k.h b/engines/scumm/imuse/drivers/mac_m68k.h
index 36a4546aef5..954a3f72256 100644
--- a/engines/scumm/imuse/drivers/mac_m68k.h
+++ b/engines/scumm/imuse/drivers/mac_m68k.h
@@ -62,6 +62,7 @@ private:
int _mixBufferLength;
struct Instrument {
+ Instrument() : length(0), sampleRate(0), loopStart(0), loopEnd(0), baseFrequency(0), data(nullptr) {}
uint length;
uint sampleRate;
uint loopStart;
@@ -129,7 +130,7 @@ private:
friend class IMuseDriver_MacM68k;
public:
MidiChannel_MacM68k(IMuseDriver_MacM68k *driver, byte number) : MidiChannel(), _owner(driver), _number(number), _allocated(false),
- _priority(0), _sustain(0), _pitchBend(0), _pitchBendFactor(2), _transpose(0), _detune(0), _volume(0) {}
+ _priority(0), _sustain(0), _pitchBend(0), _pitchBendFactor(2), _transpose(0), _detune(0), _volume(0), _voice(nullptr), _instrument() {}
MidiDriver *device() override { return _owner; }
byte getNumber() override { return _number; }
void release() override;
diff --git a/engines/scumm/imuse/drivers/midi.cpp b/engines/scumm/imuse/drivers/midi.cpp
index ccb98228ee4..7618f2b6aa8 100644
--- a/engines/scumm/imuse/drivers/midi.cpp
+++ b/engines/scumm/imuse/drivers/midi.cpp
@@ -153,7 +153,7 @@ void disconnect(ChannelNode *&chain, ChannelNode *node) {
IMuseChannel_Midi::IMuseChannel_Midi(IMuseDriver_GMidi *drv, int number) :MidiChannel(), _drv(drv), _number(number), _allocated(false), _sustain(false),
_pitchBend(0x2000), _polyphony(1), _channelUsage(0), _exhaust(false), _prio(0x80), _detune(0), _transpose(0), _pitchBendTemp(0), _pitchBendSensitivity(2),
- _activeChain(drv ? _drv->_activeChain : _dummyNode), _idleChain(drv ? _drv->_idleChain : _dummyNode), _newSystem(drv ? drv->_newSystem : false) {
+ _activeChain(drv ? _drv->_activeChain : _dummyNode), _idleChain(drv ? _drv->_idleChain : _dummyNode), _dummyNode(nullptr), _newSystem(drv ? drv->_newSystem : false) {
assert(_drv);
}
diff --git a/engines/scumm/imuse/imuse.cpp b/engines/scumm/imuse/imuse.cpp
index 187ead42f6e..cc50697cc56 100644
--- a/engines/scumm/imuse/imuse.cpp
+++ b/engines/scumm/imuse/imuse.cpp
@@ -66,8 +66,8 @@ IMuseInternal::IMuseInternal(ScummEngine *vm, MidiDriverFlags sndType, uint32 in
_trigger_count(0),
_snm_trigger_index(0),
_soundType(sndType),
- _game_id(vm->_game.id),
- _mutex(vm->_mixer->mutex()) {
+ _game_id(vm ? vm->_game.id : 0),
+ _mutex(vm ? vm->_mixer->mutex() : _dummyMutex) {
memset(_channel_volume, 0, sizeof(_channel_volume));
memset(_channel_volume_eff, 0, sizeof(_channel_volume_eff));
memset(_volchan_table, 0, sizeof(_volchan_table));
@@ -1407,7 +1407,6 @@ IMuseInternal *IMuseInternal::create(ScummEngine *vm, MidiDriver *nativeMidiDriv
int IMuseInternal::initialize(OSystem *syst, MidiDriver *native_midi, MidiDriver *adlib_midi) {
int i;
- _system = syst;
_midi_native = native_midi;
_midi_adlib = adlib_midi;
if (native_midi != nullptr) {
diff --git a/engines/scumm/imuse/imuse_internal.h b/engines/scumm/imuse/imuse_internal.h
index 064874af264..57385062d2a 100644
--- a/engines/scumm/imuse/imuse_internal.h
+++ b/engines/scumm/imuse/imuse_internal.h
@@ -425,8 +425,8 @@ protected:
// SysEx handlers for client-specified manufacturer codes.
sysexfunc _sysex;
- OSystem *_system;
Common::Mutex &_mutex;
+ Common::Mutex _dummyMutex;
protected:
bool _paused;
Commit: e67737a749bedf9c3b4fa97f3ae3d048a4e35752
https://github.com/scummvm/scummvm/commit/e67737a749bedf9c3b4fa97f3ae3d048a4e35752
Author: athrxx (athrxx at scummvm.org)
Date: 2022-10-10T22:44:13+02:00
Commit Message:
SCUMM: (IMS) - use short version strings for MT-32 display
The builds distributed over the website have long version strings
(which include the revison number) that don't fit the MT-32 display.
So we just trim them after the version number...
Changed paths:
engines/scumm/imuse/drivers/midi.cpp
diff --git a/engines/scumm/imuse/drivers/midi.cpp b/engines/scumm/imuse/drivers/midi.cpp
index 7618f2b6aa8..cdb7d09183e 100644
--- a/engines/scumm/imuse/drivers/midi.cpp
+++ b/engines/scumm/imuse/drivers/midi.cpp
@@ -892,7 +892,9 @@ void IMuseDriver_MT32::initDevice() {
}
// Display a welcome message on MT-32 displays. Compute version string (truncated to 20 chars max.)
- Common::String infoStr = Common::String("ScummVM ") + gScummVMVersion;
+ Common::String infoStr = gScummVMVersion;
+ infoStr = "ScummVM " + infoStr.substr(0, MIN<uint32>(infoStr.findFirstNotOf("0123456789."), 12));
+
for (int i = (20 - (int)infoStr.size()) >> 1; i > 0; --i)
infoStr = ' ' + infoStr + ' ';
sendMT32Sysex(0x80000, (const byte*)infoStr.c_str(), MIN<uint32>(infoStr.size(), 20));
Commit: 012949a04f006fe80902e096a48636863b26f6a4
https://github.com/scummvm/scummvm/commit/012949a04f006fe80902e096a48636863b26f6a4
Author: athrxx (athrxx at scummvm.org)
Date: 2022-10-10T22:44:17+02:00
Commit Message:
SCUMM: (FM-Towns) - code style fixes
Changed paths:
engines/scumm/gfx.h
diff --git a/engines/scumm/gfx.h b/engines/scumm/gfx.h
index 7bb1dbd5b84..b9817dfc6e8 100644
--- a/engines/scumm/gfx.h
+++ b/engines/scumm/gfx.h
@@ -495,12 +495,12 @@ public:
bool isScrolling(int direction, int threshold = 0) const { return (direction == 0) ? _scrollRemainder != threshold : (direction == 1 ? _scrollRemainder > threshold : _scrollRemainder < threshold); }
uint8 *getLayerPixels(int layer, int x, int y) const;
- int getLayerPitch(int layer) const { return (layer >= 0 && layer < 2) ? _layers[layer].pitch : 0; }
- int getLayerWidth(int layer) const { return (layer >= 0 && layer < 2) ? _layers[layer].width : 0; }
- int getLayerHeight(int layer) const { return (layer >= 0 && layer < 2) ? _layers[layer].height : 0; }
- int getLayerBpp(int layer) const { return (layer >= 0 && layer < 2) ? _layers[layer].bpp : 0; }
- int getLayerScaleW(int layer) const { return (layer >= 0 && layer < 2) ? _layers[layer].scaleW : 0; }
- int getLayerScaleH(int layer) const { return (layer >= 0 && layer < 2) ? _layers[layer].scaleH : 0; }
+ int getLayerPitch(int layer) const { assert (layer >= 0 && layer < 2); return _layers[layer].pitch; }
+ int getLayerWidth(int layer) const { assert (layer >= 0 && layer < 2); return _layers[layer].width; }
+ int getLayerHeight(int layer) const { assert (layer >= 0 && layer < 2); return _layers[layer].height; }
+ int getLayerBpp(int layer) const { assert (layer >= 0 && layer < 2); return _layers[layer].bpp; }
+ int getLayerScaleW(int layer) const { assert (layer >= 0 && layer < 2); return _layers[layer].scaleW; }
+ int getLayerScaleH(int layer) const { assert (layer >= 0 && layer < 2); return _layers[layer].scaleH; }
private:
struct TownsScreenLayer {
More information about the Scummvm-git-logs
mailing list