[Scummvm-cvs-logs] scummvm master -> f621297dc76bb545ed5312fb941eea1da26a7052
Strangerke
Strangerke at scummvm.org
Sun Aug 11 17:17:50 CEST 2013
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
f621297dc7 MORTEVIELLE: Get rid of the 640Kb _mem buffer
Commit: f621297dc76bb545ed5312fb941eea1da26a7052
https://github.com/scummvm/scummvm/commit/f621297dc76bb545ed5312fb941eea1da26a7052
Author: Strangerke (strangerke at scummvm.org)
Date: 2013-08-11T08:16:30-07:00
Commit Message:
MORTEVIELLE: Get rid of the 640Kb _mem buffer
Changed paths:
engines/mortevielle/mortevielle.cpp
engines/mortevielle/mortevielle.h
engines/mortevielle/sound.cpp
engines/mortevielle/speech.cpp
engines/mortevielle/speech.h
diff --git a/engines/mortevielle/mortevielle.cpp b/engines/mortevielle/mortevielle.cpp
index 3fcd8b6..1296e64 100644
--- a/engines/mortevielle/mortevielle.cpp
+++ b/engines/mortevielle/mortevielle.cpp
@@ -100,7 +100,6 @@ MortevielleEngine::MortevielleEngine(OSystem *system, const ADGameDescription *g
_caff = -1;
_day = 0;
- memset(_mem, 0, sizeof(_mem));
_curPict = nullptr;
_curAnim = nullptr;
_rightFramePict = nullptr;
diff --git a/engines/mortevielle/mortevielle.h b/engines/mortevielle/mortevielle.h
index 6211914..e849138 100644
--- a/engines/mortevielle/mortevielle.h
+++ b/engines/mortevielle/mortevielle.h
@@ -434,8 +434,6 @@ public:
int _resolutionScaler;
byte _destinationArray[7][25];
- // TODO: Replace the following with proper implementations, or refactor out the code using them
- byte _mem[65536 * 16];
byte *_curPict;
byte *_curAnim;
byte *_rightFramePict;
diff --git a/engines/mortevielle/sound.cpp b/engines/mortevielle/sound.cpp
index f96aae4..3198de6 100644
--- a/engines/mortevielle/sound.cpp
+++ b/engines/mortevielle/sound.cpp
@@ -142,11 +142,11 @@ void SoundManager::litph(tablint &t, int typ, int tempo) {
int freq = tempo * 252; // 25.2 * 10
int i = 0;
while (i < _vm->_speechManager._ptr_oct) {
- int idx = _vm->_mem[(kAdrTroct * 16) + i];
+ int idx = _vm->_speechManager._troctBuf[i];
i++;
switch(idx) {
case 0: {
- int val = _vm->_mem[(kAdrTroct * 16) + i];
+ int val = _vm->_speechManager._troctBuf[i];
i++;
if (_vm->_speechManager._soundType == 0)
warning("TODO: vclas");
@@ -187,10 +187,10 @@ void SoundManager::litph(tablint &t, int typ, int tempo) {
break;
}
case 2: {
- int val = _vm->_mem[(kAdrTroct * 16) + i];
+ int val = _vm->_speechManager._troctBuf[i];
i++;
int tmpidx = (val * 12) + 268;
- val = _vm->_mem[(kAdrTroct * 16) + i];
+ val = _vm->_speechManager._troctBuf[i];
i++;
warning("TODO: reech %d %d", tmpidx, val);
}
@@ -200,7 +200,7 @@ void SoundManager::litph(tablint &t, int typ, int tempo) {
i += 2;
} else {
// Speech
- warning("TODO: Interphoneme: consonne:%d voyelle:%d", _vm->_mem[(kAdrTroct * 16) + i], _vm->_mem[(kAdrTroct * 16) + i + 1]);
+ warning("TODO: Interphoneme: consonne:%d voyelle:%d", _vm->_speechManager._troctBuf[i], _vm->_speechManager._troctBuf[i + 1]);
i += 2;
}
break;
diff --git a/engines/mortevielle/speech.cpp b/engines/mortevielle/speech.cpp
index 6ea43ad..6c90c8e 100644
--- a/engines/mortevielle/speech.cpp
+++ b/engines/mortevielle/speech.cpp
@@ -88,7 +88,8 @@ void SpeechManager::spfrac(int wor) {
}
void SpeechManager::charg_car(int &currWordNumb) {
- int wor = READ_BE_UINT16(&_vm->_mem[(kAdrWord * 16) + currWordNumb]);
+ assert(currWordNumb < 1712);
+ int wor = READ_BE_UINT16(&_wordBuf[currWordNumb]);
int int_ = wor & 0x3f; // 63
if ((int_ >= 0) && (int_ <= 13)) {
@@ -128,7 +129,8 @@ void SpeechManager::charg_car(int &currWordNumb) {
void SpeechManager::entroct(byte o) {
- _vm->_mem[(kAdrTroct * 16) + _ptr_oct] = o;
+ assert(_ptr_oct < 10576);
+ _troctBuf[_ptr_oct] = o;
++_ptr_oct;
}
@@ -497,8 +499,9 @@ void SpeechManager::handlePhoneme() {
startPos /= 2;
endPos /= 2;
+ assert((endPos - startPos) < 1711);
for (int i = startPos, currWord = 0; i < endPos; i++, currWord += 2)
- WRITE_BE_UINT16(&_vm->_mem[(kAdrWord * 16) + currWord], _cfiphBuffer[i]);
+ WRITE_BE_UINT16(&_wordBuf[currWord], _cfiphBuffer[i]);
_ptr_oct = 0;
int currWord = 0;
diff --git a/engines/mortevielle/speech.h b/engines/mortevielle/speech.h
index 43cdbd5..c21d3a4 100644
--- a/engines/mortevielle/speech.h
+++ b/engines/mortevielle/speech.h
@@ -34,9 +34,6 @@
namespace Mortevielle {
-const int kAdrTroct = 0x406b;
-const int kAdrWord = 0x4000;
-
const float kfreq0 = 1.19318e6;
const int kNullValue = 255;
const int kTempoMusic = 71;
@@ -58,7 +55,9 @@ private:
int _phonemeNumb;
SpeechQueue _queue[3];
+ byte _wordBuf[1712];
public:
+ byte _troctBuf[10576];
int _soundType;
bool _buildingSentence;
More information about the Scummvm-git-logs
mailing list