[Scummvm-cvs-logs] SF.net SVN: scummvm:[35093] scummvm/trunk/engines/kyra/sound_towns.cpp
athrxx at users.sourceforge.net
athrxx at users.sourceforge.net
Sun Nov 16 15:07:50 CET 2008
Revision: 35093
http://scummvm.svn.sourceforge.net/scummvm/?rev=35093&view=rev
Author: athrxx
Date: 2008-11-16 14:07:50 +0000 (Sun, 16 Nov 2008)
Log Message:
-----------
KYRA 1/2: more fixes for valgrind warnings
Modified Paths:
--------------
scummvm/trunk/engines/kyra/sound_towns.cpp
Modified: scummvm/trunk/engines/kyra/sound_towns.cpp
===================================================================
--- scummvm/trunk/engines/kyra/sound_towns.cpp 2008-11-16 13:06:40 UTC (rev 35092)
+++ scummvm/trunk/engines/kyra/sound_towns.cpp 2008-11-16 14:07:50 UTC (rev 35093)
@@ -1154,8 +1154,11 @@
_rateTbl(rateTable), _rshiftTbl(shiftTable), _adTbl(attackDecayTable), _fTbl(frqTable),
_sinTbl(sineTable), _tLvlTbl(tlevelOut), _detnTbl(detuneTable), _tickLength(timerbase * 2),
_specifiedAttackRate(0), _specifiedDecayRate(0), _specifiedReleaseRate(0), _specifiedSustainRate(0),
- _phase(0), _state(s_ready), _playing(false), _timer(0), _keyScale1(0), _keyScale2(0), _currentLevel(1023) {
+ _phase(0), _state(s_ready), _playing(false), _timer(0), _keyScale1(0), _keyScale2(0), _currentLevel(1023),
+ _tickCount(0) {
+ fs_a.rate = fs_a.shift = fs_d.rate = fs_d.shift = fs_s.rate = fs_s.shift = fs_r.rate = fs_r.shift = 0;
+
reset();
}
@@ -2555,24 +2558,20 @@
_nTick(0), _evpUpdateCnt(0), _evpTimer(0x1f), _pReslt(0x1f), _attack(0), _cont(false), _evpUpdate(true),
_timer(0), _noiseGenerator(0) {
- memset(_channels, 0, sizeof(Channel) * 3);
-
- uint8 *reg[] = {
- &_channels[0].frqL,
- &_channels[0].frqH,
- &_channels[1].frqL,
- &_channels[1].frqH,
- &_channels[2].frqL,
- &_channels[2].frqH,
- &_noiseGenerator,
- &_chanEnable,
- &_channels[0].vol,
- &_channels[1].vol,
- &_channels[2].vol,
- };
+ memset(_channels, 0, sizeof(Channel) * 3);
+ _reg = new uint8 *[11];
- _reg = new uint8 *[ARRAYSIZE(reg)];
- memcpy (_reg, reg, sizeof(uint8*) * ARRAYSIZE(reg));;
+ _reg[0] = &_channels[0].frqL;
+ _reg[1] = &_channels[0].frqH;
+ _reg[2] = &_channels[1].frqL;
+ _reg[3] = &_channels[1].frqH;
+ _reg[4] = &_channels[2].frqL;
+ _reg[5] = &_channels[2].frqH;
+ _reg[6] = &_noiseGenerator;
+ _reg[7] = &_chanEnable;
+ _reg[8] = &_channels[0].vol;
+ _reg[9] = &_channels[1].vol;
+ _reg[10] = &_channels[2].vol;
reset();
}
@@ -2645,7 +2644,7 @@
if (!_ready)
return;
- if (address > 10 || *_reg[address] == value) {
+ if (address > 10) {
if ((address == 11 || address == 12 || address == 13) && value)
warning("TownsPC98_OpnSquareSineSource: unsupported reg address: %d", address);
return;
@@ -2734,37 +2733,33 @@
_tickLength(timerbase * 2), _timer(0), _ready(false) {
memset(_rhChan, 0, sizeof(RhtChannel) * 6);
- uint8 *reg[] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- &_rhChan[0].startPosL,
- &_rhChan[1].startPosL,
- &_rhChan[2].startPosL,
- &_rhChan[3].startPosL,
- &_rhChan[4].startPosL,
- &_rhChan[5].startPosL,
- &_rhChan[0].startPosH,
- &_rhChan[1].startPosH,
- &_rhChan[2].startPosH,
- &_rhChan[3].startPosH,
- &_rhChan[4].startPosH,
- &_rhChan[5].startPosH,
- &_rhChan[0].endPosL,
- &_rhChan[1].endPosL,
- &_rhChan[2].endPosL,
- &_rhChan[3].endPosL,
- &_rhChan[4].endPosL,
- &_rhChan[5].endPosL,
- &_rhChan[0].endPosH,
- &_rhChan[1].endPosH,
- &_rhChan[2].endPosH,
- &_rhChan[3].endPosH,
- &_rhChan[4].endPosH,
- &_rhChan[5].endPosH,
- };
+ _reg = new uint8 *[40];
- _reg = new uint8 *[ARRAYSIZE(reg)];
- memcpy (_reg, reg, sizeof(uint8*) * ARRAYSIZE(reg));
+ _reg[0] = _reg[1] = _reg[2] = _reg[3] = _reg[4] = _reg[5] = _reg[6] = _reg[7] = _reg[8] = _reg[9] = _reg[10] = _reg[11] = _reg[12] = _reg[13] = _reg[14] = _reg[15] = 0;
+ _reg[16] = &_rhChan[0].startPosL;
+ _reg[17] = &_rhChan[1].startPosL;
+ _reg[18] = &_rhChan[2].startPosL;
+ _reg[19] = &_rhChan[3].startPosL;
+ _reg[20] = &_rhChan[4].startPosL;
+ _reg[21] = &_rhChan[5].startPosL;
+ _reg[22] = &_rhChan[0].startPosH;
+ _reg[23] = &_rhChan[1].startPosH;
+ _reg[24] = &_rhChan[2].startPosH;
+ _reg[25] = &_rhChan[3].startPosH;
+ _reg[26] = &_rhChan[4].startPosH;
+ _reg[27] = &_rhChan[5].startPosH;
+ _reg[28] = &_rhChan[0].endPosL;
+ _reg[29] = &_rhChan[1].endPosL;
+ _reg[30] = &_rhChan[2].endPosL;
+ _reg[31] = &_rhChan[3].endPosL;
+ _reg[32] = &_rhChan[4].endPosL;
+ _reg[33] = &_rhChan[5].endPosL;
+ _reg[34] = &_rhChan[0].endPosH;
+ _reg[35] = &_rhChan[1].endPosH;
+ _reg[36] = &_rhChan[2].endPosH;
+ _reg[37] = &_rhChan[3].endPosH;
+ _reg[38] = &_rhChan[4].endPosH;
+ _reg[39] = &_rhChan[5].endPosH;
}
void TownsPC98_OpnPercussionSource::init(const uint8 *instrData) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list