aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction/dialogue.cpp
diff options
context:
space:
mode:
authorNicola Mettifogo2007-03-18 20:18:19 +0000
committerNicola Mettifogo2007-03-18 20:18:19 +0000
commit7e310422c3d704a5d7faa5219082be827c71e534 (patch)
tree8df99831b27981d6d8c412def400776cd4ebf45f /engines/parallaction/dialogue.cpp
parent2ea44bf1eee6411b9648e72d00e78470a6f71caf (diff)
downloadscummvm-rg350-7e310422c3d704a5d7faa5219082be827c71e534.tar.gz
scummvm-rg350-7e310422c3d704a5d7faa5219082be827c71e534.tar.bz2
scummvm-rg350-7e310422c3d704a5d7faa5219082be827c71e534.zip
- added constructors for most structs
- structs are now allocated via new instead of malloc's - respective free's have been replaced with delete svn-id: r26228
Diffstat (limited to 'engines/parallaction/dialogue.cpp')
-rw-r--r--engines/parallaction/dialogue.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/engines/parallaction/dialogue.cpp b/engines/parallaction/dialogue.cpp
index 73567f3ca1..105212eacc 100644
--- a/engines/parallaction/dialogue.cpp
+++ b/engines/parallaction/dialogue.cpp
@@ -76,9 +76,8 @@ Dialogue *Parallaction::parseDialogue(Script &script) {
while (scumm_stricmp(_tokens[0], "enddialogue")) {
if (scumm_stricmp(_tokens[0], "Question")) continue;
- _questions[num_questions] = (Dialogue*)malloc(sizeof(Dialogue));
+ _questions[num_questions] = new Dialogue;
Dialogue *vB4 = _questions[num_questions];
- memset(_questions[num_questions], 0, sizeof(Dialogue));
_questions_names[num_questions] = (char*)malloc(strlen(_tokens[1])+1);
strcpy(_questions_names[num_questions], _tokens[1]);
@@ -202,18 +201,18 @@ void freeDialogue(Dialogue *d) {
if (!d) return;
uint16 _si;
- for (_si = 0; _si < 5; _si++) {
+ for (_si = 0; _si < NUM_ANSWERS; _si++) {
if (d->_answer_moods[_si] & 0x10)
freeDialogue(d->_following._questions[_si]);
}
- for (_si = 0; _si < 5; _si++) {
+ for (_si = 0; _si < NUM_ANSWERS; _si++) {
freeCommands(d->_commands[_si]);
free(d->_answers[_si]);
}
free(d->_text);
- free(d);
+ delete d;
return;
}
@@ -305,7 +304,7 @@ bool displayAnswers(Dialogue *q) {
uint16 i = 0;
- while (i < 5 && q->_answers[i]) {
+ while (i < NUM_ANSWERS && q->_answers[i]) {
if (displayAnswer(q, i)) {
displayed = true;
} else {
@@ -514,7 +513,7 @@ int16 getHoverAnswer(int16 x, int16 y, Question *q) {
int16 top = 1000;
int16 bottom = 1000;
- for (int16 _si = 0; _si < 5; _si++) {
+ for (int16 _si = 0; _si < NUM_ANSWERS; _si++) {
if (q->_answers[_si] == NULL) break;
if (_answerBalloonY[_si] != SKIPPED_ANSWER) {