From b658c61155ff189fe4381ba774993a69a3f572ea Mon Sep 17 00:00:00 2001 From: Nicola Mettifogo Date: Mon, 8 Feb 2010 16:14:04 +0000 Subject: Let ArjFile return a SeekableReadStream instead of implementing the same interface itself. The caller is now responsible for deleting the returned streams. svn-id: r47994 --- engines/drascula/converse.cpp | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'engines/drascula/converse.cpp') diff --git a/engines/drascula/converse.cpp b/engines/drascula/converse.cpp index 707ae55b63..0cd9794cc3 100644 --- a/engines/drascula/converse.cpp +++ b/engines/drascula/converse.cpp @@ -133,11 +133,11 @@ void DrasculaEngine::cleanupString(char *string) { void DrasculaEngine::converse(int index) { char fileName[20]; sprintf(fileName, "op_%d.cal", index); - _arj.open(fileName); - if (!_arj.isOpen()) + Common::SeekableReadStream *stream = _arj.open(fileName); + if (!stream) error("missing data file %s", fileName); - int size = _arj.size(); + int size = stream->size(); int game1 = kDialogOptionUnselected, game2 = kDialogOptionUnselected, game3 = kDialogOptionUnselected; @@ -150,19 +150,19 @@ void DrasculaEngine::converse(int index) { selectVerb(kVerbNone); - getStringFromLine(_arj, size, phrase1); - getStringFromLine(_arj, size, phrase2); - getStringFromLine(_arj, size, phrase3); - getStringFromLine(_arj, size, phrase4); - getStringFromLine(_arj, size, sound1); - getStringFromLine(_arj, size, sound2); - getStringFromLine(_arj, size, sound3); - getStringFromLine(_arj, size, sound4); - getIntFromLine(_arj, size, &answer1); - getIntFromLine(_arj, size, &answer2); - getIntFromLine(_arj, size, &answer3); - - _arj.close(); + getStringFromLine(stream, size, phrase1); + getStringFromLine(stream, size, phrase2); + getStringFromLine(stream, size, phrase3); + getStringFromLine(stream, size, phrase4); + getStringFromLine(stream, size, sound1); + getStringFromLine(stream, size, sound2); + getStringFromLine(stream, size, sound3); + getStringFromLine(stream, size, sound4); + getIntFromLine(stream, size, &answer1); + getIntFromLine(stream, size, &answer2); + getIntFromLine(stream, size, &answer3); + + delete stream; if (currentChapter == 2 && !strcmp(fileName, "op_5.cal") && flags[38] == 1 && flags[33] == 1) { strcpy(phrase3, _text[405]); -- cgit v1.2.3