From 550d9cf39de5fbbd1f4173d5b7bd955c7649995b Mon Sep 17 00:00:00 2001 From: Sven Hesse Date: Tue, 28 Jul 2009 16:28:32 +0000 Subject: More alignment-related changes svn-id: r42858 --- engines/gob/draw_v2.cpp | 3 +-- engines/gob/gob.h | 2 -- engines/gob/inter_v1.cpp | 2 +- engines/gob/save/saveconverter.cpp | 6 +++--- engines/gob/sound/sounddesc.cpp | 6 +++--- engines/gob/sound/soundmixer.cpp | 25 ++++++++----------------- engines/gob/sound/soundmixer.h | 4 +--- engines/gob/variables.cpp | 32 -------------------------------- engines/gob/variables.h | 12 ------------ 9 files changed, 17 insertions(+), 75 deletions(-) diff --git a/engines/gob/draw_v2.cpp b/engines/gob/draw_v2.cpp index 5c1986289a..a1074d7ecb 100644 --- a/engines/gob/draw_v2.cpp +++ b/engines/gob/draw_v2.cpp @@ -521,8 +521,7 @@ void Draw_v2::printTotText(int16 id) { case 10: str[0] = (char) 255; - WRITE_LE_UINT16((uint16 *) (str + 1), - ptr - _vm->_game->_resources->getTexts()); + WRITE_LE_UINT16(str + 1, ptr - _vm->_game->_resources->getTexts()); str[3] = 0; ptr++; for (int i = *ptr++; i > 0; i--) { diff --git a/engines/gob/gob.h b/engines/gob/gob.h index 5976924a12..84ff707877 100644 --- a/engines/gob/gob.h +++ b/engines/gob/gob.h @@ -75,8 +75,6 @@ class SaveLoad; #define GET_VAR_FSTR(var) _vm->_inter->_variables->getAddressVarString(var) #define GET_VARO_FSTR(off) _vm->_inter->_variables->getAddressOffString(off) -#define VAR_ADDRESS(var) _vm->_inter->_variables->getAddressVar32(var) - #define WRITE_VAR_OFFSET(off, val) WRITE_VARO_UINT32((off), (val)) #define WRITE_VAR(var, val) WRITE_VAR_UINT32((var), (val)) #define VAR_OFFSET(off) READ_VARO_UINT32(off) diff --git a/engines/gob/inter_v1.cpp b/engines/gob/inter_v1.cpp index 910f3f7b5f..446d86643d 100644 --- a/engines/gob/inter_v1.cpp +++ b/engines/gob/inter_v1.cpp @@ -2312,7 +2312,7 @@ void Inter_v1::o1_setItemPos(OpGobParams ¶ms) { void Inter_v1::o1_loadObjects(OpGobParams ¶ms) { params.extraData = _vm->_game->_script->readInt16(); - _vm->_goblin->loadObjects((char *) VAR_ADDRESS(params.extraData)); + _vm->_goblin->loadObjects(_variables->getAddressVarString(params.extraData)); } void Inter_v1::o1_freeObjects(OpGobParams ¶ms) { diff --git a/engines/gob/save/saveconverter.cpp b/engines/gob/save/saveconverter.cpp index 38fec06859..7bfb2a2da2 100644 --- a/engines/gob/save/saveconverter.cpp +++ b/engines/gob/save/saveconverter.cpp @@ -122,14 +122,14 @@ bool SaveConverter::swapDataEndian(byte *data, const byte *sizes, uint32 count) while (count-- > 0) { if (*sizes == 3) // 32bit value (3 additional bytes) - *((uint32 *) data) = SWAP_BYTES_32(*((uint32 *) data)); + WRITE_UINT32(data, SWAP_BYTES_32(READ_UINT32(data))); else if (*sizes == 1) // 16bit value (1 additional byte) - *((uint16 *) data) = SWAP_BYTES_16(*((uint16 *) data)); + WRITE_UINT16(data, SWAP_BYTES_16(READ_UINT16(data))); else if (*sizes != 0) // else, it has to be an 8bit value return false; count -= *sizes; - data += *sizes + 1; + data += *sizes + 1; sizes += *sizes + 1; } diff --git a/engines/gob/sound/sounddesc.cpp b/engines/gob/sound/sounddesc.cpp index b9b327d105..e8045d21f7 100644 --- a/engines/gob/sound/sounddesc.cpp +++ b/engines/gob/sound/sounddesc.cpp @@ -121,9 +121,9 @@ void SoundDesc::convToSigned() { return; if (_mixerFlags & Audio::Mixer::FLAG_16BITS) { - uint16 *data = (uint16 *) _dataPtr; - for (uint32 i = 0; i < _size; i++) - data[i] ^= 0x8000; + byte *data = _dataPtr; + for (uint32 i = 0; i < _size; i++, data += 2) + WRITE_LE_UINT16(data, READ_LE_UINT16(data) ^ 0x8000); } else for (uint32 i = 0; i < _size; i++) _dataPtr[i] ^= 0x80; diff --git a/engines/gob/sound/soundmixer.cpp b/engines/gob/sound/soundmixer.cpp index 68a96d3b01..eb6d7882f0 100644 --- a/engines/gob/sound/soundmixer.cpp +++ b/engines/gob/sound/soundmixer.cpp @@ -33,8 +33,7 @@ SoundMixer::SoundMixer(Audio::Mixer &mixer, Audio::Mixer::SoundType type) : _mix _rate = _mixer->getOutputRate(); _end = true; - _data8 = 0; - _data16 = 0; + _data = 0; _length = 0; _freq = 0; _repCount = 0; @@ -61,9 +60,9 @@ SoundMixer::~SoundMixer() { inline int16 SoundMixer::getData(int offset) { if (!_16bit) - return (int16) _data8[offset]; + return (int16) ((int8) _data[offset]); else - return (int16) FROM_LE_16(_data16[offset]); + return (int16) READ_LE_UINT16(_data + (offset * 2)); } bool SoundMixer::isPlaying() const { @@ -78,8 +77,7 @@ void SoundMixer::stop(int16 fadeLength) { Common::StackLock slock(_mutex); if (fadeLength <= 0) { - _data8 = 0; - _data16 = 0; + _data = 0; _end = true; _playingSound = 0; return; @@ -109,13 +107,7 @@ void SoundMixer::setSample(SoundDesc &sndDesc, int16 repCount, int16 frequency, _16bit = (sndDesc._mixerFlags & Audio::Mixer::FLAG_16BITS) != 0; - if (_16bit) { - _data16 = (int16 *) sndDesc.getData(); - _shift = 0; - } else { - _data8 = (int8 *) sndDesc.getData(); - _shift = 8; - } + _data = sndDesc.getData(); _length = sndDesc.size(); _freq = frequency; @@ -171,7 +163,7 @@ int SoundMixer::readBuffer(int16 *buffer, const int numSamples) { Common::StackLock slock(_mutex); for (int i = 0; i < numSamples; i++) { - if (!_data8 && !_data16) + if (!_data) return i; if (_end || (_offset >= _length)) checkEndSample(); @@ -181,7 +173,7 @@ int SoundMixer::readBuffer(int16 *buffer, const int numSamples) { // Linear interpolation. See sound/rate.cpp int16 val = (_last + (((_cur - _last) * _offsetFrac + - FRAC_HALF) >> FRAC_BITS)) << _shift; + FRAC_HALF) >> FRAC_BITS)) << (_16bit ? 0 : 8); *buffer++ = (val * _fadeVol) >> 16; _offsetFrac += _offsetInc; @@ -211,8 +203,7 @@ int SoundMixer::readBuffer(int16 *buffer, const int numSamples) { void SoundMixer::endFade() { if (_fadeVolStep > 0) { - _data8 = 0; - _data16 = 0; + _data = 0; _end = true; _playingSound = 0; } else { diff --git a/engines/gob/sound/soundmixer.h b/engines/gob/sound/soundmixer.h index 20376b5152..9e66c474e9 100644 --- a/engines/gob/sound/soundmixer.h +++ b/engines/gob/sound/soundmixer.h @@ -62,11 +62,9 @@ protected: Common::Mutex _mutex; bool _16bit; - int _shift; bool _end; - int8 *_data8; - int16 *_data16; + byte *_data; uint32 _length; uint32 _rate; int32 _freq; diff --git a/engines/gob/variables.cpp b/engines/gob/variables.cpp index 1183ec21ae..572cba0796 100644 --- a/engines/gob/variables.cpp +++ b/engines/gob/variables.cpp @@ -123,22 +123,6 @@ uint8 *Variables::getAddressVar8(uint32 var) { return getAddressOff8(var * 4); } -const uint16 *Variables::getAddressVar16(uint32 var) const { - return getAddressOff16(var * 4); -} - -uint16 *Variables::getAddressVar16(uint32 var) { - return getAddressOff16(var * 4); -} - -const uint32 *Variables::getAddressVar32(uint32 var) const { - return getAddressOff32(var * 4); -} - -uint32 *Variables::getAddressVar32(uint32 var) { - return getAddressOff32(var * 4); -} - const char *Variables::getAddressVarString(uint32 var) const { return getAddressOffString(var * 4); } @@ -155,22 +139,6 @@ uint8 *Variables::getAddressOff8(uint32 offset) { return ((uint8 *) (_vars + offset)); } -const uint16 *Variables::getAddressOff16(uint32 offset) const { - return ((const uint16 *) (_vars + offset)); -} - -uint16 *Variables::getAddressOff16(uint32 offset) { - return ((uint16 *) (_vars + offset)); -} - -const uint32 *Variables::getAddressOff32(uint32 offset) const { - return ((const uint32 *) (_vars + offset)); -} - -uint32 *Variables::getAddressOff32(uint32 offset) { - return ((uint32 *) (_vars + offset)); -} - const char *Variables::getAddressOffString(uint32 offset) const { return ((const char *) (_vars + offset)); } diff --git a/engines/gob/variables.h b/engines/gob/variables.h index 84a4772baa..d11b91ea16 100644 --- a/engines/gob/variables.h +++ b/engines/gob/variables.h @@ -69,24 +69,12 @@ public: const uint8 *getAddressVar8(uint32 var) const; uint8 *getAddressVar8(uint32 var); - const uint16 *getAddressVar16(uint32 var) const; - uint16 *getAddressVar16(uint32 var); - - const uint32 *getAddressVar32(uint32 var) const; - uint32 *getAddressVar32(uint32 var); - const char *getAddressVarString(uint32 var) const; char *getAddressVarString(uint32 var); const uint8 *getAddressOff8(uint32 offset) const; uint8 *getAddressOff8(uint32 offset); - const uint16 *getAddressOff16(uint32 offset) const; - uint16 *getAddressOff16(uint32 offset); - - const uint32 *getAddressOff32(uint32 offset) const; - uint32 *getAddressOff32(uint32 offset); - const char *getAddressOffString(uint32 offset) const; char *getAddressOffString(uint32 offset); -- cgit v1.2.3