revert some changes as simon uses dynamic file objects for sound objects later on
svn-id: r8477
This commit is contained in:
parent
eb808a8d4c
commit
e3b2ca8e2f
1 changed files with 34 additions and 34 deletions
|
@ -46,73 +46,73 @@ SimonSound::SimonSound(const byte game, const GameSpecificSettings *gss, const c
|
||||||
_voice_file = false;
|
_voice_file = false;
|
||||||
_ambient_playing = 0;
|
_ambient_playing = 0;
|
||||||
|
|
||||||
File file;
|
File *file = new File();
|
||||||
File file2;
|
File *file2 = new File();
|
||||||
const char *s;
|
const char *s;
|
||||||
|
|
||||||
#ifdef USE_MAD
|
#ifdef USE_MAD
|
||||||
file.open(gss->mp3_filename, gameDataPath);
|
file->open(gss->mp3_filename, gameDataPath);
|
||||||
if (file.isOpen() == false) {
|
if (file->isOpen() == false) {
|
||||||
#endif
|
#endif
|
||||||
// for simon2 mac/amiga, only read index file
|
// for simon2 mac/amiga, only read index file
|
||||||
if (_game == GAME_SIMON2MAC) {
|
if (_game == GAME_SIMON2MAC) {
|
||||||
file.open("voices.idx", gameDataPath);
|
file->open("voices.idx", gameDataPath);
|
||||||
if (file.isOpen() == false) {
|
if (file->isOpen() == false) {
|
||||||
warning("Can't open voice index file 'voices.idx'");
|
warning("Can't open voice index file 'voices.idx'");
|
||||||
} else {
|
} else {
|
||||||
file.seek(0, SEEK_END);
|
file->seek(0, SEEK_END);
|
||||||
int end = file.pos();
|
int end = file->pos();
|
||||||
file.seek(0, SEEK_SET);
|
file->seek(0, SEEK_SET);
|
||||||
_filenums = (uint16 *)malloc(end / 3 + 1);
|
_filenums = (uint16 *)malloc(end / 3 + 1);
|
||||||
_offsets = (uint32 *)malloc((end / 6) * 4 + 1);
|
_offsets = (uint32 *)malloc((end / 6) * 4 + 1);
|
||||||
|
|
||||||
for (int i = 1; i <= end / 6; i++) {
|
for (int i = 1; i <= end / 6; i++) {
|
||||||
_filenums[i] = file.readUint16BE();
|
_filenums[i] = file->readUint16BE();
|
||||||
_offsets[i] = file.readUint32BE();
|
_offsets[i] = file->readUint32BE();
|
||||||
}
|
}
|
||||||
_voice_file = true;
|
_voice_file = true;
|
||||||
}
|
}
|
||||||
} else if (_game & GF_WIN) {
|
} else if (_game & GF_WIN) {
|
||||||
s = gss->wav_filename;
|
s = gss->wav_filename;
|
||||||
file.open(s, gameDataPath);
|
file->open(s, gameDataPath);
|
||||||
if (file.isOpen() == false) {
|
if (file->isOpen() == false) {
|
||||||
warning("Can't open voice file %s", s);
|
warning("Can't open voice file %s", s);
|
||||||
} else {
|
} else {
|
||||||
_voice_file = true;
|
_voice_file = true;
|
||||||
_voice = new WavSound(_mixer, &file);
|
_voice = new WavSound(_mixer, file);
|
||||||
}
|
}
|
||||||
} else if (_game & GF_TALKIE) {
|
} else if (_game & GF_TALKIE) {
|
||||||
s = gss->voc_filename;
|
s = gss->voc_filename;
|
||||||
file.open(s, gameDataPath);
|
file->open(s, gameDataPath);
|
||||||
if (file.isOpen() == false) {
|
if (file->isOpen() == false) {
|
||||||
warning("Can't open voice file %s", s);
|
warning("Can't open voice file %s", s);
|
||||||
} else {
|
} else {
|
||||||
_voice_file = true;
|
_voice_file = true;
|
||||||
_voice = new VocSound(_mixer, &file);
|
_voice = new VocSound(_mixer, file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifdef USE_MAD
|
#ifdef USE_MAD
|
||||||
} else {
|
} else {
|
||||||
_voice_file = true;
|
_voice_file = true;
|
||||||
_voice = new MP3Sound(_mixer, &file);
|
_voice = new MP3Sound(_mixer, file);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (_game == GAME_SIMON1TALKIE) {
|
if (_game == GAME_SIMON1TALKIE) {
|
||||||
#ifdef USE_MAD
|
#ifdef USE_MAD
|
||||||
file2.open(gss->mp3_effects_filename, gameDataPath);
|
file2->open(gss->mp3_effects_filename, gameDataPath);
|
||||||
if (file2.isOpen() == false) {
|
if (file2->isOpen() == false) {
|
||||||
#endif
|
#endif
|
||||||
s = gss->voc_effects_filename;
|
s = gss->voc_effects_filename;
|
||||||
file2.open(s, gameDataPath);
|
file2->open(s, gameDataPath);
|
||||||
if (file2.isOpen() == false) {
|
if (file2->isOpen() == false) {
|
||||||
warning("Can't open effects file %s", s);
|
warning("Can't open effects file %s", s);
|
||||||
} else {
|
} else {
|
||||||
_effects = new VocSound(_mixer, &file2);
|
_effects = new VocSound(_mixer, file2);
|
||||||
}
|
}
|
||||||
#ifdef USE_MAD
|
#ifdef USE_MAD
|
||||||
} else {
|
} else {
|
||||||
_effects = new MP3Sound(_mixer, &file2);
|
_effects = new MP3Sound(_mixer, file2);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -121,24 +121,24 @@ SimonSound::SimonSound(const byte game, const GameSpecificSettings *gss, const c
|
||||||
void SimonSound::readSfxFile(const char *filename, const char *gameDataPath) {
|
void SimonSound::readSfxFile(const char *filename, const char *gameDataPath) {
|
||||||
stopAll();
|
stopAll();
|
||||||
|
|
||||||
File file;
|
File *file = new File();
|
||||||
file.open(filename, gameDataPath);
|
file->open(filename, gameDataPath);
|
||||||
|
|
||||||
if (file.isOpen() == false) {
|
if (file->isOpen() == false) {
|
||||||
char *filename2;
|
char *filename2;
|
||||||
filename2 = (char *)malloc(strlen(filename) + 2);
|
filename2 = (char *)malloc(strlen(filename) + 2);
|
||||||
strcpy(filename2, filename);
|
strcpy(filename2, filename);
|
||||||
strcat(filename2, ".");
|
strcat(filename2, ".");
|
||||||
file.open(filename2, gameDataPath);
|
file->open(filename2, gameDataPath);
|
||||||
free(filename2);
|
free(filename2);
|
||||||
if (file.isOpen() == false) {
|
if (file->isOpen() == false) {
|
||||||
if (atoi(filename + 6) != 1 && atoi(filename + 6) != 30)
|
if (atoi(filename + 6) != 1 && atoi(filename + 6) != 30)
|
||||||
warning("readSfxFile: Can't load sfx file %s", filename);
|
warning("readSfxFile: Can't load sfx file %s", filename);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_effects = new WavSound(_mixer, &file);
|
_effects = new WavSound(_mixer, file);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SimonSound::loadSfxTable(File *gameFile, uint32 base) {
|
void SimonSound::loadSfxTable(File *gameFile, uint32 base) {
|
||||||
|
@ -151,15 +151,15 @@ void SimonSound::loadSfxTable(File *gameFile, uint32 base) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void SimonSound::playVoice(uint sound) {
|
void SimonSound::playVoice(uint sound) {
|
||||||
File file;
|
|
||||||
if (_game == GAME_SIMON2MAC && _filenums) {
|
if (_game == GAME_SIMON2MAC && _filenums) {
|
||||||
char filename[16];
|
char filename[16];
|
||||||
sprintf(filename, "voices%d.dat", _filenums[sound]);
|
sprintf(filename, "voices%d.dat", _filenums[sound]);
|
||||||
file.open(filename, _gameDataPath);
|
File *file = new File();
|
||||||
if (file.isOpen() == false) {
|
file->open(filename, _gameDataPath);
|
||||||
|
if (file->isOpen() == false) {
|
||||||
warning("Can't open voice file %s", filename);
|
warning("Can't open voice file %s", filename);
|
||||||
} else {
|
} else {
|
||||||
_voice = new WavSound(_mixer, &file, _offsets);
|
_voice = new WavSound(_mixer, file, _offsets);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue