From 3a1e7ccbae87aa5d515af596e5c15c478ed3c4b3 Mon Sep 17 00:00:00 2001 From: Nicola Mettifogo Date: Tue, 9 Feb 2010 01:22:24 +0000 Subject: Moved text parsing to a new class. svn-id: r48013 --- engines/drascula/converse.cpp | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) (limited to 'engines/drascula/converse.cpp') diff --git a/engines/drascula/converse.cpp b/engines/drascula/converse.cpp index 40a1ac80a1..b2a7e217e6 100644 --- a/engines/drascula/converse.cpp +++ b/engines/drascula/converse.cpp @@ -137,7 +137,6 @@ void DrasculaEngine::converse(int index) { if (!stream) error("missing data file %s", fileName); - int size = stream->size(); int game1 = kDialogOptionUnselected, game2 = kDialogOptionUnselected, game3 = kDialogOptionUnselected; @@ -150,19 +149,23 @@ void DrasculaEngine::converse(int index) { selectVerb(kVerbNone); - 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; + TextResourceParser p(stream, DisposeAfterUse::YES); + + p.parseString(phrase1); + p.parseString(phrase2); + p.parseString(phrase3); + p.parseString(phrase4); + p.parseString(sound1); + p.parseString(sound2); + p.parseString(sound3); + p.parseString(sound4); + p.parseInt(answer1); + p.parseInt(answer2); + p.parseInt(answer3); + + // no need to delete the stream, since TextResourceParser takes ownership + // delete stream; + if (currentChapter == 2 && !strcmp(fileName, "op_5.cal") && flags[38] == 1 && flags[33] == 1) { strcpy(phrase3, _text[405]); -- cgit v1.2.3