aboutsummaryrefslogtreecommitdiff
path: root/engines/drascula/converse.cpp
diff options
context:
space:
mode:
authorNicola Mettifogo2010-02-09 01:22:24 +0000
committerNicola Mettifogo2010-02-09 01:22:24 +0000
commit3a1e7ccbae87aa5d515af596e5c15c478ed3c4b3 (patch)
treeb1b94b4eb2480bd05cb42a79c2dfddf60264f875 /engines/drascula/converse.cpp
parent62741adf236a8a58674c5746cf7f8ae7417f4865 (diff)
downloadscummvm-rg350-3a1e7ccbae87aa5d515af596e5c15c478ed3c4b3.tar.gz
scummvm-rg350-3a1e7ccbae87aa5d515af596e5c15c478ed3c4b3.tar.bz2
scummvm-rg350-3a1e7ccbae87aa5d515af596e5c15c478ed3c4b3.zip
Moved text parsing to a new class.
svn-id: r48013
Diffstat (limited to 'engines/drascula/converse.cpp')
-rw-r--r--engines/drascula/converse.cpp31
1 files changed, 17 insertions, 14 deletions
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]);