CRYO: Remove useless fields in HNM Header, some renaming

This commit is contained in:
Strangerke 2017-01-12 07:19:17 +01:00 committed by Eugene Sandulenko
parent 1fd1b79446
commit 86b482012b
4 changed files with 17 additions and 37 deletions

View file

@ -91,26 +91,13 @@ struct color_t {
int16 a, r, g, b;
};
#pragma pack(push, 1)
struct HNMHeader {
int _signature;
char _unusedFlag1;
char _unusedFlag2;
char _unusedReserved;
char _unusedBpp;
int32 _signature;
uint16 _width;
uint16 _height;
int _unusedFileSize;
int _numbFrame;
int _unusedTableOffset;
int16 _unusedSpeed;
int16 _unusedMaxBuffer;
int _bufferSize;
int16 _unusedUnknown;
char _unusedReserved2[14];
char _unusedCopyright[16];
int32 _numbFrame;
int32 _bufferSize;
};
#pragma pack(pop)
class Sound {
private:

View file

@ -4831,7 +4831,8 @@ void EdenGame::loadRoomFile(uint16 num, Room *buffer) {
}
}
void EdenGame::shnmfl(uint16 num) {
// Original name: shnmfl
void EdenGame::loadHnm(uint16 num) {
unsigned int resNum = num - 1 + 485;
assert(resNum < _bigfileHeader->_count);
PakHeaderItem *file = &_bigfileHeader->_files[resNum];
@ -4841,7 +4842,8 @@ void EdenGame::shnmfl(uint16 num) {
_vm->_video->_file->seek(offs, SEEK_SET);
}
int EdenGame::ssndfl(uint16 num) {
// Original name: ssndfl
int EdenGame::loadSound(uint16 num) {
unsigned int resNum = num - 1 + ((_vm->getPlatform() == Common::kPlatformDOS && _vm->isDemo()) ? 656 : 661);
assert(resNum < _bigfileHeader->_count);
PakHeaderItem *file = &_bigfileHeader->_files[resNum];
@ -4875,7 +4877,7 @@ int EdenGame::ssndfl(uint16 num) {
if (chunkType == 5) {
_bigfile.read(_gameLipsync + 7260, chunkLen);
// anim_buffer_ptr = gameLipsync + 7260 + 2;
// _animBufferPtr = _gameLipsync + 7260 + 2;
chunkType = _bigfile.readByte();
_bigfile.read(&val, 3);
@ -4884,7 +4886,7 @@ int EdenGame::ssndfl(uint16 num) {
// 3. Normal sound data
if (chunkType == 1) {
/*unsigned short freq = */_bigfile.readUint16LE();
/*uint8 freq = */_bigfile.readUint16LE();
size = chunkLen - 2;
_bigfile.read(_voiceSamplesBuffer, size);
}
@ -6434,7 +6436,7 @@ void EdenGame::playHNM(int16 num) {
}
_showVideoSubtitle = false;
_videoCanceledFlag = false;
shnmfl(num);
loadHnm(num);
_vm->_video->reset();
if (_needToFade) {
fadeToBlack(4);
@ -6614,7 +6616,7 @@ void EdenGame::persovox() {
num += 565;
if (_globals->_textBankIndex == 3)
num += 707;
_voiceSamplesSize = ssndfl(num);
_voiceSamplesSize = loadSound(num);
int16 volumeLeft = _globals->_prefSoundVolume[0];
int16 volumeRight = _globals->_prefSoundVolume[1];
int16 stepLeft = _musicChannel->_volumeLeft < volumeLeft ? stepLeft = 1 : -1;

View file

@ -282,8 +282,8 @@ private:
void loadRawFile(uint16 num, byte *buffer);
void loadIconFile(uint16 num, Icon *buffer);
void loadRoomFile(uint16 num, Room *buffer);
void shnmfl(uint16 num);
int ssndfl(uint16 num);
void loadHnm(uint16 num);
int loadSound(uint16 num);
void ConvertMacToPC();
void loadpermfiles();
bool ReadDataSyncVOC(unsigned int num);

View file

@ -158,23 +158,14 @@ void HnmPlayer::decompADPCM(byte *buffer, int16 *output, int size) {
// Original name: CLHNM_ReadHeader
void HnmPlayer::readHeader() {
_header._signature = _file->readUint32BE();
_header._unusedFlag1 = _file->readByte();
_header._unusedFlag2 = _file->readByte();
_header._unusedReserved = _file->readByte();
_header._unusedBpp = _file->readByte();
_file->skip(4);
_header._width = _file->readUint16LE();
_header._height = _file->readUint16LE();
_header._unusedFileSize = _file->readSint32LE();
_file->skip(4);
_header._numbFrame = _file->readSint32LE();
_header._unusedTableOffset = _file->readSint32LE();
_header._unusedSpeed = _file->readSint16LE();
_header._unusedMaxBuffer = _file->readSint16LE();
_file->skip(8);
_header._bufferSize = _file->readSint32LE();
_header._unusedUnknown = _file->readSint16LE();
for (int i = 0; i < 14; i++)
_header._unusedReserved2[i] = _file->readSByte();
for (int i = 0; i < 16; i++)
_header._unusedCopyright[i] = _file->readSByte();
_file->skip(32);
_header._bufferSize += 4096; //TODO: checkme
}